A Spec Kit extension

Turn your engineering spec into product artifacts stakeholders actually read.

Product Spec Extension reads the spec.md and plan.md you already have and generates four audience-specific documents: a stakeholder summary, a full product spec, a delivery plan, and a technical design. Each one ships with a quality checklist. Your source files are never modified.

Install with Spec Kit
specify extension add product \
  --from https://github.com/d0whc3r/spec-kit-product/releases/download/v0.9.0/product-0.9.0.zip

Works with zero configuration. This is the most reliable path and the same one you use to pin a version.

  • 4 commands
  • Requires Spec Kit >= 0.2.0
  • MIT licensed
  • No em dashes, plain English

Why this exists

spec.md is written for engineers. Product managers, leadership, designers, and cross-functional reviewers need the same information in a different shape. Rewriting that by hand for every feature is busywork and drifts from the canonical spec. This extension generates the audience-specific views for you, from the spec you already wrote.

Source stays canonical

spec.md and plan.md are read-only to the extension. Every artifact lands under product/ in the same feature directory. Regenerate any time the source changes.

Built-in quality checklist

Every command updates a shared checklist.md. A failed Required item is your signal to regenerate, so the output stays trustworthy.

Proven conventions

Output follows Working Backwards (PRFAQ), Jobs to Be Done, Gherkin BDD, and Lean PRD conventions, in plain English with a strict no em dash style. The plan and design views embed Mermaid diagrams that render only when they earn their place, never as decoration.

The four commands

Each command stands alone and reads from a feature directory under specs/. Stop at the level of detail your audience needs.

Command Reads Writes Audience
/speckit.product.info spec.md product/00-info.md Any stakeholder, non-technical
/speckit.product.spec spec.md product/10-spec.md Product managers, leadership
/speckit.product.plan plan.md, spec.md product/20-plan.md PMs, engineering leads
/speckit.product.design plan.md, spec.md, optional more product/30-design.md Tech leads, senior developers

All four also update the shared product/checklist.md. None of them modify spec.md, plan.md, or any other source file. Pass --feature-dir specs/<dir> to target a specific feature instead of the active one.

See it in action

Spec Kit's spec.md and plan.md go in. Four audience-specific artifacts come out, each with the open clarifications surfaced and the style rules enforced. Below are two real, end-to-end examples, rendered straight from the files in the examples folder. Pick a feature, then a command to see what it wrote, and open the full file.

Input spec.md
# Feature Specification: Per-Tenant API Rate Limiting

**Status**: Draft

## Clarifications

### Session 2026-05-29

- Q: At what share of the monthly quota should the dashboard "approaching
  limit" warning appear? → A: 80% of the monthly quota.
- Q: What peak scale should the load tests target? → A: ~5,000
  requests/sec aggregate across thousands of tenants.

## User Scenarios & Testing

### User Story 1 - Per-minute burst protection (Priority: P1)

A customer organization sends a sudden spike of API requests. The platform
caps how many requests that organization can make within any single minute.
Once the cap is reached, further requests are rejected with a clear 429
response and a Retry-After header.
Output product/00-info.md
# Product Info: Per-Tenant API Rate Limiting

## Overview

Per-Tenant API Rate Limiting gives every customer organization its own
request limits so that one organization's traffic cannot slow the service
for others. It pairs a short-term burst limit with a monthly quota and shows
each customer their own usage.

## What is Changing

- Each organization gets a per-minute burst limit and monthly quota.
- Over-limit requests return a clear refusal with a retry time.
- The dashboard shows used, remaining, reset date, and burst limit.
- The dashboard warns when usage reaches 80% of quota.

## Key Decisions

**Approaching-limit warning threshold**
The dashboard warns a customer once usage reaches 80% of the monthly quota.

Three-sentence overview, short bullets, decisions surfaced for review. No implementation detail.

The snippets above are excerpts. Hit View full file to read the whole artifact rendered in place, or browse every file on the Examples page in the wiki.

