关于 grill-with-docs
用于逐项解决设计问题的访谈技能,并会参考代码库和现有文档。它核对术语与项目上下文,并在概念确定后更新 CONTEXT.md。
主要功能
- 01逐项提问并提供建议
- 02检查代码与现有文档
- 03对照 CONTEXT.md 核对术语
- 04概念确定后更新 CONTEXT.md
- 05有选择地建议编写 ADR
适用场景
- 01实施前厘清技术计划
- 02使术语与现有词汇表一致
- 03规划时记录领域决策
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mphinance/ alpha-skills --skill grill-with-docs安装后在 Claude Code 中输入/grill-with-docs确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
ADR-FORMAT.mdCONTEXT-FORMAT.mdREADME.md详细介绍
围绕计划的方方面面不断向我提问,直到我们达成共识。逐一梳理设计树中的每个分支,按顺序解决决策之间的依赖关系。每个问题都请提供你的推荐答案。
每次只问一个问题,等待我回答后再继续。
如果可以通过探索代码库来回答某个问题,就先探索代码库。
领域认知
探索代码库时,也要查找现有文档:
文件结构
大多数代码库只有一个上下文:
/
├── CONTEXT.md
├── docs/
│ └── adr/
│ ├── 0001-event-sourced-orders.md
│ └── 0002-postgres-for-write-model.md
└── src/
如果根目录中存在 CONTEXT-MAP.md,则代码库包含多个上下文。该映射会指出每个上下文所在的位置:
/
├── CONTEXT-MAP.md
├── docs/
│ └── adr/ ← system-wide decisions
├── src/
│ ├── ordering/
│ │ ├── CONTEXT.md
│ │ └── docs/adr/ ← context-specific decisions
│ └── billing/
│ ├── CONTEXT.md
│ └── docs/adr/
按需创建文件——只有需要写入内容时才创建。如果不存在 CONTEXT.md,就在解决第一个术语时创建。如果不存在 docs/adr/,就在需要记录第一个 ADR 时创建。
会话期间
检查术语是否与术语表一致
当用户使用的术语与 CONTEXT.md 中现有的用语冲突时,立即指出。“你的术语表将‘取消’定义为 X,但你似乎指的是 Y——到底是哪一个?”
明确模糊的语言
当用户使用模糊或含义宽泛的术语时,提出一个精确的规范术语。“你说的是‘账户’——你指的是 Customer 还是 User?它们是不同的概念。”
讨论具体场景
讨论领域关系时,用具体场景检验其合理性。构造能够探查边缘情况,并促使用户明确概念边界的场景。
对照代码进行核实
当用户说明某项功能的运作方式时,检查代码是否一致。如果发现矛盾,就指出来:“你的代码会取消整个 Order,但你刚才说可以部分取消——哪种说法才对?”
及时更新 CONTEXT.md
术语一经确定,就立即更新 CONTEXT.md。不要等到最后再集中处理——要在讨论过程中记录。使用 CONTEXT-FORMAT.md 中的格式。
不要让 CONTEXT.md 与实现细节耦合。只纳入领域专家认为有意义的术语。
谨慎提出 ADR
仅当以下三个条件都满足时,才提出创建 ADR:
- 难以逆转——日后改变决定的成本很高
- 没有背景就令人费解——未来的读者会疑惑“为什么要这样做?”
- 源于真实的权衡——存在真正的备选方案,并且你基于具体原因作出了选择
如果缺少任何一个条件,就跳过 ADR。使用 ADR-FORMAT.md 中的格式。