Skip to content

Commit d5758de

Browse files
Merge branch 'add-status-command' of https://github.com/KhawarHabibKhan/spec-kit into add-status-command
2 parents ffbd4f4 + 040447b commit d5758de

49 files changed

Lines changed: 7354 additions & 913 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/scripts/create-release-packages.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ function Build-Variant {
382382
}
383383
'qwen' {
384384
$cmdDir = Join-Path $baseDir ".qwen/commands"
385-
Generate-Commands -Agent 'qwen' -Extension 'toml' -ArgFormat '{{args}}' -OutputDir $cmdDir -ScriptVariant $Script
385+
Generate-Commands -Agent 'qwen' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
386386
if (Test-Path "agent_templates/qwen/QWEN.md") {
387387
Copy-Item -Path "agent_templates/qwen/QWEN.md" -Destination (Join-Path $baseDir "QWEN.md")
388388
}
@@ -442,7 +442,7 @@ function Build-Variant {
442442
if (Test-Path $tabnineTemplate) { Copy-Item $tabnineTemplate (Join-Path $baseDir 'TABNINE.md') }
443443
}
444444
'agy' {
445-
$cmdDir = Join-Path $baseDir ".agent/workflows"
445+
$cmdDir = Join-Path $baseDir ".agent/commands"
446446
Generate-Commands -Agent 'agy' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
447447
}
448448
'vibe' {

.github/workflows/scripts/create-release-packages.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ build_variant() {
240240
generate_commands cursor-agent md "\$ARGUMENTS" "$base_dir/.cursor/commands" "$script" ;;
241241
qwen)
242242
mkdir -p "$base_dir/.qwen/commands"
243-
generate_commands qwen toml "{{args}}" "$base_dir/.qwen/commands" "$script"
243+
generate_commands qwen md "\$ARGUMENTS" "$base_dir/.qwen/commands" "$script"
244244
[[ -f agent_templates/qwen/QWEN.md ]] && cp agent_templates/qwen/QWEN.md "$base_dir/QWEN.md" ;;
245245
opencode)
246246
mkdir -p "$base_dir/.opencode/command"
@@ -280,8 +280,8 @@ build_variant() {
280280
mkdir -p "$base_dir/.kiro/prompts"
281281
generate_commands kiro-cli md "\$ARGUMENTS" "$base_dir/.kiro/prompts" "$script" ;;
282282
agy)
283-
mkdir -p "$base_dir/.agent/workflows"
284-
generate_commands agy md "\$ARGUMENTS" "$base_dir/.agent/workflows" "$script" ;;
283+
mkdir -p "$base_dir/.agent/commands"
284+
generate_commands agy md "\$ARGUMENTS" "$base_dir/.agent/commands" "$script" ;;
285285
bob)
286286
mkdir -p "$base_dir/.bob/commands"
287287
generate_commands bob md "\$ARGUMENTS" "$base_dir/.bob/commands" "$script" ;;

AGENTS.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ The toolkit supports multiple AI coding assistants, allowing teams to use their
1010

1111
---
1212

13-
## General practices
14-
15-
- Any changes to `__init__.py` for the Specify CLI require a version rev in `pyproject.toml` and addition of entries to `CHANGELOG.md`.
16-
1713
## Adding New Agent Support
1814

1915
This section explains how to add support for new AI agents/assistants to the Specify CLI. Use this guide as a reference when integrating new AI tools into the Spec-Driven Development workflow.
@@ -35,7 +31,7 @@ Specify supports multiple AI agents by generating agent-specific command files a
3531
| **Gemini CLI** | `.gemini/commands/` | TOML | `gemini` | Google's Gemini CLI |
3632
| **GitHub Copilot** | `.github/agents/` | Markdown | N/A (IDE-based) | GitHub Copilot in VS Code |
3733
| **Cursor** | `.cursor/commands/` | Markdown | `cursor-agent` | Cursor CLI |
38-
| **Qwen Code** | `.qwen/commands/` | TOML | `qwen` | Alibaba's Qwen Code CLI |
34+
| **Qwen Code** | `.qwen/commands/` | Markdown | `qwen` | Alibaba's Qwen Code CLI |
3935
| **opencode** | `.opencode/command/` | Markdown | `opencode` | opencode CLI |
4036
| **Codex CLI** | `.codex/commands/` | Markdown | `codex` | Codex CLI |
4137
| **Windsurf** | `.windsurf/workflows/` | Markdown | N/A (IDE-based) | Windsurf IDE workflows |
@@ -88,7 +84,7 @@ This eliminates the need for special-case mappings throughout the codebase.
8884
- `folder`: Directory where agent-specific files are stored (relative to project root)
8985
- `commands_subdir`: Subdirectory name within the agent folder where command/prompt files are stored (default: `"commands"`)
9086
- Most agents use `"commands"` (e.g., `.claude/commands/`)
91-
- Some agents use alternative names: `"agents"` (copilot), `"workflows"` (windsurf, kilocode, agy), `"prompts"` (codex, kiro-cli), `"command"` (opencode - singular)
87+
- Some agents use alternative names: `"agents"` (copilot), `"workflows"` (windsurf, kilocode), `"prompts"` (codex, kiro-cli), `"command"` (opencode - singular)
9288
- This field enables `--ai-skills` to locate command templates correctly for skill generation
9389
- `install_url`: Installation documentation URL (set to `None` for IDE-based agents)
9490
- `requires_cli`: Whether the agent requires a CLI tool check during initialization
@@ -339,7 +335,7 @@ Work within integrated development environments:
339335

