关于 grill-with-docs
grill-with-docs 是一项通过逐个提问和代码库调研来澄清软件计划的技能,并在讨论中将术语和设计决策记录到仓库文档。
主要功能
- 01逐步提出设计问题
- 02调研代码库与文档
- 03发现术语冲突
- 04即时更新 CONTEXT.md
- 05有选择地建议 ADR
适用场景
- 01实现前澄清需求
- 02厘清含糊的领域术语
- 03核对方案与代码行为
- 04规划时记录领域决策
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mksglu/ context-mode --skill grill-with-docs安装后在 Claude Code 中输入/grill-with-docs确认已加载。
附带文件ADR-FORMAT.mdCONTEXT-FORMAT.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 中的格式。
从 mattpocock/skills 引入 — 提交版本为 b843cb5,采用 MIT License。请参阅 skills/UPSTREAM-CREDITS.md 了解更新说明。