skill: floor 强制澄清(monitor no-gap-only,#14 共识)#18
Conversation
Phase 9 consensus(delete):删 concurrency_monitor 误导性 low-threshold 路径; CODEX_FLOOR 补给仅 controller wakeup step 1.5;SKILL 澄清职责。 ⟦AI:AUTO-LOOP⟧
🤖 quality review approveTL;DR
详细说明这次改动把 自文档注释也到位: 📎 完整 codex 原始输出(存档备查)pr: 18
|
🤖 测试评审通过: no-gap 与 floor 归属已有回归覆盖TL;DR
详细说明我检查了三点: PR 三点 diff、实际测试文件、以及 host 当前没有配置 polling allowlist / guard 文件的情况。这里没有新增 或 生产文件,所以 映射不适用。 新增的 会同时检查正向业务结果和反向回归 token: 、 必须存在,、、、、 这些旧路径不能回来。新增的 则固定 controller wakeup step 1.5 是 floor 补给唯一位置,并检查 前执行、硬下限表达式、删除 旧脚本、只保留一个 canonical step-1.5 脚本块。 我也跑了 PR head worktree 里的测试: , 30 tests OK。diff scan 没有发现新增 测试节奏、、manual category、polling allowlist 变更、弱化断言或 mock-only pseudo-coverage。 📎 完整 codex 原始输出(存档备查)---
pr: 18
role: tests
verdict: approve
---
## Verdict
Approve: the PR adds focused source-regression coverage for the no-gap-only monitor contract and controller-owned floor refill wording, with no sleep pacing, skips, weakened assertions, or mock-only pseudo-coverage.
## Evidence
- `skills/codex-refactor-loop/scripts/test_ensure_project_rules_fixed_points.py:482` adds `test_concurrency_monitor_is_no_gap_only`, which asserts the intended monitor contract (`no-gap-violation`, `expected > 0 and actual == 0`) and blocks stale low/floor paths (`MIN_PARALLEL`, `codex-concurrency-low`, `low_streak`, `actual < threshold`, `CODEX_FLOOR`) from returning.
- `skills/codex-refactor-loop/scripts/test_ensure_project_rules_fixed_points.py:499` adds `test_skill_assigns_floor_to_controller_step_1_5_only`, which asserts the documented business rule that controller wakeup step 1.5 owns floor refill before `ScheduleWakeup`, keeps the hard floor expression, removes the stale `ACTIVE <= 2` duplicate script, and leaves only one canonical step-1.5 script block.
- Diff scan found no added `sleep` / `delay` test pacing, no polling allowlist change, no `[Skip]`, no `[Trait("Category","Manual")]`, no bump-only assertion, no loosened existing assertion, and no mock-only pseudo-coverage.
- No `src/` or `agents/` production files are touched, so the repository's `test/.../<TypeName>Tests.cs` mapping requirement does not apply to this PR.
- Verified the PR-head test file in the branch worktree: `cd .refactor-loop/worktrees/skill-concurrency-floor-enforcement/skills/codex-refactor-loop/scripts && python3 -m unittest test_ensure_project_rules_fixed_points.py` passed with 30 tests.
REVIEW_DONE:18:tests:approve
⟦AI:AUTO-LOOP⟧⟦AI:AUTO-LOOP⟧ |
🤖 架构审查: comment, SKILL 计数契约还差一行同步TL;DR
详细说明这轮 diff 范围是干净的:只动了 唯一需要评论的是 建议补一刀:把 📎 完整 codex 原始输出(存档备查)---
pr: 18
role: architect
verdict: comment
---
## Verdict
comment-only: the PR is architecturally scoped and mostly matches the Phase 9 decision, but one changed SKILL contract line still documents the old monitor counting rule.
## Evidence
- `skills/codex-refactor-loop/SKILL.md:230` still says monitor `actual` is counted when the command line contains `.refactor-loop/logs/` or `.refactor-loop/prompts/`. The Phase 9 source plan required this section to state the current true rule: "command line contains `spawn-codex.sh` and absolute `$REPO_ROOT`, excluding ` -c ` wrappers." This matters because the live code in `skills/codex-refactor-loop/scripts/concurrency_monitor.py:144-153` now scopes by absolute `REPO_ROOT` and excludes ` -c ` wrappers, so the public skill contract remains stale even though the implementation is corrected. This is a comment, not a reject, because the AGENTS/CLAUDE exception allows this host-agnostic policy fix: "例外:经 Phase 9 deep consensus 明确授权的 host-agnostic bootstrap / policy 注入修正可先落地,但不得引入具体 host 事实,且必须配套行为测试。"
- Scope honesty checks pass: the diff is limited to `skills/codex-refactor-loop/SKILL.md`, `skills/codex-refactor-loop/scripts/concurrency_monitor.py`, and `skills/codex-refactor-loop/scripts/test_ensure_project_rules_fixed_points.py`; the implement summary documents `SCOPE_EXTEND` for the added regression test file.
- Old/New comments are present on the refactored floor section and changed code/test concepts: `skills/codex-refactor-loop/SKILL.md:1952`, `skills/codex-refactor-loop/scripts/concurrency_monitor.py:210`, and `skills/codex-refactor-loop/scripts/test_ensure_project_rules_fixed_points.py:478`.
- Anti-pattern grep on added lines found no live additions of actor dispatch bypasses, host `SubscribeAsync<EventEnvelope>`, disabled tests, raw `HttpClient`, production sleep/delay, cross-actor `Dictionary<,>`, or new external repo references. The only matched added strings are forbidden-token assertions in tests and explanatory floor wording.
- No `.proto` files are touched; no version manifests are touched; no compatibility shim, new actor split, or parallel pathway is introduced.
## What would change your verdict
Update `skills/codex-refactor-loop/SKILL.md:230` so the monitor `actual` rule says it counts command lines containing `spawn-codex.sh` and absolute `$REPO_ROOT`, excluding ` -c ` wrappers. Ideally extend the new source-regression test to assert this exact contract so the stale logs/prompts wording cannot return.
REVIEW_DONE:18:architect:comment
⟦AI:AUTO-LOOP⟧⟦AI:AUTO-LOOP⟧ |
🤖 测试评审通过: no-gap 与 floor 归属已有回归覆盖TL;DR
详细说明我检查了三点: PR 三点 diff、实际测试文件、以及 host 当前没有配置 polling allowlist / guard 文件的情况。这里没有新增 新增的 我也跑了 PR head worktree 里的测试: 📎 完整 codex 原始输出(存档备查)---
pr: 18
role: tests
verdict: approve
---
## Verdict
Approve: the PR adds focused source-regression coverage for the no-gap-only monitor contract and controller-owned floor refill wording, with no sleep pacing, skips, weakened assertions, or mock-only pseudo-coverage.
## Evidence
- `skills/codex-refactor-loop/scripts/test_ensure_project_rules_fixed_points.py:482` adds `test_concurrency_monitor_is_no_gap_only`, which asserts the intended monitor contract (`no-gap-violation`, `expected > 0 and actual == 0`) and blocks stale low/floor paths (`MIN_PARALLEL`, `codex-concurrency-low`, `low_streak`, `actual < threshold`, `CODEX_FLOOR`) from returning.
- `skills/codex-refactor-loop/scripts/test_ensure_project_rules_fixed_points.py:499` adds `test_skill_assigns_floor_to_controller_step_1_5_only`, which asserts the documented business rule that controller wakeup step 1.5 owns floor refill before `ScheduleWakeup`, keeps the hard floor expression, removes the stale `ACTIVE <= 2` duplicate script, and leaves only one canonical step-1.5 script block.
- Diff scan found no added `sleep` / `delay` test pacing, no polling allowlist change, no `[Skip]`, no `[Trait("Category","Manual")]`, no bump-only assertion, no loosened existing assertion, and no mock-only pseudo-coverage.
- No `src/` or `agents/` production files are touched, so the repository's `test/.../<TypeName>Tests.cs` mapping requirement does not apply to this PR.
- Verified the PR-head test file in the branch worktree: `cd .refactor-loop/worktrees/skill-concurrency-floor-enforcement/skills/codex-refactor-loop/scripts && python3 -m unittest test_ensure_project_rules_fixed_points.py` passed with 30 tests.
REVIEW_DONE:18:tests:approve
⟦AI:AUTO-LOOP⟧⟦AI:AUTO-LOOP⟧ |
实现 #14(self-audit #11)共识(delete):concurrency_monitor 保持 no-gap-only,删 low-threshold/MIN_PARALLEL 死路径;CODEX_FLOOR 补给职责归 controller wakeup step 1.5;SKILL「Concurrency floor」节澄清。验证了 controller 现有 floor 做法。
🤖 Auto-loop · #14
⟦AI:AUTO-LOOP⟧