Skip to content

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

Description

@mengqiang81

Bug Description

The qodercli integration currently scaffolds commands as flat .qoder/commands/speckit.<name>.md files. Starting with Qoder IDE 1.24.0 (released Aug 12, 2026), the IDE no longer scans .qoder/commands/ for slash commands. It only discovers skills in the .qoder/skills/{skill-name}/SKILL.md format (with a name field in frontmatter). This means all /speckit-* commands silently stopped working after the IDE auto-upgraded to 1.24.x.

Steps to Reproduce

  1. specify init my-project --integration qodercli (generates .qoder/commands/speckit.*.md)
    1. Open the project in Qoder IDE 1.24+
    1. Type / in the chat — speckit commands do not appear in the autocomplete list
    1. Manually typing /speckit.specify — not recognized (rawCommandCount: 0 in quest.log)

Expected Behavior

The qodercli integration should scaffold skills in the .qoder/skills/speckit-<name>/SKILL.md format, similar to how the claude integration uses .claude/skills/, codex uses .agents/skills/, etc.

Actual Behavior

Qoder IDE 1.24.x no longer scans .qoder/commands/ for slash commands. It only discovers skills in .qoder/skills/{skill-name}/SKILL.md format with a name field in frontmatter. The quest.log shows rawCommandCount:0 after upgrade, confirming the commands are not recognized.

Specify CLI Version

0.16.4

AI Agent

Alquimia AI

Operating System

macOS 26.5.2 (darwin-arm64)

Python Version

Python 3.11.0

Error Logs

Additional Context

Root Cause

Qoder IDE 1.24.x unified slash commands and skills into a single discovery mechanism. Per the official Skills docs, skills must be located at .qoder/skills/{skill-name}/SKILL.md and include a name field in frontmatter.

Suggested Fix

  1. Migrate qodercli to a SkillsIntegration subclass
    1. Output to .qoder/skills/speckit-<name>/SKILL.md instead of .qoder/commands/speckit.<name>.md
    1. Add name: speckit-<name> to frontmatter
    1. Use hyphenated naming (speckit-analyze) instead of dotted (speckit.analyze)
    1. Provide a migration path for existing installs
    1. Update invoke_separator from . to -

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions