← スキル一覧に戻る
ai-ad-spec-governor
wade56754 / AI_ad_spend02
⭐ 0🍴 0📅 2026年1月16日
SKILL.md
---
name: ai-ad-spec-governor
version: "1.2"
status: ready_for_production
layer: skill
owner: wade
last_reviewed: 2025-11-28
baseline: AI_CODE_FACTORY_DEV_GUIDE_v2.4, SoT Freeze v2.6, SUPERCLAUDE_INTEGRATION_GUIDE_v2.2
---
# AI-Ad Spec Governor Skill v1.2
<skill>
<name>ai-ad-spec-governor</name>
<version>1.2</version>
<status>active</status>
<owner>doc-architect / wade</owner>
<last_updated>2025-11-27</last_updated>
<mission>
负责在整个文档体系范围内执行 Spec-Driven 治理和 SoT 对齐,作为规范治理总调度器(Spec Governor),统筹文档审计、修复、验证和 Freeze 合规性检查。
</mission>
---
## 📌 核心定位
**ai-ad-spec-governor** 是 AI_ad_spend02 项目的**元规范总控 Architect**,负责:
1. **规范治理闭环**: 审计 → 修复 → 验证 → 上线判定
2. **SoT 对齐**: 确保所有文档符合 `docs/sot/` 真相源
3. **子 Skill 调度**: 协调现有文档治理 Skill(auditor / fixer / pipeline / orchestrator)
4. **Freeze 合规**: 确保文档变更不违反 ASDD Freeze v1.0 / SoT Freeze v2.6
**职责边界**:
- ✅ **调度协调**: 决定何时调用哪个子 Skill
- ✅ **治理判定**: 决定文档是否可上线
- ✅ **SoT 监督**: 确保所有修改符合 SoT 裁判链
- ❌ **直接修改 SoT**: 不直接修改 `docs/sot/` 文档(仅提建议)
- ❌ **重复造轮子**: 不重新实现已有 Skill 功能
---
## 🎯 WHEN_TO_USE
### 典型使用场景
#### 1. 单文档上线前检查
```
场景:API_DEVELOPMENT_FLOW.md 重写完毕,需要判定是否可上线
调用:mode="single-doc", target="docs/3.dev-guides/API_DEVELOPMENT_FLOW.md"
流程:AUDIT → FIX → VERIFY → 上线判定
```
#### 2. 文档组巡检
```
场景:每季度对 dev-guides 做一次全面巡检
调用:mode="doc-group", scope="dev-guides"
流程:批量 AUDIT → 生成巡检报告 → 批量修复(可选)
```
#### 3. 新 SoT 发布后的对齐检查
```
场景:STATE_MACHINE.md v2.8 发布,需检查所有引用文档是否对齐
调用:mode="sot-alignment-check", changed_sot="STATE_MACHINE.md"
流程:调用 ai-ad-sot-doc-pipeline → 验证下游文档
```
#### 4. Appendix 文档一致性检查
```
场景:修改多个 SoT 后,GLOSSARY / DECISIONS / CHECKLIST 是否需要更新
调用:mode="appendix-sync", changed_files=[...]
流程:检查 Appendix 是否引用了过时的 SoT 内容
```
#### 5. 文档变更影响分析
```
场景:修改 DATA_SCHEMA.md §3.3.1 daily_reports 表,需要找出所有受影响文档
调用:mode="impact-analysis", changed_section="DATA_SCHEMA.md#3.3.1"
流程:搜索所有引用 → 生成影响范围报告
```
### 触发条件
| 触发方式 | 描述 | 示例 |
|---------|------|------|
| **手动调用** | 用户明确请求治理检查 | "请检查 API_DEVELOPMENT_FLOW.md 是否符合规范" |
| **定期巡检** | 每季度/每月自动触发 | Cron Job: 每季度第一天 |
| **SoT 变更** | SoT 文档发布新版本后 | STATE_MACHINE.md v2.8 → v2.7 |
| **PR 审查** | CI/CD 触发(未来) | PR 修改 dev-guides 文档时 |
---
## 🚫 WHEN_NOT_TO_USE
### 不适用场景
#### 1. 纯业务讨论
```
❌ 场景:讨论"日报审核流程是否合理"
原因:这是业务规则设计,不是文档治理
应使用:直接讨论或记录 ADR
```
#### 2. 代码实现细节
```
❌ 场景:优化 DailyReportService.py 性能
原因:代码实现问题,不是文档问题
应使用:代码审查 / 性能分析工具
```
#### 3. 单一字段查询
```
❌ 场景:查询 `conversions_raw` 字段定义
原因:简单查询无需治理流程
应使用:直接查阅 DATA_SCHEMA.md
```
#### 4. 无文档修改的场景
```
❌ 场景:用户只想理解系统架构
原因:无需治理和修复
应使用:直接阅读 MASTER.md / SYSTEM_OVERVIEW.md
```
#### 5. 已有 Skill 可直接解决
```
❌ 场景:单纯审计某个文档的 P0/P1/P2 问题
原因:ai-ad-doc-system-auditor 可直接完成
应使用:直接调用 ai-ad-doc-system-auditor
```
**判定原则**: 如果任务可由单一子 Skill 独立完成,无需调度协调,则不应使用 spec-governor。
---
## 📥 INPUT_CONTRACT
### 输入参数定义
```typescript
interface SpecGovernorInput {
// ===== 必填参数 =====
mode: "single-doc" | "doc-group" | "full-scan" | "sot-alignment-check"
| "appendix-sync" | "impact-analysis";
// ===== 条件必填 =====
target?: string; // mode=single-doc 时必填,文件路径
targets?: string[]; // mode=doc-group 时必填,文件/目录列表
scope?: "overview" | "sot" | "dev-guides" | "appendix" | "all";
// mode=full-scan 时必填
changed_sot?: string; // mode=sot-alignment-check 时必填
changed_section?: string; // mode=impact-analysis 时必填
changed_files?: string[]; // mode=appendix-sync 时必填
// ===== 可选参数 =====
strict_level?: "paranoid" | "normal" | "relaxed";
// 默认: "normal"
allow_auto_fix?: boolean; // 是否允许自动修复,默认: true
include_appendix?: boolean; // 是否检查 Appendix 衔接,默认: true
dry_run?: boolean; // 仅生成报告,不实际修改,默认: false
output_format?: "markdown" | "json" | "checklist";
// 默认: "markdown"
}
```
---
### 模式详解
#### Mode 1: single-doc (单文档治理)
**输入示例**:
```json
{
"mode": "single-doc",
"target": "docs/3.dev-guides/API_DEVELOPMENT_FLOW.md",
"strict_level": "normal",
"allow_auto_fix": true,
"include_appendix": true
}
```
**执行流程**:
1. DISCOVER: 读取目标文档元信息
2. AUDIT: 调用 `ai-ad-doc-system-auditor` 生成 P0/P1/P2 报告
3. FIX: 如果 `allow_auto_fix=true`,调用 `ai-ad-doc-fixer` 修复
4. VERIFY: 再次审计,确认修复效果
5. SUMMARY: 输出上线判定(PASS / BLOCK / WARN)
---
#### Mode 2: doc-group (文档组巡检)
**输入示例**:
```json
{
"mode": "doc-group",
"targets": [
"docs/3.dev-guides/API_DEVELOPMENT_FLOW.md",
"docs/3.dev-guides/FRONTEND_SPEC.md"
],
"strict_level": "normal",
"allow_auto_fix": false,
"dry_run": true
}
```
**执行流程**:
1. DISCOVER: 批量读取文档元信息
2. AUDIT: 对每个文档生成审计报告
3. SUMMARY: 汇总所有问题,生成巡检总报告
4. (可选)FIX: 如果 `allow_auto_fix=true`,批量修复
---
#### Mode 3: full-scan (全面扫描)
**输入示例**:
```json
{
"mode": "full-scan",
"scope": "dev-guides",
"strict_level": "paranoid",
"include_appendix": true
}
```
**执行流程**:
1. DISCOVER: 扫描 `docs/3.dev-guides/**` 所有文档
2. AUDIT: 批量审计,生成统计报告(总问题数 / 文件数)
3. FREEZE_CHECK: 检查是否有文档违反 Freeze 规则
4. SUMMARY: 生成"健康度报告"(PASS / WARN / FAIL)
---
#### Mode 4: sot-alignment-check (SoT 对齐检查)
**输入示例**:
```json
{
"mode": "sot-alignment-check",
"changed_sot": "STATE_MACHINE.md",
"strict_level": "paranoid"
}
```
**执行流程**:
1. DISCOVER: 搜索所有引用 `STATE_MACHINE.md` 的文档
2. AUDIT: 检查每个文档是否引用了正确的版本号
3. SOT_ALIGN: 调用 `ai-ad-sot-doc-pipeline` 执行对齐
4. VERIFY: 验证对齐结果
5. SUMMARY: 输出受影响文档列表 + 对齐状态
---
#### Mode 5: appendix-sync (Appendix 一致性检查)
**输入示例**:
```json
{
"mode": "appendix-sync",
"changed_files": [
"docs/sot/STATE_MACHINE.md",
"docs/sot/DATA_SCHEMA.md"
],
"include_appendix": true
}
```
**执行流程**:
1. DISCOVER: 读取 GLOSSARY / DECISIONS / CHECKLIST 内容
2. AUDIT: 检查 Appendix 是否引用了过时的 SoT 内容
3. FIX: 调用 `ai-ad-doc-fixer` 更新 Appendix
4. VERIFY: 验证更新后的一致性
5. SUMMARY: 输出更新列表
---
#### Mode 6: impact-analysis (影响分析)
**输入示例**:
```json
{
"mode": "impact-analysis",
"changed_section": "DATA_SCHEMA.md#3.3.1",
"output_format": "checklist"
}
```
**执行流程**:
1. DISCOVER: 搜索所有引用 `DATA_SCHEMA.md §3.3.1` 的文档
2. AUDIT: 分析每个文档的引用方式(直接引用 / 间接引用)
3. SUMMARY: 生成影响范围清单(需要修改的文档列表)
---
## 🚨 FORBIDDEN_ACTIONS
### 严格禁止的行为
#### 1. 直接修改 SoT 文档
```xml
<forbidden>
<action>直接编辑 docs/sot/ 下的任何文件</action>
<reason>SoT 文档是最高真相源,修改必须通过 RFC 流程</reason>
<correct_action>生成修改建议,提交给 DBA/架构师审核</correct_action>
</forbidden>
```
**示例**:
```markdown
❌ 错误:检测到 STATE_MACHINE.md 缺少某个状态,直接添加
✅ 正确:输出报告:"建议在 STATE_MACHINE.md §8 添加状态 XYZ,需 RFC 审批"
```
---
#### 2. 未经审计直接重写文档
```xml
<forbidden>
<action>在未调用 ai-ad-doc-system-auditor 的情况下直接重写大量文档</action>
<reason>可能引入新的不一致性,破坏现有正确内容</reason>
<correct_action>必须先 AUDIT → 生成问题清单 → 有针对性地修复</correct_action>
</forbidden>
```
**示例**:
```markdown
❌ 错误:发现 API_DEVELOPMENT_FLOW.md 过时,直接调用 fixer 全文重写
✅ 正确:先调用 auditor 生成 P0/P1/P2 报告 → 根据报告针对性修复
```
---
#### 3. 发明新的字段/状态/错误码
```xml
<forbidden>
<action>在没有 SoT 依据的情况下"发明"新的字段/状态/错误码并写入文档</action>
<reason>违反 AP-AI-002 反模式规则,破坏 SoT 唯一性</reason>
<correct_action>检查 SoT 是否已定义 → 如不存在,提出 RFC</correct_action>
</forbidden>
```
**示例**:
```markdown
❌ 错误:发现 daily_reports 需要新字段 `quality_score`,直接写入 dev-guide
✅ 正确:检查 DATA_SCHEMA.md → 如不存在,输出"建议添加新字段,需 DBA 审核"
```
---
#### 4. 绕过 SoT Pipeline
```xml
<forbidden>
<action>隐式绕过 ai-ad-sot-doc-pipeline 对 SoT 进行"侧写式篡改"</action>
<reason>破坏 Freeze 保护机制,导致版本混乱</reason>
<correct_action>必须通过 ai-ad-sot-doc-pipeline 进行 SoT 相关操作</correct_action>
</forbidden>
```
**示例**:
```markdown
❌ 错误:发现 STATE_MACHINE.md 版本号过时,直接更新下游引用
✅ 正确:调用 ai-ad-sot-doc-pipeline → 执行统一的版本对齐流程
```
---
#### 5. 跨层级修改
```xml
<forbidden>
<action>修改非目标层级的文档(如巡检 dev-guides 时顺便修改 overview)</action>
<reason>超出授权范围,可能引入意外变更</reason>
<correct_action>仅修改输入参数指定范围内的文档</correct_action>
</forbidden>
```
---
#### 6. 忽略 Freeze 规则
```xml
<forbidden>
<action>在 SoT Freeze v2.6 保护下直接修改 STATE_MACHINE.md / DATA_SCHEMA.md 等</action>
<reason>违反 Freeze 规则,破坏版本稳定性</reason>
<correct_action>输出"此文档处于 Freeze 状态,需架构委员会审批"</correct_action>
</forbidden>
```
---
## 🔄 WORKFLOW_OVERVIEW
### 高层流程架构
```
┌─────────────────────────────────────────────────────────────────┐
│ AI-Ad Spec Governor v1.0 │
│ (Orchestration Layer) │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ Phase 1: DISCOVER (文档发现与分类) │
│ - 读取目标文档/扫描目录 │
│ - 识别文档类型(SoT / dev-guide / etc)│
│ - 提取元信息(版本/状态/依赖) │
└──────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ Phase 2: AUDIT (规范审计) │
│ ┌────────────────────────────────────┐ │
│ │ 调用: ai-ad-doc-system-auditor │ │
│ │ 输出: P0/P1/P2 问题报告 │ │
│ └────────────────────────────────────┘ │
└──────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ Phase 3: FIX (自动修复) │
│ ┌────────────────────────────────────┐ │
│ │ 调用: ai-ad-doc-fixer │ │
│ │ 条件: allow_auto_fix=true │ │
│ │ + 非 SoT 文档 │ │
│ └────────────────────────────────────┘ │
│ ┌────────────────────────────────────┐ │
│ │ SoT 场景: │ │
│ │ 调用: ai-ad-sot-doc-pipeline │ │
│ └────────────────────────────────────┘ │
└──────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ Phase 4: VERIFY (验证修复效果) │
│ ┌────────────────────────────────────┐ │
│ │ 再次调用: auditor │ │
│ │ 对比前后差异 │ │
│ └────────────────────────────────────┘ │
└──────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ Phase 5: FREEZE_CHECK (Freeze 合规检查) │
│ - 检查是否违反 SoT Freeze v2.6 │
│ - 检查是否违反 ASDD Freeze v1.0 │
│ - 输出 Freeze 冲突报告 │
└──────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ Phase 6: SUMMARY (总结与判定) │
│ - 生成治理报告 │
│ - 上线判定: PASS / BLOCK / WARN │
│ - 输出修复建议(如有) │
└──────────────────────────────────────────┘
```
---
### 子 Skill 调度矩阵
| Phase | 主要调用的子 Skill | 调用条件 |
|-------|-------------------|---------|
| **DISCOVER** | - | 内置逻辑(Glob/Grep/Read) |
| **AUDIT** | `ai-ad-doc-system-auditor` | 所有文档 |
| **FIX** | `ai-ad-doc-fixer` | 非 SoT 文档 + `allow_auto_fix=true` |
| **FIX** (SoT) | `ai-ad-sot-doc-pipeline` | SoT 文档或 SoT 对齐场景 |
| **VERIFY** | `ai-ad-doc-system-auditor` | 修复后的文档 |
| **COMPLEX_FLOW** | `ai-ad-doc-orchestrator` | 多文档复杂依赖场景 |
| **FREEZE_CHECK** | - | 内置逻辑(检查 SoT 版本号) |
| **SUMMARY** | - | 内置逻辑(汇总报告) |
---
## 📋 PHASE DEFINITIONS
---
### Phase 1: DISCOVER (文档发现与分类)
```xml
<phase id="DISCOVER">
<goal>
发现目标文档,提取元信息,识别文档类型和层级,确定治理策略
</goal>
<inputs>
<input name="mode" required="true">运行模式</input>
<input name="target/targets/scope" required="conditional">目标文档路径</input>
</inputs>
<outputs>
<output name="discovered_docs">文档清单(路径、类型、元信息)</output>
<output name="doc_classification">文档分类(SoT / dev-guide / appendix)</output>
<output name="dependency_map">文档依赖关系图</output>
</outputs>
<steps>
<step order="1">
<description>根据 mode 参数确定搜索策略</description>
<logic>
- mode=single-doc: 直接读取 target 文件
- mode=doc-group: 遍历 targets 列表
- mode=full-scan: 扫描 scope 目录下所有 .md 文件
- mode=sot-alignment-check: 搜索所有引用 changed_sot 的文档
- mode=impact-analysis: 搜索所有引用 changed_section 的文档
</logic>
</step>
<step order="2">
<description>提取文档元信息</description>
<logic>
使用 Read 工具读取文档前 50 行,提取:
- 文档版本 (> **文档版本**: vX.Y)
- 文档状态 (> **文档状态**: Active / Draft / Deprecated)
- 文档类型 (> **文档类型**: SoT / 开发指南 / 附录)
- 维护团队
- 最后审查日期
</logic>
</step>
<step order="3">
<description>文档分类与层级识别</description>
<logic>
根据文件路径确定层级(ASDD 6-Layer Architecture):
- docs/1.overview/ → Tier 1 (Overview)
- docs/sot/ → Tier 2 (SoT) [最高优先级]
- docs/3.dev-guides/ → Tier 3 (Dev Guides)
- docs/4.architecture/ → Tier 4 (Architecture)
- docs/5.infrastructure/ → Tier 5 (Infrastructure)
- docs/6.agent-layer/ → Tier 6 (Agent Layer)
特殊标记:
- 如果文件名包含 "_SOT.md",标记为 SoT 文档
- 如果元信息标注 Freeze,标记为 Freeze 保护
</logic>
</step>
<step order="4">
<description>构建依赖关系图</description>
<logic>
使用 Grep 工具搜索文档内的引用:
- 搜索模式: "引用"、"**引用**:"、"参考"
- 提取被引用的文档名和版本号
- 构建有向图: 当前文档 → 依赖的 SoT 文档
</logic>
</step>
<step order="5">
<description>输出发现报告</description>
<output_format>
{
"total_docs": 5,
"doc_list": [
{
"path": "docs/3.dev-guides/API_DEVELOPMENT_FLOW.md",
"tier": "dev-guides",
"version": "v7.0",
"status": "Draft",
"is_sot": false,
"is_frozen": false,
"dependencies": [
"DATA_SCHEMA.md v5.6",
"STATE_MACHINE.md v2.8"
]
}
],
"dependency_graph": "..."
}
</output_format>
</step>
</steps>
<error_handling>
<error code="DISCOVER_001">目标文档不存在</error>
<error code="DISCOVER_002">无法提取元信息(文档缺少必填字段)</error>
<error code="DISCOVER_003">循环依赖检测(A → B → A)</error>
</error_handling>
</phase>
```
---
### Phase 2: AUDIT (规范审计)
```xml
<phase id="AUDIT">
<goal>
调用 ai-ad-doc-system-auditor 对目标文档进行全面审计,生成 P0/P1/P2 问题报告
</goal>
<inputs>
<input name="discovered_docs" source="DISCOVER">文档清单</input>
<input name="strict_level" source="user_input">审计严格程度</input>
</inputs>
<outputs>
<output name="audit_reports">每个文档的审计报告(P0/P1/P2 问题清单)</output>
<output name="severity_summary">问题严重程度统计</output>
<output name="priority_actions">优先修复建议</output>
</outputs>
<steps>
<step order="1">
<description>准备审计参数</description>
<logic>
根据 strict_level 确定审计范围:
- paranoid: 启用所有检查项(包括 P2 细节问题)
- normal: 重点检查 P0/P1 问题
- relaxed: 仅检查 P0 问题
</logic>
</step>
<step order="2">
<description>批量调用 ai-ad-doc-system-auditor</description>
<logic>
对每个文档执行:
1. 读取文档完整内容
2. 调用 auditor 技能(通过 Skill 工具或直接执行 auditor 逻辑)
3. 生成审计报告(P0/P1/P2 问题清单)
4. 存储报告到内存
并行处理优化:
- 如果文档数 > 5,显示进度条
- 如果某文档审计失败,继续处理其他文档
</logic>
</step>
<step order="3">
<description>问题分类与优先级排序</description>
<logic>
按严重程度分类:
- P0 (Blocker): 必须立即修复(如 SoT 冲突、错误的状态定义)
- P1 (High): 影响可用性(如缺少版本号、引用错误)
- P2 (Medium): 优化改进(如格式问题、表达不清)
生成优先级清单:
1. 先修复 P0 问题
2. 按文档重要性(SoT > dev-guides > appendix)排序
</logic>
</step>
<step order="4">
<description>生成审计摘要</description>
<output_format>
## 审计报告摘要
**总文档数**: 5
**总问题数**: 23 (P0: 3, P1: 12, P2: 8)
### P0 问题 (Blocker)
1. [API_DEVELOPMENT_FLOW.md] 引用的 STATE_MACHINE.md 版本错误 (v2.3 → 应为 v2.6)
2. [FRONTEND_SPEC.md] 使用了未定义的错误码 CUSTOM_001
3. [UI_DESIGN_SYSTEM.md] 重复定义了状态枚举(违反 SoT 唯一性)
### P1 问题 (High)
...
### 修复建议
- 优先修复 P0 问题(3 项)
- 调用 ai-ad-doc-fixer 批量修复格式问题
- 调用 ai-ad-sot-doc-pipeline 对齐 SoT 版本引用
</output_format>
</step>
</steps>
<error_handling>
<error code="AUDIT_001">ai-ad-doc-system-auditor 调用失败</error>
<error code="AUDIT_002">文档内容无法解析(格式错误)</error>
</error_handling>
<chain_of_thought>
我是 ai-ad-spec-governor,正在执行 AUDIT Phase:
1. 收到 DISCOVER Phase 输出的 5 个文档清单
2. 设置 strict_level=normal(重点检查 P0/P1)
3. 开始批量审计...
- [1/5] API_DEVELOPMENT_FLOW.md: 发现 3 个 P0, 5 个 P1, 2 个 P2
- [2/5] FRONTEND_SPEC.md: 发现 0 个 P0, 3 个 P1, 1 个 P2
...
4. 汇总问题:P0 共 3 个,P1 共 12 个,P2 共 8 个
5. 生成优先级清单:优先修复 P0 问题(SoT 冲突最严重)
6. 输出审计报告,准备进入 FIX Phase
</chain_of_thought>
</phase>
```
---
### Phase 3: FIX (自动修复)
```xml
<phase id="FIX">
<goal>
根据审计报告,调用 ai-ad-doc-fixer 或 ai-ad-sot-doc-pipeline 自动修复问题
</goal>
<inputs>
<input name="audit_reports" source="AUDIT">审计报告</input>
<input name="allow_auto_fix" source="user_input">是否允许自动修复</input>
<input name="dry_run" source="user_input">是否仅模拟(不实际修改)</input>
</inputs>
<outputs>
<output name="fix_actions">修复操作清单(已执行的修改)</output>
<output name="fixed_docs">已修复的文档列表</output>
<output name="blocked_issues">无法自动修复的问题(需人工处理)</output>
</outputs>
<steps>
<step order="1">
<description>检查修复前提条件</description>
<logic>
if (allow_auto_fix === false) {
输出: "跳过自动修复,仅生成修复建议"
return;
}
if (dry_run === true) {
输出: "模拟模式:不实际修改文件,仅输出修复预览"
}
</logic>
</step>
<step order="2">
<description>分类问题并确定修复策略</description>
<logic>
对 P0/P1 问题进行分类:
1. **可自动修复** (调用 ai-ad-doc-fixer):
- 格式问题(Markdown 语法错误)
- 元信息缺失(补充版本号、状态)
- 表格/列表格式不规范
- 术语不一致(对比 GLOSSARY.md 自动替换)
2. **需 SoT Pipeline** (调用 ai-ad-sot-doc-pipeline):
- SoT 版本引用错误
- SoT 对齐问题
- Freeze 冲突
3. **无法自动修复** (需人工处理):
- 业务逻辑错误(如流程描述不清)
- 重复定义状态/错误码(需删除或合并)
- 缺少整章节内容
</logic>
</step>
<step order="3">
<description>执行自动修复(非 SoT 文档)</description>
<logic>
对每个可自动修复的问题:
1. 读取目标文档内容
2. 调用 ai-ad-doc-fixer,传入:
- target_file: 文档路径
- issues: 该文档的 P0/P1 问题清单
- fix_mode: "targeted" (针对性修复,不全文重写)
3. 记录修复操作:
- 修复前内容(diff 对比)
- 修复后内容
- 修复的问题编号
4. 如果 dry_run=false,写入文件
</logic>
</step>
<step order="4">
<description>执行 SoT 对齐(SoT 相关问题)</description>
<logic>
对涉及 SoT 的问题:
1. 调用 ai-ad-sot-doc-pipeline,传入:
- mode: "alignment-fix"
- changed_sot: 涉及的 SoT 文档名
- target_docs: 需要对齐的下游文档列表
2. Pipeline 会自动:
- 更新 SoT 版本引用
- 检查 Freeze 冲突
- 生成对齐报告
</logic>
</step>
<step order="5">
<description>输出修复报告</description>
<output_format>
## 修复报告
**修复统计**:
- 已修复问题: 18 / 23
- 已修复文档: 4 / 5
- 无法自动修复: 5 (需人工处理)
### 已执行的修复操作
#### [API_DEVELOPMENT_FLOW.md]
1. ✅ 修复 P0-001: 更新 STATE_MACHINE.md 引用版本 (v2.3 → v2.6)
2. ✅ 修复 P1-003: 补充元信息缺失的"最后审查"字段
3. ✅ 修复 P1-007: 修正表格格式(缺少闭合 `|`)
#### [FRONTEND_SPEC.md]
1. ✅ 修复 P0-002: 删除自定义错误码 CUSTOM_001,引用 ERROR_CODES_SOT.md
2. ✅ 修复 P1-009: 术语统一("用户角色" → "role")
### 无法自动修复的问题(需人工处理)
1. ❌ [UI_DESIGN_SYSTEM.md] P0-003: 重复定义状态枚举
- 原因: 需要判断保留哪个定义,需人工决策
- 建议: 删除本地定义,引用 STATE_MACHINE.md
2. ❌ [API_DEVELOPMENT_FLOW.md] P1-011: 缺少"错误处理"章节
- 原因: 需要补充完整内容,超出自动修复范围
- 建议: 参考 API_SOT.md §4 补充错误处理章节
</output_format>
</step>
</steps>
<error_handling>
<error code="FIX_001">ai-ad-doc-fixer 调用失败</error>
<error code="FIX_002">文件写入失败(权限不足)</error>
<error code="FIX_003">SoT 文档修复被拒绝(Freeze 保护)</error>
</error_handling>
<forbidden_actions_check>
在执行任何修复前,检查:
1. 目标文档是否在 docs/sot/ 下?
- 是 → 拒绝修复,输出:"此文档为 SoT,禁止直接修改"
- 否 → 继续
2. 修复操作是否会新增未定义的字段/状态/错误码?
- 是 → 拒绝修复,输出:"违反 AP-AI-002 反模式"
- 否 → 继续
3. 修复操作是否涉及 Freeze 文档?
- 是 → 输出警告:"此文档处于 Freeze 状态,需架构审批"
- 否 → 继续
</forbidden_actions_check>
</phase>
```
---
### Phase 4: VERIFY (验证修复效果)
```xml
<phase id="VERIFY">
<goal>
再次调用 ai-ad-doc-system-auditor 验证修复效果,确认问题已解决
</goal>
<inputs>
<input name="fixed_docs" source="FIX">已修复的文档列表</input>
<input name="original_audit_reports" source="AUDIT">修复前的审计报告</input>
</inputs>
<outputs>
<output name="verification_reports">修复后的审计报告</output>
<output name="resolved_issues">已解决的问题清单</output>
<output name="remaining_issues">未解决的问题清单</output>
<output name="regression_issues">新引入的问题(回归)</output>
</outputs>
<steps>
<step order="1">
<description>再次审计已修复的文档</description>
<logic>
对每个已修复的文档:
1. 调用 ai-ad-doc-system-auditor
2. 生成修复后的审计报告
3. 对比修复前后的问题清单
</logic>
</step>
<step order="2">
<description>对比修复前后差异</description>
<logic>
对每个文档生成 diff 报告:
resolved_issues = 修复前问题 - 修复后问题
remaining_issues = 修复前问题 ∩ 修复后问题
regression_issues = 修复后问题 - 修复前问题
计算修复率:
fix_rate = resolved_issues.length / original_issues.length * 100%
</logic>
</step>
<step order="3">
<description>生成验证报告</description>
<output_format>
## 验证报告
**修复效果统计**:
- 已解决: 18 / 23 (78%)
- 未解决: 5 / 23 (22%)
- 回归问题: 0 (良好)
### 已解决的问题
#### [API_DEVELOPMENT_FLOW.md]
- ✅ P0-001: SoT 版本引用错误 → 已修复
- ✅ P1-003: 元信息缺失 → 已修复
- ✅ P1-007: 表格格式错误 → 已修复
### 未解决的问题(需人工处理)
#### [UI_DESIGN_SYSTEM.md]
- ❌ P0-003: 重复定义状态枚举 → 需人工删除
### 回归问题(新引入)
- 无回归问题(修复质量良好)
</output_format>
</step>
<step order="4">
<description>判定修复是否合格</description>
<logic>
判定标准:
- PASS: P0 问题全部解决 + 修复率 >= 80%
- WARN: P0 问题全部解决 + 修复率 60-80%
- BLOCK: 存在未解决的 P0 问题
输出判定结果,传递给 SUMMARY Phase
</logic>
</step>
</steps>
<error_handling>
<error code="VERIFY_001">修复后审计失败</error>
<error code="VERIFY_002">发现严重回归问题(新增 P0)</error>
</error_handling>
</phase>
```
---
### Phase 5: FREEZE_CHECK (Freeze 合规检查)
```xml
<phase id="FREEZE_CHECK">
<goal>
检查文档修改是否违反 SoT Freeze v2.6 / ASDD Freeze v1.0 规则
</goal>
<inputs>
<input name="fixed_docs" source="FIX">已修复的文档列表</input>
<input name="discovered_docs" source="DISCOVER">文档清单(含 Freeze 标记)</input>
</inputs>
<outputs>
<output name="freeze_violations">Freeze 冲突清单</output>
<output name="freeze_compliance">Freeze 合规状态(PASS / WARN / BLOCK)</output>
</outputs>
<steps>
<step order="1">
<description>识别 Freeze 保护的文档</description>
<logic>
Freeze 保护文档列表(SoT Freeze v2.6):
- MASTER.md v4.6 (ASDD Freeze v1.0)
- STATE_MACHINE.md v2.8
- DATA_SCHEMA.md v5.6
- API_SOT.md v9.0
- ERROR_CODES_SOT.md v2.1
- BUSINESS_RULES.md v3.1
- AUTH_SPEC.md v2.0
- DATA_SCHEMA.md v5.11 §3.4.4
- DAILY_REPORT_SOT.md v4.1
- RECONCILIATION_SOT.md v2.1
- TRANSFER_SOT.md v1.0
</logic>
</step>
<step order="2">
<description>检查是否有 Freeze 文档被修改</description>
<logic>
对每个已修复的文档:
1. 检查是否在 Freeze 保护列表中
2. 如果是,标记为 Freeze 冲突
3. 生成冲突报告:
- 文档路径
- Freeze 版本号
- 修改操作描述
- 需要的审批流程(RFC / 架构委员会)
</logic>
</step>
<step order="3">
<description>检查下游文档的 SoT 引用</description>
<logic>
对非 Freeze 文档(dev-guides / appendix):
1. 提取所有 SoT 引用(如 "引用: STATE_MACHINE.md v2.8")
2. 检查引用的版本号是否正确
3. 如果引用了错误版本,标记为 Freeze 冲突
</logic>
</step>
<step order="4">
<description>生成 Freeze 合规报告</description>
<output_format>
## Freeze 合规检查报告
**合规状态**: WARN (存在 1 个冲突)
### Freeze 冲突
1. ❌ [STATE_MACHINE.md] 被修改
- Freeze 版本: v2.6 (SoT Freeze v2.6)
- 修改操作: 添加新状态 `trend_flagged_resolved`
- **处理建议**: 此文档处于 Freeze 保护,需提交 RFC 并经架构委员会审批
- **审批流程**: RFC → 2 名架构师审批 → 版本升级 (v2.6 → v2.7)
### Freeze 合规文档
- ✅ [API_DEVELOPMENT_FLOW.md] 引用 STATE_MACHINE.md v2.8 (正确)
- ✅ [FRONTEND_SPEC.md] 引用 DATA_SCHEMA.md v5.6 (正确)
</output_format>
</step>
</steps>
<error_handling>
<error code="FREEZE_001">检测到 Freeze 文档被直接修改(严重违规)</error>
<error code="FREEZE_002">下游文档引用了不存在的 SoT 版本</error>
</error_handling>
</phase>
```
---
### Phase 6: SUMMARY (总结与判定)
```xml
<phase id="SUMMARY">
<goal>
生成最终治理报告,输出上线判定(PASS / BLOCK / WARN),提供修复建议
</goal>
<inputs>
<input name="audit_reports" source="AUDIT">审计报告</input>
<input name="fix_actions" source="FIX">修复操作清单</input>
<input name="verification_reports" source="VERIFY">验证报告</input>
<input name="freeze_compliance" source="FREEZE_CHECK">Freeze 合规状态</input>
</inputs>
<outputs>
<output name="governance_report">完整的治理报告(Markdown 格式)</output>
<output name="deployment_verdict">上线判定(PASS / BLOCK / WARN)</output>
<output name="action_items">后续行动清单</output>
</outputs>
<steps>
<step order="1">
<description>汇总所有 Phase 的输出</description>
<logic>
整合以下数据:
- DISCOVER: 文档清单、依赖关系
- AUDIT: 问题统计(P0/P1/P2)
- FIX: 修复统计、无法自动修复的问题
- VERIFY: 修复效果、回归问题
- FREEZE_CHECK: Freeze 冲突
</logic>
</step>
<step order="2">
<description>计算综合评分</description>
<logic>
评分维度:
1. 问题解决率: resolved / total * 100%
2. P0 问题: 0 个 P0 → 100 分,1 个 P0 → 0 分
3. Freeze 合规: 无冲突 → 100 分,有冲突 → 0 分
4. 回归问题: 0 个回归 → 100 分,1+ 个回归 → 50 分
综合得分 = (问题解决率 * 0.3) + (P0 分数 * 0.4)
+ (Freeze 分数 * 0.2) + (回归分数 * 0.1)
</logic>
</step>
<step order="3">
<description>生成上线判定</description>
<logic>
判定规则:
BLOCK (禁止上线):
- 存在未解决的 P0 问题
- OR 存在 Freeze 冲突且未获得审批
- OR 存在严重回归问题(新增 P0)
WARN (警告,需审查):
- P0 全部解决 BUT 修复率 < 80%
- OR 存在 5+ 个未解决的 P1 问题
- OR Freeze 冲突已提交 RFC 但未审批
PASS (可上线):
- P0 全部解决
- 修复率 >= 80%
- 无 Freeze 冲突
- 无严重回归
</logic>
</step>
<step order="4">
<description>生成后续行动清单</description>
<logic>
根据判定结果生成 Action Items:
如果 BLOCK:
- [ ] 修复所有 P0 问题(必须)
- [ ] 解决 Freeze 冲突(提交 RFC 或撤销修改)
- [ ] 修复回归问题
如果 WARN:
- [ ] 修复剩余 P1 问题(建议)
- [ ] 提高修复率至 80% 以上
- [ ] 等待 RFC 审批结果
如果 PASS:
- [ ] 更新 GLOSSARY / DECISIONS / CHECKLIST(如有新术语/决策)
- [ ] 通知相关团队文档已更新
- [ ] 记录本次治理操作到 DECISIONS.md
</logic>
</step>
<step order="5">
<description>输出最终治理报告</description>
<output_format>
# Spec Governor 治理报告
**生成时间**: 2025-11-26 14:30:00 UTC
**运行模式**: single-doc
**目标文档**: docs/3.dev-guides/API_DEVELOPMENT_FLOW.md
---
## 📊 治理统计
| 指标 | 数值 |
|------|------|
| 文档总数 | 1 |
| 问题总数 | 23 (P0: 3, P1: 12, P2: 8) |
| 已解决 | 18 / 23 (78%) |
| 未解决 | 5 / 23 (22%) |
| 回归问题 | 0 |
| Freeze 冲突 | 0 |
| **综合得分** | **85/100** |
---
## 🎯 上线判定
**判定结果**: ✅ **PASS** (可上线)
**理由**:
- ✅ P0 问题全部解决(3/3)
- ✅ 修复率达标(78% > 80% 阈值略低,但 P0 清零)
- ✅ 无 Freeze 冲突
- ✅ 无回归问题
---
## 📋 详细报告
### Phase 1: DISCOVER
- 发现文档: 1 个
- 文档层级: dev-guides (Tier 3)
- 依赖 SoT: STATE_MACHINE.md v2.8, DATA_SCHEMA.md v5.6
### Phase 2: AUDIT
- P0 问题: 3 个
1. SoT 版本引用错误
2. 自定义错误码
3. 重复定义状态枚举
- P1 问题: 12 个(元信息缺失、格式问题等)
- P2 问题: 8 个(优化建议)
### Phase 3: FIX
- 已修复: 18 / 23
- 调用 ai-ad-doc-fixer: 3 次
- 调用 ai-ad-sot-doc-pipeline: 1 次
- 无法自动修复: 5 个(需人工处理)
### Phase 4: VERIFY
- 修复效果: 良好(78% 解决率)
- 回归问题: 0 个
### Phase 5: FREEZE_CHECK
- Freeze 合规: ✅ PASS
- 无 Freeze 冲突
---
## ✅ 后续行动清单
### 必须完成(上线前)
- 无(所有阻塞项已解决)
### 建议完成(上线后)
- [ ] 修复剩余 5 个 P1 问题(提高修复率至 90%)
- [ ] 补充"错误处理"章节(参考 API_SOT.md §4)
- [ ] 更新 GLOSSARY.md(如有新术语)
---
## 📝 治理记录
- **执行人**: Claude / SuperClaude (ai-ad-spec-governor v1.0)
- **治理耗时**: 约 5 分钟
- **修改文件**: 1 个(API_DEVELOPMENT_FLOW.md)
- **是否记录 ADR**: 建议记录(重大文档修复)
</output_format>
</step>
</steps>
<error_handling>
<error code="SUMMARY_001">无法生成综合评分(数据不完整)</error>
<error code="SUMMARY_002">判定逻辑异常(多个冲突条件)</error>
</error_handling>
</phase>
```
---
## 📤 OUTPUT_FORMAT
### 标准输出格式
```markdown
# Spec Governor 治理报告
**生成时间**: {timestamp}
**运行模式**: {mode}
**目标文档**: {target}
**综合得分**: {score}/100
---
## 🎯 上线判定
**判定结果**: {PASS | BLOCK | WARN}
**理由**: ...
---
## 📊 治理统计
| 指标 | 数值 |
|------|------|
| 文档总数 | {total_docs} |
| 问题总数 | {total_issues} |
| 已解决 | {resolved} / {total} ({rate}%) |
| 未解决 | {remaining} / {total} |
| 回归问题 | {regressions} |
| Freeze 冲突 | {freeze_conflicts} |
---
## 📋 详细报告
{各 Phase 输出汇总}
---
## ✅ 后续行动清单
### 必须完成(上线前)
- [ ] ...
### 建议完成(上线后)
- [ ] ...
```
---
## 🔗 CHAIN_OF_THOUGHT
### 推理模板
```markdown
我是 ai-ad-spec-governor v1.0,正在执行规范治理任务:
**任务分析**:
- 模式: {mode}
- 目标: {target}
- 严格程度: {strict_level}
- 允许自动修复: {allow_auto_fix}
**执行流程**:
1. [DISCOVER] 发现 {N} 个文档,识别为 {tier} 层级
2. [AUDIT] 调用 ai-ad-doc-system-auditor,发现 {P0/P1/P2} 问题
3. [FIX] 修复 {N} 个问题,无法自动修复 {M} 个
4. [VERIFY] 验证修复效果,修复率 {rate}%
5. [FREEZE_CHECK] 检查 Freeze 合规,发现 {N} 个冲突
6. [SUMMARY] 综合判定: {PASS | BLOCK | WARN}
**关键决策**:
- 是否调用 ai-ad-doc-fixer: {是/否,原因}
- 是否调用 ai-ad-sot-doc-pipeline: {是/否,原因}
- 是否触发 Freeze 警告: {是/否,原因}
**输出**:
- 治理报告已生成
- 上线判定: {判定结果}
- 后续行动: {N} 项必须完成,{M} 项建议完成
```
---
## 🧪 EXAMPLE_USAGE
### 示例 1: 单文档上线前检查
**用户请求**:
```
请检查 API_DEVELOPMENT_FLOW.md 是否可以上线
```
**Spec Governor 响应**:
```markdown
收到治理请求,执行参数:
- mode: single-doc
- target: docs/3.dev-guides/API_DEVELOPMENT_FLOW.md
- strict_level: normal
- allow_auto_fix: true
开始执行...
[Phase 1: DISCOVER] ✅ 完成
- 发现文档: 1 个
- 文档层级: dev-guides (Tier 3)
- 依赖 SoT: STATE_MACHINE.md v2.8, DATA_SCHEMA.md v5.6
[Phase 2: AUDIT] ✅ 完成
- 调用 ai-ad-doc-system-auditor
- 发现问题: 23 个 (P0: 3, P1: 12, P2: 8)
[Phase 3: FIX] ✅ 完成
- 调用 ai-ad-doc-fixer (3 次)
- 调用 ai-ad-sot-doc-pipeline (1 次)
- 已修复: 18 / 23
[Phase 4: VERIFY] ✅ 完成
- 修复率: 78%
- 回归问题: 0
[Phase 5: FREEZE_CHECK] ✅ 完成
- Freeze 合规: PASS
[Phase 6: SUMMARY] ✅ 完成
- 综合得分: 85/100
- **上线判定: ✅ PASS (可上线)**
{完整治理报告}
```
---
### 示例 2: 批量巡检
**用户请求**:
```
对 dev-guides 目录做一次全面巡检
```
**Spec Governor 响应**:
```markdown
收到治理请求,执行参数:
- mode: full-scan
- scope: dev-guides
- strict_level: normal
- allow_auto_fix: false (仅巡检,不修复)
开始执行...
[Phase 1: DISCOVER] ✅ 完成
- 扫描目录: docs/3.dev-guides/
- 发现文档: 12 个
[Phase 2: AUDIT] ✅ 完成
- 批量审计: 12 个文档
- 总问题数: 87 (P0: 8, P1: 35, P2: 44)
[Phase 5: FREEZE_CHECK] ✅ 完成
- Freeze 合规: WARN (3 个文档引用过时 SoT 版本)
[Phase 6: SUMMARY] ✅ 完成
- **巡检判定: ⚠️ WARN (存在 8 个 P0 问题)**
## 巡检摘要
### 健康度评分
- 总分: 68/100 (需改进)
- P0 问题: 8 个(需立即修复)
- P1 问题: 35 个(建议修复)
### 最严重的问题
1. [API_DEVELOPMENT_FLOW.md] P0: SoT 版本引用错误
2. [FRONTEND_SPEC.md] P0: 自定义错误码
3. [UI_DESIGN_SYSTEM.md] P0: 重复定义状态枚举
...
### 后续建议
- 建议批量修复(设置 allow_auto_fix=true 重新运行)
- 建议更新 3 个文档的 SoT 引用
```
---
## 📚 RELATED_SKILLS
### 子 Skill 依赖
| 子 Skill | 版本 | 调用场景 |
|---------|------|---------|
| `ai-ad-doc-system-auditor` | v1.4 | AUDIT Phase / VERIFY Phase |
| `ai-ad-doc-fixer` | latest | FIX Phase (非 SoT 文档) |
| `ai-ad-sot-doc-pipeline` | latest | FIX Phase (SoT 对齐场景) |
| `ai-ad-doc-orchestrator` | v5.2 | COMPLEX_FLOW (多文档复杂依赖) |
---
## 🔄 VERSION_HISTORY
### v1.1 (2025-11-27)
- ✅ 添加 YAML frontmatter 符合 Skill Freeze 标准
- ✅ 更新 Tier 定义至 ASDD 6-Layer Architecture
- ✅ 更新 SoT Freeze v1.0 → v2.6
- ✅ 更新 MASTER.md v4.6 → v3.5
- ✅ 扩展 Freeze 保护文档列表(新增 DAILY_REPORT_SOT/RECONCILIATION_SOT/TRANSFER_SOT)
- ✅ 对齐 baseline: MASTER.md v4.6, SoT Freeze v2.6
### v1.0 (2025-11-26)
- ✅ 初始版本发布
- ✅ 定义 6 个 Phase(DISCOVER / AUDIT / FIX / VERIFY / FREEZE_CHECK / SUMMARY)
- ✅ 支持 6 种运行模式(single-doc / doc-group / full-scan / sot-alignment-check / appendix-sync / impact-analysis)
- ✅ 集成 4 个子 Skill 调度逻辑
- ✅ 实现 Freeze 合规检查
- ✅ 实现上线判定逻辑(PASS / BLOCK / WARN)
---
## 📧 MAINTAINER
**Owner**: doc-architect / wade
**Team**: AI Architecture Team
**Contact**: GitHub Issue / 内部文档系统
---
</skill>