Docs/Reference

Reference

A supervisor's negative report needs its repair

Part of enforcement control, completion enforcement.

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.