Startup Grill
Adversarially probe a startup idea with a panel of domain-aware grillers. Ship a structured kill report. Optionally enter interactive defense mode.
This skill is not a collaborative thinking partner. The job is to surface
what would kill this startup if unaddressed — not to shape the idea, not to
brainstorm next moves, not to be encouraging. If you want collaborative work,
use team-composer instead.
STOP — When NOT to use this skill
Hand off to a different skill — do not run the grill — if any of these apply:
- The user is brainstorming an idea or shaping a problem space → use
team-composer(orsuperpowers:brainstormingif installed). - The user wants to build a validation canvas, brand identity, or pitch deck
→ use
validation-canvas,brand-workshop, orpitch-deckrespectively. Grilling can run after those exist. - The user wants to design assumption tests → use
riskiest-assumption-test. Grilling exposes weaknesses; RAT designs experiments to test them. - The user wants positioning review or brand voice review → use
team-composerwith@brand_strategist/@humorist/@senior_copywriter. - The user wants to review their plan with a multi-perspective team that
includes constructive feedback → use
team-composerwithscope=review. - The user is mid-deal and wants investor diligence prep rather than
adversarial idea review → use
team-composerwith@vc_partner+@finance_manager+@startup_strategist.
Bright-line rule: if the user wants help making the idea better, that's
not this skill. Grilling produces a verdict, not improvements. Improvements
come from the user acting on the kill report's Suggested attack lines, then
optionally re-grilling.
Redirect discipline. When the STOP gate fires and you route to another
skill, describe the kind of lens the user needs — don't invent role tags.
team-composer's persona catalog lives in
skills/team-composer/references/role-personas.md; defer naming specific
roles to that skill rather than coining tags that don't exist there
(e.g., do NOT write @market_researcher or @sustainability_expert —
those aren't in the canonical catalog and will confuse the user when
team-composer assembles its actual team).
Skill Boundaries
This skill overlaps with team-composer (@vc_partner, @startup_strategist,
and @ux_researcher are all team-composer roles too) but the deliverable and
the round structure are different.
| Request | Skill |
|---|---|
| "Grill my startup idea" | startup-grill (this skill) |
| "Tear apart my pitch" | startup-grill |
| "Pre-mortem this startup" | startup-grill |
| "Stress-test my business model" | startup-grill |
| "Brainstorm my startup" | team-composer |
| "Review my plan with a team" | team-composer with scope=review |
| "Build my pitch deck" | pitch-deck |
| "Build my validation canvas / lean canvas / VPC" | validation-canvas |
| "Design tests for my assumptions" | riskiest-assumption-test |
| "Workshop the brand for my startup" | brand-workshop |
If the user request mixes grilling with building ("grill my startup and
help me fix it"), run the grill first to ship the kill report, then route the
fix work to the appropriate builder skill (pitch-deck, validation-canvas,
riskiest-assumption-test, or team-composer). Don't try to do both at once —
that produces a soft kill report.
What this skill produces
Every one-shot run produces exactly one file inside the resolved grill
root (see Phase 1 Step 0.0 for path resolution; default is docs/grill/
for solo runs, docs/startup-kit/grill/ when invoked via orchestrator):
kill-report.md— the structured kill report. Format spec inreferences/kill-report.md.
If the founder enters interactive defense mode, a second file is produced and updated on each defense round:
defense-log.md— append-only log of founder defenses, panel re-probes, and updated reads. Format spec inreferences/round-structure.md.
Both files go into the resolved grill folder. Existing files from prior sessions are appended-to, never overwritten.
Phase 1: Intake
Goal: assemble the brief the panel will grill.
Step 0.0 — Path resolution + manifest awareness (v2.2.0+)
Resolve the grill root once at invocation, in this precedence order (canonical chain):
- Explicit
output_dirarg (passed bystartup-launch-kit) → use as-is. STARTUP_KIT_DOCS_ROOTenv var set →${STARTUP_KIT_DOCS_ROOT}/grill/.- Smart default —
docs/startup-kit/exists →docs/startup-kit/grill/. Surface the smart-default notice: "Writing todocs/startup-kit/grill/(smart default). SetSTARTUP_KIT_DOCS_ROOT=./docsto write standalone instead." - Solo fallback →
docs/grill/.
The same root resolution applies to sibling reads (<canvas-root>/,
<rat-root>/, <pitch-root>/, <brand-root>/) — they're siblings of the
grill root.
Manifest awareness. Look for kit-manifest.json at
<resolved-kit-root>/kit-manifest.json first; fall back to the
working-directory root for backward compat. Use it as a hint, never as a
bypass:
- If the manifest lists
startup-grillascompletedwith a recent mtime, surface that fact: "Manifest says you ran the grill on [date]. New defense round (interactive mode), fresh grill (rebuild kill report from scratch), or skip and review the prior report?" - The manifest's
gate_overrides[]array is direct grilling ammunition: every recorded override is a deliberate decision the founder made to bypass a gate, and is worth probing in Round 1. Surface them in the kill-report's## Iteration Evidencesection per the Phase 1 Step 1c iteration-evidence check. - The manifest's
iterationscounter onvalidation-canvas(incremented on each loop-back) directly informs the iteration-evidence read: zero iterations + populated RAT Results = pristine pipeline yellow flag. - The manifest's
source_modeand thevalidation-canvasstep'sseededflag feed the seed checks in Step 1c:source_mode: "existing-project"+seeded: true+iterations: 1= rubber-stamped-seed yellow flag (the canvas was machine-inferred from the codebase and never revised). Combined with a still-present<!-- SEED:machine-inferred -->marker in the canvas file = unconfirmed-seed red-ish flag. - Manifest read failures (corrupt JSON, missing fields) are non-fatal — log the issue inline and proceed as if no manifest exists.
After this skill ships its kill report (Phase 3), if a manifest exists,
append/update this skill's entry. Use atomic write (write .tmp, then
rename). If the manifest doesn't exist, do NOT create it — that's the
startup-launch-kit orchestrator's job. See
startup-launch-kit/references/manifest-schema.md
for the schema.
Step 1 — Read the working directory
Check for these files in order. For each, look at the new conventions
path first; fall back to the legacy path for backward compat. If found at
the legacy path, surface a one-line notice so the founder knows the
artifact is at a v1 location (they may want to mv it under docs/):
"Read upstream artifact from legacy v1 path."
| File | New path | Legacy fallback |
|---|---|---|
| Validation canvas | <canvas-root>/validation-canvas.md |
validation-canvas.md (cwd root) |
| Assumption test plan | <rat-root>/assumption-test-plan.md |
rat/assumption-test-plan.md |
| Pitch deck | <pitch-root>/deck.html |
pitch/deck.html |
| Speaker notes | <pitch-root>/speaker-notes.md |
pitch/speaker-notes.md |
| Brand brief | <brand-root>/brand-brief.md |
brand-kit/brand-brief.md |
When present, parse each as input — the founder doesn't need to re-state what's already written down:
- Validation canvas (from
validation-canvas) — read the### Customer Segments,### Unique Value Proposition,### Revenue Streams,### Customer Pains,### Pain Relievers, and## Stress Testssections. The Stress Tests section is direct ammunition for grilling — surface those weaknesses unless the founder has explicitly retired them. Un-relieved Pains and un-created Gains in the VPC are also direct ammunition. - Assumption test plan (from
riskiest-assumption-test) — read## Top 3 Hypotheses,## Test Plan, and## Results. Confirmed results are evidence the founder can defend with; invalidated results that haven't propagated to the canvas are red flags. Pristine plans (no Results yet) indicate the founder skipped validation — see Step 1c below. - Pitch deck + speaker notes (from
pitch-deck) — parse the slide content for Problem, Solution, Market, Product, Business Model, Traction, Team, Competition, Ask. Usepitch-deck'sreferences/slide-contracts.mdanti-patterns as a starting probe list. - Brand brief (from
brand-workshop) — read the Positioning section (used by Slot 5 brand-strategist if active).
If none exist: ask the founder to provide a one-pager (or paste the deck / canvas into the conversation). Refuse to grill on a single sentence — the kill report would be all guesses. Minimum input: one paragraph each on Problem, Solution, ICP, GTM motion, and Team.
Step 1c — Iteration evidence check
Compare timestamps and content across the pipeline artifacts to detect a pristine pipeline (one that ran end-to-end without the canvas being revised after testing). This is a yellow flag, not a hard stop — but the panel should probe accordingly:
- If the validation canvas exists AND the assumption-test plan exists
AND
## Resultsin the RAT has populated rows: check whether the canvas's mtime is earlier than the latest Results entry in the RAT plan. Earlier mtime means the canvas was NOT updated after testing. - If the canvas wasn't updated after RAT, surface as a yellow flag in the
kill report's new
## Iteration Evidencesection: "Canvas was not revised after assumption testing. Either the tests confirmed every belief (rare — be skeptical) or the founder is not closing the loop on what they learned. Probe accordingly." - If the assumption-test plan is missing entirely while the pitch
deck exists: large yellow flag. Pitch built without assumption testing
is sales theater. Surface in
## Iteration Evidence: "This pipeline shipped a pitch without testing assumptions. Treat every Traction claim as belief, not evidence." - If the validation canvas is missing while later artifacts exist: the founder may have compiled the pipeline manually. Surface as a flag that the kill-report can't cross-check beliefs against documented stress tests.
- Unconfirmed machine seed (red-ish flag). If
validation-canvas.mdstill carries the<!-- SEED:machine-inferred -->marker (the seed sentinelstartup-auditwrites; confirming the seed invalidation-canvasstrips it), the founder never completed confirm-inferred-seed mode — the canvas is an unconfirmed machine read of the codebase, not founder belief. Surface in## Iteration Evidence: "The canvas is an unconfirmed machine inference from the code — the founder never validated it. Treat every block as a code-derived guess, not a conviction; grill whether the founder actually holds the Problem / UVP / Unfair Advantage, or just shipped what the code implied." Probe the un-codeable blocks hardest. - Rubber-stamped seed (yellow flag). If the manifest records
source_mode: "existing-project"and thevalidation-canvasstep hasseeded: truewithiterations: 1(machine-seeded from code, never looped back after RAT), the founder may have confirmed the machine read without genuinely engaging. Surface in## Iteration Evidence: "This canvas was machine-seeded from the codebase and never revised after testing. A built product proves the Solution exists — not that the Problem, UVP, or Unfair Advantage are true. Probe those un-codeable beliefs hardest; the code could not evidence them." Precedence (marker dominates): ifvalidation-canvas.mdalso still carries the<!-- SEED:machine-inferred -->marker, classify as item 5 (State E, red), not item 6 — a present marker means confirm-inferred-seed mode never completed, so the seed was never actually rubber-stamped and the manifest'sseeded: trueis stale/desynced (manifest is a hint; the file wins). Absent a manifest, item 6 cannot fire (it needssource_mode+seeded). A marker-absent canvas with no manifest is treated as ordinary founder-authored — acceptable either way: the canvas was either never seeded (greenfield) or seeded-then-confirmed (the strip removed the marker), and both warrant founder-authored treatment.
The Iteration Evidence findings appear in a dedicated section in the
kill-report — see references/kill-report.md Section 7 (added in v2.0.0).
Step 2 — Classify the variant
Ask exactly one question and wait for the answer:
"Variant: (a) idea / pre-seed (no traction yet), (b) seed (early traction), (c) Series A+ (scaling)? This sets the bar for what counts as evidence."
If the user refuses to pick, default to seed and state the assumption verbatim. Variant tunes evidence thresholds, not panel composition.
Step 3 — Detect signals and resolve panel
Apply references/panel-resolution.md end-to-end:
- Detect signals (Phase A)
- Lock the fixed core (Phase B — 4 roles)
- Resolve slot 5 (Phase C — technical DD or brand-strategist)
- Inject specialists from triggers (Phase D)
- Apply symmetry rules (Phase E — forced specialists)
- Apply cap and trim if > 3 specialists (Phase F)
Step 4 — Show the panel before grilling
Output the panel summary block per Phase G of panel-resolution.md. The
user can challenge the panel ("drop X, add Y") before Round 1 starts. If the
user redirects, accept and re-trim — don't re-debate.
Phase 2: Grilling
Read references/round-structure.md and run one-shot mode end-to-end:
- Round 1 — Probe. Each panelist contributes one probe per startup-axis
they own. Per-probe shape and 60–100 word cap defined in
round-structure.md. - Round 2 — Forced steelman defense. The skill itself responds as the founder would using only evidence in the brief. Lethal probes that the brief credibly answers get downgraded; probes that survive stand.
- Round 3 — Synthesis.
@startup_strategistassembles the kill-report sections;@vc_partnerwrites the verdict.
Apply persona overlays from references/grill-overlay.md for every
panelist, including the universal grill posture (probes for failure, demands
evidence, states severity declaratively, names failure modes specifically,
closes with falsifiers).
Hard rule — Round 1 must surface at least one lethal-fixable or
lethal-unfixable read. If every probe is material or pass, the panel
was too soft. Re-run Round 1 with sharper posture, or — if the idea
genuinely has no lethal weakness — note it explicitly: "Round 1 surfaced no
lethal weaknesses. Re-running Round 1 with sharpened posture confirmed the
read."
Phase 3: Ship the kill report
Write <grill-root>/kill-report.md per references/kill-report.md (where
<grill-root> is resolved per Phase 1 Step 0.0; create the folder if
absent). All seven sections required, in order: Verdict / Lethal & Fixable /
Lethal & Unfixable / Material & Fixable / Diligence Asks / Panel / Iteration
Evidence.
Run the file's verifier checklist before presenting:
- All seven sections present in order
- Verdict label is one of the four canonical labels
- Lethal & Fixable has 2–3 items (no more, no fewer if verdict ≠
Pass) - Each lethal item has all five fields filled
- Suggested attacks are specific (named artifact / signal)
- Diligence Asks are evidence requests, not change-the-business actions
- No weakness appears in two severity sections
- Panel table lists every role that contributed in Round 1
- Iteration Evidence section reflects actual pipeline state (working dir + manifest): full / pristine / no-RAT / no-canvas / unconfirmed-seed / rubber-stamped-seed
If any box fails, fix before shipping. Then present the file with
present_files.
Phase 4: Offer interactive defense
The response after Phase 3 must end with the interactive-mode invitation
verbatim (or close variant — the prose can soften, the rule cannot drop).
See references/round-structure.md for the exact block.
If the founder picks a weakness and defends, run a defense round per
round-structure.md:
- Identify relevant panelists (1–2)
- Quote / summarize founder's defense
- Re-probe with new-evidence rule (vibes-only defenses rejected)
- Update the affected line item in
<grill-root>/kill-report.mdonly — frozen items stay frozen - Append the round to
<grill-root>/defense-log.md
A single weakness gets defended at most 3 times per session. After 3, the verdict stands.
Quality bars (skill-wide)
The skill must refuse to ship if any of these are true:
- No lethal section but verdict is
PassorPivot signal - More than 3 lethal-fixable items — re-rank, the bar drifted
- A weakness appears in two severity sections — pick one
- A probe in Round 1 has no falsifier — that's rhetoric, not grilling
- A steelman defense in Round 2 invents favorable facts not in the brief
- The interactive invitation is missing from the response after the report ships
- Theatrical hostility ("why would anyone fund this?") — name failure modes specifically or stay silent
Cross-Skill Integration
| Skill | When to use |
|---|---|
team-composer |
Instead of this skill when the user wants brainstorming, planning, or constructive review. After this skill when the kill report's Suggested attack lines need a multi-role workshop to scope. |
validation-canvas (our own) |
Upstream input. If the validation canvas exists (<canvas-root>/validation-canvas.md or legacy validation-canvas.md), this skill reads its Stress Tests section + un-relieved Pains + un-created Gains as direct grilling ammunition. After this skill when a Pivot signal verdict makes the founder rebuild their canvas. |
riskiest-assumption-test (our own) |
Upstream input. If the assumption-test plan exists (<rat-root>/assumption-test-plan.md or legacy rat/assumption-test-plan.md), this skill reads ## Top 3 Hypotheses and ## Results. The iteration-evidence check (Phase 1 Step 1c) yellow-flags pristine pipelines. After this skill when the kill report names assumptions the founder hasn't tested yet. |
pitch-deck (our own) |
Upstream input. If the pitch deck exists (<pitch-root>/deck.html or legacy pitch/deck.html), this skill probes the deck's required-slot answers. After this skill when the kill report demands a re-cut deck. |
brand-workshop (our own) |
Upstream input when slot 5 = @brand_strategist and the panel needs the brand brief's Positioning section as a reference. |
skill-evaluator (our own) |
When you want to audit this skill's rules end-to-end. Good targets: the verdict-vs-body consistency rule, the no-lethal-skip rule, the interactive-invitation rule. |
superpowers:brainstorming (if installed) |
Use before this skill when the user is still shaping the idea. Grilling a half-formed idea produces a kill report full of "not enough information" findings, which is worse than no kill report. |
Principle: this skill owns adversarial probing of a startup idea with a fixed-shape kill report as the deliverable. It does not build artifacts, does not improve ideas, does not assemble teams for general work. Hand off to the appropriate builder or thinker skill for everything else.
Graceful degradation: if no upstream artifact exists, this skill still runs from a one-pager. Quality of the kill report scales with the quality and specificity of the brief — garbage in, generic kill report out.