一键导入
grill
Interrogate a plan or decision one question at a time before capture, keeping a decision-plus-rationale ledger, then route to the right capture skill.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Interrogate a plan or decision one question at a time before capture, keeping a decision-plus-rationale ledger, then route to the right capture skill.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Fan an approved `.task/roadmap/<slug>.md` out to a dynamic Workflow — parallel planning, serialized implementation, dependency-ordered waves.
Capture a multi-task initiative into `.task/roadmap/<slug>.md` — a phase-grouped backlog of ready-to-pick-up items.
Capture load-bearing technical decisions into a standalone `.task/spec/<slug>.md` — Decision/Rationale/Constrains sections cited via `Spec:`.
Capture the chat into `.task/task/<slug>.md` with `## Description` plus `## Plan` (Goal/Touches/Logic) — the deepest one-task capture.
Capture the current chat discussion into a task, no implementation plan
Self-audit this skills repo against CLAUDE.md invariants, the v3 artifact contract, and README/CLAUDE.md/docs sync via three parallel read-only subagents. Local meta-skill — independent of the /task:* pipeline.
| name | grill |
| description | Interrogate a plan or decision one question at a time before capture, keeping a decision-plus-rationale ledger, then route to the right capture skill. |
| disable-model-invocation | true |
| user-invocable | true |
Pressure-test a plan, decision, or idea before it is frozen into an artifact. grill sits at the pipeline's first stage — "discuss freely in chat" — and gives it teeth: it interrogates the thinking one question at a time, records every answer as a decision with its rationale, closes with a pre-mortem, then hands off to the right capture skill. It writes nothing; its output is a hardened discussion plus a decision ledger that a to-* skill then serializes.
Input: $ARGUMENTS — optional. A topic or free-form context to grill (e.g. "the retry design", "whether to shard the queue"). Empty → grill the plan/decision being discussed in the current chat.
No config gate, no setup. grill reads nothing under .task/ — config.md included — so it runs in a fresh, unconfigured project before any capture exists. Dialog mirrors the language of the chat; facts are looked up with plain tools (Read / Grep / Glob / Bash).
State, in 1–3 sentences, the plan/decision/idea as you currently understand it — from $ARGUMENTS if given, else from the chat. This is the target the questions attack. Do not ask the user to confirm the framing with a separate prompt; the first question implicitly tests it.
Split what stands between you and the next question into two piles:
Resolve facts lazily — only the ones that gate the next question, not everything up front — so the first question reaches the user fast. When several independent reads are needed for one question, batch them in parallel. If a supposed decision turns out to have a factual answer, resolve it silently and move on — don't burn a question on it.
Nothing to grill. If no genuine decision is left — every fork is already settled, or all of it is factual and answerable from the environment — stop. Do not manufacture questions to justify running. Say so plainly and redirect straight to the fitting capture skill (Step 7's routing), e.g. → Next: /task:to-plan — nothing left to interrogate; the approach is settled, capture it.
Walk the decision tree, one AskUserQuestion per genuine fork (convention (c)). Never batch. After each answer, new forks it exposes become later questions.
Each question:
… (Recommended). Each option's description states its consequence — what you get and what it costs — so the choice is informed, not blind.Depth budget. A typical grill is 3–7 questions. Depth over breadth — chase the one answer that would change everything, not ten that wouldn't. Stop as soon as the remaining forks would not change what gets captured.
Maintain a ledger internally — one line per answered question, in the form {the decision, at full specificity} — because {the load-bearing reason}. After each answer, echo only the new line, not the whole ledger. Keep each line concrete enough that a reader who missed the chat understands both the choice and why it was made. The full block is printed once, in Step 6.
Once the branches are resolved, ask one kill-shot question via AskUserQuestion before printing the ledger — pick whichever bites harder:
Fold the answer into the ledger as a final decision line (the mitigation, or the confirmed reason to proceed anyway).
Once the pre-mortem answer is folded in, process the whole set of answers together and print the full ledger as message text in your reply — the whole block, once (convention (b)):
## Decision ledger
1. {the decision, at full specificity} — because {the load-bearing reason}
2. {…}
The ledger is the grill's output — print it, then go straight to Step 7 routing, no confirmation chip: every line restates a decision the user already made through the questions above.
grill writes nothing, so there is no file to guard and no "declined" state — an abandoned grill is simply one the user doesn't route onward. If the user wants a line changed, they say so in chat: correct it and reprint the ledger.
Diagnose what was actually grilled and close with the canonical footer (convention (a), flag-free) naming exactly one next skill plus a one-line reason:
→ Next: /task:to-spec — the ledger is load-bearing technical reasoning; pin it as a spec.→ Next: /task:to-plan — one task with the approach nailed down; capture Description + Plan.→ Next: /task:to-task — one task worth recording now; flesh out the plan later.→ Next: /task:to-roadmap — this grew into a multi-task initiative; capture it as a roadmap.Pick the one that fits; state the reason in the same language as the dialog. Do not run the capture skill yourself — the footer is the handoff.
.task/. Serializing the ledger is the to-* skills' job; grill only hardens the discussion..task/, config.md included — no config gate, no inline setup; grill runs before any config exists and dialog mirrors the chat's language.AskUserQuestion per fork, always. No multi-question rounds.