Skip to content

Commit 325d8a9

Browse files
committed
Merge remote-tracking branch 'origin/main' into docs/extension-comparison-guide
2 parents 85d842b + 6d0b84a commit 325d8a9

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

README.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
- [🚶 Community Walkthroughs](#-community-walkthroughs)
2626
- [🤖 Supported AI Agents](#-supported-ai-agents)
2727
- [🔧 Specify CLI Reference](#-specify-cli-reference)
28+
- [🧩 Making Spec Kit Your Own: Extensions & Presets](#-making-spec-kit-your-own-extensions--presets)
2829
- [📚 Core Philosophy](#-core-philosophy)
2930
- [🌟 Development Phases](#-development-phases)
3031
- [🎯 Experimental Goals](#-experimental-goals)
@@ -326,6 +327,68 @@ Additional commands for enhanced quality and validation:
326327
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
327328
| `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. |
328329

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+
329392
## 📚 Core Philosophy
330393

331394
Spec-Driven Development is a structured process that emphasizes:

0 commit comments

Comments
 (0)