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.

  1. The dispatch tool - #1047, then #1351. Labelling and dispatch run through the first, and the second is plausibly the same body-flag plumbing.
  2. Guards wrong about their own scope - #1378, #1366.
  3. Validators that pass vacuously - #1205, #1206, #1180, #1199.
  4. Loaders and gates that skip silently - #1208, #1212, #1192.
  5. The documentation budget - #1111 first, since splitting the validator is what the rest depend on, then #1119, #1303, #1274, #1341, #1312, #1337.
  6. Ownership - #1374 then #1373 (which may become moot), #1329, #1380, #1106, #1377, #1299.
  7. Survey only, no edits - #1352. Read-only inventory of 65 kubectl call sites.
  8. 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.

No due date
56% Completed