Claude Code Plugins

Community-maintained marketplace

Feedback

编译器技术文档编写专家,提供规范/设计/TDD/教育四类文档的标准化模板,支持EP分析和课程文档生成。

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name compiler-doc-writer
description 编译器技术文档编写专家,提供规范/设计/TDD/教育四类文档的标准化模板,支持EP分析和课程文档生成。
version v3.0
tags documentation, specification, design, tdd, educational, compiler
allowed-tools Read, Write, Edit, Task, Glob, Grep, mcp__serena__find_symbol, mcp__serena__search_for_pattern, mcp__serena__list_dir
requires-skills compiler-dev, ep-navigator

编译器技术文档编写专家

🎯 核心职责

四大文档类型 + EP智能分析 + 课程体系生成

┌─────────────────────────────────────────────────────────────┐
│                    compiler-doc-writer                       │
├─────────────┬─────────────┬─────────────┬─────────────────┤
│ 规范文档     │ 设计文档     │ TDD计划     │ 教育文档         │
│ (Specification)│ (Design)  │ (TDD Plan)  │ (Educational)   │
├─────────────┴─────────────┴─────────────┴─────────────────┤
│                    EP 智能分析引擎                          │
│              → 自动抽取代码结构、生成教学文档                │
├─────────────────────────────────────────────────────────────┤
│                    课程入口文档生成器                        │
│              → 21个EP关联、学习路径设计                      │
└─────────────────────────────────────────────────────────────┘

📦 四类文档模板

1. 规范文档 (Specification)

用途: 设计契约,定义高层约定 命名: {EP}_ABI_设计文档.md

结构:

# {标题} 规范
**版本**: vX.Y | **状态**: 草稿/评审中/已通过

## 1. 概述
### 1.1 设计目标
### 1.2 术语定义

## 2. 技术规范
### 2.1 核心概念
### 2.2 规范细节

## 3. 实现指南
### 3.1 使用示例

## 附录A: 版本历史

2. 设计文档 (Design)

用途: 实现指南,展示技术细节 命名: {EP}_{模块}_设计文档.md

结构:

# {EP} {模块} 设计文档
**版本**: vX.Y

## 1. 设计概述
### 1.1 设计目标
### 1.2 关键设计决策

## 2. 详细设计
### 2.1 核心组件设计
### 2.2 交互设计

## 3. 技术细节
### 3.1 算法实现

## 4. 测试验证
### 4.1 单元测试策略

3. TDD任务计划

用途: 任务驱动,追踪进度 命名: TDD_重构计划.md

结构:

# TDD重构计划: {主题}
**版本**: vX.Y

## 1. 概述
### 1.1 重构目标
### 1.2 成功标准

## 2. 任务追踪表
| 层级 | 任务ID | 描述 | 状态 | 优先级 |

## 3. 任务详情
### TASK-1.1: {任务名称}
**目标**: 明确目标
**验收标准**:
- [ ] 所有测试通过
**状态**: ✅/🔄/⏸️

4. 🆕 教育文档 (Educational) - v3.0 三层叙事结构

用途: 编译器构造教学材料,面向学习者 命名: {EP}_教学文档.md{主题}_课程指南.md 版本: v3.0 三层叙事框架

核心设计原则:

  1. 局部聚焦: 核心概念和实现原理紧密耦合,叙述顺序相近
  2. 全局视野: 揭示主题间内在逻辑联系,服从于编译过程构造大背景
  3. 渐进建构: 从架构全景→主题单元→综合实战,形成完整认知链路

三层叙事结构:

# {EP名称} - {教学主题}
**编译器构造阶段**: 词法/语法/AST/语义/中端/优化/后端
**难度等级**: 初级/中级/高级
**预计学时**: X小时
**版本**: v3.0

---
## 第一层:架构全景 (Layer 1: Architecture Panorama)

### 1.1 EP在编译流水线中的定位
**编译流程位置**:

[源代码] → [词法分析] → [语法分析] → [AST构建] → {本EP} → [后续阶段]


**输入输出契约**:
- **输入依赖**: EP{XX}的{输出产物}
- **输出产物**: {本EP的核心输出}
- **下游消费者**: EP{YY}将使用本EP的输出

### 1.2 分层架构设计
根据EP特性绘制4-6层架构图,明确每层职责和层间交互:

