Open OBS Studio. The scene collection already contains a single scene named 'Master' with 8 sources: 'Primary Cam', 'Secondary Cam', 'Desktop', 'Chat Overlay', 'BRB Image', 'Stinger Video', 'Logo', 'Audio Meter'.

Your task is to prune the 'Master' scene so only three sources remain: 'Primary Cam', 'Desktop', and 'Logo'. Remove the other 5 sources from the scene.

Rules:
1. Do NOT rename, add, or create any source or scene.
2. Do NOT create new scenes and do NOT delete the 'Master' scene.
3. The final collection must still have exactly 1 scene, and 'Master' must contain exactly the 3 sources listed above.
4. The 3 remaining sources must be visible (eye icon enabled).
5. Close OBS or let it auto-save.

Scene 'Master' still exists

Collection has exactly 1 scene

check-source-in-scene 'Primary Cam' Master

'Primary Cam' kept in 'Master'

'Desktop' kept in 'Master'

'Logo' kept in 'Master'

check-source-in-scene 'Secondary Cam' Master

'Secondary Cam' removed from 'Master'

check-source-in-scene 'Chat Overlay' Master

'Chat Overlay' removed from 'Master'

check-source-in-scene 'BRB Image' Master

'BRB Image' removed from 'Master'

check-source-in-scene 'Stinger Video' Master

'Stinger Video' removed from 'Master'

check-source-in-scene 'Audio Meter' Master

'Audio Meter' removed from 'Master'

'Primary Cam' is visible

'Desktop' is visible

'Logo' is visible


The scene collection already contains two scenes: - 'Raw' with 5 sources: 'Cam1', 'Cam2', 'Screen', 'Overlay', 'Bumper' - 'Target' which is currently empty Your task is to move three of the sources from 'Raw' to 'Target' so that: - 'Raw' contains only 'Cam1' and 'Screen'. - 'Target' contains 'Cam2', 'Overlay', 'Bumper'. Rules: 1. Do NOT create or delete any scene. Both 'Raw' and 'Target' must still exist; the collection must still have exactly 2 scenes. 2. The three moved sources ('Cam2', 'Overlay', 'Bumper') must appear ONLY in 'Target', not in 'Raw'. 3. 'Cam1' and 'Screen' must remain in 'Raw' and must NOT appear in 'Target'. 4. All sources must be visible. 5. You may achieve the move by removing each source from 'Raw' and adding a source with the exact same name in 'Target' (using any source type from the Add Source menu). Only the names in each scene matter. 6.

Scene 'Raw' still exists

Scene 'Target' still exists

Exactly 2 scenes

'Cam1' kept in 'Raw'

'Screen' kept in 'Raw'

'Cam2' no longer in 'Raw'

'Overlay' no longer in 'Raw'

'Bumper' no longer in 'Raw'

'Cam2' moved to 'Target'

'Overlay' moved to 'Target'

'Bumper' moved to 'Target'

'Cam1' not in 'Target'

'Screen' not in 'Target'

'Cam1' visible

'Cam2' visible


A scene collection has already been set up with three scenes: 'Scene 1', 'Scene 2', and 'Scene 3', each with a basic source. Your task is to rename the scenes and add new sources: 1. Rename 'Scene 1' to exactly 'Main View'. (Right-click the scene name and select Rename.) 2. Rename 'Scene 2' to exactly 'Closeup'. 3. Rename 'Scene 3' to exactly 'Wide Shot'. 4. Select the 'Main View' scene. Add a Text (FreeType 2) source named exactly 'Overlay Text'. 5. Select the 'Wide Shot' scene. Add a Color Source named exactly 'Stage Light'. 6. Make sure all sources (old and new) are visible. 7. Do NOT create or delete any scenes. The collection should still have exactly 3 scenes. 8.

Scene 'Main View' exists (renamed from 'Scene 1')

Scene 'Closeup' exists (renamed from 'Scene 2')

Scene 'Wide Shot' exists (renamed from 'Scene 3')

Exactly 3 scenes in the collection

check-source-in-scene 'Overlay Text' 'Main View'

Source 'Overlay Text' exists in 'Main View' scene

check-source-in-scene 'Stage Light' 'Wide Shot'

Source 'Stage Light' exists in 'Wide Shot' scene


The scene collection already contains one scene named 'Everything' with 6 sources: 'Webcam', 'Desktop', 'Game Capture', 'Intro Logo', 'BRB Text', 'End Card'. Your task is to refactor this monolithic scene into three focused scenes: 1. Create a new scene named exactly 'Playing'. Add sources named exactly 'Webcam', 'Desktop', 'Game Capture' to it. 2. Create a new scene named exactly 'BRB'. Add a source named exactly 'BRB Text' to it. 3. Create a new scene named exactly 'End'. Add sources named exactly 'End Card' and 'Intro Logo' to it. 4. Delete the original 'Everything' scene. 5. The final collection must have exactly 3 scenes: 'Playing', 'BRB', 'End'. All sources must be visible. 6. You may use any source type from the Add Source menu when re-creating sources; only the names matter. 7.

Scene 'Playing' exists

Scene 'BRB' exists

Scene 'End' exists

Original 'Everything' scene deleted

Exactly 3 scenes

'Webcam' in 'Playing'

'Desktop' in 'Playing'

check-source-in-scene 'Game Capture' Playing

'Game Capture' in 'Playing'

'BRB Text' in 'BRB'

'End Card' in 'End'

'Intro Logo' in 'End'

'Webcam' visible

'BRB Text' visible

'End Card' visible


Open the Obsidian vault at /home/user/Documents/LinkVault. The vault has 5 isolated notes with no links between them. Edit each note to add cross-references by appending a '## Related' section at the end:

1. Edit 'Python.md': Add '## Related' section with links to [[JavaScript]] and [[Git]].
2. Edit 'JavaScript.md': Add '## Related' section with links to [[Python]] and [[React]].
3. Edit 'React.md': Add '## Related' section with links to [[JavaScript]] and [[TypeScript]].
4. Edit 'TypeScript.md': Add '## Related' section with links to [[JavaScript]] and [[React]].
5. Edit 'Git.md': Add '## Related' section with links to [[Python]] and [[JavaScript]].

Then create 'Map of Content.md' in root with body:

# Map of Content

## Languages
- [[Python]]
- [[JavaScript]]
- [[TypeScript]]

## Frameworks
- [[React]]

## Tools
- [[Git]]

#moc #overview

check-note-links-to /home/user/Documents/LinkVault Python JavaScript

Python links to JavaScript

check-note-links-to /home/user/Documents/LinkVault Python Git

Python links to Git

check-note-links-to /home/user/Documents/LinkVault JavaScript React

JavaScript links to React

check-note-links-to /home/user/Documents/LinkVault React TypeScript

React links to TypeScript

check-note-links-to /home/user/Documents/LinkVault TypeScript React

TypeScript links to React

check-note-links-to /home/user/Documents/LinkVault Git Python

Git links to Python

check-note-has-heading /home/user/Documents/LinkVault Python Related

Python has Related heading

check-note-links-to /home/user/Documents/LinkVault 'Map of Content' Python

Map of Content links to Python

check-note-links-to /home/user/Documents/LinkVault 'Map of Content' Git

Map of Content links to Git

check-note-has-tag /home/user/Documents/LinkVault 'Map of Content' moc

Map of Content has #moc tag

Vault has exactly 6 notes


Open Obsidian with the vault at /home/user/Documents/ThemeVault. Using the Settings dialog, configure the appearance:

Change the base theme to light mode (set theme to 'moonstone'), set the base font size to 18
, set the accent color to '#E11D48' (a rose color).

Then create a note called 'ThemeTest.md' in the vault root with body:

# Theme Test
This note verifies the theme was changed.
The editor should now show light mode with larger text.
#test #appearance

Theme set to moonstone (light)

Font size set to 18

Accent color set to rose

ThemeTest note exists

check-note-has-tag /home/user/Documents/ThemeVault ThemeTest appearance

ThemeTest has #appearance tag


Open the Obsidian vault at /home/user/Documents/BookmarkVault. Create a reference library and pin the most important notes as bookmarks:

1. Create 6 reference notes in the vault root. Each note must have a level-1 heading matching its title, a short body paragraph, and the inline tag #reference.
   - 'Guide.md' — heading 'Guide'
   - 'Cheatsheet.md' — heading 'Cheatsheet'
   - 'FAQ.md' — heading 'FAQ'
   - 'Glossary.md' — heading 'Glossary'
   - 'Changelog.md' — heading 'Changelog'
   - 'README.md' — heading 'README'
2. Enable the 'Bookmarks' core plugin in Settings > Core plugins.
3. Using the Bookmarks panel (or by editing .obsidian/bookmarks.json directly), add exactly 4 file bookmarks pointing to: Guide.md, Cheatsheet.md, FAQ.md, Glossary.md. The other two notes (Changelog.md, README.md) must NOT be bookmarked.
4. Create 'BookmarkIndex.md' in the root with a level-1 heading 'Bookmark Index', a bulleted list of wikilinks to the 4 bookmarked notes ([[Guide]], [[Cheatsheet]], [[FAQ]], [[Glossary]]), and the inline tag #index.

The vault must contain exactly 7 notes.

Guide note exists

Cheatsheet note exists

FAQ note exists

Glossary note exists

Changelog note exists

README note exists

check-note-has-tag /home/user/Documents/BookmarkVault Guide reference

Guide has #reference tag

check-note-has-heading /home/user/Documents/BookmarkVault Cheatsheet Cheatsheet 1

Cheatsheet has level-1 heading

check-plugin-enabled /home/user/Documents/BookmarkVault bookmarks core

Bookmarks core plugin enabled

len([i for i in (result.get('items') or []) if 'Guide' in (i.get('path') or '')]) >= 1

Guide is bookmarked

len([i for i in (result.get('items') or []) if 'Cheatsheet' in (i.get('path') or '')]) >= 1

Cheatsheet is bookmarked

len([i for i in (result.get('items') or []) if 'FAQ' in (i.get('path') or '')]) >= 1

FAQ is bookmarked

len([i for i in (result.get('items') or []) if 'Glossary' in (i.get('path') or '')]) >= 1

Glossary is bookmarked

Exactly 4 bookmarks

check-note-links-to /home/user/Documents/BookmarkVault BookmarkIndex Guide

BookmarkIndex links Guide

check-note-links-to /home/user/Documents/BookmarkVault BookmarkIndex Glossary

BookmarkIndex links Glossary

check-note-has-tag /home/user/Documents/BookmarkVault BookmarkIndex index

BookmarkIndex has #index tag

Vault has exactly 7 notes


Open the Obsidian vault at /home/user/Documents/BugTracker. Create a bug tracking system:

1. Create folders: 'Open', 'InProgress', 'Closed'.
2. Create 'Open/BUG-001.md' with frontmatter 'type: bug', 'severity: high', 'component: auth', 'status: open' and body with heading 'BUG-001: Authentication Failure on Login', description of the bug, a link to [[BUG-003]], and tags #bug #open #high #auth
3. Create 'InProgress/BUG-002.md' with frontmatter 'type: bug', 'severity: medium', 'component: api', 'status: inprogress' and body with heading 'BUG-002: API Rate Limiting Not Enforced', description, and tags #bug #inprogress #medium #api
4. Create 'Closed/BUG-003.md' with frontmatter 'type: bug', 'severity: critical', 'component: auth', 'status: closed', 'resolved: 2025-03-01' and body with heading 'BUG-003: SQL Injection in Login Form', description, resolution notes, a link to [[BUG-001]], and tags #bug #closed #critical
5. Create 'Overview.md' in root with body with heading 'Bug Tracker Overview', summary of all bugs, links to [[BUG-001]], [[BUG-002]], and [[BUG-003]], and tags #tracker #overview

Open folder exists

InProgress folder exists

Closed folder exists

check-note-has-frontmatter /home/user/Documents/BugTracker BUG-001 severity high

BUG-001 has severity=high

check-note-has-tag /home/user/Documents/BugTracker BUG-001 auth

BUG-001 has #auth tag

check-note-links-to /home/user/Documents/BugTracker BUG-001 BUG-003

BUG-001 links to BUG-003

check-note-has-frontmatter /home/user/Documents/BugTracker BUG-002 component api

BUG-002 has component=api

check-note-has-tag /home/user/Documents/BugTracker BUG-002 inprogress

BUG-002 has #inprogress tag

check-note-has-frontmatter /home/user/Documents/BugTracker BUG-003 resolved 2025-03-01

BUG-003 has resolved=2025-03-01

check-note-links-to /home/user/Documents/BugTracker BUG-003 BUG-001

BUG-003 links to BUG-001

check-note-links-to /home/user/Documents/BugTracker Overview BUG-001

Overview links to BUG-001

check-note-links-to /home/user/Documents/BugTracker Overview BUG-002

Overview links to BUG-002

check-note-links-to /home/user/Documents/BugTracker Overview BUG-003

Overview links to BUG-003

check-note-has-tag /home/user/Documents/BugTracker Overview tracker

Overview has #tracker tag

Vault has exactly 4 notes


Open Obsidian with the vault at /home/user/Documents/EditorVault. Using the Obsidian Settings dialog, configure the following editor settings:

