1仕組みと動作原理
grill-with-docs 自体は実装を持たない純粋なオーケストレーションシェルです。本文は1文のみで、全作業を同一リポジトリ内の grilling と domain-modeling という2つのスキルに委譲し、ホストの 'Skill tool' によって順次ロードされます。
skills/engineering/grill-with-docs/SKILL.md
Call the Skill tool twice, for "grilling" and "domain-modeling".
SKILL.md 全体でわずか7行(フロントマター4行 + 本文1文)。scripts、references、テンプレートは一切含みません。機能は100%参照先スキルから提供されており、クラス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 はリポジトリ内で5つ以上のスキル(grill-me、grill-with-docs、triage、wayfinder、improve-codebase-architecture、READMEに明記)から再利用されるインタビュープリミティブです。これ自体は説明文に基づきモデルが自発的に起動可能です(disable-model-invocation なし)。
インタビューに伴うドキュメント生成能力は domain-modeling に由来します。用語が確定するとその場で CONTEXT.md の用語集に書き込み、決定事項が3つの基準を満たした場合にのみ ADR を作成し、ディレクトリは遅延作成されます。
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 から提供されます(本スキル内から ./CONTEXT-FORMAT.md、./ADR-FORMAT.md としてリンク)。ADR は極めて簡潔で、わずか1〜3文でも成立します。
トリガーは「ユーザーによる明示的な呼び出しのみ」に二重ロックされています。SKILL.md のフロントマターと agents/openai.yaml の双方で暗黙的な呼び出しを禁止し、インタビューのフローがモデルによって自発的に中断されるのを防ぎます。
skills/engineering/grill-with-docs/SKILL.md
disable-model-invocation: true
CLAUDE.md によりリポジトリの規約が確認されています:ユーザー起動スキル = disable-model-invocation: true + agents/openai.yaml の policy.allow_implicit_invocation: false(本スキルには両方揃っています)。委譲される側の2スキルにはこのフラグがありません(モデルによる自発起動が可能)。
成果物の規律はシェルではなく参照先スキルに組み込まれています。CONTEXT.md は純粋な用語集でなければならず、ADR は「不可逆的である / 文脈がないと驚きがある / 真のトレードオフが存在する」の3基準を同時に満たした場合にのみ記述されます。
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 記録:3つの基準をすべて満たした場合にのみ ADR の作成を提案。テンプレートは1〜3文程度の短いものとし、連番を付与
4推奨統制措置と判定根拠
安全運用のための推奨統制措置
Agent 向け
作業ディレクトリを限定
管理者向け
操作ログを保持
判定根拠(ファイルパスと抜粋)
- 本地工作目录: ファイルの読み書きと成果物の出力: モデルは domain-modeling の指示に従い、ユーザーのプロジェクト内に書き込みを行います:CONTEXT.md(最初の用語確定時に作成/更新)、CONTEXT-MAP.md(複数コンテキストが存在する場合)、
監査ノート: 3つのディレクトリ内の全ファイル(SKILL.md×3、agents yaml×3、2つの FORMAT テンプレート)を逐語的に確認済み:スクリプト、ネットワーク呼び出し、認証情報の読み取り、隠しファイルやシンボリックリンクは一切存在しません。唯一の「アクション」は、指示に従ってユーザープロジェクト内に CONTEXT.md/ADR ドキュメントをモデルが書き込むことであり、これはスキルの機能そのものです。トリガーは明示的なユーザー呼び出しのみに二重ロックされています。
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結論
最適な用途: 作業に着手する前に深い合意形成が必要なエンジニアリング変更、設計、計画の深掘りシナリオで、対話を通じてドメイン用語や意思決定記録を蓄積したい個人や小規模チーム。ホストが Claude Code 系(クロススキルの Skill tool メカニズムを保有)であれば導入後すぐに利用可能。リポジトリが長期にわたって進化し、用語の乖離が生じやすいプロジェクトで最大の効果を発揮します。
不向きな用途: Skill tool 機能を備えていないホスト(シェル自体に指示が含まれないため、直接実行すると空回りします)。迅速な確認のみで済む小さな変更(過剰なアプローチ)。コードに関係しない個人のタスク(本スキルではなく grill-me や grilling を使用すべき)。ドキュメント成果物を必要としないシナリオ(domain-modeling レイヤーを外すことを推奨)。
Install Agent-Ready
① Verified Mirror 2026-09-06
Option A · Direct DownloadDownload grill-with-docs.tar.gz
sha256:
Option B · Copy Guide for Agentaabd3027347e47eb…Agent はこの JSON ガイドから自動的にダウンロードして検証します。
② Upstream GitHub
GitHub Repo ↗
Pinned to commit 3cca18b368.