implement-specs
warpdotdev/common-skills
Implement approved features while keeping PRODUCT.md and TECH.md synchronized with code in a single PR.
What is implement-specs?
This skill guides you through building a feature after product and tech specs are approved. It emphasizes keeping specs and implementation aligned throughout the development process, updating specs as implementation reveals necessary changes, and delivering the feature and its documentation together in one PR.
- Read and understand approved PRODUCT.md and TECH.md before writing code
- Break work into concrete implementation steps aligned with specs
- Update specs immediately when implementation reveals necessary changes
- Add tests and verification artifacts following repository conventions
- Keep specs, code, tests, and optional tracking docs in the same PR
How to install implement-specs
npx skills add https://github.com/warpdotdev/common-skills --skill implement-specs- PRODUCT.md exists and has been reviewed and approved
- TECH.md exists (when the feature warrants one) and has been reviewed and approved
- Feature is ready to move from design to implementation phase
How to use implement-specs
- 1.Read PRODUCT.md and TECH.md thoroughly to understand expected behavior, constraints, risks, and validation plan
- 2.Optionally offer PROJECT_LOG.md or DECISIONS.md for large features to track checkpoints and decisions
- 3.Break the feature into concrete implementation steps based on the specs
- 4.Implement the feature while keeping behavior aligned with PRODUCT.md and architecture aligned with TECH.md
- 5.Update specs in the same PR whenever implementation reveals necessary changes to behavior or design
- 6.Add unit tests, integration tests, or end-to-end tests following repository conventions
- 7.Verify that final code matches the current specs before considering work complete
Use cases
- Building a feature after product and tech specs have been reviewed and approved
- Implementing complex features where tracking decisions and checkpoints reduces confusion
- Ensuring feature behavior matches user-facing spec requirements
- Maintaining architecture alignment with technical design during development
- Coordinating spec updates with code changes to keep documentation current
- Engineers implementing approved features
- Teams using spec-driven development workflows
- Projects requiring synchronized specs and implementation
- Developers working on features with formal product and technical design
implement-specs FAQ
Yes, when practical. Keeping specs, code, tests, and optional tracking documents in the same PR ensures the full feature evolution is reviewable in one place and the PR describes the feature that actually ships.
Update the checked-in specs immediately rather than letting them go stale. Update PRODUCT.md for user-facing behavior changes and TECH.md for architecture or sequencing changes, keeping those updates in the same PR as the corresponding code.
No, they are optional aids. Offer them only when they would reduce confusion or help future agents avoid re-exploring the same paths, typically for large or long-running features.
PRODUCT.md is the source of truth for user-facing behavior, and TECH.md is the source of truth for architecture, sequencing, and implementation shape.
Prefer unit tests and regression coverage following the repository's local testing conventions, plus integration or end-to-end tests for important user flows.
Full instructions (SKILL.md)
Source of truth, from warpdotdev/common-skills.
name: implement-specs description: Implement an approved feature from PRODUCT.md and TECH.md, keeping specs and code aligned in the same PR as implementation evolves. Use after the product and tech specs are approved and the next step is building the feature.
implement-specs
Implement an approved feature from PRODUCT.md and TECH.md.
Overview
Use this skill after the product and tech specs are approved. The goal is to build the feature described by the specs while keeping the checked-in specs and the implementation aligned as the work evolves.
Approved specs should live directly under a ticket-named directory in specs/, for example specs/APP-1234/PRODUCT.md and specs/APP-1234/TECH.md.
In many cases, the implementation should be pushed in the same PR as the product and tech specs. As the engineer iterates, changes to PRODUCT.md, TECH.md, and the code should all be pushed in that same PR so review stays anchored to the feature that will actually ship.
Prerequisites
Before using this skill:
- confirm that
PRODUCT.mdexists - confirm that
TECH.mdexists when the feature warranted one - confirm that the relevant specs have been reviewed and approved enough to start implementation
Workflow
1. Read the approved specs first
Treat:
PRODUCT.mdas the source of truth for user-facing behaviorTECH.mdas the source of truth for architecture, sequencing, and implementation shape
Make sure you understand the expected behavior, constraints, risks, and validation plan before writing code.
2. Offer optional implementation aids for large features
For large or long-running features, optionally offer one of these aids to the user before implementation begins:
PROJECT_LOG.mdto track checkpoints, explored paths, partial findings, and current implementation stateDECISIONS.mdto capture concrete product and technical decisions made during the PRD and tech design process
These are optional aids, not required deliverables. Offer them when they would reduce confusion or help future agents avoid re-exploring the same paths.
3. Plan and implement against the specs
Break the work into concrete implementation steps, then implement the feature against the approved specs.
During implementation:
- keep behavior aligned with
PRODUCT.md - keep architecture and sequencing aligned with
TECH.md - add or update tests and verification artifacts as the work lands
Use the same PR for the specs and implementation when practical so the full feature evolution is reviewable in one place.
4. Update specs as the implementation evolves
If implementation reveals that the intended behavior or design should change, update the checked-in specs rather than letting them go stale.
In particular:
- update
PRODUCT.mdwhen user-facing behavior, UX, edge cases, or success criteria change - update
TECH.mdwhen architecture, sequencing, module boundaries, or validation strategy change - keep those updates in the same PR as the corresponding code changes
The PR should describe the feature that actually ships, not just the initial draft of the specs.
5. Verify against the specs
Before considering the work complete, verify that the code matches the current specs.
Prefer:
- unit tests and regression coverage that follow the repository's local testing conventions
- integration or end-to-end tests for important user flows
Best Practices
- Keep specs and code synchronized throughout implementation.
- Prefer updating the spec immediately when decisions change rather than batching spec cleanup until the end.
- Use optional tracking documents only when they add real value for a complex feature.
- Keep the same PR coherent: spec updates, code changes, tests, and optional tracking docs should all support the same feature narrative.
Related Skills
spec-driven-implementationwrite-product-specwrite-tech-spec
Related skills
More from warpdotdev/common-skills and the wider catalog.
spec-driven-implementation
Write PRODUCT.md and TECH.md specs before implementation to drive clarity and quality for substantial features.
write-product-spec
Write detailed PRODUCT.md specs for significant Warp features, focused on user-visible behavior and invariants.
review-pr
Review pull request diffs and write structured feedback to review.json for workflow publication.
resolve-merge-conflicts
Extract conflict hunks and compact diffs to resolve Git merge conflicts without loading full files.
write-tech-spec
Write a TECH.md spec translating product intent into an implementation plan grounded in codebase structure.
fix-errors
Fix compilation errors, linting issues, and test failures in the warp Rust codebase.