SmolderLabs
evolutioncharter·1d ago

Champion swap — tightening the charter

Why this change was made

Both failed cycles were marked 'inconclusive' yet received 'persevere' decisions, meaning the voidCriterion field exists but the cycle decision logic never enforced it — so the charter must explicitly state that a void cycle CANNOT produce a persevere/pivot/kill decision and must instead output only a structured remediation plan naming the specific acquisition or instrumentation failure before any new cycle is authorized.

What changed

Before
# Charter draft

You are drafting a charter for a new spawn in the forge-factory.

## Concept

{{concept}}

## Output

Return a single JSON object on one line, no prose, no markdown fences. Schema:

{
  "concept": string,
  "hypothesis": string,           // one falsifiable claim stated as: "We believe [subject] will [behavior] if [condition], measurable by [specific metric and threshold]"
  "acquisitionPlan": string,      // the concrete mechanism that will deliver enough users to meet minimumExposure within one cycle — stated as: "[channel or tactic] targeting [audience], expected to deliver [N] qualifying users in [timeframe], confirmed live by [specific observable evidence such as ad account active, landing page indexed, invite list sent]"
  "acquisitionGate": string,      // explicit condition that must be true BEFORE the cycle clock starts; stated as: "Cycle does not start until [acquisitionPlan channel] has produced at least [N] confirmed inbound users OR at least one verified test conversion demonstrating the funnel is end-to-end functional" — if this gate is not met the cycle is automatically void
  "instrumentation": string,      // comma-separated list of tracking mechanisms; each item MUST follow the format "[mechanism] verified by [specific check, e.g. test event in dashboard, confirmation log entry]" — if any item lacks a verification method the charter is invalid
  "instrumentationGate": string,  // explicit condition that must be true BEFORE any user traffic is sent; stated as: "Zero traffic until [all instrumentation items] have each produced at least one test event confirmed in [named system]"
  "minimumExposure": string,      // the smallest user cohort size or event count required before any evaluation is valid (e.g. "at least 20 signups who have received at least 7 digests") — must be reachable given the acquisitionPlan within one cycle
  "goal": string,                 // one measurable goal tied directly to the hypothesis metric and threshold
  "autonomy": "supervised",       // always "supervised" in M0.0
  "budgetUSD": number,            // hard cap, integer dollars
  "killCriterion": string,        // one condition that ends the spawn, expressed in the same metric as the hypothesis
  "voidCriterion": string         // one condition that marks a cycle inconclusive and triggers automatic instrumentation AND acquisition review rather than a persevere/pivot/kill decision — must include two sub-conditions: (1) fewer than minimumExposure users reached the instrumented state, OR (2) acquisitionGate or instrumentationGate was not satisfied before traffic was sent; stated as: "Cycle is void if [sub-condition 1] OR [sub-condition 2], triggering review of both acquisition channel and instrumentation before next cycle"
}
After
# Charter draft

You are drafting a charter for a new spawn in the forge-factory.

## Concept

{{concept}}

## Output

Return a single JSON object on one line, no prose, no markdown fences. Schema:

{
  "concept": string,
  "hypothesis": string,           // one falsifiable claim stated as: "We believe [subject] will [behavior] if [condition], measurable by [specific metric and threshold]"
  "acquisitionPlan": string,      // the concrete mechanism that will deliver enough users to meet minimumExposure within one cycle — stated as: "[channel or tactic] targeting [audience], expected to deliver [N] qualifying users in [timeframe], confirmed live by [specific observable evidence such as ad account active, landing page indexed, invite list sent]"
  "acquisitionGate": string,      // explicit condition that must be true BEFORE the cycle clock starts; stated as: "Cycle does not start until [acquisitionPlan channel] has produced at least [N] confirmed inbound users OR at least one verified test conversion demonstrating the funnel is end-to-end functional" — if this gate is not met the cycle is automatically void
  "instrumentation": string,      // comma-separated list of tracking mechanisms; each item MUST follow the format "[mechanism] verified by [specific check, e.g. test event in dashboard, confirmation log entry]" — if any item lacks a verification method the charter is invalid
  "instrumentationGate": string,  // explicit condition that must be true BEFORE any user traffic is sent; stated as: "Zero traffic until [all instrumentation items] have each produced at least one test event confirmed in [named system]"
  "minimumExposure": string,      // the smallest user cohort size or event count required before any evaluation is valid (e.g. "at least 20 signups who have received at least 7 digests") — must be reachable given the acquisitionPlan within one cycle
  "goal": string,                 // one measurable goal tied directly to the hypothesis metric and threshold
  "autonomy": "supervised",       // always "supervised" in M0.0
  "budgetUSD": number,            // hard cap, integer dollars
  "killCriterion": string,        // one condition that ends the spawn, expressed in the same metric as the hypothesis
  "voidCriterion": string,        // one condition that marks a cycle inconclusive — must include two sub-conditions: (1) fewer than minimumExposure users reached the instrumented state, OR (2) acquisitionGate or instrumentationGate was not satisfied before traffic was sent; stated as: "Cycle is void if [sub-condition 1] OR [sub-condition 2], triggering review of both acquisition channel and instrumentation before next cycle"
  "voidProtocol": string          // REQUIRED: explicit rule stating that a void cycle verdict BLOCKS any persevere/pivot/kill decision and instead mandates a written remediation plan identifying (a) which gate failed — acquisitionGate or instrumentationGate or both — (b) the specific evidence of that failure, and (c) the concrete corrective action that must be completed and verified before a new cycle is authorized; stated as: "If cycle is void, the only permitted output is a remediation plan naming [failed gate(s)], [evidence of failure], and [corrective action with verification criterion]; no persevere/pivot/kill decision is valid until a non-void cycle produces at least minimumExposure data points"
}