You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`SPECIFY_FEATURE`| Override feature detection fornon-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 setin the context of the agent you're working with prior to using `/spec.plan` or follow-up commands. |
913
914
915
+
## 🧩 Making Spec Kit Your Own: Extensions & Presets
916
+
917
+
Spec Kit can be tailored to your needs through two complementary systems — **extensions** and **presets** — plus project-local overrides for one-off adjustments:
**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.
934
+
935
+
### Extensions — Add New Capabilities
936
+
937
+
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*.
938
+
939
+
```bash
940
+
# Search available extensions
941
+
specify extension search
942
+
943
+
# Install an extension
944
+
specify extension add <extension-name>
945
+
```
946
+
947
+
For example, extensions could add Jira integration, post-implementation code review, V-Model test traceability, or project health diagnostics.
948
+
949
+
See the [Extensions README](./extensions/README.md) for the full guide, the complete community catalog, and how to build and publish your own.
950
+
951
+
### Presets — Customize Existing Workflows
952
+
953
+
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.
954
+
955
+
```bash
956
+
# Search available presets
957
+
specify preset search
958
+
959
+
# Install a preset
960
+
specify preset add <preset-name>
961
+
```
962
+
963
+
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.
964
+
965
+
See the [Presets README](./presets/README.md) for the full guide, including resolution order, priority, and how to create your own.
966
+
967
+
### When to Use Which
968
+
969
+
| Goal | Use |
970
+
| --- | --- |
971
+
| Add a brand-new command or workflow | Extension |
972
+
| Customize the format of specs, plans, or tasks | Preset |
973
+
| Integrate an external tool or service | Extension |
974
+
| Enforce organizational or regulatory standards | Preset |
975
+
| Ship reusable domain-specific templates | Either — presets for template overrides, extensions for templates bundled with new commands |
976
+
914
977
## 📚 Core Philosophy
915
978
916
979
Spec-Driven Development is a structured process that emphasizes:
| Spec Sync | Detect and resolve drift between specs and implementation. AI-assisted resolution with human approval |[spec-kit-sync](https://github.com/bgervin/spec-kit-sync)|
91
92
| Understanding | Automated requirements quality analysis — 31 deterministic metrics against IEEE/ISO standards with experimental energy-based ambiguity detection |[understanding](https://github.com/Testimonial/understanding)|
92
93
| V-Model Extension Pack | Enforces V-Model paired generation of development specs and test specs with full traceability |[spec-kit-v-model](https://github.com/leocamello/spec-kit-v-model)|
Copy file name to clipboardExpand all lines: presets/README.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,13 +13,15 @@ When Spec Kit needs a template (e.g. `spec-template`), it walks a resolution sta
13
13
14
14
If no preset is installed, core templates are used — exactly the same behavior as before presets existed.
15
15
16
+
Template resolution happens **at runtime** — although preset files are copied into `.specify/presets/<id>/` during installation, Spec Kit walks the resolution stack on every template lookup rather than merging templates into a single location.
17
+
16
18
For detailed resolution and command registration flows, see [ARCHITECTURE.md](ARCHITECTURE.md).
17
19
18
20
## Command Overrides
19
21
20
22
Presets can also override the commands that guide the SDD workflow. Templates define *what* gets produced (specs, plans, constitutions); commands define *how* the LLM produces them (the step-by-step instructions).
21
23
22
-
When a preset includes `type: "command"` entries, the commands are automatically registered into all detected agent directories (`.claude/commands/`, `.gemini/commands/`, etc.) in the correct format (Markdown or TOML with appropriate argument placeholders). When the preset is removed, the registered commands are cleaned up.
24
+
Unlike templates, command overrides are applied **at install time**. When a preset includes `type: "command"` entries, the commands are registered into all detected agent directories (`.claude/commands/`, `.gemini/commands/`, etc.) in the correct format (Markdown or TOML with appropriate argument placeholders). When the preset is removed, the registered commands are cleaned up.
0 commit comments