The ScopeGlobal Macro
2026-04-16 19:53
项目看板

TODO / 优化进度

直接读取仓库内的 TODO.md,便于随时查看阶段目标、待办、测试与收口标准。
最近更新:2026-04-16 19:53后台晨报

TODO / 当前路线图

目标:把新闻生成链路稳定推进到“程序先定结构,LLM 只做最后一公里”的终态。 说明:本文件只保留当前 backlog、目标树、门控条件与从现在到中期目标的执行路线。已完成阶段、历史决策与复盘细节已并入 projectreport_news.mdreports/。 更新时间:2026-04-10

1. 当前状态

  • 当前主阶段:M18 / Source-Bundle Coverage Alignment
  • 状态:completed
  • 当前执行切片:POST-M18 calibration + next-mainline hold
  • 状态:completed
  • 当前下一阶段:NEXT-MAINLINE-HOLD / Await Next Blocker-Driven Mainline Selection
  • 状态:pending
  • 当前真实结论:
  • M15-M18 主实现链已收口。
  • V2-V5 hold-side 决策链、proof-pack 与 freshness / trigger contract 已收口。
  • 当前 accepted chain 上没有新的、可冻结的新 blocker。
  • 因此当前不 truthfully 启动新的实现主线。
  • 当前 director 边界:
  • non_live_non_approval
  • hold-side 收尾已完成。
  • maintenance runbook:docs/maintenance_mode_runbook.md
  • 当前到中期目标的标准 SOP 入口已接入 director:
    • current_to_midterm_step1
    • current_to_midterm_step2
  • 无事件默认动作:reuse_existing_hold_verdict
  • 有事件 rerun 动作:hold_maintenance_cycle
  • latest pointer:control/latest_hold_maintenance_pointer.json
  • latest dispatch:control/latest_hold_dispatch.json
  • latest auto trigger state:control/latest_hold_auto_trigger_state.json

2. 当前 Active Backlog

B1. Hold 真值维护

  • 保持 NEXT-MAINLINE-HOLD 与控制面、恢复面、文档面一致。
  • 默认不重跑全链;无事件时直接复用已有 hold verdict。
  • 正常晨报成功写出 fresh run report 后,会自动尝试一次安全的 hold_auto_trigger,并把结果写入 control/latest_hold_auto_trigger_state.json
  • 如出现 fresh event、入口漂移或 freshness necessity,再回到 hold_maintenance_cycle

