Reference
A supervisor's negative report needs its repair
Part of enforcement control, completion enforcement.
block-unrepaired-negative-report reads the ending answer of a
session whose local Oko role is supervisor
(~/.oko/session-roles.json, the register oko sessions role
writes); any other session passes untouched. A supervisor is the session
answerable for what does not work, so an answer that tells the operator
something is broken and ends there reports a failure instead of repairing it.
#What is read
Brama's reviewer, through the same stop path as the other judged gates, names
every sentence of the answer that tells the operator something does not work or
cannot proceed: a product or service down or failing, an executor stopped, stuck
or on a usage limit, a build or push refused or not done, a feature missing. A
sentence the turn's own tool evidence answers with a product action, such as
oko sessions model moving an executor to an account with capacity or a
reassignment of the work, is covered and not named. For every other sentence the
reviewer names the Oko defect it cites, or none.
Whether a cited defect carries a repair is read from Oko, never decided by the
model: oko defects show <id> --json must report a
repaired_in revision (the repair is recorded) or an
owner session (the repair is in progress there).
#What is refused
A sentence citing no defect, or a defect with neither field, refuses the stop:
BLOCKED: a supervisor does not report a broken, stopped, refused or missing state without its repair. Not so here:
- "<sentence>": it names no Oko defect and no action of this turn answers it
- "<sentence>": defect <id> has no recorded repair and no session owns it
The refusal then names the ways out: record the defect with its repair
(oko defects record, oko defects repaired) or assign it to a
working session, or take the product action that answers it in the turn, and
cite it in the answer. A defect Oko cannot read is quoted with what Oko answered.
An unreadable role register refuses with its path and cause, because unreadable is
not evidence that the session is no supervisor, and an unavailable reviewer
refuses with TAMA_HOOK_INFRASTRUCTURE: block-unrepaired-negative-report: review
unavailable: <cause>.
#Source and proof
Source: rust/crates/tama-hook-tools/src/programs/block/supervisor/negative_report.rs;
declaration: hook-declarations/answer-discipline/blockers/block-unrepaired-negative-report.json.
The hook runs once its declaration is registered in the hook registry and selected
for enforcement, like every other stop gate.
The real journey tests/supervisor-stop/negative_report.rs runs the
built hook in isolated homes against the real reviewer
(TAMA_BRAMA_TOKEN_FILE, TAMA_OBJECTIVE_AUTHORITY_MODEL_ROUTER_URL,
TAMA_OBJECTIVE_AUTHORITY_MODEL_ROUTE) and the real Oko register
(NEGATIVE_REPORT_OKO_CLI, with NEGATIVE_REPORT_REPAIRED_DEFECT
naming a defect whose repair Oko records): an unrepaired report is refused
quoting its sentence, the same report citing the repaired defect passes, and a
session without the supervisor role is not judged.