Files
Claude-Code-Workflow/.claude/skills/copyright-docs/phases/02-deep-analysis.md

9.4 KiB
Raw Blame History

Phase 2: Deep Code Analysis

6 个并行 Agent各自直接写入 MD 章节文件。

模板参考: ../templates/agent-base.md 规范参考: ../specs/cpcc-requirements.md

Agent 配置

Agent 输出文件 章节
architecture section-2-architecture.md 系统架构图
functions section-3-functions.md 功能模块设计
algorithms section-4-algorithms.md 核心算法与流程
data_structures section-5-data-structures.md 数据结构设计
interfaces section-6-interfaces.md 接口设计
exceptions section-7-exceptions.md 异常处理设计

CPCC 规范要点 (所有 Agent 共用)

[CPCC_SPEC]
1. 内容基于代码分析,无臆测或未来计划
2. 图表编号格式: 图N-M (如图2-1, 图3-1)
3. 每个子章节内容不少于100字
4. Mermaid 语法必须正确可渲染
5. 包含具体文件路径引用
6. 中文输出,技术术语可用英文

执行流程

// 1. 准备目录
Bash(`mkdir -p ${outputDir}/sections`);

// 2. 并行启动 6 个 Agent
const results = await Promise.all([
  launchAgent('architecture', metadata, outputDir),
  launchAgent('functions', metadata, outputDir),
  launchAgent('algorithms', metadata, outputDir),
  launchAgent('data_structures', metadata, outputDir),
  launchAgent('interfaces', metadata, outputDir),
  launchAgent('exceptions', metadata, outputDir)
]);

// 3. 收集返回信息
const summaries = results.map(r => JSON.parse(r));

// 4. 传递给 Phase 2.5
return { summaries, cross_notes: summaries.flatMap(s => s.cross_module_notes) };

Agent 提示词

Architecture

Task({
  subagent_type: "cli-explore-agent",
  prompt: `
[ROLE] 系统架构师,专注于分层设计和模块依赖。

[TASK]
分析 ${meta.scope_path},生成 Section 2: 系统架构图。
输出: ${outDir}/sections/section-2-architecture.md

[CPCC_SPEC]
- 内容基于代码分析,无臆测
- 图表编号: 图2-1, 图2-2...
- 每个子章节 ≥100字
- 包含文件路径引用

[TEMPLATE]
## 2. 系统架构图

本章节展示${meta.software_name}的系统架构设计。

\`\`\`mermaid
graph TD
    subgraph Layer1["层名"]
        Comp1[组件1]
    end
    Comp1 --> Comp2
\`\`\`

**图2-1 系统架构图**

### 2.1 分层说明
| 层级 | 组件 | 职责 |
|------|------|------|

### 2.2 模块依赖
| 模块 | 依赖 | 说明 |
|------|------|------|

[FOCUS]
1. 分层: 识别代码层次 (Controller/Service/Repository 或其他)
2. 模块: 核心模块及职责边界
3. 依赖: 模块间依赖方向
4. 数据流: 请求/数据的流动路径

[RETURN JSON]
{"status":"completed","output_file":"section-2-architecture.md","summary":"<50字摘要>","cross_module_notes":["跨模块发现"],"stats":{"diagrams":1,"subsections":2}}
`
})

Functions

Task({
  subagent_type: "cli-explore-agent",
  prompt: `
[ROLE] 功能分析师,专注于功能点识别和交互。

[TASK]
分析 ${meta.scope_path},生成 Section 3: 功能模块设计。
输出: ${outDir}/sections/section-3-functions.md

[CPCC_SPEC]
- 内容基于代码分析,无臆测
- 图表编号: 图3-1, 图3-2...
- 每个子章节 ≥100字
- 包含文件路径引用

[TEMPLATE]
## 3. 功能模块设计

本章节展示${meta.software_name}的功能模块结构。

\`\`\`mermaid
flowchart TD
    ROOT["${meta.software_name}"]
    subgraph Group1["模块组1"]
        F1["功能1"]
    end
    ROOT --> Group1
\`\`\`

**图3-1 功能模块结构图**

### 3.1 功能清单
| ID | 功能名称 | 模块 | 入口文件 | 说明 |
|----|----------|------|----------|------|

### 3.2 功能交互
| 调用方 | 被调用方 | 触发条件 |
|--------|----------|----------|

[FOCUS]
1. 功能点: 枚举所有用户可见功能
2. 模块分组: 按业务域分组
3. 入口: 每个功能的代码入口 \`src/path/file.ts\`
4. 交互: 功能间的调用关系

[RETURN JSON]
{"status":"completed","output_file":"section-3-functions.md","summary":"<50字>","cross_module_notes":[],"stats":{}}
`
})

Algorithms

Task({
  subagent_type: "cli-explore-agent",
  prompt: `
[ROLE] 算法工程师,专注于核心逻辑和复杂度分析。

[TASK]
分析 ${meta.scope_path},生成 Section 4: 核心算法与流程。
输出: ${outDir}/sections/section-4-algorithms.md

[CPCC_SPEC]
- 内容基于代码分析,无臆测
- 图表编号: 图4-1, 图4-2... (每个算法一个流程图)
- 每个算法说明 ≥100字
- 包含文件路径和行号引用

[TEMPLATE]
## 4. 核心算法与流程

本章节展示${meta.software_name}的核心算法设计。

### 4.1 {算法名称}

**说明**: {描述≥100字}
**位置**: \`src/path/file.ts:line\`

**输入**: param1 (type) - 说明
**输出**: result (type) - 说明

\`\`\`mermaid
flowchart TD
    Start([开始]) --> Input[/输入/]
    Input --> Check{判断}
    Check -->|是| P1[步骤1]
    Check -->|否| P2[步骤2]
    P1 --> End([结束])
    P2 --> End
\`\`\`

**图4-1 {算法名称}流程图**

### 4.N 复杂度分析
| 算法 | 时间 | 空间 | 文件 |
|------|------|------|------|

[FOCUS]
1. 核心算法: 业务逻辑的关键算法 (>10行或含分支循环)
2. 流程步骤: 分支/循环/条件逻辑
3. 复杂度: 时间/空间复杂度估算
4. 输入输出: 参数类型和返回值

[RETURN JSON]
{"status":"completed","output_file":"section-4-algorithms.md","summary":"<50字>","cross_module_notes":[],"stats":{}}
`
})

