{"id":"grill-me","name":"grill-me","summary":"提案や設計に対する高強度の対抗的設計レビューやグリルセッションは、仮定の抜け穴や欠落する制約を明らかにしつつ、プロセス全体を通じてドメインモデル(用語集やADR)を維持します。","body":"# 追问会话\n\n## 启动步骤\n\n触发后，先执行以下检查：\n1. 检查项目根目录是否已有 `CONTEXT.md` 或 `CONTEXT-MAP.md`，有则读取\n2. 检查 `docs/adr/` 是否已有 ADR 记录，有则了解已有决策\n3. 然后开始追问\n\n## 核心规则\n\n针对方案的每一个方面进行不留死角的追问，直到我们达成共识。沿着设计决策树逐一走下去，逐条解决决策之间的依赖关系。每个问题给出你的推荐答案。\n\n一次只问一个问题，等我回复后再继续下一个。一次抛出多个问题会让人无所适从。\n\n如果某个事实可以通过探索代码库获得，就直接查找，不要问我。但决策权在我——每个决策都提给我，等我回答。\n\n**在我明确确认达成共识之前，不要开始执行方案。**\n\n---\n\n# 领域建模（内置流程）\n\n追问过程中，一旦有决策结晶，就立即建立和完善项目的领域模型——挑战术语、构造边界场景、在第一时间写下术语表和决策记录。\n\n## 文件结构\n\n大多数仓库只有单一上下文：\n\n```\n/\n├── CONTEXT.md\n├── docs/\n│   └── adr/\n│       ├── 0001-event-sourced-orders.md\n│       └── 0002-postgres-for-write-model.md\n└── src/\n```\n\n如果根目录存在 `CONTEXT-MAP.md`，则表示仓库有多个上下文，地图指向各自位置：\n\n```\n/\n├── CONTEXT-MAP.md\n├── docs/\n│   └── adr/                          ← 系统级决策\n├── src/\n│   ├── ordering/\n│   │   ├── CONTEXT.md\n│   │   └── docs/adr/                 ← 上下文专属决策\n│   └── billing/\n│       ├── CONTEXT.md\n│       └── docs/adr/\n```\n\n懒创建——只在有内容可写时才创建文件。如果 `CONTEXT.md` 不存在，在第一个术语确定时创建它。如果 `docs/adr/` 不存在，在第一个 ADR 需要时创建它。\n\n## 追问过程中的行为\n\n### 对照术语表质疑\n\n当用户使用的术语与 `CONTEXT.md` 中已有定义冲突时，立即指出：\"你的术语表把'取消'定义为 X，但你现在似乎是指 Y——到底是哪个？\"\n\n### 磨尖模糊表达\n\n当用户使用含糊或多义的词汇时，提出精确的规范术语：\"你说的'账户'——是指 Customer 还是 User？这是两个不同概念。\"\n\n### 讨论具体场景\n\n讨论领域关系时，用具体场景压力测试。构造探索边界条件的场景，迫使用户精确界定概念之间的边界。\n\n### 与代码交叉验证\n\n当用户陈述某物如何运作时，检查代码是否一致。如果发现矛盾，立即暴露：\"你的代码取消的是整个 Order，但你刚说可以部分取消——哪个是对的？\"\n\n### 即时更新 CONTEXT.md\n\n术语一旦敲定，立即更新 `CONTEXT.md`，不要攒着批量处理。格式参见下方「CONTEXT.md 格式」章节。\n\n`CONTEXT.md` 必须完全不含实现细节。不要把它当规格文档、草稿本或实现决策仓库。它只是术语表。\n\n### 审慎提供 ADR\n\n仅当以下三条全部成立时才创建 ADR：\n\n1. **难以逆转** — 将来改变主意的代价可观\n2. **缺乏上下文则令人费解** — 未来读者会困惑\"为什么这样做？\"\n3. **确实是权衡的结果** — 存在真正的替代方案，且你基于具体理由选了其一\n\n---\n\n# 参考：CONTEXT.md 格式\n\n## 结构\n\n```md\n# {上下文名称}\n\n{一两句话描述这个上下文是什么、为什么存在。}\n\n## 语言\n\n**订单（Order）**:\n{一两句话定义该术语}\n_避免使用_: Purchase, transaction\n\n**发票（Invoice）**:\n向客户发送的交付后付款请求。\n_避免使用_: Bill, payment request\n\n**客户（Customer）**:\n下订单的个人或组织。\n_避免使用_: Client, buyer, account\n```\n\n> 注：示例语言应跟随项目主语言。中文项目用中文术语，英文项目用英文术语。\n\n## 规则\n\n- **有主张。** 当多个词指代同一概念时，选最好的那个，其余列入 `_避免使用_`。\n- **定义简洁。** 最多两句话。定义它**是**什么，而非它做什么。\n- **只收录项目上下文专属术语。** 通用编程概念不属于这里。\n- **出现自然聚类时分组。** 若所有术语属于同一领域，平铺即可。\n\n## 单上下文 vs 多上下文\n\n**单上下文（多数仓库）：** 根目录一个 `CONTEXT.md`。\n\n**多上下文：** 根目录 `CONTEXT-MAP.md` 列出所有上下文及其关系：\n\n```md\n# 上下文地图\n\n## 上下文\n\n- [Ordering](./src/ordering/CONTEXT.md) — 接收和追踪客户订单\n- [Billing](./src/billing/CONTEXT.md) — 生成发票和处理付款\n- [Fulfillment](./src/fulfillment/CONTEXT.md) — 管理仓库拣货和发运\n\n## 关系\n\n- **Ordering → Fulfillment**: Ordering 发出 `OrderPlaced` 事件；Fulfillment 消费它以启动拣货\n- **Fulfillment → Billing**: Fulfillment 发出 `ShipmentDispatched` 事件；Billing 消费它以生成发票\n- **Ordering ↔ Billing**: 共享 `CustomerId` 和 `Money` 类型\n```\n\n推断当前结构：\n- 若 `CONTEXT-MAP.md` 存在，读取它来定位上下文\n- 若只有根目录 `CONTEXT.md`，则为单上下文\n- 若都不存在，在第一个术语确定时懒创建根目录 `CONTEXT.md`\n\n多上下文时，推断当前话题关联哪个上下文。不确定时，问。\n\n---\n\n# 参考：ADR 格式\n\nADR 存放在 `docs/adr/`，使用顺序编号：`0001-slug.md`、`0002-slug.md`……\n\n懒创建 `docs/adr/` 目录——只在第一个 ADR 需要时创建。\n\n## 模板\n\n```md\n# {决策的简短标题}\n\n{1-3 句话：背景是什么，我们决定了什么，为什么。}\n```\n\n一个 ADR 可以只有一段话。价值在于记录**做了**什么决策以及**为什么**——而非填满各个章节。\n\n## 可选章节\n\n仅在确有价值时才加。大多数 ADR 不需要。\n\n- **Status**（`proposed | accepted | deprecated | superseded by ADR-NNNN`）— 决策被重新审视时有用\n- **备选方案** — 仅当被否决的替代方案值得记住时\n- **后果** — 仅当存在不显而易见的下游影响时\n\n## 编号\n\n扫描 `docs/adr/` 找到当前最大编号，加一。\n\n## 什么适合做 ADR\n\n- **架构形态。** \"我们使用 monorepo。\" \"写模型使用事件溯源。\"\n- **上下文间的集成模式。** \"Ordering 和 Billing 通过领域事件通信。\"\n- **有锁定效应的技术选型。** 数据库、消息总线、认证提供商、部署目标。\n- **边界与范围决策。** \"Customer 数据由 Customer 上下文拥有；其他上下文只通过 ID 引用。\"\n- **对显而易见路径的刻意偏离。** 让未来读者不会误以为是 bug 而\"修复\"它。\n- **代码中不可见的约束。** \"因合规要求不能使用 AWS。\"\n- **被否决方案的理由不明显时。** 防止六个月后有人重新提出同样建议。","author":"@feiskyer","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/feiskyer/claude-code-settings/tree/main/skills/grill-me","license":"MIT","category":"writing","lang":"multi","tokens":1919,"stars":0,"calls30d":2,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":[]}}