基础工具与工作流 · mattpocock/skills

grill-with-docs

A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.

风险提醒:绿色 · 放心使用AI 侦查报告
作者 mattpocockGitHub mattpocock/skills ↗Stars 253833许可 MITcommit 3cca18b368
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

grill-with-docs 自身是零实现的纯编排壳:正文只有一句,把全部工作委托给同 repo 的 grilling 与 domain-modeling 两个 skill,由宿主 'Skill tool' 依次装载。

skills/engineering/grill-with-docs/SKILL.md
Call the Skill tool twice, for "grilling" and "domain-modeling".
注:整个 SKILL.md 共 7 行(frontmatter 4 行 + 正文 1 句)。无 scripts/references/模板。功能 100% 由被引用 skill 提供,属 A 级纯指令样板。

拷问能力来自 grilling:设计树 frontier 轮次访谈——每轮把全部可问问题一次问完、编号并附推荐答案,用户答完再算下一轮 frontier,直到无隐藏假设。

skills/productivity/grilling/SKILL.md
Map this as a **design tree**: every decision branches into the decisions that hang off it. Work the tree in **rounds**. The **frontier** is every decision whose prerequisites are already settled... Ask the whole frontier in one round: number each question and give your recommended answer.
注:grilling 是 repo 内被 5+ skill(grill-me/grill-with-docs/triage/wayfinder/improve-codebase-architecture,README 明言)复用的访谈原语,它自己可被模型按描述自触发(无 disable-model-invocation)。

随访谈产文档的能力来自 domain-modeling:术语一确定就当场写进 CONTEXT.md 词汇表,决策满足三门槛才产 ADR,目录 lazy 创建。

skills/engineering/domain-modeling/SKILL.md
When a term is resolved, update `CONTEXT.md` right there. Don't batch these up: capture them as they happen.
注:格式由同目录 CONTEXT-FORMAT.md / ADR-FORMAT.md 提供(本 skill 内链 ./CONTEXT-FORMAT.md、./ADR-FORMAT.md),ADR 极简:可只有 1-3 句。

触发被双重锁死为'仅用户显式调用':SKILL.md frontmatter 与 agents/openai.yaml 各自声明禁止隐式调用,避免访谈流程被模型自发打断。

skills/engineering/grill-with-docs/SKILL.md
disable-model-invocation: true
注:CLAUDE.md 证实 repo 约定:user-invoked skill = disable-model-invocation: true + agents/openai.yaml 的 policy.allow_implicit_invocation: false(本 skill 两处齐全)。被委托的两个 skill 则无此标志(可模型自触发)。

产物纪律内建于被引用 skill 而非壳:CONTEXT.md 必须是纯词汇表、ADR 必须同时满足'难逆转/无上下文会惊讶/真权衡'三条才写。

skills/engineering/domain-modeling/SKILL.md
Only offer to create an ADR when all three are true: 1. **Hard to reverse**... 2. **Surprising without context**... 3. **The result of a real trade-off**...
注:ADR-FORMAT.md 同旨:"The value is in recording *that* a decision was made and *why*, not in filling out sections." 文档是访谈副产物而非事后补写。

2核心能力

01设计树轮次拷问:每轮一次问清当前 frontier,问题编号并附推荐答案,等用户答完再推进
02事实自查不烦用户:frontier 问题需要环境事实时派遣 sub-agent 去找,能查的不问用户
03术语冲突即时纠正:用户用词与 CONTEXT.md 词汇表冲突时当场点出
04模糊语言精炼:提出更精确的规范术语并逼用户区分概念边界
05场景压力测试与代码交叉核对:用边角场景考验领域关系,用代码验证用户陈述
06词汇表即时落盘:术语一旦定案立刻更新 CONTEXT.md,禁止攒批
07克制式 ADR 记录:三门槛全中才提议写 ADR,模板可短至 1-3 句、编号递增

4风险提醒 风险提醒:绿色 · 放心使用

风险提醒:绿色 · 放心使用
  • 零容错委托:壳无任何自含兜底,宿主不支持 Skill tool 或兄弟 skill 缺失时该 skill 完全 inert,且无自检提示 — SKILL.md 正文仅 1 句,无 fallback 指令;跨 host(非 Claude Code 系)直接使用等于空转
  • 组合语义未固化:'call twice' 未说明两流程如何交织,文档产出时机与完整性依赖宿主并发行为与模型临场判断,端到端行为存在漂移空间 — 无测试/校验可验证一次会话是否真的产出了 glossary+ADR,'shared understanding 达成'由模型自判
  • relentless 访谈可能过度提问造成疲劳;'给推荐答案'的设计在模型固执时会诱导而非澄清 — grilling: 'Interview the user relentlessly until you reach a shared understanding'——停止条件为模型自判的 frontier 为空
  • 模型被指示在用户仓库自动写 CONTEXT.md/docs/adr/ 文件:若三门槛判断失准会制造噪音文档或污染既有词汇表(设计已用'glossary only'+三条件约束,属残余风险) — domain-modeling: 'update `CONTEXT.md` right there' / 'Offer ADRs sparingly'——写入无人工确认步骤,靠事后 git 审阅兜底
