GTM Decision
An experiment ended. Your job: gather honest results, judge them against the rules that
were locked before the experiment started, and record the human's final call.
Mode: with USECASEIFY_API_KEY set, report the outcome to the registry (connected
mode — this closes the experiment's public page and unlocks your next enrichment).
Without a key, everything below works fully offline.
Step 1 — Locate the experiment
Find gtm/exp-*/criteria.lock.json for the running experiment (if several, ask which).
Read the locked rules, primary metric, minimum evidence, and duration from it — the
locked file, not from memory, not from BRIEF.md edits made after the start.
Step 2 — Collect results (real data only)
Open the experiment's TASKS.md → "Results to report" — the exact quantitative fields
this experiment committed to measure.
For each field: read it from the real data source the implementation set up (saved SQL
query, export script, analytics view, database). If a value cannot be read from real
data, set it to "unknown". Never estimate, extrapolate, or fill in a plausible number —
a fabricated number poisons the verdict.
Then ask the founder: the qualitative questions from TASKS.md, whether anything unexpected
or any implementation issue could distort the data, and a one-paragraph summary in their
own words.
Step 3 — Confirm before judging
Show a table of every value and where it came from. Get an explicit yes.
(Connected mode: this is also what gets published — aggregate numbers only, never
customer-identifying data, never secrets.)
Step 4 — Judge against the locked rules
First run the data-quality checklist (deterministic — do this before any judgment):
Then decide — exactly one of:
- continue — evidence supports the assumption; the next investment is justified
- iterate — the underlying problem/demand looks real, but the approach, message,
price, or implementation needs to change
- kill — evidence does not support continued investment in this assumption
Rules of judgment:
- Judge against the LOCKED rules first. If results are ambiguous between two verdicts,
pick the one the locked rules support and say why.
- Confidence is
low / medium / high — qualitative only. Any flag above caps it
at medium; a severe flag (missing_primary_metric, insufficient_sample,
ended_too_early) forces low. No exceptions, including for exciting results.
- Use ONLY numbers present in the collected results, quoted verbatim. Never compute
figures that were not reported. Never say "market validated".
- List evidence for and against the verdict, and at least one limitation.
- Recommend exactly ONE next experiment (2–3 sentences).
Step 5 — Deliver and record the final call
- Write
gtm/exp-NNN/DECISION.md per docs/format.md: the verdict large and unsoftened,
confidence, rationale against the locked rules, results table, evidence both ways,
limitations + data-quality flags, what it means in plain business language, the one
next experiment, and next actions for human and agent.
- The founder decides, not you. Ask: accept the recommendation, or override it?
An override requires a one-line reason, recorded in DECISION.md next to the AI
recommendation — both stay on the record.
- Connected mode:
POST {base}/api/v1/report with the results, verdict, final call,
and override reason if any — this closes the public page honestly (an abandoned
experiment can also be closed as abandoned; that too is honest data). (If the server is unreachable, skip the report
and note it — the local DECISION.md remains the record.)
- Update
experiment.json status to completed, suggest committing gtm/.
- If CONTINUE or ITERATE: offer
/gtm-next-experiment for the follow-up. If KILL:
acknowledge plainly — a clean kill is a successful experiment; it just saved weeks of
misdirected work.
1---2name: gtm-decision3description: Close a running GTM experiment — collect the results defined in gtm/exp-NNN/TASKS.md from real data only, judge them against the criteria locked at start, and write DECISION.md with an honest Continue / Iterate / Kill verdict. Use when the user runs /gtm-decision or says an experiment has ended.4---56# GTM Decision78An experiment ended. Your job: gather honest results, judge them against the rules that9were locked **before** the experiment started, and record the human's final call.1011**Mode:** with `USECASEIFY_API_KEY` set, report the outcome to the registry (connected12mode — this closes the experiment's public page and unlocks your next enrichment).13Without a key, everything below works fully offline.1415## Step 1 — Locate the experiment1617Find `gtm/exp-*/criteria.lock.json` for the running experiment (if several, ask which).18Read the locked rules, primary metric, minimum evidence, and duration from it — **the19locked file, not from memory, not from BRIEF.md edits made after the start.**2021## Step 2 — Collect results (real data only)2223Open the experiment's `TASKS.md` → **"Results to report"** — the exact quantitative fields24this experiment committed to measure.2526For each field: read it from the real data source the implementation set up (saved SQL27query, export script, analytics view, database). **If a value cannot be read from real28data, set it to `"unknown"`. Never estimate, extrapolate, or fill in a plausible number** —29a fabricated number poisons the verdict.3031Then ask the founder: the qualitative questions from TASKS.md, whether anything unexpected32or any implementation issue could distort the data, and a one-paragraph summary in their33own words.3435## Step 3 — Confirm before judging3637Show a table of every value and where it came from. Get an explicit yes.38(Connected mode: this is also what gets published — aggregate numbers only, never39customer-identifying data, never secrets.)4041## Step 4 — Judge against the locked rules4243First run the **data-quality checklist** (deterministic — do this before any judgment):4445- [ ] `no_quantitative_data` — no numeric results at all46- [ ] `missing_primary_metric` — fields needed for the primary metric are missing/unknown47- [ ] `insufficient_sample` — largest relevant count below the locked minimum sample48- [ ] `ended_too_early` — ran less than half the locked duration49- [ ] `self_reported_only` — only qualitative, self-reported evidence5051Then decide — exactly one of:5253- **continue** — evidence supports the assumption; the next investment is justified54- **iterate** — the underlying problem/demand looks real, but the approach, message,55 price, or implementation needs to change56- **kill** — evidence does not support continued investment in this assumption5758Rules of judgment:5960- Judge against the LOCKED rules first. If results are ambiguous between two verdicts,61 pick the one the locked rules support and say why.62- **Confidence** is `low` / `medium` / `high` — qualitative only. Any flag above caps it63 at `medium`; a severe flag (`missing_primary_metric`, `insufficient_sample`,64 `ended_too_early`) forces `low`. No exceptions, including for exciting results.65- Use ONLY numbers present in the collected results, quoted verbatim. Never compute66 figures that were not reported. Never say "market validated".67- List evidence **for and against** the verdict, and at least one limitation.68- Recommend exactly ONE next experiment (2–3 sentences).6970## Step 5 — Deliver and record the final call71721. Write `gtm/exp-NNN/DECISION.md` per `docs/format.md`: the verdict large and unsoftened,73 confidence, rationale against the locked rules, results table, evidence both ways,74 limitations + data-quality flags, what it means in plain business language, the one75 next experiment, and next actions for human and agent.762. **The founder decides, not you.** Ask: accept the recommendation, or override it?77 An override requires a one-line reason, recorded in DECISION.md next to the AI78 recommendation — both stay on the record.793. *Connected mode:* `POST {base}/api/v1/report` with the results, verdict, final call,80 and override reason if any — this closes the public page honestly (an abandoned81 experiment can also be closed as `abandoned`; that too is honest data). *(If the server is unreachable, skip the report82 and note it — the local DECISION.md remains the record.)*834. Update `experiment.json` status to `completed`, suggest committing `gtm/`.845. If CONTINUE or ITERATE: offer `/gtm-next-experiment` for the follow-up. If KILL:85 acknowledge plainly — a clean kill is a successful experiment; it just saved weeks of86 misdirected work.