LearnNewsExamplesServices
Frontmatter
id14706
titleHandoff retrospective assembler + synthesizer wiring: fill the stats contract and render beside the Computed GP
stateClosed
labels
enhancementai
assigneesneo-fable
createdAt9:16 AM
updatedAt11:32 AM
githubUrlhttps://github.com/neomjs/neo/issues/14706
authorneo-fable
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAt11:32 AM

Handoff retrospective assembler + synthesizer wiring: fill the stats contract and render beside the Computed GP

Closed Backlog/active-chunk-3 enhancementai
neo-fable
neo-fable commented on 9:16 AM

Context

The render leaf #14603 (PR #14694) shipped the pure renderHandoffRetrospectiveSection + its stats contract. This leaf is its follow-up: the substrate-read ASSEMBLER that fills the stats, and the GoldenPathSynthesizer call-site that puts the section into the live handoff beside the Computed Golden Path — the surface the operator actually asked for on #11375.

Split from #14603 at PR-review cycle 1 (Euclid's RA-2, close-target scope): pure render first (proven in isolation), live-substrate wiring second — same sequencing as the direction-attribution chain (#14567 pure → its writer).

The Fix

  • Assembler: for a selected grain's window, read L1/L2 durable records + graduation/PR/session facts (ADR 0028 tiers; no NEW aggregation — consume what the pyramid computes, render ≠ memory per ADR 0031 invariant 2) into the {filterSets, computedAt, counts, topEvents} shape #14603's module defines. windowSemantics.filterSets (ADR 0033 amendment) supplies the declared filter sets the render requires.
  • Wiring: the GoldenPathSynthesizer inserts renderHandoffRetrospectiveSection(...) beside the computed-GP section, grain auto-selected by reader staleness with explicit override.

Acceptance Criteria

  • Assembler consumes RETROSPECTIVE_GRAINS + the stats contract from #14603's module (imports it; never re-derives window shapes).
  • Counts computed under declared windowSemantics.filterSets — never a naked count (the render withholds those, so an undeclared assembler output is visibly wrong).
  • Section appears in the live handoff beside the Computed Golden Path. Grain: FIXED 3-day for the batch-generated file (a shared artifact has no single reader, so per-reader staleness cannot select its grain) — staleness-adaptive selection via selectRetrospectiveGrain is the interactive boot-flow consumer’s contract, shipped in the render module. (AC amended at PR-authoring; design decision recorded on PR #14709.)
  • AgentOrchestrator.parseGoldenPath() still parses ONLY real computed routes with the retrospective present (integration-level confirmation of the render leaf's firewall in the real file).
  • Test evidence: assembler unit spec + a synthesizer integration check that the section renders and does not perturb route parsing.

Scope split (PR-authoring): the merged+opened PR fact classes ship with this ticket (highest signal, zero heavy queries); the remaining readers (closed/opened issues, graduations, sessions) are the follow-up leaf #14721 — the assembler/render support all six classes unchanged.

Out of Scope

The render module itself (#14603, done) · the FM cockpit catch-up view (#14560 T7.26) · the MCP digest query tool · forecast rendering (#14570) · any new aggregation substrate beyond reading existing ADR 0028 tiers (#12679 orbit).

Related

Parent #13349? No — pillar-1 (GP/DreamService), parent is the #14565 orbit. #14603 (the render leaf this wires) · #11375 (operator seed) · #12679/ADR 0028 (substrate read) · ADR 0033 (filter discipline) · #14570 (forecast sibling).

First-claim: @neo-fable (continuity with the render leaf); claimable by anyone if my queue shifts.

Origin Session ID: b9b95ac6-42f5-47a3-b58f-6071f79657e8 Retrieval Hint: "handoff retrospective assembler synthesizer wiring stats contract window read live handoff"

tobiu referenced in commit dea16bd - "feat(ai): retrospective assembler + synthesizer wiring — the section goes live (#14706) (#14709) on 11:32 AM
tobiu closed this issue on 11:32 AM