仅将 events:streamEvents 按用户批准推进为 completed,并保留 Events 其它 operation 与 Account/Content/Market/Meta 的 needs_verification 边界。
5.8 KiB
P1R-7 Completed Approval 状态推进
结论
本次在用户明确批准后,只把 P1R-7 Events End-to-End Acceptance 的唯一 operation:
events:streamEvents / GET /app-api/muse/events
从 dedicated / needs_verification 推进为 dedicated / completed。
本次没有把整个 events domain 加入 completed 白名单,没有推进 Market / Account / Content / Meta completed,也不代表总 P1R completed。
用户批准点
用户已明确批准三项:
- 只审批
events:streamEvents / GET /app-api/muse/events。 - 采用 operation-level approval,不采用
eventsdomain-level 白名单。 - 允许在真实 worktree 修改 scanner、coverage gate test 与 coverage report,把 completed summary 从
100/133推进到101/132。
实现中发现既有 P1R mixed gate 还包含旧 coverage 口径断言。用户于 2026-06-10 回复“允许”,批准把以下 4 个旧 RealApi gate 纳入本轮测试口径修正:
P1rEventsRealApiGateTest.javaP1rAiRealApiGateTest.javaP1rKnowledgeRealApiGateTest.javaP1rMarketRealApiGateTest.java
该扩展只允许同步测试断言到 events:streamEvents operation-level completed,不允许修改业务实现或 OpenAPI。
状态变化
推进前 coverage summary:
233 100 133 0 0 0
推进后 coverage summary:
233 101 132 0 0 0
推进后 domain 状态:
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:
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.javamuse-cloud/muse-server/src/test/java/cn/iocoder/muse/server/framework/api/P1rEventsRealApiGateTest.javamuse-cloud/muse-server/src/test/java/cn/iocoder/muse/server/framework/api/P1rAiRealApiGateTest.javamuse-cloud/muse-server/src/test/java/cn/iocoder/muse/server/framework/api/P1rKnowledgeRealApiGateTest.javamuse-cloud/muse-server/src/test/java/cn/iocoder/muse/server/framework/api/P1rMarketRealApiGateTest.java
report:
docs/superpowers/reports/p1r-api-coverage.jsondocs/superpowers/reports/p1r-api-coverage.md
文档:
docs/agent-specs/2026-06-09-P1R7CompletedApproval审阅版.mddocs/agent-specs/2026-06-09-P1R7CompletedApproval执行版.mddocs/agent-specs/.agent
关键实现口径
scanner 保留历史 domain-level approval:
APPROVED_COMPLETED_DOMAINS = {"ai", "knowledge"}
并新增 operation-level approval:
APPROVED_COMPLETED_OPERATIONS = {"events:streamEvents"}
approved_completed_operation 仍要求 completed operation 必须是 dedicated,并且只能来自已批准 domain 或已批准 operation key。
验证证据
TDD RED:
P1rApiCoverageReportTest tests=6 failures=1
失败原因:expected completed=101 but was=100
隔离 scanner 预验证:
/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:
python3 muse-cloud/scripts/p1r-audit-api-coverage.py --check
233 101 132 0 0 0
局部 gate:
P1rApiCoverageReportTest tests=6 failures=0 errors=0 skipped=0
旧 RealApi gate 同步后局部 gate:
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:
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 防空跑计数:
p1r_completed_approval_gate_tests=118
最终 diff gate:
git diff --check
OpenAPI staged / unstaged diff 为空
allowed_diff_gate=PASS
Fresh implementation review:
Linnaeus spec/correctness review PASS
Hypatia quality/data-integrity/testing review PASS
review 结论边界:
- PASS 只代表
events:streamEventsoperation-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 仍需用户明确指令。
后续约束
- 不得把整个
eventsdomain 加入 completed 白名单。 - 不得把 Market / Account / Content / Meta 推进 completed。
- 不得把总 P1R completed 写成已完成。
- fresh implementation 双 review PASS 前不得提交或 push。