diff --git a/wizard-work/sol/untracked-triage-2026-11-01-snapshot.txt b/wizard-work/sol/untracked-triage-2026-11-01-snapshot.txt index a5a2607..2ff7d6a 100644 --- a/wizard-work/sol/untracked-triage-2026-11-01-snapshot.txt +++ b/wizard-work/sol/untracked-triage-2026-11-01-snapshot.txt @@ -293,4 +293,3 @@ wizard-work/sphinx/lcmm-claim-index-2026-10-24/tools/show_quotes.py wizard-work/sphinx/lcmm-claim-index-2026-10-24/tools/tamper_probe.py wizard-work/sphinx/lcmm-claim-index-2026-10-24/verify_claim_index.py wizard-work/sphinx/lcmm-claim-index-2026-10-24/vocabulary_index.json -wizard-work/volt/q144-check-entry/CHECK-q144 diff --git a/wizard-work/sol/untracked-triage-2026-11-01.json b/wizard-work/sol/untracked-triage-2026-11-01.json index 3f03b05..fdea664 100644 --- a/wizard-work/sol/untracked-triage-2026-11-01.json +++ b/wizard-work/sol/untracked-triage-2026-11-01.json @@ -1,11 +1,11 @@ { "generated": "2026-11-01T00:00:00Z", "repo": "/root/troupe-standup", - "total": 296, + "total": 295, "rule": "canonical untracked-file classifier (as documented)", "counts": { "data": 7, - "other": 2, + "other": 1, "probe": 81, "report": 200, "tool": 6 diff --git a/wizard-work/sol/untracked-triage-2026-11-01.md b/wizard-work/sol/untracked-triage-2026-11-01.md index 4bc42b2..8b9517e 100644 --- a/wizard-work/sol/untracked-triage-2026-11-01.md +++ b/wizard-work/sol/untracked-triage-2026-11-01.md @@ -1,6 +1,6 @@ # Untracked-file triage classification - fresh re-derivation # -Frozen at build time: 296 untracked, non-ignored files under /root/troupe-standup +Frozen at build time: 295 untracked, non-ignored files under /root/troupe-standup ## Rule @@ -18,7 +18,7 @@ Single canonical rule `category(p)` (see `verify_untracked_triage_2026_11_01.py` ## Live-vs-frozen delta -Frozen universe (previous commit): 304 paths on 2026-10-29. Live universe: 296 paths. +Frozen universe (previous commit): 304 paths on 2026-10-29. Live universe: 295 paths. Deleted since freeze (present in frozen, absent from live): - verify_wordcount_test.py @@ -45,16 +45,16 @@ Added since freeze (present in live, absent from frozen): |---|---| | data | 7 | | deliverable | 0 | -| other | 2 | +| other | 1 | | probe | 81 | | report | 200 | | tool | 6 | | --- | --- | -| **total** | **296** | +| **total** | **295** | ## Artifacts -- `untracked-triage-2026-11-01-snapshot.txt`: frozen path universe (296 paths) +- `untracked-triage-2026-11-01-snapshot.txt`: frozen path universe (295 paths) - `untracked-triage-2026-11-01.tsv`: `pathcategory` per row - `untracked-triage-2026-11-01.json`: machine-readable counts - `verify_untracked_triage_2026_11_01.py`: independent re-derivation gate (exit 0 = manifest matches rule) diff --git a/wizard-work/sol/untracked-triage-2026-11-01.tsv b/wizard-work/sol/untracked-triage-2026-11-01.tsv index 682df90..a4939e0 100644 --- a/wizard-work/sol/untracked-triage-2026-11-01.tsv +++ b/wizard-work/sol/untracked-triage-2026-11-01.tsv @@ -294,4 +294,3 @@ wizard-work/sphinx/lcmm-claim-index-2026-10-24/tools/show_quotes.py report wizard-work/sphinx/lcmm-claim-index-2026-10-24/tools/tamper_probe.py report wizard-work/sphinx/lcmm-claim-index-2026-10-24/verify_claim_index.py report wizard-work/sphinx/lcmm-claim-index-2026-10-24/vocabulary_index.json report -wizard-work/volt/q144-check-entry/CHECK-q144 other diff --git a/wizard-work/volt/q144-check-entry/CHECK-q144 b/wizard-work/volt/q144-check-entry/CHECK-q144 new file mode 100644 index 0000000..3821962 --- /dev/null +++ b/wizard-work/volt/q144-check-entry/CHECK-q144 @@ -0,0 +1,71 @@ +#!/usr/bin/env bash +# CHECK-q144 -- the four entry points Q144 repaired read green, the baseline +# still covers every entry point, and the albums gate still reds when its table +# is wrong (a repair that only ever prints PASS is the class this queue files). +# +# Legs: +# albums wizard-work/ledger/2026-10-29-albums-census/CHECK -> rc 0, "CHECK: OK" +# sol wizard-work/sol/CHECK-sol-l030 -> rc 0, "re-derives 12/12" +# census wizard-work/ledger/CHECK-wizard-work-census-2026-11-01 -> rc 0 +# q143 ./CHECK-q143 (selftest 20 cells + entry-point set) -> rc 0 +# baseline check_sweep.py --paths: every entry point has a reviewed row +# mutant a COPY of the albums directory, table row 2 moved 1,10 -> 1,9, +# reds at rc 1; with raw_albums.json gone it reads rc 2 +# +# Exit codes: 0 all legs green, 1 a leg faulted, 2 a leg could not grade. +set -u +HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" || exit 2 +ROOT="$(cd "$HERE/../../.." && pwd)" || exit 2 +PY="${PYTHON:-python3}" +ALB="$ROOT/wizard-work/ledger/2026-10-29-albums-census" +SOL="$ROOT/wizard-work/sol" +CEN="$ROOT/wizard-work/ledger" +SWEEP="$ROOT/wizard-work/volt/q143-check-sweep/check_sweep.py" +WORK="$(mktemp -d "${TMPDIR:-/tmp}/check-q144.XXXXXX")" || exit 2 +trap 'rm -rf "$WORK"' EXIT +rc=0 +legs=0 +faults=0 + +row() { printf ' %-9s %s\n' "$1" "$2"; } + +# expect +expect() { + name="$1"; want="$2"; text="$3"; shift 3 + legs=$((legs + 1)) + out="$("$@" 2>&1)" + got=$? + if [ "$got" -eq "$want" ] && printf '%s' "$out" | grep -qF -- "$text"; then + row "$name" "PASS rc=$got $(printf '%s' "$out" | tail -1 | cut -c1-64)" + else + faults=$((faults + 1)); rc=1 + row "$name" "FAULT want rc=$want/'$text' got rc=$got: $(printf '%s' "$out" | tail -1 | cut -c1-90)" + fi +} + +expect albums 0 "CHECK: OK" bash "$ALB/CHECK" +expect sol 0 "re-derives 12/12" bash "$SOL/CHECK-sol-l030" +expect census 0 "PASS" bash "$CEN/CHECK-wizard-work-census-2026-11-01" +expect q143 0 "all passed" bash "$ROOT/CHECK-q143" +expect baseline 0 "0 fault(s)" "$PY" "$SWEEP" --repo "$ROOT" --paths + +# mutant: the same check on a copy whose table is wrong, then whose source is gone +legs=$((legs + 1)) +cp -a "$ALB" "$WORK/albums" || exit 2 +sed -i '2s/,10$/,9/' "$WORK/albums/albums_by_user.csv" +bash "$WORK/albums/CHECK" >"$WORK/m1.txt" 2>&1; m1=$? +mv "$WORK/albums/raw_albums.json" "$WORK/albums/raw_albums.json.bak" +bash "$WORK/albums/CHECK" >"$WORK/m2.txt" 2>&1; m2=$? +if [ "$m1" -eq 1 ] && grep -qF "CHECK: MISMATCH" "$WORK/m1.txt" && [ "$m2" -eq 2 ]; then + row mutant "PASS wrong-table rc=1, missing-source rc=$m2" +else + faults=$((faults + 1)); rc=1 + row mutant "FAULT wrong-table rc=$m1 missing-source rc=$m2" +fi + +if [ "$rc" -eq 0 ]; then + echo "q144: $legs leg(s), all passed" +else + echo "q144: $legs leg(s), $faults fault(s)" +fi +exit "$rc"