Skip to content

Commit 276edcc

Browse files
committed
Merge origin/main into feat/init-dir-python-cli
Assisted-by: OpenAI Codex (model: GPT-5, autonomous)
2 parents eed7ff3 + c47dd2b commit 276edcc

21 files changed

Lines changed: 544 additions & 145 deletions

.github/ISSUE_TEMPLATE/agent_request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ body:
88
value: |
99
Thanks for requesting a new agent! Before submitting, please check if the agent is already supported.
1010
11-
**Currently supported agents**: Amp, Antigravity, Auggie CLI, Claude Code, Cline, CodeBuddy, Codex CLI, Cursor, Devin for Terminal, Firebender, Forge, Gemini CLI, GitHub Copilot, Goose, Hermes Agent, IBM Bob, Junie, Kilo Code, Kimi Code, Kiro CLI, Lingma, Mistral Vibe, Oh My Pi, opencode, Pi Coding Agent, Qoder CLI, Qwen Code, Roo Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, Windsurf, ZCode, Zed
11+
**Currently supported agents**: Amp, Antigravity, Auggie CLI, Claude Code, Cline, CodeBuddy, Codex CLI, Cursor, Devin for Terminal, Firebender, Forge, Gemini CLI, GitHub Copilot, Goose, Hermes Agent, IBM Bob, Junie, Kilo Code, Kimi Code, Kiro CLI, Lingma, Mistral Vibe, Oh My Pi, opencode, Pi Coding Agent, Qoder CLI, Qwen Code, Roo Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, ZCode, Zed
1212
1313
- type: input
1414
id: agent-name

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ body:
9494
- SHAI
9595
- Tabnine CLI
9696
- Trae
97-
- Windsurf
9897
- ZCode
9998
- Zed
10099
- Not applicable

.github/ISSUE_TEMPLATE/feature_request.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ body:
8888
- SHAI
8989
- Tabnine CLI
9090
- Trae
91-
- Windsurf
9291
- ZCode
9392
- Zed
9493
- Not applicable

AGENTS.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ src/specify_cli/integrations/
2323
│ └── __init__.py # ClaudeIntegration class
2424
├── gemini/ # Example: TomlIntegration subclass
2525
│ └── __init__.py
26-
├── windsurf/ # Example: MarkdownIntegration subclass
26+
├── kilocode/ # Example: MarkdownIntegration subclass
2727
│ └── __init__.py
2828
├── copilot/ # Example: IntegrationBase subclass (custom setup)
2929
│ └── __init__.py
@@ -52,25 +52,25 @@ Most agents only need `MarkdownIntegration` — a minimal subclass with zero met
5252

5353
Create `src/specify_cli/integrations/<package_dir>/__init__.py`, where `<package_dir>` is the Python-safe directory name derived from `<key>`: use the key as-is when it contains no hyphens (e.g., key `"gemini"``gemini/`), or replace hyphens with underscores when it does (e.g., key `"kiro-cli"``kiro_cli/`). The `IntegrationBase.key` class attribute always retains the original hyphenated value, since that is what the CLI and registry use. For CLI-based integrations (`requires_cli: True`), the `key` should match the actual CLI tool name (the executable users install and run) so CLI checks can resolve it correctly. For IDE-based integrations (`requires_cli: False`), use the canonical integration identifier instead.
5454

55-
**Minimal example — Markdown agent (Windsurf):**
55+
**Minimal example — Markdown agent (Kilo Code):**
5656

5757
```python
58-
"""Windsurf IDE integration."""
58+
"""Kilo Code IDE integration."""
5959

6060
from ..base import MarkdownIntegration
6161

6262

63-
class WindsurfIntegration(MarkdownIntegration):
64-
key = "windsurf"
63+
class KilocodeIntegration(MarkdownIntegration):
64+
key = "kilocode"
6565
config = {
66-
"name": "Windsurf",
67-
"folder": ".windsurf/",
66+
"name": "Kilo Code",
67+
"folder": ".kilocode/",
6868
"commands_subdir": "workflows",
6969
"install_url": None,
7070
"requires_cli": False,
7171
}
7272
registrar_config = {
73-
"dir": ".windsurf/workflows",
73+
"dir": ".kilocode/workflows",
7474
"format": "markdown",
7575
"args": "$ARGUMENTS",
7676
"extension": ".md",
@@ -148,7 +148,7 @@ class CodexIntegration(SkillsIntegration):
148148
| `config` | Class attribute (dict) | Agent metadata: `name`, `folder`, `commands_subdir`, `install_url`, `requires_cli` |
149149
| `registrar_config` | Class attribute (dict) | Command output config: `dir`, `format`, `args` placeholder, file `extension` |
150150

151-
**Key design rule:** For CLI-based integrations (`requires_cli: True`), `key` must be the actual executable name (e.g., `"cursor-agent"` not `"cursor"`). This ensures `shutil.which(key)` works for CLI-tool checks without special-case mappings. IDE-based integrations (`requires_cli: False`) should use their canonical identifier (e.g., `"windsurf"`, `"copilot"`).
151+
**Key design rule:** For CLI-based integrations (`requires_cli: True`), `key` must be the actual executable name (e.g., `"cursor-agent"` not `"cursor"`). This ensures `shutil.which(key)` works for CLI-tool checks without special-case mappings. IDE-based integrations (`requires_cli: False`) should use their canonical identifier (e.g., `"kilocode"`, `"copilot"`).
152152

153153
### 3. Register it
154154

@@ -201,8 +201,8 @@ Only add custom setup logic when the agent needs non-standard behavior. Integrat
201201
specify init my-project --integration <key>
202202
203203
# Verify files were created in the commands directory configured by
204-
# config["folder"] + config["commands_subdir"] (for example, .windsurf/workflows/)
205-
ls -R my-project/.windsurf/workflows/
204+
# config["folder"] + config["commands_subdir"] (for example, .kilocode/workflows/)
205+
ls -R my-project/.kilocode/workflows/
206206
207207
# Uninstall cleanly
208208
cd my-project && specify integration uninstall <key>

docs/community/extensions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ The following community-contributed extensions are available in [`catalog.commun
3131
| API Evolve | Managed API contract evolution — breaking-change detection, semver enforcement, deprecation orchestration, and lifecycle gates across REST, GraphQL, and gRPC | `process` | Read+Write | [spec-kit-api-evolve](https://github.com/Quratulain-bilal/spec-kit-api-evolve) |
3232
| Architect Impact Previewer | Predicts architectural impact, complexity, and risks of proposed changes before implementation. | `visibility` | Read-only | [spec-kit-architect-preview](https://github.com/UmmeHabiba1312/spec-kit-architect-preview) |
3333
| Architecture Guard | Framework-agnostic architecture review extension for validating implementation against governance and architecture constitutions, detecting architectural drift, and generating non-blocking refactor tasks | `process` | Read+Write | [spec-kit-architecture-guard](https://github.com/DyanGalih/spec-kit-architecture-guard) |
34-
| Architecture Workflow | Generate or reverse project-level 4+1 architecture views as separate commands | `docs` | Read+Write | [spec-kit-arch](https://github.com/bigsmartben/spec-kit-arch) |
34+
| Architecture Workflow | Generate or reverse project-level 4+1 architecture views with per-view and full-workflow commands | `docs` | Read+Write | [spec-kit-arch](https://github.com/bigsmartben/spec-kit-arch) |
3535
| Archive Extension | Archive merged features into main project memory. | `docs` | Read+Write | [spec-kit-archive](https://github.com/stn1slv/spec-kit-archive) |
3636
| 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) |
3737
| Blueprint | Stay code-literate in AI-driven development: review a complete code blueprint for every task from spec artifacts before /speckit.implement runs | `docs` | Read+Write | [spec-kit-blueprint](https://github.com/chordpli/spec-kit-blueprint) |
@@ -58,7 +58,7 @@ The following community-contributed extensions are available in [`catalog.commun
5858
| GitHub Issues Integration 2 | Creates and syncs local specs from an existing GitHub issue | `integration` | Read+Write | [spec-kit-issue](https://github.com/aaronrsun/spec-kit-issue) |
5959
| Golden Demo | Extracts acceptance criteria from specs, builds test vectors, and produces a behavioral drift report — complementary to Architecture Guard and CDD | `docs` | Read+Write | [spec-kit-golden-demo](https://github.com/jasstt/spec-kit-golden-demo) |
6060
| Improve Extension | Audits any codebase as a senior advisor and writes prioritized, self-contained spec prompts under specs/ that the spec-kit lifecycle can process | `process` | Read+Write | [spec-kit-improve](https://github.com/d0whc3r/spec-kit-improve) |
61-
| Intake | Normalize PRD, design, and test-case evidence into SDD-ready intake artifacts | `docs` | Read+Write | [spec-kit-intake](https://github.com/bigsmartben/spec-kit-intake) |
61+
| Intake | Normalize PRD, design, HTML SSOT, and test-case evidence into SDD-ready intake artifacts. | `docs` | Read+Write | [spec-kit-intake](https://github.com/bigsmartben/spec-kit-intake) |
6262
| Intelligent Agent Orchestrator | Cross-catalog agent discovery and intelligent prompt-to-command routing | `process` | Read+Write | [spec-kit-orchestrator](https://github.com/pragya247/spec-kit-orchestrator) |
6363
| 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) |
6464
| 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) |

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Define what to build before building it. Rich templates, quality checklists, and
3131

3232
### Use any coding agent
3333

34-
<span class="pillar-stat">30+ integrations</span> — Copilot, Gemini, Codex, Windsurf, Zed, Claude, Forge, Kiro, and more. Switch freely between agents with a single command. No lock-in.
34+
<span class="pillar-stat">30+ integrations</span> — Copilot, Gemini, Codex, Kilo Code, Zed, Claude, Forge, Kiro, and more. Switch freely between agents with a single command. No lock-in.
3535

3636
Run `specify init` with your agent of choice and Spec Kit sets up the right command files, context rules, and directory structures automatically. If your agent isn't listed, the `generic` integration is an escape hatch for any tool.
3737

docs/reference/integrations.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ The Specify CLI supports a wide range of AI coding agents. When you run `specify
3838
| [SHAI (OVHcloud)](https://github.com/ovh/shai) | `shai` | |
3939
| [Tabnine CLI](https://docs.tabnine.com/main/getting-started/tabnine-cli) | `tabnine` | |
4040
| [Trae](https://www.trae.ai/) | `trae` | Skills-based integration; skills are installed automatically |
41-
| [Windsurf](https://windsurf.com/) | `windsurf` | |
4241
| [ZCode](https://zcode.z.ai/) | `zcode` | Skills-based integration; installs skills into `.zcode/skills/` and invokes them as `$speckit-<command>` |
4342
| [Zed](https://zed.dev/) | `zed` | Skills-based integration; installs skills into `.agents/skills` and invokes them as `/speckit-<command>` |
4443
| Generic | `generic` | Bring your own agent — use `--integration generic --integration-options="--commands-dir <path>"` for AI coding agents not listed above |
@@ -272,7 +271,6 @@ The currently declared multi-install safe integrations are:
272271
| `shai` | `.shai/commands`, `SHAI.md` |
273272
| `tabnine` | `.tabnine/agent/commands`, `TABNINE.md` |
274273
| `trae` | `.trae/skills`, `.trae/rules/project_rules.md` |
275-
| `windsurf` | `.windsurf/workflows`, `.windsurf/rules/specify-rules.md` |
276274
| `zcode` | `.zcode/skills`, `ZCODE.md` |
277275

278276
Integrations that share a context file or command directory with another integration, require dynamic install paths such as `--commands-dir`, or merge shared tool settings are not declared safe by default. They can still be installed alongside another integration with `--force`.
@@ -287,7 +285,7 @@ Run `specify integration list` to see all available integrations with their keys
287285

288286
### Do I need the AI coding agent installed to use an integration?
289287

290-
CLI-based integrations (like Claude Code, Gemini CLI) require the tool to be installed. IDE-based integrations (like Windsurf, Cursor) work through the IDE itself. Some agents like GitHub Copilot support both IDE and CLI usage. `specify integration list` shows which type each integration is.
288+
CLI-based integrations (like Claude Code, Gemini CLI) require the tool to be installed. IDE-based integrations (like Cursor) work through the IDE itself. Some agents like GitHub Copilot support both IDE and CLI usage. `specify integration list` shows which type each integration is.
291289

292290
### When should I use `upgrade` vs `switch`?
293291

docs/upgrade.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -185,15 +185,15 @@ cp -r .specify/scripts .specify/scripts-backup
185185

186186
### 3. Duplicate slash commands (IDE-based agents)
187187

188-
Some IDE-based agents (like Kilo Code, Windsurf) may show **duplicate slash commands** after upgrading—both old and new versions appear.
188+
Some IDE-based agents (like Kilo Code, Roo Code) may show **duplicate slash commands** after upgrading—both old and new versions appear.
189189

190190
**Solution:** Manually delete the old command files from your agent's folder.
191191

192192
**Example for Kilo Code:**
193193

194194
```bash
195195
# Navigate to the agent's commands folder
196-
cd .kilocode/rules/
196+
cd .kilocode/workflows/
197197

198198
# List files and identify duplicates
199199
ls -la
@@ -242,11 +242,11 @@ mv /tmp/constitution-backup.md .specify/memory/constitution.md
242242

243243
### Scenario 3: "I see duplicate slash commands in my IDE"
244244

245-
This happens with IDE-based agents (Kilo Code, Windsurf, Roo Code, etc.).
245+
This happens with IDE-based agents (Kilo Code, Roo Code, Cline, etc.).
246246

247247
```bash
248-
# Find the agent folder (example: .kilocode/rules/)
249-
cd .kilocode/rules/
248+
# Find the agent folder (example: .kilocode/workflows/)
249+
cd .kilocode/workflows/
250250

251251
# List all files
252252
ls -la

extensions/catalog.community.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -187,10 +187,10 @@
187187
"arch": {
188188
"name": "Architecture Workflow",
189189
"id": "arch",
190-
"description": "Generate or reverse project-level 4+1 architecture views as separate commands",
190+
"description": "Generate or reverse project-level 4+1 architecture views with per-view and full-workflow commands",
191191
"author": "bigsmartben",
192-
"version": "1.2.1",
193-
"download_url": "https://github.com/bigsmartben/spec-kit-arch/archive/refs/tags/v1.2.1.zip",
192+
"version": "1.2.2",
193+
"download_url": "https://github.com/bigsmartben/spec-kit-arch/archive/refs/tags/v1.2.2.zip",
194194
"repository": "https://github.com/bigsmartben/spec-kit-arch",
195195
"homepage": "https://github.com/bigsmartben/spec-kit-arch",
196196
"documentation": "https://github.com/bigsmartben/spec-kit-arch/blob/main/README.md",
@@ -202,7 +202,7 @@
202202
"speckit_version": ">=0.8.10.dev0"
203203
},
204204
"provides": {
205-
"commands": 10,
205+
"commands": 12,
206206
"hooks": 0
207207
},
208208
"tags": [
@@ -215,7 +215,7 @@
215215
"downloads": 0,
216216
"stars": 0,
217217
"created_at": "2026-05-14T00:00:00Z",
218-
"updated_at": "2026-06-23T00:00:00Z"
218+
"updated_at": "2026-06-30T00:00:00Z"
219219
},
220220
"architect-preview": {
221221
"name": "Architect Impact Previewer",
@@ -1440,10 +1440,10 @@
14401440
"intake": {
14411441
"name": "Intake",
14421442
"id": "intake",
1443-
"description": "Normalize PRD, design, and test-case evidence into SDD-ready intake artifacts.",
1443+
"description": "Normalize PRD, design, HTML SSOT, and test-case evidence into SDD-ready intake artifacts.",
14441444
"author": "bigsmartben",
1445-
"version": "0.1.2",
1446-
"download_url": "https://github.com/bigsmartben/spec-kit-intake/archive/refs/tags/v0.1.2.zip",
1445+
"version": "0.1.3",
1446+
"download_url": "https://github.com/bigsmartben/spec-kit-intake/archive/refs/tags/v0.1.3.zip",
14471447
"repository": "https://github.com/bigsmartben/spec-kit-intake",
14481448
"homepage": "https://github.com/bigsmartben/spec-kit-intake",
14491449
"documentation": "https://github.com/bigsmartben/spec-kit-intake/blob/main/README.md",
@@ -1461,7 +1461,7 @@
14611461
]
14621462
},
14631463
"provides": {
1464-
"commands": 3,
1464+
"commands": 4,
14651465
"hooks": 1
14661466
},
14671467
"tags": [
@@ -1475,7 +1475,7 @@
14751475
"downloads": 0,
14761476
"stars": 0,
14771477
"created_at": "2026-06-23T00:00:00Z",
1478-
"updated_at": "2026-06-23T00:00:00Z"
1478+
"updated_at": "2026-06-30T00:00:00Z"
14791479
},
14801480
"issue": {
14811481
"name": "GitHub Issues Integration 2",

integrations/catalog.json

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,6 @@
4848
"repository": "https://github.com/github/spec-kit",
4949
"tags": ["ide"]
5050
},
51-
"windsurf": {
52-
"id": "windsurf",
53-
"name": "Windsurf",
54-
"version": "1.0.0",
55-
"description": "Windsurf IDE workflow integration",
56-
"author": "spec-kit-core",
57-
"repository": "https://github.com/github/spec-kit",
58-
"tags": ["ide"]
59-
},
6051
"amp": {
6152
"id": "amp",
6253
"name": "Amp",

0 commit comments

Comments
 (0)