From dfa2042ede042a332ae89b23ea52279a502d9d32 Mon Sep 17 00:00:00 2001 From: Ben Buttigieg <70525+BenBtg@users.noreply.github.com> Date: Mon, 29 Jun 2026 12:42:41 +0100 Subject: [PATCH 1/3] =?UTF-8?q?chore:=20retire=20roo=20integration=20?= =?UTF-8?q?=E2=80=94=20extension=20shut=20down=20(#3167)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove the Roo Code integration after the extension was shut down: subpackage, registry entry, catalog entry, docs, tests, and issue-template options. Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .devcontainer/devcontainer.json | 2 -- .github/ISSUE_TEMPLATE/agent_request.yml | 2 +- .github/ISSUE_TEMPLATE/bug_report.yml | 1 - .github/ISSUE_TEMPLATE/feature_request.yml | 1 - docs/reference/integrations.md | 2 -- integrations/catalog.json | 9 -------- src/specify_cli/integrations/__init__.py | 2 -- src/specify_cli/integrations/roo/__init__.py | 22 -------------------- tests/integrations/test_integration_roo.py | 11 ---------- tests/integrations/test_registry.py | 2 +- tests/test_agent_config_consistency.py | 1 - 11 files changed, 2 insertions(+), 53 deletions(-) delete mode 100644 src/specify_cli/integrations/roo/__init__.py delete mode 100644 tests/integrations/test_integration_roo.py diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 88acdcd5fd..89c090a828 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -48,8 +48,6 @@ "openai.chatgpt", // Kilo Code "kilocode.Kilo-Code", - // Roo Code - "RooVeterinaryInc.roo-cline", // Claude Code "anthropic.claude-code" ], diff --git a/.github/ISSUE_TEMPLATE/agent_request.yml b/.github/ISSUE_TEMPLATE/agent_request.yml index 69cfd090e6..d1598d01f7 100644 --- a/.github/ISSUE_TEMPLATE/agent_request.yml +++ b/.github/ISSUE_TEMPLATE/agent_request.yml @@ -8,7 +8,7 @@ body: value: | Thanks for requesting a new agent! Before submitting, please check if the agent is already supported. - **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, iFlow CLI, 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 + **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, iFlow CLI, Junie, Kilo Code, Kimi Code, Kiro CLI, Lingma, Mistral Vibe, Oh My Pi, opencode, Pi Coding Agent, Qoder CLI, Qwen Code, RovoDev ACLI, SHAI, Tabnine CLI, Trae, Windsurf, ZCode, Zed - type: input id: agent-name diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 227f98ae1c..78b86581b9 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -90,7 +90,6 @@ body: - Pi Coding Agent - Qoder CLI - Qwen Code - - Roo Code - RovoDev ACLI - SHAI - Tabnine CLI diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index ca1ecb9c11..a6ec98281e 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -84,7 +84,6 @@ body: - Pi Coding Agent - Qoder CLI - Qwen Code - - Roo Code - RovoDev ACLI - SHAI - Tabnine CLI diff --git a/docs/reference/integrations.md b/docs/reference/integrations.md index 36829ec8be..d00f432e16 100644 --- a/docs/reference/integrations.md +++ b/docs/reference/integrations.md @@ -34,7 +34,6 @@ The Specify CLI supports a wide range of AI coding agents. When you run `specify | [Pi Coding Agent](https://pi.dev) | `pi` | Pi doesn't have MCP support out of the box, so `taskstoissues` won't work as intended. MCP support can be added via [extensions](https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent#extensions) | | [Qoder CLI](https://qoder.com/cli) | `qodercli` | | | [Qwen Code](https://github.com/QwenLM/qwen-code) | `qwen` | | -| [Roo Code](https://roocode.com/) | `roo` | | | [RovoDev](https://www.atlassian.com/software/rovo-dev) | `rovodev` | Generates `.rovodev/skills/`, prompt wrappers, and `prompts.yml`; runtime dispatch uses `acli rovodev` | | [SHAI (OVHcloud)](https://github.com/ovh/shai) | `shai` | | | [Tabnine CLI](https://docs.tabnine.com/main/getting-started/tabnine-cli) | `tabnine` | | @@ -196,7 +195,6 @@ The currently declared multi-install safe integrations are: | `kilocode` | `.kilocode/workflows`, `.kilocode/rules/specify-rules.md` | | `qodercli` | `.qoder/commands`, `QODER.md` | | `qwen` | `.qwen/commands`, `QWEN.md` | -| `roo` | `.roo/commands`, `.roo/rules/specify-rules.md` | | `shai` | `.shai/commands`, `SHAI.md` | | `tabnine` | `.tabnine/agent/commands`, `TABNINE.md` | | `trae` | `.trae/skills`, `.trae/rules/project_rules.md` | diff --git a/integrations/catalog.json b/integrations/catalog.json index 931df0d974..df5408fa6a 100644 --- a/integrations/catalog.json +++ b/integrations/catalog.json @@ -174,15 +174,6 @@ "repository": "https://github.com/github/spec-kit", "tags": ["ide"] }, - "roo": { - "id": "roo", - "name": "Roo Code", - "version": "1.0.0", - "description": "Roo Code IDE integration", - "author": "spec-kit-core", - "repository": "https://github.com/github/spec-kit", - "tags": ["ide"] - }, "rovodev": { "id": "rovodev", "name": "RovoDev ACLI", diff --git a/src/specify_cli/integrations/__init__.py b/src/specify_cli/integrations/__init__.py index f394f64a20..3688033214 100644 --- a/src/specify_cli/integrations/__init__.py +++ b/src/specify_cli/integrations/__init__.py @@ -75,7 +75,6 @@ def _register_builtins() -> None: from .pi import PiIntegration from .qodercli import QodercliIntegration from .qwen import QwenIntegration - from .roo import RooIntegration from .rovodev import RovodevIntegration from .shai import ShaiIntegration from .tabnine import TabnineIntegration @@ -114,7 +113,6 @@ def _register_builtins() -> None: _register(PiIntegration()) _register(QodercliIntegration()) _register(QwenIntegration()) - _register(RooIntegration()) _register(RovodevIntegration()) _register(ShaiIntegration()) _register(TabnineIntegration()) diff --git a/src/specify_cli/integrations/roo/__init__.py b/src/specify_cli/integrations/roo/__init__.py deleted file mode 100644 index f610a3cc63..0000000000 --- a/src/specify_cli/integrations/roo/__init__.py +++ /dev/null @@ -1,22 +0,0 @@ -"""Roo Code integration.""" - -from ..base import MarkdownIntegration - - -class RooIntegration(MarkdownIntegration): - key = "roo" - config = { - "name": "Roo Code", - "folder": ".roo/", - "commands_subdir": "commands", - "install_url": None, - "requires_cli": False, - } - registrar_config = { - "dir": ".roo/commands", - "format": "markdown", - "args": "$ARGUMENTS", - "extension": ".md", - } - context_file = ".roo/rules/specify-rules.md" - multi_install_safe = True diff --git a/tests/integrations/test_integration_roo.py b/tests/integrations/test_integration_roo.py deleted file mode 100644 index 69d859c42f..0000000000 --- a/tests/integrations/test_integration_roo.py +++ /dev/null @@ -1,11 +0,0 @@ -"""Tests for RooIntegration.""" - -from .test_integration_base_markdown import MarkdownIntegrationTests - - -class TestRooIntegration(MarkdownIntegrationTests): - KEY = "roo" - FOLDER = ".roo/" - COMMANDS_SUBDIR = "commands" - REGISTRAR_DIR = ".roo/commands" - CONTEXT_FILE = ".roo/rules/specify-rules.md" diff --git a/tests/integrations/test_registry.py b/tests/integrations/test_registry.py index 0110e19ec7..03119e385b 100644 --- a/tests/integrations/test_registry.py +++ b/tests/integrations/test_registry.py @@ -22,7 +22,7 @@ "copilot", # Stage 3 — standard markdown integrations "claude", "qwen", "opencode", "junie", "kilocode", "auggie", - "roo", "rovodev", "codebuddy", "qodercli", "amp", "shai", "bob", "trae", + "rovodev", "codebuddy", "qodercli", "amp", "shai", "bob", "trae", "pi", "iflow", "kiro-cli", "windsurf", "vibe", "cursor-agent", "firebender", # Stage 4 — TOML integrations "gemini", "tabnine", diff --git a/tests/test_agent_config_consistency.py b/tests/test_agent_config_consistency.py index 94496af5ef..055de12a5f 100644 --- a/tests/test_agent_config_consistency.py +++ b/tests/test_agent_config_consistency.py @@ -39,7 +39,6 @@ "pi", "qodercli", "qwen", - "roo", "rovodev", "shai", "tabnine", From fda422dd5e18d8ad173ec9d60f7fba50fa452a06 Mon Sep 17 00:00:00 2001 From: Ben Buttigieg <70525+BenBtg@users.noreply.github.com> Date: Mon, 29 Jun 2026 15:36:45 +0100 Subject: [PATCH 2/3] docs: remove stale Roo Code mention in upgrade guide Assisted-by: GitHub Copilot (model: gpt-5.3-codex, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/upgrade.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/upgrade.md b/docs/upgrade.md index c28daf396a..2c806f6813 100644 --- a/docs/upgrade.md +++ b/docs/upgrade.md @@ -242,7 +242,7 @@ mv /tmp/constitution-backup.md .specify/memory/constitution.md ### Scenario 3: "I see duplicate slash commands in my IDE" -This happens with IDE-based agents (Kilo Code, Windsurf, Roo Code, etc.). +This happens with IDE-based agents (Kilo Code, Windsurf, etc.). ```bash # Find the agent folder (example: .kilocode/rules/) From 21a505165568645dc4961c5a84d9e14103770d84 Mon Sep 17 00:00:00 2001 From: Ben Buttigieg <70525+BenBtg@users.noreply.github.com> Date: Tue, 30 Jun 2026 16:08:52 +0100 Subject: [PATCH 3/3] chore: remove leftover Roo Code references after merge Drop roo from presets/ARCHITECTURE.md example and the agent-context defaults map; these came in from main and were flagged by review. Assisted-by: GitHub Copilot (model: claude-opus-4.8, autonomous) --- extensions/agent-context/agent-context-defaults.json | 1 - presets/ARCHITECTURE.md | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/extensions/agent-context/agent-context-defaults.json b/extensions/agent-context/agent-context-defaults.json index 336440b246..0870e6693a 100644 --- a/extensions/agent-context/agent-context-defaults.json +++ b/extensions/agent-context/agent-context-defaults.json @@ -28,7 +28,6 @@ "pi": "AGENTS.md", "qodercli": "QODER.md", "qwen": "QWEN.md", - "roo": ".roo/rules/specify-rules.md", "rovodev": "AGENTS.md", "shai": "SHAI.md", "tabnine": "TABNINE.md", diff --git a/presets/ARCHITECTURE.md b/presets/ARCHITECTURE.md index fc043143bb..85e9dea3c7 100644 --- a/presets/ARCHITECTURE.md +++ b/presets/ARCHITECTURE.md @@ -99,7 +99,7 @@ The `CommandRegistrar` renders commands differently per agent: | Agent | Format | Extension | Arg placeholder | |-------|--------|-----------|-----------------| -| Claude, Kilo Code, opencode, Roo Code, etc. | Markdown | `.md` | `$ARGUMENTS` | +| Claude, Kilo Code, opencode, etc. | Markdown | `.md` | `$ARGUMENTS` | | Copilot | Markdown | `.agent.md` + `.prompt.md` | `$ARGUMENTS` | | Gemini, Qwen, Tabnine | TOML | `.toml` | `{{args}}` |