Skip to content

Commit 3094425

Browse files
committed
Merge upstream/main: resolve conflicts with lean preset bundling
- Keep both workflow and preset force-include in pyproject.toml - Keep both _locate_bundled_workflow and _locate_bundled_preset helpers - Add workflow files to yaml base inventory test (goose)
2 parents feee40f + 03a9163 commit 3094425

35 files changed

Lines changed: 2272 additions & 245 deletions

.github/workflows/docs.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ concurrency:
2626
jobs:
2727
# Build job
2828
build:
29+
if: github.repository == 'github/spec-kit'
2930
runs-on: ubuntu-latest
3031
steps:
3132
- name: Checkout
@@ -56,6 +57,7 @@ jobs:
5657

5758
# Deploy job
5859
deploy:
60+
if: github.repository == 'github/spec-kit'
5961
environment:
6062
name: github-pages
6163
url: ${{ steps.deployment.outputs.page_url }}

AGENTS.md

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Each AI agent is a self-contained **integration subpackage** under `src/specify_
1717
```
1818
src/specify_cli/integrations/
1919
├── __init__.py # INTEGRATION_REGISTRY + _register_builtins()
20-
├── base.py # IntegrationBase, MarkdownIntegration, TomlIntegration, SkillsIntegration
20+
├── base.py # IntegrationBase, MarkdownIntegration, TomlIntegration, YamlIntegration, SkillsIntegration
2121
├── manifest.py # IntegrationManifest (file tracking)
2222
├── claude/ # Example: SkillsIntegration subclass
2323
│ ├── __init__.py # ClaudeIntegration class
@@ -48,6 +48,7 @@ The registry is the **single source of truth for Python integration metadata**.
4848
|---|---|
4949
| Standard markdown commands (`.md`) | `MarkdownIntegration` |
5050
| TOML-format commands (`.toml`) | `TomlIntegration` |
51+
| YAML recipe files (`.yaml`) | `YamlIntegration` |
5152
| Skill directories (`speckit-<name>/SKILL.md`) | `SkillsIntegration` |
5253
| Fully custom output (companion files, settings merge, etc.) | `IntegrationBase` directly |
5354

@@ -343,16 +344,82 @@ Command content with {SCRIPT} and {{args}} placeholders.
343344
"""
344345
```
345346

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+
346366
## Argument Patterns
347367
348368
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:
349369

350370
- **Markdown/prompt-based**: `$ARGUMENTS` (default for most markdown agents)
351371
- **TOML-based**: `{{args}}` (e.g., Gemini)
372+
- **YAML-based**: `{{args}}` (e.g., Goose)
352373
- **Custom**: some agents override the default (e.g., Forge uses `{{parameters}}`)
353374
- **Script placeholders**: `{SCRIPT}` (replaced with actual script path)
354375
- **Agent placeholders**: `__AGENT__` (replaced with agent name)
355376

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:
397+
- Uses `{{parameters}}` instead of `$ARGUMENTS`
398+
- Strips `handoffs` frontmatter key (Forge-specific collaboration feature)
399+
- 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
419+
3. Renders output as Goose recipe YAML (version, title, description, author, extensions, activities, prompt)
420+
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+
356423
## Common Pitfalls
357424

358425
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.

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,33 @@
22

33
<!-- insert new changelog below this comment -->
44

5+
## [0.6.2] - 2026-04-13
6+
7+
### Changed
8+
9+
- feat: Register "What-if Analysis" community extension (#2182)
10+
- feat: add GitHub Issues Integration to community catalog (#2188)
11+
- feat(agents): add Goose AI agent support (#2015)
12+
- Update ralph extension to v1.0.1 in community catalog (#2192)
13+
- fix: skip docs deployment workflow on forks (#2171)
14+
- chore: release 0.6.1, begin 0.6.2.dev0 development (#2162)
15+
16+
## [0.6.1] - 2026-04-10
17+
18+
### Changed
19+
20+
- feat: add bundled lean preset with minimal workflow commands (#2161)
21+
- Add Brownfield Bootstrap extension to community catalog (#2145)
22+
- Add CI Guard extension to community catalog (#2157)
23+
- Add SpecTest extension to community catalog (#2159)
24+
- fix: bundled extensions should not have download URLs (#2155)
25+
- Add PR Bridge extension to community catalog (#2148)
26+
- feat(cursor-agent): migrate from .cursor/commands to .cursor/skills (#2156)
27+
- Add TinySpec extension to community catalog (#2147)
28+
- chore: bump spec-kit-verify to 1.0.3 and spec-kit-review to 1.0.1 (#2146)
29+
- Add Status Report extension to community catalog (#2123)
30+
- chore: release 0.6.0, begin 0.6.1.dev0 development (#2144)
31+
532
## [0.6.0] - 2026-04-09
633

734
### Changed

README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,8 +186,10 @@ The following community-contributed extensions are available in [`catalog.commun
186186
| Archive Extension | Archive merged features into main project memory. | `docs` | Read+Write | [spec-kit-archive](https://github.com/stn1slv/spec-kit-archive) |
187187
| Azure DevOps Integration | Sync user stories and tasks to Azure DevOps work items using OAuth authentication | `integration` | Read+Write | [spec-kit-azure-devops](https://github.com/pragya247/spec-kit-azure-devops) |
188188
| Branch Convention | Configurable branch and folder naming conventions for /specify with presets and custom patterns | `process` | Read+Write | [spec-kit-branch-convention](https://github.com/Quratulain-bilal/spec-kit-branch-convention) |
189+
| Brownfield Bootstrap | Bootstrap spec-kit for existing codebases — auto-discover architecture and adopt SDD incrementally | `process` | Read+Write | [spec-kit-brownfield](https://github.com/Quratulain-bilal/spec-kit-brownfield) |
189190
| Bugfix Workflow | Structured bugfix workflow — capture bugs, trace to spec artifacts, and patch specs surgically | `process` | Read+Write | [spec-kit-bugfix](https://github.com/Quratulain-bilal/spec-kit-bugfix) |
190191
| Canon | Adds canon-driven (baseline-driven) workflows: spec-first, code-first, spec-drift. Requires Canon Core preset installation. | `process` | Read+Write | [spec-kit-canon](https://github.com/maximiliamus/spec-kit-canon/tree/master/extension) |
192+
| CI Guard | Spec compliance gates for CI/CD — verify specs exist, check drift, and block merges on gaps | `process` | Read-only | [spec-kit-ci-guard](https://github.com/Quratulain-bilal/spec-kit-ci-guard) |
191193
| Checkpoint Extension | Commit the changes made during the middle of the implementation, so you don't end up with just one very large commit at the end | `code` | Read+Write | [spec-kit-checkpoint](https://github.com/aaronrsun/spec-kit-checkpoint) |
192194
| Cleanup Extension | Post-implementation quality gate that reviews changes, fixes small issues (scout rule), creates tasks for medium issues, and generates analysis for large issues | `code` | Read+Write | [spec-kit-cleanup](https://github.com/dsrednicki/spec-kit-cleanup) |
193195
| Conduct Extension | Orchestrates spec-kit phases via sub-agent delegation to reduce context pollution. | `process` | Read+Write | [spec-kit-conduct-ext](https://github.com/twbrandon7/spec-kit-conduct-ext) |
@@ -197,6 +199,7 @@ The following community-contributed extensions are available in [`catalog.commun
197199
| Fix Findings | Automated analyze-fix-reanalyze loop that resolves spec findings until clean | `code` | Read+Write | [spec-kit-fix-findings](https://github.com/Quratulain-bilal/spec-kit-fix-findings) |
198200
| FixIt Extension | Spec-aware bug fixing — maps bugs to spec artifacts, proposes a plan, applies minimal changes | `code` | Read+Write | [spec-kit-fixit](https://github.com/speckit-community/spec-kit-fixit) |
199201
| 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) |
202+
| GitHub Issues Integration | Generate spec artifacts from GitHub Issues - import issues, sync updates, and maintain bidirectional traceability | `integration` | Read+Write | [spec-kit-github-issues](https://github.com/Fatima367/spec-kit-github-issues) |
200203
| 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) |
201204
| 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) |
202205
| 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) |
@@ -225,19 +228,23 @@ The following community-contributed extensions are available in [`catalog.commun
225228
| 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) |
226229
| SDD Utilities | Resume interrupted workflows, validate project health, and verify spec-to-task traceability | `process` | Read+Write | [speckit-utils](https://github.com/mvanhorn/speckit-utils) |
227230
| 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) |
228232
| Ship Release Extension | Automates release pipeline: pre-flight checks, branch sync, changelog generation, CI verification, and PR creation | `process` | Read+Write | [spec-kit-ship](https://github.com/arunt14/spec-kit-ship) |
229233
| 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) |
230234
| 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-) |
231235
| Spec Refine | Update specs in-place, propagate changes to plan and tasks, and diff impact across artifacts | `process` | Read+Write | [spec-kit-refine](https://github.com/Quratulain-bilal/spec-kit-refine) |
232236
| Spec Sync | Detect and resolve drift between specs and implementation. AI-assisted resolution with human approval | `docs` | Read+Write | [spec-kit-sync](https://github.com/bgervin/spec-kit-sync) |
237+
| SpecTest | Auto-generate test scaffolds from spec criteria, map coverage, and find untested requirements | `code` | Read+Write | [spec-kit-spectest](https://github.com/Quratulain-bilal/spec-kit-spectest) |
233238
| Staff Review Extension | Staff-engineer-level code review that validates implementation against spec, checks security, performance, and test coverage | `code` | Read-only | [spec-kit-staff-review](https://github.com/arunt14/spec-kit-staff-review) |
234239
| Status Report | Project status, feature progress, and next-action recommendations for spec-driven workflows | `visibility` | Read-only | [Open-Agent-Tools/spec-kit-status](https://github.com/Open-Agent-Tools/spec-kit-status) |
235240
| Superpowers Bridge | Orchestrates obra/superpowers skills within the spec-kit SDD workflow across the full lifecycle (clarification, TDD, review, verification, critique, debugging, branch completion) | `process` | Read+Write | [superpowers-bridge](https://github.com/RbBtSn0w/spec-kit-extensions/tree/main/superpowers-bridge) |
236241
| TinySpec | Lightweight single-file workflow for small tasks — skip the heavy multi-step SDD process | `process` | Read+Write | [spec-kit-tinyspec](https://github.com/Quratulain-bilal/spec-kit-tinyspec) |
237242
| 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) |
238243
| 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) |
239244
| 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) |
240246
| 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) |
241248

242249
To submit your own extension, see the [Extension Publishing Guide](extensions/EXTENSION-PUBLISHING-GUIDE.md).
243250

@@ -253,6 +260,7 @@ The following community-contributed presets customize how Spec Kit behaves — o
253260
| 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) |
254261
| 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) |
255262
| 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) |
256264
| 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) |
257265
| 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) |
258266
| 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) |
@@ -307,6 +315,7 @@ Community projects that extend, visualize, or build on Spec Kit:
307315
| [Cursor](https://cursor.sh/) || |
308316
| [Forge](https://forgecode.dev/) || CLI tool: `forge` |
309317
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) || |
318+
| [Goose](https://block.github.io/goose/) || Uses YAML recipe format in `.goose/recipes/` with slash command support |
310319
| [GitHub Copilot](https://code.visualstudio.com/) || |
311320
| [IBM Bob](https://www.ibm.com/products/bob) || IDE-based agent with slash command support |
312321
| [Jules](https://jules.google.com/) || |
@@ -651,7 +660,7 @@ specify init . --force --ai claude
651660
specify init --here --force --ai claude
652661
```
653662

654-
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:
655664

656665
```bash
657666
specify init <project_name> --ai claude --ignore-agent-tools

0 commit comments

Comments
 (0)