1. Enable 'Spell check' (the spellcheck toggle in Settings > Editor)
2. Enable 'Strict line breaks' (strictLineBreaks)
3. Disable 'Readable line length' (readableLineLength)
4. Enable 'Fold heading' (foldHeading)
5. Enable 'Fold indent' (foldIndent)
6. Enable 'Show line number' (showLineNumber)

After changing all settings, close the Settings dialog.

check-setting /home/user/Documents/EditorVault spellcheck true

Spellcheck enabled

check-setting /home/user/Documents/EditorVault strictLineBreaks true

Strict line breaks enabled

check-setting /home/user/Documents/EditorVault readableLineLength false

Readable line length disabled

check-setting /home/user/Documents/EditorVault foldHeading true

Fold heading enabled

check-setting /home/user/Documents/EditorVault foldIndent true

Fold indent enabled

check-setting /home/user/Documents/EditorVault showLineNumber true

Show line number enabled


Open Obsidian with the vault at /home/user/Documents/HotkeyVault. Set up the following custom keyboard shortcuts:

1. Set 'Toggle bold' (editor:toggle-bold) to Ctrl+B
2. Set 'Toggle italic' (editor:toggle-italic) to Ctrl+I
3. Set 'Toggle strikethrough' (editor:toggle-strikethrough) to Ctrl+Shift+X
4. Set 'Toggle highlight' (editor:toggle-highlight) to Ctrl+Shift+H
5. Set 'Insert template' (insert-template) to Ctrl+T

After setting all hotkeys, close Settings and create a note 'HotkeyCheatsheet.md' with body:

# Hotkey Cheatsheet
## Formatting
- Bold: Ctrl+B
- Italic: Ctrl+I
- Strikethrough: Ctrl+Shift+X
- Highlight: Ctrl+Shift+H
## Templates
- Insert: Ctrl+T
#hotkeys #cheatsheet

Bold hotkey set

Italic hotkey set

Strikethrough hotkey set

Highlight hotkey set

Insert template hotkey set

HotkeyCheatsheet note exists

check-note-has-tag /home/user/Documents/HotkeyVault HotkeyCheatsheet hotkeys

HotkeyCheatsheet has #hotkeys tag


Open the Obsidian vault at /home/user/Documents/DailyVault (the daily-notes core plugin is already enabled). Set up a week of daily notes by creating them manually:

1. Create a folder 'Daily' in the vault root.
2. Create 7 daily notes inside 'Daily/' named '2025-03-10.md', '2025-03-11.md', '2025-03-12.md', '2025-03-13.md', '2025-03-14.md', '2025-03-15.md', '2025-03-16.md'. Each note MUST contain:
   - YAML frontmatter with 'type: daily' and 'date: <the-iso-date>'
   - Level-1 heading '<date>' matching the file name
   - Level-2 headings 'Today', 'Notes', 'Tomorrow'
   - The inline tag #daily somewhere in the body
3. In '2025-03-10.md' add a wikilink to [[2025-03-11]] under the 'Tomorrow' section.
4. In '2025-03-14.md' add a wikilink to [[2025-03-15]] under the 'Tomorrow' section.
5. In '2025-03-16.md' add a wikilink to [[2025-03-15]] in the 'Notes' section (as a reference back to yesterday).

The vault must end up with exactly 7 notes total, all inside the 'Daily' folder. The daily-notes core plugin must remain enabled.

Daily folder exists

2025-03-10 note exists

2025-03-11 note exists

2025-03-12 note exists

2025-03-13 note exists

2025-03-14 note exists

2025-03-15 note exists

2025-03-16 note exists

check-note-has-frontmatter /home/user/Documents/DailyVault 'Daily/2025-03-10' type daily

2025-03-10 has type=daily

check-note-has-tag /home/user/Documents/DailyVault 'Daily/2025-03-10' daily

2025-03-10 has #daily tag

check-note-has-heading /home/user/Documents/DailyVault 'Daily/2025-03-12' Today 2

2025-03-12 has Today heading

check-note-has-heading /home/user/Documents/DailyVault 'Daily/2025-03-12' Notes 2

2025-03-12 has Notes heading

check-note-has-heading /home/user/Documents/DailyVault 'Daily/2025-03-12' Tomorrow 2

2025-03-12 has Tomorrow heading

check-note-links-to /home/user/Documents/DailyVault 'Daily/2025-03-10' 2025-03-11

2025-03-10 links to 2025-03-11

check-note-links-to /home/user/Documents/DailyVault 'Daily/2025-03-14' 2025-03-15

2025-03-14 links to 2025-03-15

check-note-links-to /home/user/Documents/DailyVault 'Daily/2025-03-16' 2025-03-15

2025-03-16 links to 2025-03-15

check-plugin-enabled /home/user/Documents/DailyVault daily-notes core

daily-notes core plugin enabled

Daily folder has exactly 7 notes

Vault has exactly 7 notes total


Open Obsidian with the vault at /home/user/Documents/GardenVault. Build a digital garden with full configuration:

1. Enable 'Show frontmatter' (showFrontmatter), enable 'Fold heading' (foldHeading), enable 'Spell check' (spellcheck).
2. Set base font size to 17.
3. Set hotkeys for 'Toggle bold' (editor:toggle-bold) and 'Toggle italic' (editor:toggle-italic).
4. Create folders: 'Seeds', 'Budding', 'Evergreen'.
5. Create 'Seeds/Thinking in Systems.md' with frontmatter 'type: seed', 'planted: 2025-03-01' and body:

# Thinking in Systems
Early thoughts on systems thinking.

A system is more than the sum of its parts.
Feedback loops create emergent behavior.

Related: [[Mental Models]], [[Feedback Loops]]
#seed #systems

6. Create 'Budding/Mental Models.md' with frontmatter 'type: budding', 'planted: 2025-02-15' and body:

# Mental Models
Frameworks for understanding the world.

## Key Models
- First principles thinking
- Inversion
- Circle of competence

Grows from: [[Thinking in Systems]]
Leads to: [[Decision Making]]
#budding #thinking

7. Create 'Budding/Feedback Loops.md' with frontmatter 'type: budding', 'planted: 2025-02-20' and body:

# Feedback Loops
Positive and negative feedback in systems.

## Types
- Reinforcing (positive): growth spirals
- Balancing (negative): homeostasis

Source: [[Thinking in Systems]]
#budding #systems

8. Create 'Evergreen/Decision Making.md' with frontmatter 'type: evergreen', 'planted: 2025-01-10', 'confidence: high' and body:

# Decision Making
A well-developed note on making better decisions.

## Framework
1. Define the problem clearly
2. Apply [[Mental Models]]
3. Consider second-order effects via [[Feedback Loops]]
4. Decide and commit

## Key Insight
Most bad decisions come from rushing step 1.
#evergreen #thinking #decisions

check-setting /home/user/Documents/GardenVault showFrontmatter true

showFrontmatter enabled

check-setting /home/user/Documents/GardenVault foldHeading true

foldHeading enabled

check-setting /home/user/Documents/GardenVault spellcheck true

spellcheck enabled

Font size set to 17

Bold hotkey set

Italic hotkey set

Seeds folder exists

Budding folder exists

Evergreen folder exists

check-note-has-frontmatter /home/user/Documents/GardenVault 'Thinking in Systems' type seed

Thinking in Systems is a seed

check-note-links-to /home/user/Documents/GardenVault 'Thinking in Systems' 'Mental Models'

Thinking in Systems links to Mental Models

check-note-links-to /home/user/Documents/GardenVault 'Thinking in Systems' 'Feedback Loops'

Thinking in Systems links to Feedback Loops

check-note-links-to /home/user/Documents/GardenVault 'Mental Models' 'Decision Making'

Mental Models links to Decision Making

check-note-links-to /home/user/Documents/GardenVault 'Feedback Loops' 'Thinking in Systems'

Feedback Loops links to Thinking in Systems

check-note-has-frontmatter /home/user/Documents/GardenVault 'Decision Making' confidence high

Decision Making has confidence=high

check-note-links-to /home/user/Documents/GardenVault 'Decision Making' 'Mental Models'

Decision Making links to Mental Models

check-note-has-tag /home/user/Documents/GardenVault 'Decision Making' evergreen

Decision Making has #evergreen tag

Vault has exactly 4 notes


Open Obsidian with the vault at /home/user/Documents/PluginVault. In Settings > Core plugins, enable the following core plugins:

1. Graph view (graph)
2. Tag pane (tag-pane)
3. Daily notes (daily-notes)
4. Templates (templates)
5. Outline (outline)
6. Word count (word-count)
7. Backlinks (backlinks)

After configuring plugins, create a note 'PluginConfig.md' with body:

# Plugin Configuration
## Enabled Core Plugins
- Graph view
- Tag pane
- Daily notes
- Templates
- Outline
- Word count
- Backlinks
#config #plugins

check-plugin-enabled /home/user/Documents/PluginVault graph core

Graph view enabled

check-plugin-enabled /home/user/Documents/PluginVault tag-pane core

Tag pane enabled

check-plugin-enabled /home/user/Documents/PluginVault daily-notes core

Daily notes enabled

check-plugin-enabled /home/user/Documents/PluginVault templates core

Templates enabled

check-plugin-enabled /home/user/Documents/PluginVault outline core

Outline enabled

check-plugin-enabled /home/user/Documents/PluginVault word-count core

Word count enabled

check-plugin-enabled /home/user/Documents/PluginVault backlinks core

Backlinks enabled

PluginConfig note exists

check-note-has-tag /home/user/Documents/PluginVault PluginConfig plugins

PluginConfig has #plugins tag


Open the Obsidian vault at /home/user/Documents/FleetingVault. The vault has 5 fleeting notes in the root (Fleeting-Habits, Fleeting-Focus, Fleeting-Writing, Fleeting-Learning, Fleeting-Systems), each tagged #fleeting. Convert every fleeting note into a corresponding permanent note and archive the source.

Requirements:

1. Create a folder 'Permanent' in the vault root.
2. For each of the 5 fleeting notes, create a new note at 'Permanent/Perm-<Topic>.md' (where <Topic> is Habits, Focus, Writing, Learning, Systems) containing:
   - YAML frontmatter with 'type: permanent' and 'source: fleeting'
   - A level-1 heading 'Perm: <Topic>'
   - A paragraph expanding the original fleeting idea
   - A wikilink back to the source fleeting note (e.g. [[Fleeting-Habits]])
   - The inline tag #permanent
3. Edit EACH original fleeting note so it now has the inline tag #archived and NO #fleeting tag. Replace the existing '#fleeting' line with '#archived'. Do not modify the heading or body paragraph of the fleeting notes.

The vault must end up with exactly 10 notes total (5 fleeting + 5 permanent).

Permanent folder exists

check-note-has-frontmatter /home/user/Documents/FleetingVault 'Permanent/Perm-Habits' type permanent

Perm-Habits type=permanent

check-note-has-frontmatter /home/user/Documents/FleetingVault 'Permanent/Perm-Habits' source fleeting

Perm-Habits source=fleeting

check-note-has-tag /home/user/Documents/FleetingVault 'Permanent/Perm-Habits' permanent

Perm-Habits has #permanent

check-note-links-to /home/user/Documents/FleetingVault 'Permanent/Perm-Habits' Fleeting-Habits

Perm-Habits links back

check-note-has-frontmatter /home/user/Documents/FleetingVault 'Permanent/Perm-Focus' type permanent

Perm-Focus type=permanent

check-note-links-to /home/user/Documents/FleetingVault 'Permanent/Perm-Focus' Fleeting-Focus

Perm-Focus links back

check-note-has-frontmatter /home/user/Documents/FleetingVault 'Permanent/Perm-Writing' type permanent

Perm-Writing type=permanent

check-note-links-to /home/user/Documents/FleetingVault 'Permanent/Perm-Writing' Fleeting-Writing

Perm-Writing links back

check-note-has-frontmatter /home/user/Documents/FleetingVault 'Permanent/Perm-Learning' type permanent

Perm-Learning type=permanent

check-note-links-to /home/user/Documents/FleetingVault 'Permanent/Perm-Learning' Fleeting-Learning

Perm-Learning links back

check-note-has-frontmatter /home/user/Documents/FleetingVault 'Permanent/Perm-Systems' type permanent

Perm-Systems type=permanent

check-note-links-to /home/user/Documents/FleetingVault 'Permanent/Perm-Systems' Fleeting-Systems

Perm-Systems links back

check-note-has-tag /home/user/Documents/FleetingVault Fleeting-Habits archived

Fleeting-Habits has #archived

check-note-has-tag /home/user/Documents/FleetingVault Fleeting-Focus archived

Fleeting-Focus has #archived

check-note-has-tag /home/user/Documents/FleetingVault Fleeting-Writing archived

Fleeting-Writing has #archived

check-note-has-tag /home/user/Documents/FleetingVault Fleeting-Learning archived

Fleeting-Learning has #archived

check-note-has-tag /home/user/Documents/FleetingVault Fleeting-Systems archived

Fleeting-Systems has #archived

'fleeting' not in (result.get('tags') or [])

Fleeting-Habits no longer tagged #fleeting

Fleeting-Systems no longer tagged #fleeting

Vault has exactly 10 notes


Open the Obsidian vault at /home/user/Documents/NormalizeVault. The vault contains 6 pre-existing notes with inconsistent or missing YAML frontmatter. Rewrite the frontmatter of EACH note so that every note has exactly these three keys at the top: 'type', 'status', 'priority'. Do NOT delete the existing level-1 heading or body paragraphs. Remove any unrelated frontmatter keys (like 'title', 'name', 'randomkey', 'foo', 'x') so only the three required keys remain.

