feat(gate): refuse a push from main when the lane says pull request #332
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!332
Loading…
Reference in a new issue
No description provided.
Delete branch "eng/gate-knows-the-lane"
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?
The repository declares its workflow in
.ward/ward.yamland nothing read it, so an agent can violate the lane with every check green.I did exactly that, twice, thirty minutes after
17aa7b8landed. That is #329, which I filed against myself.It fires at the moment of the mistake, which is the property the four red mains and this lane breach have all lacked: a correct rule, written down, with nothing enforcing it where the mistake happens.
Read from
ward.yamlrather than hardcoded, so a repository on the direct lane is unaffected and one that switches later needs no second edit. The test skips itself when the declaration is not the pull-request lane, for the same reason.On me writing this. I said on 329 that a guard written by the offender to make their own mistake impossible should be reviewed by someone else, and I meant it. That objection is answered by the lane itself — this arrives as a pull request, so someone else merges it. Building it and refusing to build it were both worse than building it where the review is structural.
Verified by mutation: removing the block fails
TestTheGateReadsTheDeclaredWorkflowby name, and running the gate onmainrefuses with the switch command.ward exec gatepasses on this branch.