feat: add Kimi CLI skills-only support#1003
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds Kimi CLI as an adapterless, skills-only AI tool: registers Changes
Sequence Diagram(s)sequenceDiagram
participant User as User
participant CLI as CLI (openspec init)
participant Config as Config (AI_TOOLS lookup)
participant Files as Filesystem
participant Logger as Logger
User->>CLI: run `openspec init --tools kimi`
CLI->>Config: resolve tool metadata for `kimi`
Config-->>CLI: { id: "kimi", skillsDir: ".kimi", adapter: null }
CLI->>Files: install skills under `.kimi/skills/...`
alt adapter present
CLI->>Files: generate `/opsx:*` command files
Logger-->>User: "Commands generated for: kimi"
else no adapter
Logger-->>User: "Commands skipped for: kimi (no adapter)"
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ac19140 to
ba95e0c
Compare
ba95e0c to
c08e0a1
Compare
There was a problem hiding this comment.
Pull request overview
Adds Kimi CLI as a supported skills-only OpenSpec tool (no command adapter) by registering .kimi as its skills root, aligning specs/docs with “adapterless command skipping”, and adding a focused init regression test + release changeset.
Changes:
- Register Kimi CLI in
AI_TOOLSwithskillsDir: '.kimi'(skills-only; no adapter). - Document Kimi CLI usage via
/skill:openspec-*and clarify adapterless command skipping in specs. - Add an init regression test for
--tools kimiplus a minor-release changeset and spec-driven change artifacts.
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| test/core/init.test.ts | Adds a regression test asserting .kimi/skills generation and command skipping behavior for Kimi. |
| src/core/config.ts | Registers kimi in AI_TOOLS with .kimi skills directory metadata. |
| openspec/specs/cli-init/spec.md | Updates CLI init spec to explicitly allow adapterless tools and specify command generation skipping + output messaging. |
| openspec/specs/ai-tool-paths/spec.md | Adds Kimi CLI path requirement (skillsDir: .kimi). |
| openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/tasks.md | Tracks the work items for the Kimi skills-only support change. |
| openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/cli-init/spec.md | Captures the delta spec for cli-init adapterless behavior + Kimi scenario. |
| openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/ai-tool-paths/spec.md | Captures the delta spec for ai-tool-paths adding .kimi. |
| openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/proposal.md | Provides rationale/scope for skills-only Kimi integration. |
| openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/design.md | Design notes explaining why Kimi is treated as skills-only and how it fits existing behavior. |
| openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/README.md | Brief archive README describing the change. |
| openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/.openspec.yaml | Spec-driven archive metadata for the change. |
| docs/supported-tools.md | Adds Kimi CLI row (skills-only) and includes kimi in the --tools ID list. |
| docs/commands.md | Documents Kimi CLI invocation via /skill:openspec-* (no generated opsx-* files). |
| docs/cli.md | Adds kimi to the documented --tools supported IDs list. |
| .changeset/kind-rings-notice.md | Minor version bump notes announcing Kimi CLI skills-only support. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| expect(await directoryExists(commandsDir)).toBe(false); | ||
|
|
||
| const logCalls = (console.log as unknown as { mock: { calls: unknown[][] } }).mock.calls.flat().map(String); | ||
| expect(logCalls).toContain('Commands skipped for: kimi (no adapter)'); |
There was a problem hiding this comment.
This assertion is brittle because the init implementation logs the message via chalk.dim(...), which can add ANSI color codes depending on environment. Consider asserting with .some(entry => entry.includes('Commands skipped for: kimi') && entry.includes('(no adapter)')) (or disabling color via NO_COLOR/--no-color) so the test is stable across TTY/CI settings.
| expect(logCalls).toContain('Commands skipped for: kimi (no adapter)'); | |
| expect( | |
| logCalls.some( | |
| (entry) => entry.includes('Commands skipped for: kimi') && entry.includes('(no adapter)'), | |
| ), | |
| ).toBe(true); |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
openspec/specs/cli-init/spec.md (1)
229-234: Consider explicitly mentioning that skill generation proceeds for Kimi CLI.The configuration claim is accurate—Kimi CLI is correctly configured with
skillsDir: '.kimi'insrc/core/config.ts—and the scenario correctly states that command-file generation is skipped. However, the scenario focuses only on what's skipped without explicitly stating that skills are generated. For clarity and completeness, consider expanding the scenario with an additional THEN clause: "AND skill generation SHALL proceed, creating 9 skills in.kimi/skills/"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@openspec/specs/cli-init/spec.md` around lines 229 - 234, Update the "Kimi CLI skips command-file generation" scenario to explicitly state that skill generation still occurs: reference the scenario header "Kimi CLI skips command-file generation" and add a THEN clause such as "AND skill generation SHALL proceed, creating 9 skills in '.kimi/skills/'" (you can cite the configured value skillsDir: '.kimi' from src/core/config.ts to justify the path). Ensure the new clause sits after the existing THEN and AND clauses so the spec documents both the skipped command-file generation and the successful creation of skills.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@openspec/specs/cli-init/spec.md`:
- Around line 229-234: Update the "Kimi CLI skips command-file generation"
scenario to explicitly state that skill generation still occurs: reference the
scenario header "Kimi CLI skips command-file generation" and add a THEN clause
such as "AND skill generation SHALL proceed, creating 9 skills in
'.kimi/skills/'" (you can cite the configured value skillsDir: '.kimi' from
src/core/config.ts to justify the path). Ensure the new clause sits after the
existing THEN and AND clauses so the spec documents both the skipped
command-file generation and the successful creation of skills.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 1fdac035-f80c-4498-8b5a-b2037848b3e9
📒 Files selected for processing (15)
.changeset/kind-rings-notice.mddocs/cli.mddocs/commands.mddocs/supported-tools.mdopenspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/.openspec.yamlopenspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/README.mdopenspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/design.mdopenspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/proposal.mdopenspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/ai-tool-paths/spec.mdopenspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/cli-init/spec.mdopenspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/tasks.mdopenspec/specs/ai-tool-paths/spec.mdopenspec/specs/cli-init/spec.mdsrc/core/config.tstest/core/init.test.ts
✅ Files skipped from review due to trivial changes (10)
- openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/README.md
- docs/cli.md
- src/core/config.ts
- docs/commands.md
- openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/ai-tool-paths/spec.md
- docs/supported-tools.md
- openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/tasks.md
- openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/cli-init/spec.md
- openspec/specs/ai-tool-paths/spec.md
- openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/proposal.md
🚧 Files skipped from review as they are similar to previous changes (4)
- openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/.openspec.yaml
- .changeset/kind-rings-notice.md
- test/core/init.test.ts
- openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/design.md
|
@RealKai42 Is there any plan for the support of the kimi cli slash command? |
* docs: sync tool ID lists with AI_TOOLS source of truth Fixes missing tool IDs in docs/cli.md and docs/supported-tools.md that drifted from src/core/config.ts (AI_TOOLS). - docs/cli.md: add bob, forgecode, junie, lingma (25 -> 29) - docs/supported-tools.md: add lingma, align order with config.ts (28 -> 29) Follow-up to Fission-AI#1003. * docs: address AICR feedback on tool ID ordering and table entry Address review comments from Copilot and CodeRabbit on PR Fission-AI#1027: - docs/cli.md: reorder lingma to match AI_TOOLS position (between qoder and qwen) - docs/supported-tools.md: same reordering in the --tools list - docs/supported-tools.md: add missing Lingma row to Tool Directory Reference table (inserted alphabetically between Kiro and OpenCode, matching existing table convention) Verified all three documentation surfaces against AI_TOOLS (29 tools): - cli.md list: order matches src/core/config.ts - supported-tools.md list: order matches src/core/config.ts - supported-tools.md table: set equals AI_TOOLS (alphabetical-by-display-name order preserved per existing convention).
* feat: add Kimi CLI skills-only support * test: relax Kimi adapterless log assertion
* docs: sync tool ID lists with AI_TOOLS source of truth Fixes missing tool IDs in docs/cli.md and docs/supported-tools.md that drifted from src/core/config.ts (AI_TOOLS). - docs/cli.md: add bob, forgecode, junie, lingma (25 -> 29) - docs/supported-tools.md: add lingma, align order with config.ts (28 -> 29) Follow-up to Fission-AI#1003. * docs: address AICR feedback on tool ID ordering and table entry Address review comments from Copilot and CodeRabbit on PR Fission-AI#1027: - docs/cli.md: reorder lingma to match AI_TOOLS position (between qoder and qwen) - docs/supported-tools.md: same reordering in the --tools list - docs/supported-tools.md: add missing Lingma row to Tool Directory Reference table (inserted alphabetically between Kiro and OpenCode, matching existing table convention) Verified all three documentation surfaces against AI_TOOLS (29 tools): - cli.md list: order matches src/core/config.ts - supported-tools.md list: order matches src/core/config.ts - supported-tools.md table: set equals AI_TOOLS (alphabetical-by-display-name order preserved per existing convention).
Summary
skillsDir: '.kimi'/skill:openspec-*Technical Analysis
Kimi CLI does not expose a stable file-based custom command surface like Claude Code or Codex. Its supported extension model is skill discovery from
.kimi/skills/, and Kimi maps discovered skills to runtime/skill:<name>invocations. Because of that, this change treats Kimi as a skills-only tool and does not add akimicommand adapter.The OpenSpec implementation follows the existing Trae skills-only precedent rather than the unmerged Trae adapter experiments:
feat: Trae skills with proactive command invocation + docs alignmentdocs: realign defaults, profile workflows, and tool referencesFor Kimi specifically, this intentionally does not follow the stalled upstream attempt in #640, which remained open after assuming a Kimi command-adapter path that the Kimi CLI codebase does not actually provide. It also avoids the Trae adapter direction explored in #677 and #776, because those PRs pursue command adapters rather than the merged skills-only pattern.
Validation
openspec validate add-kimi-cli-skills-only-supportnpm test -- test/core/init.test.tsnpm test -- test/cli-e2e/basic.test.tsSummary by CodeRabbit
New Features
Documentation
Tests
Chores