用途:把「提交」变成一套带前置校验的固定流程。提交前先验证质量门、一致性门与护照检查,通过后才落盘;该技能在提交后即停止,只有带 --pr 或用户明确要求时才推送并创建拉取请求,且绝不合并。
主要能力与步骤:Step 0 质量门在切分支前运行 python3 scripts/quality_score.py <changed-file-paths>,对改动的 .qmd、.tex、.R 文件评分,低于 80 分即中止并报告;用户须修复或显式用「commit anyway」「skip quality gate」覆盖。若已运行 ./scripts/install-hooks.sh,.githooks/pre-commit 会对已暂存文件重跑同一 ≥80 门,覆盖时需以 SKIP_QUALITY_GATE=1 git commit ... 携带(该变量只跳过质量分,回测仍运行),不得使用 git commit --no-verify。随后通过 Agent 工具以 subagent_type=verifier 启动验证代理做编译/渲染检查。
Step 0b 一致性门无条件运行 ./scripts/backtest.sh(十项门),退出码 0 才继续,非 0 即打印输出并中止,即使「commit anyway」也不得越过。Step 0c 护照检查:若 diff 触及带护照的手稿、护照列出的 source_file 或被声明为 display 的文件,存在 status: FAIL 或 STALE 的承重声明即中止,并指向 /audit-reproducibility;无护照则静默跳过。
之后检查状态(git status、git diff --stat、git log --oneline -5),在 main 上用 git checkout -b <分支名> 切分支,用 git add <file> 精确暂存(禁止 git add -A,且不得暂存 .claude/settings.local.json 及含密钥文件),再以说明「提交后为真」的语句作主题、正文写 why 的方式提交。
使用方式:未给 --pr 且用户未要求时跳过推送,仅本地提交并如实报告提交哈希、主题与分支,说明未合并任何内容。合并只能由用户明确指定 PR 时执行,使用 gh pr merge <pr-number> --merge --delete-branch,随后 git checkout main、检查 git status --porcelain 为空、再 git pull;脏树需先 git stash push -u 并用独立命令 pull 后 git stash pop,--autostash 仅在无 ?? 条目时可用,ALLOW_DIRTY_MERGE=1 为例外开关。
限制:不编造未提供的评分细则、门数量以外的细节;所有命令、变量与路径须保持原样。