feat(P1/P2): 完成TDD开发及P1/P2设计文档

## 设计文档
- multi_role_permission_design: 多角色权限设计 (CONDITIONAL GO)
- audit_log_enhancement_design: 审计日志增强 (CONDITIONAL GO)
- routing_strategy_template_design: 路由策略模板 (CONDITIONAL GO)
- sso_saml_technical_research: SSO/SAML调研 (CONDITIONAL GO)
- compliance_capability_package_design: 合规能力包设计 (CONDITIONAL GO)

## TDD开发成果
- IAM模块: supply-api/internal/iam/ (111个测试)
- 审计日志模块: supply-api/internal/audit/ (40+测试)
- 路由策略模块: gateway/internal/router/ (33+测试)
- 合规能力包: gateway/internal/compliance/ + scripts/ci/compliance/

## 规范文档
- parallel_agent_output_quality_standards: 并行Agent产出质量规范
- project_experience_summary: 项目经验总结 (v2)
- 2026-04-02-p1-p2-tdd-execution-plan: TDD执行计划

## 评审报告
- 5个CONDITIONAL GO设计文档评审报告
- fix_verification_report: 修复验证报告
- full_verification_report: 全面质量验证报告
- tdd_module_quality_verification: TDD模块质量验证
- tdd_execution_summary: TDD执行总结

依据: Superpowers执行框架 + TDD规范
This commit is contained in:
Your Name
2026-04-02 23:35:53 +08:00
parent ed0961d486
commit 89104bd0db
94 changed files with 24738 additions and 5 deletions

View File

