SITE A/B/C TEST — DESIGN FIX: implementation report

Date: 2026-08-22 · Lane: site-abc-test-fix (5o8sng) · Branch: claude/site-abc-test-design-5o8sng Spec of record: SITE A/B/C TEST — DESIGN FIX r1.0 (owner-issued design spec; was "not yet implemented") State on merge: implemented — NOT deployed, NOT live. The marketing site ships only via an owner-dispatched deploy-homepage.yml run with the typed APPROVED token (CONSTITUTION III.1); nothing in this change alters production until that dispatch happens.

1. What the spec found, and what the tree actually held

The spec's three defects were checked against the tree before building (rule 01):

Spec claim Tree reality
§1.1 all three variants indexed (index,follow, distinct canonicals) Partly stale: /marketing was index,follow + own canonical; /media had own canonical and no robots meta (indexable by default); /signal was noindex, nofollow ("IN BUILD — flip at owner-approved launch"). The confounded-assignment defect stands regardless: traffic reaches the three URLs by search/nav intent, not randomization.
§1.2 every CTA a bare mailto: with no event and no variant attribution Confirmed — 7 bare mailto CTAs across the three landings (3 distinct destination addresses), zero outcome instrumentation of any kind.
§1.3 three arms likely underpowered No analytics exist to size it — which is itself defect §1.2. Resolved structurally (see §4: dark-mode baseline collection before any arming decision).

2. What was built

Canonical choice (checklist item 1): /signal — the spec's own worked example, the product name, and the URL already carrying five sub-pages in the sitemap.

3. Verification (all measured in this session, on this branch)

4. Arming path (deliberately not done here)

  1. Owner dispatches a deploy of this merge (APPROVED) → index hygiene + instrumentation go live, test still dark; baseline rates start accruing in Cloud Logging.
  2. After ≥14 days: fill the pre-registration's §6 fields from measured baselines (abtest_stats.py power); if the arithmetic says the test can't resolve in the pages' stable lifetime, don't run it (spec §7) — the instrumentation still ends the unmeasurable-CTA defect.
  3. To arm: add MIZOKI_ABTEST_MODE=on to the workflow's --set-env-vars list (protected path ⇒ human-review PR; the list REPLACES, so a hand-set flag would be wiped by the next dispatch) and dispatch again. Weekly SRM per the pre-registration.

P-5 CLOSED 2026-09-15 as superseded by docs/product/ABC_NOT_RUN_DECLARATION.md (owner ruling 2026-09-15, docs/reports/OWNER_RULINGS_2026-09-15_REGISTER_CLOSEOUT.md, P-5): the test was declared not run by absence of evidence, so there is no look-and-approve left to take. The dark instrumentation ships with whichever homepage dispatch comes next; MIZOKI_ABTEST_MODE stays unset.

5. Owner follow-ups surfaced (not in this change's scope)

No figure in this report upgrades any claim label; the power numbers are illustrative scenarios until the pre-registration's §6 holds measured values (TRUTH.md).

← All docsView source on GitHub →