Add Kimi, and stop dismissing Qwen - #10
Conversation
Kimi is the ninth harness. Its configuration and its sessions live in different roots — `~/.kimi-code` holds config and the MCP registration, `~/.kimi` still holds sessions and carries a `.migrated-to-kimi-code` marker — so both are probed and a user on either side of that migration is detected. Skills go to `~/.kimi-code/skills/engram-<name>/SKILL.md`. Its transcripts are `~/.kimi/sessions/<project>/<session>/context.jsonl`: line-oriented, one record per message, entirely readable. The reader is still `NotImplemented`, but now for a stated reason rather than an unexamined one — the project directory is a hash with no published mapping back to a working directory, and engram's scope resolution is by cwd. Qwen's classification was simply stale. It claimed "command format is unverified", which was true when written and had never been rechecked; Qwen Code ships `docs/features/skills.md`, which documents `~/.qwen/skills/<name>/SKILL.md`, and that directory already exists and is writable. Verified against the vendor's own documentation, not inferred. Seven of nine harnesses can now host something, up from five. Goose and Copilot CLI remain genuinely unsurveyed and say so in their own words. Gates: fmt, clippy -D warnings, 257 tests, REUSE 3.3, makeinfo clean. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016i16R4GhdSffsboRYq97Fs
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9b908ccff3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // `.migrated-to-kimi-code` marker inside it points at `~/.kimi-code`, | ||
| // which is where configuration lives now. Probing both means a user on | ||
| // either side of that migration is detected. | ||
| probe: &[".kimi-code", ".kimi"], |
There was a problem hiding this comment.
Avoid installing new-root skills for legacy-only Kimi
When a user has only the explicitly supported pre-migration ~/.kimi root, this probe marks Kimi present, but install always writes to ~/.kimi-code/skills; write_managed creates that parent and reports success even though the detected legacy installation does not use the new configuration root. Restrict command installation to a ~/.kimi-code hit, or select the command surface based on which root was detected.
AGENTS.md reference: AGENTS.md:L273-L273
Useful? React with 👍 / 👎.
| command_surface: CommandSurface::Skill { | ||
| dir: ".qwen/skills", | ||
| }, |
There was a problem hiding this comment.
Update the canonical harness documentation
Making Qwen a writable skill surface and adding Kimi leaves doc/engram.texi's harness table stale: it omits Kimi, still marks Qwen as having no command surface, and still describes three unsupported harnesses out of eight. The root agent context also still says there are seven harnesses and only three writable surfaces, so users and agents consulting the documented capability matrix receive the opposite of the new behavior; update these support tables and counts with the registry change.
AGENTS.md reference: AGENTS.md:L33-L33
Useful? React with 👍 / 👎.
Two harnesses gained, from a survey of what is actually installed rather than what the table remembered.
Kimi — the ninth harness
Its configuration and its sessions live in different roots, which is the detail that matters:
~/.kimi-code/mcp.json(engram already registered there)~/.kimi-code/skills/engram-<name>/SKILL.md~/.kimi/sessions/…— plus a.migrated-to-kimi-codemarkerBoth roots are probed, so a user on either side of that migration is detected.
The transcript is
sessions/<project>/<session>/context.jsonl— line-oriented, one record per message, clean{"role","content"}shape. The reader is nonetheless stillNotImplemented, but now for a stated reason: the project directory is a hash with no published mapping back to a working directory, and engram resolves scope by cwd. That is a real obstacle, not an unexamined one.Qwen — the claim was stale, not true
Qwen was reported as having no writable surface because "qwen's command format is unverified". That was true when written and never rechecked. Qwen Code ships its own documentation:
And
~/.qwen/skillsalready existed and was writable. Verified against the vendor's own docs rather than inferred from a directory listing.Result on a real machine
7 of 9 harnesses can host something, up from 5. Goose and Copilot CLI remain genuinely unsurveyed and say so in their own words.
Gates
fmt·clippy -D warnings· 257 tests · REUSE 3.3 ·makeinfoclean🤖 Generated with Claude Code
https://claude.ai/code/session_016i16R4GhdSffsboRYq97Fs