Use these exact values:

- 'Task-Launch.md': type=task, status=inprogress, priority=high
- 'Idea-DarkMode.md': type=idea, status=new, priority=medium
- 'Meeting-Kickoff.md': type=meeting, status=done, priority=high
- 'Reference-Style.md': type=reference, status=done, priority=low
- 'Project-Alpha.md': type=project, status=active, priority=high
- 'Log-Sprint3.md': type=log, status=done, priority=low

Each note must still have its original level-1 heading after the frontmatter. The vault must end up with exactly 6 notes (do not add any new notes).

check-note-has-frontmatter /home/user/Documents/NormalizeVault Task-Launch type task

Task-Launch type=task

check-note-has-frontmatter /home/user/Documents/NormalizeVault Task-Launch status inprogress

Task-Launch status=inprogress

check-note-has-frontmatter /home/user/Documents/NormalizeVault Task-Launch priority high

Task-Launch priority=high

check-note-has-frontmatter /home/user/Documents/NormalizeVault Idea-DarkMode type idea

Idea-DarkMode type=idea

check-note-has-frontmatter /home/user/Documents/NormalizeVault Idea-DarkMode status new

Idea-DarkMode status=new

check-note-has-frontmatter /home/user/Documents/NormalizeVault Idea-DarkMode priority medium

Idea-DarkMode priority=medium

check-note-has-frontmatter /home/user/Documents/NormalizeVault Meeting-Kickoff type meeting

Meeting-Kickoff type=meeting

check-note-has-frontmatter /home/user/Documents/NormalizeVault Meeting-Kickoff status done

Meeting-Kickoff status=done

check-note-has-frontmatter /home/user/Documents/NormalizeVault Meeting-Kickoff priority high

Meeting-Kickoff priority=high

check-note-has-frontmatter /home/user/Documents/NormalizeVault Reference-Style type reference

Reference-Style type=reference

check-note-has-frontmatter /home/user/Documents/NormalizeVault Reference-Style priority low

Reference-Style priority=low

check-note-has-frontmatter /home/user/Documents/NormalizeVault Project-Alpha type project

Project-Alpha type=project

check-note-has-frontmatter /home/user/Documents/NormalizeVault Project-Alpha status active

Project-Alpha status=active

check-note-has-frontmatter /home/user/Documents/NormalizeVault Log-Sprint3 type log

Log-Sprint3 type=log

check-note-has-frontmatter /home/user/Documents/NormalizeVault Log-Sprint3 priority low

Log-Sprint3 priority=low

set((result.get('frontmatter') or {}).keys()) == {'type', 'status', 'priority'}

Meeting-Kickoff frontmatter has exactly type/status/priority

Task-Launch frontmatter has exactly type/status/priority

Vault has exactly 6 notes


Open Obsidian with the vault at /home/user/Documents/FullDevVault. Perform a complete developer vault setup:

1.Enable 'Vim key bindings' (vimMode), enable 'Show line number' (showLineNumber), enable 'Show frontmatter' (showFrontmatter), disable 'Readable line length' (readableLineLength), enable 'Strict line breaks' (strictLineBreaks).
2. Set base font size to 15, set theme to 'obsidian' (dark mode).
3. Set hotkeys for 'Toggle bold' (editor:toggle-bold), 'Open command palette' (command-palette:open), and 'Open quick switcher' (switcher:open).
4. Create folders: 'Projects', 'TIL', 'Snippets'.
5. Create 'Projects/API-Service.md' with frontmatter 'type: project', 'language: python', 'status: active' and body:

# API Service
REST API built with FastAPI.

## Architecture
- FastAPI framework
- PostgreSQL database
- Redis cache

## Tasks
- Implement auth endpoints
- Add rate limiting
- Set up CI/CD

Learnings: [[TIL-FastAPI]], [[TIL-Docker]]
#project #python #api

6. Create 'TIL/TIL-FastAPI.md' with frontmatter 'type: til', 'date: 2025-03-14' and body:

# TIL: FastAPI Dependency Injection
FastAPI uses Depends for clean DI.

From working on [[API-Service]].

#til #python #fastapi

7. Create 'TIL/TIL-Docker.md' with frontmatter 'type: til', 'date: 2025-03-15' and body:

# TIL: Docker Multi-stage Builds
Reduce image size by 70% with multi-stage builds.

Applied to [[API-Service]].

#til #docker #devops

8. Create 'Snippets/Python-Decorator.md' with frontmatter 'type: snippet', 'language: python' and body:

# Python Decorator Pattern

Useful in [[API-Service]] for auth middleware.

#snippet #python

check-setting /home/user/Documents/FullDevVault vimMode true

Vim mode enabled

check-setting /home/user/Documents/FullDevVault showLineNumber true

Show line number enabled

check-setting /home/user/Documents/FullDevVault showFrontmatter true

Show frontmatter enabled

check-setting /home/user/Documents/FullDevVault readableLineLength false

Readable line length disabled

check-setting /home/user/Documents/FullDevVault strictLineBreaks true

Strict line breaks enabled

Font size set to 15

Theme set to obsidian (dark)

Bold hotkey set

Command palette hotkey set

Quick switcher hotkey set

Projects folder exists

TIL folder exists

Snippets folder exists

check-note-has-frontmatter /home/user/Documents/FullDevVault API-Service language python

API-Service has language=python

check-note-links-to /home/user/Documents/FullDevVault API-Service TIL-FastAPI

API-Service links to TIL-FastAPI

check-note-links-to /home/user/Documents/FullDevVault API-Service TIL-Docker

API-Service links to TIL-Docker

check-note-links-to /home/user/Documents/FullDevVault TIL-FastAPI API-Service

TIL-FastAPI links to API-Service

check-note-has-tag /home/user/Documents/FullDevVault TIL-Docker devops

TIL-Docker has #devops tag

check-note-links-to /home/user/Documents/FullDevVault Python-Decorator API-Service

Python-Decorator links to API-Service

Vault has exactly 4 notes


Open the Obsidian vault at /home/user/Documents/InterviewPrep. Create a technical interview preparation vault:

1. Create folders: 'Topics', 'Problems', 'Companies'.
2. Create 'Topics/Arrays.md' with frontmatter 'type: topic', 'difficulty: easy-medium' and body with heading 'Arrays', key concepts (two pointer, sliding window, prefix sums), links to [[Two Sum]] and [[Maximum Subarray]], and tags #topic #arrays #fundamentals
3. Create 'Topics/DynamicProgramming.md' with frontmatter 'type: topic', 'difficulty: medium-hard' and body with heading 'Dynamic Programming', patterns list, link to [[Climbing Stairs]], link to [[Arrays]], and tags #topic #dp #advanced
4. Create 'Problems/Two Sum.md' with frontmatter 'type: problem', 'difficulty: easy', 'pattern: hash-map' and body with heading, topic link to [[Arrays]], solution description, complexity analysis, and tags #problem #easy #arrays
5. Create 'Problems/Maximum Subarray.md' with frontmatter 'type: problem', 'difficulty: medium', 'pattern: kadane' and body with heading, topic links to [[Arrays]] and [[DynamicProgramming]], solution, and tags #problem #medium #arrays #dp
6. Create 'Problems/Climbing Stairs.md' with frontmatter 'type: problem', 'difficulty: easy', 'pattern: fibonacci' and body with heading, link to [[DynamicProgramming]], solution, and tags #problem #easy #dp
7. Create 'Companies/Google.md' with frontmatter 'type: company', 'focus: algorithms' and body with heading, focus areas linking to [[Arrays]] and [[DynamicProgramming]], key problems linking to [[Two Sum]] and [[Maximum Subarray]], and tags #company #faang

Topics folder exists

Problems folder exists

Companies folder exists

check-note-has-frontmatter /home/user/Documents/InterviewPrep Arrays type topic

Arrays has type=topic

check-note-links-to /home/user/Documents/InterviewPrep Arrays 'Two Sum'

Arrays links to Two Sum

check-note-links-to /home/user/Documents/InterviewPrep Arrays 'Maximum Subarray'

Arrays links to Maximum Subarray

check-note-has-tag /home/user/Documents/InterviewPrep DynamicProgramming dp

DynamicProgramming has #dp tag

check-note-links-to /home/user/Documents/InterviewPrep DynamicProgramming Arrays

DynamicProgramming links to Arrays

check-note-has-frontmatter /home/user/Documents/InterviewPrep 'Two Sum' difficulty easy

Two Sum has difficulty=easy

check-note-links-to /home/user/Documents/InterviewPrep 'Maximum Subarray' Arrays

Maximum Subarray links to Arrays

check-note-links-to /home/user/Documents/InterviewPrep 'Maximum Subarray' DynamicProgramming

Maximum Subarray links to DynamicProgramming

check-note-links-to /home/user/Documents/InterviewPrep 'Climbing Stairs' DynamicProgramming

Climbing Stairs links to DynamicProgramming

check-note-links-to /home/user/Documents/InterviewPrep Google Arrays

Google links to Arrays

check-note-links-to /home/user/Documents/InterviewPrep Google DynamicProgramming

Google links to DynamicProgramming

check-note-has-tag /home/user/Documents/InterviewPrep Google faang

Google has #faang tag

Vault has exactly 7 notes


Open the Obsidian vault at /home/user/Documents/SpanishVault. Create a Spanish vocabulary learning vault:

1. Create folders: 'Vocabulary', 'Grammar', 'Lessons'.
2. Create 'Vocabulary/Greetings.md' with frontmatter 'type: vocabulary', 'level: A1' and body with heading 'Greetings', a vocabulary table with Spanish-English pairs including 'Hola' (Hello), 'Buenos días' (Good morning), 'Adiós' (Goodbye), a link to [[Lesson 1]], and tags #vocabulary #A1 #greetings
3. Create 'Vocabulary/Food.md' with frontmatter 'type: vocabulary', 'level: A1' and body with heading 'Food', a vocabulary table with Spanish-English pairs including 'Manzana' (Apple), 'Pan' (Bread), 'Agua' (Water), links to [[Lesson 2]] and [[Greetings]], and tags #vocabulary #A1 #food
4. Create 'Grammar/Present Tense.md' with frontmatter 'type: grammar', 'level: A1' and body with heading 'Present Tense', conjugation rules, examples, links to [[Lesson 1]] and [[Lesson 2]], and tags #grammar #A1 #verbs
5. Create 'Lessons/Lesson 1.md' with frontmatter 'type: lesson', 'order: 1' and body with heading 'Lesson 1', lesson overview, links to [[Greetings]] and [[Present Tense]], and tags #lesson #A1
6. Create 'Lessons/Lesson 2.md' with frontmatter 'type: lesson', 'order: 2' and body with heading 'Lesson 2', lesson overview, links to [[Food]] and [[Greetings]], and tags #lesson #A1

Vocabulary folder exists

Grammar folder exists

Lessons folder exists

check-note-has-frontmatter /home/user/Documents/SpanishVault Greetings level A1

Greetings has level=A1

check-note-contains /home/user/Documents/SpanishVault Greetings Hola

Greetings contains Hola

check-note-links-to /home/user/Documents/SpanishVault Food Greetings

Food links to Greetings

check-note-links-to /home/user/Documents/SpanishVault Food 'Lesson 2'

Food links to Lesson 2

check-note-has-tag /home/user/Documents/SpanishVault 'Present Tense' grammar

Present Tense has #grammar tag

check-note-links-to /home/user/Documents/SpanishVault 'Present Tense' 'Lesson 1'

Present Tense links to Lesson 1

check-note-links-to /home/user/Documents/SpanishVault 'Present Tense' 'Lesson 2'

Present Tense links to Lesson 2

check-note-links-to /home/user/Documents/SpanishVault 'Lesson 1' Greetings

Lesson 1 links to Greetings

check-note-links-to /home/user/Documents/SpanishVault 'Lesson 1' 'Present Tense'

Lesson 1 links to Present Tense

check-note-links-to /home/user/Documents/SpanishVault 'Lesson 2' Food

Lesson 2 links to Food

check-note-links-to /home/user/Documents/SpanishVault 'Lesson 2' Greetings

Lesson 2 links to Greetings

Vault has exactly 5 notes


Open the Obsidian vault at /home/user/Documents/MusicVault. Create a music collection:

1. Create folders: 'Artists', 'Albums', 'Playlists'.
2. Create 'Artists/Radiohead.md' with frontmatter 'type: artist', 'genre: alternative rock' and body with heading 'Radiohead', description, links to [[OK Computer]] and [[Kid A]], and tags #artist #alternative-rock
3. Create 'Artists/Daft Punk.md' with frontmatter 'type: artist', 'genre: electronic' and body with heading 'Daft Punk', description, a link to [[Discovery]], and tags #artist #electronic
4. Create 'Albums/OK Computer.md' with frontmatter 'type: album', 'year: 1997', 'rating: 10' and body with heading 'OK Computer', description, a link to [[Radiohead]], track list, and tags #album #alternative-rock
5. Create 'Albums/Kid A.md' with frontmatter 'type: album', 'year: 2000', 'rating: 9' and body with heading 'Kid A', description, a link to [[Radiohead]], track list, and tags #album #experimental
6. Create 'Albums/Discovery.md' with frontmatter 'type: album', 'year: 2001', 'rating: 9' and body with heading 'Discovery', description, a link to [[Daft Punk]], track list, and tags #album #electronic
7. Create 'Playlists/Late Night Coding.md' with frontmatter 'type: playlist' and body with heading 'Late Night Coding', description, links to [[OK Computer]], [[Kid A]], and [[Discovery]], and tags #playlist #coding #latenight

