75 lines
3.4 KiB
Bash
75 lines
3.4 KiB
Bash
#!/usr/bin/env bash
|
|
# CHECK-q156 -- the Q85 landing left the gate red in three legs; repaired, and
|
|
# the three legs plus the record that says so are graded here.
|
|
#
|
|
# WHAT WAS WRONG (measured at 8e08516, before this tick's edits)
|
|
# c05f05a appended a `## Q85 closure` heading and a `**Q85 — DONE ...` record
|
|
# to WORK-QUEUE.md and shipped neither the re-rendered docs/queue-index.md
|
|
# nor the PIN_COUNTS move. tools/verify.py --fast read 12 legs, 8 pass,
|
|
# 3 fault (index-current, append-audit, open-set), gate FAULT, rc 1; each leg
|
|
# read alone was rc 1 with STALE at line 7 / `STALE c05f05a index:no` /
|
|
# headings 102 -> 103, records 116 -> 117, record_ids 82 -> 83.
|
|
#
|
|
# WHAT THIS GRADES
|
|
# 1. gate tools/verify.py --fast -- 12 legs, 0 fault, rc 0.
|
|
# 2. open-set open_set.py --check -- the PIN_COUNTS match this queue.
|
|
# 3. index queue_index.py --check -- the rendered index matches it.
|
|
# 4. append-guard queue_append_audit.py --guard --to HEAD -- the newest
|
|
# queue-touching commit left the index current in its OWN
|
|
# tree. This leg is why the repair had to touch the queue
|
|
# and the index in one commit: the guard grades the newest
|
|
# queue-touching commit, so a repair commit that skipped the
|
|
# queue would still leave c05f05a under the guard.
|
|
# 5. record the Q156 record is in WORK-QUEUE.md and the Q156/Q85 pin
|
|
# comment is in open_set.py -- drop either and this reds
|
|
# instead of leaving a silent record.
|
|
# 6. lint check_lint.py --check "bash CHECK-q156" -- SOUND, so the
|
|
# line a runner extracts is the one this file runs.
|
|
#
|
|
# rc 0 every leg holds rc 1 a leg failed rc 2 could not grade
|
|
set -u
|
|
ROOT="$(git -C "$(dirname "$0")" rev-parse --show-toplevel 2>/dev/null)" || exit 2
|
|
[ -n "$ROOT" ] || exit 2
|
|
cd "$ROOT" || exit 2
|
|
|
|
QUEUE=WORK-QUEUE.md
|
|
INDEX=docs/queue-index.md
|
|
PINS=wizard-work/volt/q137-open-set/open_set.py
|
|
for f in "$QUEUE" "$INDEX" "$PINS" tools/verify.py; do
|
|
[ -f "$f" ] || { echo "CANNOT GRADE: $f is missing"; exit 2; }
|
|
done
|
|
|
|
legs=0
|
|
faults=0
|
|
leg() { # leg <name> <rc> <detail>
|
|
legs=$((legs + 1))
|
|
if [ "$2" -eq 0 ]; then printf 'PASS %-12s %s\n' "$1" "$3"
|
|
else printf 'FAIL %-12s %s\n' "$1" "$3"; faults=$((faults + 1)); fi
|
|
}
|
|
|
|
out="$(python3 tools/verify.py --fast 2>&1)"; rc=$?
|
|
leg gate "$rc" "$(printf '%s' "$out" | grep -m1 -E '^(gate|verify):' | tr -d '\n')"
|
|
|
|
out="$(python3 wizard-work/volt/q137-open-set/open_set.py --repo . --check 2>&1)"; rc=$?
|
|
leg open-set "$rc" "$(printf '%s' "$out" | grep -m1 '^CHECK ')"
|
|
|
|
out="$(python3 tools/queue_index.py --check "$INDEX" 2>&1)"; rc=$?
|
|
leg index "$rc" "$(printf '%s' "$out" | grep -m1 '^index current' )"
|
|
|
|
out="$(python3 tools/queue_append_audit.py --guard --to HEAD 2>&1)"; rc=$?
|
|
leg append-guard "$rc" "$(printf '%s' "$out" | grep -m1 '^verdict')"
|
|
|
|
grep -q '^## Q156 closure' "$QUEUE" && grep -q '^# Q85 (2026-11-02)' "$PINS" \
|
|
&& grep -q '^# Q156 (2026-11-02)' "$PINS"
|
|
leg record "$?" "$(grep -c '^## Q156 closure' "$QUEUE") Q156 heading(s) in $QUEUE"
|
|
|
|
out="$(python3 tools/check_lint.py --check "bash CHECK-q156" 2>&1)"; rc=$?
|
|
leg lint "$rc" "$(printf '%s' "$out" | grep -m1 -E 'SOUND|FAULT' | cut -c1-60)"
|
|
|
|
if [ "$faults" -eq 0 ]; then
|
|
echo "q156: $legs leg(s), all passed"
|
|
exit 0
|
|
fi
|
|
echo "q156: $legs leg(s), $faults fault(s)"
|
|
exit 1
|