340336
### Markdown Format
341337

342-
Used by: Claude, Cursor, opencode, Windsurf, Kiro CLI, Amp, SHAI, IBM Bob, Kimi Code
338+
Used by: Claude, Cursor, opencode, Windsurf, Kiro CLI, Amp, SHAI, IBM Bob, Kimi Code, Qwen
343339

344340
**Standard format:**
345341

@@ -364,7 +360,7 @@ Command content with {SCRIPT} and $ARGUMENTS placeholders.
364360

365361
### TOML Format
366362

367-
Used by: Gemini, Qwen, Tabnine
363+
Used by: Gemini, Tabnine
368364

369365
```toml
370366
description = "Command description"

CHANGELOG.md

Lines changed: 45 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,51 @@ Recent changes to the Specify CLI and templates are documented here.
77
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
88
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
99

10+
## [0.3.0] - 2026-03-13
11+
12+
### Changed
13+
14+
- No changes have been documented for this release yet.
15+
16+
<!-- Entries for 0.2.x and earlier releases are documented in their respective sections below. -->
17+
- make c ignores consistent with c++ (#1747)
18+
- chore: bump version to 0.1.13 (#1746)
19+
- feat: add kiro-cli and AGENT_CONFIG consistency coverage (#1690)
20+
- feat: add verify extension to community catalog (#1726)
21+
- Add Retrospective Extension to community catalog README table (#1741)
22+
- fix(scripts): add empty description validation and branch checkout error handling (#1559)
23+
- fix: correct Copilot extension command registration (#1724)
24+
- fix(implement): remove Makefile from C ignore patterns (#1558)
25+
- Add sync extension to community catalog (#1728)
26+
- fix(checklist): clarify file handling behavior for append vs create (#1556)
27+
- fix(clarify): correct conflicting question limit from 10 to 5 (#1557)
28+
- chore: bump version to 0.1.12 (#1737)
29+
- fix: use RELEASE_PAT so tag push triggers release workflow (#1736)
30+
- fix: release-trigger uses release branch + PR instead of direct push to main (#1733)
31+
- fix: Split release process to sync pyproject.toml version with git tags (#1732)
32+
33+
34+
## [Unreleased]
35+
36+
### Added
37+
38+
- feat(presets): Pluggable preset system with preset catalog and template resolver
39+
- Preset manifest (`preset.yml`) with validation for artifact, command, and script types
40+
- `PresetManifest`, `PresetRegistry`, `PresetManager`, `PresetCatalog`, `PresetResolver` classes in `src/specify_cli/presets.py`
41+
- CLI commands: `specify preset search`, `specify preset add`, `specify preset list`, `specify preset remove`, `specify preset resolve`, `specify preset info`
42+
- CLI commands: `specify preset catalog list`, `specify preset catalog add`, `specify preset catalog remove` for multi-catalog management
43+
- `PresetCatalogEntry` dataclass and multi-catalog support mirroring the extension catalog system
44+
- `--preset` option for `specify init` to install presets during initialization
45+
- Priority-based preset resolution: presets with lower priority number win (`--priority` flag)
46+
- `resolve_template()` / `Resolve-Template` helpers in bash and PowerShell common scripts
47+
- Template resolution priority stack: overrides → presets → extensions → core
48+
- Preset catalog files (`presets/catalog.json`, `presets/catalog.community.json`)
49+
- Preset scaffold directory (`presets/scaffold/`)
50+
- Scripts updated to use template resolution instead of hardcoded paths
51+
- feat(presets): Preset command overrides now propagate to agent skills when `--ai-skills` was used during init
52+
- feat: `specify init` persists CLI options to `.specify/init-options.json` for downstream operations
53+
- feat(extensions): support `.extensionignore` to exclude files/folders during `specify extension add` (#1781)
54+
1055
## [0.2.1] - 2026-03-11
1156

1257
### Changed
@@ -51,13 +96,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
5196
- fix: release-trigger uses release branch + PR instead of direct push to main (#1733)
5297
- fix: Split release process to sync pyproject.toml version with git tags (#1732)
5398

54-
55-
## [Unreleased]
56-
57-
### Added
58-
59-
- feat(extensions): support `.extensionignore` to exclude files/folders during `specify extension add` (#1781)
60-
6199
## [0.2.0] - 2026-03-09
62100

63101
### Changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ See Spec-Driven Development in action across different scenarios with these comm
183183
| [Mistral Vibe](https://github.com/mistralai/mistral-vibe) || |
184184
| [Kimi Code](https://code.kimi.com/) || |
185185
| [Windsurf](https://windsurf.com/) || |
186-
| [Antigravity (agy)](https://antigravity.google/) || |
186+
| [Antigravity (agy)](https://antigravity.google/) || Requires `--ai-skills` |
187187
| Generic || Bring your own agent — use `--ai generic --ai-commands-dir <path>` for unsupported agents |
188188

189189
## 🔧 Specify CLI Reference
@@ -248,7 +248,7 @@ specify init my-project --ai vibe
248248
specify init my-project --ai bob
249249

250250
# Initialize with Antigravity support
251-
specify init my-project --ai agy
251+
specify init my-project --ai agy --ai-skills
252252

253253
# Initialize with an unsupported agent (generic / bring your own agent)
254254
specify init my-project --ai generic --ai-commands-dir .myagent/commands/

extensions/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,16 @@ The following community-contributed extensions are available in [`catalog.commun
7272