三目录全文件(SKILL.md×3、agents yaml×3、两个 FORMAT 模板)逐字检查:无脚本、无网络调用、无凭证读取、无隐藏文件/符号链接。唯一'动作'是模型按指令在用户项目内写 CONTEXT.md/ADR 文档,即该 skill 的功能本体。触发双锁为仅用户显式调用。

5第二遍独立确认

  • [ok] grill-with-docs 目录仅 SKILL.md + agents/openai.yaml — find 全目录 + 隐藏文件/符号链接扫描:确无 scripts/references/数据文件,无 dotfile
  • [ok] 正文引用 'grilling' 与 'domain-modeling' 真实存在于本 repo 且 frontmatter name 精确匹配 — skills/productivity/grilling/SKILL.md name: grilling;skills/engineering/domain-modeling/SKILL.md name: domain-modeling;无外部缺失引用
  • [ok] 外部依赖为零的结论 — 对 grill-with-docs + grilling + domain-modeling 全部 8 个文件 grep 网络/CLI/凭证/执行特征词:0 命中。无任何第三方包、API、端点
  • [ok] 触发控制双锁一致 — SKILL.md 有 disable-model-invocation: true,agents/openai.yaml 有 allow_implicit_invocation: false,两清单一致;被委托的 grilling/domain-modeling 均无此标志(可模型自触发),CLAUDE.md 对 user-invoked/model-invoked 的 repo 约定与实况吻合
  • [ok] 功能声明 vs 实际能力:'relentless interview + creates docs (ADR's and glossary) as we go' — 声明成立但有前提:壳本身零自含指令,能力全部来自宿主 'Skill tool' 装载两个兄弟 skill 并叠加模型判断;若宿主无跨 skill 调用机制、兄弟 skill 未安装、或模型只调了一个,则行为降级/空转,壳无任何兜底或自查提示。README 定位(L101/L131:'same as grill-me, but adds more goodies'、'grilling session... build a shared language... document hard-to-explain decisions in ADR's')与声明一致
  • [ok] 组合语义是否写明('Call the Skill tool twice' 之后如何交织 interview 与写文档) — 未写明交织时序:文档化节奏靠 domain-modeling 的 inline 指令('capture them as they happen')与模型临场判断自然浮现,壳不保证两流程并发执行。复核认定为设计取舍而非缺陷,但稳定性依赖宿主行为
  • [ok] 安全结论反例搜索(漏网的隐藏执行/网络/凭证面) — 未找到反例:无可执行文件、无 base64/混淆内容、无 URL、无环境变量读取。文件写入面即 CONTEXT.md/ADR(设计意图,相对路径 lazy 创建)
  • [ok] 形态演化历史 — git log 证实:2026-04-30 曾移除 disable-model-invocation;2026-05-31 221ffca 把自含长 prompt 重构为委托式壳并重引入该标志;2026-08-15 系列 commit 把跨 skill 措辞统一为 'Call the Skill tool ... with "name"' 的多工具调用写法。当前 pin(2026-09-04)为最新稳定形态

6结论

  • 组合复用而非复制:一行壳复用 repo 级访谈原语,grilling 同时服务 grill-me/grill-with-docs/triage/wayfinder/improve-codebase-architecture 五个 skill,维护单点化
  • 访谈输出格式纪律强:编号回合 + 强制附推荐答案,把'拷问'做成可消费的结构化对话而非漫谈
  • 文档产物刻意极简克制:ADR 可只写 1-3 句、CONTEXT.md 拒绝实现细节,压低长期维护税,文档是拷问的副产物而非额外负担
  • 触发完全由用户掌控(双锁禁隐式调用),不会在无关对话中被模型自发激活打断流程
  • 适合:需要'先深度对齐再动手'的工程变更/设计/计划拷问场景,且愿意在对话中沉淀领域词汇与决策记录的个人或小团队;宿主为 Claude Code 系(有跨 skill 的 Skill tool 机制)时开箱即用;仓库长期演进、术语易漂移的项目收益最大。
    不适合:无 Skill tool 能力的宿主(壳无自含指令,直接用=空转);只需快速确认的小改动(杀鸡用牛刀);非代码类个人事务应改用 grill-me/grilling 而非本 skill;不需要文档产物的场景建议去掉 domain-modeling 层。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-06
    方式 A · 人下载镜像包下载 grill-with-docs.tar.gz
    sha256: aabd3027347e47eb…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit 3cca18b368;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库mattpocock / mattpocock/skills
    Stars253833
    最近推送2026-09-04
    本 skill commit3cca18b368
    许可MIT
    本站信息
    收录日期2026-09-06
    分类基础工具与工作流
    侦查报告2026-09-06 · 2 遍
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。