Grill docs
Skill papukaijaorg/grill-docs
Grill first, render last — an Agent Skill that refuses to make slides until purpose, audience, and issues are explicit. 資料を作る前に、あなたを炙るスキル。
npx -y skills add papukaijaorg/grill-docsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when the user wants to create slides, a deck, a proposal, or a discussion document and the content is not yet pinned down — grills the user one question at a time (with recommended answers) until purpose, audience, and issues are explicit, then produces a design memo and Marp/HTML slides. Triggers: "資料", "スライド", "プレゼン", "deck", "slides", "proposal", "grill-docs".
SKILL.md
4.8 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
grill-docs — grill first, render last
AI documents fail because the input is undefined, not because generation is
weak. This skill refuses to render anything until purpose, audience, and
issues are explicit. Philosophy inherited from the 10-line grill-me skill:
one question at a time, always with a recommended answer, until shared
understanding.
State
All state lives in ./grill-docs-work/<slug>/document_job.yaml
(schema: references/document-job-schema.md). Create the file at Phase 0;
update it after every answered question. To resume a session, read the
file — never rely on conversation memory. <slug> = kebab-case of the theme;
if the theme is non-ASCII, use a short romanized or English slug. Before
creating a new slug, list ./grill-docs-work/ and reuse the existing
directory if one matches this session's theme.
In all commands below, <skill-dir> means the directory containing this
SKILL.md (resolve it from where this skill was loaded).
Depth modes
--quick (2–3 questions) / default standard (3–6, per type) / --deep (until
saturation). Selection matrix: references/question-bank.md.
Phase 0's gate questions (type, theme, audience, desired action) do not count against the depth budget. In Phase 1, skip any bank question whose target fields were already filled during Phase 0 — never re-ask what the user has answered.
Phases
Phase 0 — Type gate (cannot be skipped).
Ask: is this document ①read_only(読んで終わり) ②approval(決裁を取る)
③discussion(議論する)? Plus theme, audience, desired post-read action.
Record in document_job. If the user picked ① but their answers mention a
decision, challenge the classification once.
Phase 1 — Grill.
Ask questions from the question bank per the type×depth matrix, ONE at a
time, each with a recommended answer. Write every answer into
document_job before asking the next. In the user's language.
Phase 2 — Issue structuring + critique.
Draft up to 3 candidate issues(「何を〇〇すべきか?」形式); the user picks
or edits the main issue. Then run the four personas in
references/personas.md against the issue list — as parallel subagents if
the environment supports them, otherwise sequentially in-context (degraded
mode). Every finding is resolved or explicitly rejected by the user.
Phase 3 — Design memo (GATE).
Fill templates/design-memo-template.md from document_job →
./grill-docs-work/<slug>/design-memo.md.
Run: python3 <skill-dir>/scripts/lint_memo.py ./grill-docs-work/<slug>/design-memo.md --type memo
Fix findings, re-run until exit 0. Show the memo to the user and ask for
approval. Iterate until approved. Do not continue without approval.
Phase 4 — Render (only after approval).
Generate ./grill-docs-work/<slug>/slides.md from
templates/slides-template.md following references/slide-principles.md
(premise first, one message per slide, question titles, Key Slide as
Mermaid for discussion type, speaker-note Q&A, end on open questions +
next actions).
Run: python3 <skill-dir>/scripts/lint_memo.py ./grill-docs-work/<slug>/slides.md --type slides
Fix and re-run until exit 0. If the user wants rendered output, offer:
npx @marp-team/marp-cli --theme-set <skill-dir>/templates/marp-theme.css ./grill-docs-work/<slug>/slides.md -o ./grill-docs-work/<slug>/slides.html
(for PDF, change -o to slides.pdf). If npx/marp-cli is unavailable or declined, tell the
user the .md renders in the VS Code Marp extension or any Marp toolchain —
do NOT hand-write HTML slides.
Phase 5 — Workslop check.
Answer in one sentence: 「この資料を読んだ後、読み手は何を決められるか?」
If you cannot, return to Phase 2. Also verify every fact in the slides
traces to document_job.evidence — anything else becomes 「未確認」.
Failure modes to refuse
- User pastes a finished outline and asks to "just format it" → still run Phase 0 + at least Q1/Q3 (quick mode); classification errors are the top cause of garbage documents.
- Rendering into the skill's own directory → always
./grill-docs-work/. - Filling
未確認事項with "特になし" → treat as lint failure M3.