Artists folder exists

Albums folder exists

Playlists folder exists

check-note-has-frontmatter /home/user/Documents/MusicVault Radiohead genre 'alternative rock'

Radiohead has genre=alternative rock

check-note-links-to /home/user/Documents/MusicVault Radiohead 'OK Computer'

Radiohead links to OK Computer

check-note-links-to /home/user/Documents/MusicVault Radiohead 'Kid A'

Radiohead links to Kid A

check-note-links-to /home/user/Documents/MusicVault 'Daft Punk' Discovery

Daft Punk links to Discovery

check-note-has-frontmatter /home/user/Documents/MusicVault 'OK Computer' rating 10

OK Computer has rating=10

check-note-links-to /home/user/Documents/MusicVault 'OK Computer' Radiohead

OK Computer links to Radiohead

check-note-links-to /home/user/Documents/MusicVault Discovery 'Daft Punk'

Discovery links to Daft Punk

check-note-links-to /home/user/Documents/MusicVault 'Late Night Coding' 'OK Computer'

Late Night Coding links to OK Computer

check-note-links-to /home/user/Documents/MusicVault 'Late Night Coding' 'Kid A'

Late Night Coding links to Kid A

check-note-links-to /home/user/Documents/MusicVault 'Late Night Coding' Discovery

Late Night Coding links to Discovery

check-note-has-tag /home/user/Documents/MusicVault 'Late Night Coding' playlist

Late Night Coding has #playlist tag

Vault has exactly 7 notes


Open the Obsidian vault at /home/user/Documents/PeopleCRM. Build a personal CRM system:

1. Create folders: 'Contacts', 'Companies', 'Interactions'.
2. Create 'Companies/Acme.md' with frontmatter 'type: company', 'industry: technology', 'founded: 2010' and body containing heading 'Acme Corp', description, a link to [[Alice Chen]], and tags #company #technology
3. Create 'Contacts/Alice Chen.md' with frontmatter 'role: CTO', 'company: Acme', 'email: alice@acme.com' and body containing heading, bio, links to [[Acme]] and [[Meeting-2025-02-15]], and tags #contact #leadership
4. Create 'Interactions/Meeting-2025-02-15.md' with frontmatter 'date: 2025-02-15', 'type: meeting', 'location: Office' and body containing heading, meeting notes, links to [[Alice Chen]] and [[Acme]], and tags #meeting #followup
5. Create 'Contacts/Bob Martinez.md' with frontmatter 'role: Designer', 'company: Acme', 'email: bob@acme.com' and body containing heading, bio, links to [[Acme]] and [[Alice Chen]], and tags #contact #design
6. Create 'Dashboard.md' in root with body containing heading 'CRM Dashboard', links to [[Acme]], [[Alice Chen]], [[Bob Martinez]], [[Meeting-2025-02-15]], and tags #dashboard #overview

Contacts folder exists

Companies folder exists

Interactions folder exists

check-note-has-frontmatter /home/user/Documents/PeopleCRM Acme type company

Acme has type=company

check-note-has-frontmatter /home/user/Documents/PeopleCRM 'Alice Chen' role CTO

Alice Chen has role=CTO

check-note-has-frontmatter /home/user/Documents/PeopleCRM Meeting-2025-02-15 date 2025-02-15

Meeting has date=2025-02-15

check-note-links-to /home/user/Documents/PeopleCRM Acme 'Alice Chen'

Acme links to Alice Chen

check-note-links-to /home/user/Documents/PeopleCRM 'Alice Chen' Acme

Alice Chen links to Acme

check-note-links-to /home/user/Documents/PeopleCRM 'Alice Chen' Meeting-2025-02-15

Alice Chen links to Meeting

check-note-links-to /home/user/Documents/PeopleCRM Meeting-2025-02-15 'Alice Chen'

Meeting links to Alice Chen

check-note-has-tag /home/user/Documents/PeopleCRM Dashboard dashboard

Dashboard has #dashboard tag

check-note-links-to /home/user/Documents/PeopleCRM Dashboard Acme

Dashboard links to Acme

check-note-links-to /home/user/Documents/PeopleCRM Dashboard 'Alice Chen'

Dashboard links to Alice Chen

Vault has exactly 5 notes


Open the Obsidian vault at /home/user/Documents/KanbanVault. Build a project tracker that simulates a kanban board using folders and notes:

1. Create folders 'Backlog', 'InProgress', 'Done' in the vault root.
2. Create these 7 task notes, each with YAML frontmatter exactly as listed, a level-1 heading 'Task T-00X: <title>', a level-2 heading 'Description' with a one-paragraph summary, and the inline tag #task:
   - 'Backlog/T-001.md' — status: backlog, priority: high, estimate: 5, title: 'Research authentication providers'
   - 'Backlog/T-002.md' — status: backlog, priority: low, estimate: 2, title: 'Update favicon'
   - 'Backlog/T-003.md' — status: backlog, priority: medium, estimate: 3, title: 'Write integration test suite'
   - 'InProgress/T-004.md' — status: inprogress, priority: high, estimate: 8, title: 'Implement OAuth login'
   - 'InProgress/T-005.md' — status: inprogress, priority: medium, estimate: 5, title: 'Refactor database layer'
   - 'Done/T-006.md' — status: done, priority: medium, estimate: 3, title: 'Set up logging pipeline'
   - 'Done/T-007.md' — status: done, priority: low, estimate: 1, title: 'Fix typo in README'
3. Create 'Board.md' in the vault root with:
   - Level-1 heading 'Project Board'
   - Level-2 heading 'Backlog' followed by a bulleted list with wikilinks to [[T-001]], [[T-002]], [[T-003]]
   - Level-2 heading 'In Progress' followed by a bulleted list with wikilinks to [[T-004]], [[T-005]]
   - Level-2 heading 'Done' followed by a bulleted list with wikilinks to [[T-006]], [[T-007]]
   - The inline tag #board

The vault must end up with exactly 8 notes total.

Backlog folder exists

InProgress folder exists

Done folder exists

check-note-has-frontmatter /home/user/Documents/KanbanVault 'Backlog/T-001' status backlog

T-001 status=backlog

check-note-has-frontmatter /home/user/Documents/KanbanVault 'Backlog/T-001' priority high

T-001 priority=high

check-note-has-frontmatter /home/user/Documents/KanbanVault 'Backlog/T-001' estimate 5

T-001 estimate=5

check-note-has-heading /home/user/Documents/KanbanVault 'Backlog/T-001' Description 2

T-001 has Description heading

check-note-has-tag /home/user/Documents/KanbanVault 'Backlog/T-001' task

T-001 has #task

check-note-has-frontmatter /home/user/Documents/KanbanVault 'Backlog/T-002' priority low

T-002 priority=low

check-note-has-frontmatter /home/user/Documents/KanbanVault 'Backlog/T-003' priority medium

T-003 priority=medium

check-note-has-frontmatter /home/user/Documents/KanbanVault 'InProgress/T-004' status inprogress

T-004 status=inprogress

check-note-has-frontmatter /home/user/Documents/KanbanVault 'InProgress/T-004' estimate 8

T-004 estimate=8

check-note-has-frontmatter /home/user/Documents/KanbanVault 'InProgress/T-005' status inprogress

T-005 status=inprogress

check-note-has-frontmatter /home/user/Documents/KanbanVault 'Done/T-006' status done

T-006 status=done

check-note-has-frontmatter /home/user/Documents/KanbanVault 'Done/T-007' status done

T-007 status=done

check-note-has-heading /home/user/Documents/KanbanVault Board 'Project Board' 1

Board has Project Board heading

check-note-has-heading /home/user/Documents/KanbanVault Board 'In Progress' 2

Board has In Progress heading

check-note-links-to /home/user/Documents/KanbanVault Board T-001

Board links T-001

check-note-links-to /home/user/Documents/KanbanVault Board T-004

Board links T-004

check-note-links-to /home/user/Documents/KanbanVault Board T-007

Board links T-007

check-note-has-tag /home/user/Documents/KanbanVault Board board

Board has #board

Vault has exactly 8 notes


Open the Obsidian vault at /home/user/Documents/RecipeVault. Create a recipe collection:

1. Create folders: 'Italian', 'Asian', 'Desserts'.
2. Create 'Italian/Carbonara.md' with frontmatter 'cuisine: italian', 'servings: 4', 'time: 30' and body containing heading 'Carbonara', ingredient list, instructions, a link to [[Cacio e Pepe]], and tags #recipe #italian #pasta
3. Create 'Italian/Cacio e Pepe.md' with frontmatter 'cuisine: italian', 'servings: 2', 'time: 20' and body containing heading, ingredients, instructions, a link to [[Carbonara]], and tags #recipe #italian #pasta
4. Create 'Asian/PadThai.md' with frontmatter 'cuisine: thai', 'servings: 2', 'time: 25' and body containing heading, ingredients, instructions, and tags #recipe #thai #noodles
5. Create 'Desserts/Tiramisu.md' with frontmatter 'cuisine: italian', 'servings: 6', 'time: 45' and body containing heading, ingredients, instructions, a link to [[Carbonara]], and tags #recipe #italian #dessert
6. Create 'Index.md' in root with body containing heading 'Recipe Index', links to [[Carbonara]], [[Cacio e Pepe]], [[PadThai]], [[Tiramisu]], and tags #index #recipes

Italian folder exists

Asian folder exists

Desserts folder exists

check-note-has-frontmatter /home/user/Documents/RecipeVault Carbonara cuisine italian

Carbonara has cuisine=italian

check-note-links-to /home/user/Documents/RecipeVault Carbonara 'Cacio e Pepe'

Carbonara links to Cacio e Pepe

check-note-links-to /home/user/Documents/RecipeVault 'Cacio e Pepe' Carbonara

Cacio e Pepe links to Carbonara

check-note-has-frontmatter /home/user/Documents/RecipeVault PadThai cuisine thai

PadThai has cuisine=thai

check-note-has-tag /home/user/Documents/RecipeVault PadThai noodles

PadThai has #noodles tag

check-note-has-frontmatter /home/user/Documents/RecipeVault Tiramisu servings 6

Tiramisu has servings=6

check-note-links-to /home/user/Documents/RecipeVault Tiramisu Carbonara

Tiramisu links to Carbonara

check-note-links-to /home/user/Documents/RecipeVault Index Carbonara

Index links to Carbonara

check-note-links-to /home/user/Documents/RecipeVault Index PadThai

Index links to PadThai

check-note-has-tag /home/user/Documents/RecipeVault Index index

Index has #index tag

Vault has exactly 5 notes


Open the Obsidian vault at /home/user/Documents/TagVault. The vault contains 6 notes that have no frontmatter or tags. Edit each note to add proper metadata:

1. Edit 'Meeting Notes.md': Add frontmatter with type: meeting and date: 2025-03-01 at the top of the file. Add #meeting #work tags at the end of the note body on a new line.
2. Edit 'Project Plan.md': Add frontmatter with type: project and status: active. Add #project #planning tags at the end.
3. Edit 'Reading List.md': Add frontmatter with type: list and category: books. Add #reading #books tags at the end.
4. Edit 'Quick Ideas.md': Add frontmatter with type: fleeting and priority: low. Add #ideas #fleeting tags at the end.
5. Edit 'Weekly Review.md': Add frontmatter with type: review and week: 10. Add #review #weekly tags at the end.
6. Edit 'Contacts.md': Add frontmatter with type: reference and category: people. Add #contacts #reference tags at the end.

Then create 'Tag Index.md' in root with body:

# Tag Index
## By Type
- meeting: [[Meeting Notes]]
- project: [[Project Plan]]
- list: [[Reading List]]
- fleeting: [[Quick Ideas]]
- review: [[Weekly Review]]
- reference: [[Contacts]]
#index #tags

check-note-has-frontmatter /home/user/Documents/TagVault 'Meeting Notes' type meeting

Meeting Notes has type=meeting

check-note-has-tag /home/user/Documents/TagVault 'Meeting Notes' work

Meeting Notes has #work tag

check-note-has-frontmatter /home/user/Documents/TagVault 'Project Plan' status active

Project Plan has status=active

check-note-has-tag /home/user/Documents/TagVault 'Project Plan' planning

Project Plan has #planning tag

check-note-has-frontmatter /home/user/Documents/TagVault 'Reading List' category books

Reading List has category=books

check-note-has-frontmatter /home/user/Documents/TagVault 'Quick Ideas' priority low

Quick Ideas has priority=low

check-note-has-tag /home/user/Documents/TagVault 'Quick Ideas' fleeting

Quick Ideas has #fleeting tag

check-note-has-frontmatter /home/user/Documents/TagVault 'Weekly Review' week 10

Weekly Review has week=10

check-note-has-tag /home/user/Documents/TagVault 'Weekly Review' weekly

Weekly Review has #weekly tag

check-note-has-tag /home/user/Documents/TagVault Contacts reference

Contacts has #reference tag

