Status view, part 3 (the gate): scripts/status_view_gate.py in repo_gates.py (fast: pre-push + CI) — size outside decide, one Updated paragraph, English outside quotes, cited rows open, no decided row in decide, the P1 and every operator-owned row on the page; WARN-FIRST until 2026-10-27, then it refuses; 39 decoy cases (red-proved per check and on both sides of the date); filed R-1174 (P4, Process & tooling) + its due check 2026-10-27; R-919 owner cell -> operator (the upload and the look); register 152 -> 153

Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
This commit is contained in:
admin committed 2026-10-20 11:59:48 +02:00
1 parent 9ec5f76a88
commit 1d7071e8fd
7 files changed
+521 -3

No files matched your search

+19
View File
@@ -116,6 +116,12 @@ COVERS = {
"accepted line with no reason warns; a CALLED govulncheck finding is listed, an imported-only "
"one is not; no tool anywhere is NOT CHECKED out loud, never a silent pass; the clean commit "
"and the accepted line pass. Warn-first: every case exits 0, the LISTING is the fact"),
"status-view": ("R-1174: scripts/test_status_view_gate.py, run from here (temp files, the real tree untouched): one "
"decoy per check, each the shape a real session writes — 50 more lines, news prepended with the "
"old paragraph left behind, an Earlier chain, a Hungarian do-line, a closed row cited, a DECIDED "
"row left in the decide table, the P1 line deleted to meet the size, the Later line deleted — "
"each convicting ON ITS OWN check, warning before 2026-10-27 and refusing from it; the genuine "
"fixture and the REAL page must pass; no sections / no register are INCONCLUSIVE (exit 2)"),
"hub-gofmt": ("R-1160: an unformatted .go file in a SCRATCH module dir is convicted by name; its "
"formatted twin passes; with no gofmt reachable, CI passes OUT LOUD and a dev machine is "
"INCONCLUSIVE, never a silent pass"),
@@ -805,6 +811,19 @@ else:
_n = _ss.stdout.strip().splitlines()[-1] if _ss.stdout.strip() else "?"
print(" ok %-20s %s" % ("security-scan", _n))
# ── status-view (R-1174) ─────────────────────────────────────────────────────────────────────────
#
# Its decoys are temp STATUS/register pairs, so they live in their own file and are RUN from here (security-scan's shape).
ran += 1
_sv = subprocess.run([sys.executable, os.path.join("scripts", "test_status_view_gate.py")],
cwd=ROOT, capture_output=True, text=True)
if _sv.returncode != 0:
fails.append("status-view: its decoy suite FAILED — a decoy did not convict\n%s"
% (_sv.stdout + _sv.stderr)[-800:])
else:
_n = _sv.stdout.strip().splitlines()[-1] if _sv.stdout.strip() else "?"
print(" ok %-20s %s" % ("status-view", _n))
# ── script-tests (R-885) ─────────────────────────────────────────────────────────────────────────
#
# Its decoys are whole fake repos, so they live in their own file and are RUN from here (guide-quote's shape).