项目看板
TODO / 优化进度
直接读取仓库内的
TODO.md,便于随时查看阶段目标、待办、测试与收口标准。TODO / 当前路线图
目标:把新闻生成链路稳定推进到“程序先定结构,LLM 只做最后一公里”的终态。 说明:本文件只保留当前 backlog、目标树、门控条件与从现在到中期目标的执行路线。已完成阶段、历史决策与复盘细节已并入
projectreport_news.md与reports/。 更新时间: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-V5hold-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_step1current_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_*.txtsalvage EN JSON,并按需补齐en_report_markdown / en_reviewed_markdown / research_text_en / web_text_en。 - 2026-04-16 已将
2026-04-15与2026-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。
- 不把
director从non-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.jsoncontrol/latest_hold_dispatch.jsonreports/Director_Closure_20260409.md
收口标准
- 无事件时不再人为重跑 maintenance 链。
- 主控制面与机器控制面持续一致。
- director 默认行为稳定为“先复用、再决定是否重跑”。
最小必要测试
python /wwwb/news/scripts/project_director.py validate --jsonpython /wwwb/news/scripts/project_director.py statuspython /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_blockerfreshness_refreshhigher_level_reviewno_real_trigger
收口标准
- trigger 被明确分类。
- 若分类结果为
no_real_trigger,则项目状态继续保持NEXT-MAINLINE-HOLD。 - 若分类结果为其他三类,只允许激活其中一条窄分叉。
最小必要测试
python /wwwb/news/scripts/project_director.py autopilot --action hold_maintenance_cycle --forcepython /wwwb/news/scripts/project_director.py validate --jsonpython /wwwb/news/scripts/project_director.py statuspython /wwwb/news/scripts/restore_project_state.py
Step 3-A. Narrow Mainline For New Blocker
- 进入条件:
- future evidence 冻结出新的、具体的、可复验的 blocker
- 该 blocker 与
M15-M18已关闭问题链清晰分离 blocker_freeze_cycle与next_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 --jsonpython /wwwb/news/scripts/project_director.py statuspython /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.jsoncontrol/phase_execution_state.jsoncontrol/phase_acceptance.jsonTODO.mdprojectreport_news.mdops_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