Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
warpdotdev avatar

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)
At a glance

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
From the docs

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.
spec-driven-implementation.md
npx skills add https://github.com/warpdotdev/common-skills --skill spec-driven-implementation

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs16.3k
repo stars148
Security audit3 / 3 scanners passed
Last updatedJuly 24, 2026
Repositorywarpdotdev/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

SKILL.mdMarkdownGitHub ↗

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.md
  • specs/<linear-ticket-number>/TECH.md

For example:

  • specs/APP-1234/PRODUCT.md
  • specs/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_teams to find the appropriate team
  • list_issue_labels to inspect the expected labels/tags
  • save_issue to 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.md to track explored paths, checkpoints, and current implementation state
  • DECISIONS.md to 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-Ly lines.
  • Use review time to validate specs and behavior, not to over-index on code style nits.

Related Skills

  • implement-specs
  • write-product-spec
  • write-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.

Documentationdocsintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.