|
R15 RULED: all three gate floors, with a harness manifest rather than a count (OPS)
GA-R5: question and exact utterance quoted, dated, pushed. Operator utterance: "All three, with a harness MANIFEST rather than a count (Recommended)". OPS under GA-R3 -- three script fixes, no D-number. IT OPERATIONALISES GA-R6. That ruling lets a stage close only on a NAMED EXECUTABLE CHECK. These three checks were not capable of failing, so the closes they certified were weaker than they read. 1. repo-lint gains a valid-root check and a files-scanned floor. repo_lint.py:132-135 strips only the two KNOWN flags, so any other --flag becomes argv[0] i.e. the ROOT, with no is_dir() check and no floor. A one-character typo of either the flag or the path resolves to a nonexistent directory, rglob yields nothing, and it reports PASS (0 fail, 0 warn) over ZERO files -- reproduced twice this session. This is the gate whose "0-fail" every GA-R6 stage close in this project's history cites, and it cannot distinguish a clean repo from an unexamined one. 2. The gauntlet pins a checked-in MANIFEST of harness NAMES, drift-checked, not a count. run-tests-all.sh:35 already has a zero-floor; what is absent is any pin on WHICH harnesses ran, and 81 exists only as prose. The manifest choice is the substance of this ruling: a bare count does NOT catch a rename, since adding one harness while removing another holds the count. It mirrors two proven in-repo patterns -- clientdocs/sweep-receipt.txt hash-pinning and the D-137 creds-manifests derive-plus-drift gate. 3. preflight stops failing open. note() tests only rc -eq 1 and rc -eq 2, so 127/126/130 and any rc>=3 leave "PREFLIGHT: PASS -- clear to add-model / deploy" -- measured with a sub-gate exiting 127. And rc=2, which is precisely how these checkers signal "I could not evaluate anything", is remapped to WARN in P1/P2/P3. The project already fixed exactly this for P5 (harness T9), so this extends a proven pattern rather than inventing one. Preflight authorises the deploy, which is why it was included rather than deferred. ORDERING TRAP RECORDED FOR WHOEVER EXECUTES THIS: these changes alter what "green" MEANS, so the gauntlet and lint runs that certify them must be read with that in mind -- and a harness manifest introduced mid-session must be seeded from a tree that is itself verified, not from whatever happens to be on disk. Seeding it from an unverified tree would pin the very drift it exists to detect. ALL QUEUED RULINGS ARE NOW CLOSED: R1-R13 and R15 ruled, R2a and R14 withdrawn as raised in error, G18 opened deferred-and-gated. Revert: git revert this commit; the CURRENT-STATE entry is additive. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HvCyrwvYTTcDYnRErfMsNf |
|---|
|
|
| docs/CURRENT-STATE.md |
|---|