Development record
2026-10-17 — The routed drain judge is a loop role, asked and taken in one move (facilitator-on-delegation, drain-many-accounts, spc-2610161044461448 step 14; refines dcn-2610161040390001): drain-judge joins the implementer as a role outside the agent roster, so it needs no agents/ definition and the runner routing accepts it by name; the move that writes the host's request also writes the runner a brief of its own whose answer carries no digest, which abcd fills in from the remedy the brief showed, and takes that answer in the same move as --judgement would, so a no opens the lane on the reservation the drain took to ask it; the runner gets Read and Write alone, runs under the drain's lock and is bounded at fifteen minutes, a small part of the lease it is asked under; a runner that does not answer is a fallback receipt kept in the drain's state, and the host's request stands (grounds: one dispatch and one fallback rule for every model-run role, as the build roles use; a strict answer read once and validated by the same gaps as the host's; a bounded worker inside a lease, as lease-holding job queues bound their workers; iss-2610161015422306)
2026-10-17 — The routed drain judge is a loop role, asked and taken in one move (facilitator-on-delegation, drain-many-accounts, spc-2610161044461448 step 14; refines dcn-2610161040390001): drain-judge joins the implementer as a role outside the agent roster, so it needs no agents/ definition and the runner routing accepts it by name; the move that writes the host's request also writes the runner a brief of its own whose answer carries no digest, which abcd fills in from the remedy the brief showed, and takes that answer in the same move as --judgement would, so a no opens the lane on the reservation the drain took to ask it; the runner gets Read and Write alone, runs under the drain's lock and is bounded at fifteen minutes, a small part of the lease it is asked under; a runner that does not answer is a fallback receipt kept in the drain's state, and the host's request stands (grounds: one dispatch and one fallback rule for every model-run role, as the build roles use; a strict answer read once and validated by the same gaps as the host's; a bounded worker inside a lease, as lease-holding job queues bound their workers; iss-2610161015422306)
Frontmatter
| id | dcn-2610170728453515 |
|---|---|
| type | decision |
| date | 2026-10-17 |
.abcd/work/decisions/dcn-2610170728453515-the-routed-drain-judge-is-a-loop-role.md
open on GitHub ↗ · commit history ↗
mentions3
- dcn-26101610403900012026-10-16 — The drain's judge is a routed role (facilitator-on-delegation, drain-many-accounts): the drain's judgement is a new drain-judge role on the runner routing the build roles use; with no route the request goes to the host as today; abcd computes the remedy digest itself in either case (grounds: one routing for every model-run role, which the build roles already use; iss-2610161015422306).
- iss-2610161015422306The drain's host judgement has no route to a command-line model, so an unattended drain needs a host agent looping; in a plain terminal a person writes the JSON answer, sha256 digest included, by hand; and a hosted session that restarts loses .abcd/.work.local, so its new copy key reads its own reservations as another copy's and the advice names --take-over, which drain does not accept.
- spc-2610161044461448drain-many-accounts