implement-specs

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.

npx skills add https://github.com/warpdotdev/common-skills --skill implement-specs

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.md exists
  • confirm that TECH.md exists 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.md as the source of truth for user-facing behavior
  • TECH.md as 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.md to track checkpoints, explored paths, partial findings, and current implementation state
  • DECISIONS.md to 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.md when user-facing behavior, UX, edge cases, or success criteria change
  • update TECH.md when 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-implementation
  • write-product-spec
  • write-tech-spec

More skills from warpdotdev

council
warpdotdev
Run a model-diverse subagent council to investigate the same problem from multiple perspectives, compare findings, and produce a final recommendation. Use this skill whenever the user asks for a council, second opinions, multiple agents/models to evaluate one question, parallel investigation, red-team/blue-team comparison, or help deciding between competing technical approaches.
researchcommunicationproject-management
spec-driven-implementation
warpdotdev
Drive a spec-first workflow for substantial features by writing PRODUCT.md before implementation, writing TECH.md when warranted, and keeping both specs updated as implementation evolves. Use when starting a significant feature, planning agent-driven implementation, or when the user wants product and tech specs checked into source control.
developmentdocumentproject-management
review-pr
warpdotdev
Review a pull request diff and write structured feedback to review.json for the workflow to publish. Use when reviewing a checked-out PR from local artifacts like pr_diff.txt and pr_description.txt and producing machine-readable review output instead of posting directly to GitHub.
code-reviewdevelopment
create-pr
warpdotdev
Create a pull request in the warp repository for the current branch. Use when the user mentions opening a PR, creating a pull request, submitting changes for review, or preparing code for merge.
developmentcode-review
implement-specs
warpdotdev
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.
developmentcode-reviewapi
cross-critique
warpdotdev
Run a second round on a contested question by circulating each subagent's independent proposal to the other authors and asking for structured pros and cons, then synthesize. Use this skill whenever you have multiple independent proposals or opinions on a contested decision — architecture tradeoffs, code review disagreements, design choices, competing root-cause theories — and want sharper analysis than you'd produce by synthesizing alone. Pairs naturally with the council and research skills;...
resolve-merge-conflicts
warpdotdev
Resolve Git merge conflicts by extracting only unresolved paths, conflict hunks, and compact diffs instead of loading whole files into context. Use when a merge, rebase, cherry-pick, or stash pop stops on conflicts, when `git status` shows unmerged paths, or when files contain conflict markers.
developmentcode-review
brandalf
warpdotdev
Guides creation, revision, and review of Warp- or Oz-branded assets. Use when working on launch pages, docs, HTML/CSS components, UI mockups, prompts, social assets, copy, presentations, or any other branded deliverable that should look and sound unmistakably Warp or Oz.
designcreativemarketing