oh-my-muse/docs/memorys/2026-05-27-P1R2元治理规格计划.md

97 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# P1R2 元治理规格计划留痕
## 任务背景
本次进入 P1R-2 Meta Real API spec + plan 阶段,目标是先完成 Meta 域真实业务 API 的事实盘点、规格和执行计划,不进入代码实现。
P1R-2 的核心不是继续增强 `MuseContractPersistenceService`,也不是把通用持久化响应包装成 Meta 业务结果,而是把 Meta 域从“通用持久化可响应”推进到“真实 Meta 治理 API 可验收”的规格和计划阶段。
## 执行位置
```text
/Users/qingse/.config/superpowers/worktrees/oh-my-muse/dev-1.0.0
```
分支:
```text
dev/1.0.0
```
说明:`/Users/qingse/Sync/local-git/oh-my-muse` 当前不是本阶段真实工作面,核验时位于 `feature/p1-muse-cloud-backend-20260524` 且有未跟踪文件。`dev/1.0.0` 已由上面的 superpowers worktree 占用。
## 已验证事实
P1R 覆盖矩阵中 Meta 域当前状态:
```text
16 generic_persistence / incomplete
```
Meta 16 个 operation 全部来自 `docs/api-contracts/meta/openapi.yaml`,当前没有 `dedicated / needs_verification``catch_all``sse_placeholder``missing`
当前 Meta 模块事实:
- `muse-module-meta-server` 只有 `AdminMuseMetaContractController`
- 该 Controller 使用 wildcard 路由接管 `meta-schemas``protection-nodes``function-chains`
- 当前请求统一委托 `MuseContractPersistenceService.handle(...)`
- 当前没有 Meta 专用 Controller、Service、DTO、DO、Mapper、command/audit 服务和状态机。
当前 DDL 事实:
- V3 已有 `muse_meta_schema``muse_meta_schema_version``muse_meta_field``muse_meta_visibility_policy``muse_meta_protection_node``muse_meta_function_chain`
- V3 不足以覆盖 validation result、impact preview、gray rule、FunctionChain version/slot/node relation、Meta command/audit。
- MetaSchema active 唯一约束不能按 `tenant_id + schema_key` 过度约束,应按 `tenant_id + schema_id`,因为 V3 允许 `(domain, scope, target_type, schema_key)` 组合唯一。
## 本阶段产物
- 规格:`docs/superpowers/specs/2026-05-27-P1R-2-meta-real-api-design.md`
- 计划:`docs/superpowers/plans/2026-05-27-P1R-2-meta-real-api.md`
## Review 结果
本阶段使用 fresh subagent 做了两轮文档 review。
第一轮 review 未通过,阻塞点包括:
- `blocked` 状态没有 OpenAPI/coverage 可执行入口。
- Meta wildcard catch-all 路由退役顺序不清。
- Task 1 clean worktree 预期未考虑新增 review 文档。
- DDL active 唯一约束 identity 与 V3 不一致。
- rollback/deprecate 缺少 OpenAPI required 字段落地要求。
- `previewMetaSchemaDraftImpact` 缺少等价幂等键。
- 权限和 `code/data/msg` controller 验收不够明确。
修正后第二轮 review 通过:
- P1R-2 收口状态统一为 `dedicated / needs_verification`,禁止 `completed` 和 coverage `blocked` 收口。
- 增加 Task 9专门退役 Meta 合同兜底路由,并要求 route ownership 测试证明 16 个路径不再调用 `MuseContractPersistenceService`
- `validateMetaSchemaDraft` / `previewMetaSchemaDraftImpact` 确认为使用 `schemaKey + draftVersion + actor + draftHash` 的等价幂等键,不静默改 OpenAPI。
- rollback/deprecate/publish/activate/gray/function-chain activate 均补齐 commandId、reason、version、validationResultId、impactPreviewId、权限、同源校验和 audit 要求。
- 计划补充 `P1rMetaMigrationSqlTest` 聚焦验证 V10 迁移 SQL 和 active 唯一索引边界。
## 当前阶段边界
本阶段只完成规格和计划,没有实现代码。
未修改:
- `docs/api-contracts/meta/openapi.yaml`
- `docs/superpowers/reports/p1r-api-coverage.*`
- `muse-cloud/scripts/**`
- `muse-cloud/muse-module-meta/**` 实现代码
当前不应把任何 Meta operation 标为 `completed`
## 下一步
进入 P1R-2 实现前,应从 `docs/superpowers/plans/2026-05-27-P1R-2-meta-real-api.md` Task 1 开始,按 fresh subagent + 两轮 review 执行。
实现阶段完成口径:
- Meta 16 个 operation 退出 `generic_persistence`
- Meta 16 个 operation 全部为 `dedicated / needs_verification`
- Content 51 个 operation 保持 `dedicated / needs_verification`
- 不修改脚本掩盖缺口。
- 不把 Meta 标为 `completed`