7373
| Extension | Purpose | URL |
7474
|-----------|---------|-----|
75+
| Archive Extension | Archive merged features into main project memory. | [spec-kit-archive](https://github.com/stn1slv/spec-kit-archive) |
7576
| Azure DevOps Integration | Sync user stories and tasks to Azure DevOps work items using OAuth authentication | [spec-kit-azure-devops](https://github.com/pragya247/spec-kit-azure-devops) |
7677
| 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 | [spec-kit-cleanup](https://github.com/dsrednicki/spec-kit-cleanup) |
78+
| DocGuard — CDD Enforcement | Canonical-Driven Development enforcement. Generates, validates, scores, and traces project documentation against 92 automated checks with config-aware traceability, quality labels, and AI-ready fix prompts. Zero dependencies. | [spec-kit-docguard](https://github.com/raccioly/docguard) |
7779
| Fleet Orchestrator | Orchestrate a full feature lifecycle with human-in-the-loop gates across all SpecKit phases | [spec-kit-fleet](https://github.com/sharathsatish/spec-kit-fleet) |
7880
| Jira Integration | Create Jira Epics, Stories, and Issues from spec-kit specifications and task breakdowns with configurable hierarchy and custom field support | [spec-kit-jira](https://github.com/mbachorik/spec-kit-jira) |
81+
| Project Health Check | Diagnose a Spec Kit project and report health issues across structure, agents, features, scripts, extensions, and git | [spec-kit-doctor](https://github.com/KhawarHabibKhan/spec-kit-doctor) |
7982
| Project Status | Show current SDD workflow progress — active feature, artifact status, task completion, workflow phase, and extensions summary | [spec-kit-status](https://github.com/KhawarHabibKhan/spec-kit-status) |
8083
| Ralph Loop | Autonomous implementation loop using AI agent CLI | [spec-kit-ralph](https://github.com/Rubiss/spec-kit-ralph) |
84+
| Reconcile Extension | Reconcile implementation drift by surgically updating feature artifacts. | [spec-kit-reconcile](https://github.com/stn1slv/spec-kit-reconcile) |
8185
| Retrospective Extension | Post-implementation retrospective with spec adherence scoring, drift analysis, and human-gated spec updates | [spec-kit-retrospective](https://github.com/emi-dm/spec-kit-retrospective) |
8286
| Review Extension | Post-implementation comprehensive code review with specialized agents for code quality, comments, tests, error handling, type design, and simplification | [spec-kit-review](https://github.com/ismaelJimenez/spec-kit-review) |
8387
| 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) |

0 commit comments

Comments
 (0)