|
25 | 25 | - [🚶 Community Walkthroughs](#-community-walkthroughs) |
26 | 26 | - [🤖 Supported AI Agents](#-supported-ai-agents) |
27 | 27 | - [🔧 Specify CLI Reference](#-specify-cli-reference) |
| 28 | +- [🧩 Making Spec Kit Your Own: Extensions & Presets](#-making-spec-kit-your-own-extensions--presets) |
28 | 29 | - [📚 Core Philosophy](#-core-philosophy) |
29 | 30 | - [🌟 Development Phases](#-development-phases) |
30 | 31 | - [🎯 Experimental Goals](#-experimental-goals) |
@@ -326,6 +327,68 @@ Additional commands for enhanced quality and validation: |
326 | 327 | | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
327 | 328 | | `SPECIFY_FEATURE` | Override feature detection for non-Git repositories. Set to the feature directory name (e.g., `001-photo-albums`) to work on a specific feature when not using Git branches.<br/>\*\*Must be set in the context of the agent you're working with prior to using `/speckit.plan` or follow-up commands. | |
328 | 329 |
|
| 330 | +## 🧩 Making Spec Kit Your Own: Extensions & Presets |
| 331 | + |
| 332 | +Spec Kit can be tailored to your needs through two complementary systems — **extensions** and **presets** — plus project-local overrides for one-off adjustments: |
| 333 | + |
| 334 | +```mermaid |
| 335 | +block-beta |
| 336 | + columns 1 |
| 337 | + overrides["⬆ Highest priority\nProject-Local Overrides\n.specify/templates/overrides/"] |
| 338 | + presets["Presets — Customize core & extensions\n.specify/presets/<preset-id>/templates/"] |
| 339 | + extensions["Extensions — Add new capabilities\n.specify/extensions/<ext-id>/templates/"] |
| 340 | + core["Spec Kit Core — Built-in SDD commands & templates\n.specify/templates/\n⬇ Lowest priority"] |
| 341 | +
|
| 342 | + style overrides fill:transparent,stroke:#999 |
| 343 | + style presets fill:transparent,stroke:#4a9eda |
| 344 | + style extensions fill:transparent,stroke:#4a9e4a |
| 345 | + style core fill:transparent,stroke:#e6a817 |
| 346 | +``` |
| 347 | + |
| 348 | +**Templates** are resolved at **runtime** — Spec Kit walks the stack top-down and uses the first match. Project-local overrides (`.specify/templates/overrides/`) let you make one-off adjustments for a single project without creating a full preset. **Commands** are applied at **install time** — when you run `specify extension add` or `specify preset add`, command files are written into agent directories (e.g., `.claude/commands/`). If multiple presets or extensions provide the same command, the highest-priority version wins. On removal, the next-highest-priority version is restored automatically. If no overrides or customizations exist, Spec Kit uses its core defaults. |
| 349 | + |
| 350 | +### Extensions — Add New Capabilities |
| 351 | + |
| 352 | +Use **extensions** when you need functionality that goes beyond Spec Kit's core. Extensions introduce new commands and templates — for example, adding domain-specific workflows that are not covered by the built-in SDD commands, integrating with external tools, or adding entirely new development phases. They expand *what Spec Kit can do*. |
| 353 | + |
| 354 | +```bash |
| 355 | +# Search available extensions |
| 356 | +specify extension search |
| 357 | + |
| 358 | +# Install an extension |
| 359 | +specify extension add <extension-name> |
| 360 | +``` |
| 361 | + |
| 362 | +For example, extensions could add Jira integration, post-implementation code review, V-Model test traceability, or project health diagnostics. |
| 363 | + |
| 364 | +See the [Extensions README](./extensions/README.md) for the full guide, the complete community catalog, and how to build and publish your own. |
| 365 | + |
| 366 | +### Presets — Customize Existing Workflows |
| 367 | + |
| 368 | +Use **presets** when you want to change *how* Spec Kit works without adding new capabilities. Presets override the templates and commands that ship with the core *and* with installed extensions — for example, enforcing a compliance-oriented spec format, using domain-specific terminology, or applying organizational standards to plans and tasks. They customize the artifacts and instructions that Spec Kit and its extensions produce. |
| 369 | + |
| 370 | +```bash |
| 371 | +# Search available presets |
| 372 | +specify preset search |
| 373 | + |
| 374 | +# Install a preset |
| 375 | +specify preset add <preset-name> |
| 376 | +``` |
| 377 | + |
| 378 | +For example, presets could restructure spec templates to require regulatory traceability, adapt the workflow to fit the methodology you use (e.g., Agile, Kanban, Waterfall, jobs-to-be-done, or domain-driven design), add mandatory security review gates to plans, enforce test-first task ordering, or localize the entire workflow to a different language. The [pirate-speak demo](https://github.com/mnriem/spec-kit-pirate-speak-preset-demo) shows just how deep the customization can go. Multiple presets can be stacked with priority ordering. |
| 379 | + |
| 380 | +See the [Presets README](./presets/README.md) for the full guide, including resolution order, priority, and how to create your own. |
| 381 | + |
| 382 | +### When to Use Which |
| 383 | + |
| 384 | +| Goal | Use | |
| 385 | +| --- | --- | |
| 386 | +| Add a brand-new command or workflow | Extension | |
| 387 | +| Customize the format of specs, plans, or tasks | Preset | |
| 388 | +| Integrate an external tool or service | Extension | |
| 389 | +| Enforce organizational or regulatory standards | Preset | |
| 390 | +| Ship reusable domain-specific templates | Either — presets for template overrides, extensions for templates bundled with new commands | |
| 391 | + |
329 | 392 | ## 📚 Core Philosophy |
330 | 393 |
|
331 | 394 | Spec-Driven Development is a structured process that emphasizes: |
|
0 commit comments