Repository navigation
SYS REQ 028
The system shall perform a privileged action proposed by an automation requester (an agent session, a bot, or a scheduled workflow) only after a human reviewer who is not the requester approves that individual request through a protected GitHub Actions environment in the repository where the action runs.
Operator authorization is given in chat today: it is not recorded, nothing enforces it, and forks cannot reuse it. REQ-060, REQ-061, REQ-072, REQ-083, and REQ-084 depend on a separate operator authorization without defining how it is given, and REQ-005 escalation issues notify a human without authorizing anything. The operator approved this direction and the recommended defaults for decisions D1 to D8 in VITechnologies/projectbuddy#177; ADR-0007 records them.
An approved request performs its action exactly once, with the approved content. A rejected, expired, re-run, drifted, or ungated request performs no write. Every request leaves a durable record naming its request ID, content digest, run, reviewer, decision, comment, and outcome.
Planned system-integration verification; TEST-096 to TEST-102. The gate was implemented in VITechnologies/projectbuddy#180 and passes offline fixture tests; no live proof yet.
System-Requirements-Specification
High
TEST-096, TEST-097, TEST-098, TEST-099, TEST-100, TEST-101, TEST-102
scripts/tests/test_approval_gate_*.py offline fixtures; fork known-answer pilot planned
REQ-094, REQ-095, REQ-096, REQ-097, REQ-098, REQ-099, REQ-100
Planned; offline fixture tests pass, no live proof yet