Rules that do not hold: silent guards, full budgets, second writers
The overnight lane. Three themes, one run order, and every decision it depends on is recorded on the issues rather than held in a conversation.
Themes
1. Guards that pass by not running. A check, guard, or validator that reads exactly like a passing one while binding nothing. pr-guard stood configured on thirteen repositories with no pre-push hook to run in (#1382). A stale pin silently overrode each of their declared lanes (#1383). aosguard issue-label add applied nothing and exited 0 on nine of thirty-nine calls during the triage that built this milestone (#1047).
2. The documentation budget, and what a document is. agentic-os sits on every documentation-layout cap at once, so a new rule has nowhere to put its reasoning. Kai's decisions: the docs count cap stays and pages get merged rather than added; the 2-line comment run cap applies to YAML; documentation-layout splits into placement and size so a non-documentation repo can be released from one without the other.
3. Ownership and second writers. One resource, two writers, no reconciliation. Kai's decisions: the infrastructure label-taxonomy script drives its writes through aosguard rather than its own client, drift is re-converged rather than prevented; .ward/ward.yaml is deleted fleet-wide after its one real consumer is rehomed; aos-eval is deleted regardless of the sirens-echo gate.
Ordering principle
Fix the tools the run depends on before the things it reports on. A wrong result that announces itself is recoverable overnight; a wrong result that reads as success is not.
- The dispatch tool - #1047, then #1351. Labelling and dispatch run through the first, and the second is plausibly the same body-flag plumbing.
- Guards wrong about their own scope - #1378, #1366.
- Validators that pass vacuously - #1205, #1206, #1180, #1199.
- Loaders and gates that skip silently - #1208, #1212, #1192.
- The documentation budget - #1111 first, since splitting the validator is what the rest depend on, then #1119, #1303, #1274, #1341, #1312, #1337.
- Ownership - #1374 then #1373 (which may become moot), #1329, #1380, #1106, #1377, #1299.
- Survey only, no edits - #1352. Read-only inventory of 65 kubectl call sites.
- The consistency tail - #994, #1068, #1317, #1375, #1365, #1376, #1118.
Standing constraints for the run
- Operator-surface changes land rather than stopping at a PR. Kai: they are reversible.
- #1352 is survey-only. No edits, no rebuild, no sweep.
- #1118 waits for #1374 and is then re-read rather than answered.
- Read labels back after every write. Exit codes on the label verbs are not trustworthy until #1047 lands.
Membership is re-derivable
role/platform + autonomy/headless, plus the consult issues whose decisions are now recorded. Re-run the query rather than trusting this list.