Prompt file imported from MattMagg/MisterSmith (
.codex/prompts/speckit.tasks.md). Fill in{{arguments}}before use. Copyright stays with the author.
User Input
{{arguments}}
You MUST consider the user input before proceeding (if not empty).
Pre-Execution Checks
Check for extension hooks (before tasks generation):
- Check if
.specify/extensions.ymlexists in the project root. - If it exists, read it and look for entries under the
hooks.before_taskskey - If the YAML cannot be parsed or is invalid, skip hook checking silently and continue normally
- Filter out hooks where
enabledis explicitlyfalse. Treat hooks without anenabledfield as enabled by default. - For each remaining hook, do not attempt to interpret or evaluate hook
conditionexpressions:- If the hook has no
conditionfield, or it is null/empty, treat the hook as executable - If the hook defines a non-empty
condition, skip the hook and leave condition evaluation to the HookExecutor implementation
- If the hook has no
- For each executable hook, output the following based on its
optionalflag:- Optional hook (
optional: true):## Extension Hooks **Optional Pre-Hook**: {extension} Command: `/{command}` Description: {description} Prompt: {prompt} To execute: `/{command}` - Mandatory hook (
optional: false):## Extension Hooks **Automatic Pre-Hook**: {extension} Executing: `/{command}` EXECUTE_COMMAND: {command} Wait for the result of the hook command before proceeding to the Outline.
- Optional hook (
- If no hooks are registered or
.specify/extensions.ymldoes not exist, skip silently
Outline
-
Setup: Run
.specify/scripts/bash/check-prerequisites.sh --jsonfrom repo root and parseFEATURE_DIRandAVAILABLE_DOCS. All paths must be absolute. For single quotes in args like "I'm Groot", use escape syntax: e.g.'I'\''m Groot'(or double-quote if possible:"I'm Groot"). -
Load packet context: Read from
FEATURE_DIR:- Required:
plan.md,spec.md - Optional:
data-model.md,contracts/,research.md,quickstart.md,analyze.md - Also read one recent landed
specs/*/tasks.mdpacket example from this repo so the output matches Mister Smith task-pack style.
- Required:
-
Generate the task pack:
- Start with status reconciliation and preserved baseline truth
- Add one blocking freeze section if the packet needs a scope or design checkpoint
- Generate one bounded section per user story or lane
- Within each story or lane, include:
- goal
- independent test
- targeted validation tasks
- implementation tasks
- checkpoint outcome
- Add a final validation and evidence section
- Add a parallel directive with allowed lanes and choke points
-
Task generation rules:
- Use
.specify/templates/tasks-template.mdas the structure - Keep every task specific enough that an LLM can execute it without extra context
- Use exact file paths in every implementation or documentation task
- Use
[P]only when the write set is disjoint and every blocking checkpoint in the current section is already complete - Keep deterministic checks and live-proof steps explicitly separate when both exist
- Include explicit final closure work such as
git diff --checkandscripts/verify_worktree_closure.sh --fetch --require-upstream --require-sync
- Use
-
Report: Output the path to
tasks.mdplus:- total task count
- task count per user story or lane
- blocking freeze tasks identified
- parallel opportunities identified
- final validation and evidence tasks identified
- format validation confirming all tasks use checkbox, ID, labels, and file paths
-
Check for extension hooks: After
tasks.mdis generated, check if.specify/extensions.ymlexists in the project root.- If it exists, read it and look for entries under the
hooks.after_taskskey - If the YAML cannot be parsed or is invalid, skip hook checking silently and continue normally
- Filter out hooks where
enabledis explicitlyfalse. Treat hooks without anenabledfield as enabled by default. - For each remaining hook, do not attempt to interpret or evaluate hook
conditionexpressions:- If the hook has no
conditionfield, or it is null/empty, treat the hook as executable - If the hook defines a non-empty
condition, skip the hook and leave condition evaluation to the HookExecutor implementation
- If the hook has no
- For each executable hook, output the following based on its
optionalflag:- Optional hook (
optional: true):## Extension Hooks **Optional Hook**: {extension} Command: `/{command}` Description: {description} Prompt: {prompt} To execute: `/{command}` - Mandatory hook (
optional: false):## Extension Hooks **Automatic Hook**: {extension} Executing: `/{command}` EXECUTE_COMMAND: {command}
- Optional hook (
- If no hooks are registered or
.specify/extensions.ymldoes not exist, skip silently
- If it exists, read it and look for entries under the
Task Generation Rules
CRITICAL: Mister Smith task packs are bounded packet execution guides, not generic sprint backlogs.
- Start with a blocking freeze when the packet needs one
- Keep user stories or lanes independently understandable and testable
- Include final validation and evidence tasks
- Do not create fake parallelism;
[P]requires a disjoint write set and completed blockers - Do not widen scope just to fill the task list
Checklist Format (REQUIRED)
Every task MUST strictly follow this format:
- [ ] [TaskID] [P?] [Story?] Description with file path
Format Components:
- Checkbox: ALWAYS start with
- [ ] - Task ID: Sequential number (
T001,T002,T003, ...) - [P] marker: Include ONLY when the task can run in parallel under the bounded packet rules
- [Story] label: Use
[US1],[US2],[US3], etc. for story-bound work - Description: Clear action with exact file path
Examples:
- [ ] T001 [US1] Freeze scope in specs/020-example/spec.md- [ ] T004 [P] [US1] Add targeted runtime test in crates/mister-smith-app/tests/example.rs- [ ] T010 [US2] Capture durable proof note in docs/plans/2026-03-26-example.md
Section Guidance
- Blocking freeze: required when packet scope, contract choice, or shared invariants must be frozen first
- Story sections: tests -> implementation -> checkpoint
- Final validation: include targeted tests, broader build or lint only when justified, and closure checks
- Parallel directive: list allowed lanes and shared choke points explicitly
Context
{{arguments}}