Repository navigation
ποΈ task - fix(review): the prose-tally fallback enrolls a deaf clone and always malfunctionsΒ #538
Description
π¦«ποΈ dispatch to foreman
π§ task enqueued
ββ priority = ?
ββ yieldage = ?
ββ leverage = ?
title
fix(review): the prose-tally fallback enrolls a deaf clone and always malfunctions
description
π dream: the prose-tally fallback enrolls a deaf clone and always malfunctions
- kind: fix
- owner: ehmpathy / rhachet (reseed β the defect lives in the clone-enroll mechanism this repo consumes)
- caught: 2026-09-14
.the cue that fired
driving stone 5.1.execution.from_vision, both l3 peer reviewers malfunctioned at i022, and then
malfunctioned identically at i023 after a retry. the reproduction is what turned the diagnosis
from "transient, retry-class" (my i022 takens, disproven) into "systematic" β the same failure
on two independent rounds is not weather.
the stderr, verbatim, from both lanes both rounds:
πΆ clone enrolled β deaf, so it cannot hear a `say`
ββ π§ rhx clone get @:a8c311e6 --tail 50
Warn: no stdin data received in 3s, proceeding without it. If piping from a slow command,
redirect stdin explicitly: < /dev/null to skip, or wait longer.
π₯ malfunction: review tally fallback failed (the sub-brain that tallies a prose review could
not be reached). see .agent/repo=bhrain/role=reviewer/briefs/contract.reviewer-output.md
.the gap, precisely
when a reviewer emits prose rather than the two numeric lines contract.reviewer-output
mandates, the guard cannot read a verdict deterministically, so it falls back to
getReviewCountsViaBrain β a sub-brain that tallies the prose.
that fallback enrolls its tally clone as deaf (clone enrolled β deaf, so it cannot hear a say``), then hands the prose to it over stdin. a deaf clone cannot receive the stdin say,
so after a 3s idle the harness gives up (`no stdin data received in 3s`) and the tally clone reads
an empty prompt. the tally then fails, and the guard reports `π₯ malfunction`.
β this fails 100% of the time for every prose reviewer, not intermittently. the deaf-enroll and
the stdin-delivery contradict each other by construction, so no retry can succeed.
the second harm β it is adjacent to rule.forbid.failhide: both l3 prose reviews found zero
blockers (r10: "the core concurrency mechanism is solid and well-clamped"; r11: "No new
blocking architectural defect"). a clean review is reported to the driver as a malfunction that
blocks passage β the exact inversion contract.reviewer-output warns of ("a silent 0/0 would read
as a clean approval where in truth no verdict was seen" β here its mirror: a real 0/0 reads as a
malfunction).
evidence: reproduced at i022 and i023, both l3 lanes, identical stderr. verified against the
malfunction message, which names the fallback and cites the reviewer-output contract.
.the shape of the fix
two grains, and the local one is already applied:
-
the root (reseed to
ehmpathy/rhachet): the tally fallback must either enrol its clone
not-deaf so it can receive thesay, or deliver the prose over-p(the prompt flag) rather
than stdin. either closes the contradiction. this is a change to rhachet's clone-enroll / tally
path, outside this repo β hence a reseed dream. -
the local unblock (applied this round): append the numeric-contract requirement to both l3
reviewer prompts in the guard, so each reviewer emitsN blockers/N nitpicksand the
deterministic parser reads the verdict β the broken fallback is never reached. this is a
guard edit on an unsealed route, and the.guardis not in the hashed artifact set, so the l1
cache stays live.
.why it is not done in this round
the root fix is not this repo's to make β it lives in rhachet's clone-enroll mechanism, so it
reseeds rather than lands here. the local unblock is applied (the guard-prompt edit), which is
what lets this stone converge; the reseed carries the systemic repair so the next prose reviewer,
in any repo, does not meet the same wall.
Activity