A1 — Site & Content Audit (MIZOKICloudRun marketing site)

Auditor: Subagent A1 (read-only) · Date: 2026-08-08 · Tree: branch claude/mizoki-completion-run-4ms74o == origin/main @ 6ef0275 Site root: /home/user/MIZOKICloudRun/# MIZ OKI 3.5/ Governance read: TRUTH.md · .claude/rules/website-governance.md · docs/marketing/signal-story-bank.md (five rules) · scripts/content_qa.py


0. content_qa.py verdict (run by me, verbatim)

$ python3 scripts/content_qa.py
CONTENT QA OK — 12 scoped files clean (banned strings, preview framing, number labels, §-sequence)
EXIT_CODE=0

$ python3 scripts/content_qa.py --self-test
… 11/11 seeded violations CAUGHT · clean sample: 0 finding(s)
SELF-TEST PASS — the gate fires
SELFTEST_EXIT=0

Gate scope (SCOPE_FILES): signal.html, signal-thresholds.html, signal-budget.html, signal-creative.html, signal-audiences.html, signal-measurement.html, demo.html, demo-signal.html, blog/doorman-problem.html, executive-briefing/js/data.js, shopify.html, docs/marketing/shopify-app-listing-copy.md. Gate rule classes: A banned strings (affirmative mind-reading/guaranteed, deployed-intent, deployed-net-yield, "Quokka Swarm", KL figures without Airbnb attribution, 15-minute/sub-second without design-target label) · B preview framing ("Preview · in development" in any section mentioning ORACLE/anticipatory/latent intent OR net yield/net contribution) · C number labels (%/× per section need illustrative/composite/operating default/operating parameter) · D §-sequence strictly 1..N on sec-mark pages (signal×6 + shopify). NOT gate-scoped but served: index.html, pricing.html, privacy.html, terms.html, blog/index.html + 3 older posts, demo-{capital,counsel,estate,nexus,risk}.html, executive-briefing/index.html + js/app.js + js/guide.js. My scan applied the same rule classes to all of these (findings below).


1. Routing map verified (app.py)

