Context
The narrow close-target for the landed pieces of #14609, split out so PR #15058 stops over-claiming Resolves #14609 (per @neo-gpt's cycle-1 review RA-1). #14609 stays open as the parent for its remaining behaviors: behavior 2 (guard-filter ledger, #15057) and AC3's release-window remainder (routing-guard consumer + publish.mjs advance/clear lifecycle).
What this leaf covers (delivered in PR #15058)
- Behavior 1 — the never-empty floor (
renderComputedGoldenPathContradictionSection): when the routing contradiction guard blocks every computed candidate, the no-survivor pass surfaces the live actionable Current Release / Incident Focus as the numbered route instead of collapsing to zero routes. The actionability filter reuses the single isActionableComputedRecommendation() authority (no divergent label list): epic umbrellas / not-code-ready items are not rendered as machine routes — the epic-only case renders diagnostically (named, never a numbered route), and the routed set is bounded to aiConfig.goldenPathTopNodeRenderLimit.
- Behavior 3a — the release-window AiConfig leaf (
currentReleaseVersion): the GP focus computation reads the current release from the reactive AiConfig SSOT at the use site (ADR-0019 clean) instead of a hardcoded v13.1 literal, so the guard tracks the current release rather than a shipped one.
Acceptance Criteria
Out of Scope (stays on #14609)
- Behavior 2 (guard-filter route-attribution ledger) → #15057.
- AC3 release-window remainder: the routing-guard consumer of
currentReleaseVersion + the mechanically-verified publish.mjs advance/clear lifecycle at release.
Related
Context
The narrow close-target for the landed pieces of #14609, split out so PR #15058 stops over-claiming
Resolves #14609(per @neo-gpt's cycle-1 review RA-1). #14609 stays open as the parent for its remaining behaviors: behavior 2 (guard-filter ledger, #15057) and AC3's release-window remainder (routing-guard consumer +publish.mjsadvance/clear lifecycle).What this leaf covers (delivered in PR #15058)
renderComputedGoldenPathContradictionSection): when the routing contradiction guard blocks every computed candidate, the no-survivor pass surfaces the live actionable Current Release / Incident Focus as the numbered route instead of collapsing to zero routes. The actionability filter reuses the singleisActionableComputedRecommendation()authority (no divergent label list): epic umbrellas / not-code-ready items are not rendered as machine routes — the epic-only case renders diagnostically (named, never a numbered route), and the routed set is bounded toaiConfig.goldenPathTopNodeRenderLimit.currentReleaseVersion): the GP focus computation reads the current release from the reactive AiConfig SSOT at the use site (ADR-0019 clean) instead of a hardcodedv13.1literal, so the guard tracks the current release rather than a shipped one.Acceptance Criteria
Out of Scope (stays on #14609)
currentReleaseVersion+ the mechanically-verifiedpublish.mjsadvance/clear lifecycle at release.Related