#!/bin/bash
# J 格全部读数一次性复现。⛔ sha 全部写死（推论四：HEAD 会被本格交付推走）
# 用法: bash runs/writeback-secondary-surface/run-all.sh
set -u
A=01b6589   # I 格交付前
B=5883444   # 本格起手（= I 格交付后）
P=docs/round2-status.md
D=runs/writeback-secondary-surface
echo "### S 面双栏（⛔ 同一判据、两个时点）"
for t in $A $B; do
  n=$($D/screen.sh $t | wc -l | tr -d ' ')
  f=$($D/screen.sh $t | sed "s|^$t:||" | cut -d: -f1 | sort -u | wc -l | tr -d ' ')
  tot=$(git ls-tree -r --name-only $t -- reports/ | grep -c '\.md$')
  echo "  @$t : 候选行=$n · 两级筛后命中文件=$f · S面总份数=$tot"
done
echo "  增量归因（应 100% 落在 I 格自己那份报告）:"
echo "    writeback-gap 那份贡献 = $($D/screen.sh $B | grep -c 'writeback-gap') 行"
echo
echo "### 跨行档（P=$P @$A）"
for k in 2 3; do
  echo "  k=$k : 跨行候选=$($D/crossline.sh $A $P $k | grep -c '>')  $($D/crossline.sh $A $P $k | tail -1)"
done
echo
echo "### J7 对照臂（四格必须对角）"
echo "  臂1 单行AND @T1(615/617) 期望0 : $($D/single.sh $A $P | sed "s|^$A:$P:||" | cut -d: -f1 | grep -x -E '615|617' | wc -l | tr -d ' ')"
echo "  臂2 k=3    @T1           期望1 : $($D/crossline.sh $A $P 3 | grep -c '^615=>617$')"
echo "  臂3 k=3    @T3 空面      期望0 : $($D/crossline.sh $A runs/faultinjection-evidence/task2-recon.md 3 | grep -c '>')"
echo "  臂4 单行AND @T2(:14)     期望1 : $($D/single.sh $A $P | sed "s|^$A:$P:||" | cut -d: -f1 | grep -cx 14)"
echo
echo "### 交叉验证锚：both 必须 = 29（对齐 I 格「一次筛 29 行」）"
echo "  $($D/crossline.sh $A $P 3 | tail -1)"
