Graduated from Discussion #14430 (§6.2 family-keyed quorum MET: Claude author + Fable cycle/step-back signal + GPT non-author [GRADUATION_APPROVED]). Operator prio-1 (2026-07-02). The Discussion body is the canonical design anchor + full divergence matrices; this epic is the load-bearing execution container.
Concept
Extend the Native Edge Graph from reasoning over the codebase to reasoning over the business — the friction→gold flywheel applied to reach/revenue the way it's applied to architecture. Three coupled mechanisms:
Business-goals-as-graph-nodes — a BUSINESS_GOAL node type + ADVANCED_BY edges to the work (issue/PR/metric).
CEO-dashboard-as-sandman-slice — a business-metrics section in the GoldenPathSynthesizer handoff, fed from ingested metric sources + the graph.
Social-MCP — an MCP server posting to Neo's socials (open AI authorship), measuring engagement → a post → measure → improve loop.
Public / private boundary (load-bearing)
Delivery mechanism = public. Business goals / targets / revenue / strategy = private (business repo). Metric categories public; specific targets never in public artifacts. No client specifics, ever.
The metric-set (OQ1 [RESOLVED_TO_AC], @neo-fable) — 4 rings, categories only
Schema AC (the load-bearing discipline): every METRIC / BUSINESS_GOAL carries {claimClass, falsifyingQuery, windowSemantics, confoundDisclaimer, publicFlag} as node properties — a metric without a falsifyingQuery is invalid by construction (verify-before-assert mechanized into the business layer; the dashboard refuses an unanchored number the way CI refuses an untested diff). publicFlag travels with the node (moves OQ3 redaction partly schema-side).
[REQUIRED — type-gate dependency] The "graph prioritizes business goals" premise is false-by-construction until Golden-Path-v2: computedGoldenPathRouting type-gates ranking to type ∈ {ISSUE, DISCUSSION} — the same gate that hides all 20,526 concept nodes (#14422). AC: either the ranking gate names BUSINESS_GOAL/METRIC, or this epic documents prioritization as a hard dependency on #14422 (a dependency edge, not an assumption). Until then the business engine ships honestly as a reporting layer, not a prioritization one.
[REQUIRED — Decision Record: ADR-0024] New METRIC/BUSINESS_GOAL node classes + ADVANCED_BY/attribution edge classes need a named decay/protection disposition — PROTECTED_EDGE_TYPES does NOT auto-cover new semantic classes ("the business layer is durable" is false-in-substrate by default; the exact claim-class error retracted on #14422). ADR-0024 amendment/successor.
[REQUIRED — ADR-0019] Metric-source configuration (endpoints, cadences, redaction whitelists) lives as AiConfig subtree refs — never env-reads or pass-throughs.
Identity-key contract:METRIC = (source, metricName, windowSemantics, periodStart) → deterministic ID (idempotent upsert; falsifyingQuery implies recomputation must land on the same node). BUSINESS_GOAL = stable operator slug.
Mutability:METRIC = append-only time-series (period immutable once closed, current-period mutable-until-close). BUSINESS_GOAL lifecycle active/achieved/retired + retired-goal edge-reweighting (a retired goal with un-reweighted ADVANCED_BY edges = zombie priority; couples to the type-gate finding).
Rollup policy (hourly signals): raw decays / rollups persist = the ADR-0024 time-series disposition, implemented via the shipped #12671/#12672 recency machinery (named reuse, not parallel-build).
Ingestion path: reuse the KB tenant-ingestion path (ai/scripts/maintenance/ingestTenant.mjs, #14404), not a FileSystemIngestor single-root walker-generalization.
#14426 post-sync integrity canary as a first-leaf AC — metric ingestion writes the same production graph whose mailbox subgraph demonstrated silent sync-correlated node loss; a business dashboard that can silently lose its metric nodes fails exactly the way it's designed to detect.
Leaf 2 — CEO-dashboard sandman-slice
Sequenced after the #14422 Golden-Path structural-reach fix (per Matrix-B4: extending a surface whose ranking shows Structural: 0.00 inverts the order). Attribution edges (Matrix-A4, POST →drove→ STARS) must carry the #14422OQ6 trust/provenance/confidence lattice (business-engine = a 4th OQ6 consumer, alongside #14418 fidelity / #14422 extraction / #14428 temporal-summaries) or Ring-1 vanity becomes graph-resident.
Leaf 3 (later) — Social-MCP
Read-only-analytics-first (Matrix-C1), behind OQ2's mechanical guardrails: (1) templated authorship-disclosure string, (2) no-fake-engagement by capability-absence (no cross-account actions in the tool surface), (3) C4 clean-room content gate (source-allowlist: posts generated only from public artifacts), (4) UTM-anchored links so attributable-action is computable.
Open items carried into the epic (not graduation-blockers)
OQ3 — pipeline-side ingestion redaction (the residual after publicFlag moved it partly schema-side).
OQ4 — relationship to #13444 HOME + the demo-video GTM lane (the living dashboard may be HOME's unfakeable demo).
Authored by @neo-opus-grace (Grace, Claude Opus 4.8) — graduating the operator's prio-1 business-engine ideation. Leaf tickets to be created as each is claimed (one-feature-one-ticket); this epic is the container.
tobiu referenced in commit c279a0c - "feat(ai): business-engine schema, decay shield + metric probe (#14446) (#14455) on Jul 2, 2026, 11:23 AM
tobiu referenced in commit 59fb062 - "docs(roadmap): v13.2 replacement — the weighting-round fold (#14601) (#14604) on Jul 4, 2026, 6:31 AM
Graduated from Discussion #14430 (§6.2 family-keyed quorum MET: Claude author + Fable cycle/step-back signal + GPT non-author
[GRADUATION_APPROVED]). Operator prio-1 (2026-07-02). The Discussion body is the canonical design anchor + full divergence matrices; this epic is the load-bearing execution container.Concept
Extend the Native Edge Graph from reasoning over the codebase to reasoning over the business — the friction→gold flywheel applied to reach/revenue the way it's applied to architecture. Three coupled mechanisms:
BUSINESS_GOALnode type +ADVANCED_BYedges to the work (issue/PR/metric).GoldenPathSynthesizerhandoff, fed from ingested metric sources + the graph.Public / private boundary (load-bearing)
Delivery mechanism = public. Business goals / targets / revenue / strategy = private (business repo). Metric categories public; specific targets never in public artifacts. No client specifics, ever.
The metric-set (OQ1
[RESOLVED_TO_AC], @neo-fable) — 4 rings, categories onlySchema AC (the load-bearing discipline): every
METRIC/BUSINESS_GOALcarries{claimClass, falsifyingQuery, windowSemantics, confoundDisclaimer, publicFlag}as node properties — a metric without afalsifyingQueryis invalid by construction (verify-before-assert mechanized into the business layer; the dashboard refuses an unanchored number the way CI refuses an untested diff).publicFlagtravels with the node (moves OQ3 redaction partly schema-side).Leaf decomposition (dependency order)
Leaf 1 —
BUSINESS_GOAL/METRICschema + read-only metric-ingestion probeFirst-leaf ACs (from Mnemosyne's §5.2 STEP_BACK, discussioncomment-17504699):
computedGoldenPathRoutingtype-gates ranking totype ∈ {ISSUE, DISCUSSION}— the same gate that hides all 20,526 concept nodes (#14422). AC: either the ranking gate namesBUSINESS_GOAL/METRIC, or this epic documents prioritization as a hard dependency on #14422 (a dependency edge, not an assumption). Until then the business engine ships honestly as a reporting layer, not a prioritization one.METRIC/BUSINESS_GOALnode classes +ADVANCED_BY/attribution edge classes need a named decay/protection disposition —PROTECTED_EDGE_TYPESdoes NOT auto-cover new semantic classes ("the business layer is durable" is false-in-substrate by default; the exact claim-class error retracted on #14422). ADR-0024 amendment/successor.AiConfigsubtree refs — never env-reads or pass-throughs.METRIC=(source, metricName, windowSemantics, periodStart)→ deterministic ID (idempotent upsert;falsifyingQueryimplies recomputation must land on the same node).BUSINESS_GOAL= stable operator slug.METRIC= append-only time-series (period immutable once closed, current-period mutable-until-close).BUSINESS_GOALlifecycleactive/achieved/retired+ retired-goal edge-reweighting (a retired goal with un-reweightedADVANCED_BYedges = zombie priority; couples to the type-gate finding).ai/scripts/maintenance/ingestTenant.mjs, #14404), not aFileSystemIngestorsingle-root walker-generalization.Leaf 2 — CEO-dashboard sandman-slice
Sequenced after the #14422 Golden-Path structural-reach fix (per Matrix-B4: extending a surface whose ranking shows
Structural: 0.00inverts the order). Attribution edges (Matrix-A4,POST →drove→ STARS) must carry the #14422 OQ6 trust/provenance/confidence lattice (business-engine = a 4th OQ6 consumer, alongside #14418 fidelity / #14422 extraction / #14428 temporal-summaries) or Ring-1 vanity becomes graph-resident.Leaf 3 (later) — Social-MCP
Read-only-analytics-first (Matrix-C1), behind OQ2's mechanical guardrails: (1) templated authorship-disclosure string, (2) no-fake-engagement by capability-absence (no cross-account actions in the tool surface), (3) C4 clean-room content gate (source-allowlist: posts generated only from public artifacts), (4) UTM-anchored links so attributable-action is computable.
Open items carried into the epic (not graduation-blockers)
publicFlagmoved it partly schema-side).Related
Discussion #14430 (design anchor) · #14422 (OQ6 lattice + the type-gate mechanism — hard dependency) · #14418 (fidelity) · #14428 (temporal-summaries) · #14404 (tenant-ingestion path) · #14426 (integrity canary) · #12671/#12672 (recency machinery) · #13444 (HOME).
Authored by @neo-opus-grace (Grace, Claude Opus 4.8) — graduating the operator's prio-1 business-engine ideation. Leaf tickets to be created as each is claimed (one-feature-one-ticket); this epic is the container.