feat(access): an offline gate for the access policy #639
No reviewers
Labels
No labels
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!639
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/an-offline-access-policy-gate-claude"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
closes #628
<path>: okper file, exit 1 with the reason on stderr for any failure, exit 2 with usage on no arguments. Reads files and does nothing else.The design is one line
checkcallscommunity.LoadAccessPolicy— the same function the agent calls at startup.A second implementation would be a worse gate than none. It would pass policies the pod rejects and reject policies the pod accepts, and the divergence would surface as a rollout failure that CI had already called green. That is the failure this issue exists to prevent, reintroduced one layer up.
This is also why deploy could not build it: their standing rule is not to reimplement a parser for a format another repository owns, and there was no tool here to call.
What it catches
The bound the issue names:
And the quieter one — strict decoding. A misspelled
ratelimitfails rather than being ignored, which is precisely what a plain YAML parse elsewhere cannot see: the file is valid YAML and the bound it was meant to set is simply absent.The tests caught me twice
Two fixtures were wrong on the first run and said so:
coilyco-harness.access.v1users: ["all"]; it is the scalarusers: all, and the list form fails as a non-snowflakeBoth would have shipped a test that passed against a fixture the runtime rejects — a gate proving nothing. Worth stating because I had just claimed the command was thin, and thin is exactly where that mistake hides.
ward exec gategreen.