Implements approved specification proposals by working through tasks sequentially with testing and validation. Use when implementing changes, applying proposals, executing spec tasks, or building from approved plans. Triggers include "implement", "apply change", "execute spec", "work through tasks", "build feature", "start implementation".
/plugin marketplace add mahidalhan/skilled-intelligence-marketplace/plugin install spec-workflow@skilled-intelligenceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Systematically implements approved spec proposals by executing tasks sequentially with proper testing and validation.
Implementation follows a read → execute → test → validate cycle for each task:
Critical rule: Use TodoWrite to track progress. Never skip tasks or mark incomplete work as done.
Copy this checklist and track progress:
Implementation Progress:
- [ ] Step 1: Load and understand the proposal
- [ ] Step 2: Set up TodoWrite task tracking
- [ ] Step 3: Execute tasks sequentially
- [ ] Step 4: Test and validate each task
- [ ] Step 5: Update living specifications (if applicable)
- [ ] Step 6: Mark proposal as implementation-complete
Before starting, read all context:
# Read the proposal
cat spec/changes/{change-id}/proposal.md
# Read all tasks
cat spec/changes/{change-id}/tasks.md
# Read spec deltas to understand requirements
find spec/changes/{change-id}/specs -name "*.md" -exec cat {} \;
Understand:
Load tasks from tasks.md into TodoWrite before starting work:
**Pattern**:
Read tasks.md → Extract numbered list → Create TodoWrite entries
**Example**:
If tasks.md contains:
1. Create database migration
2. Implement API endpoint
3. Add tests
4. Update documentation
Then create TodoWrite with:
- content: "Create database migration", status: "in_progress"
- content: "Implement API endpoint", status: "pending"
- content: "Add tests", status: "pending"
- content: "Update documentation", status: "pending"
Why this matters: TodoWrite gives the user visibility into progress and ensures nothing gets skipped.
Work through tasks one at a time, in order:
For each task:
1. Mark as "in_progress" in TodoWrite
2. Execute the work
3. Test the work
4. Only mark "completed" after verification
NEVER skip ahead or batch multiple tasks before testing.
Task execution pattern:
## Task: {Task Description}
**What**: [Brief explanation of what this task does]
**Implementation**:
[Code changes, file edits, commands run]
**Verification**:
[How to verify this task is complete]
- [ ] Code compiles/runs
- [ ] Tests pass
- [ ] Meets requirement scenarios
**Status**: ✓ Complete / ✗ Blocked / ⚠ Partial
After each task, verify it works:
For code tasks:
# Run relevant tests
npm test # or pytest, cargo test, etc.
# Run linter
npm run lint
# Check types (if applicable)
npm run type-check
For database tasks:
# Verify migration runs
npm run db:migrate
# Check schema matches expected
npm run db:schema
For API tasks:
# Test endpoint manually
curl -X POST http://localhost:3000/api/endpoint \
-H "Content-Type: application/json" \
-d '{"test": "data"}'
# Or run integration tests
npm run test:integration
Only mark task complete after all verifications pass.
During implementation, if you discover the spec deltas need updates:
Note: Spec deltas are merged during archiving (Step 6), not during implementation.
After all tasks are complete:
# Create a completion marker
echo "Implementation completed: $(date)" > spec/changes/{change-id}/IMPLEMENTED
Tell the user:
## Implementation Complete
**Change**: {change-id}
**Tasks completed**: {count}
**Tests**: All passing
**Next step**: Archive this change to merge spec deltas into living documentation.
Say "archive {change-id}" or "archive this change" when ready.
If a task cannot be completed:
**Mark as blocked**:
- Keep status as "in_progress" (NOT "completed")
- Document the blocker clearly
- Create a new task for resolving the blocker
- Inform the user immediately
**Example**:
Task: "Implement payment processing"
Blocker: "Missing API credentials for payment gateway"
Action: Create new task "Obtain payment gateway credentials"
If tasks have dependencies, verify prerequisites before starting:
# Example: Database migration must run before API code
# Check migration status
npm run db:status
# Only proceed with API task if migration succeeded
Test incrementally, not at the end:
Good:
Task 1: Create model → Test model → Mark complete
Task 2: Create API → Test API → Mark complete
Task 3: Add validation → Test validation → Mark complete
Bad:
Task 1, 2, 3 → Implement all → Test everything → Debug failures
Keep README, API docs, and comments up to date as you go:
When adding a new API endpoint, also:
- Update API documentation
- Add example request/response
- Update OpenAPI/Swagger spec
- Add inline code comments
Parallel work: If tasks are truly independent (e.g., separate modules), you can work on them in parallel, but each must be tested independently.
Integration points: When task dependencies exist, use integration tests to verify the connection works.
Rollback strategy: For risky changes, create rollback tasks before deploying.
Typical order:
For gradual rollouts:
For API breaking changes:
Don't:
Do:
Solution:
1. Do NOT mark task complete
2. Debug the failure
3. Fix the code
4. Re-run tests
5. Only mark complete after pass
Solution:
1. Break into subtasks
2. Update TodoWrite with subtasks
3. Complete subtasks sequentially
4. Mark parent task complete after all subtasks done
Solution:
1. Pause current task
2. Complete dependency first
3. Test dependency
4. Resume original task
Token budget: This SKILL.md is approximately 430 lines, under the 500-line recommended limit.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.