check-note-links-to /home/user/Documents/TagVault 'Tag Index' 'Meeting Notes'

Tag Index links to Meeting Notes

check-note-links-to /home/user/Documents/TagVault 'Tag Index' 'Quick Ideas'

Tag Index links to Quick Ideas

check-note-has-tag /home/user/Documents/TagVault 'Tag Index' index

Tag Index has #index tag

Vault has exactly 7 notes


Open the Obsidian vault at /home/user/Documents/ResearchVault. Build a research paper note system:

1. Create folders 'Papers' and 'Topics'.
2. Inside 'Papers', create these 5 paper notes. Each MUST have YAML frontmatter with the listed keys, a level-1 heading matching the title, a level-2 heading 'Summary', a level-2 heading 'Key Contributions', and the listed inline tags and wikilinks in the body.
   - 'Papers/Attention2017.md' — frontmatter: authors: Vaswani et al, year: 2017, venue: NeurIPS. Tags: #paper #transformers. Link: [[Transformers]].
   - 'Papers/ResNet2015.md' — frontmatter: authors: He et al, year: 2015, venue: CVPR. Tags: #paper #cv. Link: [[Image Classification]].
   - 'Papers/BERT2018.md' — frontmatter: authors: Devlin et al, year: 2018, venue: NAACL. Tags: #paper #nlp. Link: [[Transformers]].
   - 'Papers/GPT3_2020.md' — frontmatter: authors: Brown et al, year: 2020, venue: NeurIPS. Tags: #paper #nlp. Link: [[Transformers]].
   - 'Papers/AlphaGo2016.md' — frontmatter: authors: Silver et al, year: 2016, venue: Nature. Tags: #paper #rl. Link: [[Reinforcement Learning]].
3. Inside 'Topics', create these 3 topic hub notes. Each has a level-1 heading, a short paragraph, a #topic tag, and wikilinks to the papers listed.
   - 'Topics/Transformers.md' — links to [[Attention2017]], [[BERT2018]], [[GPT3_2020]].
   - 'Topics/Image Classification.md' — links to [[ResNet2015]].
   - 'Topics/Reinforcement Learning.md' — links to [[AlphaGo2016]].

The vault must end up with exactly 8 notes.

Papers folder exists

Topics folder exists

check-note-has-frontmatter /home/user/Documents/ResearchVault Attention2017 year 2017

Attention2017 year=2017

check-note-has-frontmatter /home/user/Documents/ResearchVault Attention2017 venue NeurIPS

Attention2017 venue=NeurIPS

check-note-has-tag /home/user/Documents/ResearchVault Attention2017 transformers

Attention2017 has #transformers tag

check-note-has-heading /home/user/Documents/ResearchVault Attention2017 Summary 2

Attention2017 has Summary heading

check-note-has-heading /home/user/Documents/ResearchVault Attention2017 'Key Contributions' 2

Attention2017 has Key Contributions heading

check-note-has-frontmatter /home/user/Documents/ResearchVault ResNet2015 year 2015

ResNet2015 year=2015

check-note-has-tag /home/user/Documents/ResearchVault ResNet2015 cv

ResNet2015 has #cv tag

check-note-has-frontmatter /home/user/Documents/ResearchVault BERT2018 year 2018

BERT2018 year=2018

check-note-has-frontmatter /home/user/Documents/ResearchVault GPT3_2020 year 2020

GPT3_2020 year=2020

check-note-has-frontmatter /home/user/Documents/ResearchVault AlphaGo2016 year 2016

AlphaGo2016 year=2016

check-note-has-tag /home/user/Documents/ResearchVault AlphaGo2016 rl

AlphaGo2016 has #rl tag

check-note-links-to /home/user/Documents/ResearchVault Transformers Attention2017

Transformers topic links Attention2017

check-note-links-to /home/user/Documents/ResearchVault Transformers BERT2018

Transformers topic links BERT2018

check-note-links-to /home/user/Documents/ResearchVault Transformers GPT3_2020

Transformers topic links GPT3_2020

check-note-links-to /home/user/Documents/ResearchVault 'Image Classification' ResNet2015

Image Classification topic links ResNet2015

check-note-links-to /home/user/Documents/ResearchVault 'Reinforcement Learning' AlphaGo2016

RL topic links AlphaGo2016

Vault has exactly 8 notes


Open Obsidian with the vault at /home/user/Documents/ToggleVault. Make the following changes:

In Settings > Core plugins:
1. Disable 'Graph view' (graph)
2. Disable 'Tag pane' (tag-pane)
3. Enable 'Outgoing links' (outgoing-link)
4. Enable 'Page preview' (page-preview)
5. Disable 'Starred' (starred)

In Settings > Editor:
6. Enable 'Spell check' (spellcheck)
7. Enable 'Show line number' (showLineNumber)

After making all changes, create a note 'Changes.md' with body:

# Changes Made
## Plugins Disabled
- Graph view
- Tag pane
- Starred
## Plugins Enabled
- Outgoing links
- Page preview
## Editor Settings
- Spell check: on
- Line numbers: on
#changelog

check-plugin-enabled /home/user/Documents/ToggleVault graph core

Graph view disabled

check-plugin-enabled /home/user/Documents/ToggleVault tag-pane core

Tag pane disabled

check-plugin-enabled /home/user/Documents/ToggleVault outgoing-link core

Outgoing links enabled

check-plugin-enabled /home/user/Documents/ToggleVault page-preview core

Page preview enabled

check-plugin-enabled /home/user/Documents/ToggleVault starred core

Starred disabled

check-setting /home/user/Documents/ToggleVault spellcheck true

Spellcheck enabled

check-setting /home/user/Documents/ToggleVault showLineNumber true

Show line number enabled

Changes note exists

check-note-has-tag /home/user/Documents/ToggleVault Changes changelog

Changes has #changelog tag


Open the Obsidian vault at /home/user/Documents/FitnessVault. Create a workout tracking system:

1. Create folders: 'Workouts', 'Exercises', 'Programs'.
2. Create 'Exercises/Squat.md' with frontmatter 'muscle_group: legs', 'type: strength', 'difficulty: intermediate' and body containing heading 'Squat', description, form tips, and tags #exercise #compound #legs
3. Create 'Exercises/BenchPress.md' with frontmatter 'muscle_group: chest', 'equipment: barbell', 'difficulty: intermediate' and body containing heading 'Bench Press', description, form tips, and tags #exercise #compound #chest
4. Create 'Programs/StrongLifts.md' with frontmatter 'frequency: 3x_per_week', 'level: beginner', 'duration: 12_weeks' and body containing heading 'StrongLifts 5x5', program description, links to [[Squat]] and [[BenchPress]], and tags #program #beginner #strength
5. Create 'Workouts/2025-03-10.md' with frontmatter 'program: StrongLifts', 'duration: 60', 'mood: good' and body containing heading 'Workout - March 10, 2025', exercise log with sets/reps, links to [[Squat]] and [[BenchPress]], and tags #workout #stronglifts
6. Create 'Workouts/2025-03-12.md' with frontmatter 'program: StrongLifts', 'duration: 55', 'mood: great' and body containing heading 'Workout - March 12, 2025', exercise log with sets/reps, links to [[Squat]] and [[BenchPress]], and tags #workout #stronglifts

Workouts folder exists

Exercises folder exists

Programs folder exists

check-note-has-frontmatter /home/user/Documents/FitnessVault Squat muscle_group legs

Squat has muscle_group=legs

check-note-has-tag /home/user/Documents/FitnessVault Squat compound

Squat has #compound tag

check-note-has-frontmatter /home/user/Documents/FitnessVault BenchPress equipment barbell

BenchPress has equipment=barbell

check-note-links-to /home/user/Documents/FitnessVault StrongLifts Squat

StrongLifts links to Squat

check-note-links-to /home/user/Documents/FitnessVault StrongLifts BenchPress

StrongLifts links to BenchPress

check-note-has-tag /home/user/Documents/FitnessVault StrongLifts beginner

StrongLifts has #beginner tag

check-note-has-frontmatter /home/user/Documents/FitnessVault 2025-03-10 program StrongLifts

2025-03-10 has program=StrongLifts

check-note-links-to /home/user/Documents/FitnessVault 2025-03-10 Squat

2025-03-10 links to Squat

check-note-links-to /home/user/Documents/FitnessVault 2025-03-10 BenchPress

2025-03-10 links to BenchPress

check-note-links-to /home/user/Documents/FitnessVault 2025-03-12 Squat

2025-03-12 links to Squat

check-note-has-tag /home/user/Documents/FitnessVault 2025-03-12 workout

2025-03-12 has #workout tag

Vault has exactly 5 notes


Open the Obsidian vault at /home/user/Documents/ZettelVault. Build a Zettelkasten of 6 atomic, ID-prefixed notes plus an index:

1. Create a folder 'Zettels'.
2. Inside 'Zettels', create these 6 notes. Each one must have YAML frontmatter with 'type: zettel' and 'created: 2025-03-15' at the top, then a level-1 heading matching the note's concept, a short paragraph, an inline tag #zettel, and a wikilink to the NEXT zettel in the chain.
   - '202503150930 - Atomic Notes.md' — concept: atomic notes; links to [[202503150945 - Fleeting vs Permanent]]
   - '202503150945 - Fleeting vs Permanent.md' — concept: note maturity; links to [[202503151000 - Linking Thought]]
   - '202503151000 - Linking Thought.md' — concept: linked thinking; links to [[202503151015 - Zettelkasten Method]]
   - '202503151015 - Zettelkasten Method.md' — concept: the method; links to [[202503151030 - Knowledge Graph]]
   - '202503151030 - Knowledge Graph.md' — concept: graph of ideas; links to [[202503151045 - Spaced Review]]
   - '202503151045 - Spaced Review.md' — concept: periodic review; no forward link, include an inline tag #zettel
3. Create 'Index.md' in the vault ROOT (not in Zettels) with a level-1 heading 'Zettel Index', an ordered list of wikilinks to all 6 zettels in the order above, and the inline tag #index.

The vault must end up with exactly 7 notes total.

Zettels folder exists

check-note-has-frontmatter /home/user/Documents/ZettelVault 'Zettels/202503150930 - Atomic Notes' type zettel

First zettel has type=zettel

check-note-has-frontmatter /home/user/Documents/ZettelVault 'Zettels/202503150930 - Atomic Notes' created 2025-03-15

First zettel has created=2025-03-15

check-note-has-tag /home/user/Documents/ZettelVault 'Zettels/202503150930 - Atomic Notes' zettel

First zettel has #zettel tag

check-note-links-to /home/user/Documents/ZettelVault 'Zettels/202503150930 - Atomic Notes' '202503150945 - Fleeting vs Permanent'

Chain link 1->2

check-note-links-to /home/user/Documents/ZettelVault 'Zettels/202503150945 - Fleeting vs Permanent' '202503151000 - Linking Thought'

Chain link 2->3

check-note-links-to /home/user/Documents/ZettelVault 'Zettels/202503151000 - Linking Thought' '202503151015 - Zettelkasten Method'

Chain link 3->4

check-note-links-to /home/user/Documents/ZettelVault 'Zettels/202503151015 - Zettelkasten Method' '202503151030 - Knowledge Graph'

Chain link 4->5

check-note-links-to /home/user/Documents/ZettelVault 'Zettels/202503151030 - Knowledge Graph' '202503151045 - Spaced Review'

Chain link 5->6

check-note-has-frontmatter /home/user/Documents/ZettelVault 'Zettels/202503151045 - Spaced Review' type zettel

Last zettel has type=zettel

check-note-has-tag /home/user/Documents/ZettelVault 'Zettels/202503151045 - Spaced Review' zettel

Last zettel has #zettel tag

Index note exists

check-note-has-tag /home/user/Documents/ZettelVault Index index

Index has #index tag

check-note-links-to /home/user/Documents/ZettelVault Index '202503150930 - Atomic Notes'

Index links to first zettel

check-note-links-to /home/user/Documents/ZettelVault Index '202503151045 - Spaced Review'

Index links to last zettel

Vault has exactly 7 notes


Edit UI.config: set RecentCaptureFiles to triangle.rdc and draw_call.rdc, set DefaultCaptureSaveDirectory to /home/user/captures. Preserve rdocConfigData=1.

triangle.rdc is still a valid capture

draw_call.rdc is still a valid capture

rdocConfigData marker preserved

triangle.rdc is in RecentCaptureFiles

draw_call.rdc is in RecentCaptureFiles

DefaultCaptureSaveDirectory points at /home/user/captures


Configure monospace profile: UIStyle=Light, Font_GlobalScale=1.25, Font_Family='DejaVu Sans', Font_MonoFamily='DejaVu Sans Mono', Font_PreferMonospaced=true. Preserve rdocConfigData.

UIStyle Light

Font_GlobalScale 1.25

Font_Family DejaVu Sans

check-setting Font_MonoFamily "DejaVu Sans Mono"

Font_MonoFamily DejaVu Sans Mono

Font_PreferMonospaced true

rdocConfigData preserved


Create a preset file /home/user/captures/hardened.cap: executable='/usr/local/games/hardened_game', workingDir='/home/user/games/hardened', commandLine='--vulkan --safe-mode --log-level debug', environment with VK_LOADER_LAYERS_ENABLE, RDOC_DEBUG_LOG, MESA_DEBUG, VULKAN_SDK, options APIValidation=true, CaptureCallstacks=true, CaptureAllCmdLists=true, RefAllResources=true, VerifyBufferAccess=true, autoStart=false. Register in UI.config.

