regression-gate.sh:baseline language 欄位未驗證即入 worklist TSV(follow-up from #109 verify) - #114
Conversation
Verify Report — PR #114 (#112)Enginemanual fan-out (4 lens Agents + sequenced DA, model: opus, file-based output) + Codex (gpt-5.x) — Codex leg incomplete this round(HTTP 429 usage_limit_reached,ChatGPT Pro plan,約 5.5 天後 reset)。跨模型盲驗本輪缺席,記為 fail-closed INFO,不當 PASS 計。5 個 Claude reviewer(4 lens + DA)仍完整。 AggregatePASS — 0 blocking, 3 follow-up (filed), 1 process-gap (codex leg)。
要求覆蓋率1 / 1 requirement addressed — FULLY。 Findings(合併後)
Scope Check無超出 issue #112 範圍的改動。合併後所有 PASS finding 一致確認單檔單點修。 Process Gaps
Follow-up Findings Filed (v2.72.0+ #148)
紀律聲明
|
Refs #112
Summary
scripts/regression-gate.sh的 worklist 生成對baseline.json的corpus欄位有 charset 白名單,但language欄位裸寫入同一份 line-oriented TSV(下游while IFS=$'\t' read -r corpus language行導向解析),embedded\n可偽造一筆 corpus 未經驗證的 worklist 記錄(#109 verify security lens MEDIUM-1,PoC 以corpora/../相對路徑逃出$DEST)。本修對language加與 corpus 同款的re.fullmatch(r"[a-z]{2,3}(-[A-Za-z0-9]+)?")白名單,不符即 fail-loud。Verification
TDD:test harness 抽出 gate 真實的 worklist heredoc 對 fixture 執行。
corpora/../evil偽造 row 混入 + exit 0(注入成立)bash -n語法通過Checklist
Generated by /idd-implement on PR path. Do NOT add a GitHub close trailer — IDD discipline requires manual /idd-close after merge.