LearnNewsExamplesServices
Frontmatter
id14885
titleConcept Slice graph-analytics bloats the golden-path handoff — relocate to a sibling file
stateOpen
labels
bugaiarchitecture
assigneesneo-opus-ada
createdAt12:38 PM
updatedAt12:38 PM
githubUrlhttps://github.com/neomjs/neo/issues/14885
authorneo-opus-ada
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]

Concept Slice graph-analytics bloats the golden-path handoff — relocate to a sibling file

Open Backlog/active-chunk-4 bugaiarchitecture
neo-opus-ada
neo-opus-ada commented on 12:38 PM

Context

@tobiu flagged (2026-07-06) that resources/content/sandman_handoff.md — the turn-based Golden Path handoff, our most valuable strategic markdown — now carries 2 debugging-analytics tables that do not belong: Edge Deltas (raw graph edge UUIDs + delta + axes) and Open Gaps per Concept (CONCEPT_REVERIFY_DUE analytics). Directive: debugging → a different file; do not bloat the handoff.

The Problem

cbae23dbae (#14505/#14522, 2026-07-03) added the Concept Slice section — a render-only Native-Edge-Graph analytics block (Concepts Touched + Edge Deltas + Open Gaps per Concept) — appended at the top of the handoff. This is raw graph analytics (queryable on demand via the graph tools), not strategic turn handoff. It bloats the artifact the autonomous loop actually consumes.

The Architectural Reality

  • ai/services/graph/GoldenPathSynthesizer.mjs:1091handoffContent += this.constructor.renderConceptSliceHandoffSection({...}) appends the Concept Slice into the handoff string.
  • :1415-1417const handoffFile = aiConfig.handoffFilePath; fs.writeFileSync(handoffFile, handoffContent.trim() + '\n') (ADR-0019 use-site read; fs+path imported).
  • Renderer: ai/services/graph/conceptSliceBuilder.mjs:284 renderConceptSliceSection (3 subsections; the 2 flagged tables at :300 / :311).

The Fix

  • Capture the Concept Slice at :1091 into a local (const conceptSliceSection = …) instead of appending it to handoffContent.
  • At the write point, write it to a sibling companion filesandman_concept_slice.md, path derived from the resolved handoffFile directory (path.join(path.dirname(handoffFile), 'sandman_concept_slice.md'); ADR-0019-clean — a path-under-root derivation, no new leaf, no re-implementation).
  • Gitignore the new file next to resources/content/sandman_handoff.md (line 131) so the regenerated debug artifact never causes commit noise / merge conflicts.

The whole cohesive Concept Slice block moves (it is one self-described "render-only shared slice contract" unit); the handoff keeps only strategic content.

Acceptance Criteria

  • sandman_handoff.md no longer contains ## Concept Slice, ### Edge Deltas, or ### Open Gaps per Concept.
  • The Concept Slice renders to sandman_concept_slice.md (sibling of the handoff), with a header noting it is the graph-analytics companion.
  • The concept-slice path is derived from aiConfig.handoffFilePath (no new hardcoded absolute path, no new config leaf required).
  • resources/content/sandman_concept_slice.md is gitignored.
  • Existing GoldenPathSynthesizer / conceptSlice specs stay green (render-only contract preserved).

Out of Scope

  • The Concept Slice's content/format itself (#14505) — this only relocates it.
  • Making the sibling path a config leaf (trivial follow-up if desired).

Related

  • #14505 / #14522 (the Concept Slice addition being relocated).

Origin Session ID: 9360840f-5d7a-4680-8110-86877722735b Retrieval Hint: query_raw_memories("sandman handoff concept slice relocate debug bloat")

Live latest-open sweep: checked 2026-07-06; no equivalent found.