| name | qros-backtest-ready-review |
| description | Codex review skill for Backtest Ready stage verification. |
Backtest Ready 审查
用途
用冻结后的候选集和交易规则验证策略可交易性与正式资金曲线口径
Runtime Stage Admission
开始本 stage-specific review 工作前,必须先在当前 research repo 运行:
./.qros/bin/qros-check-stage-entry --stage backtest_ready --lane review
若命令失败,必须停止;不得继续 review,不得启动 reviewer,不得运行 qros-review-cycle prepare。按输出中的 qros-research-session --lineage-id ... 恢复 runtime state 后再重进本 skill。
共享审查协议
执行本 stage review 前,必须先阅读并遵守 docs/guides/qros-review-shared-protocol.md。
该共享审查协议统一定义:
- adversarial reviewer-agent 合同
adversarial_review_request.yaml / adversarial_review_result.yaml / closure artifacts 要求
FIX_REQUIRED 与 closure-ready adverse verdict 语义
- 只有 closure-ready 后才允许运行
./.qros/bin/qros-review
独立 reviewer 子代理要求
- 本 skill 是用户显式进入的 stage-specific review 入口;不再要求你手动再开一个独立 review session
- 进入本 skill 后,必须在当前会话里用
spawn_agent 拉起独立 reviewer 子代理,且 fork_context 必须是 false
- 先用一个最小初始化消息创建 reviewer 子代理,要求它先等待 binding / handoff,不要在 receipt 写出前擅自写文件
- reviewer 子代理创建后,主线程优先运行
./.qros/bin/qros-review-cycle prepare --reviewer-agent-id <child_agent_id> --reviewer-id <reviewer_identity> --reviewer-session-id <child_agent_id> --host codex
qros-review-cycle prepare 负责注册 active review cycle,写出 review/request/* 与 reviewer_receipt.yaml,并输出 reviewer handoff prompt 与 closer command
- 主线程随后必须用
send_input 把 request / handoff manifest / stage-specific gate 交给 reviewer 子代理
- reviewer 子代理只允许读取
review/request/* 与 author/formal/*
- reviewer 子代理只允许写入
review/result/reviewer_findings.raw.yaml
- reviewer 子代理不得修改
author/formal/*
- reviewer 子代理完成后,主线程必须运行
./.qros/bin/qros-review;它负责 canonical result、audit 与 closure
主线程交接前提
- 主线程在发起 review 之前必须先完成
review-ready 自查,不要把 reviewer 当成第一轮 artifact completeness checker
- 主线程交给 reviewer 子代理的 scope 必须是当前 author outputs,而不是旧 request、旧 digest 或修复前的 stale artifacts
- handoff 必须明确这轮声称已完成的 outputs、希望 reviewer 验证的 formal gate、已知限制 / 未决假设,而不是盲交 reviewer
- handoff 必须与
launcher_review_ready_status、launcher_checked_artifact_paths、launcher_checked_provenance_paths、launcher_handoff_context_paths 一致
- 如果上一轮 verdict 是
FIX_REQUIRED,主线程必须先读取 review/result/adversarial_review_result.yaml 与 review/result/review_findings.yaml,只在 author lane 修复,再显式重新进入本 stage review skill
- 如果你发现 handoff scope 过期、必需输出缺失、machine-readable artifacts 只是 placeholder,应该明确写成 blocking findings /
FIX_REQUIRED,而不是替主线程猜测或补齐上下文
- 进入 reviewer lane 前必须先完成 deterministic review-ready 自查;若 preflight 有 blocking finding,必须先修 author outputs。
共用输入
contracts/stages/workflow_stage_gates.yaml
contracts/review/review_checklist_master.yaml
artifact_catalog.md
field_dictionary.md or *_fields.md
run_manifest.json
必需输入
必需输入:
- test_evidence frozen_spec.json
- selected_symbols_test.csv or selected_symbols_test.parquet
- frozen signal fields and best_h
- execution, portfolio and risk overlay rules
必需输出
必需输出:
- engine_compare.csv
- vectorbt/
- backtrader/
- strategy_combo_ledger.csv
- capacity_review.md
- backtest_gate_decision.md
- artifact_catalog.md
- field_dictionary.md
正式门禁
阶段:Backtest Ready
正式门禁摘要:
必须全部满足:
- 仅使用上游冻结的 whitelist、best_h 和交易规则身份
- vectorbt 与 backtrader 双引擎正式回测已完成
- 收益、Sharpe、回撤使用正式资金记账口径
- capacity_review 已写清 deployable capital、主要容量瓶颈、自冲击边界和成本吞噬位置
- 若触发 abnormal performance sanity check,则复核已完成且无阻断性问题
- required_outputs 全部存在,且 machine-readable artifact 都有 companion field documentation
以下任一情况都不得出现:
- 只跑单一回测引擎就宣布 Backtest Ready
- 在 Backtest 内重新选币或重估 best_h
- 成本、容量或资金记账口径无法解释
- 双引擎存在语义冲突
审查清单
阶段检查项:
- [blocking] 输入白名单和交易规则来自上游冻结文件
- [blocking] vectorbt 与 backtrader 两套正式回测均已完成
- [blocking] 双引擎关键结果一致,semantic_gap = false
- [blocking] 收益、回撤和资金曲线基于正式资金记账口径
- [blocking] 未在 backtest 中重新选币或重估 best_h
- [blocking] 若收益异常高,abnormal performance sanity check 已完成
- [reservation] 若搜索多套策略组合,combo ledger 与预算纪律完整
- [reservation] gross / net / fee / turnover / close reason 已拆解解释
仅审计项
仅审计项:
- 容量假设的进一步补强
- 更重压力测试
- 主备方案收敛前的非阻断性 reservations
本阶段 Rollback 规则
- 默认 rollback stage:backtest_ready
- 允许修改:execution policy
- 允许修改:portfolio policy
- 允许修改:risk overlay
- 允许修改:cost model implementation
- 以下情况必须开 child lineage:想重写 alpha 机制
- 以下情况必须开 child lineage:想回头改 train thresholds 或 test whitelist
本阶段下游权限
- 可进入下游阶段:holdout_validation
- 下游可直接消费的冻结产物:selected strategy combo
- 下游可直接消费的冻结产物:backtest frozen config
- 下游可直接消费的冻结产物:engine_compare.csv
- 下游不得消费 / 重估:whitelist
- 下游不得消费 / 重估:best_h
- 下游不得消费 / 重估:core signal thresholds
执行顺序
- 在当前会话中完成
review-ready 自查,并确认 handoff 与 launcher 字段一致
- 用
spawn_agent 创建独立 reviewer 子代理
- 运行
./.qros/bin/qros-review-cycle prepare 写出 active request / handoff / receipt,并复用输出的 reviewer handoff prompt
- 用
send_input 向 reviewer 子代理交付 request / handoff 与本 stage 的 formal gate
- 等待 reviewer 子代理只写
review/result/reviewer_findings.raw.yaml
- 运行
./.qros/bin/qros-review 完成 canonical result、audit 与 closure
- 再用本 skill 的 formal gate、checklist 和 audit-only 规则解释 stage-specific verdict
- 若 verdict 需要 rollback 或 downstream 解释,以本文件的 stage-specific 规则为准