Skip to content

Commit 4c690ec

Browse files
mnriemCopilot
andcommitted
fix(qodercli): resolve failing skills-flag test and slash invocation
Builds on the qodercli->SkillsIntegration migration (PR #4205). Qoder IDE 1.24+ is always skills-based, so it should not expose a --skills toggle. Override the inherited SkillsIntegrationTests.test_options_include_skills_flag to skip (mirroring Grok/Zed/Droid) and add a test asserting no --skills option, plus a requires_cli/name/multi_install_safe check. Also add "qodercli" to ALWAYS_SLASH_AGENTS so hooks and next-steps render the hyphenated /speckit-<name> invocation instead of the legacy dotted /speckit.<name> form. Fixes the single failing test reported for #4199. Assisted-by: GitHub Copilot (model: claude-opus-4.8, autonomous) Co-authored-by: Copilot App <[email protected]> Copilot-Session: 43394151-ce2a-432d-9cc5-88f587d1b570
1 parent b21d8ce commit 4c690ec

2 files changed

Lines changed: 32 additions & 1 deletion

File tree

‎src/specify_cli/_invocation_style.py‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
DOLLAR_SKILLS_AGENTS: frozenset[str] = frozenset({"codex", "zcode", "command-code"})
1313

1414
# Agents that always render /speckit-<name>, regardless of ai_skills.
15-
ALWAYS_SLASH_AGENTS: frozenset[str] = frozenset({"devin", "droid", "grok", "trae", "zed"})
15+
ALWAYS_SLASH_AGENTS: frozenset[str] = frozenset(
16+
{"devin", "droid", "grok", "qodercli", "trae", "zed"}
17+
)
1618

1719
# Agents that render /speckit-<name> only when ai_skills is enabled.
1820
CONDITIONAL_SLASH_AGENTS: frozenset[str] = frozenset(

‎tests/integrations/test_integration_qodercli.py‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
"""Tests for QodercliIntegration."""
22

3+
import pytest
4+
5+
from specify_cli.integrations import get_integration
6+
37
from .test_integration_base_skills import SkillsIntegrationTests
48

59

@@ -8,3 +12,28 @@ class TestQodercliIntegration(SkillsIntegrationTests):
812
FOLDER = ".qoder/"
913
COMMANDS_SUBDIR = "skills"
1014
REGISTRAR_DIR = ".qoder/skills"
15+
16+
def test_options_include_skills_flag(self):
17+
"""Not applicable — Qoder IDE 1.24+ is always skills-based."""
18+
pytest.skip(
19+
"Qoder is always skills-based and does not expose a --skills option"
20+
)
21+
22+
def test_options_do_not_include_skills_flag(self):
23+
"""Qoder is always skills-based; no --skills option is exposed."""
24+
i = get_integration(self.KEY)
25+
assert i is not None
26+
opts = i.options()
27+
skills_opts = [o for o in opts if o.name == "--skills"]
28+
assert len(skills_opts) == 0, (
29+
"Qoder is always skills-based and should not expose a --skills option"
30+
)
31+
32+
def test_requires_cli_is_true(self):
33+
"""Qoder CLI is a CLI-based agent; requires_cli must remain True."""
34+
i = get_integration(self.KEY)
35+
assert i is not None
36+
assert i.config is not None
37+
assert i.config["requires_cli"] is True
38+
assert i.config["name"] == "Qoder CLI"
39+
assert i.multi_install_safe is True

0 commit comments

Comments
 (0)