收口标准

  • TODO.md / projectreport_news.md / control/*.json 对项目状态判断一致。
  • status / validate / restore 与 latest pointer / latest dispatch 一致。
  • keep_hold 不被误写成“项目终态完成”。

B2. Fresh Evidence Watch

  • 持续观察 future fresh sample 是否出现新的、具体的、可复验的 blocker。
  • 只接受与 M15-M18 已关闭问题链清晰分离的新 blocker。
  • 2026-04-12 accepted-chain 微信 今日看点 截断问题已按程序化完整句打包修复;离线回放显示 2026-04-10 / 2026-04-12 的省略截断已消失,近义重复也已收窄,但仍继续观察 residual duplication,当前尚未正式冻结为新 blocker。

收口标准

  • 无新 blocker:继续保持 hold,不升级表述。
  • 有新 blocker:必须先通过 watchlist -> blocker_freeze -> calibration -> proposal

B3. Readiness / Freshness 维护

  • 当前 replay ready / quality ready / failure locate ready / governance ready 已形成 non-live discussion input。
  • 当前目标不是重复证明“已 ready”,而是维持 freshness、口径一致与后续可重放。
  • 如 freshness necessity 被触发,只进入窄 refresh lane,不重开 broad implementation。
  • 2026-04-16 已将公众号发布默认留言开关切到 need_open_comment: 1,等待下一次真实发布观察平台侧是否生效。
  • 2026-04-16 已定位英文晨报缺失的直接原因:translate_morning_report_en_v3 返回尾部损坏 JSON,导致 en_report_json 为空;当前已补上尾部 salvage 解析,并禁止 /morning/en 在无 en_report_json 时回退渲染中文 Theme Tracker 内容。
  • 2026-04-16 已新增 scripts/rebuild_en_from_existing_raw.py 作为 EN 恢复工具,可从 Morning_EnTranslate_Raw_*.txt salvage EN JSON,并按需补齐 en_report_markdown / en_reviewed_markdown / research_text_en / web_text_en
  • 2026-04-16 已将 2026-04-152026-04-16 的 EN 晨报回填到 reviewed 层;当前 2026-04-14 ~ 2026-04-16 三天 EN 主稿字段均已恢复,线上 /morning/en 不再显示 “English report is not available yet”。
  • 上述 2026-04-16 修复当前属于 narrow maintenance / quality hardening,不构成新的 blocker freeze,也不改变 NEXT-MAINLINE-HOLD 结论。

收口标准

  • readiness 口径继续成立且不被夸大成 live approval。
  • freshness refresh contract、re-entry trigger matrix 与 wording boundary 继续有效。

B4. Director 维护模式

  • 状态:completed -> maintenance only
  • 当前 operation mode:maintenance_only
  • director 已完成 hold-side 非 live 控制面收尾。
  • 默认主线 contract stack 已收口:
  • trigger intake
  • freshness window
  • lane activation writeback
  • 当前不再扩 director 权限,也不再默认补新 skeleton,只做维护与 truth sync。

收口标准

  • 默认动作固定为 reuse_existing_hold_verdict
  • rerun 动作固定为 hold_maintenance_cycle
  • guardrail 不变:
  • no live commands executed
  • no approval granted
  • no rollback triggered

3. 当前明确不做

  • 不在没有新 blocker 的情况下硬启新的实现主线。
  • 不重新打开 broad prompt tuning。
  • 不把 directornon-live / non-approval 扩成 live operator。
  • 不把当前 hold 状态误写成“整体项目已终态完成”。
  • 不把 discussion_input_ready = yes 偷换成“已批准 limited live cutover”。

4. 短 / 中 / 长期目标

  • 短期目标
  • 维持当前 accepted chain truth。
  • 继续运行 hold/watchlist/freeze/calibration/proposal 这套非 live 决策链。
  • 保持 freshness、trigger 与 wording contract 不漂移。
  • 中期目标
  • 当真实 trigger 出现时,能够只进入一条窄分叉并收口:
    • 新 blocker 驱动的窄主线
    • freshness refresh lane
    • higher-level trigger review lane
  • 无论哪条分叉,都不接受 broad tuning 或体感式回退。
  • 长期目标
  • 达到项目终态:程序先定结构、LLM 只做最后一公里、渠道层不反向污染研究层。
  • 发布链具备稳定 replay、标准验收、标准复盘、标准失败定位与可审计 governance。
  • 只有在四类 readiness 同时基于当前链路成立,并且人工高层判断明确同意后,才讨论新的 limited live cutover 或 scope 调整。

5. 从当前到中期目标的执行路线

当前到中期目标不是单线推进,而是“先保持 hold 真值,再按证据进入唯一窄分叉”的条件式路线。

Step 1. Steady Hold Maintenance

  • 当前立即执行的默认动作:
  • 先看 python /wwwb/news/scripts/project_director.py status
  • 再看 python /wwwb/news/scripts/restore_project_state.py
  • 再看 control/latest_hold_dispatch.json
  • 若 dispatch 仍为 reuse_existing_hold_verdict,则停止,不重复造新工件
  • 当前标准输出:
  • control/latest_hold_maintenance_pointer.json
  • control/latest_hold_dispatch.json
  • reports/Director_Closure_20260409.md

收口标准

  • 无事件时不再人为重跑 maintenance 链。
  • 主控制面与机器控制面持续一致。
  • director 默认行为稳定为“先复用、再决定是否重跑”。

最小必要测试

  • python /wwwb/news/scripts/project_director.py validate --json
  • python /wwwb/news/scripts/project_director.py status
  • python /wwwb/news/scripts/restore_project_state.py

Step 2. Trigger Qualification

  • intake contract:
  • docs/default_mainline_trigger_intake_contract.md
  • 进入条件:
  • 出现新的 accepted-chain fresh sample
  • 或 freshness refresh necessity 被触发
  • 或 future higher-level trigger 被明确提出
  • 拒收条件:
  • 仅仅是时间流逝
  • 仅仅是“想继续推进”的压力
  • 没有明确 review 请求的 higher-level 模糊意图
  • 同时出现多种 plausible trigger 但尚未冻结成一个 bucket
  • 执行动作:
  • 先重跑 hold_maintenance_cycle
  • 再判断 trigger 属于哪一类:
    • new_blocker
    • freshness_refresh
    • higher_level_review
    • no_real_trigger

收口标准

  • trigger 被明确分类。
  • 若分类结果为 no_real_trigger,则项目状态继续保持 NEXT-MAINLINE-HOLD
  • 若分类结果为其他三类,只允许激活其中一条窄分叉。

最小必要测试

  • python /wwwb/news/scripts/project_director.py autopilot --action hold_maintenance_cycle --force
  • python /wwwb/news/scripts/project_director.py validate --json
  • python /wwwb/news/scripts/project_director.py status
  • python /wwwb/news/scripts/restore_project_state.py

Step 3-A. Narrow Mainline For New Blocker

  • 进入条件:
  • future evidence 冻结出新的、具体的、可复验的 blocker
  • 该 blocker 与 M15-M18 已关闭问题链清晰分离
  • blocker_freeze_cyclenext_mainline_calibration_cycle 不再要求继续 withholding
  • 执行原则:
  • 只开一条窄主线
  • 只修这个 blocker
  • 修完立刻回到 fresh evidence 复验

收口标准

  • blocker 被缩小到单一主线边界。
  • 修复后 fresh evidence 证明问题被压掉。
  • 文档、控制面、closure、retrospective 同步完成。

最小必要测试

  • 受影响链路的 py_compile
  • fresh sample 与 stable baseline 对照
  • python /wwwb/news/scripts/project_director.py validate --json
  • 标准入口:
  • python /wwwb/news/scripts/project_director.py autopilot --action current_to_midterm_lane_a --force

Step 3-B. Freshness Refresh Lane

  • freshness window contract:
  • docs/default_mainline_freshness_window_contract.md
  • 进入条件:
  • 当前主结论没变,但 freshness refresh necessity 被触发
  • 执行原则:
  • 只刷新证据 freshness
  • 不重开 broad implementation
  • 不改写已成立的主链真值

收口标准

  • 四类 readiness freshness 被刷新到当前窗口。
  • 若刷新后仍无新 blocker,项目状态继续保持 NEXT-MAINLINE-HOLD
  • refresh 结果不被误写成 approval 或 reopen。

最小必要测试

  • fresh replay / acceptance / failure-locate / governance gate 复核
  • python /wwwb/news/scripts/project_director.py validate --json
  • 文档与控制面同步复核
  • 标准入口:
  • python /wwwb/news/scripts/project_director.py autopilot --action current_to_midterm_lane_b --force

Step 3-C. Higher-Level Trigger Review Lane

  • 进入条件:
  • 出现新的 higher-level decision trigger
  • 该 trigger 不是 broad scope expansion 的口头意图,而是明确 review 请求
  • 执行原则:
  • 只进入 review lane
  • 只形成 decision input 或 writeback
  • 不自动升级成 live approval

收口标准

  • review 输入、writeback 与 follow-up 分支同步到控制面。
  • 若没有人工批准,项目状态继续保持 NEXT-MAINLINE-HOLD
  • director 不得把该 lane 表述成自动审批。

最小必要测试

  • python /wwwb/news/scripts/project_director.py validate --json
  • python /wwwb/news/scripts/project_director.py status
  • python /wwwb/news/scripts/restore_project_state.py
  • 标准入口:
  • python /wwwb/news/scripts/project_director.py autopilot --action current_to_midterm_lane_c --force

6. 中期目标达成判定

  • 满足以下条件之一,才算真正进入中期目标区间:
  • 一条新 blocker 驱动的窄主线被 truthfully 命名并完成修复验证
  • 一条 freshness refresh lane 被完成并把 hold 证据刷新到当前窗口
  • 一条 higher-level trigger review lane 被完成并把决策输入或回写同步闭合
  • 同时必须满足:
  • 只有一条窄分叉被激活
  • 所有测试通过
  • 文档与控制面同步
  • retrospective 已写出
  • 无 broad tuning、无 overclaim、无 live / approval 越权

Step 3 Writeback Contract

  • activation writeback contract:
  • docs/default_mainline_lane_activation_writeback_contract.md
  • lane 被 truthfully 选中后必须同步:
  • control/phase_status.json
  • control/phase_execution_state.json
  • control/phase_acceptance.json
  • TODO.md
  • projectreport_news.md
  • ops_manual.md
  • 任何 lane 想宣称完成前,必须同时具备:
  • lane report
  • closure
  • retrospective
  • docs sync
  • control sync

7. 当前关键入口

  • 总览:projectreport_news.md
  • 复盘:reports/Project_Retrospective_20260409.md
  • 当前到中期目标协议:docs/current_to_midterm_transition_protocol.md
  • Step 1 报告:reports/CurrentToMidterm_Step1_SteadyHoldMaintenance_20260409.md
  • Step 2 报告:reports/CurrentToMidterm_Step2_TriggerQualification_20260409.md
  • Lane A 报告:reports/CurrentToMidterm_LaneA_NewBlockerDrivenNarrowMainline_20260409.md
  • Lane A synthetic active rehearsal:reports/CurrentToMidterm_LaneA_SyntheticActiveRehearsal_20260409.md
  • Lane B 报告:reports/CurrentToMidterm_LaneB_FreshnessRefresh_20260409.md
  • Lane B synthetic active rehearsal:reports/CurrentToMidterm_LaneB_SyntheticActiveRehearsal_20260409.md
  • Lane C 报告:reports/CurrentToMidterm_LaneC_HigherLevelTriggerReview_20260409.md
  • Lane C synthetic active rehearsal:reports/CurrentToMidterm_LaneC_SyntheticActiveRehearsal_20260409.md
  • Step 3 rehearsal parity closure:reports/CurrentToMidterm_Step3_RehearsalParity_Closure_20260409.md
  • Step 3 rehearsal parity retrospective:reports/CurrentToMidterm_Step3_RehearsalParity_Retrospective_20260409.md
  • Default-Mainline trigger intake contract:docs/default_mainline_trigger_intake_contract.md
  • Default-Mainline trigger intake report:reports/DefaultMainline_TriggerIntakeContract_20260409.md
  • Default-Mainline trigger intake closure:reports/DefaultMainline_TriggerIntakeContract_Closure_20260409.md
  • Default-Mainline trigger intake retrospective:reports/DefaultMainline_TriggerIntakeContract_Retrospective_20260409.md
  • Default-Mainline freshness window contract:docs/default_mainline_freshness_window_contract.md
  • Default-Mainline freshness window report:reports/DefaultMainline_FreshnessWindowContract_20260409.md
  • Default-Mainline freshness window closure:reports/DefaultMainline_FreshnessWindowContract_Closure_20260409.md
  • Default-Mainline freshness window retrospective:reports/DefaultMainline_FreshnessWindowContract_Retrospective_20260409.md
  • Default-Mainline lane activation writeback contract:docs/default_mainline_lane_activation_writeback_contract.md
  • Default-Mainline lane activation writeback report:reports/DefaultMainline_LaneActivationWritebackContract_20260409.md
  • Default-Mainline lane activation writeback closure:reports/DefaultMainline_LaneActivationWritebackContract_Closure_20260409.md
  • Default-Mainline lane activation writeback retrospective:reports/DefaultMainline_LaneActivationWritebackContract_Retrospective_20260409.md
  • Default-Mainline contracts stack closure:reports/DefaultMainline_ContractsStack_Closure_20260409.md
  • Default-Mainline contracts stack retrospective:reports/DefaultMainline_ContractsStack_Retrospective_20260409.md
  • Maintenance mode entry:reports/MaintenanceMode_Entry_20260409.md
  • Maintenance mode runbook:docs/maintenance_mode_runbook.md
  • Steps 1/2/3 closure:reports/CurrentToMidterm_Steps123_Closure_20260409.md
  • Steps 1/2/3 retrospective:reports/CurrentToMidterm_Steps123_Retrospective_20260409.md
  • director 收口:reports/Director_Closure_20260409.md
  • latest hold pointer:control/latest_hold_maintenance_pointer.json
  • latest hold dispatch:control/latest_hold_dispatch.json