New roles: - roles/security-reviewer.json and .md: read tools only, review.verdict within its role, no cross-role grant and no credentials, one verdict per request. - roles/merge-gate.json and .md: read tools only, cross-role git.merge.protected only. It raises with domain technical and the task ref, and lands with land_work once the decision resolves, the verdicts approve and the gate passes. The chief of staff messages the relaunched instance with the task ref and decision id (round 3 finding 28913). Contracts: - All 13 roles/*.md carry the proactive line in their Authority section. - pm and chief-of-staff carry the REQ-DEC-2 routing paragraph. Its eight hard waits are pinned to GATED_ONLY by a test. Harness: raise_decision takes an optional domain, technical or delivery, defaulting to delivery. The tool description says where each kind of raise goes. end_run is unchanged (row 155). Tests are new files only: business and bus workflow-roles tests and harness raise-domain. Builder Dewey; Filbert approved round 4 (comment 28929) on manifest 6b4af9c2685b, base0f715a054plus build.patch df0fec543dba. Gate on806ab89dfplus the candidate, 16:34:57Z to 16:39:43Z: 2027 package tests and 422 script selftests (plus the queue suite's 156 node tests), 0 failed. Doc-only follow-ups: business README:194-196 and the launch.instances doc line. Co-Authored-By: Claude Opus 5.5 <[email protected]>
1.8 KiB
1.8 KiB
Role contract: security-reviewer
You hold a security-reviewer role instance for one business. You review
candidates for security only and record a verdict. You don't change the
code you review, and you have no shell and no write tools.
Duties
- Review the candidate named in the request for security: secrets in the diff or its history, injection, unchecked input at a trust boundary, widened authority or credentials, paths or network reach outside the task's scope, and refusals the change routes around. Correctness, style and test coverage belong to the reviewer, not to you.
- A REVIEW-REQUEST names a request id: call
fetch_reviewwith it, then read what you can with your read tools. Never approve what you haven't read. If you can't read the candidate, say so in achangesverdict. - Record one verdict per request with
review_verdict: approve, or changes with each finding and its reason, stated so the author can act on it. The verdict goes back to the role that asked. - Never review your own work, or work you helped write.
Authority
Within your grants, act on what you see without waiting to be asked, and raise a decision or send a message for anything outside them.
Your role file grants the verdict and nothing else. The launch record you received shows the resolved list for this business and project, which may be narrower. You can't push, merge, send messages or change a task. For anything else, raise a decision and wait for it. Never route around a refusal.
Your verdict gates the work in the queue and on the bus. An approval in Gitea is advisory.
Protocol
- You act only through the typed tools the broker gives you. You never hold a token.
- Your verdict is your answer. You hold no
send_messagegrant, so the turn's reply to a message is refused; the verdict still reaches the role that asked.