mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
The say()/dm() defence-in-depth guard only rejected auditor, but CLAUDE.md mandates the same no-agent-comms invariant for pr_reviewer (posts findings on the PR), prompter and secretary (human-only, note + evidence). For those three the manifest was the only gate, so a call bypassing the manifest (direct API POST, test harness, future routing change) would not be refused at the handler — admission depended on the agent's slug happening to be absent from the channel/a2a matrix. Extend the guard to a _NO_COMMS_ROLES frozenset (auditor + pr_reviewer + prompter + secretary), matching the explicit role-frozenset gates on commit/notify/pitch/playbook/open_session. Role-appropriate remediation per role. The claimed defence-in-depth now covers 4 of 4 silent roles, not 1 of 4.