chore: sync local latest state and repository cleanup
This commit is contained in:
42
scripts/verify_review_evidence.sh
Executable file
42
scripts/verify_review_evidence.sh
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SUMMARY_FILE="${1:?summary file required}"
|
||||
PROJECT_DIR="${2:-/home/long/project/蚊子}"
|
||||
|
||||
[ -s "$SUMMARY_FILE" ] || { echo "summary missing/empty" >&2; exit 2; }
|
||||
|
||||
# 1) 必须包含结构化字段
|
||||
for k in "执行命令" "修改文件" "测试结果" "剩余未完成"; do
|
||||
grep -q "$k" "$SUMMARY_FILE" || { echo "missing section: $k" >&2; exit 3; }
|
||||
done
|
||||
|
||||
# 2) 至少有3条命令证据(bash代码块内或行内命令)
|
||||
cmd_count=$(grep -E "(mvn|npm|npx|pnpm|yarn|pytest|go test|gradle|playwright)" "$SUMMARY_FILE" | wc -l | tr -d ' ')
|
||||
if [ "${cmd_count:-0}" -lt 3 ]; then
|
||||
echo "insufficient command evidence: $cmd_count" >&2
|
||||
exit 4
|
||||
fi
|
||||
|
||||
# 3) 提取日志路径并验证至少2个真实存在
|
||||
# 允许绝对路径,或相对 logs/ target/ frontend/**/test-results/
|
||||
mapfile -t paths < <(grep -Eo '/[^ )`"]+\.(log|txt|md|xml|json)|((logs|target|frontend)/[^ )`"]+\.(log|txt|md|xml|json))' "$SUMMARY_FILE" | sort -u)
|
||||
|
||||
exists=0
|
||||
for p in "${paths[@]:-}"; do
|
||||
if [[ "$p" = /* ]]; then
|
||||
fp="$p"
|
||||
else
|
||||
fp="$PROJECT_DIR/$p"
|
||||
fi
|
||||
if [ -f "$fp" ]; then
|
||||
exists=$((exists+1))
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$exists" -lt 2 ]; then
|
||||
echo "insufficient raw log path evidence: $exists" >&2
|
||||
exit 5
|
||||
fi
|
||||
|
||||
echo "evidence ok: cmd_count=$cmd_count existing_logs=$exists"
|
||||
Reference in New Issue
Block a user