feat: sync lijiaoqiao implementation and staging validation artifacts
This commit is contained in:
74
scripts/ci/tok007_generate_final_decision_candidate.sh
Executable file
74
scripts/ci/tok007_generate_final_decision_candidate.sh
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
TS="$(date +%F_%H%M%S)"
|
||||
OUT_DIR="${ROOT_DIR}/review/outputs"
|
||||
mkdir -p "${OUT_DIR}"
|
||||
|
||||
SOURCE_FILE="${ROOT_DIR}/review/final_decision_2026-03-31.md"
|
||||
TOK007_FILE="$(ls -1t ${ROOT_DIR}/review/outputs/tok007_release_recheck_*.md 2>/dev/null | head -n 1 || true)"
|
||||
OUT_FILE="${OUT_DIR}/final_decision_candidate_from_tok007_${TS}.md"
|
||||
LOG_FILE="${ROOT_DIR}/reports/gates/tok007_generate_candidate_${TS}.log"
|
||||
|
||||
if [[ ! -f "${SOURCE_FILE}" ]]; then
|
||||
echo "[FAIL] source final decision missing: ${SOURCE_FILE}" | tee "${LOG_FILE}"
|
||||
exit 1
|
||||
fi
|
||||
if [[ -z "${TOK007_FILE}" || ! -f "${TOK007_FILE}" ]]; then
|
||||
echo "[FAIL] tok007 recheck report missing" | tee "${LOG_FILE}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DECISION="UNKNOWN"
|
||||
if grep -q '机判结论:\*\*CONDITIONAL_GO\*\*' "${TOK007_FILE}"; then
|
||||
DECISION="CONDITIONAL_GO"
|
||||
elif grep -q '机判结论:\*\*NO_GO\*\*' "${TOK007_FILE}"; then
|
||||
DECISION="NO_GO"
|
||||
elif grep -q '机判结论:\*\*GO\*\*' "${TOK007_FILE}"; then
|
||||
DECISION="GO"
|
||||
fi
|
||||
|
||||
if [[ "${DECISION}" == "UNKNOWN" ]]; then
|
||||
echo "[FAIL] cannot parse decision from ${TOK007_FILE}" | tee "${LOG_FILE}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp "${SOURCE_FILE}" "${OUT_FILE}"
|
||||
|
||||
# reset three checkboxes
|
||||
sed -i 's/^- \[x\] GO/- [ ] GO/g' "${OUT_FILE}"
|
||||
sed -i 's/^- \[x\] CONDITIONAL GO/- [ ] CONDITIONAL GO/g' "${OUT_FILE}"
|
||||
sed -i 's/^- \[x\] NO-GO/- [ ] NO-GO/g' "${OUT_FILE}"
|
||||
sed -i 's/^- \[x\] 通过/- [ ] 通过/g' "${OUT_FILE}"
|
||||
sed -i 's/^- \[x\] 有条件通过/- [ ] 有条件通过/g' "${OUT_FILE}"
|
||||
sed -i 's/^- \[x\] 不通过/- [ ] 不通过/g' "${OUT_FILE}"
|
||||
|
||||
case "${DECISION}" in
|
||||
GO)
|
||||
sed -i '0,/^- \[ \] GO/s//- [x] GO/' "${OUT_FILE}"
|
||||
;;
|
||||
CONDITIONAL_GO)
|
||||
sed -i '0,/^- \[ \] CONDITIONAL GO/s//- [x] CONDITIONAL GO/' "${OUT_FILE}"
|
||||
;;
|
||||
NO_GO)
|
||||
sed -i '0,/^- \[ \] NO-GO/s//- [x] NO-GO/' "${OUT_FILE}"
|
||||
;;
|
||||
esac
|
||||
|
||||
{
|
||||
echo
|
||||
echo "## 附录:TOK-007 自动复审回填(${TS})"
|
||||
echo
|
||||
echo "1. 自动复审来源:\`${TOK007_FILE}\`"
|
||||
echo "2. 自动复审结论:\`${DECISION}\`"
|
||||
echo "3. 说明:该候选稿用于人工审阅与签署准备,不直接替代正式签署版本。"
|
||||
} >> "${OUT_FILE}"
|
||||
|
||||
{
|
||||
echo "[INFO] source=${SOURCE_FILE}"
|
||||
echo "[INFO] tok007=${TOK007_FILE}"
|
||||
echo "[RESULT] decision=${DECISION}"
|
||||
echo "[INFO] output=${OUT_FILE}"
|
||||
} | tee "${LOG_FILE}"
|
||||
|
||||
Reference in New Issue
Block a user