Layer N: 应用编排层 (Application) ↓ 调用 Layer N-1: 算法/执行层 (Algorithm/Execution) ↓ 操作 Layer N-2: 数据结构层 (Data Structure) ↓ 构建 Layer N-3: 抽象接口层 (Abstract Interface) ↓ 实现 Layer N-4: 框架层 (Framework/基座)


**层间依赖关系**:
- Layer K extends Layer K-1 (继承关系)
- Layer K uses Layer K-1 (使用关系)
- 明确哪些层是本EP新增,哪些来自前置EP

### 1.3 构建逻辑阶段分解
将EP的实现逻辑分解为4-6个渐进阶段,每个阶段对应第二层的一个主题单元:

阶段1: {基础框架/核心概念} ↓ 扩展 阶段2: {数据结构定义} ↓ 实现 阶段3: {算法/操作} ↓ 组合 阶段4: {应用/执行} ↓ 优化 阶段5: {高级特性}


### 1.4 学习路径导航
- **前置知识**: EP{XX}的{概念}
- **核心技能**: {本EP培养的能力}
- **后续衔接**: 学习本EP后可以进入EP{YY}

---
## 第二层:主题单元 (Layer 2: Topic Units)

每个主题单元遵循统一的"四要素"结构:

### Topic 1: {主题名称}

#### 📍 主题在EP中的位置

EP架构层级关系: ┌─────────────────────────────────┐ │ 应用编排层 (后续Topic) │ ├─────────────────────────────────┤ │ {本Topic所在层} │ ← 我们在这里 ├─────────────────────────────────┤ │ 前置Topic层 │ └─────────────────────────────────┘


**与前置EP的关系**: 继承/扩展/使用EP{XX}的{组件}
**与后续EP的关系**: 本Topic输出将被EP{YY}使用

#### 🔗 依赖关系图
**继承关系** (extends):
```java
{本类} extends {父类} // 来自EP{XX}

使用关系 (uses):

{本类} → 使用 → {其他类}

类依赖图:

{前置Topic类}
    ↓ 提供{接口/数据}
{本Topic类}
    ↓ 产生{输出}
{后续Topic类}

核心内容:概念与实现紧密耦合

【概念】{核心概念名称}

定义: {精确定义}

为什么需要: {在编译过程中的作用}

关键特性:

  • 特性1: {描述}
  • 特性2: {描述}

【实现】{实现原理/算法}

步骤1: {阶段描述}

// 完整注释的代码示例
// {第X行}: {解释}
public class Example {
    // {实现细节}
}

代码解析:

  • 第X-Y行: {解释这段代码的作用}
  • 关键设计: {解释为什么这样设计}

步骤2: {下一个阶段} ...

设计模式应用 (如有):

🔄 与下一个主题的连接

本Topic输出 → 下一个Topic输入:

// 本Topic提供的数据结构
{本Topic类} output = ...;

// → 下一个Topic使用这个输出
{下一个Topic类} processor = new {下一个Topic类}(output);

连接代码说明:

  • 本Topic产生的{产物}将被下一个Topic的{组件}使用
  • 这种设计体现了{设计原则/编译原理}

Topic 2: {下一个主题}

[重复上述四要素结构]

...

Topic N: {最后一个主题}

[重复上述四要素结构,但无需"与下一个主题的连接"]


第三层:综合实战项目 (Layer 3: Comprehensive Project)

项目名称: {端到端项目}

项目描述: 使用本EP所有Topic的知识,构建{完整系统}

项目目标:

  • 整合所有Topic的组件
  • 实现{完整功能}
  • 验证{性能指标}

项目结构:

project-root/
├── src/
│   ├── topic1/    # Topic 1的组件
│   ├── topic2/    # Topic 2的组件
│   └── integration/ # 集成层(调用各Topic组件)
├── test/
│   └── end-to-end/ # 端到端测试
└── examples/       # 完整示例

实现步骤:

步骤1: 搭建基础框架 (使用Topic 1)

// Topic 1的组件初始化

步骤2: 集成数据处理 (使用Topic 2-3)

// 连接各Topic组件的代码

步骤3: 实现核心功能 (使用Topic 4-5)

// 完整功能实现

测试验证:

@Test
public void testEndToEnd() {
    // 端到端测试
}

扩展练习:

  1. 优化{某个组件}
  2. 添加{新功能}
  3. 性能对比分析

📊 学习检查点

完成本EP后,你应该能够:

  • 架构理解: 解释本EP在编译流程中的位置和作用
  • 概念掌握: 定义{核心概念1}、{核心概念2}...
  • 实现能力: 实现{关键功能}
  • 系统思维: 说明各主题如何协同工作
  • 问题分析: 分析{常见问题}的根因
  • 扩展应用: 基于本EP框架添加{新特性}

🔗 知识图谱

前置依赖:

  • EP{XX}: {需要掌握的概念}

后续衔接:

  • EP{YY}: 将使用本EP的{输出}

相关EP:

  • EP{ZZ}: {关联主题}

📚 参考资源

  • 理论教材: {经典教材章节}
  • 在线资源: {文档链接}
  • 开源项目: {参考项目}

---

## 🤖 EP智能分析引擎

### 自动分析流程
当用户请求生成某个EP的教育文档时,按以下流程自动分析:
  1. 结构分析 ├── 扫描 EP{NN}/src/ 目录 ├── 识别核心类和接口 ├── 构建类依赖关系图 └── 生成模块清单

  2. 代码抽取 ├── 提取关键算法实现 ├── 识别设计模式应用 └── 收集测试用例示例

  3. 文档生成 ├── 填充教学模板 ├── 插入代码片段和注释 ├── 生成练习题 └── 创建检查点清单


### 子 Agent 调用协议
**场景**: 用户请求 "生成EP21的教学文档"

```yaml
Step1: 主Agent
  - 读取 EP21_TECH_MEM (Serena记忆)
  - 调用 Task(tool) 启动子Agent

