| name | ep-navigator |
| description | EP项目导航专家,提供21个EP的依赖关系路由、快速定位和跨EP对比分析。 |
| version | v1.0 |
| tags | navigation, routing, ep-relationship, cross-ep |
| allowed-tools | mcp__serena__read_memory, mcp__serena__list_memories, Read, Grep |
| requires-skills |
EP导航专家
🎯 垂直职责
单一职责: EP项目知识图谱导航和路由决策
📊 EP依赖关系图
graph TD
%% 基础层
EP1[EP1: Lexer] --> EP2[EP2: Parser]
EP2 --> EP3[EP3: AST]
EP3 --> EP4[EP4: Listener]
EP4 --> EP5[EP5: Visitor]
EP5 --> EP6[EP6: Symbol Table]
EP6 --> EP7[EP7: Types]
EP7 --> EP8[EP8: Type Checking]
EP8 --> EP9[EP9: Scopes]
EP9 --> EP10[EP10: Interpreter]
%% 编译器层
EP10 --> EP11[EP11: IR Design]
EP11 --> EP12[EP12: IR Gen]
EP12 --> EP13[EP13: Bytecode]
EP13 --> EP14[EP14: VM Entry]
EP14 --> EP15[EP15: Function Call]
EP15 --> EP16[EP16: Control Flow]
EP16 --> EP17[EP17: Arrays]
%% 后端分支
EP17 --> EP18[EP18: Stack VM]
EP17 --> EP18R[EP18R: Register VM]
EP17 --> EP19[EP19: Compiler Interpreter]
EP17 --> EP20[EP20: Full Compiler]
%% 优化层
EP20 --> EP21[EP21: Optimization]
%% 虚拟机分支
EP18 -.-> EP18R
EP19 -.-> EP20
🚀 快速路由表
| 用户意图 | 目标EP | 加载记忆 | 加载技能 |
|---|---|---|---|
| "词法/语法问题" | EP1-EP5 | 无需 | antlr4-dev |
| "符号表/类型检查" | EP6-EP10 | EP{编号}.md | compiler-dev |
| "IR/代码生成" | EP11-EP17 | EP{编号}.md | compiler-dev |
| "虚拟机" | EP18, EP18R | EP18.md | vm-dev |
| "编译器完整流程" | EP19, EP20 | EP19.md, EP20.md | compiler-dev |
| "优化/SSA" | EP21 | EP21_TECH_MEM.md | compiler-dev |
| "文档编写" | - | - | doc-dev |
| "测试开发" | - | - | test-dev |
📦 核心能力
1. EP识别
从用户输入自动识别目标EP:
输入: "在ep18中添加垃圾回收"
→ 识别: EP18
→ 加载: docs/ep-memory/EP18.md
→ 加载技能: vm-dev
2. 跨EP对比
输入: "对比ep18和ep18r的ABI设计"
→ 加载: EP18.md + EP18R.md
→ 对比维度: 调用约定、栈帧布局、参数传递
→ 输出: 标准化对比表
3. 依赖分析
输入: "修改EP5的Visitor接口"
→ 分析: 影响EP6-EP21所有使用Visitor的模块
→ 报告: 受影响EP列表 + 风险评估
🔗 关系图
→ 被所有技能依赖 (优先加载) ← 无依赖
📂 关键文件映射
| EP | 核心目录 | 入口文件 | 关键记忆 |
|---|---|---|---|
| EP1-5 | ep20/src/main/antlr4/ |
Cymbol.g4 |
无 |
| EP6-10 | ep20/src/main/java/org/teachfx/antlr4/ep20/symtab/ |
Symbol.java |
EP{编号}.md |
| EP11-17 | ep20/src/main/java/org/teachfx/antlr4/ep20/ |
Compiler.java |
EP{编号}.md |
| EP18 | ep18/src/main/java/org/teachfx/antlr4/ep18/stackvm/ |
CymbolStackVM.java |
EP18.md |
| EP18R | ep18r/src/main/java/org/teachfx/antlr4/ep18r/regvm/ |
CymbolRegisterVM.java |
EP18R.md |
| EP19 | ep19/src/main/java/org/teachfx/antlr4/ep19/ |
Compiler.java |
EP19.md |
| EP20 | ep20/src/main/java/org/teachfx/antlr4/ep20/ |
Compiler.java |
EP20.md |
| EP21 | ep21/src/main/java/org/teachfx/antlr4/ep21/ |
Optimizer.java |
EP21_TECH_MEM.md |
✅ 使用流程
# 1. 识别EP
用户输入包含 "ep{数字}" 或特定关键词
# 2. 加载记忆
mcp__serena__read_memory("EP{编号}.md")
# 3. 加载技能
根据上表加载对应的垂直技能
# 4. 执行任务
使用垂直技能的专业知识执行
# 5. 更新记忆
任务完成后更新对应的EP记忆
版本: v1.0 | 垂直职责: EP路由导航 | 2025-12-23