
Spec Driven Implementation
- 16.3k installs
- 148 repo stars
- Updated July 24, 2026
- warpdotdev/common-skills
A spec-first workflow that uses written PRODUCT.md and TECH.md documents to drive high-quality implementation of substantial features, reducing ambiguity and enabling agent-driven development.
About
spec-driven-implementation guides developers through a spec-first workflow for significant features by establishing PRODUCT.md and TECH.md before coding. Developers use this when starting substantial features, planning agent-driven implementation, or when specs should be version-controlled. The workflow evaluates feature scope and risk to determine if specs are justified, writes product specs describing user behavior and success criteria, optionally adds tech specs for multi-system or architecturally complex work, implements from approved specs while keeping them current, and verifies behavior against those specs via tests and walkthroughs. Specs live in specs/<linear-ticket-number>/ and should be checked into the same PR as related code, with updates reflecting actual shipped behavior rather than initial intent.
- Store specs in specs/<linear-ticket-number>/PRODUCT.md and TECH.md checked into source control alongside code.
- Evaluate feature size, ambiguity, and risk before writing specs; skip specs for small bug fixes or straightforward refac
- Write product specs first describing desired user-facing behavior, invariants, edge cases, and success criteria; use wri
- Write tech specs for multi-system implementations or architectural ambiguity using write-tech-spec skill; acceptable aft
- Keep specs current during implementation by updating PRODUCT.md and TECH.md when user-facing behavior or implementation
Spec Driven Implementation by the numbers
- 16,321 all-time installs (skills.sh)
- +1,958 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #24 of 1,901 Documentation skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
spec-driven-implementation capabilities & compatibility
- Capabilities
- guide pragmatic decisions on when specs are nece · produce product specs describing desired user be · produce tech specs for multi system or architect · coordinate with linear mcp tools to create and r · maintain specs alongside implementation changes
- Works with
- github
- Runs
- Runs locally
What spec-driven-implementation says it does
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.
npx skills add https://github.com/warpdotdev/common-skills --skill spec-driven-implementationAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 16.3k |
|---|---|
| repo stars | ★ 148 |
| Security audit | 3 / 3 scanners passed |
| Last updated | July 24, 2026 |
| Repository | warpdotdev/common-skills ↗ |
What it does
Write product and tech specs before implementing substantial features to reduce ambiguity and improve agent-driven implementation quality.
Who is it for?
Significant features with product or architectural ambiguity, changes around 1k+ LOC, deep stack changes, risky behavior changes, or work where agent quality improves with clearer inputs.
Skip if: Small local bug fixes, straightforward refactors, or narrow UI tweaks with little ambiguity.
When should I use this skill?
Starting a substantial feature, planning agent-driven implementation, or when the user wants product and tech specs checked into source control.
What you get
Features ship with clear, version-controlled specifications that match actual behavior; reviewers validate specs and behavior rather than debating intent during code review.
- PRODUCT.md describing user-facing behavior, invariants, edge cases, and success criteria
- TECH.md (when warranted) describing implementation approach, architecture, dependencies, and testing plan
- Verified implementation with tests and walkthroughs that validate behavior against specs
By the numbers
- Strongly prefer specs for features around 1k+ lines of code or larger
- Specs should live in specs/<linear-ticket-number>/ with only ticket-numbered subdirectories as direct children of specs/
Files
spec-driven-implementation
Drive a spec-first workflow for substantial features in Warp.
Overview
Use this skill for significant features where a written spec will improve implementation quality, reduce ambiguity, or make review easier. Be pragmatic: not every change needs specs.
Specs should usually live in:
specs/<linear-ticket-number>/PRODUCT.mdspecs/<linear-ticket-number>/TECH.md
For example:
specs/APP-1234/PRODUCT.mdspecs/APP-1234/TECH.md
specs/ should contain only ticket-named directories as direct children. Do not create engineer-named subdirectories or feature-slug directories there.
If a relevant Linear issue does not already exist, create one before writing specs. Use the Linear MCP tools directly:
list_teamsto find the appropriate teamlist_issue_labelsto inspect the expected labels/tagssave_issueto create the issue with the appropriate team and labels
If the correct team or labels are not obvious from the request and surrounding context, use ask_user_question to clarify rather than guessing.
These specs should largely be written by agents, not by hand, and should be checked into source control so they can be reviewed and kept current with the code.
When specs are required
Strongly prefer specs when the change is substantial, such as:
- product or architectural ambiguity
- expected implementation size around 1k+ LOC
- deep or cross-cutting stack changes
- risky behavior changes where regressions would be expensive
- work where agent quality will improve materially from clearer inputs
Specs are often unnecessary for:
- small, local bug fixes
- straightforward refactors
- narrow UI tweaks with little ambiguity
For pure UI changes, the product spec is often useful while the tech spec may be unnecessary.
Workflow
1. Decide whether the feature needs specs
Evaluate the size, ambiguity, and risk of the feature. If specs will not meaningfully improve execution or review, skip them and focus on verification instead.
2. Write the product spec first
Before implementation, create PRODUCT.md describing the desired user-facing behavior.
Use the write-product-spec skill to produce it. The product spec should define:
- what problem is being solved
- the desired user experience
- invariants and edge cases
- success criteria
- how the behavior will be validated
If the feature has UI or interaction design, ask for a Figma mock if one exists. If there is no mock, continue but call that out explicitly in the product spec.
Reference the Linear issue in the spec when one exists. Because specs live under specs/<linear-ticket-number>/..., this should usually be straightforward.
3. Write the tech spec when warranted
Use the write-tech-spec skill for substantial or ambiguous implementation work.
Prefer a tech spec when:
- the implementation spans multiple subsystems
- architecture or extensibility matters
- there are meaningful tradeoffs to document
- reviewers will benefit more from reviewing the plan than the raw code
It is acceptable to write the tech spec after an e2e prototype if that leads to a more accurate implementation plan. Do not force a premature tech spec when the implementation details are still too uncertain.
4. Implement approved specs
After the specs are approved, use the implement-specs skill to build from the approved PRODUCT.md and TECH.md.
The implementation can often be pushed in the same PR as the product and tech specs. As the engineer iterates, keep PRODUCT.md, TECH.md, code changes, and tests in that same PR so the review reflects the feature that will actually ship.
For large features, the implementer may optionally offer:
PROJECT_LOG.mdto track explored paths, checkpoints, and current implementation stateDECISIONS.mdto capture concrete product and technical decisions made during design and implementation
These are optional aids, not required outputs.
5. Keep specs current during implementation
If implementation changes from the spec, update the spec rather than leaving it stale.
Update PRODUCT.md when:
- user-facing behavior changes
- success criteria change
- UX details or edge cases change
Update TECH.md when:
- the implementation approach changes
- architectural boundaries move
- risks, dependencies, or rollout details change
- the testing or validation plan changes
The checked-in specs should describe the feature that actually ships, not just the initial intent. Keep those spec updates in the same PR as the related code changes whenever practical.
6. Verify behavior against the spec
Before considering the work complete, make sure verification maps back to the specs. Prefer tests and artifacts that validate the product behavior directly:
- unit tests and regression coverage that follow the repository's local testing conventions
- integration tests for critical user flows
- loom walkthroughs or equivalent feature demonstrations when appropriate
- screenshots or videos when useful for UI-heavy work
Best Practices
- Be pragmatic above all else.
- Write specs to improve input quality for agents, not as ceremony.
- Keep product specs behavior-oriented and implementation-light.
- Keep tech specs implementation-oriented and grounded in current codebase patterns.
- When a spec references relevant code chunks, include the inspected commit SHA in the file reference when possible and link the reference to the exact GitHub
blob/<sha>/...#Lx-Lylines. - Use review time to validate specs and behavior, not to over-index on code style nits.
Related Skills
implement-specswrite-product-specwrite-tech-spec
Related skills
How it compares
Choose spec-driven-implementation over a single-doc PRD skill when you need both product behavior and technical implementation specs maintained through the build.
FAQ
When should I write specs vs. skip them?
Write specs for substantial features with ambiguity, ~1k+ LOC, deep stack changes, or risky behavior. Skip specs for small bug fixes, straightforward refactors, or narrow UI tweaks.
Where should specs live in the repository?
Store specs in specs/<linear-ticket-number>/ with PRODUCT.md and optionally TECH.md. The specs/ directory should contain only ticket-named subdirectories as direct children.
Should specs be checked in before or after implementation?
Write specs before implementation and check them into the same PR as code changes. Keep specs updated as implementation evolves so the final spec describes the feature that actually ships.
Is Spec Driven Implementation safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.