hardened.cap exists

hardened.cap is at least 400 bytes

isinstance(result, dict) and 'error' not in result

hardened.cap parses as valid capture-settings JSON

executable is /usr/local/games/hardened_game

workingDir is /home/user/games/hardened

commandLine includes --safe-mode

commandLine includes --log-level

env registers VK_LOADER_LAYERS_ENABLE

env registers RDOC_DEBUG_LOG

env registers MESA_DEBUG

env registers VULKAN_SDK

isinstance(result.get('environment'), list) and len(result['environment']) == 4

environment has exactly 4 entries

check-cap-option /home/user/captures/hardened.cap APIValidation true

APIValidation is true

check-cap-option /home/user/captures/hardened.cap CaptureCallstacks true

CaptureCallstacks is true

check-cap-option /home/user/captures/hardened.cap CaptureAllCmdLists true

CaptureAllCmdLists is true

check-cap-option /home/user/captures/hardened.cap RefAllResources true

RefAllResources is true

check-cap-option /home/user/captures/hardened.cap VerifyBufferAccess true

VerifyBufferAccess is true

check-cap-option /home/user/captures/hardened.cap HookIntoChildren false

HookIntoChildren is false

result.get('autoStart') is False and result.get('queueFrameCap') == 3 and result.get('numQueuedFrames') == 10

autoStart=false, queueFrameCap=3, numQueuedFrames=10

RecentCaptureSettings is exactly the hardened.cap path

UI.config rdocConfigData marker preserved


Create a preset file /home/user/captures/extended.cap: executable='/usr/local/games/sweep_target', workingDir='/home/user/sweeps', commandLine='--sweep-frames', environment with RDOC_SWEEP_MODE, options APIValidation=true, CaptureAllCmdLists=true, RefAllResources=true, queueFrameCap=10, numQueuedFrames=30.

executable

workingDir

--sweep-frames flag

RDOC_SWEEP_MODE env present

check-cap-option /home/user/captures/extended.cap APIValidation true

APIValidation true

check-cap-option /home/user/captures/extended.cap CaptureAllCmdLists true

CaptureAllCmdLists true

check-cap-option /home/user/captures/extended.cap RefAllResources true

RefAllResources true

result.get('queueFrameCap') == 10 and result.get('numQueuedFrames') == 30

queueFrameCap=10, numQueuedFrames=30


Create a preset file /home/user/captures/launcher.cap: executable='/usr/local/games/game_launcher', workingDir='/home/user/games', commandLine='--launch-child engine_process', options HookIntoChildren=true, APIValidation=false, CaptureCallstacks=false, CaptureAllCmdLists=false, DebugOutputMute=true, RefAllResources=false, VerifyBufferAccess=false, environment empty, autoStart=false.

launcher.cap exists

launcher.cap parses as JSON

executable is game_launcher

workingDir is /home/user/games

commandLine includes --launch-child

check-cap-option /home/user/captures/launcher.cap HookIntoChildren true

HookIntoChildren is true

check-cap-option /home/user/captures/launcher.cap APIValidation false

APIValidation is false

check-cap-option /home/user/captures/launcher.cap DebugOutputMute true

DebugOutputMute is true

check-cap-option /home/user/captures/launcher.cap CaptureCallstacks false

CaptureCallstacks is false

result.get('environment') == [] and result.get('autoStart') is False

environment is empty list; autoStart is false


Create a preset file /home/user/captures/perf.cap: executable='/usr/local/games/perf_target', workingDir='/home/user/perf', commandLine='--benchmark --frames 1000', options APIValidation=false, CaptureCallstacks=false, CaptureAllCmdLists=false, DebugOutputMute=true, RefAllResources=false, VerifyBufferAccess=false, HookIntoChildren=false, environment empty, autoStart=true, queueFrameCap=500, numQueuedFrames=1.

executable

workingDir

--benchmark flag

--frames flag

check-cap-option /home/user/captures/perf.cap APIValidation false

APIValidation false

check-cap-option /home/user/captures/perf.cap CaptureCallstacks false

CaptureCallstacks false

check-cap-option /home/user/captures/perf.cap DebugOutputMute true

DebugOutputMute true

result.get('queueFrameCap') == 500 and result.get('numQueuedFrames') == 1 and result.get('autoStart') is True

queueFrameCap=500, numQueuedFrames=1, autoStart=true


Create a preset file /home/user/captures/triangle_demo.cap: executable='/usr/local/games/triangle_demo', workingDir='/home/user/games', commandLine='--width 1280 --height 720 --vulkan', environment with VK_LOADER_LAYERS_ENABLE and RDOC_DEBUG_LOG, options APIValidation=true, CaptureCallstacks=true, RefAllResources=true, VerifyBufferAccess=true, autoStart=true. Register in UI.config.

triangle_demo.cap was created on disk

triangle_demo.cap is at least 300 bytes (non-trivial preset)

triangle_demo.cap parses as a valid qrenderdoc capture-settings JSON

executable is /usr/local/games/triangle_demo

workingDir is /home/user/games

commandLine contains the --vulkan flag

commandLine contains the --width flag

check-cap-option /home/user/captures/triangle_demo.cap APIValidation true

options.APIValidation == true

check-cap-option /home/user/captures/triangle_demo.cap CaptureCallstacks true

options.CaptureCallstacks == true

check-cap-option /home/user/captures/triangle_demo.cap HookIntoChildren false

options.HookIntoChildren == false

check-cap-option /home/user/captures/triangle_demo.cap RefAllResources true

options.RefAllResources == true

check-cap-option /home/user/captures/triangle_demo.cap VerifyBufferAccess true

options.VerifyBufferAccess == true

environment registers VK_LOADER_LAYERS_ENABLE

environment registers RDOC_DEBUG_LOG

result.get('autoStart') is True and result.get('queueFrameCap') == 1 and result.get('numQueuedFrames') == 5

autoStart=true, queueFrameCap=1, numQueuedFrames=5


Create a preset file /home/user/captures/layer_only.cap: executable='/usr/local/games/vk_only', workingDir='/home/user', commandLine='', environment with VK_INSTANCE_LAYERS, options APIValidation=false, HookIntoChildren=false, autoStart=false.

executable

VK_INSTANCE_LAYERS env present

isinstance(result.get('environment'), list) and len(result['environment']) == 1

environment has exactly 1 entry

check-cap-option /home/user/captures/layer_only.cap APIValidation false

APIValidation false

check-cap-option /home/user/captures/layer_only.cap HookIntoChildren false

HookIntoChildren false

autoStart false


Create cross-API capture presets: /home/user/captures/app_vulkan.cap (--api vulkan, APIValidation=true), /home/user/captures/app_d3d12.cap (--api d3d12, APIValidation=true), /home/user/captures/app_opengl.cap (--api opengl, APIValidation=false), executable='/usr/local/games/cross_app', workingDir='/home/user/cross', autoStart=false. Register in UI.config RecentCaptureSettings in order [vulkan,d3d12,opengl].

vulkan preset exists

d3d12 preset exists

opengl preset exists

vulkan exec

d3d12 exec

opengl exec

vulkan cmdline

d3d12 cmdline

opengl cmdline

check-cap-option /home/user/captures/app_vulkan.cap APIValidation true

vulkan APIValidation true

check-cap-option /home/user/captures/app_opengl.cap APIValidation false

opengl APIValidation false

result.get('settings') == ['/home/user/captures/app_vulkan.cap', '/home/user/captures/app_d3d12.cap', '/home/user/captures/app_opengl.cap']

RecentCaptureSettings ordered [vulkan, d3d12, opengl]

rdocConfigData preserved


The directory /home/user/staging contains five capture files that must be sorted into a final archive.

Starting files in /home/user/staging:
  frame_a.rdc  (valid)
  frame_b.rdc  (valid)
  frame_c.rdc  (valid)
  frame_bad1.rdc  (corrupt — bad magic bytes)
  frame_bad2.rdc  (corrupt — bad magic bytes)

Reorganize them as follows:
1. Create /home/user/archive/verified and /home/user/archive/quarantine.
2. Move the three VALID .rdc files into /home/user/archive/verified. They must keep their original names.
3. Move the TWO corrupt .rdc files into /home/user/archive/quarantine. They must keep their original names.
4. Leave the /home/user/staging directory empty of .rdc files.

verified has 3 .rdc files

quarantine has 2 .rdc files

staging has no .rdc files

frame_a valid in verified

frame_b valid in verified

frame_c valid in verified

bad1 is invalid in quarantine

bad2 is invalid in quarantine

all(c['valid'] for c in result.get('captures', []))

all captures in verified are valid


Organize capture files by size: create small/medium/large directories, move tiny.rdc to small/, medium.rdc to medium/, large.rdc to large/, configure UI.config RecentCaptureFiles with large then medium, preserve rdocConfigData.

tiny in small/ is valid

medium in medium/ is valid

large in large/ is valid

large.rdc is >= 1 KB

tiny.rdc is < 200 bytes

incoming emptied

result.get('files') == ['/home/user/sized/large/large.rdc', '/home/user/sized/medium/medium.rdc']

RecentCaptureFiles ordered [large, medium]

rdocConfigData preserved


Create directory snapshot structure: organize day1a.rdc and day1b.rdc into /home/user/snapshots/day1, day2a.rdc and day2b.rdc into /home/user/snapshots/day2, day3a.rdc and day3b.rdc into /home/user/snapshots/day3, preserving original files in /home/user/captures.

originals still 6

day1 dir

day2 dir

day3 dir

day1 has 2

day2 has 2

day3 has 2

day1a copy valid

day1b copy valid

day2a copy valid

day2b copy valid

day3a copy valid

day3b copy valid

original day1a present

original day3b present


Version-prefix and organize captures: rename unlabeled .rdc files with v258_ prefix, move to labeled directory, set save directory, clear unlabeled folder.

labeled has 3 captures

unlabeled empty

v258_shadow.rdc version 258

v258_lighting.rdc version 0x102

v258_post.rdc version 258

v258_shadow.rdc valid

v258_lighting.rdc valid

v258_post.rdc valid

DefaultCaptureSaveDirectory set

rdocConfigData preserved


The directory /home/user/captures contains five .rdc files, two corrupt. Delete broken_x.rdc and broken_y.rdc, create quarantine directory, leave valid captures intact. Final state: 3 valid .rdc files, empty quarantine dir.

3 captures remain

scene_a valid

scene_b valid

scene_c valid

broken_x deleted

broken_y deleted

quarantine dir exists

quarantine empty of .rdc


Open /home/user/.local/share/qrenderdoc/UI.config in a text editor. Set Comments_ShowOnLoad=false, EventBrowser_AddFake=false, EventBrowser_ApplyColors=true. Preserve rdocConfigData marker.

UI.config still exists

rdocConfigData marker preserved

Comments_ShowOnLoad is false

EventBrowser_AddFake is false

EventBrowser_ApplyColors is true


Remove byte-for-byte duplicate capture files from /home/user/captures/ keeping only unique files.

3 captures remain

draw1 kept

frameA kept

unique kept

draw2 deleted

draw3 deleted

frameB deleted

draw1 valid

frameA valid

unique valid


Set up a new RenderDoc capture workspace using the capture files currently located in `/home/user/captures`. Move `alpha_test.rdc`, `beta_test.rdc`, and `gamma_test.rdc` into `/home/user/work/rdoc_captures`, creating any required directories. Update the RenderDoc UI configuration at `/home/user/.local/share/qrenderdoc/UI.config` so that this directory becomes the default capture location and the three moved captures appear in the recent capture list. Preserve the existing configuration structure and ensure the capture files remain unchanged. After completion, the three capture files should exist only under `/home/user/work/rdoc_captures`, and `/home/user/captures` should contain no `.rdc` files.

new workspace dir

3 captures in workspace

original captures empty

alpha valid

beta valid

gamma valid

save dir set

alpha in recents

beta in recents

gamma in recents

marker preserved


Open the RenderDoc config file /home/user/.local/share/qrenderdoc/UI.config (JSON, open it in a text editor such as gedit). Change exactly these three keys to fully disable analytics and update checks:

1. Set "Analytics_TotalOptOut" to true.
2. Set "Analytics_ManualCheck" to false.
3. Set "CheckUpdate_AllowChecks" to false.

All other keys, including "rdocConfigData": 1, must remain intact. Save the file.

UI.config still exists

rdocConfigData marker preserved

Analytics_TotalOptOut is true

Analytics_ManualCheck is false

CheckUpdate_AllowChecks is false


Open /home/user/.local/share/qrenderdoc/UI.config (it is a JSON document even though the extension is .config) in a text editor. Apply these changes and save:

1. Set "Font_GlobalScale" to the number 1.75 (not a string — a JSON float).
2. Set "Font_PreferMonospaced" to true.

Leave every other key, including the "rdocConfigData": 1 marker, unchanged.

UI.config still exists

rdocConfigData marker preserved

Font_GlobalScale is 1.75

Font_PreferMonospaced is true


Configure Buffer Formatter: BufferFormatter_ShowHex=true, BufferFormatter_FixedStride=32, BufferFormatter_ShowByteRange=true. Preserve rdocConfigData.