Step2: 子Agent (general-purpose)
  prompt: |
    分析 EP21 目录,完成以下任务:
    1. 列出所有核心类 (带路径)
    2. 对每个核心类:
       - 提取关键方法
       - 选择教学用代码片段 (50-100行)
       - 识别设计模式
    3. 找出3-5个代表性测试用例
    4. 返回结构化分析报告

  tools: [Glob, Grep, Read, mcp__serena__find_symbol]

Step3: 主Agent接收分析结果
  - 填充教育文档模板
  - 生成 EP21_教学文档.md
  - 更新课程入口文档索引

分析报告格式 (子Agent输出)

{
  "ep": "EP21",
  "title": "高级数据流优化",
  "phase": "优化层",
  "modules": [
    {
      "name": "SSAGraph",
      "path": "ep21/src/main/java/.../SSAGraph.java",
      "purpose": "SSA形式图表示",
      "key_methods": [
        {
          "name": "buildSSA",
          "lines": "45-120",
          "complexity": "高",
          "educational_value": "展示SSA构建算法"
        }
      ],
      "design_patterns": ["Builder", "Visitor"]
    }
  ],
  "test_cases": [
    {
      "class": "SSABuilderTest",
      "method": "testPhiInsertion",
      "concept": "Φ函数插入"
    }
  ],
  "dependencies": ["EP12", "EP17"]
}

🎓 课程入口文档生成器

文档结构

文件名: COURSE_编译器构造完全指南.md

# 编译器构造完全指南
**基于 ANTLR4 + Java** | **21个EP** | **从零到优化编译器**

---

## 🗺️ 学习路径

### 路径A: 最小可运行编译器 (快速入门)

EP1 → EP2 → EP3 → EP11 → EP16 → EP18

**时长**: 2-3周 | **目标**: 能编译简单程序并执行

### 路径B: 完整编译器 (系统学习)

EP1-10 (前端) → EP11-15 (中端) → EP16-18 (后端)

**时长**: 6-8周 | **目标**: 理解完整编译流程

### 路径C: 优化专家 (进阶)

完成路径B → EP17 (CFG) → EP12 (SSA) → EP21 (高级优化)

**时长**: 3-4周 | **目标**: 实现工业级优化

---

## 📚 EP课程目录

### 第一部分: 前端编译 (EP1-10)

#### EP1: 词法分析
**教学文档**: [EP1_教学文档.md](./EP1_教学文档.md)
**核心概念**: Token、正则表达式、DFA
**代码示例**: `CymbolLexer.g4`
**难度**: ⭐ | **学时**: 2h

[链接到生成的教学文档]

#### EP2: 语法分析
...

---

