# P1R-7 Completed Approval 状态推进 ## 结论 本次在用户明确批准后,只把 P1R-7 Events End-to-End Acceptance 的唯一 operation: ```text events:streamEvents / GET /app-api/muse/events ``` 从 `dedicated / needs_verification` 推进为 `dedicated / completed`。 本次没有把整个 `events` domain 加入 completed 白名单,没有推进 Market / Account / Content / Meta completed,也不代表总 P1R completed。 ## 用户批准点 用户已明确批准三项: 1. 只审批 `events:streamEvents / GET /app-api/muse/events`。 2. 采用 operation-level approval,不采用 `events` domain-level 白名单。 3. 允许在真实 worktree 修改 scanner、coverage gate test 与 coverage report,把 completed summary 从 `100/133` 推进到 `101/132`。 实现中发现既有 P1R mixed gate 还包含旧 coverage 口径断言。用户于 2026-06-10 回复“允许”,批准把以下 4 个旧 RealApi gate 纳入本轮测试口径修正: - `P1rEventsRealApiGateTest.java` - `P1rAiRealApiGateTest.java` - `P1rKnowledgeRealApiGateTest.java` - `P1rMarketRealApiGateTest.java` 该扩展只允许同步测试断言到 `events:streamEvents` operation-level completed,不允许修改业务实现或 OpenAPI。 ## 状态变化 推进前 coverage summary: ```text 233 100 133 0 0 0 ``` 推进后 coverage summary: ```text 233 101 132 0 0 0 ``` 推进后 domain 状态: ```text account 33 dedicated/needs_verification:33 ai 41 dedicated/completed:41 content 51 dedicated/needs_verification:51 events 1 dedicated/completed:1 knowledge 59 dedicated/completed:59 market 32 dedicated/needs_verification:32 meta 16 dedicated/needs_verification:16 ``` 唯一新增 completed: ```text events streamEvents GET /app-api/muse/events dedicated completed P1R-7 End-to-End Acceptance ``` ## 修改文件 scanner: - `muse-cloud/scripts/p1r-audit-api-coverage.py` 测试: - `muse-cloud/muse-server/src/test/java/cn/iocoder/muse/server/framework/api/P1rApiCoverageReportTest.java` - `muse-cloud/muse-server/src/test/java/cn/iocoder/muse/server/framework/api/P1rEventsRealApiGateTest.java` - `muse-cloud/muse-server/src/test/java/cn/iocoder/muse/server/framework/api/P1rAiRealApiGateTest.java` - `muse-cloud/muse-server/src/test/java/cn/iocoder/muse/server/framework/api/P1rKnowledgeRealApiGateTest.java` - `muse-cloud/muse-server/src/test/java/cn/iocoder/muse/server/framework/api/P1rMarketRealApiGateTest.java` report: - `docs/superpowers/reports/p1r-api-coverage.json` - `docs/superpowers/reports/p1r-api-coverage.md` 文档: - `docs/agent-specs/2026-06-09-P1R7CompletedApproval审阅版.md` - `docs/agent-specs/2026-06-09-P1R7CompletedApproval执行版.md` - `docs/agent-specs/.agent` ## 关键实现口径 scanner 保留历史 domain-level approval: ```python APPROVED_COMPLETED_DOMAINS = {"ai", "knowledge"} ``` 并新增 operation-level approval: ```python APPROVED_COMPLETED_OPERATIONS = {"events:streamEvents"} ``` `approved_completed_operation` 仍要求 completed operation 必须是 `dedicated`,并且只能来自已批准 domain 或已批准 operation key。 ## 验证证据 TDD RED: ```text P1rApiCoverageReportTest tests=6 failures=1 失败原因:expected completed=101 but was=100 ``` 隔离 scanner 预验证: ```text /tmp/p1r7-completed-approval-impl-scan.QMrhrf 233 101 132 0 0 0 events streamEvents GET /app-api/muse/events dedicated completed P1R-7 End-to-End Acceptance ``` 真实 scanner: ```text python3 muse-cloud/scripts/p1r-audit-api-coverage.py --check 233 101 132 0 0 0 ``` 局部 gate: ```text P1rApiCoverageReportTest tests=6 failures=0 errors=0 skipped=0 ``` 旧 RealApi gate 同步后局部 gate: ```text P1rMarketRealApiGateTest tests=6 failures=0 errors=0 skipped=0 P1rKnowledgeRealApiGateTest tests=8 failures=0 errors=0 skipped=0 P1rAiRealApiGateTest tests=7 failures=0 errors=0 skipped=0 P1rApiCoverageReportTest tests=6 failures=0 errors=0 skipped=0 P1rEventsRealApiGateTest tests=5 failures=0 errors=0 skipped=0 ``` P1R focused gates: ```text JAVA_HOME=$(/usr/libexec/java_home -v 21) mvn -o test -pl muse-server -am -Dtest=... -Dsurefire.failIfNoSpecifiedTests=false Tests run: 118, Failures: 0, Errors: 0, Skipped: 0 BUILD SUCCESS ``` XML 防空跑计数: ```text p1r_completed_approval_gate_tests=118 ``` 最终 diff gate: ```text git diff --check OpenAPI staged / unstaged diff 为空 allowed_diff_gate=PASS ``` Fresh implementation review: ```text Linnaeus spec/correctness review PASS Hypatia quality/data-integrity/testing review PASS ``` review 结论边界: - PASS 只代表 `events:streamEvents` operation-level completed approval implementation 可收口。 - PASS 不代表总 P1R completed。 - PASS 不代表 Market / Account / Content / Meta completed。 ## 已验证事实 - `events:streamEvents` 是本次唯一新增 completed operation。 - Market 32 个 operation 仍为 `dedicated / needs_verification`。 - Account 33 个 operation 仍为 `dedicated / needs_verification`。 - Content 51 个 operation 仍为 `dedicated / needs_verification`。 - Meta 16 个 operation 仍为 `dedicated / needs_verification`。 - 7 个 OpenAPI 合同没有 diff。 - 本次没有修改业务实现代码。 ## 推断 基于 P1R-7a 到 P1R-7f 已收口的 source owner propagation evidence、operation-level approval scanner、coverage gate、P1R focused gates 与 protected diff,可以把 P1R-7 Events completed approval 作为状态推进完成候选,进入 fresh implementation review。 ## 假设 提交和 push 仍需用户明确指令。 ## 后续约束 - 不得把整个 `events` domain 加入 completed 白名单。 - 不得把 Market / Account / Content / Meta 推进 completed。 - 不得把总 P1R completed 写成已完成。 - fresh implementation 双 review PASS 前不得提交或 push。