A3 — Cross-Reference Audit (MIZOKICloudRun completion run)
Auditor: Subagent A3 (read-only). Date: 2026-08-08 (UTC).
Repo state: /home/user/MIZOKICloudRun, branch claude/mizoki-completion-run-4ms74o @ 6ef0275 (== origin/main).
Live target: https://mizoki3.com (fetched 2026-08-08 ~18:33–18:35 UTC via curl through the agent proxy; server Google Frontend, last-modified: Fri, 07 Aug 2026 23:13:48 GMT on /signal/measurement — consistent with the 2026-08-07 content-wave deploy).
Method note: every route audited is served by send_from_directory in # MIZ OKI 3.5/app.py (lines 434–494, 887–894) — raw static file serves, no templating — so raw-byte hash comparison is valid and was used as the primary method; headline/§-string checks were used as secondary confirmation. A methodological hazard hit twice during the banned-string sweep: grep -E ".{60}term.{60}" (fixed context padding) silently misses matches near line boundaries. All banned-term results below come from the corrected plain grep -in sweep.
1. drop/signal-story-bank-v1.1.md vs # MIZ OKI 3.5/docs/marketing/signal-story-bank.md
Verdict: IDENTICAL (byte-for-byte).
diff -uoutput: empty, exit 0. Zero hunks of any classification.- md5 both files:
17ca73b7db610171158b205e72745279(9,481 bytes each). - Neither file is newer/superset of the other — both were written in the same commit
05bacb7(2026-08-07, "marketing: signal net-yield content wave — story bank v1.1, positioning doc, listing copy draft, briefing act proposal, roadmap card, claim-ledger QA rules"). The drop copy was created in that commit; the docs copy pre-existed as v1.0 (at8c49062) and was upgraded to v1.1 in the same commit.
v1.1 version stamp — VERIFIED in both copies
Line 1 (both files): # Signal Intelligence — Customer Story Bank v1.1
Line 2 (both files): *…All numbers illustrative until replaced by verified pilots. v1.1 adds Stories 7–8 (net yield, cold start) per the Shopify/Net Contribution positioning.*
The five governing rules — present in both, ZERO wording drift (byte-identical)
Quoted from ## The rules (non-negotiable) (drop copy lines 5–9 == docs copy lines 5–9):
**Label honestly.**— "Every story is a 'composite scenario, illustrative numbers' until a real customer signs off on a named case study. Never invent company names, logos, or quotes attributed to people."**One grammar, every story:**— "their question → the quiet test → what the ledger showed → what changed."**Translate, don't define.**— includes the v1.1 addition "Net contribution = 'what an order actually nets after everything it costs you.'"**Preview capabilities stay preview.**— v1.1 wording: "Intent prediction (Story 6), net-yield bidding (Story 7), and cold-start seeding (Story 8) are told with in-development framing until their cells ship. Research-backed approaches cite the research; published results from other companies (e.g., Airbnb's synthetic-data metrics) are NEVER presented as ours."**Never a guaranteed outcome.**— "Stories end in decisions and receipts, not promised percentages for the listener."
v1.0 → v1.1 lineage (context, not drift between the two audited copies)
git diff 8c49062 HEAD -- '# MIZ OKI 3.5/docs/marketing/signal-story-bank.md' = 23 insertions / 7 deletions:
- Version stamp v1.0 → v1.1 (title + intro sentence).
- Rule 3: added the "Net contribution =" translation (substantive rule extension).
- Rule 4: rewritten from "Intent prediction stories are told in future tense … until Cells 28/33/34/35 are live" to the broader Story-6/7/8 + never-present-others'-results wording (substantive rule change — this is where the Airbnb-metrics ban entered the rules).
- Added Story 7 (net yield — PREVIEW) and Story 8 (cold start — PREVIEW) in full (story additions).
- Placement map: +2 rows (signal.html roadmap/preview section; Shopify app listing), briefing act row reworked to PROVE→PROFIT→ANTICIPATE (substantive placement change).
- Upgrade path: "six composites" → "eight composites" (consistency edit).
2. drop/mizoki-shopify-net-yield-positioning.md vs # MIZ OKI 3.5/docs/marketing/mizoki-shopify-net-yield-positioning.md
Verdict: IDENTICAL (byte-for-byte).
diff -uoutput: empty, exit 0. Zero hunks.- md5 both files:
ee77b02af6059e38aaae9216cc3a7f83(8,044 bytes each). - Both written by the same commit
05bacb7(2026-08-07). Title carriesv1.0of the positioning doc in both.
Claim ledger — ZERO divergence (rows identical by byte identity; verified by reading both)
The §2 table "Claim ledger (enforce in ALL copy — extends content_qa rules)" has 9 rows, identical in both copies (drop lines 16–26):
| Claim | Status | How to say it |
|---|---|---|
| Caused-vs-anticipated ledger, holdouts, ghost bids, geo | Core design; demo live | Present tense, illustrative numbers |
| SRPVDAL 7-stage, DEL score, autonomy ladder | Live platform | Present tense |
| Net-contribution bidding via CAPI / Value Rules | Buildable now — not yet shipped | "In development · preview" until first pilot |
| 15-minute autonomous cycles; <1s streaming | Design targets | Label as design targets, never observed performance |
| Cold-start synthetic seeding | Design, research-backed | "Our approach follows published work by Airbnb/Amazon" |
| KL divergence 4.95→0.66 / 0.04 | Airbnb's published results — NOT ours | Cite as research context only; NEVER as Mizoki performance |
| "Quokka Swarm Optimization" inspector | Unverified novelty | Do not use until validated; say "uncertainty-based validation" |
| 25–40% return rates in apparel | Industry statistic | Cite as industry data, not customer result |
| Intention graph (IGC-RC / COSMO-style) | ORACLE preview scope | Preview framing, married to the ledger rule |
Banned-clause line (line 28) identical in both: presenting any row above its status; the Airbnb numbers as ours; "autonomous profit machine" without the autonomy-ladder caveat.
3. Repo vs LIVE (https://mizoki3.com) — 9 pages
All nine fetches returned HTTP 200 at the primary clean route (no fallback paths needed; app.py also exposes .html aliases). Primary comparison: md5 of raw fetched bytes vs the repo file. All nine match exactly.
| Route (live) | Repo file (# MIZ OKI 3.5/…) |
HTTP | Bytes (live=repo) | md5 (identical both sides) | Verdict |
|---|---|---|---|---|---|
/ |
index.html |
200 | 80,479 | 1b5f3a8338d097552c96f86ee18c1548 |
LIVE==REPO |
/signal |
signal.html |
200 | 31,340 | b7918441182faea6e39424077010b89f |
LIVE==REPO |
/signal/thresholds |
signal-thresholds.html |
200 | 21,355 | e12a0afb1e49b4ecc454f8f347d00192 |
LIVE==REPO |
/signal/budget |
signal-budget.html |
200 | 19,885 | cbdcd34ca39e9e1096f952f9166d59d7 |
LIVE==REPO |
/signal/creative |
signal-creative.html |
200 | 17,730 | b4d22ac9105109bb6da75ec563d86b76 |
LIVE==REPO |
/signal/audiences |
signal-audiences.html |
200 | 18,853 | 1d55c799fbe8ecf9c48ca743470cc699 |
LIVE==REPO |
/signal/measurement |
signal-measurement.html |
200 | 18,220 | c19ab8b963b8bddc1122ff898888fa5d |
LIVE==REPO |
/shopify |
shopify.html |
200 | 13,585 | 35579e9b30e945004c6ce1cd6c95fe0e |
LIVE==REPO |
/blog/doorman-problem |
blog/doorman-problem.html |
200 | 10,980 | b0cbb319803fff5c4b97201a97699681 |
LIVE==REPO |
Secondary confirmation — title/h1 served live (identity of content, not just hash):
- / — "MIZOKI3 — A Nervous System for Your Business" / h1 "A nervous system for your business."
- /signal — h1 "Prove which spend caused the customer."
- /signal/thresholds — h1 "Below the threshold, spend buys noise."
- /signal/budget — h1 "Noise cannot move money."
- /signal/creative — h1 "Creatives decay. Measure it before it costs you."
- /signal/audiences — h1 "Target who changes their mind — not who was coming anyway."
- /signal/measurement — h1 "One clock. One identity. One ledger."
- /shopify — h1 "Other tools optimize the number your ad platform reports. / Mizoki optimizes the number your bank account reports." (§01–§06 all present in stripped text)
- /blog/doorman-problem — h1 "The Doorman Problem: what your retargeting dashboard can't tell you"
There is no repo copy newer than live and no live copy newer than repo for these nine surfaces: the deployed revision serves exactly the bytes at 6ef0275.
3a. LIVE /signal/measurement — machinery-claim inventory (verbatim live sentences)
All nine listed machinery claims appear on the live page. Per-claim labeling status on the live rendering:
| # | Machinery claim | Live sentence (verbatim) | Per-claim label on live? |
|---|---|---|---|
| 1 | House attribution recompute | §01: "Every conversion is re-attributed under a single house standard — 7-day click, 1-day view — regardless of which platform reported it, with empirical lag profiles per source and a nightly recompute." | None inline (blanket §03 note only) |
| 2 | SHA-256 stitching | §01: "Identities stitch across platforms through salted SHA-256 hashes of first-party identifiers — matching without exposure. Raw identifiers never leave the boundary; deterministic identity is required for causal math." | None inline |
| 3 | Drift monitor >20% / 3 days | §01 spec bullet: "Drift monitor — alerts when platform-reported and model-attributed revenue diverge past 20% for three consecutive days (operating default)" | YES — inline "(operating default)" |
| 4 | Weight back-propagation to Meta/Google | §01 spec bullet: "Weight back-propagation — corrected attribution flows to Meta and Google bid systems, so their optimizers learn from honest numbers" | None inline (adjacent bullet has the label; this one does not) |
| 5 | Enhanced Conversions | §02 table row: "Enhanced Conversions | hashed first-party data to Google |
| 6 | Meta CAPI 48h dedup | §02 table row: "Meta Conversions API | server-side events beside the pixel |
| 7 | AEM 8-event schema | §02 table row: "Aggregated Event Measurement | iOS signals under App Tracking Transparency |
| 8 | GA4 Measurement Protocol | §02 table row: "GA4 Measurement Protocol | server-side analytics events |
| 9 | Offline conversions GCLID/WBRAID/GBRAID 90-day | §02 table row: "Offline conversions | closed-won revenue back to the click |
Page-level framing on live (the only umbrella over claims 1–2 and 4–9), §03 note, verbatim:
"Stated plainly: mechanisms on this page are operating machinery, and the windows and thresholds shown are operating defaults — not promised outcomes. Ledger figures shown anywhere on this site are illustrative until they are your own — produced by your experiments, on your data, with the confidence intervals printed."
Findings/flags on the measurement page: - The word "Preview" appears zero times on live /signal/measurement (grep count 0). No machinery row carries a preview or design-target tag. - The blanket note affirmatively asserts, present tense, that "mechanisms on this page are operating machinery." Under the truth discipline ("present-tense deployment claims for unbuilt capabilities" are banned), this sentence is a deployment-status claim for all nine mechanisms, including the five platform writeback/ingest rails (Enhanced Conversions, Meta Conversions API, AEM, GA4 MP, offline conversion upload) and the Meta/Google weight back-propagation. Whether those rails are in fact built/live is outside what this audit measured (no code-to-claim verification was in scope for A3); flagging for cross-check against build state (Cell 35 / connector reality). If any rail is unbuilt, the violating sentence is the §03 blanket note plus the unlabeled §02 rows, exactly as quoted above. - Contrast: the sibling claim ledger (audited doc §2) requires "Net-contribution bidding via CAPI / Value Rules → 'In development · preview'". The measurement page's rails table describes conversion measurement plumbing, not net-contribution bidding writeback, so it is not automatically the same ledger row — but the same rails are the delivery mechanism named in that row, which strengthens the case for the cross-check.
3b. Banned-string sweep on all 9 live pages (plain grep -in, then per-hit context)
| Banned item | Hits | Judgment with context |
|---|---|---|
| "mind-reading" / "mind reading" | 2 | Both are negations — PASS. shopify.html:211 "anticipatory modeling of consented behavior, not mind-reading. By house rule, acting on a prediction always runs against a held-out comparison"; signal.html:416 "Stated plainly: this is anticipatory modeling of consented behavior, not mind-reading, and it is in development rather than deployed." The term appears only inside the discipline's own denial framing. |
| "guaranteed" / "guarantee*" | 2 | shopify.html:187 "Never a guaranteed outcome — always a decision with a receipt and a rollback token." — negation, the rule itself; PASS. signal-creative.html:270 "Creative tests run as bandits — Thompson sampling by default, upper-confidence-bound where regret guarantees matter" — technical bandit-literature term (UCB regret bounds), not a promised customer outcome; PASS with note (it is the banned stem in an affirmative sentence; a strict lexical linter would flag it, a semantic read clears it). |
| "Quokka Swarm" / "Quokka" | 0 | PASS — absent from all nine pages. |
| "4.95" | 0 | PASS — absent. |
| "0.66" | 0 | PASS — absent. |
| "0.04" | 0 | PASS — absent (no numeric hits at all, so no surrounding-text judgment needed). |
| Supplemental: "Airbnb", "KL diverg", "synthetic" | 0 | The Airbnb research is not referenced on any live page in any form — the KL-figure misattribution risk has no live surface. |
3c. Preview-framing distribution on live (supplemental to the banned sweep)
- live /signal — carries the required framing: "…belongs to the anticipatory intent capability in §06 — Preview · in development — and it's marked that way for a reason" (line 355); net-yield card: "Stated plainly: net-yield pricing and writeback are in development, not deployed. The Preview label on this card flips only after a real pilot…" (line 433); §06 note "not mind-reading, and it is in development rather than deployed. Signal uses no microphone or audio signals of any kind — not now, not on the roadmap." (line 416). 6 "preview" occurrences total.
- live /shopify — net-yield story §02 labeled "composite scenario · illustrative numbers" in the § heading; ledger card tagged "composite · illustrative"; future-tense "When net-yield bidding ships, the bidding signal switches…"; "Stated plainly: net-yield pricing and bidding are Preview · in development — nothing here claims they are deployed, and the label flips only after a real pilot writes verified numbers. Returns of 25–40% in apparel are an industry statistic, not a customer result (composite scenario)."; roadmap §05 header tag "Prove → Profit → Anticipate Preview · in development" and closer "Stated plainly: both cards above are Preview · in development, not deployed." Doorman story §03 carries "(illustrative)" on both the 8x and 1.4x figures. Anticipatory-intent and net-yield claims on /shopify and /signal comply with the preview-framing rule as rendered live.
- live / (index) and /blog/doorman-problem — 4 and 3 illustrative/composite/development markers respectively; no anticipatory/net-yield present-tense claims found unlabeled.
- live /signal/measurement — the one surface with zero "Preview" strings; see 3a flag.
4. drop/ folder hygiene
git ls-files drop/ → all 6 files are git-tracked (nothing untracked, nothing ignored):
| File | Size | Classification | Provenance |
|---|---|---|---|
drop/signal-story-bank-v1.1.md |
9,481 B | Input to this run (comparison #1; governs all copy per truth discipline) | committed 05bacb7 2026-08-07 |
drop/mizoki-shopify-net-yield-positioning.md |
8,044 B | Input to this run (comparison #2; claim ledger source) | committed 05bacb7 2026-08-07 |
drop/claude-code-prompt-signal-net-yield-build-v2.md |
8,460 B | Prior-run prompt — the fenced mission spec (staged from Master Checklist PART B, 2026-08-07) that produced the current content wave; not a comparison input | committed 05bacb7 2026-08-07 |
drop/claude-code-prompt-command-center-maturity-program.md |
13,624 B | Prior-run prompt — owner runbook, Command Center UI maturity program (validated vs live tree 2026-08-03) | last touched 69dc0cf |
drop/claude-code-prompt-gemini-kg-drain-hardening.md |
14,421 B | Prior-run prompt — Gemini KG drain hardening self-audit prompt, filed 2026-08-05 | last touched 69dc0cf |
drop/signal-field-notes-section.html |
6,322 B | Prior-run build asset — HTML fragment for signal.html §Field Notes (referenced by story-bank placement map: "Card grid (built — signal-field-notes-section.html)"); from the 2026-08-03 signal rollout | mtime Aug 5; tracked |
No stray/junk files; the folder is a clean mix of two governing marketing docs (mirrored into docs/marketing/), three owner prompt/runbook files, and one already-consumed HTML fragment.
Completion gate
- Read-only audit; no repo files created/edited/deleted. Only writes: this report + fetched copies under scratchpad (
…/scratchpad/live/). python3 scripts/claude_memory.py check --strict→ "memory system is structurally valid".- States distinguished: everything above is measured (diff/hash/grep on repo @ 6ef0275 and live fetches at 2026-08-08 ~18:34 UTC). The one item NOT measured: whether the /signal/measurement rails are actually built — flagged, not asserted, either way.