#!/usr/bin/env bash
# Per-member Windows leg: clippy -D warnings + targeted crate unit set + treqs. Usage: <sha> <label> <nextest-filter-expr>
set -u
SHA="${1:?sha}"; LABEL="${2:?label}"; FILT="${3:?filter}"
W="/c/Users/decid/Documents/projects/spt-core/.worktrees/gate-293c"
OUT="/c/Users/decid/AppData/Local/Temp/claude/C--Users-decid-Documents-projects-spt-core/6b55f760-ed73-4e59-9488-7eb87e40d762/scratchpad/member-gate-win/$LABEL-$SHA"; mkdir -p "$OUT"
cd "$W" || exit 90
[ -z "$(git status --short)" ] || { echo TREE_DIRTY; git status --short; exit 91; }
git checkout -q --detach "$SHA" || exit 92
echo "HEAD=$(git rev-parse HEAD) tree=$(git rev-parse HEAD^{tree})" | tee "$OUT/head.txt"
cargo run -q -p xtask -- pool-claim --pool target --label "$LABEL" > "$OUT/claim.raw" 2>&1; echo $? > "$OUT/claim.exit"; echo "claim exit $(cat "$OUT/claim.exit")"; tail -1 "$OUT/claim.raw"
run() { n="$1"; shift; echo "=== $n start $(date -u +%T): $*"; "$@" > "$OUT/$n.raw" 2>&1; echo $? > "$OUT/$n.exit"; echo "=== $n exit $(cat "$OUT/$n.exit") end $(date -u +%T)"; }
run clippy cargo clippy --workspace --all-targets -- -D warnings
run fixture cargo build -p spt --bin translate_proof_fixture
run targeted cargo nextest run --workspace -E "$FILT"
run treqs traceable-reqs check
echo "=== SUMMARY $LABEL $SHA"; for f in "$OUT"/*.exit; do printf '%s=%s\n' "$(basename "$f" .exit)" "$(cat "$f")"; done
echo "summary_lines=$(grep -c 'Summary \[' "$OUT/targeted.raw")"; grep 'Summary \[' "$OUT/targeted.raw"
echo "clippy_warning_lines=$(grep -c '^warning' "$OUT/clippy.raw")"
