From 173262cadd1ed07dc9767416fa12bbb536f54152 Mon Sep 17 00:00:00 2001 From: Ben Buttigieg <70525+BenBtg@users.noreply.github.com> Date: Mon, 29 Jun 2026 12:40:12 +0100 Subject: [PATCH] =?UTF-8?q?chore:=20retire=20iflow=20integration=20?= =?UTF-8?q?=E2=80=94=20product=20discontinued=20(#3166)?= 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 -- integrations/catalog.json | 9 -------- src/specify_cli/integrations/__init__.py | 2 -- .../integrations/iflow/__init__.py | 22 ------------------ tests/integrations/test_integration_iflow.py | 11 --------- tests/integrations/test_registry.py | 2 +- tests/test_agent_config_consistency.py | 23 ------------------- 10 files changed, 2 insertions(+), 73 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 69cfd090e6..15f3f10c28 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 227f98ae1c..1e3d5f14cb 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 ca1ecb9c11..83f3169c37 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 36829ec8be..a66ec97c27 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://block.github.io/goose/) | `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` | @@ -191,7 +190,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/integrations/catalog.json b/integrations/catalog.json index 931df0d974..8167924cca 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 f394f64a20..374d9479f5 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 65d4d21c63..0000000000 --- a/src/specify_cli/integrations/iflow/__init__.py +++ /dev/null @@ -1,22 +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", - } - context_file = "IFLOW.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 ea2f5ef97a..0000000000 --- a/tests/integrations/test_integration_iflow.py +++ /dev/null @@ -1,11 +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" - CONTEXT_FILE = "IFLOW.md" diff --git a/tests/integrations/test_registry.py b/tests/integrations/test_registry.py index 0110e19ec7..51c2ef0892 100644 --- a/tests/integrations/test_registry.py +++ b/tests/integrations/test_registry.py @@ -23,7 +23,7 @@ # 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 94496af5ef..d35154e86c 100644 --- a/tests/test_agent_config_consistency.py +++ b/tests/test_agent_config_consistency.py @@ -27,7 +27,6 @@ "goose", "hermes", "bob", - "iflow", "junie", "kilocode", "kimi", @@ -292,28 +291,6 @@ def test_agent_config_includes_pi(self): """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):