UI.config still exists

rdocConfigData marker preserved

ShowHex is true

FixedStride is 32

ShowByteRange is true


Edit UI.config: set Comments_ShowOnLoad=false, Comments_FontSize=11, Comments_Monospaced=true, CommentsPanel_History=[0,1,2]. Preserve rdocConfigData=1.

UI.config still exists

rdocConfigData marker preserved

ShowOnLoad false

FontSize 11

Monospaced true

History array equals [0,1,2]


Create /home/user/captures/game.cap with executable='/usr/local/bin/my_game', a RenderDoc capture-settings file existing at /home/user/captures/game.cap, workingDir='/home/user/games/shipping', options APIValidation=true, CaptureCallstacks=true, VerifyBufferAccess=true. Register in UI.config, preserve rdocConfigData=1.

game.cap exists

game.cap is at least 150 bytes

UI.config still exists

rdocConfigData marker preserved

RecentCaptureSettings references game.cap


Configure Event Browser: EventBrowser_ApplyColors=true, EventBrowser_CollapseMarkers=true, EventBrowser_ShowParameterNames=true, EventBrowser_HideEmpty=true, bookmarks=[42,128,377]. Preserve rdocConfigData.

UI.config still exists

rdocConfigData marker preserved

ApplyColors true

CollapseMarkers true

ShowParameterNames true

HideEmpty true

Bookmarks array equals [42,128,377]


Edit UI.config: set Mesh_CurrentStage='VSOut', Mesh_ShowNormals=true, Mesh_Wireframe=true, Mesh_SolidShadeMode='secondary'. Preserve rdocConfigData=1.

UI.config still exists

rdocConfigData marker preserved

Mesh_CurrentStage VSOut

ShowNormals true

Wireframe true

SolidShadeMode secondary


Create a Python script at /home/user/scripts/export_pipeline.py and configure the Python shell in UI.config.

Python script exists

Script is at least 200 bytes

UI.config still exists

rdocConfigData marker preserved

PythonShell_RecentFiles contains the script path


Configure Pixel History debug settings: PixelHistory_ShowFailures=true, PixelHistory_ColorByPrimitive=true, ShaderViewer_AutoStep=true. Preserve rdocConfigData.

UI.config still exists

rdocConfigData marker preserved

ShowFailures true

ColorByPrimitive true

AutoStep true


Create /home/user/.local/share/qrenderdoc/python_history.txt with >=40 bytes text content. Edit UI.config: set PythonShell_AutoLoad=true, preserve rdocConfigData=1.

Python history file exists

History file is at least 40 bytes

UI.config still exists

rdocConfigData marker preserved

PythonShell_AutoLoad is true


Edit UI.config: set RemoteHosts=build-box.lan:39570 and perf-node-01.internal:39570, AdbScabbardPath=/opt/android-sdk/platform-tools/adb, AlwaysReplayLocally=false. Preserve rdocConfigData=1.

UI.config still exists

rdocConfigData marker preserved

RemoteHosts array contains the two hosts in the correct order

AdbScabbardPath is correct

AlwaysReplayLocally is false


Edit UI.config: set TextureViewer_MipLevel=2, TextureViewer_PerTexYFlip=true, TextureViewer_HexDisplay=true, TextureViewer_ResetRange=false. Preserve rdocConfigData=1.

UI.config still exists

rdocConfigData marker preserved

Mip level is 2

Per-texture Y-flip is true

Hex display is true

ResetRange is false


Configure Timeline: Timeline_ShowDrawcalls=true. Performance counters: active=['GPUDuration','VertexCount','PixelCount','IAPrimitives'], ShowDescription=true. Preserve rdocConfigData.

UI.config still exists

rdocConfigData marker preserved

Timeline_ShowDrawcalls true

Active counters list matches

ShowDescription true


Create three capture presets: /home/user/captures/vk_game.cap (--renderer vulkan, APIValidation=true, autoStart=false), /home/user/captures/gl_demo.cap (--opengl, HookIntoChildren=true, autoStart=false), /home/user/captures/tool_sim.cap (--batch, CaptureCallstacks=true, autoStart=true). Register all three in UI.config RecentCaptureSettings, preserve rdocConfigData.

vk_game.cap exists

gl_demo.cap exists

tool_sim.cap exists

vk_game.cap points at vk_game

gl_demo.cap points at gl_demo

tool_sim.cap points at tool_sim

vk_game.cap commandLine has --renderer

gl_demo.cap commandLine has --opengl

tool_sim.cap commandLine has --batch

check-cap-option /home/user/captures/vk_game.cap APIValidation true

vk_game.cap APIValidation true

check-cap-option /home/user/captures/gl_demo.cap HookIntoChildren true

gl_demo.cap HookIntoChildren true

check-cap-option /home/user/captures/tool_sim.cap CaptureCallstacks true

tool_sim.cap CaptureCallstacks true

tool_sim.cap autoStart is true

vk_game.cap autoStart is false

result.get('settings') == ['/home/user/captures/vk_game.cap', '/home/user/captures/gl_demo.cap', '/home/user/captures/tool_sim.cap']

RecentCaptureSettings is the ordered list of three preset paths


Create /home/user/captures/archive/. Move raw_dump.rdc and raw_dump2.rdc from /home/user/captures/ to /home/user/captures/archive/. Rename triangle.rdc to main_frame.rdc in /home/user/captures/. Leave notes.txt untouched. Result: /home/user/captures/ has main_frame.rdc and notes.txt; /home/user/captures/archive/ has raw_dump.rdc and raw_dump2.rdc.

main_frame.rdc exists in /home/user/captures

main_frame.rdc is a valid capture

triangle.rdc no longer in /home/user/captures

Exactly 1 .rdc file remains in /home/user/captures

archive subdirectory exists

raw_dump.rdc moved into archive

raw_dump2.rdc moved into archive

archive has exactly 2 .rdc files

notes.txt is untouched


Create /home/user/projects/titan_captures/. Create titan_client.cap (rdocConfigData=1, settings.executable='/usr/local/bin/titan_client', workingDir='/home/user/projects/titan_captures', commandLine='--client', options={APIValidation:true,CaptureCallstacks:false,HookIntoChildren:false}, autoStart=false) and titan_server.cap (rdocConfigData=1, settings.executable='/usr/local/bin/titan_server', workingDir='/home/user/projects/titan_captures', commandLine='--server', options={APIValidation:true,CaptureCallstacks:true,HookIntoChildren:false}, autoStart=true). Edit UI.config: DefaultCaptureSaveDirectory='/home/user/projects/titan_captures', RecentCaptureSettings=['/home/user/projects/titan_captures/titan_client.cap','/home/user/projects/titan_captures/titan_server.cap'], preserve rdocConfigData=1.

titan_captures directory exists

titan_client.cap exists

titan_server.cap exists

titan_client executable

titan_server executable

--client flag

--server flag

check-cap-option /home/user/projects/titan_captures/titan_server.cap CaptureCallstacks true

server CaptureCallstacks true

server autoStart true

DefaultCaptureSaveDirectory set

RecentCaptureSettings ordered

rdocConfigData preserved


The UI configuration at /home/user/.local/share/qrenderdoc/UI.config currently has "RecentCaptureFiles" set to a list containing four entries (old_a through old_d under /home/user/captures).

A new capture at /home/user/captures/promoted.rdc has just been produced. Update the recent-captures history so that:

1. "RecentCaptureFiles" is a JSON array with exactly these five absolute paths in this order (newest first):
     /home/user/captures/promoted.rdc
     /home/user/captures/old_a.rdc
     /home/user/captures/old_b.rdc
     /home/user/captures/old_c.rdc
     /home/user/captures/old_d.rdc
2. "LastCaptureFilePath" is the exact string "/home/user/captures/promoted.rdc".
3. The "rdocConfigData": 1 marker must remain present.

Do not delete or rename any .rdc file on disk. The existing valid capture promoted.rdc in /home/user/captures must still exist and be a valid capture.

marker preserved

promoted.rdc valid

LastCaptureFilePath set

RecentCaptureFiles length 5

result.get('files', [''])[0] == '/home/user/captures/promoted.rdc'

promoted.rdc is first

promoted in recents

old_a in recents

old_b in recents

old_c in recents

old_d in recents


The directory /home/user/captures contains five capture files with ad-hoc per-developer names:

  john_ok.rdc
  unnamed.rdc
  snapshot_final2.rdc
  backup_old.rdc
  wip_trial.rdc

Rename them to the canonical project convention (frame_001.rdc through frame_005.rdc), using this exact mapping:

  john_ok.rdc         -> frame_001.rdc
  unnamed.rdc         -> frame_002.rdc
  snapshot_final2.rdc -> frame_003.rdc
  backup_old.rdc      -> frame_004.rdc
  wip_trial.rdc       -> frame_005.rdc

Keep file contents byte-identical. Do not touch any other file in the directory. When finished, /home/user/captures must contain exactly 5 .rdc files, all valid.

5 captures total

frame_001 exists

frame_002 exists

frame_003 exists

frame_004 exists

frame_005 exists

frame_001 valid

frame_002 valid

frame_003 valid

frame_004 valid

frame_005 valid

original john_ok removed

original unnamed removed

original snapshot_final2 removed

original backup_old removed

original wip_trial removed


Harden the RenderDoc configuration for a shared multi-user workstation. The UI configuration file is at /home/user/.local/share/qrenderdoc/UI.config. It already contains some entries in RecentCaptureFiles and RecentCaptureSettings. Apply all of the following changes in one save:

1. Set "Analytics_TotalOptOut" to true.
2. Set "Analytics_ManualCheck" to false.
3. Set "CheckUpdate_AllowChecks" to false.
4. Set "AllowGlobalHook" to false.
5. Set "AllowProcessInject" to false.
6. Set "RecentCaptureFiles" to an empty JSON array [].
7. Set "RecentCaptureSettings" to an empty JSON array [].

The top-level "rdocConfigData": 1 marker must remain present.

marker preserved

opt out

no manual analytics

no update checks

no global hook

no inject

RecentCaptureFiles empty

RecentCaptureSettings empty


The RenderDoc UI configuration file is at /home/user/.local/share/qrenderdoc/UI.config. It is a plain JSON document (despite the .config extension). Open it in a text editor (for example with `gedit /home/user/.local/share/qrenderdoc/UI.config`) and make exactly these two changes, leaving every other key unchanged:

1. Set the key "UIStyle" to the exact string "Dark" (case-sensitive).
2. Set the key "Font_GlobalScale" to the number 1.25 (not "1.25" — a JSON number, not a string).

The top-level key "rdocConfigData" must remain present with the value 1 — do not delete it. Save the file.

UI.config still exists

rdocConfigData marker preserved

UIStyle is Dark

Font_GlobalScale is 1.25


Edit UI.config: set UIStyle='Dark', Font_GlobalScale=1.4, Font_PreferMonospaced=true, TextureViewer_ResetRange=true, TextureViewer_PerTexSettings=true, EventBrowser_ApplyColors=true, Comments_ShowOnLoad=false. Preserve rdocConfigData=1.

UI.config still exists

rdocConfigData marker preserved

UIStyle is Dark

Font_GlobalScale is 1.4

Font_PreferMonospaced true

TextureViewer_ResetRange true

TextureViewer_PerTexSettings true

EventBrowser_ApplyColors true

Comments_ShowOnLoad false


Create /home/user/captures/current/ and /home/user/captures/legacy/. Move alpha.rdc, beta.rdc, gamma.rdc (version 0x102) to current/. Move delta.rdc, epsilon.rdc, zeta.rdc (version 0x101) to legacy/. Delete bogus.rdc. Edit UI.config RecentCaptureFiles to ['/home/user/captures/current/alpha.rdc','/home/user/captures/current/beta.rdc','/home/user/captures/current/gamma.rdc'], preserve rdocConfigData=1.

current/ subdir exists

legacy/ subdir exists

exactly 3 .rdc in current/

exactly 3 .rdc in legacy/

alpha.rdc valid

beta.rdc valid

gamma.rdc valid

alpha version 0x102

delta version 0x101

epsilon version 0x101

zeta version 0x101

bogus.rdc deleted

alpha in recents

beta in recents

gamma in recents

rdocConfigData preserved


The directory /home/user/captures contains two files:

  good_frame.rdc  -- a real RenderDoc capture
  bad_frame.rdc   -- a corrupted file whose first bytes are NOT the RenderDoc magic

Do the following:

1. Rename /home/user/captures/good_frame.rdc to /home/user/captures/verified.rdc (keep its contents byte-identical).
2. Delete /home/user/captures/bad_frame.rdc entirely.
3. Create a new subdirectory /home/user/captures/backup and copy verified.rdc into it, so that /home/user/captures/backup/verified.rdc also exists with the same contents.

When finished, both /home/user/captures/verified.rdc and /home/user/captures/backup/verified.rdc must be valid RenderDoc captures, and bad_frame.rdc and good_frame.rdc must no longer exist anywhere.

verified.rdc exists

verified.rdc is a valid capture

good_frame.rdc was renamed away

bad_frame.rdc was deleted

backup/ subdirectory exists

verified.rdc was copied into backup/

backup copy is a valid capture


