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
@@ -343,16 +344,82 @@ Command content with {SCRIPT} and {{args}} placeholders.
343
344
"""
344
345
```
345
346
347
+
### YAML Format
348
+
349
+
Used by: Goose
350
+
351
+
```yaml
352
+
version: 1.0.0
353
+
title: "Command Title"
354
+
description: "Command description"
355
+
author:
356
+
contact: spec-kit
357
+
extensions:
358
+
- type: builtin
359
+
name: developer
360
+
activities:
361
+
- Spec-Driven Development
362
+
prompt: |
363
+
Command content with {SCRIPT} and {{args}} placeholders.
364
+
```
365
+
346
366
## Argument Patterns
347
367
348
368
Different agents use different argument placeholders. The placeholder used in command files is always taken from `registrar_config["args"]` for each integration — check there first when in doubt:
349
369
350
370
- **Markdown/prompt-based**: `$ARGUMENTS` (default for most markdown agents)
351
371
- **TOML-based**: `{{args}}` (e.g., Gemini)
372
+
- **YAML-based**: `{{args}}` (e.g., Goose)
352
373
- **Custom**: some agents override the default (e.g., Forge uses `{{parameters}}`)
353
374
- **Script placeholders**: `{SCRIPT}` (replaced with actual script path)
354
375
- **Agent placeholders**: `__AGENT__` (replaced with agent name)
355
376
377
+
## Special Processing Requirements
378
+
379
+
Some agents require custom processing beyond the standard template transformations:
380
+
381
+
### Copilot Integration
382
+
383
+
GitHub Copilot has unique requirements:
384
+
- Commands use `.agent.md` extension (not `.md`)
385
+
- Each command gets a companion `.prompt.md` file in `.github/prompts/`
386
+
- Installs `.vscode/settings.json` with prompt file recommendations
387
+
- Context file lives at `.github/copilot-instructions.md`
388
+
389
+
Implementation: Extends `IntegrationBase` with custom `setup()` method that:
390
+
1. Processes templates with `process_template()`
391
+
2. Generates companion `.prompt.md` files
392
+
3. Merges VS Code settings
393
+
394
+
### Forge Integration
395
+
396
+
Forge has special frontmatter and argument requirements:
- Injects `name` field into frontmatter when missing
400
+
401
+
Implementation: Extends `MarkdownIntegration` with custom `setup()` method that:
402
+
1. Inherits standard template processing from `MarkdownIntegration`
403
+
2. Adds extra `$ARGUMENTS` → `{{parameters}}` replacement after template processing
404
+
3. Applies Forge-specific transformations via `_apply_forge_transformations()`
405
+
4. Strips `handoffs` frontmatter key
406
+
5. Injects missing `name` fields
407
+
6. Ensures the shared `update-agent-context.*` scripts include a `forge` case that maps context updates to `AGENTS.md` and lists `forge` in their usage/help text
408
+
409
+
### Goose Integration
410
+
411
+
Goose is a YAML-format agent using Block's recipe system:
412
+
- Uses `.goose/recipes/` directory for YAML recipe files
413
+
- Uses `{{args}}` argument placeholder
414
+
- Produces YAML with `prompt: |` block scalar for command content
415
+
416
+
Implementation: Extends `YamlIntegration` (parallel to `TomlIntegration`):
417
+
1. Processes templates through the standard placeholder pipeline
418
+
2. Extracts title and description from frontmatter
4. Uses `yaml.safe_dump()` for header fields to ensure proper escaping
421
+
5. Context updates map to `AGENTS.md` (shared with opencode/codex/pi/forge)
422
+
356
423
## Common Pitfalls
357
424
358
425
1. **Using shorthand keys for CLI-based integrations**: For CLI-based integrations (`requires_cli: True`), the `key` must match the executable name (e.g., `"cursor-agent"` not `"cursor"`). `shutil.which(key)` is used for CLI tool checks — mismatches require special-case mappings. IDE-based integrations (`requires_cli: False`) are not subject to this constraint.
| Fleet Orchestrator | Orchestrate a full feature lifecycle with human-in-the-loop gates across all SpecKit phases |`process`| Read+Write |[spec-kit-fleet](https://github.com/sharathsatish/spec-kit-fleet)|
| Iterate | Iterate on spec documents with a two-phase define-and-apply workflow — refine specs mid-implementation and go straight back to building |`docs`| Read+Write |[spec-kit-iterate](https://github.com/imviancagrace/spec-kit-iterate)|
203
204
| Jira Integration | Create Jira Epics, Stories, and Issues from spec-kit specifications and task breakdowns with configurable hierarchy and custom field support |`integration`| Read+Write |[spec-kit-jira](https://github.com/mbachorik/spec-kit-jira)|
204
205
| Learning Extension | Generate educational guides from implementations and enhance clarifications with mentoring context |`docs`| Read+Write |[spec-kit-learn](https://github.com/imviancagrace/spec-kit-learn)|
@@ -227,6 +228,7 @@ The following community-contributed extensions are available in [`catalog.commun
227
228
| Review Extension | Post-implementation comprehensive code review with specialized agents for code quality, comments, tests, error handling, type design, and simplification |`code`| Read-only |[spec-kit-review](https://github.com/ismaelJimenez/spec-kit-review)|
| Security Review | Comprehensive security audit of codebases using AI-powered DevSecOps analysis |`code`| Read-only |[spec-kit-security-review](https://github.com/DyanGalih/spec-kit-security-review)|
231
+
| SFSpeckit | Enterprise Salesforce SDLC with 18 commands for the full SDD lifecycle. |`process`| Read+Write |[spec-kit-sf](https://github.com/ysumanth06/spec-kit-sf)|
| Spec Critique Extension | Dual-lens critical review of spec and plan from product strategy and engineering risk perspectives |`docs`| Read-only |[spec-kit-critique](https://github.com/arunt14/spec-kit-critique)|
232
234
| Spec Diagram | Auto-generate Mermaid diagrams of SDD workflow state, feature progress, and task dependencies |`visibility`| Read-only |[spec-kit-diagram-](https://github.com/Quratulain-bilal/spec-kit-diagram-)|
@@ -240,7 +242,9 @@ The following community-contributed extensions are available in [`catalog.commun
240
242
| V-Model Extension Pack | Enforces V-Model paired generation of development specs and test specs with full traceability |`docs`| Read+Write |[spec-kit-v-model](https://github.com/leocamello/spec-kit-v-model)|
241
243
| Verify Extension | Post-implementation quality gate that validates implemented code against specification artifacts |`code`| Read-only |[spec-kit-verify](https://github.com/ismaelJimenez/spec-kit-verify)|
242
244
| Verify Tasks Extension | Detect phantom completions: tasks marked [X] in tasks.md with no real implementation |`code`| Read-only |[spec-kit-verify-tasks](https://github.com/datastone-inc/spec-kit-verify-tasks)|
245
+
| What-if Analysis | Preview the downstream impact (complexity, effort, tasks, risks) of requirement changes before committing to them |`visibility`| Read-only |[spec-kit-whatif](https://github.com/DevAbdullah90/spec-kit-whatif)|
243
246
| Worktree Isolation | Spawn isolated git worktrees for parallel feature development without checkout switching |`process`| Read+Write |[spec-kit-worktree](https://github.com/Quratulain-bilal/spec-kit-worktree)|
247
+
| Worktrees | Default-on worktree isolation for parallel agents — sibling or nested layout |`process`| Read+Write |[spec-kit-worktree-parallel](https://github.com/dango85/spec-kit-worktree-parallel)|
244
248
245
249
To submit your own extension, see the [Extension Publishing Guide](extensions/EXTENSION-PUBLISHING-GUIDE.md).
246
250
@@ -256,6 +260,7 @@ The following community-contributed presets customize how Spec Kit behaves — o
256
260
| AIDE In-Place Migration | Adapts the AIDE extension workflow for in-place technology migrations (X → Y pattern) — adds migration objectives, verification gates, knowledge documents, and behavioral equivalence criteria | 2 templates, 8 commands | AIDE extension |[spec-kit-presets](https://github.com/mnriem/spec-kit-presets)|
257
261
| Canon Core | Adapts original Spec Kit workflow to work together with Canon extension | 2 templates, 8 commands | — |[spec-kit-canon](https://github.com/maximiliamus/spec-kit-canon)|
258
262
| Explicit Task Dependencies | Adds explicit `(depends on T###)` dependency declarations and an Execution Wave DAG to tasks.md for parallel scheduling | 1 template, 1 command | — |[spec-kit-preset-explicit-task-dependencies](https://github.com/Quratulain-bilal/spec-kit-preset-explicit-task-dependencies)|
263
+
| Fiction Book Writing | It adapts the Spec-Driven Development workflow for storytelling: features become story elements, specs become story briefs, plans become story structures, and tasks become scene-by-scene writing tasks. Supports single and multi-POV, all major plot structure frameworks, and two style modes, author voice sample or humanized AI prose. | 21 templates, 17 commands | — |[spec-kit-preset-fiction-book-writing](https://github.com/adaumann/speckit-preset-fiction-book-writing)|
259
264
| Multi-Repo Branching | Coordinates feature branch creation across multiple git repositories (independent repos and submodules) during plan and tasks phases | 2 commands | — |[spec-kit-preset-multi-repo-branching](https://github.com/sakitA/spec-kit-preset-multi-repo-branching)|
260
265
| Pirate Speak (Full) | Transforms all Spec Kit output into pirate speak — specs become "Voyage Manifests", plans become "Battle Plans", tasks become "Crew Assignments" | 6 templates, 9 commands | — |[spec-kit-presets](https://github.com/mnriem/spec-kit-presets)|
261
266
| Table of Contents Navigation | Adds a navigable Table of Contents to generated spec.md, plan.md, and tasks.md documents | 3 templates, 3 commands | — |[spec-kit-preset-toc-navigation](https://github.com/Quratulain-bilal/spec-kit-preset-toc-navigation)|
@@ -310,6 +315,7 @@ Community projects that extend, visualize, or build on Spec Kit:
|[IBM Bob](https://www.ibm.com/products/bob)| ✅ | IDE-based agent with slash command support |
315
321
|[Jules](https://jules.google.com/)| ✅ ||
@@ -654,7 +660,7 @@ specify init . --force --ai claude
654
660
specify init --here --force --ai claude
655
661
```
656
662
657
-
The CLI will check if you have Claude Code, Gemini CLI, Cursor CLI, Qwen CLI, opencode, Codex CLI, Qoder CLI, Tabnine CLI, Kiro CLI, Pi, Forge, or Mistral Vibe installed. If you do not, or you prefer to get the templates without checking for the right tools, use `--ignore-agent-tools` with your command:
663
+
The CLI will check if you have Claude Code, Gemini CLI, Cursor CLI, Qwen CLI, opencode, Codex CLI, Qoder CLI, Tabnine CLI, Kiro CLI, Pi, Forge, Goose, or Mistral Vibe installed. If you do not, or you prefer to get the templates without checking for the right tools, use `--ignore-agent-tools` with your command:
658
664
659
665
```bash
660
666
specify init <project_name> --ai claude --ignore-agent-tools
0 commit comments