Skip to content

[PR-4] M3 接入渲染门禁(paper_orchestra_pipeline.py:1843) #28

Description

@justDance-everybody

本任务属于 Epic #23。共享上下文(整体目标、Agent Execution Contract、Non-goals、回归基线)见 #23
依赖:blocked by #25(需 PR-3 的四个检查先落地)。
代码定位按当前仓库版本核对;若行号漂移,以函数名 / 字段名 / 挂载点语义为准。

完成本 PR 需遵守 Epic #23 的 Agent Execution Contract 与 Test Execution Protocol:先写失败测试与反例夹具 → 最小实现 → 跑里程碑测试 → 跑回归基线。PR 描述需列出:changed files / tests added / tests run / before-after / non-goals。


目标

把 PR-3 的四个检查接进真渲染门禁:任一命中 → 禁止出稿。

Allowed changes

  • agents/paper_orchestra_pipeline.py:1843 附近的渲染门禁接入逻辑
  • M3 integration tests
  • PR-4 fixtures

Forbidden changes

  • 不修改 contracts/pipeline.py:626 require_submission_ready()
  • 不绕开既有 latex_sanity_check
  • 不只返回第一个 hit;多处命中必须全部列出
  • 不改变现有 placeholder 命中行为

改动点(挂载点是 1843,不是 require_submission_ready)

  • 正确挂载点 = agents/paper_orchestra_pipeline.py:1843latex_sanity_check(main_tex) 处 —— 这里 main_tex(已渲染)在 scope,且紧接 if not latex_sanity_report.get("ok"): ... 已是阻断逻辑。
  • 把四个检查接入此处:任一命中 → latex_sanity_report["ok"]=Falsehits 写入 report → 既有阻断生效,禁止出稿。
  • 非破坏:不动 require_submission_ready()(证据侧门禁)与现有 latex_sanity_check 既有词表行为;只新增展示侧检查项与 hits 字段。

验收用例(集成)

# 输入 期望输出
M3-1 稿件含 Table ?? latex_sanity_report.ok=False,hits 含 "unresolved reference" + 行号
M3-2 稿件含复读句 ×4 ok=False,hits 含 "boilerplate repetition"
M3-3 稿件干净 ok=True,放行
M3-4(回归) 触发现有 placeholder / FORBIDDEN_LATEX_TERMS 命中 维持原有 ok=False(证明未破坏既有门禁)
M3-5 多处命中(未解析 + 脚手架) hits 列出全部命中项,不只第一个

DoD

M3-1~5 全绿(挂在 1843),含回归 M3-4;回归基线 tests/test_pipeline_contracts.pytests/test_vnext_manuscript.py 全绿;收敛分支、未确认不强推。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions