Agent Skills › crbnos/carbon › grill

grill

GitHub

通过逐一提问压力测试设计、计划或规范,确保所有开放决策得到解决并交叉检查代码库一致性。仅用于人工监督下的交互式审查,不用于自动执行或生成文档。

.claude/skills/grill/SKILL.md crbnos/carbon

Trigger Scenarios

用户要求对设计或计划进行压力测试 需要解决规范中的开放问题

Install

npx skills add crbnos/carbon --skill grill -g -y
More Options

Non-standard path

npx skills add https://github.com/crbnos/carbon/tree/main/.claude/skills/grill -g -y

Use without installing

npx skills use crbnos/carbon@grill

指定 Agent (Claude Code)

npx skills add crbnos/carbon --skill grill -a claude-code -g -y

安装 repo 全部 skill

npx skills add crbnos/carbon --all -g -y

预览 repo 内 skill

npx skills add crbnos/carbon --list

SKILL.md

Frontmatter
{
    "name": "grill",
    "description": "Interview the user relentlessly, one question at a time, to stress-test a plan, spec, or design until every open decision is resolved — recommended answer per question, answers cross-checked against the codebase and the @carbon\/content\/glossary domain terms, resolutions written back to the artifact as they land. Use when the user says \"grill me\", wants to stress-test a design or plan, or a spec-in-design's open questions need resolving (spec-writing Step 5 invokes this BEFORE the spec is written). SUPERVISED ONLY — never invoke from an automated loop (conductor, headless\/outer-loop runs); autonomous flows use spec-writing's autonomous mode instead. Do not use to author the artifact itself — use \/spec-writing for specs, \/plan for implementation plans."
}

grill — stress-test a design by interviewing its author

Input: a plan, spec, or design idea (in a file or only in chat). Output: every open decision resolved with the human one branch at a time, each resolution written to its canonical home, and every contradiction between the user's answers and the codebase surfaced along the way.

Supervised only. This skill exists to interview a human; there is no autonomous variant. Inside an automated loop (conductor, headless/outer-loop runs) do NOT invoke it — spec-writing's autonomous mode (recommendation-based resolutions recorded as **Autonomous:**, Ask-First territory → BLOCKED) is the substitute.

Announce at start: "Using the grill skill — stress-testing {target}."

Step 1: Identify the target and its write destination

Grilling Questions come from Resolutions written to
A spec (.ai/specs/…) its Open Questions section, plus anything fuzzy in Design Decisions inline in the spec: - [x] {Question} — **Answer:** {decision and rationale}, plus a changelog entry when done
A spec in design (spec-writing Step 5 — no file yet) the question list assembled in spec-writing Step 4 carried into the spec's Open Questions section (pre-checked, with answers) when the spec is written in Step 6
A plan (.ai/plans/…) ambiguous or risky tasks, missing acceptance criteria the affected task in the plan file
An idea in chat (no artifact) the whole decision tree of the idea .ai/runs/{YYYY-MM-DD}-grill-{slug}.md — create it when the first decision lands

If the target has no artifact and the grill reveals it is spec-worthy (new module, data-model change, or 3+ files — the /spec-writing table), say so and offer /spec-writing. Continue grilling artifact-less only if the user declines.

Step 2: Pick the depth from the blast radius

Target involves Depth
New module, data-model change, or cross-module behavior Full grill — strictly one question per message
Anything smaller Light grill — closely-related questions may be grouped, max 2–3 per message

Depth changes grouping only. Every rule in Step 3 applies at both depths, and never present the entire question list at once and wait for batch answers.

Step 3: Interview