@@ -0,0 +1,249 @@
# 合规能力包设计评审报告
- 评审文档:`/home/long/project/立交桥/docs/compliance_capability_package_design_v1_2026-04-02.md`
- 评审日期2026-04-02
- 评审人Claude Code
- 基线版本v1.0
---
## 评审结论
**CONDITIONAL GO**
该设计文档整体架构合理,扩展了 ToS 合规引擎设计,但在以下方面存在重大缺口需在实施前解决:
1. **CI 脚本缺失**:设计文档中引用的 `compliance/ci/*.sh` 脚本均不存在
2. **事件命名不一致**:合规规则事件命名与 `audit_log_enhancement_design_v1_2026-04-02.md` 规范不兼容
3. **外部工具依赖**M-017 四件套依赖 `syft` 工具但无降级方案
---
## 1. M-017四件套覆盖
| 件套 | 覆盖状态 | 实现说明 | 问题 |
|------|----------|----------|------|
| **SBOM** | 部分覆盖 | 文档指定 SPDX 2.3 格式,示例 JSON 结构正确 | 依赖外部工具 `syft`,工具缺失时仅生成空 SBOM |
| **Lockfile Diff** | 已覆盖 | 文档定义了变更分类(新增/升级/降级/删除) | 脚本未实现 |
| **兼容矩阵** | 已覆盖 | 文档定义了矩阵格式(组件 x 版本) | 脚本未实现 |
| **风险登记册** | 已覆盖 | 文档定义了 CVSS >= 7.0 收录要求 | 脚本未实现 |
### 关键问题
**问题 M017-01严重**
- 文档第 560-571 行:当 `syft` 工具不存在时,生成空 SBOM`"packages": []`
- 这会导致 `dependency-audit-check.sh` 第 33 行断言失败(`grep -q '"packages"'` 通过但内容为空)
- 建议:添加 `syft` 必需性检查,工具缺失时应 FAIL 而不是生成无效报告
**问题 M017-02严重**
- `scripts/ci/dependency-audit-check.sh` 是检查脚本而非生成脚本
- 合规能力包设计第 4.4 节的 `m017_dependency_audit.sh` 脚本不存在
- 实际存在的 `reports/dependency/` 目录及四件套报告文件亦不存在
---
## 2. 与ToS合规引擎一致性
| 检查项 | 状态 | 问题描述 |
|--------|------|----------|
| 规则引擎架构继承 | 部分一致 | 设计扩展了 ToS 引擎compiler/matcher/executor/audit但未说明是否复用同一组件 |
| 规则配置格式 | 一致 | 均使用 YAML 格式定义规则 |
| 规则生命周期 | 一致 | 支持热更新、版本追踪 |
| 事件分类体系 | **不一致** | 合规包使用 `C013-R01` 格式,审计日志设计使用 `CRED-EXPOSE` 格式 |
| 执行位置 | 一致 | 均支持 API Gateway 入口拦截 |
### 关键问题
**问题 TOS-01严重**
- 合规能力包(第 44-80 行)定义规则 ID 为 `C013-R01~R04`
- 审计日志增强设计(第 94-142 行)定义事件分类为 `CRED-EXPOSE``AUTH-QUERY-KEY`
- 两者无法映射,导致 M-013~M-016 指标无法通过统一审计 API 聚合
- 建议:合规规则事件应映射到审计日志的事件分类体系
**问题 TOS-02中等**
- 合规能力包设计第六章目录结构(第 672-710 行)包含 `compliance/` 目录
- 该目录不存在,实际代码库中无对应实现
---
## 3. CI/CD集成评估
| 检查项 | 状态 | 建议 |
|--------|------|------|
| CI 脚本目录结构 | 缺失 | `compliance/ci/` 目录及脚本不存在 |
| Pre-Commit 集成点 | 已定义 | 需实现 `m013_credential_scan.sh` |
| Build 阶段集成点 | 已定义 | 需实现 `m017_dependency_audit.sh` |
| Deploy 阶段集成点 | 已定义 | 需实现 `m014/m015/m016` 检查脚本 |
| 合规门禁脚本 | 已定义 | `compliance_gate.sh` 引用了不存在的脚本 |
| 阻断条件定义 | 合理 | P0 事件阻断符合安全原则 |
### 关键问题
**问题 CI-01严重**
- 合规能力包第 294-342 行定义了 `compliance_gate.sh`,引用了以下不存在的脚本:
- `m013_credential_scan.sh`
- `m014_ingress_coverage.sh`
- `m015_direct_access_check.sh`
- `m016_query_key_reject.sh`
- `m017_dependency_audit.sh`
**问题 CI-02中等**
- 设计第 295 行硬编码路径 `/home/long/project/立交桥/compliance`
- 该路径不存在,无法直接部署
**问题 CI-03中等**
- 设计第 3.3.1 节(第 284-291 行)定义了 CI 集成点,但未提供:
- 具体的 hook 集成方式(如 git hook、CI YAML 配置)
- 与现有 `superpowers_release_pipeline.sh` 的集成说明
---
## 4. 与审计日志设计一致性
| 检查项 | 状态 | 问题描述 |
|--------|------|----------|
| 事件结构 | 部分一致 | 合规包使用简化事件结构,审计日志使用完整 `AuditEvent` |
| 凭证字段 | 一致 | 两者均定义了 `credential_type` 字段 |
| 事件分类 | **不一致** | 见问题 TOS-01 |
| 存储设计 | 一致 | 均支持 PostgreSQL + 索引 |
| API 设计 | 一致 | 均支持 `GET /api/v1/audit/metrics/m{013-016}` |
### 关键问题
**问题 AUD-01严重**
- 合规能力包规则事件(如 `C013-R01`)无法通过审计日志 API 查询
- 审计日志增强设计定义了完整的事件分类,但合规包未实现映射
**问题 AUD-02中等**
- 合规能力包第 3.2.1 节定义的规则执行流程与审计日志增强设计第 7.1 节的中间件集成方式需协调
- 当前两个设计独立,难以保证端到端审计链路
---
## 5. 实施可行性评估
### 5.1 工期评估
| 任务 | 设计工期 | 评审意见 |
|------|----------|----------|
| P2-CMP-001 合规规则引擎核心开发 | 5d | 可行 |
| P2-CMP-002~005 四大规则实现 | 9d | 依赖 P2-CMP-001 |
| P2-CMP-006 M-017 四件套 | 3d | **脚本未实现,需额外工作量** |
| P2-CMP-007 CI 流水线集成 | 2d | **所有 CI 脚本均缺失,工作量被低估** |
| P2-CMP-008 监控告警配置 | 2d | 可行 |
| P2-CMP-009 安全机制联动 | 3d | 依赖与现有组件集成 |
| P2-CMP-010 端到端测试 | 2d | 可行 |
| **总计** | **26d** | **实际工作量可能需要 35-40d** |
### 5.2 里程碑评估
| 里程碑 | 设计日期 | 评审意见 |
|--------|----------|----------|
| M1: 规则引擎完成 | 2026-04-07 | 可行 |
| M2: 四大规则就绪 | 2026-04-11 | 可行 |
| M3: CI 集成完成 | 2026-04-13 | **CI 脚本缺失,延期风险高** |
| M4: 监控告警就绪 | 2026-04-15 | 可行 |
| M5: P2 交付完成 | 2026-04-17 | **延期概率 > 50%** |
### 5.3 验收标准评估
| 指标 | 验收条件 | 评审意见 |
|------|----------|----------|
| M-013 | 凭证泄露事件 = 0 | 可测试,需自动化扫描 |
| M-014 | 入站覆盖率 = 100% | 可测试,需日志分析 |
| M-015 | 直连事件 = 0 | **检测方法未具体化** |
| M-016 | 拒绝率 = 100% | 可测试,需构造外部 query key |
| SBOM | SPDX 2.3 格式有效 | 可测试 |
| Lockfile Diff | 变更条目完整 | **无脚本实现** |
| 兼容矩阵 | 版本对应关系正确 | **无脚本实现** |
| 风险登记册 | CVSS >= 7.0 收录 | **无脚本实现** |
---
## 6. 一致性问题清单
| 严重度 | 问题 ID | 问题 | 建议修复 |
|--------|---------|------|----------|
| **P0** | CI-01 | CI 脚本全部缺失,`compliance_gate.sh` 引用不存在的脚本 | 优先实现所有 `compliance/ci/*.sh` 脚本,或调整设计引用已存在的 `scripts/ci/` 目录 |
| **P0** | M017-01 | syft 工具缺失时生成无效 SBOM | 添加必需性检查,工具缺失时 FAIL |
| **P0** | TOS-01 | 事件命名体系与审计日志不兼容 | 将 `C013-R01` 格式映射到 `CRED-EXPOSE` 格式 |
| **P1** | CI-02 | 硬编码路径 `/home/long/project/立交桥/compliance` | 改为环境变量或相对路径 |
| **P1** | M017-02 | `m017_dependency_audit.sh` 脚本不存在 | 实现四件套生成脚本 |
| **P1** | AUD-01 | 合规事件无法通过审计 API 查询 | 实现事件分类映射 |
| **P2** | CI-03 | 未提供与现有 CI 管道的集成说明 | 补充 git hook 或 CI YAML 配置示例 |
| **P2** | TOS-02 | `compliance/` 目录不存在 | 补充目录创建脚本或调整到现有目录结构 |
| **P2** | M015-01 | 直连检测方法未具体化 | 补充蜜罐或流量检测实现方案 |
---
## 7. 改进建议
### 7.1 高优先级(阻断发布)
1. **补充 CI 脚本实现**
- 建议复用现有 `scripts/ci/` 目录结构而非新建 `compliance/ci/`
- 优先实现 `m013_credential_scan.sh`(凭证扫描可复用现有 secret scanner
- 优先实现 `m017_dependency_audit.sh` 四件套生成脚本
2. **统一事件命名体系**
- 合规规则事件应使用 `audit_log_enhancement_design` 的分类格式
- 建议:`C013-R01` -> `CRED-EXPOSE-RESPONSE`
3. **M-017 四件套必需性**
- syft 工具应标记为必需依赖(而非可选)
- 添加 Dockerfile 或 CI 配置确保工具可用
### 7.2 中优先级
4. **目录结构优化**
- 建议将 `compliance/` 改为 `scripts/compliance/` 接入现有脚本目录
- 或在 `scripts/ci/` 下新增 `compliance-*.sh` 脚本
5. **与现有系统集成**
- 说明与 `superpowers_release_pipeline.sh` 的集成方式
- 说明与 `dependency-audit-check.sh` 的关系(当前设计是补充而非替代)
6. **M-015 直连检测实现**
- 补充具体检测方法蜜罐配置、网络流量分析、API 日志分析)
- 明确检测点位置出网防火墙、API Gateway、中间件
### 7.3 低优先级
7. **文档完整性**
- 补充 P2-CMP-009 安全机制联动的详细设计
- 补充规则热更新机制的实现细节
8. **测试覆盖**
- 补充各规则的单元测试用例设计
- 补充端到端测试场景
---
## 8. 最终结论
### 评审结论CONDITIONAL GO
**通过条件**(实施前必须满足):
1. 实现所有引用的 CI 脚本(`m013~m017_*.sh`
2. 统一事件命名体系与 `audit_log_enhancement_design` 兼容
3. 补充 M-017 四件套生成脚本(当前仅检查脚本存在)
**风险项**
1. 工期风险CI 脚本实现工作量被低估(建议增加 10-15d
2. 集成风险与审计日志系统、ToS 合规引擎的集成需额外协调
3. 测试风险M-015 直连检测实现方案未具体化
**建议行动**
1. 优先实现 CI 脚本,与合规能力包设计同步进行
2. 召开联合评审会议,对齐事件分类体系
3. 拆分 M-015 直连检测为独立子任务,明确实现方案
---
## 附录:评审基线文档
| 文档 | 关键引用 |
|------|----------|
| `llm_gateway_prd_v1_2026-03-25.md` | P2 需求:合规能力包;企业版首批:审计报表与策略留痕导出;关键规则:策略变更必须可审计 |
| `tos_compliance_engine_design_v1_2026-03-18.md` | 合规规则库、自动化合规检查、合规报告生成规则引擎架构matcher/executor/audit |
| `audit_log_enhancement_design_v1_2026-04-02.md` | 事件分类体系CRED/AUTH/DATA/CONFIG/SECURITYM-013~M-016 指标专用字段 |
| `dependency_compatibility_audit_baseline_v1_2026-03-27.md` | M-017 四件套SBOM、锁文件 Diff、兼容矩阵、风险登记册无四件套发布门禁阻断 |
| `2026-03-30-superpowers-execution-tasklist-v2.md` | M-017 四件套SBOM, Lockfile Diff, 兼容矩阵, 风险登记册F-03 项依赖 M-017 趋势证据 |