治理框架
当 AIDLC 向全公司扩散时,系统化管理 AI 生成代码的质量、安全、合规的治理框架。
治理的必要性
AI 编码代理扩散的挑战
随着 AI 编码代理成为开发工作流的核心工具,组织面临新的治理挑战:
质量一致性问题
- 每个项目使用不同提示、不同质量标准
- 生成代码的质量依赖于提示编写者的能力
- 缺乏自动校验是否遵循全公司编码规范的手段
安全风险增加
- 需要自动检测 AI 生成代码的安全漏洞
- 敏感代码 / 数据可能泄露到外部 AI 服务
- 未授权 AI 工具被随意使用
合规要求
- 韩国 AI 基本法 (韩国,2026)、EU AI Act 等监管应对
- 保障 AI 生成代码的可追溯性 (traceability)
- 审计 (audit) 时须提交 AI 使用历史
扩展性限制
- 项目单独引入 AI 工具会重复投入
- 学习成果无法扩散到整个组织
- 需要在全公司标准与项目特性之间取得平衡
治理框架的角色
系统化的治理框架可实现:
- 策略自动应用: 通过 Steering 文件自动注入全公司标准
- 风险最小化: 通过数据主权策略保护敏感信息
- 合规遵循: 系统化应对 AI 基本法等法律要求
- 持续改进: 基于审计追踪数据完善策略
3 层治理模型
AIDLC 采用 "全公司—系统—项目" 的 3 层治理模型。
Layer 1: 全公司标准 (Enterprise Policy)
适用于所有项目的最高层策略。
编码规范
- 各语言风格指南 (例如 Google Java Style Guide)
- 命名约定、注释策略
- 代码复杂度上限 (Cyclomatic Complexity ≤ 15)
安全策略
- 禁止 OWASP Top 10 漏洞 (SQL Injection、XSS 等)
- 必备的认证 / 授权实现模式
- 禁止敏感信息写日志
- 禁止硬编码凭据
已批准 AI 工具列表
- 可用的编码代理 (Aider、Continue、Cursor 等)
- 已批准的 LLM 提供商 (AWS Bedrock、Azure OpenAI 等)
- 按数据分类可用模型矩阵
模型使用策略
- 代码生成: GPT-4 Turbo / Claude 3.7 Sonnet / Qwen 3 Coder
- 安全评审: 本地部署 Open-Weight 模型
- 文档生成: GPT-4o-mini 等轻量模型
Layer 2: 系统级策略 (System Architecture Standards)
定义特定系统或领域的架构模式。
MSA 通信规则
# 示例: 微服务架构标准
communication:
sync: gRPC (internal), REST (external)
async: Kafka (event-driven), SNS/SQS (cloud-native)
circuit-breaker: Istio 默认启用
timeout: 3 秒 (default), 30 秒 (batch)
数据模型约束
- 按领域定义实体 (订单、支付、配送等)
- 必备属性 (created_at、updated_at、tenant_id)
- 外键命名规则
API 设计指南
- RESTful 资源命名 (/orders/{orderId}/items)
- HTTP 方法 (GET: 查询、POST: 创建、PUT/PATCH: 修改、DELETE: 删除)
- 分页参数 (page、size、sort)
- 错误响应格式 (RFC 9457 Problem Details)
架构模式
- Repository 模式 (数据访问层)
- CQRS (读写分离)
- Saga 模式 (分布式事务)
Layer 3: 项目 Steering (Project Steering Files)
包含项目特有 AI 指令的 Steering 文件。
Ontology
- 项目领域词典
- 实体关系 (例如 Order → OrderItem → Product)
- 禁用术语 (例如 用 "replica" 代替 "slave")
详情参见 Ontology。
Harness 配置
- Quality Gate 阈值 (代码覆盖率 ≥ 80%、代码重复 ≤ 3%)
- 必备评审者 (至少 1 位资深开发者)
- 部署审批策略 (Staging → 生产阶段部署)
详情参见 Harness。
模型选择
# 示例: 按项目的模型路由
models:
code_generation: Claude Sonnet 4.6 # 复杂业务逻辑
code_review: qwen3-coder-32b-instruct # 本地部署安全评审
test_generation: gpt-4o-mini # 单元测试生成
documentation: Claude Haiku 4.5 # API 文档自动生成
项目特定约束
# 示例: 遗留对接约束
legacy_integration:
- 禁止: JPA N+1 查询 (必须使用 fetch join)
- 必须: 事务超时不超过 5 秒
- 禁止: 同步 HTTP 调用 (使用异步消息)
基于 Steering 文件的治理自动化
什么是 Steering 文件
Steering File 是被注入 AI 编码代理的项目特定约束文件。
目录结构
project-root/
.aidlc/
steering.yaml # 项目 Steering (Layer 3)
system-standards.yaml # 继承系统标准 (Layer 2)
enterprise-policy.yaml # 继承全公司标准 (Layer 1)
.aider/
AIDLC-context.md # Aider 专用上下文
.continue/
config.json # Continue 专用配置
CLAUDE.md # Claude Code 专用指令
steering.yaml 示例
project: order-management-service
version: 2.1.0
# Layer 1: 继承全公司标准
inherits:
- /enterprise/coding-standards/java-style-guide.yaml
- /enterprise/security/owasp-top10-prevention.yaml
# Layer 2: 继承系统标准
system_standards:
- /systems/msa-communication-rules.yaml
- /systems/data-model-constraints.yaml
# Layer 3: 项目设置
ontology:
domain: e-commerce
entities:
- Order: 订单实体 (ID、customer、items、total、status)
- OrderItem: 订单项 (ID、product、quantity、price)
forbidden_terms:
- master/slave → leader/follower
- blacklist/whitelist → denylist/allowlist
harness:
quality_gate:
code_coverage: 80
duplication: 3
cognitive_complexity: 15
mandatory_reviewers:
- team: senior-backend
min_approvals: 1
model_routing:
code_generation: Claude Sonnet 4.6
code_review: qwen3-coder-32b-instruct # on-premises
test_generation: gpt-4o-mini
constraints:
- no_jpa_n_plus_1_query
- transaction_timeout_5s
- async_messaging_only
多 LLM Steering
根据不同 LLM 厂商优化 Steering 格式。
Claude Code (CLAUDE.md)
# Project Instructions
## Domain Model
- Order: 订单实体
- OrderItem: 订单项
## Constraints
- 禁止 JPA N+1 查询 (必须使用 fetch join)
- 事务超时不超过 5 秒
Aider (.aider/AIDLC-context.md)
# AIDLC Context
You are working on an e-commerce order management service.
## Key Entities
- Order, OrderItem, Product
## Rules
- Always use fetch join to prevent N+1 queries
- Transaction timeout: 5 seconds
Continue (.continue/config.json)
{
"systemMessage": "You are an AI assistant for order-management-service. Follow JPA N+1 prevention rules and 5-second transaction timeout.",
"models": [
{
"title": "Claude 3.7 Sonnet",
"provider": "anthropic",
"model": "Claude Sonnet 4.6"
}
]
}
Governance as Code
将 Steering 文件纳入 Git 仓库,追踪变更历史并适用 PR 评审。
Git 工作流
# 修 改 Steering 文件
git checkout -b update-steering-file
vim .aidlc/steering.yaml
# 提交变更
git add .aidlc/steering.yaml
git commit -m "feat: add async messaging constraint"
# 创建 PR → 资深开发者评审 → 审批后合并
gh pr create --title "Update steering file with async messaging rule"
自动校验 CI/CD
# .github/workflows/steering-validation.yml
name: Validate Steering File
on: [pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate steering.yaml schema
run: |
yamllint .aidlc/steering.yaml
python scripts/validate-steering-schema.py
- name: Check policy inheritance
run: |
python scripts/check-policy-inheritance.py
版本管理
- 在 Steering 文件中明示
version字段 - 不兼容变更时升级主版本号
- AI 编码代理仅使用兼容版本