Estate instrument
estate-hygiene
Thirteen checks across every repository, with the repositories missing each one named rather than counted, and a per-dimension ratchet floor — because a mean lets one dimension collapse behind another’s improvement.
source: flashyos/tools/estate-hygiene.mjs
node tools/estate-hygiene.mjs (flashyos)It reads refs/remotes/origin/HEAD’s tree and says which branch it read per repository — because reading the working checkout once reported secret scanning at 35/35 when the truth was 15/35.
Where the declared default branch is an agent’s scratch branch and a conventional trunk is strictly ahead, it reads the trunk and records the discrepancy — while still failing the setting, because reading past a lie must not silence the finding that it is one.
Edge cases — each one paid for once
A hygiene gate that goes green because it could not look is worse than no gate
The CI wrapper fails rather than skips when its read token is absent — it is believed either way.
A floor written against a partial estate is not a floor
The first floor recorded numbers from a 21-repository read that a full read never reproduced; the gate was red from the day it was committed with nobody running it. Floors are regenerated only from full reads, and say so in the file.