Context
PR #14946 closes the production-graph fixture-write recurrence behind #14926. Exact-head review exposed a distinct read-boundary defect: the lane-state stop hook can continue presenting an old computed Golden Path snapshot after the live graph has changed.
Problem
.claude/hooks/laneStateStopHook.mjs reads goldenPathDirection from ~/.neo-ai-data/lane-state-hook/lifecycle-state.json without a bounded freshness or provenance check. The observed artifact was generated on 2026-07-06 while its fixture nodes are absent from the current graph; on 2026-07-10 it still advertised those fixtures as top-ROI release lanes. The same snapshot also carried stale openPRs: [] and unreadCount: 0.
A correct write-boundary guard prevents new pollution, but cannot make an already stale snapshot truthful. Stale-and-authoritative direction should degrade to an explicit unavailable/stale state rather than steer the swarm.
Empirical evidence
- The artifact reports
generatedAt: 2026-07-06T14:23:04.288Z and contains discussion-open-1783347784287 plus issue-actionable-1783347784287.
- Direct graph lookups and SQLite inspection found zero matching fixture rows in the current graph.
- Repository search for
goldenPathDirection found the hook reader and its spec, but no in-repo producer for this artifact.
- Live duplicate sweep on 2026-07-10 checked the latest 30 open issues plus targeted
goldenPathDirection stale hook freshness lifecycle-state search. #14926 owns the write/scoring defect; #13623 is broader no-hold observability, not this freshness contract. No equivalent leaf was found.
- Knowledge Base synthesis was attempted and timed out; this ticket therefore does not overclaim KB coverage.
Intended solution
At the hook read boundary, establish an explicit freshness/provenance contract for computed Golden Path direction. When the artifact is older than the bounded contract or its provenance cannot be established, suppress the ranked lanes or render them as unavailable/stale. Do not silently treat an orphaned snapshot as current release direction.
The owner should first locate or name the actual artifact producer. If it is intentionally out-of-repo, the reader contract must remain independently safe when that producer stops.
Acceptance Criteria
Scope boundaries
In scope: lane-state hook read-boundary freshness/provenance and its focused tests.
Out of scope: the production-graph test-write guard and fixture-provenance scoring filter delivered by PR #14946 under #14926; general no-hold policy; redesigning Golden Path scoring.
Related
- #14926 — source write/scoring defect split from this read-boundary residual
- PR #14946 — exact review evidence that revealed the split
- #13623 — broader lane-state/no-hold observability substrate
Origin Session ID: de713f27-0e82-4960-b4c6-f281e0c36449
Retrieval Hint: "stale lifecycle-state goldenPathDirection stop hook freshness provenance fixture advisory"
Context
PR #14946 closes the production-graph fixture-write recurrence behind #14926. Exact-head review exposed a distinct read-boundary defect: the lane-state stop hook can continue presenting an old computed Golden Path snapshot after the live graph has changed.
Problem
.claude/hooks/laneStateStopHook.mjsreadsgoldenPathDirectionfrom~/.neo-ai-data/lane-state-hook/lifecycle-state.jsonwithout a bounded freshness or provenance check. The observed artifact was generated on 2026-07-06 while its fixture nodes are absent from the current graph; on 2026-07-10 it still advertised those fixtures as top-ROI release lanes. The same snapshot also carried staleopenPRs: []andunreadCount: 0.A correct write-boundary guard prevents new pollution, but cannot make an already stale snapshot truthful. Stale-and-authoritative direction should degrade to an explicit unavailable/stale state rather than steer the swarm.
Empirical evidence
generatedAt: 2026-07-06T14:23:04.288Zand containsdiscussion-open-1783347784287plusissue-actionable-1783347784287.goldenPathDirectionfound the hook reader and its spec, but no in-repo producer for this artifact.goldenPathDirection stale hook freshness lifecycle-statesearch. #14926 owns the write/scoring defect; #13623 is broader no-hold observability, not this freshness contract. No equivalent leaf was found.Intended solution
At the hook read boundary, establish an explicit freshness/provenance contract for computed Golden Path direction. When the artifact is older than the bounded contract or its provenance cannot be established, suppress the ranked lanes or render them as unavailable/stale. Do not silently treat an orphaned snapshot as current release direction.
The owner should first locate or name the actual artifact producer. If it is intentionally out-of-repo, the reader contract must remain independently safe when that producer stops.
Acceptance Criteria
goldenPathDirectionentries as current release-goal direction.Scope boundaries
In scope: lane-state hook read-boundary freshness/provenance and its focused tests.
Out of scope: the production-graph test-write guard and fixture-provenance scoring filter delivered by PR #14946 under #14926; general no-hold policy; redesigning Golden Path scoring.
Related
Origin Session ID: de713f27-0e82-4960-b4c6-f281e0c36449 Retrieval Hint: "stale lifecycle-state goldenPathDirection stop hook freshness provenance fixture advisory"