AI 辅助编码时代的产研测全链路 Harness 规范系统

AI 辅助编码时代的产研测全链路 Harness 规范系统

范围 : 产品 → 研发 → 测试 → 部署 → 运维 → 运营 全生命周期
核心理念: 建立 AI 自主开发的闭环系统,实现规范驱动开发 (Spec-Driven Development)


目录

  1. 核心概念与架构升级
  2. 全链路目录结构规范
  3. [产品域 (Product) 规范模板](#产品域 (Product) 规范模板)
  4. [研发域 (Development) 规范模板](#研发域 (Development) 规范模板)
  5. [测试域 (Testing) 规范模板](#测试域 (Testing) 规范模板)
  6. [部署域 (Deployment) 规范模板](#部署域 (Deployment) 规范模板)
  7. [运维域 (Operations) 规范模板](#运维域 (Operations) 规范模板)
  8. [运营域 (Business) 规范模板](#运营域 (Business) 规范模板)
  9. [Harness 平台 YAML 模板库](#Harness 平台 YAML 模板库)
  10. 全链路质量门禁体系
  11. [AI 工作流 SOP 与闭环机制](#AI 工作流 SOP 与闭环机制)
  12. 度量体系与持续改进
  13. 实施路线图与行动清单

1. 核心概念与架构升级

1.1 从"最小可行 Harness"到"全链路 Harness"

维度 基础版 (v1.0) 扩展版 (v2.0)
覆盖范围 前后端代码开发 产品 → 研发 → 测试 → 部署 → 运维 → 运营
AI 角色 编码助手 全流程自主代理 (Agent)
约束文件 CLAUDE.md / AGENTS.md 分层约束:PRODUCT.mdCLAUDE.mdTEST.mdDEPLOY.md
质量门禁 代码 Lint + 单元测试 全链路门禁:需求评审 → 代码评审 → 测试覆盖 → 安全扫描 → 部署验证
闭环机制 写代码 → 跑测试 → 修 bug 需求拆解 → 规范生成 → 编码 → 测试 → 部署 → 监控 → 回滚/迭代
度量指标 构建成功率 DORA 四指标 + 价值流效率 + AI 辅助效能

1.2 规范驱动开发 (Spec-Driven Development)

在 AI 辅助编码时代,规范即代码 。业界实践表明,将规范转化为 AI 的 always 级别执行约束,并前置到预 CR 环节,是保障大型项目成功的关键。参考美团 31 万行代码 AI 重构实践,团队沉淀出 AI 友好的工程约束,包括工程分层规范、业务域模型规约和仓储层规约,关键一步是将规范落地为 AI Rule。

核心原则:

  • 需求前置: 开发人员与智能体在实施前共享一份明确的契约,需求范围无歧义
  • 架构前置: 分层逻辑、模块边界与 API 签名必须预先锁定
  • 全流程可追溯: 每项功能对应一条编号需求,代码审查标准从"这段代码看起来对吗?"转变为"这段代码是否符合我们事先达成的共识?"
  • 变更时保留既定行为: 修复缺陷或重构时,明确记录不可变更的行为

1.3 五阶段生命周期 (Cortex Code 规范驱动技能)

复制代码
┌─────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│  1.需求分析  │ → │  2.规范制定  │ → │  3.任务分解  │ → │  4.编码实现  │ → │  5.验证交付  │
│  (EARS标注) │    │ (requirements│    │  (tasks.md) │    │ (遵循约束)  │    │ (质量门禁)  │
│             │    │  design.md) │    │             │    │             │    │             │
└─────────────┘    └─────────────┘    └─────────────┘    └─────────────┘    └─────────────┘
       ↑                                                                      │
       └────────────────── 反馈迭代 ← 监控告警 ← 运维数据 ─────────────────────┘

2. 全链路目录结构规范

text 复制代码
my-harness-project/
│
├── 📋 产品域 (Product)
│   ├── PRODUCT.md              # 产品需求规范与 PRD 模板
│   ├── docs/prd/               # 需求文档目录
│   │   ├── YYYYMMDD_feature_name.md
│   │   └── api_contracts/      # OpenAPI/Swagger 契约文件
│   └── docs/adr/               # 架构决策记录 (Architecture Decision Records)
│
├── 🤖 研发域 (Development)
│   ├── CLAUDE.md               # AI 核心约束:行为准则与边界
│   ├── AGENTS.md               # 多 Agent 协作规范 (可选)
│   ├── .cursorrules            # Cursor IDE 规则 (可选)
│   ├── src/                    # 业务代码
│   │   ├── frontend/           # 前端项目 (Vue/React)
│   │   └── backend/            # 后端项目 (Spring/Node/Go)
│   └── scripts/                # 自定义校验脚本
│
├── 🧪 测试域 (Testing)
│   ├── TEST.md                 # 测试策略与规范
│   ├── tests/
│   │   ├── unit/               # 单元测试
│   │   ├── integration/        # 集成测试
│   │   ├── e2e/                # 端到端测试
│   │   ├── contract/           # 契约测试 (Pact)
│   │   ├── performance/        # 性能测试
│   │   └── security/           # 安全测试
│   └── test-reports/           # 测试报告归档
│
├── 🚀 部署域 (Deployment)
│   ├── DEPLOY.md               # 部署规范与环境管理
│   ├── .github/workflows/      # CI/CD 流水线 (GitHub Actions)
│   ├── harness/                # Harness 平台配置
│   │   ├── pipelines/          # Pipeline Templates
│   │   ├── services/           # Service Definitions
│   │   └── environments/       # Environment Configs
│   ├── k8s-manifests/          # Kubernetes 部署清单
│   │   ├── base/
│   │   └── overlays/
│   │       ├── dev/
│   │       ├── staging/
│   │       └── prod/
│   └── terraform/              # 基础设施即代码 (IaC)
│
├── 🔧 运维域 (Operations)
│   ├── OPS.md                  # 运维规范与 SOP
│   ├── monitoring/             # 监控配置
│   │   ├── prometheus-rules/
│   │   ├── grafana-dashboards/
│   │   └── alertmanager/
│   ├── logging/                # 日志聚合配置
│   └── runbooks/               # 故障处理手册
│
├── 📊 运营域 (Business)
│   ├── BUSINESS.md             # 业务指标与运营规范
│   ├── analytics/              # 数据分析脚本
│   └── feature-flags/          # 特性开关配置
│
├── ⚙️ 工程底座
│   ├── .pre-commit-config.yaml # 本地提交前校验
│   ├── Makefile                # 统一命令入口
│   ├── docker-compose.yml      # 本地开发环境
│   └── README.md               # 项目总览
│
└── 📈 度量与改进
    ├── METRICS.md              # 效能度量指标定义
    └── .harness/               # Harness SEI 配置

3. 产品域 (Product) 规范模板

3.1 核心约束 (PRODUCT.md)

markdown 复制代码
## 1. 产品需求规范 (PRD)

### 1.1 需求格式标准 (EARS 标注法)
所有需求必须使用 EARS (Easy Approach to Requirements Syntax) 格式:
- **格式**: `当 [触发条件] 时,系统应 [系统响应],以便 [业务价值]`
- **示例**: `当用户输入错误密码超过 5 次时,系统应锁定账户 30 分钟,以便防止暴力破解攻击`
- **编号**: 每条需求必须有唯一编号,如 `REQ-001`、`REQ-002`

### 1.2 PRD 文档结构

PRD-YYYYMMDD_功能名称

1. 背景与目标

  • 业务背景:
  • 成功指标 (OKR/KPI):

2. 需求清单 (EARS格式)

编号 优先级 需求描述 验收标准
REQ-001 P0 当...时,系统应... 可测试的验收条件

3. 用户旅程 (User Journey)

  • 流程图或时序图

4. API 契约 (OpenAPI)

  • 引用 docs/api_contracts/xxx.yaml

5. 非功能性需求

  • 性能:
  • 安全:
  • 兼容性:

6. 风险评估

  • 技术风险:

  • 业务风险:

    1.3 需求评审门禁

    • 必须: 所有 P0/P1 需求必须通过产品 + 技术 + 测试三方评审
    • 必须: API 契约必须在编码前完成并评审通过
    • 禁止: 无 PRD 文档直接开始编码
    • 禁止: 需求变更不更新 PRD 文档和编号

    2. 架构决策记录 (ADR)

    2.1 ADR 格式

    markdown 复制代码
    # ADR-XXX: 决策标题
    
    ## 状态
    - 提议 / 已通过 / 已废弃 / 已替代
    
    ## 背景
    - 需要解决的问题
    
    ## 决策
    - 选择的方案及理由
    
    ## 后果
    - 正面影响:
    - 负面影响:
    - 风险:

2.2 必须记录 ADR 的场景

  • 引入新的技术栈或框架
  • 修改核心架构或数据模型
  • 变更安全策略或认证机制
  • 修改部署架构或基础设施

3. AI 工作流规则 (产品域)

  • 规划阶段 : AI 必须基于 PRD 生成 requirements.mddesign.md

  • 契约先行 : API 契约必须在 tasks.md 生成前锁定

  • 变更控制: 任何需求变更必须更新 PRD 并重新触发 AI 规划流程

    3.2 需求与代码关联规范

    text 复制代码
    # Git Commit 规范 (必须关联需求)
    <类型>(<范围>): <描述> [REQ-XXX]
    
    类型:
      feat:     新功能
      fix:      修复
      docs:     文档
      style:    格式
      refactor: 重构
      test:     测试
      chore:    构建/工具
    
    示例:
      feat(auth): add OAuth2 login support [REQ-042]
      fix(api): resolve null pointer in user query [REQ-015]

4. 研发域 (Development) 规范模板

4.1 前端项目 (Vue 3 / React) - 升级版

markdown 复制代码
## 1. 项目概览
- **目标**: 构建基于 Vue 3 + TypeScript + Vite 的现代化 Web 应用
- **技术栈**: Vue 3 (`<script setup lang="ts">`), Vue Router 4, Pinia, Vite, Tailwind CSS
- **AI 辅助规范**: 所有组件必须由 AI 遵循本规范生成,禁止偏离

## 2. 编码规范与命名约定
- **Vue 组件**: 强制使用 `<script setup lang="ts">`,文件名 PascalCase
- **组合式函数**: `use` 前缀,如 `useWindowSize.ts`
- **TypeScript**: 严禁 `any`,所有 Props/Emits 必须定义接口
- **样式**: Scoped CSS 优先,Tailwind 工具类次之
- **AI 生成要求**: 每个组件文件必须包含 JSDoc 注释,说明组件用途和 Props

## 3. 质量门禁 (Quality Gates)
| 门禁项 | 命令 | 阈值 | 阻断级别 |
|--------|------|------|----------|
| 代码规范 | `pnpm lint` | 零错误零警告 | 阻断 |
| 类型检查 | `pnpm type-check` | 通过 | 阻断 |
| 单元测试 | `pnpm test:unit` | 覆盖率 ≥ 80% | 阻断 |
| 构建成功 | `pnpm build` | 成功且 gzipped < 500KB | 阻断 |
| 依赖审计 | `pnpm audit` | 无高危漏洞 | 警告 |

## 4. 测试策略
- **单元测试**: Vitest,覆盖 composables、utils、关键组件
- **集成测试**: 用户关键流程 (登录 → 主页 → 核心功能)
- **视觉回归**: 使用 Playwright 或 Chromatic 进行 UI 快照比对
- **AI 测试辅助**: AI 生成测试用例时,必须遵循 Human-in-the-loop 模式------人工界定测试范围和风险级别,AI 负责代码扫描和用例步骤填充

## 5. AI 工作流规则
1. **规划**: 明确功能需求,确定影响文件清单
2. **契约检查**: 确认 API 契约已存在且已评审
3. **实现**: 遵循规范编写代码,生成 JSDoc
4. **自测闭环**: 运行 `pnpm lint` → `pnpm type-check` → `pnpm test:unit` → 修复 → 重测
5. **提交**: 规范 commit 信息,关联需求编号

## 6. 禁止行为 (Forbidden Actions)
- **禁止**: 直接修改 `node_modules` 或 `.git`
- **禁止**: 生成大段被注释的代码 (调试用除外)
- **禁止**: 硬编码密钥、密码、Token
- **禁止**: 绕过 TypeScript 类型检查使用 `// @ts-ignore`
- **禁止**: 在组件中直接调用 API,必须通过 `api/` 层封装

4.2 后端项目 (Spring Boot / Node.js / Go) - 升级版

markdown 复制代码
## 1. 项目概览
- **目标**: 构建高可用、安全的 RESTful API 服务
- **技术栈**: Spring Boot 3.x + Java 21 / Node.js 20 + TypeScript / Go 1.22
- **架构**: Controller → Service → Repository 三层分离

## 2. 编码规范
- **Java**: 标准命名,类 PascalCase,方法/变量 camelCase
- **API 设计**: RESTful 规范,正确 HTTP 方法和状态码
- **DTO 强制**: 禁止直接返回 Entity,必须使用 DTO
- **异常处理**: 统一异常处理器,禁止在 Controller/Service 中捕获后吞掉异常

## 3. 质量门禁
| 门禁项 | 命令/工具 | 阈值 | 阻断级别 |
|--------|-----------|------|----------|
| 单元测试 | JUnit 5 / Vitest | 行覆盖率 ≥ 80%,核心 ≥ 90% | 阻断 |
| 集成测试 | @SpringBootTest / Supertest | 通过 | 阻断 |
| 代码分析 | SonarQube | 无阻断性问题 | 阻断 |
| 安全扫描 | SAST/SCA | 无高危漏洞 | 阻断 |
| 构建 | `mvn verify` / `npm run build` | 成功 | 阻断 |

## 4. 安全红线 (不可触碰)
- **SQL 注入**: 严禁字符串拼接 SQL,必须使用 ORM/参数化查询
- **密码存储**: 必须使用 BCrypt/Argon2 强哈希,禁止明文或弱哈希
- **输入校验**: 所有外部输入必须使用 Bean Validation / Zod / Validator
- **敏感信息**: 严禁代码中提交密码、密钥,必须使用环境变量 + 密钥管理服务
- **XSS/CSRF**: 输出必须转义,敏感操作必须校验 CSRF Token

## 5. AI 工作流规则
- **TDD 优先**: 新功能必须先写失败单元测试,再写实现代码
- **契约先行**: API 设计先定义 OpenAPI 规范,再生成 Controller
- **安全自检**: AI 生成代码后,必须自检是否触碰安全红线
- **文档同步**: 代码变更必须同步更新 API 文档 (Swagger/OpenAPI)

## 6. 禁止行为
- **禁止**: Controller 层编写业务逻辑
- **禁止**: 直接返回 Entity 给前端
- **禁止**: 在日志中打印敏感信息 (密码、Token、身份证号)
- **禁止**: 使用 `System.out.println` 或 `console.log` 生产代码 (必须使用结构化日志)
- **禁止**: 捕获异常后不做任何处理或仅打印日志

4.3 数据库脚本项目 (SQL) - 升级版

markdown 复制代码
## 1. 数据库变更规范
- **变更即代码**: 所有 DDL/DML 纳入版本控制
- **幂等性**: 脚本必须幂等,多次执行结果一致
- **不可变性**: 已发布脚本禁止修改,变更通过追加新脚本实现
- **回滚支持**: 每条变更脚本必须提供对应回滚脚本
- **事务安全**: 所有 DDL 必须在事务内执行

## 2. 命名规范
| 类型 | 格式 | 示例 |
|------|------|------|
| 变更脚本 | `YYYYMMDD_HHMM_<描述>_apply.sql` | `20250519_1400_add_user_email_apply.sql` |
| 回滚脚本 | `YYYYMMDD_HHMM_<描述>_rollback.sql` | `20250519_1400_add_user_email_rollback.sql` |
| 数据修复 | `YYYYMMDD_HHMM_<描述>_fix.sql` | `20250519_1400_correct_order_status_fix.sql` |

## 3. 质量门禁
- **语法检查**: `sqlfluff lint` 或类似工具
- **迁移测试**: 在沙盒环境执行 apply → 验证 → rollback → 验证
- **性能审查**: 新增索引/大表变更必须通过 DBA 评审

## 4. 禁止行为
- **禁止**: 生产环境直接执行未评审脚本
- **禁止**: 事务外执行 DDL
- **禁止**: 使用 `#` 单行注释 (必须用 `--` 或 `/* */`)
- **禁止**: 无 WHERE 条件的 UPDATE/DELETE
- **禁止**: 在生产环境执行 TRUNCATE

5. 测试域 (Testing) 规范模板

5.1 核心约束 (TEST.md)

markdown 复制代码
## 1. 测试策略金字塔
复制代码
    /\
   /  \
  / E2E \      ← 端到端测试 (10%)
 /─────────\
/  Integration \  ← 集成测试 (20%)

/─────────────────

/ Unit Tests \ ← 单元测试 (70%)

/─────────────────────────\

复制代码
## 2. 测试分层规范

### 2.1 单元测试 (Unit Tests)
- **目标**: 验证单个函数/组件的正确性
- **工具**: Vitest / Jest / JUnit 5
- **规范**:
  - 每个公共函数必须有对应测试
  - 测试名必须描述行为和预期结果: `should return user when id exists`
  - 使用 AAA 模式: Arrange → Act → Assert
  - Mock 外部依赖 (API、数据库、时钟)
- **覆盖率要求**:
  - 行覆盖率: ≥ 80%
  - 分支覆盖率: ≥ 70%
  - 核心业务流程: ≥ 90%

### 2.2 集成测试 (Integration Tests)
- **目标**: 验证模块间协作和数据流
- **范围**: API 端点、数据库交互、消息队列
- **规范**:
  - 使用测试数据库 (TestContainers / H2 / SQLite)
  - 每个 API 端点至少一个 happy path 和一个 error path
  - 测试数据隔离,测试后清理

### 2.3 端到端测试 (E2E Tests)
- **目标**: 验证完整用户旅程
- **工具**: Playwright / Cypress
- **规范**:
  - 覆盖核心业务流程: 注册 → 登录 → 核心功能 → 支付 → 退出
  - 每个测试必须独立,不依赖其他测试状态
  - 使用 Page Object 模式组织测试代码
  - 运行时间: 单个测试 < 30 秒

### 2.4 契约测试 (Contract Tests)
- **目标**: 验证前后端 API 契约一致性
- **工具**: Pact / Spring Cloud Contract
- **规范**:
  - 消费者驱动契约 (CDC)
  - API 变更必须同步更新契约测试
  - CI 中契约测试失败阻断部署

### 2.5 性能测试 (Performance Tests)
- **目标**: 验证系统在高负载下的表现
- **工具**: k6 / JMeter / Gatling
- **规范**:
  - 基准测试: 单接口响应时间 P99 < 200ms
  - 负载测试: 模拟预期峰值流量
  - 压力测试: 找到系统瓶颈和崩溃点
  - 稳定性测试: 持续运行 24 小时无内存泄漏

### 2.6 安全测试 (Security Tests)
- **目标**: 发现安全漏洞
- **工具**: OWASP ZAP / Burp Suite / Snyk
- **规范**:
  - 每次部署前自动扫描
  - 高危漏洞必须修复后才能上线
  - 定期渗透测试 (季度)

## 3. AI 辅助测试规范

### 3.1 Human-in-the-loop 模式
基于业界实践,AI 辅助测试必须遵循以下模式:
- **人工主导**: 人界定测试范围、风险级别、边界场景
- **AI 辅助**: AI 负责代码扫描、用例步骤填充、边界值生成
- **禁止全自动**: AI 不得独立生成完整测试方案而不经过人工范围界定

### 3.2 AI 生成测试用例规范
  1. 人工输入: 功能描述 + 风险级别 (高/中/低) + 特殊边界条件

  2. AI 输出: 测试用例草稿 (包含前置条件、步骤、预期结果)

  3. 人工 Review: 检查是否覆盖隐性关联场景、高危场景

  4. AI 修正: 根据 Review 意见修正用例

  5. 人工确认: 最终确认并纳入测试库

    4. 质量门禁 (测试域)

    门禁项 阶段 阈值 阻断
    单元测试通过率 CI Build 100%
    单元测试覆盖率 CI Build ≥ 80%
    集成测试通过率 CI Build 100%
    契约测试通过 CI Build 100%
    E2E 测试通过率 Pre-Deploy 100%
    性能测试基线 Pre-Deploy P99 < 阈值
    安全扫描 Pre-Deploy 无高危漏洞

    5. 禁止行为

    • 禁止: 无测试代码提交 (测试与代码同行)
    • 禁止: 跳过失败测试直接提交 (必须修复或标记为跳过并说明原因)
    • 禁止: 测试中使用生产环境数据
    • 禁止: 测试代码中硬编码敏感信息

6. 部署域 (Deployment) 规范模板

6.1 核心约束 (DEPLOY.md)

markdown 复制代码
## 1. 部署策略规范

### 1.1 环境定义
| 环境 | 用途 | 部署触发条件 | 审批要求 |
|------|------|--------------|----------|
| Dev | 开发自测 | 代码推送自动 | 无 |
| Test | 集成测试 | CI 通过后自动 | 无 |
| Staging | 预发布验证 | 手动触发 | 测试负责人 |
| Prod | 生产环境 | 手动触发 | 技术负责人 + 产品负责人 |
| Hotfix | 紧急修复 | 紧急流程 | 值班负责人 |

### 1.2 部署策略
- **蓝绿部署 (Blue/Green)**: 适用于无状态服务,零停机切换
- **金丝雀部署 (Canary)**: 适用于有状态服务,渐进式流量切换 (5% → 25% → 50% → 100%)
- **滚动部署 (Rolling)**: 适用于可容忍短暂不一致的场景
- **禁止**: 直接在生产环境手动修改配置或代码

### 1.3 回滚策略
- **自动回滚触发条件**:
  - 错误率 > 阈值 (如 1%)
  - P99 延迟 > 阈值 (如 2 秒)
  - 健康检查失败持续 > 2 分钟
- **回滚 SLA**: 5 分钟内完成回滚
- **回滚验证**: 回滚后必须验证核心功能正常

## 2. 制品管理规范
- **制品晋级**: Dev → Test → Staging → Prod,逐级晋级
- **不可变性**: 晋级过程中制品内容不变,仅元数据变化
- **签名验证**: 生产部署必须验证制品签名
- **保留策略**: 保留最近 30 个版本,超出自动清理

## 3. 配置管理规范
- **配置分离**: 代码与配置分离,配置通过配置中心管理 (Consul / Nacos / AWS Parameter Store)
- **环境隔离**: 每个环境独立配置,禁止共享
- **敏感配置**: 密码、密钥必须通过密钥管理服务 (Vault / AWS Secrets Manager)
- **配置审计**: 所有配置变更必须记录审计日志

## 4. 数据库部署规范
- **变更窗口**: 大表变更必须在低峰期执行,提前通知
- **灰度 DDL**: 使用 pt-online-schema-change 或类似工具,避免锁表
- **数据备份**: 部署前必须完成数据库备份
- **回滚脚本**: 必须预先准备回滚脚本并验证

## 5. AI 工作流规则 (部署域)
- **部署前检查**: AI 必须确认所有质量门禁已通过
- **自动验证**: 部署后 AI 自动运行健康检查和 smoke test
- **监控对接**: 部署后自动关联监控告警
- **回滚决策**: AI 可根据监控指标建议回滚,但回滚执行必须人工确认

## 6. 禁止行为
- **禁止**: 未经审批直接部署生产环境
- **禁止**: 使用 `latest` 标签部署生产环境
- **禁止**: 部署未通过安全扫描的制品
- **禁止**: 在部署过程中修改流水线配置
- **禁止**: 跳过 Staging 环境直接部署 Prod

7. 运维域 (Operations) 规范模板

7.1 核心约束 (OPS.md)

markdown 复制代码
## 1. 监控体系规范

### 1.1 监控分层
| 层级 | 指标类型 | 工具示例 | 采集频率 |
|------|----------|----------|----------|
| 基础设施 | CPU/内存/磁盘/网络 | Prometheus + Node Exporter | 15s |
| 应用性能 | 响应时间/吞吐量/错误率 | APM (SkyWalking / Jaeger) | 实时 |
| 业务指标 | 订单量/用户数/转化率 | 自定义 Metrics | 1min |
| 日志 | 结构化日志 | ELK / Loki | 实时 |
| 链路追踪 | 分布式追踪 | OpenTelemetry + Jaeger | 采样 |

### 1.2 告警规范
- **告警分级**:
  - P0 (紧急): 服务不可用、数据丢失,立即响应 (5min)
  - P1 (高): 核心功能受损、性能严重下降,15min 内响应
  - P2 (中): 非核心功能异常,1h 内响应
  - P3 (低): 优化建议,工作日响应
- **告警原则**: 可观测性三大支柱------指标、日志、链路追踪缺一不可
- **告警抑制**: 避免告警风暴,同类告警合并,升级策略明确

## 2. 故障处理 SOP

### 2.1 故障响应流程
  1. 发现 (Monitoring Alert / 用户反馈)

  2. 确认 (On-call 工程师确认影响范围)

  3. 止损 (立即止损措施: 回滚 / 限流 / 降级)

  4. 定位 (日志分析 / 链路追踪 / 复现)

  5. 修复 (实施修复方案)

  6. 验证 (确认修复有效)

  7. 复盘 (Post-mortem,24h 内完成)

    2.2 Runbook 规范

    • 每个核心服务必须有对应的 Runbook
    • Runbook 必须包含: 服务架构图、依赖关系、常见故障场景、处理步骤、升级路径
    • Runbook 定期演练 (季度),确保有效性

    3. 容量管理规范

    • 容量规划: 基于业务增长预测,提前 3 个月规划扩容
    • 自动扩缩容: HPA/VPA 配置,峰值自动扩容,低峰自动缩容
    • 资源限额: 每个服务必须设置 CPU/Memory Request 和 Limit
    • 成本优化: 定期审查资源利用率,清理闲置资源

    4. 安全运维规范

    • 访问控制: 生产环境访问必须通过堡垒机,操作审计留痕
    • 变更窗口: 生产变更必须在变更窗口内执行,紧急变更事后补审批
    • 备份策略:
      • 数据库: 每日全量 + 实时增量
      • 文件存储: 跨区域冗余
      • 配置: 版本控制 + 定期备份
    • 灾难恢复: RPO < 1h,RTO < 4h,定期演练

    5. AI 辅助运维规范

    • 智能告警: AI 分析告警模式,抑制误报,关联根因
    • 自动修复: 对于已知故障模式,AI 可执行预设修复脚本 (如重启、扩容)
    • 预测性维护: AI 分析趋势,预测资源瓶颈和潜在故障
    • 知识库: AI 辅助生成和更新 Runbook,基于历史故障案例

    6. 禁止行为

    • 禁止: 无监控覆盖的服务上线
    • 禁止: 生产环境直接调试 (必须通过日志和追踪)
    • 禁止: 未经授权访问生产数据库
    • 禁止: 删除或修改审计日志
    • 禁止: 故障发生后 24h 内未完成复盘文档

8. 运营域 (Business) 规范模板

8.1 核心约束 (BUSINESS.md)

markdown 复制代码
## 1. 业务指标规范

### 1.1 指标分层
| 层级 | 指标类型 | 示例 | 采集方式 |
|------|----------|------|----------|
| 北极星指标 | 核心业务目标 | GMV、DAU、留存率 | 数据仓库 |
| 过程指标 | 转化漏斗 | 注册率、激活率、付费率 | 埋点系统 |
| 健康指标 | 系统稳定性 | 可用性、错误率、响应时间 | 监控系统 |
| 效能指标 | 研发效率 | 部署频率、前置时间、恢复时间 | DevOps 平台 |

### 1.2 埋点规范
- **埋点文档**: 每个埋点必须有文档说明 (事件名、触发时机、属性字段)
- **命名规范**: `模块_页面_动作`,如 `order_checkout_click`
- **属性标准**: 统一用户 ID、时间戳、设备信息、来源渠道
- **质量校验**: 埋点上线前必须验证数据准确性

## 2. 特性开关 (Feature Flags) 规范
- **开关分级**:
  - 发布开关: 控制功能是否对用户可见
  - 实验开关: A/B 测试分组控制
  - 运维开关: 降级、限流等运维操作
- **生命周期**: 开关必须有创建时间、计划下线时间、负责人
- **清理策略**: 功能稳定后 2 周内必须清理开关代码

## 3. 数据安全规范
- **数据分类**: 公开、内部、敏感、机密四级
- **脱敏规则**: 敏感数据展示必须脱敏 (手机号、身份证号、银行卡)
- **权限控制**: 数据访问遵循最小权限原则
- **审计追踪**: 敏感数据访问必须记录审计日志

## 4. AI 辅助运营规范
- **智能分析**: AI 辅助分析业务数据,识别异常和机会
- **自动化报告**: 定期自动生成运营报告
- **预测模型**: AI 预测业务趋势,辅助决策

9. Harness 平台 YAML 模板库

9.1 前端 CD Stage 模板 (增强版)

yaml 复制代码
template:
  name: "Frontend CD Stage Template v2"
  type: "Stage"
  spec:
    stage:
      name: "deploy_frontend"
      type: "Deployment"
      spec:
        service:
          name: "frontend_service"
          identifier: "frontend_service"
          serviceDefinition:
            type: "Kubernetes"
            spec:
              manifests:
                - manifest:
                    identifier: "frontend_manifest"
                    type: "K8sManifest"
                    spec:
                      store:
                        type: "Git"
                        spec:
                          connectorRef: "YOUR_GIT_CONNECTOR"
                          gitFetchType: "Branch"
                          paths:
                            - "k8s-manifests/frontend/*.yaml"
              artifacts:
                primary:
                  type: "DockerRegistry"
                  spec:
                    connectorRef: "YOUR_DOCKER_CONNECTOR"
                    imagePath: "<+service.imagePath>"
                    tag: "<+pipeline.variables.IMAGE_TAG>"
        execution:
          steps:
            # 步骤 1: 健康检查 (前置验证)
            - step:
                name: "Pre-Deploy Health Check"
                identifier: "pre_health_check"
                type: "Run"
                spec:
                  command: |-
                    echo "Running pre-deployment validations..."
                    # 验证制品签名
                    # 验证配置完整性
            # 步骤 2: 金丝雀部署 (5% 流量)
            - step:
                name: "Canary Deployment 5%"
                identifier: "canary_5"
                type: "K8sCanaryDeploy"
                timeout: "10m"
                spec:
                  instanceSelection:
                    type: "Percentage"
                    spec:
                      percentage: 5
            # 步骤 3: 自动化验证 (Smoke Test)
            - step:
                name: "Smoke Test"
                identifier: "smoke_test"
                type: "Run"
                spec:
                  command: |-
                    curl -f http://canary-endpoint/health || exit 1
                    curl -f http://canary-endpoint/api/smoke || exit 1
            # 步骤 4: 渐进式流量切换 (25% → 50% → 100%)
            - step:
                name: "Canary Deployment 25%"
                identifier: "canary_25"
                type: "K8sCanaryDeploy"
                spec:
                  instanceSelection:
                    type: "Percentage"
                    spec:
                      percentage: 25
            - step:
                name: "Canary Deployment 50%"
                identifier: "canary_50"
                type: "K8sCanaryDeploy"
                spec:
                  instanceSelection:
                    type: "Percentage"
                    spec:
                      percentage: 50
            # 步骤 5: 全量部署
            - step:
                name: "Rollout Deployment 100%"
                identifier: "rollout_100"
                type: "K8sRollingDeploy"
                timeout: "10m"
                spec:
                  skipDryRun: false
          rollbackSteps:
            - step:
                name: "Rollback Deployment"
                identifier: "rollback_deployment"
                type: "K8sRollingRollback"
                timeout: "10m"
                spec: {}
        infrastructure:
          infrastructureDefinition:
            type: "KubernetesDirect"
            spec:
              connectorRef: "YOUR_K8S_CONNECTOR"
              namespace: "<+pipeline.variables.NAMESPACE>"
              releaseName: "release-<+INFRA_KEY>"
  variables:
    - name: "IMAGE_TAG"
      type: "String"
      description: "Docker image tag to deploy"
    - name: "NAMESPACE"
      type: "String"
      description: "Kubernetes namespace"

9.2 Java CI Pipeline 模板 (增强版)

yaml 复制代码
template:
  name: "Java CI Pipeline Template v2"
  type: "Pipeline"
  spec:
    stages:
      - stage:
          name: "build_and_test"
          type: "CI"
          spec:
            infrastructure:
              type: "KubernetesDirect"
              spec:
                connectorRef: "YOUR_K8S_CONNECTOR"
                namespace: "harness-ci"
                caching:
                  enabled: true
            execution:
              steps:
                - step:
                    name: "Checkout Code"
                    identifier: "checkout"
                    type: "GitClone"
                    spec:
                      connectorRef: "YOUR_GIT_CONNECTOR"
                      build: "<+trigger.build>"
                # 步骤 1: 依赖安全扫描
                - step:
                    name: "Dependency Security Scan"
                    identifier: "dependency_scan"
                    type: "Run"
                    spec:
                      image: "maven:3.8-openjdk-18"
                      command: |-
                        mvn org.owasp:dependency-check-maven:check
                # 步骤 2: 代码质量分析
                - step:
                    name: "SonarQube Analysis"
                    identifier: "sonar_analysis"
                    type: "Run"
                    spec:
                      image: "maven:3.8-openjdk-18"
                      command: |-
                        mvn sonar:sonar -Dsonar.projectKey=<+pipeline.variables.PROJECT_KEY>
                # 步骤 3: 构建与测试
                - step:
                    name: "Maven Build and Test"
                    identifier: "maven_build"
                    type: "Run"
                    spec:
                      image: "maven:3.8-openjdk-18"
                      shell: "Sh"
                      command: |-
                        mvn clean test package
                      reports:
                        - type: "JUnit"
                          spec:
                            paths:
                              - "target/surefire-reports/*.xml"
                        - type: "Jacoco"
                          spec:
                            paths:
                              - "target/site/jacoco/jacoco.xml"
                # 步骤 4: 安全扫描 (SAST)
                - step:
                    name: "SAST Security Scan"
                    identifier: "sast_scan"
                    type: "Run"
                    spec:
                      command: |-
                        # 运行 SAST 工具扫描源码
                        echo "Running SAST scan..."
                # 步骤 5: 制品晋级 (保存并签名)
                - step:
                    name: "Save and Sign JAR Artifact"
                    identifier: "save_jar"
                    type: "SaveArtifacts"
                    spec:
                      connectorRef: "YOUR_ARTIFACT_STORAGE_CONNECTOR"
                      artifacts:
                        - path: "target/*.jar"
                          tag: "<+pipeline.variables.JAR_VERSION>"
                # 步骤 6: 质量门禁检查
                - step:
                    name: "Quality Gate Check"
                    identifier: "quality_gate"
                    type: "Run"
                    spec:
                      command: |-
                        # 检查 SonarQube 质量门禁
                        # 检查测试覆盖率阈值
                        # 检查安全扫描结果
                        echo "Quality gate passed"

9.3 全栈 CI Pipeline 模板 (Matrix 并行构建 + 安全扫描)

yaml 复制代码
template:
  name: "FullStack CI Pipeline Template v2"
  type: "Pipeline"
  spec:
    stages:
      # 阶段 1: 并行构建与测试
      - stage:
          name: "parallel_build_and_test"
          type: "CI"
          spec:
            execution:
              strategy:
                matrix:
                  project:
                    - "frontend"
                    - "backend"
                  node_version:
                    - "20"
                  java_version:
                    - "21"
              steps:
                - step:
                    name: "Build and Test <+matrix.project>"
                    identifier: "build_<+matrix.project>"
                    type: "Run"
                    spec:
                      command: |-
                        if [ "<+matrix.project>" = "frontend" ]; then
                          cd frontend
                          npm ci
                          npm run lint
                          npm run type-check
                          npm run test:unit -- --coverage
                          npm run build
                        else
                          cd backend
                          mvn clean verify
                        fi
      # 阶段 2: 集成测试 (前后端联调)
      - stage:
          name: "integration_test"
          type: "CI"
          spec:
            execution:
              steps:
                - step:
                    name: "Start Services"
                    identifier: "start_services"
                    type: "Run"
                    spec:
                      command: |-
                        docker-compose -f docker-compose.test.yml up -d
                        sleep 30  # 等待服务启动
                - step:
                    name: "Run E2E Tests"
                    identifier: "e2e_tests"
                    type: "Run"
                    spec:
                      command: |-
                        cd tests/e2e
                        npx playwright test
                - step:
                    name: "Run Contract Tests"
                    identifier: "contract_tests"
                    type: "Run"
                    spec:
                      command: |-
                        cd tests/contract
                        npm run test:contract
                - step:
                    name: "Run Performance Tests"
                    identifier: "perf_tests"
                    type: "Run"
                    spec:
                      command: |-
                        cd tests/performance
                        k6 run load-test.js
      # 阶段 3: 安全与合规扫描
      - stage:
          name: "security_scan"
          type: "CI"
          spec:
            execution:
              steps:
                - step:
                    name: "Container Image Scan"
                    identifier: "container_scan"
                    type: "Run"
                    spec:
                      command: |-
                        # 扫描前端和后端 Docker 镜像
                        trivy image frontend:latest
                        trivy image backend:latest
                - step:
                    name: "Secrets Detection"
                    identifier: "secrets_scan"
                    type: "Run"
                    spec:
                      command: |-
                        # 检测代码中是否泄露密钥
                        gitleaks detect --source . --verbose
      # 阶段 4: 制品晋级与部署准备
      - stage:
          name: "artifact_promotion"
          type: "CI"
          spec:
            execution:
              steps:
                - step:
                    name: "Sign Artifacts"
                    identifier: "sign_artifacts"
                    type: "Run"
                    spec:
                      command: |-
                        # 对制品进行签名
                        cosign sign --key env://COSIGN_PRIVATE_KEY frontend.tar
                        cosign sign --key env://COSIGN_PRIVATE_KEY backend.jar
                - step:
                    name: "Generate SBOM"
                    identifier: "generate_sbom"
                    type: "Run"
                    spec:
                      command: |-
                        # 生成软件物料清单
                        syft frontend.tar -o spdx-json=frontend-sbom.json
                        syft backend.jar -o spdx-json=backend-sbom.json

9.4 数据库迁移 Pipeline 模板 (增强版)

yaml 复制代码
template:
  name: "Database Migration Pipeline Template v2"
  type: "Pipeline"
  spec:
    stages:
      - stage:
          name: "db_migration_validation"
          type: "CI"
          spec:
            execution:
              steps:
                # 步骤 1: SQL 语法检查
                - step:
                    name: "SQL Lint Check"
                    identifier: "sql_lint"
                    type: "Run"
                    spec:
                      image: "sqlfluff/sqlfluff:latest"
                      command: |-
                        sqlfluff lint migrations/*.sql
                # 步骤 2: 迁移脚本验证 (沙盒环境)
                - step:
                    name: "Validate Migration in Sandbox"
                    identifier: "validate_sandbox"
                    type: "Run"
                    spec:
                      image: "postgres:15"
                      command: |-
                        # 在临时数据库执行 apply → 验证 → rollback → 验证
                        psql -h sandbox-db -U testuser -d testdb -f migrations/apply.sql
                        # 运行验证查询
                        psql -h sandbox-db -U testuser -d testdb -f tests/validation.sql
                        # 执行回滚
                        psql -h sandbox-db -U testuser -d testdb -f migrations/rollback.sql
                        # 再次验证
                        psql -h sandbox-db -U testuser -d testdb -f tests/post_rollback.sql
      - stage:
          name: "db_migration_deploy"
          type: "Deployment"
          spec:
            service:
              name: "db_migration_service"
              identifier: "db_migration_service"
            execution:
              steps:
                # 步骤 1: 备份生产数据库
                - step:
                    name: "Backup Production DB"
                    identifier: "backup_prod"
                    type: "Run"
                    spec:
                      command: |-
                        pg_dump -h prod-db -U admin -Fc production_db > backup_$(date +%Y%m%d_%H%M).dump
                # 步骤 2: 执行迁移 (事务内)
                - step:
                    name: "Execute Migration"
                    identifier: "run_migration"
                    type: "Run"
                    spec:
                      command: |-
                        # 使用 Flyway 在事务内执行
                        flyway -url=jdbc:postgresql://prod-db:5432/production_db                                -user=$DB_USER -password=$DB_PASS                                -locations=filesystem:migrations                                migrate
                # 步骤 3: 迁移后验证
                - step:
                    name: "Post-Migration Validation"
                    identifier: "post_validation"
                    type: "Run"
                    spec:
                      command: |-
                        # 运行核心业务流程验证
                        psql -h prod-db -U admin -d production_db -f tests/post_migration.sql
                # 步骤 4: 人工审批 (失败时回滚)
                - step:
                    name: "Approval for Rollback"
                    identifier: "rollback_approval"
                    type: "Approval"
                    spec:
                      approval:
                        type: "Manual"
                        spec:
                          timeout: "1h"
                # 步骤 5: 执行回滚 (条件执行)
                - step:
                    name: "Execute Rollback"
                    identifier: "run_rollback"
                    type: "Run"
                    when:
                      stageStatus: "Failed"
                    spec:
                      command: |-
                        flyway -url=jdbc:postgresql://prod-db:5432/production_db                                -user=$DB_USER -password=$DB_PASS                                undo

10. 全链路质量门禁体系

10.1 质量门禁总览

复制代码
┌─────────────────────────────────────────────────────────────────────────────┐
│                        全链路质量门禁体系 (Quality Gates)                      │
├─────────────┬─────────────┬─────────────┬─────────────┬─────────────────────┤
│   产品域     │   研发域     │   测试域     │   部署域     │      运维域          │
├─────────────┼─────────────┼─────────────┼─────────────┼─────────────────────┤
│ PRD 评审通过 │ Lint 零警告 │ 单元测试 100%│ 制品签名验证 │ 监控覆盖率 100%      │
│ ADR 记录完整 │ 类型检查通过 │ 覆盖率 ≥ 80% │ 安全扫描通过 │ 告警配置完整         │
│ API 契约锁定 │ 构建成功     │ 集成测试 100%│ 配置分离验证 │ Runbook 完备         │
│ 需求编号关联 │ 安全红线自检 │ E2E 测试 100%│ 数据库备份完成│ 容量规划就绪         │
│ 三方评审通过 │ 核心逻辑覆盖 │ 性能测试通过 │ 回滚脚本就绪 │ 灾备演练通过         │
│             │ ≥ 90%       │ 安全测试通过 │ 审批流程完成 │                     │
└─────────────┴─────────────┴─────────────┴─────────────┴─────────────────────┘

10.2 门禁执行矩阵

阶段 门禁项 检查方式 阻断级别 责任人
需求 PRD 格式合规 (EARS) 自动化检查 + 人工评审 阻断 产品经理
需求 API 契约已定义 文件存在性检查 阻断 架构师
需求 ADR 已记录 (架构变更) 文件存在性检查 阻断 技术负责人
编码 Commit 关联需求编号 Git Hook 检查 阻断 开发者
编码 代码规范 (Lint) CI 自动执行 阻断 开发者
编码 类型检查通过 CI 自动执行 阻断 开发者
编码 安全红线自检 AI 辅助 + 人工 Review 阻断 开发者
测试 单元测试通过率 CI 自动执行 阻断 开发者
测试 单元测试覆盖率 CI 自动执行 阻断 开发者
测试 集成测试通过率 CI 自动执行 阻断 开发者
测试 契约测试通过率 CI 自动执行 阻断 前后端
测试 E2E 测试通过率 CI 自动执行 阻断 QA
测试 性能测试基线 CI 自动执行 阻断 QA
测试 安全扫描 (SAST/SCA) CI 自动执行 阻断 安全团队
部署 制品签名验证 CD 自动执行 阻断 DevOps
部署 配置分离验证 CD 自动执行 阻断 DevOps
部署 数据库备份完成 CD 自动执行 阻断 DBA
部署 回滚脚本就绪 文件存在性检查 阻断 DevOps
部署 生产审批完成 人工审批 阻断 技术负责人
运维 监控覆盖率 自动化巡检 阻断 SRE
运维 告警配置 自动化巡检 阻断 SRE
运维 Runbook 完备 人工检查 警告 SRE

11. AI 工作流 SOP 与闭环机制

11.1 全链路 AI 工作流

复制代码
┌──────────────────────────────────────────────────────────────────────────────┐
│                        AI 自主开发闭环系统                                    │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  ① 需求输入 ──→ ② AI 规划 ──→ ③ 规范生成 ──→ ④ 编码实现 ──→ ⑤ 自测闭环    │
│       │            │            │            │            │                  │
│       │            │            │            │            │                  │
│       ↓            ↓            ↓            ↓            ↓                  │
│   PRD 文档    requirements.md  tasks.md    代码文件    测试报告              │
│   EARS格式     design.md                  + JSDoc     + Lint报告             │
│                              API契约锁定              + 覆盖率报告           │
│                                                       + 安全自检             │
│                                                                              │
│  ⑥ 人工 Review ──→ ⑦ CI 验证 ──→ ⑧ 部署发布 ──→ ⑨ 监控验证 ──→ ⑩ 反馈迭代 │
│       │            │            │            │            │                    │
│       │            │            │            │            │                    │
│       ↓            ↓            ↓            ↓            ↓                │
│   代码审查      全门禁通过    金丝雀发布    健康检查      业务指标            │
│   + 架构审查    + 制品晋级    + 自动回滚    + 告警验证    + 用户反馈          │
│                                                                              │
│  ◄───────────────────────────────────────────────────────────────────────   │
│                    异常时触发回滚,数据驱动持续改进                           │
└──────────────────────────────────────────────────────────────────────────────┘

11.2 AI 工作流详细 SOP

SOP-001: 新功能开发
markdown 复制代码
## 触发条件
收到新功能需求 (PRD 已评审通过)

## 执行步骤

### Phase 1: 规划 (Planning)
1. AI 读取 `PRODUCT.md` 和对应 PRD 文档
2. AI 确认 API 契约已存在于 `docs/api_contracts/`
3. AI 生成 `requirements.md` (需求拆解)
4. AI 生成 `design.md` (技术设计)
5. AI 生成 `tasks.md` (任务分解,含文件清单)
6. **人工审批**: 开发者 Review 并批准 tasks.md

### Phase 2: 编码 (Implementation)
1. AI 按照 tasks.md 逐文件实现
2. 每个文件必须包含 JSDoc/文档注释
3. 实现过程中遵循 `CLAUDE.md` 约束
4. 实现完成后执行自测闭环:
   - 运行 Lint: `pnpm lint` 或 `mvn spotless:check`
   - 运行类型检查: `pnpm type-check` 或编译检查
   - 运行单元测试: `pnpm test:unit` 或 `mvn test`
   - 如失败,AI 自动修复并重新测试,最多 3 轮
5. **安全自检**: AI 检查是否触碰安全红线

### Phase 3: 提交 (Commit)
1. AI 生成规范 Commit Message,关联需求编号
2. AI 生成 PR 描述,包含变更摘要和测试报告
3. **人工审批**: 提交 PR 等待 Code Review

### Phase 4: 验证 (Validation)
1. CI 自动执行全链路门禁
2. 人工 Code Review (架构审查 + 业务逻辑审查)
3. 通过后合并到主分支

### Phase 5: 部署 (Deployment)
1. CD 自动触发 Staging 部署
2. 运行 Smoke Test 和 E2E Test
3. 人工审批生产部署
4. 金丝雀发布 → 监控验证 → 全量发布

### Phase 6: 监控 (Monitoring)
1. 部署后 30 分钟内密切监控错误率和延迟
2. 对比部署前后业务指标
3. 异常时自动回滚或人工介入
SOP-002: 缺陷修复
markdown 复制代码
## 触发条件
收到缺陷报告 (Bug Ticket)

## 执行步骤

### Phase 1: 分析 (Analysis)
1. AI 读取缺陷描述和复现步骤
2. AI 分析日志和链路追踪数据
3. AI 定位根因,生成分析报告

### Phase 2: 修复 (Fix)
1. AI 编写回归测试 (先失败,后通过)
2. AI 实施修复
3. AI 执行自测闭环
4. AI 检查是否引入新的回归风险

### Phase 3: 验证 (Validation)
1. 回归测试通过
2. 相关集成测试通过
3. Code Review 通过
4. 部署到 Staging 验证

### Phase 4: 复盘 (Post-mortem)
1. 记录缺陷根因
2. 更新 Runbook 或测试用例
3. 如为系统性问题,更新 `CLAUDE.md` 防止复发
SOP-003: 重构
markdown 复制代码
## 触发条件
技术债务清理或架构升级

## 执行步骤

### Phase 1: 评估 (Assessment)
1. AI 分析重构范围和影响面
2. AI 生成重构计划,明确保留行为清单
3. AI 确认测试覆盖率基线

### Phase 2: 实施 (Implementation)
1. AI 编写行为保留测试 (确保重构前后行为一致)
2. AI 逐步重构,小步提交
3. 每步执行全量测试验证

### Phase 3: 验证 (Validation)
1. 全量测试通过
2. 性能对比测试 (重构前后)
3. 代码复杂度降低验证

11.3 AI 模型对抗审查机制

基于美团 31 万行代码重构实践,引入多模型对抗审查:

markdown 复制代码
## 高阶模型审查低阶模型
- 使用高配模型 (如 Claude Sonnet / GPT-4) 作为 Judge Model
- 审查低阶模型 (如 GPT-3.5 / 本地模型) 产出的编码
- 重点审查: 架构合规性、安全红线、业务逻辑正确性

## 不同厂商模型对抗审核
- 使用不同厂商的模型互相审查对方的编码产出
- 通过差异化的模型能力形成互补
- 实测 CR 覆盖面更全,可发现单一模型的盲区

## 审查 checklist
- [ ] 是否遵循 `CLAUDE.md` 约束
- [ ] 是否触碰安全红线
- [ ] 是否有足够的测试覆盖
- [ ] 是否引入技术债务
- [ ] 性能是否有退化
- [ ] 是否破坏向后兼容

12. 度量体系与持续改进

12.1 DORA 核心四指标

指标 定义 精英级阈值 测量方式
部署频率 (Deployment Frequency) 单位时间内生产部署次数 按需 (每天多次) CI/CD 平台统计
变更前置时间 (Lead Time for Changes) 代码提交到生产运行的时间 < 1 小时 Git + CI/CD 数据
变更失败率 (Change Failure Rate) 导致故障的部署占比 < 5% 故障系统关联部署
服务恢复时间 (Time to Restore) 故障发生到恢复的时间 < 1 小时 监控 + 事件管理

12.2 扩展效能指标

指标类别 指标名称 定义 目标
质量 缺陷逃逸率 生产环境发现的缺陷 / 总缺陷数 < 10%
质量 代码评审效率 PR 创建到合并的平均时间 < 4h
质量 技术债务比率 技术债务故事点 / 总故事点 < 15%
效率 AI 辅助编码占比 AI 生成代码行数 / 总代码行数 跟踪趋势
效率 需求交付周期 需求提出到上线的平均时间 < 1 周
效率 流水线执行时间 CI 流水线平均耗时 < 10min
安全 漏洞修复时间 高危漏洞发现到修复的平均时间 < 24h
安全 安全扫描通过率 无高危漏洞的构建占比 100%
可用性 系统可用性 年度可用时间占比 ≥ 99.9%
可用性 MTTR (平均修复时间) 故障发生到恢复的平均时间 < 30min

12.3 价值流度量

复制代码
需求提出 → 需求评审 → 技术设计 → 编码 → 代码评审 → 测试 → 部署 → 上线 → 监控
   │           │          │        │        │        │      │      │      │
   └───────────┴──────────┴────────┴────────┴────────┴──────┴──────┴──────┘
                        价值流效率 = 增值时间 / 总周期时间

目标: 识别并消除等待浪费,提升流动效率

12.4 持续改进机制

markdown 复制代码
## 周度站会 (Stand-up)
- 回顾本周 DORA 指标
- 识别阻塞点和浪费
- 调整下周优先级

## 月度复盘 (Retrospective)
- 分析质量门禁失败原因
- 更新 `CLAUDE.md` 和约束规则
- 分享最佳实践

## 季度规划 (Quarterly Planning)
- 评估技术债务清理计划
- 更新架构决策记录 (ADR)
- 调整效能目标和度量体系

## 年度审计 (Annual Audit)
- 全面审查安全合规性
- 评估 AI 辅助效能提升 ROI
- 更新全链路规范模板

13. 实施路线图与行动清单

13.1 四阶段实施路线图

复制代码
Phase 1: 基础搭建 (Week 1-2)
├── 建立项目目录结构
├── 编写核心约束文件 (PRODUCT.md, CLAUDE.md, TEST.md, DEPLOY.md, OPS.md)
├── 配置本地提交前校验 (.pre-commit-config.yaml)
├── 搭建基础 CI 流水线 (Lint + Test + Build)
└── 团队培训与规范宣导

Phase 2: 流水线完善 (Week 3-4)
├── 完善 Harness Pipeline Templates
├── 配置安全扫描 (SAST, SCA, 容器扫描)
├── 配置制品晋级和签名
├── 搭建测试环境 (TestContainers / 沙盒)
└── 配置基础监控和告警

Phase 3: AI 集成 (Week 5-6)
├── 配置 AI 辅助编码规则 (Cursor Rules / Claude Prompt)
├── 建立 AI 工作流 SOP
├── 实施多模型对抗审查
├── 配置 AI 辅助测试 (Human-in-the-loop)
└── 建立 AI 生成代码的质量门禁

Phase 4: 度量优化 (Week 7-8)
├── 搭建 DORA 指标采集
├── 配置价值流可视化
├── 建立持续改进机制
├── 优化流水线性能 (缓存、并行)
└── 全面审计和合规检查

13.2 行动清单 (Action Items)

立即行动 (本周)
  • 在项目根目录创建 PRODUCT.md, CLAUDE.md, TEST.md, DEPLOY.md, OPS.md
  • 配置 .pre-commit-config.yaml (husky + lint-staged)
  • 建立分支策略: main (保护) → developfeature/* → PR Merge
  • 配置基础 CI: Lint → Type Check → Unit Test → Build
短期行动 (本月)
  • 搭建 Harness / GitHub Actions 完整流水线
  • 配置 SonarQube / Codecov 代码分析
  • 配置 Snyk / Trivy 安全扫描
  • 建立 Staging 环境和自动化部署
  • 配置基础监控 (Prometheus + Grafana)
中期行动 (本季度)
  • 实施金丝雀部署和自动回滚
  • 建立完整测试金字塔 (Unit + Integration + E2E + Contract + Performance)
  • 配置 AI 辅助编码规范和审查流程
  • 搭建 DORA 指标看板
  • 完成灾备演练
长期行动 (本年度)
  • 实现 AI 自主开发闭环 (需求 → 代码 → 测试 → 部署)
  • 建立价值流管理平台 (VSM)
  • 实现预测性维护和智能告警
  • 通过安全合规认证 (等保 / ISO27001)
  • 持续优化和迭代规范体系

附录

A. 模板速查表

项目类型 核心约束文件 关键门禁 Harness 模板
前端 CLAUDE.md (组件规范) Lint + Type Check + Coverage ≥ 80% Frontend CD Template
后端 CLAUDE.md (安全红线) Test Coverage ≥ 80% + SonarQube Java CI Template
数据库 CLAUDE.md (变更规范) SQL Lint + Sandbox 验证 DB Migration Template
全栈 CLAUDE.md + PRODUCT.md 前后端契约测试 + E2E FullStack CI Template
AI 项目 CLAUDE.md (模型规范) 模型评估 + A/B 测试 AI Model Deploy Template

B. 工具链推荐

领域 工具 用途
需求管理 Jira / Linear / Notion PRD 管理和追踪
API 设计 Swagger / Stoplight OpenAPI 契约管理
代码托管 GitHub / GitLab / Gitee 版本控制和 CI
CI/CD Harness / GitHub Actions / GitLab CI 流水线执行
代码质量 SonarQube / Codecov 静态分析和覆盖率
安全扫描 Snyk / Trivy / OWASP ZAP 漏洞检测
测试 Vitest / Jest / Playwright / k6 各类测试执行
监控 Prometheus + Grafana / Datadog 可观测性
日志 ELK / Loki 日志聚合
链路追踪 Jaeger / SkyWalking 分布式追踪
密钥管理 Vault / AWS Secrets Manager 敏感信息存储
制品管理 Harbor / Nexus / Artifactory 镜像和包管理

C. 参考资源


文档维护 : 本规范为动态文档,建议每季度评审更新一次。
反馈渠道 : 通过 PR 提交改进建议,或直接修改对应域的 .md 约束文件。
AI 训练: 将本文档作为 AI 的上下文知识库,可显著提升 AI 辅助编码的质量和一致性。

相关推荐
货拉拉技术7 小时前
私域转化率翻倍的秘密:我们把多模态Agent融进了私域营销
人工智能·算法·设计模式
JavaAgent架构师7 小时前
Java调用Claude API完整代码(Spring Boot + WebClient + 流式输出)
人工智能·后端
萤丰信息7 小时前
破局提质,共生发展——智慧园区建设的痛点破解与未来方向
大数据·人工智能·智慧城市
北京自在科技7 小时前
苹果官宣 WWDC 2026:AI 重构 Siri,全新系统即将登场
人工智能·重构·wwdc
运营小白7 小时前
Google 2026年3月核心更新:电商SEO的自动化分水岭
人工智能·seo工具·效率提升·seonib·搜索流量·google搜索
kangsf19897 小时前
AI(人工智能) 领域常见的专业名词
人工智能
weilaieqi17 小时前
从济南利客行,看固驰城市旗舰店如何真正落地
人工智能
志栋智能7 小时前
从单点检查到全景监控:巡检超自动化的维度拓展
运维·服务器·网络·人工智能·自动化
EasyDSS7 小时前
私有化视频会议系统/智能会议管理系统EasyDSS以数据能力重构视频会议协同新生态
大数据·人工智能·重构