按任总口径②:e1 无匹配预算 → verdict=warn(走指定/补录预算流程,不硬卡死); 仅「有预算且超」才 block。修正后无预算付款可正常进 pending_approval, 不再阻塞 AU-001 拆单累计/日累计(T7/T8)。 Ref: 0-P0-project-20260915-cma-treasury-stage1
_eval_np001 原将 verdict 直取 severity('block'),而 check_result 汇总只认 'blocked' → e1 命中不生效、check_result 恒 pass,T4 豁免级联失败。改为 severity=='block'→'blocked'。 Ref: 0-P0-project-20260915-cma-treasury-stage1 自验电池 T3/T3b/T4
G1 review fixes P0-1/P0-2/P1-3/P1-4/P1-5/P2-6/P2-7/P2-8 applied: - up() filters comment lines then asserts missing_tables == [] (CREATE hits 6/6) - created counter = new-object diff via information_schema (idempotent second run = 0) - down() drops columns per-column, dumps via write-path creds + fail-closed - seeds expanded to 8 rules + 6 limits; data_status DEFAULT estimated - no physical FK (app-layer checks), amount FLOAT wan-yuan, round(x,4) Scope: 6 treasury_* tables + cash_plans 4 added columns; cash.py untouched. Not pushed: deploy is approval-gated (de851257).