Walk the decision tree branch by branch, resolving dependencies between decisions one by one. Wait for the user's answer before continuing. For every question:

  • Order by dependency: settle decisions that other questions hinge on first.
  • Attach your recommended answer with a one-line rationale.
  • If the question can be answered by exploring the codebase or an existing research file, answer it that way instead of asking.
  • Cross-check every answer against the code. Surface contradictions immediately, with file references: "you said X, but {file} does Y — which is right?"
  • Stress-test fuzzy answers with a concrete scenario before accepting them ("a PO has 3 lines and one is already received — what happens on cancel?").
  • Sharpen fuzzy terms. When the user uses a vague or overloaded word, propose the precise canonical term. Check docs/content/src/glossary (the terms object in @carbon/content/glossary) for an existing definition and challenge conflicts: "the glossary defines {term} as {definition}; you seem to mean {other} — which is it?"

Step 4: Write back as each decision lands

Do not batch write-backs to the end of the session — record each resolution in the Step 1 destination in the same turn it is decided. Two extra destinations apply regardless of target:

  • A decision that sets a durable convention beyond this feature → update the matching .claude/rules/*.md file in the same turn.
  • A genuinely new canonical domain term → offer a @carbon/content/glossary entry, only when all three hold: the term is user-facing (UI or docs), the grill revealed real ambiguity, and the user confirmed the definition. Follow docs/content/AGENTS.md (its "Ask First" rule is satisfied by the user's confirmation in the interview).

Done when

  • No unresolved branches: every question answered by the user, the codebase, or an explicit documented "out of scope" decision
  • Every resolution recorded in the Step 1 destination — none live only in chat
  • Durable conventions reflected in .claude/rules/; glossary offers made where the three-part test passed
  • Every resolution written to a spec or plan is in STE-80, and the STE-80 review pass (.claude/rules/writing-ste.md → Enforcement) is done on that file

Anti-patterns

  • Dumping the full question list in one message and accepting batch answers
  • Accepting an answer without checking it against the code
  • Resolving a question yourself to keep moving — only the user, the codebase, or a documented out-of-scope decision resolves a question
  • Recording decisions only in chat ("I'll write them up at the end")

Red flags — thinking any of these means the grill is being defeated; STOP:

  • "the user probably means X, I'll assume it" (that assumption IS the question)
  • "we can settle this during implementation"
  • "I'll batch the write-backs when the session ends"

Version History

  • f9d7efd Current 2026-10-20 03:32

    无版本变更

  • dd8f587 2026-08-20 16:17

Same Skill Collection

.claude/skills/agent-browser/SKILL.md
.claude/skills/auth/SKILL.md
.claude/skills/create-agents-md/SKILL.md
.claude/skills/debugging-difficult-bugs/SKILL.md
.claude/skills/error/SKILL.md
.claude/skills/execute/SKILL.md
.claude/skills/make-interfaces-feel-better/SKILL.md
.claude/skills/plan/SKILL.md
.claude/skills/pr-explainer/SKILL.md
.claude/skills/pr-splitter/SKILL.md
.claude/skills/research/SKILL.md
.claude/skills/resolving-merge-conflicts/SKILL.md
.claude/skills/root-cause/SKILL.md
.claude/skills/rust-best-practices/SKILL.md
.claude/skills/smoke-test/SKILL.md
.claude/skills/supabase-postgres-best-practices/SKILL.md
.claude/skills/tdd/SKILL.md
.claude/skills/test-driven-development/SKILL.md
.claude/skills/test/SKILL.md
.claude/skills/writing-skills/SKILL.md
.claude/skills/carbon-design/SKILL.md
.claude/skills/carbon-docs/SKILL.md
.claude/skills/changelog-entry/SKILL.md
.claude/skills/check-and-commit/SKILL.md
.claude/skills/explain/SKILL.md
.claude/skills/feature/SKILL.md
.claude/skills/fix/SKILL.md
.claude/skills/improve/SKILL.md
.claude/skills/inngest/SKILL.md
.claude/skills/rust/SKILL.md
.claude/skills/self-review/SKILL.md
.claude/skills/spec-writing/SKILL.md
.claude/skills/translate/SKILL.md
.claude/skills/ui/SKILL.md

Metadata

Files
0
Version
f9d7efd
Hash
d30a11da
Indexed
2026-08-20 16:17

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-24 23:07
浙ICP备14020137号-1