97 lines
4.2 KiB
Markdown
97 lines
4.2 KiB
Markdown
# 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`。
|