Data Structures

Task({
  subagent_type: "cli-explore-agent",
  prompt: `
[ROLE] 数据建模师,专注于实体关系和类型定义。

[TASK]
分析 ${meta.scope_path},生成 Section 5: 数据结构设计。
输出: ${outDir}/sections/section-5-data-structures.md

[CPCC_SPEC]
- 内容基于代码分析,无臆测
- 图表编号: 图5-1 (数据结构类图)
- 每个子章节 ≥100字
- 包含文件路径引用

[TEMPLATE]
## 5. 数据结构设计

本章节展示${meta.software_name}的核心数据结构。

\`\`\`mermaid
classDiagram
    class Entity1 {
        +type field1
        +method1()
    }
    Entity1 "1" --> "*" Entity2 : 关系
\`\`\`

**图5-1 数据结构类图**

### 5.1 实体说明
| 实体 | 类型 | 文件 | 说明 |
|------|------|------|------|

### 5.2 关系说明
| 源 | 目标 | 类型 | 基数 |
|----|------|------|------|

[FOCUS]
1. 实体: class/interface/type 定义
2. 属性: 字段类型和可见性 (+public/-private/#protected)
3. 关系: 继承(--|>)/组合(*--)/关联(-->)
4. 枚举: enum 类型及其值

[RETURN JSON]
{"status":"completed","output_file":"section-5-data-structures.md","summary":"<50字>","cross_module_notes":[],"stats":{}}
`
})

Interfaces

Task({
  subagent_type: "cli-explore-agent",
  prompt: `
[ROLE] API设计师专注于接口契约和协议。

[TASK]
分析 ${meta.scope_path},生成 Section 6: 接口设计。
输出: ${outDir}/sections/section-6-interfaces.md

[CPCC_SPEC]
- 内容基于代码分析,无臆测
- 图表编号: 图6-1, 图6-2... (每个核心接口一个时序图)
- 每个接口详情 ≥100字
- 包含文件路径引用

[TEMPLATE]
## 6. 接口设计

本章节展示${meta.software_name}的接口设计。

\`\`\`mermaid
sequenceDiagram
    participant C as Client
    participant A as API
    participant S as Service
    C->>A: POST /api/xxx
    A->>S: method()
    S-->>A: result
    A-->>C: 200 OK
\`\`\`

**图6-1 {接口名}时序图**

### 6.1 接口清单
| 接口 | 方法 | 路径 | 说明 |
|------|------|------|------|

### 6.2 接口详情

#### METHOD /path
**请求**:
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|

**响应**:
| 字段 | 类型 | 说明 |
|------|------|------|

[FOCUS]
1. API端点: 路径/方法/说明
2. 参数: 请求参数类型和校验规则
3. 响应: 响应格式、状态码、错误码
4. 时序: 典型调用流程 (选2-3个核心接口)

[RETURN JSON]
{"status":"completed","output_file":"section-6-interfaces.md","summary":"<50字>","cross_module_notes":[],"stats":{}}
`
})

Exceptions

Task({
  subagent_type: "cli-explore-agent",
  prompt: `
[ROLE] 可靠性工程师,专注于异常处理和恢复策略。

[TASK]
分析 ${meta.scope_path},生成 Section 7: 异常处理设计。
输出: ${outDir}/sections/section-7-exceptions.md

[CPCC_SPEC]
- 内容基于代码分析,无臆测
- 图表编号: 图7-1 (异常处理流程图)
- 每个子章节 ≥100字
- 包含文件路径引用

[TEMPLATE]
## 7. 异常处理设计

本章节展示${meta.software_name}的异常处理机制。

\`\`\`mermaid
flowchart TD
    Req[请求] --> Try{Try-Catch}
    Try -->|正常| Process[处理]
    Try -->|异常| ErrType{类型}
    ErrType -->|E1| H1[处理1]
    ErrType -->|E2| H2[处理2]
    H1 --> Log[日志]
    H2 --> Log
    Process --> Resp[响应]
\`\`\`

**图7-1 异常处理流程图**

### 7.1 异常类型
| 异常类 | 错误码 | HTTP状态 | 说明 |
|--------|--------|----------|------|

### 7.2 恢复策略
| 场景 | 策略 | 说明 |
|------|------|------|

[FOCUS]
1. 异常类型: 自定义异常类及继承关系
2. 错误码: 错误码定义和分类
3. 处理模式: try-catch/中间件/装饰器
4. 恢复策略: 重试/降级/熔断/告警

[RETURN JSON]
{"status":"completed","output_file":"section-7-exceptions.md","summary":"<50字>","cross_module_notes":[],"stats":{}}
`
})

Output

各 Agent 写入 sections/section-N-xxx.md,返回简要 JSON 供 Phase 2.5 汇总。