## 🎯 按概念索引

| 概念 | 相关EP | 快速跳转 |
|------|--------|----------|
| 词法分析 | EP1 | [链接] |
| 语法树 | EP3 | [链接] |
| 符号表 | EP6 | [链接] |
| SSA形式 | EP12 | [链接] |
| 数据流分析 | EP13, EP21 | [链接] |

---

## 🔧 项目实践
### 实践项目1: 简单计算器语言
涉及EP: EP1-3, EP11, EP16, EP18
难度: ⭐⭐

### 实践项目2: 带函数的语言
涉及EP: EP1-7, EP11, EP16-18
难度: ⭐⭐⭐

### 实践项目3: 优化的编译器
涉及EP: 全部21个EP
难度: ⭐⭐⭐⭐⭐

📊 质量标准

维度 权重 目标 检查方式
文档完整性 25% ≥90 模板覆盖度
章节规范性 15% ≥85 结构检查
任务追踪率 15% 100 TDD任务
教育价值 30% ≥90 可理解性
代码示例质量 15% ≥85 注释完整性
综合 100% ≥90 整体评分

📐 命名约定

类型 ✅ 正确 ❌ 错误
规范文档 EP21_ABI_设计文档.md abi_doc.md
设计文档 EP21_SSA_设计文档.md ssa.md
TDD计划 TDD_重构计划.md plan.md
教育文档 EP21_教学文档.md ep21_tutorial.md
课程入口 COURSE_编译器构造完全指南.md course.md
任务ID TASK-001, TASK-2.1 1.测试

🚀 使用示例

示例1: 生成单个EP的教育文档

用户: "生成EP21的教学文档"

Agent:
1. 读取 EP21_TECH_MEM
2. 启动子Agent分析EP21代码结构
3. 生成 EP21_教学文档.md
4. 更新课程入口文档索引

示例2: 生成完整课程文档

用户: "生成完整的编译器构造课程文档"

Agent:
1. 遍历所有EP目录 (EP1-EP21)
2. 并行启动21个子Agent分析各EP
3. 逐个生成教学文档
4. 生成课程入口文档
5. 创建概念索引

示例3: 更新现有文档

用户: "EP21有新功能,更新文档"

Agent:
1. 对比现有文档和新代码
2. 识别新增/变更部分
3. 更新教育文档
4. 重新生成检查点

🔗 与其他Skill的协作

Skill 协作场景
compiler-dev 获取技术实现细节
ep-navigator 查询EP依赖关系
serena-code 分析代码结构和依赖
test-dev 获取测试用例示例

📚 v3.0 三层叙事结构 - 实例参考

以下教育文档已成功升级到v3.0三层叙事结构,可作为生成新文档时的参考模板:

EP 文档路径 架构特点 主题数量
EP3 /docs/educational/EP3_教学文档.md 4层架构: Framework→Data Structure→Traversal Extension→Application 4 Topics
EP11 /docs/educational/EP11_教学文档.md 4层架构: Framework→Abstract Intermediate→Concrete Implementation→Application 5 Topics
EP18 /docs/educational/EP18_教学文档.md 5层架构: Framework→Concrete Implementation→Execution Engine→Runtime Data→Application 7 Topics
EP21 /docs/educational/EP21_教学文档.md 优化Pass架构: Interface→Analysis→Transformation→Verification 6 Topics

关键改进点 (从v1.0/v2.0 → v3.0):

  1. 第一层架构全景: 明确EP在编译流水线中的位置、分层架构设计、构建逻辑阶段
  2. 第二层主题单元: 每个Topic包含📍位置、🔗依赖关系、核心内容、🔄主题连接
  3. 主题间连接代码: 展示Topic N的输出如何成为Topic N+1的输入
  4. 依赖关系可视化: 继承关系、使用关系、类依赖图
  5. 概念与实现紧密耦合: 叙述顺序相近,避免分离
  6. 全局视野: 揭示主题如何服从于编译过程构造大背景

使用建议:

  • 生成新EP文档时,参考同阶段EP的架构设计(如前端参考EP3,后端参考EP18)
  • 使用四要素结构确保每个主题的完整性
  • 仔细编写"与下一个主题的连接"部分,确保内在逻辑清晰

版本: v3.0 | 三层叙事结构 + EP智能分析 + 课程体系生成 | 2025-12-27