Commit 299391a
ci: run the backlog status invariant ungated, and correct #320 to the measurement
Two fixes from the same investigation, both correcting my own work.
1. THE GUARD GAP THAT RED main.
Two guards police docs/BACKLOG.md. The number-space gate is DELIBERATELY ungated,
with a comment saying gating it "would skip it on exactly the pull requests it
exists to police". The STATUS invariant was reachable only through pytest, which
IS gated on `code == 'true'` -- so on a BACKLOG-only PR, the exact shape it exists
to check, it did not run at all.
On 2026-08-01 that let #117 merge with a #320 banner using an emoji the invariant
rejects. Docs-only, so the leg went green in seconds without compiling the suite;
main was then red for every session until another session's PR tripped over it. A
0.6s markdown parse would have caught it. One hardened and one unhardened guard
over the same file is worse than neither: the hardened one makes it reasonable to
assume BACKLOG changes are covered.
Adds an ungated step running scripts/docs/backlog_status_check.py. The step above
advertises "git + stdlib python (no install), costs seconds" and that property is
preserved exactly -- the script imports only argparse/re/sys/pathlib and has its
own CLI. tests/test_backlog_status_check.py imports the SAME module, so there is
one implementation, the unit tests keep covering the edge cases, and this only
adds the always-on invocation.
2. #320's DIAGNOSIS WAS WRONG.
It claimed windows-2025 "cannot service 60/s" and is "~10x slower". A 36-run sweep
across all three hosted SKUs (run 30705885914, 3 repeats per cell) refutes both:
stranded ubuntu win-2022 win-2025
60/s 0,0,0 0,0,0 0,0,0
150/s 0,0,0 0,0,0 0,0,0
300/s 0,0,0 0,0,0 0,0,0
600/s 0,0,0 4.6/8.9/19.2% 25.4/30.7/31.1%
wall ubuntu win-2022 win-2025 2025 vs ubuntu
60/s 2.8s 4.7s 4.9s 1.8x
150/s 4.3s 10.1s 11.9s 2.8x
300/s 8.4s 22.0s 29.8s 3.5x
What holds: a consistent ubuntu > win-2022 > win-2025 ordering, and ~3x more
stranding than its sibling at saturation. It is genuinely the slowest leg.
What is refuted: the gap is a LATENCY gap of 1.8x-3.5x, not a capacity cliff.
windows-2025 ingests everything up to 300/s -- five times the rate the failing
test offers -- and strands 0% at 60/s in three of three runs.
So the 60/s failures are still unexplained: real, byte-identical twice, but not a
property of the SKU at that rate or the sweep would show them. The untested
variable is CONTENTION -- the probe runs the engine alone on an idle runner, while
the CI failure happens with the full suite alongside it in a ~20-minute job. That
also matches the developer-box outlier already retracted in this item.
Consequence: this is a TOLERANCE problem, not a throughput one, which is what
#115's widened stranding budget already absorbs -- that fix is better supported
now than when it was made. And the product concern this item originally raised is
not supported: a 1.8x-3.5x gap on a hosted VM image says nothing about Windows
Server 2025 as a deployment target.
Verified: backlog_status_check exits 0 (244 items); the new step parses and is
ungated (`runner.os == 'Linux'` only, no `code` condition); 122 backlog /
required-context / workflow guard tests pass.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>1 parent 2a6649f commit 299391a
2 files changed
Lines changed: 57 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
116 | 139 | | |
117 | 140 | | |
118 | 141 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7296 | 7296 | | |
7297 | 7297 | | |
7298 | 7298 | | |
7299 | | - | |
| 7299 | + | |
7300 | 7300 | | |
7301 | 7301 | | |
7302 | 7302 | | |
7303 | 7303 | | |
7304 | 7304 | | |
7305 | | - | |
| 7305 | + | |
| 7306 | + | |
| 7307 | + | |
7306 | 7308 | | |
7307 | 7309 | | |
7308 | 7310 | | |
| |||
7326 | 7328 | | |
7327 | 7329 | | |
7328 | 7330 | | |
7329 | | - | |
| 7331 | + | |
| 7332 | + | |
| 7333 | + | |
| 7334 | + | |
| 7335 | + | |
| 7336 | + | |
| 7337 | + | |
| 7338 | + | |
| 7339 | + | |
| 7340 | + | |
| 7341 | + | |
| 7342 | + | |
| 7343 | + | |
| 7344 | + | |
| 7345 | + | |
| 7346 | + | |
| 7347 | + | |
| 7348 | + | |
| 7349 | + | |
| 7350 | + | |
| 7351 | + | |
| 7352 | + | |
| 7353 | + | |
| 7354 | + | |
| 7355 | + | |
| 7356 | + | |
| 7357 | + | |
| 7358 | + | |
| 7359 | + | |
| 7360 | + | |
7330 | 7361 | | |
7331 | 7362 | | |
7332 | 7363 | | |
| |||
0 commit comments