Skip to content

headless marker-reading 系统性统一:worker marker 落 artifact 而非 log 致 detection/revalidation/readiness/review 多处误判 #499

@loning

Description

@loning

问题

headless 下 worker codex(implement / reviewer)经常把终止 marker(IMPLEMENT_DONE:issue-<N>:<status> / REVIEW_DONE:<pr>:<role>:<verdict>)只写进 run artifact(.refactor-loop/runs/*.md)末尾,不在 log 末尾 echo(codex stdout marker 落点不可靠,同批 worker 有的在 log、有的只在 artifact)。系统多个消费点只扫 log 末尾 marker,导致 markerless worker 被系统性误判:

  1. detection(wakeup_plan.completed_marker_actions):markerless → 不生成 publish/review action。已 hotfix(commit 8aeea89,implement artifact fallback)。
  2. revalidation(wakeup_runner._source_log_has_clean_marker):markerless → reject publish(clean_exit_marker_missing)。已 hotfix(commit dfacc64)。
  3. readiness(consensus-implementation readiness / suppressed_reason):最破坏的一处。系统扫 log 不知道 implement 已完成(marker 在 artifact)→ 判定该派 implement → 重派覆盖已完成的 worktree 工作,原本 IMPLEMENT_DONE:ok 退化成 :partial、工作丢失 + 浪费 codex(dogfood 实测 测试纪律修宪(CLAUDE.md):behavior-first;source-regression 仅锁 doc↔code 授权边界;禁同义反复实现字面断言 #493 :ok:partial发行前 clean-room 集成测试制度:独立干净 host 仓库完整 dogfood 验证后才发版 #421/同义反复 source-literal 测试普查与替换为 behavior test #494 被重派)。未修
  4. review verdict(review gate truth table):markerless reviewer verdict 在 artifact、log 无 → 真值表判 missing role → WAIT_OR_REDISPATCH,review→merge 卡(dogfood 实测 让 review comment 与 refactor marker 冲突可收敛 #402 tests/quality REVIEW_DONE:approve 只在 artifact)。未修

连续单点 hotfix(detection + revalidation)已证明是打地鼠:readiness 重派还会丢失已完成工作,review 还卡。implement→PR、review→merge 两条链都被 markerless 卡死(open PR 数长期只有 2)。

新原则(待共识收窄)

统一 marker-reading robustness:一个共享的 marker reader(契约待定:log-first + artifact-fallback,或与 #205 rule 4 的 review-verdict-artifact-first 对齐),所有终止-marker 消费点(detection / revalidation / readiness / review-verdict)都经它,保证 worker marker 落 log 或 artifact 都被一致识别。可双管齐下同时强化 worker prompt 要求 marker 落 log 末尾,但不能只靠 prompt(worker 行为不可靠是前提)。

不变量 / 边界

decision questions

  1. 共享 reader 契约:log-first+artifact-fallback / artifact-first / 两者一致性校验?
  2. readiness 端如何识别「已完成 implement,不重派」(避免丢工作)而不与「真需重派的失败 implement」混淆?
  3. design: dogfood 运维经验写回 SKILL.md(并行audit覆盖/prompt注册/verdict源/daemon重启) #205 rule 4(review verdict from artifact frontmatter)如何收口为单一来源?
  4. 是否同时加 worker-prompt 强化 + source-regression 锁住所有消费点都用共享 reader?

证据

⟦AI:AUTO-LOOP⟧

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions