Skip to content

Commit 369dd11

Browse files
BenBtgCopilot
andcommitted
docs: remove stale Windsurf support references
Assisted-by: GitHub Copilot (model: gpt-5.3-codex, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 8350bf0 commit 369dd11

5 files changed

Lines changed: 17 additions & 17 deletions

File tree

AGENTS.md

Lines changed: 12 additions & 12 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,30 +52,30 @@ 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",
7777
}
78-
context_file = ".windsurf/rules/specify-rules.md"
78+
context_file = ".kilocode/rules/specify-rules.md"
7979
```
8080

8181
**TOML agent (Gemini):**
@@ -152,7 +152,7 @@ class CodexIntegration(SkillsIntegration):
152152
| `registrar_config` | Class attribute (dict) | Command output config: `dir`, `format`, `args` placeholder, file `extension` |
153153
| `context_file` | Class attribute (str or None) | Path to agent context/instructions file (e.g., `"CLAUDE.md"`, `".github/copilot-instructions.md"`) |
154154

155-
**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"`).
155+
**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"`).
156156

157157
### 3. Register it
158158

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

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/upgrade.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ 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

@@ -242,7 +242,7 @@ 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
248248
# Find the agent folder (example: .kilocode/rules/)

presets/ARCHITECTURE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ The `CommandRegistrar` renders commands differently per agent:
9999

100100
| Agent | Format | Extension | Arg placeholder |
101101
|-------|--------|-----------|-----------------|
102-
| Claude, Cursor, opencode, Windsurf, etc. | Markdown | `.md` | `$ARGUMENTS` |
102+
| Claude, Kilo Code, opencode, Roo Code, etc. | Markdown | `.md` | `$ARGUMENTS` |
103103
| Copilot | Markdown | `.agent.md` + `.prompt.md` | `$ARGUMENTS` |
104104
| Gemini, Qwen, Tabnine | TOML | `.toml` | `{{args}}` |
105105

tests/integrations/test_integration_devin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def test_returns_args_not_none_for_dispatch(self):
2929
assert args is not None, (
3030
"DevinIntegration.build_exec_args must not return None. "
3131
"None is the codebase sentinel for IDE-only integrations "
32-
"(see WindsurfIntegration); Devin is dispatchable via 'devin -p'."
32+
"(see KilocodeIntegration); Devin is dispatchable via 'devin -p'."
3333
)
3434
assert args[:3] == ["devin", "-p", "test prompt"]
3535

0 commit comments

Comments
 (0)