
openspec-implementation
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 "openspec implement", "implement", "apply change", "execute spec", "work through tasks", "build feature", "start implementation".
- Installs
- 1.4K
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/forztf/open-skilled-sdd --skill openspec-implementation- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads openspec-implementation automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Specification Implementation
Systematically implements approved spec proposals by executing tasks sequentially with proper testing and validation.
Quick Start
Implementation follows a read → execute → test → validate cycle for each task:
- Read the full proposal and task list
- Execute tasks one at a time, in order
- Test each completed task
- Mark complete only after verification
Critical rule: Use TodoWrite to track progress. Never skip tasks or mark incomplete work as done.
Workflow
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
Step 1: Load and understand the proposal
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:
- Why this change is needed (from proposal.md)
- What the expected outcomes are
- Which specs will be affected
- What the acceptance criteria are (from scenarios)
Step 2: Set up TodoWrite task tracking
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.
Step 3: Execute tasks sequentially
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
Step 4: Test and validate each task
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.
Step 5: Update living specifications (if applicable)
During implementation, if you discover the spec deltas need updates:
- Document the discovery in proposal.md or a notes file
- Do NOT modify spec deltas during implementation
- After implementation completes, consider whether spec needs adjustment
Note: Spec deltas are merged during archiving (Step 6), not during implementation.
Step 6: Mark proposal as implementation-complete
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 "openspec archive {change-id}" or "archive this change" when ready.
Best Practices
Pattern 1: Blocked Tasks
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"
Pattern 2: Task Dependencies
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
Pattern 3: Incremental Testing
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
Pattern 4: Living Documentation
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
Advanced Topics
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.
Common Patterns
Pattern 1: Database + API + UI
Typical order:
- Database schema/migration
- Data access layer (models)
- Business logic layer (services)
- API endpoints (controllers)
- UI integration
- End-to-end tests
Pattern 2: Feature Flags
For gradual rollouts:
- Implement feature behind flag
- Test with flag enabled
- Deploy with flag disabled
- Enable flag incrementally
- Remove flag after full rollout
Pattern 3: Breaking Changes
For API breaking changes:
- Implement new version (v2)
- Keep old version (v1) working
- Add deprecation warnings to v1
- Migrate users to v2
- Remove v1 (separate task/proposal)
Anti-Patterns to Avoid
Don't:
- Skip testing individual tasks
- Mark tasks complete before verification
- Ignore failing tests ("I'll fix it later")
- Batch multiple tasks before testing
- Modify living specs during implementation
- Work out of order (dependencies break)
Do:
- Test each task immediately
- Fix failing tests before proceeding
- Update TodoWrite in real-time
- Document blockers clearly
- Communicate progress to user
- Keep commits atomic and descriptive
Troubleshooting
Issue: Tests failing after task completion
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
Issue: Task is too large
Solution:
1. Break into subtasks
2. Update TodoWrite with subtasks
3. Complete subtasks sequentially
4. Mark parent task complete after all subtasks done
Issue: Dependency not met
Solution:
1. Pause current task
2. Complete dependency first
3. Test dependency
4. Resume original task
Reference Materials
- TASK_PATTERNS.md - Common task execution patterns
- TESTING_STRATEGIES.md - Testing approaches by task type
Token budget: This SKILL.md is approximately 430 lines, under the 500-line recommended limit.
FAQ
What does the openspec-implementation skill do?
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 "openspec implement", "implement", "apply change", "execute spec", "work through tasks", "build feature", "start implementation".
How do I install openspec-implementation?
Run npx skills add https://github.com/forztf/open-skilled-sdd --skill openspec-implementation in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/openspec-implementation/ (personal) or .claude/skills/openspec-implementation/ (project).
Which AI agents can use openspec-implementation?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is openspec-implementation safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains openspec-implementation?
It is published by forztf in forztf/open-skilled-sdd. It has 1,416 recorded installs.
More from forztf/open-skilled-sdd
openspec-proposal-creation
forztf/open-skilled-sdd
Creates structured change proposals with specification deltas for new features, breaking changes, or architecture updates. Use when planning features, creating proposals, speccing changes, introducing new capabilities, or starting development workflows. Triggers include "openspec proposal", "create proposal", "plan change", "spec feature", "new capability", "add feature planning", "design spec".
openspec-proposal-creation-cn
forztf/open-skilled-sdd
通过openspec规范驱动的方法创建结构化的变更提案与规范差异。用于规划功能、创建提案、编写规范、引入新能力或启动开发流程。触发词包括 "openspec提案", "规划", "创建提案", "规划变更", "规范功能", "新功能", "新特性", "新需求", "添加功能规划", "设计规范"。
openspec-context-loading
forztf/open-skilled-sdd
Loads project context, lists existing specs and changes, searches capabilities and requirements. Use when user asks about project state, existing specs, active changes, available capabilities, or needs context discovery. Triggers include "openspec context", "what specs exist", "show changes", "list capabilities", "project context", "find specs", "what's in the spec", "show me specs".
openspec-archiving
forztf/open-skilled-sdd
Archives completed changes and merges specification deltas into living documentation. Use when changes are deployed, ready to archive, or specs need updating after implementation. Triggers include "openspec archive", "archive change", "merge specs", "complete proposal", "update documentation", "finalize spec", "mark as done".
openspec-context-loading-cn
forztf/open-skilled-sdd
Open the skill to read its SKILL.md instructions.
openspec-implementation-cn
forztf/open-skilled-sdd
Open the skill to read its SKILL.md instructions.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.