[bug-fix] Fix qodercli-skills-migration: migrate QodercliIntegration to SkillsIntegration - #4205
Open
github-actions[bot] wants to merge 2 commits into
Open
Conversation
…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
Collaborator
|
Pushed `7edf7c23` to address the one failing test (`test_options_include_skills_flag`) reported by the bug-test run. Changes
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). |
Contributor
There was a problem hiding this comment.
Pull request overview
Migrates Qoder CLI to Qoder IDE 1.24’s skills-based command layout.
Changes:
- Uses
SkillsIntegrationand.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", |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bug fix — qodercli-skills-migration
Proposed fix for issue #4199, applying the remediation from the bug assessment.
Verdict: Valid · Severity: high
Summary
Migrated
QodercliIntegrationfromMarkdownIntegrationtoSkillsIntegration, changing the output layout from flat.qoder/commands/speckit.*.mdfiles to the.qoder/skills/speckit-<name>/SKILL.mddirectory-per-skill structure that Qoder IDE 1.24+ requires for slash-command discovery.Changes
src/specify_cli/integrations/qodercli/__init__.pyMarkdownIntegration→SkillsIntegration; updatedcommands_subdirto"skills",registrar_config["dir"]to".qoder/skills", andextensionto"/SKILL.md"tests/integrations/test_integration_qodercli.pyMarkdownIntegrationTestsforSkillsIntegrationTests; updatedCOMMANDS_SUBDIRto"skills"andREGISTRAR_DIRto".qoder/skills"Tests Added or Updated
TestQodercliIntegration(inheritingSkillsIntegrationTests) — pins that the integration is aSkillsIntegrationsubclass, that files land under.qoder/skills/speckit-<name>/SKILL.md, and that eachSKILL.mdcontains aname: speckit-<name>frontmatter field. All assertions are inherited from the sharedSkillsIntegrationTestsmixin.Local Verification
CodexIntegrationpattern exactly, which is already covered by the sharedSkillsIntegrationTestssuite.Deviations from Assessment
None. The preferred remediation was applied as specified. The
SkillsIntegrationbase class handlesnamefrontmatter injection automatically — no customsetup()override was needed.Risks & Review Notes
.qoder/commands/files from older installs will need to re-runspecify integration install qoderclito pick up the new layout. Old files will not be automatically removed unless still tracked in the manifest. Aspecify integration reinstall qoderclihint in release notes is recommended.Refs #4199 · cc
@mengqiang81