app.py (72 KB) serves every pretty URL as a dual route: /signal/thresholds + /signal-thresholds.html → signal-thresholds.html (same pattern for budget/creative/audiences/measurement, lines 464–489), /shopify (491), /privacy /terms (501–508), /pricing (528), /demo + /demo/<desk> (701–733), /executive-briefing/ (515, trailing-slash canonical; asset route allowlists .html/.css/.js/.svg/.png/.md), /blog/* clean routes + 301 shims (860–907), /contact /intelligence /vision (743–759), /walkthrough (737). Dead-routed legacy files (301 → /): how-it-works.html, platform.html, security.html, industries.html, case-studies.html, resources.html, roi.html, investor.html, sales-one-pager.html, demo-opener.html (app.py 841–852). The /<path> catch-all (1716) serves only non-HTML static extensions, so these files are unreachable in production but still in-tree.


2. Truth-discipline scan (per file, with file:line)

Banned-string sweep across all 29 audited files: ZERO hits for affirmative "mind-reading", affirmative "guaranteed", "Quokka Swarm", KL 4.95/0.66/0.04, "will buy", 15-minute/sub-second — on every served page. All "mind-reading" occurrences are negations (signal.html:416, demo-signal.html:397, shopify.html:211); "Never a guaranteed outcome" (shopify.html:187) is the discipline verbatim.

Findings (served surfaces)

# Severity File:line Finding
T1 Medium blog/decision-control-plane.html:519 "The DCP can handle 89% of decisions autonomously while escalating the 11% that genuinely need human judgment." Unlabeled %-figures presented as capability fact; zero illustrative/composite labels anywhere in this post. Page is served (/blog/decision-control-plane) and NOT gate-scoped.
T2 Medium (adjudicate) index.html §02 #pipeline (532–644) ACT-991 interactive sim: $5.0M distribution, $2.0M floor, $6.0M reserve, $1.0M post-txn (560), DEL SCORE 39 vs threshold 80 (607–611), confidence 94% / policy 98% / breach 12% (644 presets), context sufficiency 98.2% (control §03). TRUTH.md 2.5 declares ACT-991 "illustrative scenario … labeled as such at point of use". The only cover in #pipeline is the site-wide strip at hero end — index.html:488 "ILLUSTRATIVE FIGURES · REPRESENTATIVE OF A DEPLOYED MIZOKI3 SYSTEM" — which is a different section; #control has its own in-section "ILLUSTRATIVE" (625), #pipeline does not. Would fail gate rule C if index.html were scoped.
T3 Medium (adjudicate) index.html:488 The banner wording itself: "REPRESENTATIVE OF A DEPLOYED MIZOKI3 SYSTEM". Platform ceiling is "built, pre-benchmark" (TRUTH 3.1) and no customer deployment/pilot artifact exists; "deployed … system" implies figures are representative of production deployments.
T4 Medium-high (adjudicate) executive-briefing/js/data.js:331, 391, 452 Pilot-flavored metric labels: 90 bps — "margin recovery in pilot units" (331), 9% — "OEE lift on pilot lines" (391), 16% — "lower logo churn in pilot book" (452). TRUTH.md 2.3: pilot claims require a named pilot readout; none exists. The gate passes these because a sibling row in each domain block carries "(composite)" — but a reader sees "pilot" wording on rows with no label.
T5 Low executive-briefing/js/data.js:82–84, 147–148, 208–209, 269–270, 330, 390, 451, 513–514 Per-row unlabeled metrics beside one "(composite)" row per block, e.g. 24% "of spend identified as non-incremental and redeployed" (82), 1.8× "incremental ROAS versus the last-click view" (83), 31% "fewer SLA misses in 60 days" (208), 22% "reduction in regrettable attrition" (269), 28% "less expedite spend" (513). Gate-compliant (section-level label), but each figure does not carry its own label (TRUTH 2.6.1). App-side mitigation: briefing Stage 04 header renders "Business case · Illustrative figures" (app.js:549) and metric cards say "Illustrative · replace with your data" (app.js:560).
T6 Medium demo-signal.html:405 "Intent Scoring API — … served sub-100ms (Cell 28)." Present-tense latency claim for a Preview capability. Section carries "Preview · in development" (397) but "served sub-100ms" is a design target stated as operating behavior; the gate's regex (sub-second) does not match sub-100ms, so this is invisible to CI. Also stale cell number: repo memory (2026-08 inbox) records shipped intent scoring = Cell 34 (Cell 28 legacy, never repurposed).
T7 Low demo-signal.html:406 "(Cells 26–27, 35)" for the causal/prove stack — plan-vintage numbering; shipped causal cell is 36 (graph 35). Factual-accuracy drift vs. shipped platform, inside owner-approved canon-pinned copy — adjudicate before touching.
T8 Low demo-capital.html:251 (and meta description :10) "any move that drops modeled headroom below 15% is blocked in red" — no in-section illustrative/operating-default label. The SAME threshold on demo.html hub is labeled "an illustrative scenario threshold". Inconsistent labeling of the same number; demo-capital is not gate-scoped.
T9 Info executive-briefing/js/guide.js (gate-style finding) 0%/100%/50% flagged by rule-C when applied to this unscoped file — all are CSS strings inside JS (border-radius:50%, keyframes 0%,100%). False positive; no action.

Latent findings (dead-routed files — unreachable via routes, still in-tree; TRUTH.md binds the repo)

# File:line Finding
L1 security.html:93 <h3>Guaranteed Rollbacks</h3> — affirmative "Guaranteed". Route 301s to /.
L2 roi.html:769 "Autonomous decision-making delivers 50-75× improvement in decision latency." Unlabeled multiplier. Route 301s to /.

"Quokka Swarm" — every occurrence found (reported with context, per orchestrator instruction; NOT auto-flagged)

None on any served page. All occurrences are rulebook/removal-record/gate machinery: 1. # MIZ OKI 3.5/docs/marketing/mizoki-shopify-net-yield-positioning.md:24 — claim-ledger ban table: | "Quokka Swarm Optimization" inspector | Unverified novelty | Do not use until validated; say "uncertainty-based validation" | 2. # MIZ OKI 3.5/docs/marketing/mizoki-shopify-democratizing-decision-intelligence.md:5 (governance header: "references removed v1 claims (including the banned 'Quokka Swarm' term) solely as removal records") and :78 ("(Removed from v1: the 'Quokka Swarm Optimization inspector panel' claim, which originated in an unrelated sparse-data recommender paper and has no counterpart in the MIZ OKI stack.)") — the deliberately-unscoped removal record the orchestrator flagged; consistent with its stated purpose. 3. # MIZ OKI 3.5/scripts/content_qa.py:14,107,112,215,218,287,314 — the gate's own ban definition + self-test seed. 4. drop/mizoki-shopify-net-yield-positioning.md:24 and drop/claude-code-prompt-signal-net-yield-build-v2.md:10 — repo-root copies of the ban ledger/runbook. 5. .claude/memory/inbox/2026-08.md:208 + .claude/memory/archive/2026-08-07-CLAUDE-7.0.0-44bde965dfa4.md:119 — memory records of the removal.

KL figures 4.95 / 0.66 / 0.04 — every occurrence

None on served pages. docs/marketing/mizoki-shopify-democratizing-decision-intelligence.md:74 quotes all three with explicit Airbnb attribution ("Airbnb's published work … (Wei et al., arXiv:2605.21812) … Their measured results"), satisfying the attribution rule; mizoki-shopify-net-yield-positioning.md:23 is the ban table itself. pricing.html:62 0.04 is CSS rgba; data.js:536 0.04 is a JS coefficient — neither customer-visible.


3. §-sequence check (gate rule D applied everywhere)

Page Marks Verdict
signal.html §01–§09 PASS (strict 1..9)
signal-thresholds.html §01–§06 PASS
signal-budget.html §01–§06 PASS
signal-creative.html §01–§04 PASS
signal-audiences.html §01–§05 PASS
signal-measurement.html §01–§04 PASS
shopify.html §01–§06 PASS
index.html (folio grammar, not sec-mark) §01–§06 PASS (continuous)
demo-signal.html (numbered panels) 1–5 PASS
All other audited pages no §-grammar n/a

No gaps, no duplicates anywhere.


Every href/src on the 25 audited HTML pages was resolved against the app.py route table + filesystem; 34 cross-page anchor references were resolved against target-page id= sets.

Broken (4): 1. pricing.html:165 — href="/#platform" → index.html has NO id="platform" (section ids: what, pipeline, control, divisions, enterprise, live). Nav link lands at page top. 2. pricing.html:167 — href="/#governance" → no id="governance" on index.html. Same failure. 3. blog/posts.json — "image": "/assets/img/blog/adc-framework/og.png" (adc post) and "/assets/img/blog/dcp/og.png" (dcp post): both files missing on disk. Consumed by /blog/feed.json (app.py:937 emits absolute URLs → 404 for feed readers). blog/index.html does not render post images, so no visible breakage on-site. (meta-relu image exists.) 4. executive-briefing/js/app.js:897 — hard-coded fallback contactUrl = "https://mizoki3.com/#contact"; homepage has no #contact anchor. Only fires if MIZOKI_CONFIG is absent (the shipped executive-briefing/index.html:45 sets contactUrl: "/contact" — a real route), so latent, embed-scenario only.

Everything else resolves: all /signal/ dual routes, /demo/ desks, /executive-briefing/ assets, /blog clean routes + shims, /privacy /terms /pricing /contact (+?source=), signal.html#capabilities (id at signal.html:248), /#pipeline /#control /#divisions all exist. Externals are Google Fonts only (+ mizoki3.com-absolute og/canonical URLs, all of which map to real routes/files — og-signal/risk/nexus/estate/demo/counsel/capital SVGs verified on disk).


5. Connector lists & L0–L5 autonomy ladder

Connector lists per page

Inconsistencies vs homepage: - GA4 appears as a first-class source in the demo (demo-signal) and as a rail (signal-measurement) but is absent from the homepage 12-connector grid. Low severity, worth reconciling. - Meta descriptor drift: "Facebook & Instagram signals" (index) vs "delivery" (signal.html). Cosmetic. - shopify.html uses generic "Meta" / "lifecycle email" instead of "Meta Ads" / "Klaviyo". Cosmetic/deliberate merchant-speak. - "650+ Governed MCP tools" / "12 native connectors" (index:538) are unlabeled machinery counts — flagged as claims C45 below for verification by the platform auditor.

Autonomy-ladder wording

Inconsistencies: (a) index.html marks BOTH L0 and L1 "Default." — an ambiguous double default (signal.html expresses the same idea more precisely as two highlighted starting rungs); (b) pricing's "L0–L1 · approval-first" collides verbally with index/signal's L2 "Approval flow" — at L0–L1 nothing acts, so "approval-first" describes the posture but reuses the L2 rung's name; potential confusion. Names/order otherwise fully consistent across the three pages. No other page redefines the ladder.


6. Mobile-breaking HTML defects


7. CLAIMS LIST — present-tense machinery claims (exact quotes + lines)

Definition applied: asserts the platform DOES/HAS something mechanical today, vs. labeled preview/design language. Softening labels found nearby are noted. signal-measurement.html is the densest surface; its §03 note (line 267) blanket-asserts "mechanisms on this page are operating machinery" — that note is simultaneously the page's softener for parameters ("operating defaults — not promised outcomes") and its strongest machinery claim.

signal-measurement.html

signal.html

signal-thresholds.html

signal-budget.html

signal-creative.html

signal-audiences.html

shopify.html

demo-signal.html (§5 ORACLE panel — whole section Preview-framed at :397)

index.html

demo.html

Orchestrator note: C1–C18 assert a full house-attribution + server-side-conversion + incrementality stack as operating machinery. Whether each rail (Enhanced Conversions, Meta CAPI w/ 48h dedup, AEM schema, GA4 MP, offline upload, nightly recompute, drift monitor, bid-system writeback) exists in the shipped codebase is exactly what C17's blanket "operating machinery" sentence stakes; recommend cross-checking against the platform/code auditor's inventory (connector governance rules require provider status in proof-level language; .claude/rules/marketing-commerce-connectors.md: "When work touches a provider not yet live-verified, do not describe it as complete").


8. Per-file inventory verdicts

File Truth § Links Mobile Notes
index.html T2, T3; C45–C46 §01–06 PASS anchors OK viewport ✓, no nav-mobile.js hero graph + control sandbox labeled ILLUSTRATIVE; #pipeline unlabeled in-section
signal.html clean; C19–C21 §01–09 PASS all OK viewport ✓, wrap-nav preview framing exemplary (§06 two "Stated plainly" notes)
signal-thresholds.html clean; C22–C26 §01–06 PASS all OK (blog link OK) ✓ operating-default labels present
signal-budget.html clean; C27–C31 §01–06 PASS all OK ✓ tables wrapped
signal-creative.html clean; C32–C35 §01–04 PASS all OK ✓ "regret guarantees" is math-term, legal
signal-audiences.html clean; C36–C38 §01–05 PASS all OK ✓ §04 preview-framed
signal-measurement.html C1–C18 (claims dense) §01–04 PASS all OK ✓ §03 note is both softener and blanket claim
demo.html clean; C47 n/a all OK ✓ 15% covenant labeled illustrative here
demo-signal.html T6, T7; C42–C44 panels 1–5 all OK ✓ sub-100ms + stale cells
demo-capital.html T8 n/a all OK ✓ 15% unlabeled here
demo-counsel/estate/nexus/risk.html clean n/a all OK ✓ brief pass
demo-opener.html dead-routed n/a n/a 1 pre unreachable
executive-briefing/index.html clean n/a contactUrl=/contact ✓ ✓
executive-briefing/js/data.js T4, T5 n/a n/a n/a gate-scoped, passes gate
executive-briefing/js/app.js clean (labels at :549/:560) n/a fallback #contact (latent) n/a
executive-briefing/js/guide.js T9 false positive only n/a n/a n/a
blog/index.html clean n/a all OK ✓
blog/doorman-problem.html clean (labeled composite up front) n/a all OK ✓, no nav-mobile.js
blog/posts.json — n/a 2 missing images n/a feed.json emits dead URLs
blog/adc-decision-framework.html clean (no numbers) n/a all OK ✓ zero labels but nothing to label
blog/decision-control-plane.html T1 n/a all OK ✓ 89%/11% unlabeled
blog/relu-lens-meta-algorithm.html clean (industry mechanics, no Mizoki perf numbers) n/a all OK ✓
pricing.html clean copy n/a 2 broken anchors (165, 167) ✓ no dollar figures, autonomy-mapped tiers
privacy.html clean n/a all OK ✓ standard policy
terms.html clean n/a all OK ✓ standard terms
shopify.html clean; C39–C41 §01–06 PASS all OK ✓ model page for labeling discipline

9. Top 10 worst violations (ranked)

  1. pricing.html:165 — broken nav anchor /#platform (user-visible nav dead-end on a money page).
  2. pricing.html:167 — broken nav anchor /#governance (same).
  3. blog/decision-control-plane.html:519 — unlabeled "89% … autonomously / 11%" capability figures on a served post.
  4. executive-briefing/js/data.js:331/391/452 — "pilot units / pilot lines / pilot book" wording on unlabeled metrics; TRUTH 2.3 pilot-claim exposure.
  5. demo-signal.html:405 — "served sub-100ms (Cell 28)": design target as present-tense perf + stale cell id; invisible to the CI regex.
  6. index.html #pipeline (532–644) — ACT-991 sim figures with no in-section illustrative label (TRUTH 2.5 point-of-use).
  7. index.html:488 — "REPRESENTATIVE OF A DEPLOYED MIZOKI3 SYSTEM" vs "built, pre-benchmark" ceiling.
  8. blog/posts.json — two og images referenced but missing on disk → /blog/feed.json emits 404 image URLs.
  9. demo-capital.html:251 — 15% covenant floor unlabeled (labeled "illustrative scenario threshold" on demo.html — same number, inconsistent).
  10. security.html:93 — "Guaranteed Rollbacks" (latent; dead-routed file still in-tree, binds under TRUTH.md Art. 1.2).

Honorable mentions: GA4 missing from homepage connector grid while used in demo + measurement rails; L0 AND L1 both "Default." on index.html:717; pricing "L0–L1 · approval-first" vs L2 rung named "Approval flow"; nav-mobile.js absent from 11 served pages incl. all signal dossiers; app.js:897 fallback #contact anchor doesn't exist.


10. What is demonstrably healthy

← All docsView source on GitHub →