The v13.2 ROADMAP release gate says every flagship demo reports measured reach: strangers counted, not developers. Parent ticket #14782 names this as F3, and #14790 makes it the Phase-0 launch gate: instrument before announcing anything.
This ticket is the narrow F3 leaf. It exists because #14782 is correctly marked not-code-ready as a bundled measurement umbrella: F1 now has the J2 operator-run leaf (#14840), F2 belongs to the fresh-install / TTFP harness family, and F3 still needs its own reach-metric contract.
The goal is not a new business-dashboard epic and not a Fleet Manager or dock implementation lane. This consumes the shipped business metric schema from #14442/#14446 and pins the per-demo measurement contract that future demo surfaces must satisfy before public launch.
Live latest-open sweep: checked the latest 20 open issues at 2026-07-05T09:13:06Z; no equivalent F3 leaf found. Exact GitHub searches for "F3 demo reach metrics", "falsifiable stranger counts", "demo reach contract", "developer-filter", and "falsifying-query-carrying reach metric" found #14782/#14790 only as parent/adjacent gates. A2A in-flight sweep: latest 30 all-status messages checked at the same boundary; no competing F3 reach-metrics claim. KB/resource sweep found #14782, #14790, #14781, #14789, #14442, and #14446 as adjacent authority, not an equivalent leaf.
The Problem
A demo can ship, get praised by maintainers, and still tell us nothing about whether strangers cared. The ROADMAP explicitly rejects that failure mode: reach must be measured, public claims must carry provenance, and developer-circle traffic must not be counted as traction.
Today the parent artifacts state the requirement but do not define the per-demo contract:
What stable demo identity is measured.
Which view / interaction events count.
How developer/internal traffic is filtered without leaking private data.
Which METRIC node identity and falsifyingQuery reproduce the count.
Which launch/release artifact cites the measured value.
Without this leaf, #14790 Phase 0 remains a slogan: "instrument first" with no concrete surface that can fail closed.
The Architectural Reality
ROADMAP.md names the traction guardrail: measurable reach categories, Ring-0 / analytics-first, strangers counted rather than developers.
#14782 F3 says flagship demos emit Ring-0 events and each has a falsifying-query-carrying reach metric before announcement.
#14790 Phase 0 says every demo surface emits events with the developer-filter documented before launch motion begins.
#14442 defines the business-engine boundary: metric categories can be public; specific targets, revenue, strategy, and client specifics stay private.
#14446 shipped the BUSINESS_GOAL / METRIC schema and read-only probe discipline. ai/graph/businessSchema.mjs requires claimClass, falsifyingQuery, windowSemantics, confoundDisclaimer, and strict boolean publicFlag; validateMetricProperties() fails closed on missing identity fields, non-finite values, and missing falsifyingQuery.
ROADMAP explicitly says no new #14442 leaves for this release path; the CEO-dashboard slice stays gated on #14422. This ticket therefore defines a release-gate metric/readback contract, not a new dashboard surface.
Structure-map gate: ran npm run --silent ai:structure-map -- --files --loc; relevant owning folders include ai/graph, ai/services/graph, ai/services/github-workflow, ai/services/ingestion, demo/app surfaces, and release-note content surfaces.
The Fix
Define the F3 per-demo reach contract and keep it fail-closed until concrete demo surfaces exist:
Give every flagship demo a stable public demo id / surface key before instrumentation.
Define the minimal event envelope for view and meaningful-interaction events. The envelope must be privacy-bounded and must not carry private targets, revenue data, client specifics, or raw identity data.
Map each demo's counted reach into METRIC nodes using the existing business schema. The metric identity must be deterministic, and every published value must carry the falsifyingQuery that reproduces included/excluded counts.
Document the developer-filter heuristic in the metric properties / evidence artifact. The filter can classify maintainers, localhost/dev/test sources, and known internal channels as excluded categories, but public artifacts must not expose private identifiers.
Produce the release/launch evidence line consumed by #14790 and v13.2 release notes: metric id, window, value, falsifying query, confound disclaimer, and provenance.
Deterministic metric identity; claimClass, falsifyingQuery, windowSemantics, confoundDisclaimer, publicFlag, periodStart, periodClosed, and finite value all present
Validation failure refuses the write and blocks launch evidence
Public launch/release artifact cites metric id, window, value, provenance, and falsifying query
No artifact => no measured-reach claim
v13.2 release notes / launch issue comment
Greppable evidence line
Decision Record impact
Aligned-with #14442/#14446 and ADR-0024's business/time-series disposition. No ADR amendment is intended. If implementation needs a new claimClass, new business node property, or new durability rule, that is an ADR-0024 amendment and must not be smuggled into this leaf.
Acceptance Criteria
Each flagship demo covered by this release gate has a stable demo id / surface key before instrumentation begins.
View and meaningful-interaction events are mapped to the existing business metric schema without adding a new #14442 dashboard leaf.
Every produced METRIC node passes validateMetricProperties() and carries a non-empty falsifyingQuery, windowSemantics, confoundDisclaimer, strict boolean publicFlag, and deterministic identity fields.
Developer/internal traffic is excluded by a documented heuristic; the public artifact names the categories and query logic without exposing private identifiers.
The falsifying query can reproduce included count, excluded count, final published value, window, and demo key for each published reach number.
#14790 Phase 0 blocks announcement if the metric write, developer-filter evidence, or release/readback artifact is missing.
v13.2 release notes / launch artifact cite the measured value with metric id, window, provenance, and falsifying query; no raw likes/views or developer-circle counts are presented as traction.
Out of Scope
Implementing the demos themselves (#14789, #14646, #14781 journey leaves, and Fleet Manager / dock surfaces own that work).
Creating the #14442 CEO-dashboard slice, which remains gated on #14422 per ROADMAP.
Context
The v13.2 ROADMAP release gate says every flagship demo reports measured reach: strangers counted, not developers. Parent ticket #14782 names this as F3, and #14790 makes it the Phase-0 launch gate: instrument before announcing anything.
This ticket is the narrow F3 leaf. It exists because #14782 is correctly marked
not-code-readyas a bundled measurement umbrella: F1 now has the J2 operator-run leaf (#14840), F2 belongs to the fresh-install / TTFP harness family, and F3 still needs its own reach-metric contract.The goal is not a new business-dashboard epic and not a Fleet Manager or dock implementation lane. This consumes the shipped business metric schema from #14442/#14446 and pins the per-demo measurement contract that future demo surfaces must satisfy before public launch.
Live latest-open sweep: checked the latest 20 open issues at 2026-07-05T09:13:06Z; no equivalent F3 leaf found. Exact GitHub searches for "F3 demo reach metrics", "falsifiable stranger counts", "demo reach contract", "developer-filter", and "falsifying-query-carrying reach metric" found #14782/#14790 only as parent/adjacent gates. A2A in-flight sweep: latest 30 all-status messages checked at the same boundary; no competing F3 reach-metrics claim. KB/resource sweep found #14782, #14790, #14781, #14789, #14442, and #14446 as adjacent authority, not an equivalent leaf.
The Problem
A demo can ship, get praised by maintainers, and still tell us nothing about whether strangers cared. The ROADMAP explicitly rejects that failure mode: reach must be measured, public claims must carry provenance, and developer-circle traffic must not be counted as traction.
Today the parent artifacts state the requirement but do not define the per-demo contract:
METRICnode identity andfalsifyingQueryreproduce the count.Without this leaf, #14790 Phase 0 remains a slogan: "instrument first" with no concrete surface that can fail closed.
The Architectural Reality
BUSINESS_GOAL/METRICschema and read-only probe discipline.ai/graph/businessSchema.mjsrequiresclaimClass,falsifyingQuery,windowSemantics,confoundDisclaimer, and strict booleanpublicFlag;validateMetricProperties()fails closed on missing identity fields, non-finite values, and missingfalsifyingQuery.Structure-map gate: ran
npm run --silent ai:structure-map -- --files --loc; relevant owning folders includeai/graph,ai/services/graph,ai/services/github-workflow,ai/services/ingestion, demo/app surfaces, and release-note content surfaces.The Fix
Define the F3 per-demo reach contract and keep it fail-closed until concrete demo surfaces exist:
METRICnodes using the existing business schema. The metric identity must be deterministic, and every published value must carry thefalsifyingQuerythat reproduces included/excluded counts.Contract Ledger Matrix
viewand meaningfulinteractionevents with demo key, event kind, timestamp/window, and source categoryMETRICnode writeai/graph/businessSchema.mjsclaimClass,falsifyingQuery,windowSemantics,confoundDisclaimer,publicFlag,periodStart,periodClosed, and finitevalueall presentfalsifyingQuery/confoundDisclaimerwithout public private identifiersDecision Record impact
Aligned-with #14442/#14446 and ADR-0024's business/time-series disposition. No ADR amendment is intended. If implementation needs a new
claimClass, new business node property, or new durability rule, that is an ADR-0024 amendment and must not be smuggled into this leaf.Acceptance Criteria
METRICnode passesvalidateMetricProperties()and carries a non-emptyfalsifyingQuery,windowSemantics,confoundDisclaimer, strict booleanpublicFlag, and deterministic identity fields.Out of Scope
Avoided Traps
Related
Parent / source measurement umbrella: #14782. Launch sequencing: #14790. Business metric source of authority: #14442 and #14446. Demo / journey surfaces: #14781, #14789, #14646, #14840. ROADMAP anchor: v13.2 traction guardrail.
Origin Session ID: 6ab85930-3c14-4b18-b3b3-97989d1e75c6
Retrieval Hint: "F3 demo reach metrics falsifiable stranger counts Ring-0 developer-filter falsifyingQuery METRIC #14782 #14790 #14442 #14446"