| name | grill |
| description | 逐条追问澄清变更范围和用语,对照项目文档消除歧义 |
| argument-hint | [变更目录] |
Grill — 追问 + 领域对齐
逐条追问用户以澄清变更范围和用语。对照根 CONTEXT.md 和 docs/adr/ 发现冲突,用语确定即时更新变更内 CONTEXT.md,值得记录的决策创建 ADR。
输入
- 变更目录:
$CHANGE_DIR(通过参数或 .active_change 确定)
- 项目用语:根
CONTEXT.md
- 已有决策:
docs/adr/(如存在)
核心原则
每次只问一个问题。 附带推荐选项和理由。
追问规则
- 先确认变更目标:这个变更是为了解决什么问题?
- 逐层追问边界:涉及哪些模块?不涉及哪些?
- 对照 CONTEXT.md:用户使用的词是否和已有用语冲突?冲突立即指出。
- 打磨模糊用语:用户用词模糊或重载时,提出精确的规范用语。
- 讨论具体场景:当讨论领域关系时,用具体场景压测边界。
- 交叉验证代码:当用户描述系统行为时,检查代码是否一致。矛盾立即指出。
用语管理
更新 CONTEXT.md
当用语确定后,立即写入变更目录下的 CONTEXT.md(不攒批):
# YYYYMMDD-<简写>
本次变更新增或修改的项目用语。
## 新增
**<用语>**:
<定义>
_避免_:<应避免的别名>
如果根 CONTEXT.md 不存在,创建之。
用语冲突处理
当用户使用的词和已有 CONTEXT.md 冲突:"你的 CONTEXT.md 定义 '订单' 为 X,但你这里似乎是 Y——到底是哪个?"
ADR 创建条件
仅同时满足以下三条才提议创建 ADR:
- 难以逆转 — 以后改的成本很高
- 无上下文看不懂 — 未来的人会问"为什么这么做?"
- 有真实取舍 — 存在多个可选方案,选了其中一个有特定理由
满足条件时,在 changes/<name>/adr/ 下创建 ADR:
# {简短标题}
{1-3 句话:背景、决定、理由。}
change.md 追加
grill 完成后,将澄清结论追加到 change.md:
---
# 变更 v{N}:grill 细化
> 使用 grill 对照 CONTEXT.md 逐条追问,澄清 plan.md 中的模糊表述。
## 澄清结论
| # | 问题 | 结论 |
|---|------|------|
| 1 | xxx | xxx |
停止条件
- 所有决策分支都已理清 → 停止,进入
/plan
- 用户中途要求跳过 → 停止,记录未澄清项