# ensemble-synthesis — fable-clone reviewer 5-lane (H10 synthesis, S115)

> Lead synthesis of the 5-lane `/fable-clone reviewer` ensemble (`wf_b621aac4-f0b`). The crystallized output = `spec-presence-not-age-adopt-13-07-2026.md` (H21 3-heading spec). This file satisfies the H10/HCV close-gate (`*-synthesis.md` present) + records the lane→verdict consolidation.

## Lane returns (5 reviewer lenses, same role)

| Lane | Floor | Verdict | Necessity | Sub-file |
|---|---|---|---|---|
| 1 | (i) reinject-by-absence | COMPLIANT | docs | sub-reviewer-1.md |
| 2 | (ii) archive value-gate vs FIFO [CRUX] | NEEDS-FIX | SHOULD | sub-reviewer-2.md |
| 3 | (iii) self-check drop-date | RED-FLAG | SHOULD | sub-reviewer-3.md |
| 4 | Part B hmw.js fail-soft→stop-hard | NEEDS-FIX | MUST | sub-reviewer-4.md (garbled return → recovered from disk) |
| 5 | scope-discipline / anti-over-eng | COMPLIANT | — | sub-reviewer-5.md |

## Synthesized verdict (em-main P3/P4 refute+synthesize)

Convergent: SE already presence-compliant on 2 of 3 floors (reinject + MFE age-band); the single genuine selector red-flag = the archive-gate's oldest-by-position base ordering (SHOULD-fix, D3); the single MUST code change = Part B hmw.js STOP-HARD (D2). Lane 5 kept lanes 2/3 from over-reaching (D3 stays a bounded reorder, no value-scoring; keep_floor/value_protect/mfe-age-band all preserved).

## Downstream

Spec → `/fable-real reviewer` deep-pass (`spec-review-fable-real.md`, PASS-WITH-FIXES) which caught **M2** (contiguity-inversion bug in the D3 pseudocode that all 5 lanes missed) + M1 → both applied to the spec → HMW execute D1/D2/D3 → all acceptance gates GREEN → commit `81b59f0`.

## Harvest note

Reviewer-role memory harvested into `agent-memory/reviewer/MEMORY.md` (S115 spec-review entry, stamped `[engine: fable-clone-ensemble + fable-real · S115]` in spirit; the fable-real self-write was verified-faithful + KEPT). #53 garble ×1 (lane-4) recovered from disk = 0 loss.
