写在前面
最近写了一个小项目:yuki-agent-kit。
它不是一个复杂的业务系统,更像是我给自己准备的一套 AI 开发初始化工具箱:当我开一个新 repo,或者接手一个旧 repo 时,可以快速把我喜欢的开发规范、Agent 规则、决策记录、Git Hooks 和常用 Skills 接进去。
做这个项目的起因也很简单:我一直在想,怎么让 AI 更好地参与真实开发,而不是每次都只靠临时 prompt 去约束它。
临时 prompt 确实能解决一部分问题,但它有一个很明显的缺点:上下文很容易丢。今天告诉 AI 要遵守某个规范,它可能这轮记住了;换一个会话、换一个任务、换一个仓库,它又会回到最容易、最短平快的实现方式。
所以我想把这些反复出现的规则沉淀下来,变成项目的一部分。
为什么开始做这件事
一开始我是在找“怎么让 AI 更好开发”的实践方案,于是去看了一些比较大的开源项目,想看看别人是怎么组织 Agent 工作流的。
其中一个给我启发比较大的项目是 deepseek-harness。我发现里面有些 Skill 真的挺不错,不是单纯告诉 AI “你要认真写代码”,而是把某类工作拆成了更清楚的流程。
比如有些 Skill 会约束:
- 做需求前先理解上下文。
- 写代码前先确认方案。
- 修改时不要动无关文件。
- 发现可简化的地方要指出来。
- 不要留下没有价值的注释。
这些东西听起来不复杂,但真正放到 AI 编码里很有用。
因为 AI 最大的问题之一不是不会写代码,而是它经常不知道“这个项目为什么之前做了某个决定”。
Agent Note 给我的启发
上周 ld 开会的时候也提到一个点:我们在项目中会做很多决策,而这些决策需要被记录下来。
比如以前我们决定:
- 这个场景为什么不用某个库。
- 这个模块为什么要拆成现在这样。
- 这个接口为什么要做兼容。
- 这个样式为什么不能随便改。
- 这个方案为什么看起来麻烦,但后续维护更稳。
这些内容如果只存在人的脑子里,AI 是不知道的。
于是就会出现一种很常见的情况:AI 看到了当前代码,但没有看到历史决策。它可能会选一个看起来更简单的方法,甚至把之前刻意规避的问题重新引回来。
这也是我觉得 Agent Note 很有价值的地方。
它本质上不是普通文档,而是给 AI 和未来开发者看的“项目决策记录”。它记录的是:为什么现在是这样,而不只是现在是什么样。
决策记录比规则更重要
很多时候我们会给 AI 写规则,比如:
不要随便重构。
不要修改无关文件。
遵守项目现有规范。
这些规则有用,但还不够。
因为 AI 只是知道“不能乱改”,但它不一定知道“为什么不能改”。
如果我们把决策写下来,它就能得到更多上下文。
例如:
之前尝试过把表单状态放在顶层 React state,但大表单输入会触发过多 re-render。
所以当前项目统一采用 FormStore + 字段订阅的方式做局部更新。
后续新增字段联动时,不要重新引入顶层 formData useState。
这类记录对 AI 来说很关键。
它不是在限制 AI,而是在告诉 AI:这个项目已经踩过哪些坑,哪些地方是有意设计的。
为什么要做成 kit
我现在有很多 repo,但每个 repo 的规范并不完全统一。
有的项目有 AGENTS.md,有的没有;有的项目写了产品背景,有的只有代码;有的项目有 hooks,有的项目完全靠手动约束。每次新开项目都重新复制一遍这些东西,很麻烦,也很容易漏。
所以我想把自己比较喜欢的 workflow 抽出来,做成一个可以反复安装的工具包。
现在 yuki-agent-kit 做的事情大概是:
- 给项目补充
PRODUCT.md,记录产品目标、用户和边界。 - 给项目补充
AGENTS.md,记录 AI 协作规则。 - 创建
.agents/notes/,用于沉淀项目决策。 - 创建
.agents/skills/,说明项目级 Skills 的使用方式。 - 接入 Git Hooks,比如提交信息检查和 pre-push 模板。
- 安装常用配套 Skills,比如
agent-notes、code-review、find-simplifications、trim-cot-leakage等。
这样以后我如果有新的固定工作流,或者发现了自己喜欢的新 Skill,就可以继续放进去,之后新项目一键安装。
它解决的不是“生成代码”,而是“约束协作”
我觉得 AI 开发工具的核心不只是让 AI 写代码。
写代码只是最后一步,前面还有很多更重要的事情:
- 它是否理解项目目标?
- 它是否知道当前模块边界?
- 它是否知道历史决策?
- 它是否会主动避免无意义复杂化?
- 它是否能在提交前做基本自检?
- 它是否能把新的经验继续沉淀回项目?
yuki-agent-kit 想做的就是这些事情。
它不是替代开发者判断,而是把我希望 AI 遵守的协作方式提前写进项目里。
快速开始
目前可以在目标项目根目录执行:
npx skills add SmileSnow819/yuki-agent-kit --skill yuki-agent-kit --agent codex --yes
然后在 AI 会话里发送:
使用 yuki-agent-kit,给当前项目接入开发规范和配套 Skills。
已有文件保留,只补齐缺失内容。
它会根据项目现状补齐缺失文件,并尽量保留已有内容。
如果是新项目,也可以先创建空目录再安装:
mkdir my-app
cd my-app
npx skills add SmileSnow819/yuki-agent-kit --skill yuki-agent-kit --agent codex --yes
之后告诉 AI 产品目标、用户和技术栈,它会基于模板继续完善项目上下文。
后续想做什么
这个项目目前还很早期,但我希望它以后可以慢慢变成我自己的 AI 开发基础设施。
后续可能会继续补:
- 更多项目模板,比如前端项目、文档项目、MCP Server 项目。
- 更细的 Agent Note 模板,区分架构决策、业务决策、踩坑记录。
- 更完整的代码 review skill,让 AI 检查行为回归、边界情况和测试缺口。
- 更方便的更新机制,让旧项目也能同步最新 workflow。
- 一些我在实习和个人项目里反复验证过的工作流。
我现在越来越觉得,AI 编码最重要的不是单次生成能力,而是长期协作能力。
如果每次对话都从零开始,那 AI 永远只是一个临时助手。但如果项目能持续沉淀背景、规则和决策,它就更像一个能慢慢熟悉项目的协作者。
yuki-agent-kit 就是我朝这个方向做的一次尝试。