From 28a38af6c1097af7086a42a9ab200f200368189a Mon Sep 17 00:00:00 2001 From: Ben Buttigieg <70525+BenBtg@users.noreply.github.com> Date: Tue, 30 Jun 2026 13:30:52 +0100 Subject: [PATCH] =?UTF-8?q?chore:=20retire=20iflow=20integration=20?= =?UTF-8?q?=E2=80=94=20product=20discontinued=20(#3166)=20(#3211)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove the iFlow CLI integration whose product 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> --- .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 -- .../agent-context/agent-context-defaults.json | 1 - integrations/catalog.json | 9 -------- src/specify_cli/integrations/__init__.py | 2 -- .../integrations/iflow/__init__.py | 21 ----------------- tests/integrations/test_integration_iflow.py | 10 -------- tests/integrations/test_registry.py | 2 +- tests/test_agent_config_consistency.py | 23 ------------------- 11 files changed, 2 insertions(+), 72 deletions(-) delete mode 100644 src/specify_cli/integrations/iflow/__init__.py delete mode 100644 tests/integrations/test_integration_iflow.py diff --git a/.github/ISSUE_TEMPLATE/agent_request.yml b/.github/ISSUE_TEMPLATE/agent_request.yml index 69cfd090e..15f3f10c2 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, 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 - type: input id: agent-name diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 227f98ae1..1e3d5f14c 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -78,7 +78,6 @@ body: - Goose - Hermes Agent - IBM Bob - - iFlow CLI - Junie - Kilo Code - Kimi Code diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index ca1ecb9c1..83f3169c3 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -72,7 +72,6 @@ body: - Goose - Hermes Agent - IBM Bob - - iFlow CLI - Junie - Kilo Code - Kimi Code diff --git a/docs/reference/integrations.md b/docs/reference/integrations.md index c8285a423..9a567d1d3 100644 --- a/docs/reference/integrations.md +++ b/docs/reference/integrations.md @@ -22,7 +22,6 @@ The Specify CLI supports a wide range of AI coding agents. When you run `specify | [Goose](https://goose-docs.ai/) | `goose` | Uses YAML recipe format in `.goose/recipes/` | | [Hermes](https://github.com/NousResearch/hermes-agent) | `hermes` | Skills-based integration; installs skills globally into `~/.hermes/skills/` | | [IBM Bob](https://www.ibm.com/products/bob) | `bob` | IDE-based agent | -| [iFlow CLI](https://docs.iflow.cn/en/cli/quickstart) | `iflow` | | | [Junie](https://junie.jetbrains.com/) | `junie` | | | [Kilo Code](https://github.com/Kilo-Org/kilocode) | `kilocode` | | | [Kimi Code](https://code.kimi.com/) | `kimi` | Skills-based integration; installs into `.kimi-code/skills/`. `--migrate-legacy` moves old `.kimi/skills/` installs to the new paths, and (when the `agent-context` extension is enabled) migrates `KIMI.md` context into `AGENTS.md` | @@ -265,7 +264,6 @@ The currently declared multi-install safe integrations are: | `cursor-agent` | `.cursor/skills`, `.cursor/rules/specify-rules.mdc` | | `firebender` | `.firebender/commands`, `.firebender/rules/specify-rules.mdc` | | `gemini` | `.gemini/commands`, `GEMINI.md` | -| `iflow` | `.iflow/commands`, `IFLOW.md` | | `junie` | `.junie/commands`, `.junie/AGENTS.md` | | `kilocode` | `.kilocode/workflows`, `.kilocode/rules/specify-rules.md` | | `qodercli` | `.qoder/commands`, `QODER.md` | diff --git a/extensions/agent-context/agent-context-defaults.json b/extensions/agent-context/agent-context-defaults.json index 120c348ac..336440b24 100644 --- a/extensions/agent-context/agent-context-defaults.json +++ b/extensions/agent-context/agent-context-defaults.json @@ -18,7 +18,6 @@ "generic": "AGENTS.md", "goose": "AGENTS.md", "hermes": "AGENTS.md", - "iflow": "IFLOW.md", "junie": ".junie/AGENTS.md", "kilocode": ".kilocode/rules/specify-rules.md", "kimi": "AGENTS.md", diff --git a/integrations/catalog.json b/integrations/catalog.json index 931df0d97..8167924cc 100644 --- a/integrations/catalog.json +++ b/integrations/catalog.json @@ -264,15 +264,6 @@ "repository": "https://github.com/github/spec-kit", "tags": ["cli"] }, - "iflow": { - "id": "iflow", - "name": "iFlow CLI", - "version": "1.0.0", - "description": "iFlow CLI integration by iflow-ai", - "author": "spec-kit-core", - "repository": "https://github.com/github/spec-kit", - "tags": ["cli"] - }, "vibe": { "id": "vibe", "name": "Mistral Vibe", diff --git a/src/specify_cli/integrations/__init__.py b/src/specify_cli/integrations/__init__.py index f394f64a2..374d9479f 100644 --- a/src/specify_cli/integrations/__init__.py +++ b/src/specify_cli/integrations/__init__.py @@ -64,7 +64,6 @@ def _register_builtins() -> None: from .generic import GenericIntegration from .goose import GooseIntegration from .hermes import HermesIntegration - from .iflow import IflowIntegration from .junie import JunieIntegration from .kilocode import KilocodeIntegration from .kimi import KimiIntegration @@ -103,7 +102,6 @@ def _register_builtins() -> None: _register(GenericIntegration()) _register(GooseIntegration()) _register(HermesIntegration()) - _register(IflowIntegration()) _register(JunieIntegration()) _register(KilocodeIntegration()) _register(KimiIntegration()) diff --git a/src/specify_cli/integrations/iflow/__init__.py b/src/specify_cli/integrations/iflow/__init__.py deleted file mode 100644 index c6b5447bb..000000000 --- a/src/specify_cli/integrations/iflow/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -"""iFlow CLI integration.""" - -from ..base import MarkdownIntegration - - -class IflowIntegration(MarkdownIntegration): - key = "iflow" - config = { - "name": "iFlow CLI", - "folder": ".iflow/", - "commands_subdir": "commands", - "install_url": "https://docs.iflow.cn/en/cli/quickstart", - "requires_cli": True, - } - registrar_config = { - "dir": ".iflow/commands", - "format": "markdown", - "args": "$ARGUMENTS", - "extension": ".md", - } - multi_install_safe = True diff --git a/tests/integrations/test_integration_iflow.py b/tests/integrations/test_integration_iflow.py deleted file mode 100644 index 89501f8ed..000000000 --- a/tests/integrations/test_integration_iflow.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Tests for IflowIntegration.""" - -from .test_integration_base_markdown import MarkdownIntegrationTests - - -class TestIflowIntegration(MarkdownIntegrationTests): - KEY = "iflow" - FOLDER = ".iflow/" - COMMANDS_SUBDIR = "commands" - REGISTRAR_DIR = ".iflow/commands" diff --git a/tests/integrations/test_registry.py b/tests/integrations/test_registry.py index f22f7e104..478bc54f5 100644 --- a/tests/integrations/test_registry.py +++ b/tests/integrations/test_registry.py @@ -23,7 +23,7 @@ ALL_INTEGRATION_KEYS = [ # Stage 3 — standard markdown integrations "claude", "qwen", "opencode", "junie", "kilocode", "auggie", "roo", "rovodev", "codebuddy", "qodercli", "amp", "shai", "bob", "trae", - "pi", "iflow", "kiro-cli", "windsurf", "vibe", "cursor-agent", "firebender", + "pi", "kiro-cli", "windsurf", "vibe", "cursor-agent", "firebender", # Stage 4 — TOML integrations "gemini", "tabnine", # Stage 5 — skills, generic & option-driven integrations diff --git a/tests/test_agent_config_consistency.py b/tests/test_agent_config_consistency.py index 94496af5e..d35154e86 100644 --- a/tests/test_agent_config_consistency.py +++ b/tests/test_agent_config_consistency.py @@ -27,7 +27,6 @@ ISSUE_TEMPLATE_AGENT_KEYS = [ "goose", "hermes", "bob", - "iflow", "junie", "kilocode", "kimi", @@ -292,28 +291,6 @@ class TestAgentConfigConsistency: """AGENT_CONFIG should include pi.""" assert "pi" in AGENT_CONFIG - # --- iFlow CLI consistency checks --- - - def test_iflow_in_agent_config(self): - """AGENT_CONFIG should include iflow with correct folder and commands_subdir.""" - assert "iflow" in AGENT_CONFIG - assert AGENT_CONFIG["iflow"]["folder"] == ".iflow/" - assert AGENT_CONFIG["iflow"]["commands_subdir"] == "commands" - assert AGENT_CONFIG["iflow"]["requires_cli"] is True - - def test_iflow_in_extension_registrar(self): - """Extension command registrar should include iflow targeting .iflow/commands.""" - cfg = CommandRegistrar.AGENT_CONFIGS - - assert "iflow" in cfg - assert cfg["iflow"]["dir"] == ".iflow/commands" - assert cfg["iflow"]["format"] == "markdown" - assert cfg["iflow"]["args"] == "$ARGUMENTS" - - def test_agent_config_includes_iflow(self): - """AGENT_CONFIG should include iflow.""" - assert "iflow" in AGENT_CONFIG - # --- Goose consistency checks --- def test_goose_in_agent_config(self):