Get started in five minutes

  1. Install the extension

    Install directly from the latest release. This needs no catalog setup and is the recommended path:

    specify extension add product \
      --from https://github.com/d0whc3r/spec-kit-product/releases/download/v0.9.0/product-0.9.0.zip

    Confirm it registered:

    cat .specify/extensions/.registry   # 'product' entry present
    ls .specify/extensions/product      # extension files present

    Prefer specify extension add product by name? That needs the community catalog approved first. See install help.

  2. Create a feature

    Run the Spec Kit core command and fill in the generated spec.md. The product commands refuse to run on an unfilled spec.

    /speckit.specify
  3. Generate your first artifact

    Run the lightest command first to validate direction. It writes product/00-info.md and product/checklist.md.

    /speckit.product.info
  4. Generate the full set

    Once direction is confirmed, generate the spec. After you have a Spec Kit plan.md (run /speckit.plan), add the plan and design views.

    /speckit.product.spec
    /speckit.product.plan
    /speckit.product.design

How it flows

Input flows from the Spec Kit core commands into this extension. No two commands write to the same output file.

Spec Kit core               This extension
---------------             -----------------------------------------------

/speckit.specify --> spec.md --> /speckit.product.info   -> product/00-info.md
                            \--> /speckit.product.spec   -> product/10-spec.md

/speckit.plan --> plan.md --> /speckit.product.plan      -> product/20-plan.md
                        \---> /speckit.product.design    -> product/30-design.md

All four also write to:    product/checklist.md

The product/ folder is self-contained. Zip it, attach it to a doc, paste it into a slide deck. No engineering scaffolding needs to travel with it.

Install help

If specify extension add product stops with the error below, this is the fix. It is expected behavior, not a broken release.

The error you may see

Error: 'product' is available in the 'community' catalog but installation
is not allowed from that catalog.

To enable installation, add 'product' to an approved catalog
(install_allowed: true) in .specify/extension-catalogs.yml.

Spec Kit ships the community catalog as discovery only. It carries install_allowed: false by design, so the CLI can list community extensions but will not install one until you opt in. You have two ways to opt in.

Option A: Direct install (recommended)

Install straight from the release archive. No catalog config, always works, and it is the only way to pin a specific version.

specify extension add product \
  --from https://github.com/d0whc3r/spec-kit-product/releases/download/v0.9.0/product-0.9.0.zip

To update later, run the same command with a newer version URL.

Option B: Approve the community catalog

Do this once if you want to install and update by name. It adds the catalog with install_allowed: true to .specify/extension-catalogs.yml.

specify extension catalog add \
  https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json \
  --name community --install-allowed

specify extension add product
specify extension update product

Community extensions are author-maintained and not reviewed by Spec Kit. Review the source before approving a catalog.

More refusal codes and fixes live in Troubleshooting.

Frequently asked questions

Why does specify extension add product fail?

The extension lives in Spec Kit's community catalog, which is discovery only and carries install_allowed: false. The CLI can list it but will not install until you opt in. Either install directly with --from <release-zip-url>, or approve the community catalog once. Full steps are in install help.

Do I have to run all four commands?

No. Stop at the level of detail your audience needs. A small change that needs only stakeholder buy-in is just /speckit.product.info. A full feature definition is info plus spec. A feature in active build adds plan and design.

Will it modify my spec.md or plan.md?

No. The source files are read-only to this extension. Every artifact lives under product/ in the same feature directory. This is enforced by the command body and the constitution.

What happens to [NEEDS CLARIFICATION] markers in spec.md?

They are surfaced in the generated output as open product questions, never silently resolved. The relevant artifact lists them under a "Key Decisions" or "Risks and Open Product Questions" section.

Does the extension run by itself?

No. The commands are Markdown prompts. They need a Spec Kit-aware assistant to resolve and execute them. The release zip is portable and has no runtime of its own.

How do I update the extension?

If you approved the community catalog, run specify extension update product. Otherwise rerun the direct install with the newer release URL. Your generated product/*.md files are not touched.

Does this work in a brownfield codebase?

Yes. The bundled brownfield extension helps reverse-engineer specs from existing code. Once you have a spec.md, the product commands work the same way.

More answers in the full FAQ.