Files
troupe-standup/CHECK-q167
T

101 lines
4.4 KiB
Bash

#!/usr/bin/env bash
# CHECK-q167 -- the queue's open-set pin matches the queue it sits beside, in
# this worktree AND in the commit, and the reading is not unconditional.
#
# The defect (Q167, 2026-11-04): `56d3853` appended a heading to
# `WORK-QUEUE.md` (`## Q69 addendum 2 ...`), re-rendered `docs/queue-index.md`
# and left `PIN_COUNTS` in `wizard-work/volt/q137-open-set/open_set.py` at the
# pre-append values, so the repo gate's open-set leg read
# `FAIL count headings moved 116 -> 117` at HEAD and `gate: FAULT` for two
# commits. The append-audit leg stayed green because the index was current:
# nothing graded the pin per commit.
#
# Four legs:
# pin this worktree's `open_set.py --check` reads rc 0 and prints
# `CHECK OK`
# counts an independent grep/sort recount of WORK-QUEUE.md -- headings,
# heading ids, records, record ids -- equals the numbers the tool
# prints, so the pin is graded against the file, not against itself
# tree `git archive HEAD` into a scratch dir, graded by that tree's own
# open_set.py: the commit is read, not the worktree (this leg reads
# rc 1 at 56d3853)
# poison a copy of the queue with one appended heading must red, so the
# green above is the pin and not an unconditional pass
#
# Exit codes: 0 all legs passed, 1 a fault, 2 could not grade.
set -u
set -o pipefail
cd "$(dirname "${BASH_SOURCE[0]}")" || exit 2
ROOT="$(pwd)"
QUEUE="$ROOT/WORK-QUEUE.md"
TOOL="$ROOT/wizard-work/volt/q137-open-set/open_set.py"
PY="${PYTHON:-python3}"
for f in "$QUEUE" "$TOOL"; do
if [ ! -f "$f" ]; then
printf 'CANNOT GRADE: missing %s\n' "$f"
exit 2
fi
done
WORK="$(mktemp -d "${TMPDIR:-/tmp}/check-q167.XXXXXX")" || exit 2
trap 'rm -rf "$WORK"' EXIT
passed=0
failed=0
row() { printf ' %-8s %s\n' "$1" "$2"; }
verdict() { if [ "$2" -eq 0 ]; then passed=$((passed + 1)); else failed=$((failed + 1)); fi; row "$1" "$3"; }
# --- leg 1: the worktree pin is the worktree queue ---------------------------
out="$("$PY" "$TOOL" --repo "$ROOT" --check 2>&1)"; rc=$?
last="$(printf '%s' "$out" | tail -1)"
verdict pin \
"$([ "$rc" -eq 0 ] && printf '%s' "$out" | grep -q 'CHECK OK' && echo 0 || echo 1)" \
"rc=$rc ${last:-<no output>}"
# --- leg 2: the tool's counts are the file's counts --------------------------
heads="$(grep -cE '^##+ +Q[0-9]+' "$QUEUE")"
recs="$(grep -cE '^\*\*Q[0-9]+ +—' "$QUEUE")"
head_ids="$(grep -oE '^##+ +Q[0-9]+' "$QUEUE" | grep -oE 'Q[0-9]+' | sort -u | wc -l | tr -d ' ')"
rec_ids="$(grep -oE '^\*\*Q[0-9]+ +—' "$QUEUE" | grep -oE 'Q[0-9]+' | sort -u | wc -l | tr -d ' ')"
line="$(printf '%s' "$out" | head -1)"
hits=0
printf '%s' "$line" | grep -q "$heads headings/$head_ids ids" && hits=$((hits + 1))
printf '%s' "$line" | grep -q "$recs records/$rec_ids ids" && hits=$((hits + 1))
verdict counts "$([ "$hits" -eq 2 ] && echo 0 || echo 1)" \
"recount=$heads headings/$head_ids ids, $recs records/$rec_ids ids hits=$hits/2"
# --- leg 3: the committed tree, graded by its own tool ------------------------
mkdir -p "$WORK/head" || exit 2
if ! git -C "$ROOT" archive HEAD | tar -x -C "$WORK/head" 2>"$WORK/tar.log"; then
printf 'CANNOT GRADE: git archive HEAD failed: %s\n' "$(tail -1 "$WORK/tar.log")"
exit 2
fi
tout="$("$PY" "$WORK/head/wizard-work/volt/q137-open-set/open_set.py" \
--repo "$WORK/head" --check 2>&1)"; trc=$?
rev="$(git -C "$ROOT" rev-parse --short HEAD)"
tlast="$(printf '%s' "$tout" | tail -1)"
verdict tree \
"$([ "$trc" -eq 0 ] && printf '%s' "$tout" | grep -q 'CHECK OK' && echo 0 || echo 1)" \
"HEAD=$rev rc=$trc ${tlast:-<no output>}"
# --- leg 4: one appended heading must red ------------------------------------
mkdir -p "$WORK/poison" || exit 2
cp "$TOOL" "$WORK/poison/open_set.py" || exit 2
cp "$QUEUE" "$WORK/poison/WORK-QUEUE.md" || exit 2
printf '\n## Q999 poison — a heading the pin did not count\n' >> "$WORK/poison/WORK-QUEUE.md"
pout="$("$PY" "$WORK/poison/open_set.py" --repo "$WORK/poison" --check 2>&1)"; prc=$?
named="$(printf '%s' "$pout" | grep -c 'headings')"
plast="$(printf '%s' "$pout" | tail -1)"
verdict poison \
"$([ "$prc" -eq 1 ] && [ "$named" -ge 1 ] && echo 0 || echo 1)" \
"rc=$prc (want 1) headings-named=$named ${plast:-<no output>}"
if [ "$failed" -eq 0 ]; then
echo "q167: $passed leg(s), 0 fault(s), rc 0"
exit 0
fi
echo "q167: $passed passed, $failed fault(s), rc 1"
exit 1