#345: skill 身份重定位 — audit 降为 fallback issue-producer#365
Conversation
…tion(r6 structural consensus,no-CLAUDE-change skill-local main-path)
🤖 架构审查拒绝: SKILL.md 仍保留 audit 默认 producer 的旧事实TL;DR
详细说明新主合同是清楚的: 问题在同一个 owner source 的详细参考还保留旧事实: 📎 完整 codex 原始输出(存档备查)---
pr: 365
role: architect
verdict: reject
---
## Verdict
reject - PR 365 moves the top-level controller contract to issue/PR main path plus audit fallback, but leaves the detailed work-unit producer reference saying audit remains the default producer, creating two competing behavior facts inside the same SKILL.md owner source.
## Evidence
- `skills/codex-refactor-loop/SKILL.md:44` and `skills/codex-refactor-loop/SKILL.md:48` on `origin/refactor/issue345-skill-identity` establish the new architecture: "The default main path is open actionable catalog-managed GitHub issue/PR resolution" and "`audit` remains a stable compatibility producer value and fallback issue producer." This is the intended skill-local controller contract.
- `skills/codex-refactor-loop/SKILL.md:887` and `skills/codex-refactor-loop/SKILL.md:888` reinforce the same contract in the Producer Contract: "Issue/PR resolution is the main-path state" and "Audit runs only as a compatibility fallback issue producer..."
- `skills/codex-refactor-loop/SKILL.md:3197` still says "`audit` remains the default producer." That contradicts the new main-path/fallback-producer contract in the same owner document. This regresses the PROJECT_RULES clause: "- **事实源唯一**:同一约束禁止在多处平行声明。版本号 → `.version-bump.json`;host 运行时事实 → `host.env`;skill 行为 → 该 skill 的 SKILL.md 与 `scripts/test_*.py`。"
- The stale detailed-reference sentence is also in the SKILL detailed reference surface, which PROJECT_RULES names as authoritative: "- **文档分层**:`README.md` 是仓库定位与共识引擎设计哲学权威源;`CLAUDE.md` 是 agent 工作宪法;`skills/<name>/SKILL.md` 是该 skill 的契约;`skills/<name>/REFERENCE.md` 是可选重型参考层;未使用 `REFERENCE.md` 时,SKILL.md 的详细参考区是该 skill 的权威参考层。三者职责不重叠:README 写产品身份,CLAUDE.md 写仓库宪法,skill 自己维护行为合同/参考。"
## What would change your verdict
Update the detailed `### audit producer` reference around `skills/codex-refactor-loop/SKILL.md:3195` so it no longer says audit is the default producer. It should match the PR's new contract: audit is a compatibility/fallback issue producer that runs only after no actionable managed issue/PR or higher-priority route exists. Add or tighten a source-regression assertion so `SKILL.md` cannot retain "`audit` remains the default producer" while claiming audit is fallback.
⟦AI:AUTO-LOOP⟧
REVIEW_DONE:365:architect:reject⟦AI:AUTO-LOOP⟧ |
🤖 quality reviewer approveTL;DR
详细说明这次改动把 skill 身份重定位落在已有 owner surfaces 上: 我重点看了命名、死代码、复杂度、注释策略和 scope。 📎 完整 codex 原始输出(存档备查)pr: 365
|
🤖 tests reviewer: PR #365 测试覆盖通过TL;DR
详细说明本轮重点看三类风险: audit 是否仍被误当主路径、wakeup-plan 是否只在没有 actionable managed issue/PR 时推荐 audit fallback、以及测试质量是否出现 我运行了触达的测试模块, 📎 完整 codex 原始输出(存档备查)---
pr: 365
role: tests
verdict: approve
---
## Verdict
approve: test coverage and quality are adequate for the skill identity diff.
## Evidence
- `skills/codex-refactor-loop/scripts/test_wakeup_plan.py:673` covers the behavioral priority change: an actionable existing issue routes first and does not emit `RECOMMEND:audit`.
- `skills/codex-refactor-loop/scripts/test_wakeup_plan.py:681` covers the fallback side: an empty managed-work fixture emits `RECOMMEND:audit`.
- `skills/codex-refactor-loop/scripts/test_skill_entrypoint_contract.py:56` and `skills/codex-refactor-loop/scripts/test_skill_reference_anchors.py:165` add source-regression coverage for the new main-path/fallback wording and removal of the old two-entry/audit-default wording.
- `skills/codex-refactor-loop/scripts/test_workflow_stages.py:63` locks the `work-intake` stage contract to fallback issue production, while `skills/codex-refactor-loop/scripts/test_label_contract_source.py:33` updates the label-contract source test to the renamed section.
- No added `sleep`/delay pacing, skips/manual traits, assertion loosening, bump-only tests, or mock-only pseudo-coverage were found in the changed tests. Verification run: `python3 -m unittest skills/codex-refactor-loop/scripts/test_skill_entrypoint_contract.py skills/codex-refactor-loop/scripts/test_skill_reference_anchors.py skills/codex-refactor-loop/scripts/test_wakeup_plan.py skills/codex-refactor-loop/scripts/test_workflow_stages.py skills/codex-refactor-loop/scripts/test_label_contract_source.py` passed, 139 tests.⟦AI:AUTO-LOOP⟧ |
📊 当前状态 — Consensus-rnd Phase review-gate r1 → FIX(❌ 不需要人介入)#365 r1:architect=reject(SKILL.md 详细 Producer Contract 仍写「audit 默认 producer」,与顶层 audit-fallback 矛盾,同源两 competing facts)、tests=approve、quality=approve。fix r2 派出消除矛盾,事实源唯一。 ⟦AI:AUTO-LOOP⟧ |
…competing facts(applied-1)
…ssue345-skill-identity
🤖 Quality review: commentTL;DR
详细说明我只按 readability / naming / simplicity / dead code 角度看。没有发现新增抽象、死代码、复杂度或明显 drive-by cleanup 问题。主要问题是 这会让读者在 bootstrap checklist 里拿到反向指令。建议把 📎 完整 codex 原始输出(存档备查)---
pr: 365
role: quality
verdict: comment
---
## Verdict
Comment: the PR is focused and simple overall, but one stale bootstrap checklist sentence still says audit is the default producer, which undercuts the new main-path/fallback wording.
## Evidence
- `skills/codex-refactor-loop/SKILL.md:457` still says `dispatch producer: audit by default, or manual issue intake only when explicit GitHub labels select it.` This conflicts with the new contract at `skills/codex-refactor-loop/SKILL.md:44` and `skills/codex-refactor-loop/SKILL.md:48`, where managed issue/PR resolution is the main path and audit only runs after no actionable managed work or higher-priority route exists. It is a readability/contract clarity issue, not a broad design objection.
## What would change your verdict (only if comment or reject)
Rewrite `skills/codex-refactor-loop/SKILL.md:457` to match the newer wording, for example: `dispatch main-path managed issue/PR next-step actors first; only dispatch audit fallback when no open actionable managed issue/PR, queued dispatch, clean marker route, CI/no-gap route, maintainer-comment route, or higher-priority wakeup route exists.`
⟦AI:AUTO-LOOP⟧
REVIEW_DONE:365:quality:comment⟦AI:AUTO-LOOP⟧ |
🤖 architect r2 通过: issue/PR 主路径与 audit fallback 合同已收敛TL;DR
详细说明我按 上一轮的 blocker 是详细参考区还保留 “ 📎 完整 codex 原始输出(存档备查)pr: 365
|
🤖 tests review r2 通过TL;DR
详细说明我按 tests 视角看了三点: 新增逻辑是否有行为覆盖, 文档/契约改名是否有 source-regression 锁住, 以及有没有为了过 CI 加 sleep、skip、弱断言或 mock-only 覆盖。 关键覆盖点是 验证命令已在 detached PR worktree 跑过: 📎 完整 codex 原始输出(存档备查)pr: 365
|
* #344: 发版目标 issue 存在时默认进入版本倒计时(crnd:milestone:release-target label + release-gate/wakeup-plan 倒计时投影,r4 minimal consensus) (#366) * #345: skill 身份重定位 — audit 降为 fallback issue-producer (#365) * #345: skill 身份重定位 — audit 降为 fallback issue-producer,主路径=issue resolution(r6 structural consensus,no-CLAUDE-change skill-local main-path) * #365 fix r2: SKILL.md 详细 Producer Contract 改为 audit-fallback 一致,消除同源 competing facts(applied-1) * #104: host-portability fold setup owner surface (#363) * #104: host-portability — fold setup owner surface 进 codex-refactor-loop(HostWorkflowSpec 七面投影/non-admin merge/host-env release checks) * #363 fix r2: 补 host-required release checks fail-closed denial-path behavior tests(applied-2) * #363 fix r4: 补 missing/empty HOST_GITHUB_RELEASE_REQUIRED_CHECKS default-projection behavior test(applied-1) * #337: 源码 English-only 契约系统性收敛 (#367) * #337: 源码 English-only 契约系统性收敛 — test-only source-language guard + HOST_REFACTOR_COMMENT_POLICY default→none,删历史中文注释(r3 structural consensus) * #367 fix r2: source-language guard negative test 改走真实 scanner 入口(comment_findings/string_findings/scan_python_source_language),applied-1 * #367 fix r1: source-language guard 加 iterN/cluster refactor-history 负向覆盖 + 检测逻辑(applied-1,addr tests reject) * #364: Path-A divergent-source contract-only locator(SKILL solver source contract + 3 solver prompt + source-regression;无新 module/parser/header) (#368) * fix(#369 review r1): source-lang guard honor HOST_REFACTOR_COMMENT_POLICY + 删 workflow_spec ValidatedWorkflowSpec.as_dict dead alias(quality reject,applied-2)
摘要
#345 skill 身份重定位:从「重构 loop」到通用 issue-solving。按 design-consensus r6 structural 共识(no CLAUDE change,skill-local main-path)。
范围
9 files(+82/-29):SKILL.md(Two entry modes / Producer Contract / Concurrency Floor 段)+ wakeup_plan.py / workflow_stages.py + 配套 source-regression test。
Closes #345
🤖 Auto-loop / codex-refactor-loop
⟦AI:AUTO-LOOP⟧