<context>
Git status: !`git status --short`
Recent prompts: !`ls -t ./prompts/*.md | head -5`
</context>
<objective>
Execute one or more prompts from `./prompts/` as delegated sub-tasks with fresh context. Supports single prompt execution, parallel execution of multiple independent prompts, and sequential execution of dependent prompts.
</objective>
<input>
The user will specify which prompt(s) to run via $ARGUMENTS, which can be:
Single prompt:
- Empty (no arguments): Run the most recently created prompt (default behavior)
- A prompt number (e.g., "001", "5", "42")
- A partial filename (e.g., "user-auth", "dashboard")
Multiple prompts:
- Multiple numbers (e.g., "005 006 007")
- With execution flag: "005 006 007 --parallel" or "005 006 007 --sequential"
- If no flag specified with multiple prompts, default to --sequential for safety
</input>
<process>
<step1_parse_arguments>
Parse $ARGUMENTS to extract:
- Prompt numbers/names (all arguments that are not flags)
- Execution strategy flag (--parallel or --sequential)
<examples>
- "005" → Single prompt: 005
- "005 006 007" → Multiple prompts: [005, 006, 007], strategy: sequential (default)
- "005 006 007 --parallel" → Multiple prompts: [005, 006, 007], strategy: parallel
- "005 006 007 --sequential" → Multiple prompts: [005, 006, 007], strategy: sequential
</examples>
</step1_parse_arguments>
<step2_resolve_files>
For each prompt number/name:
- If empty or "last": Find with
!ls -t ./prompts/*.md | head -1
- If a number: Find file matching that zero-padded number (e.g., "5" matches "005-.md", "42" matches "042-.md")
- If text: Find files containing that string in the filename
<matching_rules>
- If exactly one match found: Use that file
- If multiple matches found: List them and ask user to choose
- If no matches found: Report error and list available prompts
</matching_rules>
</step2_resolve_files>
<step3_execute>
<single_prompt>
- Read the complete contents of the prompt file
- Delegate as sub-task using Task tool with subagent_type="general-purpose"
- Wait for completion
- Archive prompt to
./prompts/completed/ with metadata
- Commit all work:
- Stage files YOU modified with
git add [file] (never git add .)
- Determine appropriate commit type based on changes (fix|feat|refactor|style|docs|test|chore)
- Commit with format:
[type]: [description] (lowercase, specific, concise)
- Return results
</single_prompt>
<parallel_execution>
- Read all prompt files
- Spawn all Task tools in a SINGLE MESSAGE (this is critical for parallel execution):
<example>
Use Task tool for prompt 005
Use Task tool for prompt 006
Use Task tool for prompt 007
(All in one message with multiple tool calls)
</example>
- Wait for ALL to complete
- Archive all prompts with metadata
- Commit all work:
- Stage files YOU modified with
git add [file] (never git add .)
- Determine appropriate commit type based on changes (fix|feat|refactor|style|docs|test|chore)
- Commit with format:
[type]: [description] (lowercase, specific, concise)
- Return consolidated results
</parallel_execution>
<sequential_execution>
- Read first prompt file
- Spawn Task tool for first prompt
- Wait for completion
- Archive first prompt
- Read second prompt file
- Spawn Task tool for second prompt
- Wait for completion
- Archive second prompt
- Repeat for remaining prompts
- Archive all prompts with metadata
- Commit all work:
- Stage files YOU modified with
git add [file] (never git add .)
- Determine appropriate commit type based on changes (fix|feat|refactor|style|docs|test|chore)
- Commit with format:
[type]: [description] (lowercase, specific, concise)
- Return consolidated results
</sequential_execution>
</step3_execute>
</process>
<context_strategy>
By delegating to a sub-task, the actual implementation work happens in fresh context while the main conversation stays lean for orchestration and iteration.
</context_strategy>
<output>
<single_prompt_output>
✓ Executed: ./prompts/005-implement-feature.md
✓ Archived to: ./prompts/completed/005-implement-feature.md
<results>
[Summary of what the sub-task accomplished]
</results>
</single_prompt_output>
<parallel_output>
✓ Executed in PARALLEL:
- ./prompts/005-implement-auth.md
- ./prompts/006-implement-api.md
- ./prompts/007-implement-ui.md
✓ All archived to ./prompts/completed/
<results>
[Consolidated summary of all sub-task results]
</results>
</parallel_output>
<sequential_output>
✓ Executed SEQUENTIALLY:
- ./prompts/005-setup-database.md → Success
- ./prompts/006-create-migrations.md → Success
- ./prompts/007-seed-data.md → Success
✓ All archived to ./prompts/completed/
<results>
[Consolidated summary showing progression through each step]
</results>
</sequential_output>
</output>
<critical_notes>
- For parallel execution: ALL Task tool calls MUST be in a single message
- For sequential execution: Wait for each Task to complete before starting next
- Archive prompts only after successful completion
- If any prompt fails, stop sequential execution and report error
- Provide clear, consolidated results for multiple prompt execution
</critical_notes>