feat(cli): add Kimi Code CLI as an install target

Đang mở
#733 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
68/100
Loại issue
Tính năng
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
github-actions, typescript

Hướng nghiên cứu

Start with cli/src/domain/models/tool-ids.ts, then compare cli/src/domain/tools/ai/codex.ts and claude.ts. Trace registration through infrastructure/deps.ts, the asset and catalog adapters, and registry-conformance.unit.test.ts before adding the Kimi-specific unit test and snapshot. Done means the CLI checks pass, Kimi flat and marketplace builds produce the expected tree, and the documented framework mappings and CI matrix are updated.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Problem

AiToolId ships five targets (cli/src/domain/models/tool-ids.ts:3): claude, cursor, copilot, opencode, codex. Kimi Code CLI (MoonshotAI) is not one of them, so aidd plugin add <plugin> --tool kimi fails and no aidd-framework-kimi-* archive is released.

Kimi already reads two surfaces the framework produces today:

  • Skills: it loads .agents/skills/, the exact path the codex adapter writes (cli/src/domain/tools/ai/codex.ts:173). A codex-flat archive therefore already drops AIDD skills where Kimi finds them, by accident rather than by contract.
  • Context: AGENTS.md / .kimi-code/AGENTS.md.

The rest is absent: agents land as .codex/agents/*.toml while Kimi reads markdown + YAML frontmatter under .kimi-code/agents/ or .agents/agents/; no kimi.plugin.json manifest is produced; no per-tool distribution is built.

Docs: https://moonshotai.github.io/kimi-code/en/customization/skills · https://moonshotai.github.io/kimi-code/en/customization/agents

Scope

Two PRs, in order: ci.yml builds archives with a pinned CLI version, so the framework side can only follow a CLI release.

PR 1 - feat(cli): add kimi code cli as an install target

  • Add "kimi" to AiToolId and AI_TOOL_IDS (cli/src/domain/models/tool-ids.ts:3).
  • Extract the .agents/skills/aidd-<name>/SKILL.md path builder out of cli/src/domain/tools/ai/codex.ts:172 into domain/formats/, so codex and kimi share it rather than duplicate it (coding-assertions.md: no duplication, pnpm jscpd guards it).
  • Add cli/src/domain/tools/ai/kimi.ts: skills through that shared builder, agents through the claude markdown+frontmatter capability, plugins through a kimi.plugin.json manifest.
  • Register the tool in infrastructure/deps.ts (side-effect import, kimi:flat and kimi:marketplace build strategies), assets/asset-loader.ts, plugin-catalog-repository-adapter.ts, tool-recommendations.ts, menu-use-case.ts.
  • Add the kimi.plugin.json entries to PLUGIN_MANIFEST_PROBES and MARKETPLACE_PROBES (cli/src/domain/models/plugin-format.ts:3,12).
  • Add the tests: side-effect import in tests/domain/tools/registry-conformance.unit.test.ts, a tests/domain/tools/ai/kimi.unit.test.ts, a golden snapshot, the e2e command matrix cells.

PR 2 - feat(framework): map kimi code cli surfaces

  • Add the Kimi rows to plugins/aidd-context/skills/11-explore/references/ai-mapping.md (tables at :17, :27, :37, :59).
  • Add Kimi to the three tool-paths.md (agent-generate, hook-generate, command-generate), 04-skill-generate/references/tool-detect.md, 02-project-memory/references/tools.md, 00-onboard/references/state/detection.md.
  • Add the kimi cells to the build-per-tool matrix (.github/workflows/ci.yml:150) and update the archive count in docs/MAINTAINERS.md:71.
  • List Kimi Code CLI in the supported tools of README.md.
Acceptance criteria
  • aidd plugin add aidd-dev --tool kimi writes skills to .agents/skills/aidd-*/SKILL.md and agents to .kimi-code/agents/*.md with valid YAML frontmatter.
  • Starting kimi in that project lists the AIDD skills, and /plugins shows the plugin when installed in marketplace mode.
  • registry-conformance.unit.test.ts passes with kimi registered, without editing an assertion (the suite iterates the registry).
  • aidd-cli framework build --target kimi --flat and --target kimi both produce a tree, covered by a golden snapshot.
  • Hook parity is either implemented or declared unsupported in the ai-mapping.md hooks table.
  • The CLI gates pass in order: pnpm typecheck, pnpm lint, pnpm knip:production, pnpm jscpd, pnpm test, pnpm build (cli/aidd_docs/memory/coding-assertions.md).
  • make check is green at the repository root.
Prior art in this repo
  • cli/src/domain/tools/ai/codex.ts - closest sibling: same .agents/skills/ skill target (:33, :173), same TOML config parsing. Its agents capability differs (TOML, where Kimi wants markdown).
  • cli/src/domain/tools/ai/claude.ts - markdown+frontmatter agents, reusable as-is.
  • cli/tests/domain/tools/registry-conformance.unit.test.ts - the contract a new tool must satisfy; adding the file to its import list is what subjects kimi to every assertion.
  • cli/src/infrastructure/deps.ts:259,309 - the codex:marketplace and codex:flat build strategy entries to mirror.
Out of scope
  • Hooks. Kimi's hook surface (a SessionStart equivalent for update_memory) is not documented publicly. PR 1 settles it: either the HooksCapability is wired, or the hooks table of ai-mapping.md records "Not supported" the way it already does for OpenCode, and the memory sync stays manual under Kimi.
  • MCP. The config file and servers key for Kimi are unverified, so no McpCapability here. It belongs in the MCP config table of ai-mapping.md:37 once confirmed, in a follow-up issue.
  • Slash commands. Kimi's plugin manifest exposes a commands field of unverified format. Deferred to the same follow-up as MCP; until then Kimi is a skills-and-agents target, like OpenCode is a rules-less one.
  • Rules. Folded into AGENTS.md, the treatment ai-mapping.md:15 already documents for OpenCode.
Ngôn ngữ chính
TypeScript
Star
481
Fork
45
Merge trung bình
17 giờ 40 phút
Pull request đã merge (30 ngày)
106

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của ai-driven-dev/framework

Tất cả issue của ai-driven-dev/framework

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.