Skip to content

[bug-fix] Fix qodercli-skills-migration: migrate QodercliIntegration to SkillsIntegration - #4205

Open
github-actions[bot] wants to merge 2 commits into
mainfrom
fix/4199-qodercli-skills-migration-1162461560564c6e
Open

[bug-fix] Fix qodercli-skills-migration: migrate QodercliIntegration to SkillsIntegration#4205
github-actions[bot] wants to merge 2 commits into
mainfrom
fix/4199-qodercli-skills-migration-1162461560564c6e

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Bug fix — qodercli-skills-migration

Proposed fix for issue #4199, applying the remediation from the bug assessment.

Verdict: Valid · Severity: high

Summary

Migrated QodercliIntegration from MarkdownIntegration to SkillsIntegration, changing the output layout from flat .qoder/commands/speckit.*.md files to the .qoder/skills/speckit-<name>/SKILL.md directory-per-skill structure that Qoder IDE 1.24+ requires for slash-command discovery.

Changes

File Change Notes
src/specify_cli/integrations/qodercli/__init__.py modified Changed base class from MarkdownIntegrationSkillsIntegration; updated commands_subdir to "skills", registrar_config["dir"] to ".qoder/skills", and extension to "/SKILL.md"
tests/integrations/test_integration_qodercli.py modified Swapped MarkdownIntegrationTests for SkillsIntegrationTests; updated COMMANDS_SUBDIR to "skills" and REGISTRAR_DIR to ".qoder/skills"

Tests Added or Updated

  • TestQodercliIntegration (inheriting SkillsIntegrationTests) — pins that the integration is a SkillsIntegration subclass, that files land under .qoder/skills/speckit-<name>/SKILL.md, and that each SKILL.md contains a name: speckit-<name> frontmatter field. All assertions are inherited from the shared SkillsIntegrationTests mixin.

Local Verification

  • No project test command available in this environment (no virtualenv present). Verified by inspection: the change mirrors the CodexIntegration pattern exactly, which is already covered by the shared SkillsIntegrationTests suite.

Deviations from Assessment

None. The preferred remediation was applied as specified. The SkillsIntegration base class handles name frontmatter injection automatically — no custom setup() override was needed.

Risks & Review Notes

  • Existing projects break on reinstall: Users with old .qoder/commands/ files from older installs will need to re-run specify integration install qodercli to pick up the new layout. Old files will not be automatically removed unless still tracked in the manifest. A specify integration reinstall qodercli hint in release notes is recommended.
  • The open questions in the assessment (exact minimum IDE version, fallback behaviour, official changelog link) are informational and do not block the fix.

Refs #4199 · cc @mengqiang81

Generated by 🛠️ Fix Bug from Labeled Issue for issue #4199 · 298.1 AIC · ⌖ 16.5 AIC · ⊞ 36.4K ·

…ntegration

Apply the remediation from the bug assessment on issue #4199.
Qoder IDE 1.24+ dropped .qoder/commands/ scanning in favour of the
skills layout (.qoder/skills/{skill-name}/SKILL.md). Migrated
QodercliIntegration from MarkdownIntegration to SkillsIntegration,
updating config[commands_subdir] to 'skills' and
registrar_config[dir] to '.qoder/skills' with extension '/SKILL.md'.
Updated tests to use SkillsIntegrationTests base mixin.

Refs #4199

Assisted-by: GitHub Copilot (model: claude-sonnet-4.6, autonomous)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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 <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 43394151-ce2a-432d-9cc5-88f587d1b570
@mnriem

mnriem commented Aug 19, 2026

Copy link
Copy Markdown
Collaborator

Pushed `7edf7c23` to address the one failing test (`test_options_include_skills_flag`) reported by the bug-test run.

Changes

  • `tests/integrations/test_integration_qodercli.py` — Qoder IDE 1.24+ is always skills-based, so it should not expose a `--skills` toggle. Overrode the inherited `test_options_include_skills_flag` to skip (mirroring Grok/Zed/Droid) and added `test_options_do_not_include_skills_flag` plus a `requires_cli`/`name`/`multi_install_safe` assertion.
  • `src/specify_cli/_invocation_style.py` — added `qodercli` to `ALWAYS_SLASH_AGENTS` so hooks and next-steps render the hyphenated `/speckit-` invocation instead of the legacy dotted `/speckit.`.

Verification: full `tests/integrations/` suite — 2684 passed, 4 skipped. Verified end-to-end that `specify init --integration qodercli` scaffolds `.qoder/skills/speckit-/SKILL.md` with `name:` frontmatter, persists `ai_skills: true`, and renders `/speckit-plan`.

Posted on behalf of @mnriem by GitHub Copilot (model: claude-opus-4.8, autonomous).

@mnriem
mnriem requested a balanced review from Copilot August 19, 2026 22:38
@mnriem
mnriem marked this pull request as ready for review August 19, 2026 22:38
@mnriem
mnriem self-requested a review as a code owner August 19, 2026 22:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates Qoder CLI to Qoder IDE 1.24’s skills-based command layout.

Changes:

  • Uses SkillsIntegration and .qoder/skills/.../SKILL.md.
  • Adds Qoder to always-slash invocation handling.
  • Updates integration tests for the skills layout.
Show a summary per file
File Description
src/specify_cli/integrations/qodercli/__init__.py Migrates Qoder to skills.
src/specify_cli/_invocation_style.py Enables hyphenated slash invocations.
tests/integrations/test_integration_qodercli.py Updates Qoder integration coverage.

Review details

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

  • Files reviewed: 3/3 changed files
  • Comments generated: 3
  • Review effort level: Balanced

Comment on lines +21 to +24
"dir": ".qoder/skills",
"format": "markdown",
"args": "$ARGUMENTS",
"extension": ".md",
"extension": "/SKILL.md",
Comment on lines +15 to +17
ALWAYS_SLASH_AGENTS: frozenset[str] = frozenset(
{"devin", "droid", "grok", "qodercli", "trae", "zed"}
)
}
registrar_config = {
"dir": ".qoder/commands",
"dir": ".qoder/skills",
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated bug-fix Trigger the bug-fix agentic workflow

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[qodercli] Slash commands not recognized in Qoder IDE 1.24+ — needs skills-based layout migration

2 participants