Create /home/user/rdoc_workspace/, /home/user/rdoc_workspace/captures/, /home/user/rdoc_workspace/settings/. Move project_frame1.rdc and project_frame2.rdc from /home/user/staging/ to /home/user/rdoc_workspace/captures/. Edit UI.config: UIStyle='Dark', Font_GlobalScale=1.3, TextureViewer_ResetRange=true, DefaultCaptureSaveDirectory='/home/user/rdoc_workspace/captures', RecentCaptureFiles=['/home/user/rdoc_workspace/captures/project_frame1.rdc','/home/user/rdoc_workspace/captures/project_frame2.rdc'], preserve rdocConfigData=1. Empty /home/user/staging/ of .rdc files.

workspace dir

captures subdir

settings subdir

2 captures in workspace

staging empty of .rdc

project_frame1 valid

project_frame2 valid

UIStyle Dark

Font_GlobalScale 1.3

TextureViewer_ResetRange true

save dir set

frame1 in recents

frame2 in recents

marker preserved


A Shotcut project exists at /home/user/Documents/travel.mlt with 1280x720 resolution and 25 fps. A video file beach.mp4 is located at /home/user/Videos/beach.mp4.

Actions required:
1. Add beach.mp4 to the project.
2. Place beach.mp4 on the V1 timeline track as the only clip.
3. Save the project.

The saved travel.mlt must maintain the 1280x720 25 fps profile and contain a single clip referencing beach.mp4.

Project file exists

check-resolution /home/user/Documents/travel.mlt 1280 720

Project resolution is 1280x720

Project frame rate is 25 fps

Clip beach.mp4 is referenced in the project


A Shotcut project exists at /home/user/Documents/my_project.mlt with 1920x1080 resolution and 30 fps. Two video files exist: clip_a.mp4 and clip_b.mp4 in /home/user/Videos/.

Actions required:
1. Add clip_a.mp4 to the project.
2. Add clip_b.mp4 to the project.
3. Place both clips on the V1 timeline track sequentially, with clip_a.mp4 first followed immediately by clip_b.mp4.
4. Save the project.

The saved my_project.mlt must maintain the 1920x1080 30 fps profile and reference both clip_a.mp4 and clip_b.mp4 on the same track.

Project file exists at /home/user/Documents/my_project.mlt

check-resolution /home/user/Documents/my_project.mlt 1920 1080

Project resolution is 1920x1080

Project frame rate is 30 fps

Clip clip_a.mp4 is referenced in the project

Clip clip_b.mp4 is referenced in the project


Shotcut is already open with /home/user/Documents/filter_project.mlt (1920x1080, 30 fps). The project already contains one clip on the V1 timeline track referencing /home/user/Videos/source.mp4.

Steps:
1. Click the clip on the V1 timeline so it is selected.
2. Open the Filters panel (top toolbar or via the Filters menu).
3. Click the '+' button in the Filters panel to add a new filter.
4. Choose the VIDEO category and pick the 'Brightness' filter.
5. Leave the default brightness value; press Ctrl+S to save.

After saving, the project must still contain the existing clip and have a Brightness video filter applied to it.

Project file exists

check-resolution /home/user/Documents/filter_project.mlt 1920 1080

Project resolution is 1920x1080

The source.mp4 clip is still in the project

A Brightness filter is present in the project


Shotcut is open with a placeholder project /home/user/Documents/empty.mlt. Your task is to set Shotcut's default Video Mode to 'HD 1080p 30 fps'.

Steps:
1. Open the Settings menu in the top menu bar.
2. Hover the 'Video Mode' submenu.
3. Under 'ATSC' (or the default HD section), click the 'HD 1080p 30 fps' video mode so it becomes the selected default.
4. Press Ctrl+S on the project so the application flushes its configuration.

Shotcut stores this in ~/.config/Meltytech/Shotcut.conf under the [Settings] section as defaultProfile=atsc_1080p_30.

Shotcut configuration file exists

check-config-value Settings defaultProfile atsc_1080p_30

Settings.defaultProfile equals 'atsc_1080p_30'


A Shotcut project exists at /home/user/Documents/hd_export.mlt with 1280x720 resolution and 25 fps. The V1 timeline track contains one clip referencing /home/user/Videos/master.mp4.

Export the timeline to an MP4 file:
1. Use the default H.264 export preset.
2. The export must inherit the project's 1280x720 resolution and 25 fps (do not override width/height/frame rate).
3. Set the output path to /home/user/Videos/output_720p.mp4.
4. Complete the export.

The output file /home/user/Videos/output_720p.mp4 must be a valid H.264 MP4 with 1280x720 resolution.

Exported file exists at /home/user/Videos/output_720p.mp4

Exported file is a valid non-empty media file

check-export-codec /home/user/Videos/output_720p.mp4 h264 video

Exported video codec is h264

check-export-resolution /home/user/Videos/output_720p.mp4 1280 720

Exported video resolution is 1280x720


A Shotcut project exists at /home/user/Documents/export_me.mlt with 640x360 resolution and 30 fps. The V1 timeline track contains one clip referencing /home/user/Videos/source.mp4.

Export the timeline to an MP4 file:
1. Use the default H.264 export preset.
2. The export must inherit the project's 640x360 resolution and 30 fps (do not override width/height/frame rate).
3. Set the output path to /home/user/Videos/final.mp4.
4. Complete the export.

The output file /home/user/Videos/final.mp4 must be a valid H.264 MP4 with 640x360 resolution.

Exported final.mp4 exists at /home/user/Videos/final.mp4

Exported MP4 is a valid non-empty media file

check-export-codec /home/user/Videos/final.mp4 h264 video

Exported video codec is h264

check-export-resolution /home/user/Videos/final.mp4 640 360

Exported video resolution is 640x360


A Shotcut project is open at /home/user/Documents/multi_track.mlt (1920x1080, 30 fps). Three source files are available: /home/user/Videos/video1.mp4, /home/user/Videos/video2.mp4 and /home/user/Music/audio1.mp3.

Actions required:
1. Add video1.mp4, video2.mp4 and audio1.mp3 to the project.
2. Place video1.mp4 on the V1 video track.
3. Add a new video track (V2) and place video2.mp4 on it.
4. Add a new audio track and place audio1.mp3 on it.
5. Save the project.

The saved project must reference all three imported files.

Project file exists

check-resolution /home/user/Documents/multi_track.mlt 1920 1080

Project resolution is 1920x1080

video1.mp4 is referenced in the project

video2.mp4 is referenced in the project

audio1.mp3 is referenced in the project


Shotcut is open with a placeholder project /home/user/Documents/empty.mlt. Your task is to change the application theme to Dark.

Steps:
1. Open the Settings menu in the top menu bar.
2. Hover the 'Theme' submenu.
3. Click 'Dark' (if it is not already selected).
4. Give Shotcut a moment, then press Ctrl+S on the project so the application flushes its configuration.

This setting is persisted by Shotcut into ~/.config/Meltytech/Shotcut.conf under the [General] section as theme=dark.

Shotcut configuration file exists

General.theme setting equals 'dark'


Shotcut is already open with the empty project /home/user/Documents/sequence.mlt (1920x1080, 30 fps). Three short video files exist at /home/user/Videos/shot1.mp4, /home/user/Videos/shot2.mp4 and /home/user/Videos/shot3.mp4.

Actions required:
1. Add shot1.mp4, shot2.mp4 and shot3.mp4 to the project.
2. Place them on the V1 timeline track in this exact order: shot1 first, then shot2, then shot3.
3. Save the project.

The saved project at /home/user/Documents/sequence.mlt must still be 1920x1080 30 fps and reference all three clips.

Project file exists

check-resolution /home/user/Documents/sequence.mlt 1920 1080

Project resolution is 1920x1080

Project frame rate is 30 fps

shot1.mp4 is referenced in the project

shot2.mp4 is referenced in the project

shot3.mp4 is referenced in the project


Shotcut is already open with /home/user/Documents/transition_project.mlt (1920x1080, 30 fps). Two short video files exist at /home/user/Videos/alpha.mp4 and /home/user/Videos/beta.mp4.

Actions required:
1. Add alpha.mp4 and beta.mp4 to the project.
2. Place alpha.mp4 on the V1 timeline track at the start (time 00:00:00.000).
3. Place beta.mp4 on the same V1 track so its start overlaps the end of alpha.mp4 by a small amount (about half a second). This will automatically create a dissolve transition in the overlap region.
4. Save the project.

The saved project must reference both clips and must contain a 'luma' transition.

Project file exists

alpha.mp4 is referenced in the project

beta.mp4 is referenced in the project

A luma (dissolve) transition is present


Shotcut is already open with /home/user/Documents/crop_me.mlt (1920x1080 30 fps). The project already contains one clip on the V1 timeline track referencing /home/user/Videos/wide_shot.mp4.

Actions required:
1. Add a crop filter to the clip on V1.
2. Use the default crop parameters (no changes to left/right/top/bottom values).
3. Save the project.

After saving, the project must still reference wide_shot.mp4 and must contain exactly one filter — a crop filter.

Project file exists

check-resolution /home/user/Documents/crop_me.mlt 1920 1080

Project resolution is 1920x1080

wide_shot.mp4 is still referenced

A crop filter is present

Project has exactly 1 filter


Shotcut is open with a placeholder project /home/user/Documents/pal_prefs.mlt. Your task is to set Shotcut's default Video Mode to 'PAL' (dv_pal).

Steps:
1. Open the Settings menu in the top menu bar.
2. Hover the 'Video Mode' submenu.
3. Under the 'SD' or 'Non-Broadcast' section, click the 'PAL' video mode so it becomes the selected default.
4. Give Shotcut a moment, then press Ctrl+S on the project so the application flushes its configuration.

Shotcut persists this in ~/.config/Meltytech/Shotcut.conf under the [Settings] section as defaultProfile=dv_pal.

Shotcut configuration file exists

check-config-value Settings defaultProfile dv_pal

Settings.defaultProfile equals 'dv_pal'


Shotcut is open with a placeholder project /home/user/Documents/prefs_uhd.mlt. Your task is to set Shotcut's default Video Mode to 'UHD 2160p 30 fps'.

Steps:
1. Open the Settings menu in the top menu bar.
2. Hover the 'Video Mode' submenu.
3. Under the 'UHD' section, click the 'UHD 2160p 30 fps' video mode so it becomes the selected default.
4. Give Shotcut a moment, then press Ctrl+S on the project so the application flushes its configuration.

Shotcut persists this in ~/.config/Meltytech/Shotcut.conf under the [Settings] section as defaultProfile=uhd_2160p_30.

Shotcut configuration file exists

check-config-value Settings defaultProfile uhd_2160p_30

Settings.defaultProfile equals 'uhd_2160p_30'


Shotcut is already open with /home/user/Documents/aac_export.mlt — a 1280x720 30 fps project that already contains one clip on the V1 timeline track referencing /home/user/Videos/with_audio.mp4 (which has both video and audio).

Export the timeline to /home/user/Videos/audio_out.mp4 with H.264 video codec and AAC audio codec. Wait for the export to complete before finishing.

Exported audio_out.mp4 exists

Exported file is valid and non-empty

check-export-codec /home/user/Videos/audio_out.mp4 h264 video

Exported video codec is h264

check-export-codec /home/user/Videos/audio_out.mp4 aac audio

Exported audio codec is aac


Shotcut is already open with /home/user/Documents/montage.mlt (1920x1080 30 fps, empty timeline). Five source videos exist: /home/user/Videos/clip1.mp4, /home/user/Videos/clip2.mp4, /home/user/Videos/clip3.mp4, /home/user/Videos/clip4.mp4, and /home/user/Videos/clip5.mp4.

Import all five clips and arrange them on the V1 timeline track in order: clip1, clip2, clip3, clip4, clip5 (from left to right). Save the project.

Project file exists

check-resolution /home/user/Documents/montage.mlt 1920 1080

Project resolution is 1920x1080

Project frame rate is 30 fps

clip1.mp4 is referenced

clip2.mp4 is referenced

clip3.mp4 is referenced

clip4.mp4 is referenced

clip5.mp4 is referenced

Project contains at least 5 clip producers


Shotcut is already open with /home/user/Documents/layered.mlt (1920x1080 30 fps, empty timeline). Four source files exist: /home/user/Videos/bg.mp4, /home/user/Videos/overlay.mp4, /home/user/Music/music.mp3, and /home/user/Music/voiceover.mp3.

Import all four media files. Place bg.mp4 on video track V1, overlay.mp4 on a second video track V2, music.mp3 on audio track A1, and voiceover.mp3 on audio track A2. Save the project.

Project file exists

check-resolution /home/user/Documents/layered.mlt 1920 1080

Project resolution is 1920x1080

bg.mp4 is referenced

overlay.mp4 is referenced

music.mp3 is referenced

voiceover.mp3 is referenced

Timeline tractor has at least 5 track references (bin + V1 + V2 + A1 + A2)


Shotcut is already open with /home/user/Documents/combo.mlt (1920x1080 30 fps, empty timeline). Two source videos exist: /home/user/Videos/intro.mp4 and /home/user/Videos/outro.mp4.

Import both clips and place them on the V1 timeline track so outro.mp4 overlaps the end of intro.mp4 by approximately half a second (this creates a luma dissolve transition). Add a Fade In Video filter to the intro.mp4 clip with default parameters. Save the project.

Project file exists

intro.mp4 is referenced

outro.mp4 is referenced

A luma (dissolve) transition is present

A fade filter is present (Fade In Video)