* docs: align contributor entry docs with approved-bug-fix-only policy * docs: align contributor entry docs with approved-bug-fix-only policy * docs: align contributor entry docs with approved-bug-fix-only policy * docs: align contributor entry docs with approved-bug-fix-only policy * docs: link Chinese contributing guide * docs: add Chinese contributing guide * docs: add Chinese bug report form * docs: add Chinese feature request form * docs: bilingual PR template header note * docs(zh-cn): naturalize intro, drop stale feature-PR template line * docs: drop stale feature-PR template line * docs: require approved issue in PR template * docs: fix project layout (agent-core-v2 is current, v1 legacy) * docs(zh-cn): fix project layout (agent-core-v2 is current, v1 legacy)
5.1 KiB
为 kimi-code 贡献代码
感谢你花时间参与贡献!这个项目迭代很快,离不开社区认真的贡献。下面的指南介绍我们的工作方式,帮助你的 PR 顺利合入。
开始之前
Kimi Code 对 CLI/TUI 行为、agent 工作流和公开 API 已有自己的主张。如果你的改动会改变这些方向,请先开 issue 对齐,再投入时间写 PR。
我们对 AI 辅助贡献与手写代码一视同仁。你应该理解自己提交的内容——改了什么、边界情况下表现如何、为什么适合这个代码库。如果你解释不清楚,这个 PR 就还没准备好接受评审。
我们只合入与路线图一致的 PR。缺乏上下文背景的顺手重构很难被接受。
外部 PR 仅接受获批准的 bug 修复。 先开 issue,等待维护者以 /approve 评论明确批准,然后在 PR 中链接该 issue。没有已批准关联 issue 的 PR 可能会不经评审直接关闭;issue 获批后,可联系维护者重开你的 PR。
先讨论——写代码前先开 issue:
- bug 修复(包括小的、错别字级别的):先开 bug issue,等待维护者
/approve后再提 PR - 新功能或用户可见的行为变更(无论大小):不接受外部 feature PR——功能在 issue 中讨论和决定,被接受的功能由团队实现,或由维护者明确邀请你贡献
- 重构或其他超过约 100 行的改动
- 公开 API 或兼容性变更
项目结构
本仓库是 pnpm monorepo,最常用的入口:
apps/kimi-code— CLI / TUIapps/vscode— VS Code 插件apps/vis— 会话调试可视化工具packages/node-sdk— 公开 TypeScript SDK(@moonshot-ai/kimi-code-sdk)packages/agent-core-v2— 当前的 agent 引擎(v2,DI Scope 架构);packages/agent-core为 v1,正在逐步废弃packages/klient、kap-server、protocol、transcript、kosong、kaos、oauth、telemetry— 内部引擎包docs/— VitePress 双语文档站
完整项目地图见 AGENTS.md。
开发环境
前置要求:Node.js >= 24.15.0、pnpm 10.33.0、Git。
git clone https://github.com/MoonshotAI/kimi-code.git
cd kimi-code
pnpm install
常用脚本:
pnpm dev:cli— 开发模式运行 CLIpnpm test— 运行测试(vitest)pnpm typecheck— TypeScript 检查(注意:会先构建各包)pnpm lint— oxlintpnpm lint:fix— oxlint 自动修复pnpm build— 构建全部包
提交规范
所有 commit 和 PR 标题必须遵循 Conventional Commits。
| 类型 | 用途 | 示例 |
|---|---|---|
| feat | 新功能 | feat(agent-core): add tool dedup |
| fix | bug 修复 | fix(tui): correct status bar alignment |
| docs | 仅文档 | docs: clarify install instructions |
| chore | 工具 / 杂务 | chore: bump dependencies |
| refactor | 无行为变更的内部重构 | refactor(kosong): extract retry helper |
| test | 新增或改进测试 | test(agent-core): cover skill resolver |
| ci | CI / 构建流水线变更 | ci: cache pnpm store |
| build | 构建系统 / 产物变更 | build(native): add win32-arm64 target |
| perf | 性能优化 | perf(session): batch event flushes |
| style | 仅格式化(无逻辑变更) | style: apply oxlint --fix |
PR 标题由 pr-title-checker 工作流强制校验——不合规的标题会阻止合并。
Changesets
本仓库使用 changesets 管理版本与发布。
- 每个影响发布产物(代码、行为、公开 API)的 PR 必须包含 changeset。
- 仅文档、仅测试或仅 CI 的 PR 可以不加。
- 用
pnpm changeset生成并按提示操作(涉及哪些包、什么 bump 级别)。 - 包选择与 bump 级别的仓库约定见
.changeset/README.md。在本仓库使用编程 agent 时,使用gen-changesets技能。
Pull Requests
PR 会自动套用 PR 模板。PR 标题必须遵循 Conventional Commits;每个 PR 的 CI 会运行 pnpm lint、pnpm typecheck 和 pnpm test。行为变更时请同步更新 docs/ 下的用户文档——使用编程 agent 时使用 gen-docs 技能。
代码风格
- 全仓库 TypeScript。
- 使用
oxlint(配置见.oxlintrc.json)。 - 用
pnpm lint:fix自动格式化。 - lint 规则未覆盖的风格选择,跟随周边现有写法。
报告安全问题
发现安全问题?请查看 SECURITY.md,不要开公开 issue。
许可证
向本仓库贡献即表示你同意你的贡献按 MIT 许可证 授权。