Context
This is the close-target child for the detection/reporting half of #14502. The parent #14502 deliberately spans two phases: a safe full-spine alias-cluster detection report that can land now, and a canonical merge executor/tombstone path that must wait for #14474's probe artifact. A PR that only delivers the detector must not claim Resolves #14502, so this child keeps the close target honest while leaving #14502 open for the merge half.
Live latest-open sweep: checked the latest 20 open issues at 2026-07-02T21:33Z; no equivalent detection-only child exists. The sweep found parent #14502 and sibling #14503-#14508 GP-v2 leaves, but none cover the committed alias-cluster report surface. A2A in-flight sweep: checked latest 30 messages at 2026-07-02T21:33Z; only overlapping claim was @neo-gpt's own #14502 detection-slice claim.
The Problem
#14502's detection pass is independently useful before any merge executor lands. The live graph already contains concept-spine fragmentation: Golden Path aliases appear across CONCEPT:*, CLASS:*, and bare kebab ids; Dream Pipeline aliases span CLASS:DreamPipeline, CONCEPT:DreamPipeline, dream-pipeline, and related REM/Sandman bridges. Without a committed detector/report, later merge work risks acting from stale anecdotes instead of a reproducible full-spine measurement.
The Architectural Reality
ai/services/graph/SemanticGraphExtractor.mjs returns raw CONCEPT: / CLASS: ids from message extraction; it does not canonicalize concept ids.
ai/services/memory-core/MailboxService.mjs projects curated taggedConcepts directly as TAGGED_CONCEPT edges.
ai/services/memory-core/GraphService.mjs protects only selected edge types from decay; concept edges stay under ADR-0024 decay semantics.
ai/scripts/maintenance/ already owns one-shot/read-only audits such as auditGraphIntegrity.mjs; npm run --silent ai:structure-map -- --files --loc confirms this maintenance-script sibling pattern.
The Fix
Add a read-only maintenance audit that scans live SQLite graph Nodes/Edges, normalizes semantic node ids/names/aliases into kebab-case detection keys, unions per-node keys into alias clusters, computes neighborhood overlap/disjointness, and writes a markdown measurement artifact under learn/agentos/measurements/.
Contract Ledger Matrix
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback / Edge Case |
Docs |
Evidence |
ai/scripts/maintenance/auditConceptSpineAliases.mjs |
#14502 detection pass |
Read-only CLI/report builder; no graph writes |
Malformed JSON rows parse as empty records and are skipped by shape filters |
Module JSDoc + CLI help |
Focused unit spec + live report artifact |
| Measurement artifact |
#14502 AC-1 |
Commit first full-spine alias-cluster report |
Report is detection-only; merge decisions remain gated on #14474 |
Artifact header states detection-only |
Live run summary counts + known probe clusters |
| #14502 close topology |
Parent #14502 + epic review on #14472 |
This child closes detection only; parent remains open |
PR uses Refs #14502, not Resolves #14502 |
PR body |
Native parent-child relationship |
Decision Record impact
aligned-with ADR 0024. This ticket performs detection only and does not add protected edge classes, mutate weights, or choose canonical merge semantics.
Acceptance Criteria
Out of Scope
- Canonical-id policy selection.
- Edge rewrites, alias tombstones, alias-map writes, or MAX-weight merge behavior.
- Mint-time canonicalization in
SemanticGraphExtractor or MailboxService.
- Post-#14474 re-run of the read probe.
Avoided Traps
- Do not close #14502 from a detection-only PR.
- Do not SUM-merge weights or mutate decay semantics.
- Do not hard-delete aliases.
- Do not block concept mint/write paths on canonicalization.
Related
Parent: #14502. Epic: #14472. Probe gate: #14474. Source Discussion: #14422.
Origin Session ID: f059d765-bbb0-4013-b06f-9bb8c3a81bb0
Retrieval Hint: concept spine alias cluster detection report #14502 Golden Path Dream Pipeline
Context
This is the close-target child for the detection/reporting half of #14502. The parent #14502 deliberately spans two phases: a safe full-spine alias-cluster detection report that can land now, and a canonical merge executor/tombstone path that must wait for #14474's probe artifact. A PR that only delivers the detector must not claim
Resolves #14502, so this child keeps the close target honest while leaving #14502 open for the merge half.Live latest-open sweep: checked the latest 20 open issues at 2026-07-02T21:33Z; no equivalent detection-only child exists. The sweep found parent #14502 and sibling #14503-#14508 GP-v2 leaves, but none cover the committed alias-cluster report surface. A2A in-flight sweep: checked latest 30 messages at 2026-07-02T21:33Z; only overlapping claim was @neo-gpt's own #14502 detection-slice claim.
The Problem
#14502's detection pass is independently useful before any merge executor lands. The live graph already contains concept-spine fragmentation: Golden Path aliases appear across
CONCEPT:*,CLASS:*, and bare kebab ids; Dream Pipeline aliases spanCLASS:DreamPipeline,CONCEPT:DreamPipeline,dream-pipeline, and related REM/Sandman bridges. Without a committed detector/report, later merge work risks acting from stale anecdotes instead of a reproducible full-spine measurement.The Architectural Reality
ai/services/graph/SemanticGraphExtractor.mjsreturns rawCONCEPT:/CLASS:ids from message extraction; it does not canonicalize concept ids.ai/services/memory-core/MailboxService.mjsprojects curatedtaggedConceptsdirectly asTAGGED_CONCEPTedges.ai/services/memory-core/GraphService.mjsprotects only selected edge types from decay; concept edges stay under ADR-0024 decay semantics.ai/scripts/maintenance/already owns one-shot/read-only audits such asauditGraphIntegrity.mjs;npm run --silent ai:structure-map -- --files --locconfirms this maintenance-script sibling pattern.The Fix
Add a read-only maintenance audit that scans live SQLite graph
Nodes/Edges, normalizes semantic node ids/names/aliases into kebab-case detection keys, unions per-node keys into alias clusters, computes neighborhood overlap/disjointness, and writes a markdown measurement artifact underlearn/agentos/measurements/.Contract Ledger Matrix
ai/scripts/maintenance/auditConceptSpineAliases.mjsRefs #14502, notResolves #14502Decision Record impact
aligned-with ADR 0024. This ticket performs detection only and does not add protected edge classes, mutate weights, or choose canonical merge semantics.
Acceptance Criteria
ai/scripts/maintenance/with exported pure report functions and no live-store write path.learn/agentos/measurements/, including Golden Path and Dream Pipeline known clusters.Out of Scope
SemanticGraphExtractororMailboxService.Avoided Traps
Related
Parent: #14502. Epic: #14472. Probe gate: #14474. Source Discussion: #14422.
Origin Session ID: f059d765-bbb0-4013-b06f-9bb8c3a81bb0
Retrieval Hint:
concept spine alias cluster detection report #14502 Golden Path Dream Pipeline