evolution
charter·1d agoChampion swap — tightening the charter
Why this change was made
The charter must require a 'cycleTimeboxAndCadence' field that forces drafters to specify the exact duration of one cycle, the minimum number of send/touchpoint events within that cycle, and the wall-clock deadline by which minimumExposure must be reached — preventing experiments from persevering indefinitely on near-zero data by making time and volume bounds explicit and enforceable from day one.
What changed
Before
# Charter
Draft a charter for the following concept.
## Concept
{{concept}}
## Task
Return a single JSON object with the fields below. No prose, no code fence.
### Required fields
- **concept** — name of the concept under test.
- **hypothesis** — a single falsifiable statement tied to one measurable user behaviour (e.g. "At least 30% of enrolled users will complete action X within 7 days"). Must name the behaviour, the metric, and the threshold.
- **goal** — the business outcome a confirmed hypothesis would validate.
- **autonomy** — always `"supervised"`.
- **budgetUSD** — positive integer.
- **killCriterion** — the specific measured outcome that ends the experiment (e.g. "fewer than 5% of users reach step X after 2 full cycles with valid data").
- **minimumExposure** — the minimum number of users who must complete the acquisition step before any cycle result is considered valid (e.g. `25`).
- **acquisitionGate** — one sentence naming (a) the specific channel that will deliver users, and (b) the concrete evidence that confirms the channel is live before any traffic is sent (e.g. "Paid search ad approved and impressions confirmed in dashboard before launch").
- **instrumentationGate** — one sentence naming every tracking mechanism required to evaluate the hypothesis and how each will be verified as active before launch (e.g. "Signup event fires in analytics; open-rate webhook confirmed via test send").
- **cycleZeroChecklist** — an array of binary readiness items, each with a `check` (string description) and `owner` (role responsible for confirming it). Every item must be marked PASS before cycle 0 begins. Example: `[{"check": "Acquisition channel is live and has delivered at least 1 real user", "owner": "Operator"}, {"check": "All hypothesis metrics are being recorded in the analytics dashboard", "owner": "Builder"}]`.
- **voidRule** — must be exactly: `"If any cycleZeroChecklist item is not PASS at cycle start, or if users who reached the measurement state are fewer than minimumExposure at cycle end, the cycle is VOID. A VOID cycle produces only a structured remediation plan naming the specific failed check and the corrective action. No persevere, pivot, or kill decision is permitted until a non-VOID cycle completes."`After
# Charter
Draft a charter for the following concept.
## Concept
{{concept}}
## Task
Return a single JSON object with the fields below. No prose, no code fence.
### Required fields
- **concept** — name of the concept under test.
- **hypothesis** — a single falsifiable statement tied to one measurable user behaviour (e.g. "At least 30% of enrolled users will complete action X within 7 days"). Must name the behaviour, the metric, and the threshold.
- **goal** — the business outcome a confirmed hypothesis would validate.
- **autonomy** — always `"supervised"`.
- **budgetUSD** — positive integer.
- **killCriterion** — the specific measured outcome that ends the experiment (e.g. "fewer than 5% of users reach step X after 2 full cycles with valid data").
- **minimumExposure** — the minimum number of users who must complete the acquisition step before any cycle result is considered valid (e.g. `25`).
- **cycleTimeboxAndCadence** — one sentence specifying: (a) the fixed wall-clock duration of a single cycle (e.g. "7 calendar days"), (b) the minimum number of product touchpoints or send events that must occur within that cycle for it to be non-void (e.g. "at least 3 digest emails sent"), and (c) the hard deadline by which minimumExposure users must have been acquired or the cycle is automatically void (e.g. "minimumExposure must be reached by end of day 3 of the cycle or the cycle is void"). Example: "Each cycle runs for exactly 7 calendar days; at least 3 digest sends must fire within the cycle; minimumExposure of 25 subscribers must be reached by end of day 3 or the cycle is automatically VOID."
- **acquisitionGate** — one sentence naming (a) the specific channel that will deliver users, (b) the concrete evidence that confirms the channel is live before any traffic is sent, and (c) the projected daily acquisition rate that makes reaching minimumExposure within the cycleTimebox plausible (e.g. "Paid search ad approved and impressions confirmed in dashboard before launch, with a projected 5 signups/day based on a $20/day budget at historical CPL").
- **instrumentationGate** — one sentence naming every tracking mechanism required to evaluate the hypothesis and how each will be verified as active before launch (e.g. "Signup event fires in analytics; open-rate webhook confirmed via test send; return-visit pixel confirmed via synthetic session").
- **cycleZeroChecklist** — an array of binary readiness items, each with a `check` (string description) and `owner` (role responsible for confirming it). Every item must be marked PASS before cycle 0 begins. Must include at minimum: (1) acquisition channel live and delivering real users, (2) all hypothesis metrics instrumented and verified, (3) minimum touchpoint cadence is technically scheduled and confirmed, (4) projected acquisition rate makes minimumExposure reachable within the cycleTimebox. Example: `[{"check": "Acquisition channel is live and has delivered at least 1 real user", "owner": "Operator"}, {"check": "All hypothesis metrics are being recorded in the analytics dashboard", "owner": "Builder"}, {"check": "Touchpoint cadence (e.g. email sends) is scheduled and at least 1 test send confirmed delivered", "owner": "Builder"}, {"check": "Projected daily acquisition rate is sufficient to reach minimumExposure before the cycleTimebox acquisition deadline", "owner": "Planner"}]`.
- **voidRule** — must be exactly: `"If any cycleZeroChecklist item is not PASS at cycle start, or if users who reached the measurement state are fewer than minimumExposure at cycle end, or if the minimum number of product touchpoints specified in cycleTimeboxAndCadence did not occur, the cycle is VOID. A VOID cycle produces only a structured remediation plan naming the specific failed check and the corrective action. No persevere, pivot, or kill decision is permitted until a non-VOID cycle completes."`