Execute the implementation plan by processing and executing all tasks defined in tasks.md
Installation
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
## Extension Hooks
**Automatic Pre-Hook**: {extension}
Executing: `/{command}`
EXECUTE_COMMAND: {command}
Wait for the result of the hook command before proceeding to the Outline.
If no hooks are registered or .specify/extensions.yml does not exist, skip silently
Outline
Run .specify/scripts/bash/check-prerequisites.sh --json --require-tasks --include-tasks from repo root and parse FEATURE_DIR and AVAILABLE_DOCS list. 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").
Check checklists status (if FEATURE_DIR/checklists/ exists):
Scan all checklist files in the checklists/ directory
For each checklist, count:
Total items: All lines matching - [ ] or - [X] or - [x]
FAIL: One or more checklists have incomplete items
If any checklist is incomplete:
Display the table with incomplete item counts
STOP and ask: "Some checklists are incomplete. Do you want to proceed with implementation anyway? (yes/no)"
Wait for user response before continuing
If user says "no" or "wait" or "stop", halt execution
If user says "yes" or "proceed" or "continue", proceed to step 3
If all checklists are complete:
Display the table showing all checklists passed
Automatically proceed to step 3
Load and analyze the implementation context:
REQUIRED: Read tasks.md for the complete task list and execution plan
REQUIRED: Read plan.md for tech stack, architecture, and file structure
IF EXISTS: Read data-model.md for entities and relationships
IF EXISTS: Read contracts/ for API specifications and test requirements
IF EXISTS: Read research.md for technical decisions and constraints
IF EXISTS: Read .specify/memory/constitution.md for governance constraints
IF EXISTS: Read quickstart.md for integration scenarios
Project Setup Verification:
REQUIRED: Create/verify ignore files based on actual project setup:
Detection & Creation Logic:
Check if the following command succeeds to determine if the repository is a git repo (create/verify .gitignore if so):
git rev-parse --git-dir 2>/dev/null
Check if Dockerfile* exists or Docker in plan.md → create/verify .dockerignore
Check if .eslintrc* exists → create/verify .eslintignore
Check if eslint.config.* exists → ensure the config's ignores entries cover required patterns
Check if .prettierrc* exists → create/verify .prettierignore
Check if .npmrc or package.json exists → create/verify .npmignore (if publishing)
Check if terraform files (*.tf) exist → create/verify .terraformignore
Check if .helmignore needed (helm charts present) → create/verify .helmignore
If ignore file already exists: Verify it contains essential patterns, append missing critical patterns only
If ignore file missing: Create with full pattern set for detected technology
Common Patterns by Technology (from plan.md tech stack):
Polish and validation: Unit tests, performance optimization, documentation
Progress tracking and error handling:
Report progress after each completed task
Halt execution if any non-parallel task fails
For parallel tasks [P], continue with successful tasks, report failed ones
Provide clear error messages with context for debugging
Suggest next steps if implementation cannot proceed
IMPORTANT For completed tasks, make sure to mark the task off as [X] in the tasks file.
Completion validation:
Verify all required tasks are completed
Check that implemented features match the original specification
Validate that tests pass and coverage meets requirements
Confirm the implementation follows the technical plan
Report final status with summary of completed work
Note: This command assumes a complete task breakdown exists in tasks.md. If tasks are incomplete or missing, suggest running /speckit.tasks first to regenerate the task list.
Check for extension hooks: After completion validation, check if .specify/extensions.yml exists in the project root.
If it exists, read it and look for entries under the hooks.after_implement key
If the YAML cannot be parsed or is invalid, skip hook checking silently and continue normally
Filter out hooks where enabled is explicitly false. Treat hooks without an enabled field as enabled by default.
For each remaining hook, do not attempt to interpret or evaluate hook condition expressions:
If the hook has no condition field, 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
For each executable hook, output the following based on its optional flag: