日期:2026-07-12
本次验收覆盖 batch-parameter-template 的本地确定性逻辑、真实
orchestrator.WorkQueue / RunManager / run-model 接线,以及注入 fake
ReplayRunner 的契约路径。daemon 的真实浏览器 ReplayRunner 仍为无驱动占位,
因此本记录不是 Chrome、真实站点或生产验收证据。
自动化落点:test/integration/batch_sc10_test.go 的
TestBatchSC10ClosedLoopContractPath。
- 同一 published 技能成功生成 CSV 与 XLSX 模板。
- 导入 4 行:1 行类型非法在导入期拦截并生成可下载错误报告;修正后按
_row_id增量合并;1 行重复业务键标记skipped。 - dry-run 先执行 1 行,通过后释放剩余行;窗口大小为 2。
- 人为制造 1 行执行失败,最终行状态分布为
success=2、failed=1、skipped=1。 - 汇聚结果含统一 schema 与保留列;所有 replay Run 的
token_cost == 0, 批次账目为replay=0、heal=0。 - 失败行导出为重试模板,可直接再导入;仅重试原失败行并沿用
_row_id。
自动化落点:test/integration/batch_sc10_test.go 的
TestBatchSC10HealUpgradeBenefitsRemainingRows。
- 滑动窗口为 1,第 1 行以
v1.0.0执行并记录一次 L2 heal 事件。 - 修复版本
v1.0.1published 后,第 2 行在创建 Run 前重新解析版本并直接使用v1.0.1;两行簿记保留实际版本,混版本审计可见。 - Token 分账为
replay=0、heal=12,认知用量不污染回放账目。
自动化落点:cmd/praxisd/batch_integration_test.go。
- 行经真实 Work Queue 入队并由 Run Manager 过准入门;业务键、输入与身份别名
透传,行与
run_id回填闭环成立。 - 队列失败 attempt 由 Work Queue 退避重试,BATCH_ROW 只在成功或重试耗尽后 进入终态。
NeedsApproval行保持挂起但不阻塞其他身份行;批准后恢复并完成。- 真实 batch 组件在
/statusz中呈现running。
go test -race ./internal/batch/... -count=1
go test ./test/invariants -count=1
go test -tags=integration ./cmd/praxisd ./test/integration -count=1
go test ./internal/selfheal ./internal/cognition -count=1
go build ./...
openspec validate --all --strict
git diff --check上述命令及完整 go test ./... 均通过。change 已归档到
openspec/changes/archive/2026-07-12-batch-parameter-template/,主规格已同步到
openspec/specs/{parameter-template,batch-execution}/spec.md。