ethan-skill 1.12.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,313 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [1.14.0] - 2026-04-09
6
+
7
+ ### Added
8
+
9
+ - **3 个新内置专业化 Agent**(内置 Agent 5 → 8):
10
+ - `qa` 🧪 — 质量保障(unit-testing / code-review / spec-review / mobile-review / security-review)
11
+ - `security` 🔐 — 安全专项(threat-model / security-review / spec-proposal)
12
+ - `data` 📈 — 数据工程(data-pipeline / ml-experiment / database-optimize / observability / llm-feature)
13
+
14
+ - **4 种 Agent 协作模式**(`--mode`,新增 3 种):
15
+ - `sequential`(默认,原逻辑)
16
+ - `parallel` — 各 Agent 并行输出各自维度分析,最后汇总整合
17
+ - `review-loop` — Coder 实现 → Reviewer 审查 → Coder 修改(最多 2 轮)
18
+ - `consensus` — 多 Agent 独立提案,最后共识整合最优解
19
+
20
+ - **新 CLI 命令 `ethan agent new [agentId]`**:
21
+ - 交互式创建自定义 Agent,生成 `.ethan/agents/<id>.yaml`
22
+ - 显示 36 个 Skill ID 列表供选择,校验合法性
23
+ - 自动创建 `.ethan/agents/` 目录
24
+
25
+ - **新 MCP 工具 2 个**(28 → 30):
26
+ - `ethan_agent_list` — 列出所有可用 Agent(内置 + 自定义)
27
+ - `ethan_agent_show` — 查看指定 Agent 详细配置
28
+
29
+ - **`ethan agent run` 新增 `--mode` 选项**:
30
+ - `--mode sequential|parallel|review-loop|consensus`
31
+
32
+ ### Changed
33
+
34
+ - `ethan_agent_orchestrate` MCP 工具新增 `mode` 参数(sequential/parallel/review-loop/consensus)
35
+ - MCP Server 工具总数:28 → **30**
36
+ - 内置 Agent 总数:5 → **8**
37
+
38
+ ---
39
+
40
+ ## [1.13.0] - 2026-04-08
41
+
42
+ ### Added
43
+
44
+ - **Multi-Agent 编排系统**(全新模块 `src/agents/`):
45
+ - 5 个内置角色 Agent:`architect`🏗️ / `coder`💻 / `reviewer`🔍 / `devops`🚀 / `pm`📊
46
+ - 覆盖全部 36 个 Skill 的角色分配矩阵
47
+ - 支持 `.ethan/agents/*.yaml|json` 自定义 Agent
48
+ - `src/agents/orchestrator.ts` 核心编排函数 `buildMultiAgentPrompt()`
49
+ - `src/loader/custom-agent-loader.ts` 自定义 Agent 加载器
50
+
51
+ - **新 CLI 命令 `ethan agent`**(3 个子命令):
52
+ - `ethan agent list` — 列出所有可用 Agent 及 Skill 分配
53
+ - `ethan agent show <agentId>` — 查看指定 Agent 的详细配置
54
+ - `ethan agent run [pipelineId]` — 生成 Multi-Agent 编排 Prompt(支持 `--context` / `--lang` / `--with-context` / `--no-copy`)
55
+
56
+ - **新 MCP 工具 `ethan_agent_orchestrate`**:
57
+ - 通过 Claude Desktop 触发 Multi-Agent 编排
58
+ - 参数:`pipelineId`(必填)、`context`(必填)、`lang`、`withContext`、`cwd`
59
+ - 支持角色分工感的多阶段复杂任务协作
60
+
61
+ - **宣传落地页 `docs/landing.html`**(全新设计):
62
+ - 极简暗黑 + 霓虹风格,参考 superconscious.app
63
+ - 8 大 Section:Hero / Stats / Before-After 对比 / 用户画像 / Features / Workflow Demo / Skills Marquee / 架构图 / 未来路线 / Install CTA
64
+ - 鼠标 Spotlight / Blob 视差 / 终端打字动画 / Scroll Reveal / 数字计数动画
65
+ - 完全响应式(375px / 768px / 1280px+)
66
+
67
+ ### Changed
68
+
69
+ - MCP Server 工具总数:27 → **28**(新增 `ethan_agent_orchestrate`)
70
+ - CLI 命令总数新增 3 个 `agent` 子命令
71
+
72
+ ### Tests
73
+
74
+ - 新增 `src/agents/orchestrator.test.ts`,Multi-Agent 编排模块测试覆盖
75
+
76
+ ---
77
+
78
+ ## [1.12.0] - 2026-04-07
79
+
80
+ ### Added
81
+
82
+ - **12 new Skills** (total: 36):
83
+ - `#25 spec-proposal` — OpenSpec 变更提案生成(proposal + design + tasks + spec delta)
84
+ - `#26 spec-review` — 意图级 Spec 审查(对比 spec delta 与代码实现)
85
+ - `#27 tech-debt` — 技术债识别、量化评估与偿还路线图
86
+ - `#28 api-mock` — Mock 服务生成(MSW / JSON Server / Mirage.js 选型与配置)
87
+ - `#29 data-migration` — 数据迁移助手(UP/DOWN 脚本、零停机四步法)
88
+ - `#30 llm-feature` — LLM 功能设计(RAG 架构、Prompt 工程、评估与降级)
89
+ - `#31 threat-model` — 威胁建模(STRIDE 矩阵、攻击树、安全控制)
90
+ - `#32 green-code` — 绿色编码实践(能耗优化、碳排放估算)
91
+ - `#33 service-catalog` — 服务目录管理(catalog-info.yaml、健康评分)
92
+ - `#34 mobile-review` — 移动端专项审查(平台合规、性能、无障碍)
93
+ - `#35 data-pipeline` — 数据管道设计(Batch/Streaming 选型、质量规则、血缘图)
94
+ - `#36 ml-experiment` — ML 实验管理(MLflow/W&B、DVC、Model Card、部署监控)
95
+ - **4 new Pipelines** (total: 10):
96
+ - `spec-workflow` — Spec Proposal → 方案设计 → 执行实现 → Spec Review
97
+ - `bugfix-workflow` — 故障排查 → Spec Proposal → 执行实现 → 单元测试 → Spec Review
98
+ - `security-audit-workflow` — 威胁建模 → 安全审查 → Spec Proposal → 执行实现 → Spec Review
99
+ - `open-source-release` — 技术调研 → 代码审查 → 单元测试 → 部署上线
100
+ - **19 new CLI analysis commands**:
101
+ `diff`, `deps`, `dora`, `pr-analytics`, `adr`, `mermaid`, `i18n`, `onboard`,
102
+ `test-coverage`, `migrate`, `postmortem`, `decision-log`, `knowledge`,
103
+ `oss`, `prompt-lib`, `scaffold`, `benchmark`, `sync`, `compliance`
104
+ - **5 new MCP tools** (total: 27):
105
+ `ethan_dora`, `ethan_pr_analytics`, `ethan_postmortem`, `ethan_scaffold`, `ethan_compliance`
106
+ - OpenSpec 工具链: `ethan spec init/list/show/validate/proposal/review`
107
+ - 3 new MCP tools for OpenSpec: `ethan_spec_proposal`, `ethan_spec_review`, `ethan_spec_validate`
108
+
109
+ ---
110
+
111
+ ## [1.10.1] - 2026-04-02
112
+
113
+ ### Added
114
+
115
+ - `ethan slash-install` 新增 12 条工作流 Slash 命令(4 分类):
116
+ - Git 集成: `commit`, `review`, `pr`, `standup`, `changelog`
117
+ - 有状态工作流: `workflow-start`, `workflow-done`, `workflow-status`
118
+ - Auto-Pilot: `auto`
119
+ - 开发工具: `explain`, `test-case`, `estimate`
120
+ - Claude Code 模式下共生成 36 个 `.claude/commands/ethan-*.md` 文件
121
+
122
+ ---
123
+
124
+ ## [1.10.0] - 2026-04-02
125
+
126
+ ### Added
127
+
128
+ - `ethan slash-install [--platform] [--dir]` — 一键生成平台专属 Slash 命令文件:
129
+ - `claude-code`: 生成 `.claude/commands/ethan-{skill}.md` 每个 Skill 独立文件
130
+ - 其他平台: 生成 `ethan-commands.md` 速查表(Skills + 触发词)
131
+ - 自动后台静默升级:检测到新版本后在后台执行 `npm install -g`,重启终端生效
132
+ - 启动时 Node.js 版本检测(≥18),版本过低显示友好错误框(含 nvm 升级命令)
133
+
134
+ ---
135
+
136
+ ## [1.9.0] - 2026-04-02
137
+
138
+ ### Changed
139
+
140
+ - `ethan autopilot` 重命名为 `ethan auto`(保留 `autopilot` 别名兼容)
141
+
142
+ ---
143
+
144
+ ## [1.8.0] - 2026-04-01
145
+
146
+ ### Added
147
+
148
+ - **10 new Skills** (total: 24), 覆盖工程质量全栈:
149
+ - `#15 git-workflow` — GitFlow vs Trunk-Based 选型、Conventional Commits、Rebase vs Merge
150
+ - `#16 unit-testing` — AAA 模式、TDD 工作流、Mock 策略、Vitest 覆盖率配置
151
+ - `#17 system-design` — 需求澄清→容量估算→架构设计→核心组件→扩展性权衡
152
+ - `#18 database-optimize` — Schema 审查、索引设计、慢查询分析、N+1 修复、分库分表
153
+ - `#19 docker` — 多阶段构建、.dockerignore、Docker Compose 编排、安全加固
154
+ - `#20 cicd` — GitHub Actions 完整配置、构建缓存、部署门控、自动回滚
155
+ - `#21 performance` — Core Web Vitals 基线、前端懒加载/分割、后端缓存/并行优化
156
+ - `#22 refactoring` — 12 种坏味道识别、重构手法、Strangler Fig 大规模重构
157
+ - `#23 observability` — 日志/指标/链路三支柱、Prometheus + Grafana、OpenTelemetry、SLO
158
+ - `#24 design-patterns` — 23 种 GoF 模式速查、高频模式 TypeScript 实现、场景选型指南
159
+ - ReactBits-inspired 文档 UI:极光背景 + 玻璃态卡片
160
+
161
+ ---
162
+
163
+ ## [1.7.0] - 2026-03-31
164
+
165
+ ### Added
166
+
167
+ - **4 new Skills** (total: 14):
168
+ - `#11 api-design` — RESTful/GraphQL 接口设计,错误码体系,OpenAPI 3.0 风格输出
169
+ - `#12 security-review` — OWASP Top 10 逐项扫描,Critical/High/Medium/Low 四级输出
170
+ - `#13 deployment` — Pre-flight 预检、灰度/蓝绿/滚动策略、上线后验证与回滚
171
+ - `#14 prd` — 用户故事→验收标准(AC)→非功能性需求→埋点方案,完整 PRD 文档
172
+ - **3 new Pipelines** (total: 6):
173
+ - `full-dev-cycle` — 需求理解 → 接口设计 → 方案设计 → 执行实现 → 代码审查 → 部署上线
174
+ - `incident-response` — 故障排查 → 技术调研 → 任务报告
175
+ - `new-feature` — PRD → 技术调研 → 接口设计 → 任务拆解 → 执行实现
176
+ - 自定义 Pipeline 加载器(`src/loader/custom-pipeline-loader.ts`):`.ethan/pipelines/*.yaml` 自动加载
177
+
178
+ ---
179
+
180
+ ## [1.6.0] - 2026-03-26
181
+
182
+ ### Added
183
+
184
+ - 自定义 Skill 支持 `.md` 格式(YAML frontmatter 定义元数据 + Markdown 正文定义步骤)
185
+ - `ethan skill new [name] --format md` 生成 Markdown 模板
186
+ - `##` / `###` 标题自动解析为步骤(title + content)
187
+ - 支持格式:`.yaml` / `.yml` / `.json` / `.md`,透明合并到 `ethan list`
188
+
189
+ ---
190
+
191
+ ## [1.5.9] - 2026-03-26
192
+
193
+ ### Added
194
+
195
+ - **Context 引擎**(`src/context/builder.ts`):
196
+ - `buildProjectSnapshot()` 自动扫描项目技术栈、框架、配置文件
197
+ - `ethan context show [--refresh] [--json]` — 展示项目快照(TTL 30min 缓存)
198
+ - `ethan context refresh` — 强制刷新缓存
199
+ - `autopilot --with-context` — 静默注入项目上下文到超级提示词
200
+ - **MCP Autopilot**:新增 `ethan_autopilot` 和 `ethan_context_snapshot` MCP 工具
201
+ - **Skill 质量评分**:
202
+ - `workflow done --rating <1-5>` — 每次完成工作流后评分
203
+ - `ethan quality report` — ASCII 条形图可视化各 Skill 质量评分
204
+
205
+ ---
206
+
207
+ ## [1.5.7] - 2026-03-26
208
+
209
+ ### Fixed
210
+
211
+ - `prepublishOnly` 阶段先执行 `build`,修复 `autopilot` 命令 `dist/` 未更新问题
212
+
213
+ ---
214
+
215
+ ## [1.5.6] - 2026-03-25
216
+
217
+ ### Added
218
+
219
+ - **Auto-Pilot 全自动链式工作流**(`ethan autopilot [pipelineId]`):
220
+ - 生成超级提示词,让 AI 无需人工确认自动链式执行整个 Pipeline
221
+ - 支持 `--context` / `--all` / `--lang en` / `--no-copy` 参数
222
+ - 所有平台规则文件同步更新 Auto-Pilot 协议(`<details>` 折叠中间步骤)
223
+
224
+ ---
225
+
226
+ ## [1.5.5] - 2026-03-23
227
+
228
+ ### Changed
229
+
230
+ - `ethan workflow done` 简化:去除强制 summary,改为可选确认
231
+ - 工作流 UX 分级:P0(核心流)/ P1(推荐)/ P2(可选增强)
232
+
233
+ ### Fixed
234
+
235
+ - Windows 路径反斜杠兼容(`test-case` / `explain` / `roast`)
236
+ - Windows 剪贴板乱码(改用 PowerShell `Set-Clipboard`)
237
+ - 跨平台模板变量注入问题(CodeBuddy / Lingma / Zed)
238
+
239
+ ---
240
+
241
+ ## [1.5.0] - 2026-03-22
242
+
243
+ ### Added
244
+
245
+ - **MCP Server 完整工具集**(`src/mcp/server.ts`):
246
+ - 新增 `ethan_memory_search`、`ethan_estimate`、`ethan_git_commit`、`ethan_git_review`
247
+ - 总计 17 MCP 工具(10 Skill 工具 + 7 实用工具)
248
+ - **浏览器扩展**(Chrome/Edge MV3):
249
+ - GitHub PR 页面注入「⚡ Ethan Review」按钮
250
+ - 右键菜单快速生成 AI 提示词,一键复制到剪贴板
251
+ - **插件 OS**:`ethan plugin publish / registry / search` — 支持私有 npm 注册表
252
+ - **Stats 排行榜**:`ethan stats leaderboard` — 团队 Skill 使用频次排行
253
+ - **VS Code 扩展完整版**:
254
+ - SkillTreeDataProvider + PipelineTreeDataProvider 侧边栏
255
+ - Status Bar 按钮、QuickPick 技能选择、Web UI Dashboard 启动
256
+ - 17 个 chatParticipant 命令(新增 commit/review/pr/standup/estimate/retro/oncall)
257
+ - 支持 11 个平台:新增 Windsurf、Zed、JetBrains、Continue、Claude Code
258
+
259
+ ---
260
+
261
+ ## [1.4.0] - 2026-03-22
262
+
263
+ ### Added
264
+
265
+ - **Phase 4 — 团队工具**:
266
+ - `ethan memory add/search/show/list/export/remove` — Skill 记忆库(`.ethan/memory/`,跨项目检索)
267
+ - `workflow done` 自动归档当前步骤摘要到记忆库
268
+ - `ethan estimate [-t task] [--style hours|story-points|t-shirt]` — PERT 三点估算
269
+ - **Phase 5 — 运维工具**:
270
+ - `ethan retro [--sprint]` — Sprint 回顾提示词
271
+ - `ethan stats leaderboard` — 使用频次排行(基于 `~/.ethan-stats.json`)
272
+ - `ethan pipeline-init [--name]` — 生成自定义 Pipeline YAML 模板
273
+ - `.ethan/pipelines/*.yaml` 自定义 Pipeline 加载
274
+
275
+ ---
276
+
277
+ ## [1.3.0] - 2026-03-22
278
+
279
+ ### Added
280
+
281
+ - **Phase 1 — Git 集成**:`ethan commit / review / pr / standup / changelog`
282
+ - **Phase 2 — 开发工具**:`ethan scan / explain / test-case / naming / readme / roast`
283
+ - **Phase 3 — 运维工具**:`ethan oncall / schedule / hooks / stats show`
284
+ - 命名会话支持:`ethan workflow start --name <session>` — 支持多并行工作流会话
285
+ - Stats 追踪(v2):连续使用天数 + 7 日热力图 + 徽章系统
286
+
287
+ ---
288
+
289
+ ## [1.2.0] - 2026-03-22
290
+
291
+ ### Added
292
+
293
+ - `ethan workflow report` — 从当前会话生成 Markdown 工作流报告(含各步耗时、摘要)
294
+ - `--out <file>` 保存报告到文件;`--all` 包含待执行步骤
295
+
296
+ ---
297
+
298
+ ## [1.1.0] - 2026-03-22
299
+
300
+ ### Added
301
+
302
+ - **一键工作流**(`ethan workflow start/done/status/reset/list`):
303
+ - 有状态的分步执行,每步完成后自动注入上下文链
304
+ - `workflow done [summary]` — 标记完成并推进到下一步
305
+ - **Web UI Dashboard**(`ethan serve`):
306
+ - 工作流进度面板、可视化进度条、一键推进步骤
307
+ - API 端点:`GET /api/workflow`、`POST /api/workflow/done`
308
+ - **MCP 工作流工具**:`ethan_workflow_status`、`ethan_workflow_next`
309
+
310
+ ---
311
+
5
312
  ## [1.0.0] - 2026-03-21
6
313
 
7
314
  ### Added
package/README.md CHANGED
@@ -14,22 +14,22 @@
14
14
 
15
15
  | 模块 | 内容 |
16
16
  |------|------|
17
- | **24 个 Skill** | 标准化工作流节点,覆盖需求→接口设计→安全→部署→PRD→Git→测试→系统设计→数据库→Docker→CI/CD→性能→重构→可观测性→设计模式 |
17
+ | **36 个 Skill** | 标准化工作流节点,覆盖需求→接口设计→安全→部署→PRD→Git→测试→系统设计→数据库→Docker→CI/CD→性能→重构→可观测性→设计模式→OpenSpec→技术债→Mock→数据迁移→LLM设计→威胁建模→绿色编码→服务目录→移动审查→数据管道→ML实验 |
18
18
  | **11 个平台** | Cursor / Copilot / Cline / Windsurf / Zed / JetBrains / Continue / Claude Code 等 |
19
- | **6 个 Pipeline** | 链式工作流(开发 / 汇报 / 质量 / 完整周期 / 故障响应 / 新功能),有状态持久化推进 |
20
- | **23 个 MCP 工具** | AI 编辑器原生调用 Skill、Pipeline、Git、记忆库、估算 |
21
- | **40+ CLI 命令** | Git 集成、开发工具、记忆库、估算、插件 OS 全覆盖 |
19
+ | **10 个 Pipeline** | 链式工作流(开发 / 汇报 / 质量 / 完整周期 / 故障响应 / 新功能 / Spec规范 / Bug修复 / 安全审计 / 开源发布),有状态持久化推进 |
20
+ | **28 个 MCP 工具** | AI 编辑器原生调用 Skill、Pipeline、Git、记忆库、估算、DORA 指标、PR 分析、故障复盘、脚手架、合规证据 |
21
+ | **60+ CLI 命令** | Git 集成、开发工具、记忆库、估算、分析工具(diff/deps/dora/mermaid/adr/i18n/migrate/onboard/compliance 等)、插件 OS 全覆盖 |
22
22
  | **Slash 命令生成** | `ethan slash` 一键为 Claude Code 生成 `/ethan-xxx` 原生命令,其他平台生成速查表 |
23
23
  | **自动升级** | 检测到新版本时自动后台 `npm install -g` 静默升级,重启终端即用新版 |
24
24
  | **自定义 Skill** | `.ethan/skills/*.yaml/.md`,YAML frontmatter + Markdown body |
25
25
  | **自定义 Pipeline** | `.ethan/pipelines/*.yaml`,引用内置或自定义 Skill 自由组合 |
26
26
  | **浏览器扩展** | Chrome/Edge MV3,GitHub PR 一键 Review + 右键菜单 |
27
- | **VS Code 扩展** | 侧边栏树、20 个命令、23 个 @ethan 斜杠命令 |
27
+ | **VS Code 扩展** | 侧边栏树、20 个命令、36 个 @ethan 斜杠命令 |
28
28
  | **插件 OS** | 发布/搜索/安装社区 Skill 插件,支持私有注册表 |
29
29
 
30
30
  ---
31
31
 
32
- ## 24 个 Skill
32
+ ## 36 个 Skill
33
33
 
34
34
  | # | Skill | 分类 | 触发词(示例) | 说明 |
35
35
  |---|-------|------|--------------|------|
@@ -47,20 +47,32 @@
47
47
  | 12 | 安全审查 | 质量侧 | `安全审查`、`OWASP`、`security review` | OWASP Top 10 逐项扫描,四级风险清单(Critical→Low) |
48
48
  | 13 | 部署上线 | 执行侧 | `部署上线`、`上线`、`deploy` | Pre-flight 预检 + 灰度/蓝绿策略 + 回滚方案全流程 |
49
49
  | 14 | PRD 编写 | 需求侧 | `PRD`、`产品需求`、`写 PRD` | 用户故事 + 验收标准 AC + 非功能性需求 + 埋点方案 |
50
- | 15 | **Git 工作流** | 执行侧 | `Git 工作流`、`分支策略`、`commit 规范` | GitFlow/Trunk-Based 选型、Conventional Commits、Rebase vs Merge 决策 |
51
- | 16 | **单元测试** | 质量侧 | `单元测试`、`unit test`、`测试覆盖率` | AAA 模式、Mock 策略、Vitest/Jest 配置,建立测试文化 |
52
- | 17 | **系统设计** | 执行侧 | `系统设计`、`架构设计`、`system design` | 需求拆解→容量估算→架构选型→核心组件→数据模型 |
53
- | 18 | **数据库优化** | 质量侧 | `数据库优化`、`慢查询`、`索引优化` | 慢查询诊断、索引策略、查询优化、分库分表与缓存 |
54
- | 19 | **Docker** | 执行侧 | `Docker`、`容器化`、`Dockerfile` | 多阶段构建、Compose 编排、安全加固与镜像精简 |
55
- | 20 | **CI/CD** | 执行侧 | `CI/CD`、`流水线`、`GitHub Actions` | GitHub Actions 全流程、并行构建、多环境部署策略 |
56
- | 21 | **性能优化** | 质量侧 | `性能优化`、`Core Web Vitals`、`performance` | 基线建立、前端懒加载/代码分割、后端缓存/并发优化 |
57
- | 22 | **代码重构** | 质量侧 | `代码重构`、`refactoring`、`技术债` | 识别坏味道、提炼函数/多态等重构手法、测试先行 |
58
- | 23 | **可观测性** | 质量侧 | `可观测性`、`监控`、`链路追踪` | 日志/指标/链路三支柱、OTel、Prometheus+Grafana、SLO |
59
- | 24 | **设计模式** | 执行侧 | `设计模式`、`design pattern`、`GoF` | 23 种 GoF 模式速查、TypeScript 实现、场景→模式选型指南 |
50
+ | 15 | Git 工作流 | 执行侧 | `Git 工作流`、`分支策略`、`commit 规范` | GitFlow/Trunk-Based 选型、Conventional Commits、Rebase vs Merge 决策 |
51
+ | 16 | 单元测试 | 质量侧 | `单元测试`、`unit test`、`测试覆盖率` | AAA 模式、Mock 策略、Vitest/Jest 配置,建立测试文化 |
52
+ | 17 | 系统设计 | 执行侧 | `系统设计`、`架构设计`、`system design` | 需求拆解→容量估算→架构选型→核心组件→数据模型 |
53
+ | 18 | 数据库优化 | 质量侧 | `数据库优化`、`慢查询`、`索引优化` | 慢查询诊断、索引策略、查询优化、分库分表与缓存 |
54
+ | 19 | Docker | 执行侧 | `Docker`、`容器化`、`Dockerfile` | 多阶段构建、Compose 编排、安全加固与镜像精简 |
55
+ | 20 | CI/CD | 执行侧 | `CI/CD`、`流水线`、`GitHub Actions` | GitHub Actions 全流程、并行构建、多环境部署策略 |
56
+ | 21 | 性能优化 | 质量侧 | `性能优化`、`Core Web Vitals`、`performance` | 基线建立、前端懒加载/代码分割、后端缓存/并发优化 |
57
+ | 22 | 代码重构 | 质量侧 | `代码重构`、`refactoring`、`技术债` | 识别坏味道、提炼函数/多态等重构手法、测试先行 |
58
+ | 23 | 可观测性 | 质量侧 | `可观测性`、`监控`、`链路追踪` | 日志/指标/链路三支柱、OTel、Prometheus+Grafana、SLO |
59
+ | 24 | 设计模式 | 执行侧 | `设计模式`、`design pattern`、`GoF` | 23 种 GoF 模式速查、TypeScript 实现、场景→模式选型指南 |
60
+ | 25 | **Spec Proposal** | 需求侧 | `spec proposal`、`变更提案`、`/spec-proposal` | 遵循 OpenSpec 规范生成变更提案包(proposal + design + tasks + spec delta) |
61
+ | 26 | **Spec Review** | 质量侧 | `spec review`、`意图审查`、`/spec-review` | 对比 spec delta 与代码实现,执行意图级 Review(非逐行审查) |
62
+ | 27 | **技术债追踪** | 质量侧 | `技术债`、`tech debt`、`@ethan tech-debt` | 技术债识别分类、量化评估、Sprint 偿还路线图、预防门禁 |
63
+ | 28 | **Mock 服务生成** | 执行侧 | `api mock`、`mock service`、`@ethan api-mock` | MSW/JSON Server/Mirage.js 选型 + handlers.ts + faker.js 动态数据 |
64
+ | 29 | **数据迁移** | 执行侧 | `数据迁移`、`data migration`、`schema migration` | UP/DOWN 脚本、checksum 验证、零停机四步法(扩列→双写→切流→清旧列) |
65
+ | 30 | **LLM 功能设计** | 需求侧 | `llm feature`、`rag`、`ai 功能设计` | RAG 架构设计、Prompt 工程规范、自动 Evals、幻觉控制与 Fallback |
66
+ | 31 | **威胁建模** | 质量侧 | `威胁建模`、`threat model`、`STRIDE` | STRIDE 威胁识别、攻击树、安全控制措施、残余风险登记 |
67
+ | 32 | **绿色编码** | 质量侧 | `绿色编码`、`green code`、`carbon footprint` | 能耗热点识别、Big-O 优化、云资源 Right-sizing、SCI 碳排放估算 |
68
+ | 33 | **服务目录** | 执行侧 | `服务目录`、`service catalog`、`backstage` | catalog-info.yaml 生成、服务依赖关系图、健康评分卡、生命周期管理 |
69
+ | 34 | **移动端审查** | 质量侧 | `移动端审查`、`mobile review`、`flutter review` | iOS/Android 平台合规、性能专项、无障碍 VoiceOver/TalkBack、崩溃防护 |
70
+ | 35 | **数据管道** | 执行侧 | `数据管道`、`data pipeline`、`etl` | Batch/Streaming 架构选型、数据质量规则、容错重试、血缘可观测性 |
71
+ | 36 | **ML 实验管理** | 执行侧 | `ml experiment`、`mlops`、`model training` | MLflow/W&B 追踪配置、DVC 数据版本控制、Model Card、A/B 部署监控 |
60
72
 
61
73
  ---
62
74
 
63
- ## 6 个 Pipeline(链式工作流)
75
+ ## 10 个 Pipeline(链式工作流)
64
76
 
65
77
  | Pipeline ID | Skills | 适用场景 |
66
78
  |-------------|--------|---------|
@@ -70,6 +82,10 @@
70
82
  | `full-dev-cycle` | 需求理解 → **接口设计** → 方案设计 → 执行实现 → 代码审查 → **部署上线** | 完整功能交付 |
71
83
  | `incident-response` | 故障排查 → 技术调研 → 任务报告 | 线上故障处理 |
72
84
  | `new-feature` | **PRD** → 技术调研 → **接口设计** → 任务拆解 → 执行实现 | 新功能从 0 到 1 |
85
+ | `spec-workflow` | **Spec Proposal** → 方案设计 → 任务拆解 → 执行实现 → **Spec Review** | OpenSpec 规范开发 |
86
+ | `bugfix-workflow` | 故障排查 → **Spec Proposal** → 执行实现 → 单元测试 → **Spec Review** | 规范化 Bug 修复 |
87
+ | `security-audit-workflow` | **威胁建模** → **安全审查** → **Spec Proposal** → 执行实现 → **Spec Review** | 端到端安全审计 |
88
+ | `open-source-release` | 技术调研 → 代码审查 → 单元测试 → 部署上线 | 开源项目规范发布 |
73
89
 
74
90
  自定义 Pipeline:在 `.ethan/pipelines/` 目录创建 YAML 文件,`ethan pipeline-init` 生成模板。
75
91
 
@@ -106,7 +122,7 @@ npx ethan-skill install --platform cursor --lang en
106
122
  }
107
123
  ```
108
124
 
109
- 重启 AI 编辑器后,可使用全部 **23 个 MCP 工具**(详见下方 MCP 工具列表)。
125
+ 重启 AI 编辑器后,可使用全部 **28 个 MCP 工具**(详见下方 MCP 工具列表)。
110
126
 
111
127
  ### 方式三:全局安装
112
128
 
@@ -259,6 +275,30 @@ outputFormat: Markdown 文档
259
275
  步骤说明...
260
276
  ```
261
277
 
278
+ ### 分析工具(Phase 7)
279
+
280
+ ```bash
281
+ ethan diff [base] [head] # 读取 git diff → 变更风险分析提示词
282
+ ethan deps [--fix] # 依赖健康报告(package.json + audit)
283
+ ethan dora [--since <days>] # DORA 四键指标统计(Elite/High/Medium/Low)
284
+ ethan pr-analytics [--days <n>] # PR 大小分布、热点文件 Top10 分析
285
+ ethan adr new|list|show # 管理架构决策记录(docs/adr/)
286
+ ethan mermaid [--type] [--desc] # 生成 Mermaid 图表提示词(flow/sequence/er 等)
287
+ ethan i18n [file] # 扫描硬编码字符串 → i18n key 提取提案
288
+ ethan onboard [--lang] # 生成新成员上手文档提示词
289
+ ethan test-coverage [--threshold] # 读取覆盖率报告 → 覆盖率优化提示词
290
+ ethan migrate --from <src> --to <dest> # 生成框架/工具迁移方案提示词
291
+ ethan postmortem [--incident] # 从 git + 记忆库生成故障复盘提示词
292
+ ethan decision-log new|list|search # 管理轻量技术决策记录(.ethan/decisions/)
293
+ ethan knowledge add|list|search # 管理团队知识库(.ethan/team-knowledge/)
294
+ ethan oss triage|release-notes|contributor-guide|health-score # 开源项目工具套件
295
+ ethan prompt-lib add|list|search|show # 管理 Prompt 资产库(.ethan/prompts/)
296
+ ethan scaffold [--template] [--list] # 黄金路径脚手架(5 个内置模板)
297
+ ethan benchmark [--skill] # 基于 rating 数据生成 Skill 质量基准报告
298
+ ethan sync push|pull # 配置同步到 git .ethan-config 分支
299
+ ethan compliance [--standard soc2|gdpr|iso27001] # 生成合规证据收集提示词
300
+ ```
301
+
262
302
  ### 插件 OS(Phase 6)
263
303
 
264
304
  ```bash
@@ -290,7 +330,7 @@ ethan slash --platform copilot
290
330
  ethan slash
291
331
  ```
292
332
 
293
- **Claude Code 使用方式**:安装后在对话中直接输入 `/ethan-commit`、`/ethan-review`、`/ethan-auto` 等,共 **36 个命令**(24 Skills + 12 工作流)。
333
+ **Claude Code 使用方式**:安装后在对话中直接输入 `/ethan-commit`、`/ethan-review`、`/ethan-auto` 等,共 **36 个命令**(36 Skills + 工作流命令)。
294
334
 
295
335
  工作流命令支持**动态注入**:执行时自动读取真实的 git diff / 项目上下文,生成提示词并直接注入到对话中,**无需手动复制粘贴**。例如:
296
336
 
@@ -317,7 +357,7 @@ Ethan 每次启动都会静默检查 npm 最新版本(24h 缓存,不阻塞 C
317
357
 
318
358
  ---
319
359
 
320
- ## 23 个 MCP 工具
360
+ ## 28 个 MCP 工具
321
361
 
322
362
  配置 MCP Server 后,AI 编辑器(Cursor / Cline / Continue 等)可直接调用:
323
363
 
@@ -333,10 +373,10 @@ Ethan 每次启动都会静默检查 npm 最新版本(24h 缓存,不阻塞 C
333
373
  | `code_review` | 代码审查 Skill |
334
374
  | `debug` | 故障排查 Skill |
335
375
  | `tech_research` | 技术调研 Skill |
336
- | `api_design` | 接口设计 Skill(v1.7.0 新增)|
337
- | `security_review` | 安全审查 Skill(v1.7.0 新增)|
338
- | `deployment` | 部署上线 Skill(v1.7.0 新增)|
339
- | `prd` | PRD 编写 Skill(v1.7.0 新增)|
376
+ | `api_design` | 接口设计 Skill |
377
+ | `security_review` | 安全审查 Skill |
378
+ | `deployment` | 部署上线 Skill |
379
+ | `prd` | PRD 编写 Skill |
340
380
  | `ethan_pipeline` | 串联执行完整 Pipeline |
341
381
  | `ethan_workflow_next` | 推进工作流到下一步(传入摘要,返回下一步提示词)|
342
382
  | `ethan_workflow_status` | 查询工作流进度与当前步骤 |
@@ -346,6 +386,14 @@ Ethan 每次启动都会静默检查 npm 最新版本(24h 缓存,不阻塞 C
346
386
  | `ethan_git_review` | 读取分支 diff → Blocker/Major/Minor Review 提示词 |
347
387
  | `ethan_autopilot` | 生成 Pipeline 超级 prompt(自动链式执行)|
348
388
  | `ethan_context_snapshot` | 采集项目快照(技术栈/git/目录树,TTL 30min 缓存)|
389
+ | `ethan_spec_proposal` | 生成 OpenSpec 变更提案包(v1.11.0 新增)|
390
+ | `ethan_spec_review` | 意图级代��审查(对比 spec delta 与代码实现,v1.11.0 新增)|
391
+ | `ethan_spec_validate` | 校验 OpenSpec 结构(REQ 编号/GIVEN-WHEN-THEN,v1.11.0 新增)|
392
+ | `ethan_dora` | 统计 DORA 四键指标(部署频率/变更失败率/MTTR/前置时间,v1.12.0 新增)|
393
+ | `ethan_pr_analytics` | PR 健康度分析(大小分布/热点文件,v1.12.0 新增)|
394
+ | `ethan_postmortem` | 生成故障复盘提示词(v1.12.0 新增)|
395
+ | `ethan_scaffold` | 黄金路径脚手架提示词(v1.12.0 新增)|
396
+ | `ethan_compliance` | 生成合规证据收集清单(soc2/gdpr/iso27001,v1.12.0 新增)|
349
397
 
350
398
  ---
351
399
 
@@ -374,9 +422,9 @@ Chrome/Edge Manifest V3 扩展,将 Ethan 带入任意网页。
374
422
  2. VS Code → Extensions → `...` → Install from VSIX
375
423
 
376
424
  **功能:**
377
- - **Skill 侧边栏树**:按分类分组展示 14 个 Skill,点击直接运行
378
- - **Pipeline 侧边栏树**:展示 6 条 Pipeline,点击查看详情
379
- - **23 个 @ethan 斜杠命令**:在 Copilot Chat 中使用 `@ethan /需求理解`、`@ethan /commit` 等
425
+ - **Skill 侧边栏树**:按分类分组展示 36 个 Skill,点击直接运行
426
+ - **Pipeline 侧边栏树**:展示 10 条 Pipeline,点击查看详情
427
+ - **36 个 @ethan 斜杠命令**:在 Copilot Chat 中使用 `@ethan /需求理解`、`@ethan /commit` 等
380
428
  - **20 个命令面板命令**:包含 Git、开发工具、记忆、估算、复盘等全系列
381
429
  - **状态栏快捷按钮**:底部状态栏 `⚡ Ethan`,单击打开 Skill 选择器
382
430
 
@@ -421,19 +469,19 @@ src/skills/*.ts ──→ [build-rules.ts] ──→ rules/cursor/smart-flow
421
469
  ```
422
470
  ethan-skill/
423
471
  ├── src/
424
- │ ├── skills/ # 单一数据源(24 Skill + pipeline 定义)
472
+ │ ├── skills/ # 单一数据源(36 Skill + pipeline 定义)
425
473
  │ │ ├── types.ts # SkillDefinition、Platform、PipelineDefinition
426
474
  │ │ ├── index.ts # ALL_SKILLS 导出
427
- │ │ ├── pipeline.ts # PIPELINES(6条)+ resolvePipeline()
428
- │ │ └── 01~24-*.ts # 各 Skill 定义(含 category、nextSkill)
429
- │ ├── cli/ # 40+ CLI 命令入口
475
+ │ │ ├── pipeline.ts # PIPELINES(10条)+ resolvePipeline()
476
+ │ │ └── 01~36-*.ts # 各 Skill 定义(含 category、nextSkill)
477
+ │ ├── cli/ # 60+ CLI 命令入口
430
478
  │ │ ├── index.ts # Commander.js 主程序
431
479
  │ │ └── config.ts # .ethanrc.json 读写
432
480
  │ ├── git/ # Git 工具函数
433
481
  │ │ └── utils.ts # getStagedDiff / getBranchDiff / truncateDiff 等
434
482
  │ ├── workflow/ # 有状态工作流引擎
435
483
  │ │ └── state.ts # 会话持久化、Named Sessions、步骤推进
436
- │ ├── mcp/ # MCP Server(23 个工具)
484
+ │ ├── mcp/ # MCP Server(28 个工具)
437
485
  │ │ └── server.ts
438
486
  │ ├── router/ # 触发词路由
439
487
  │ ├── templates/ # 各平台渲染模板(11 个 case,强制穷举)
@@ -444,7 +492,7 @@ ethan-skill/
444
492
  │ ├── server/ # Web UI Dashboard
445
493
  │ └── vscode/ # VS Code 扩展
446
494
  ├── browser-extension/ # Chrome/Edge MV3 扩展
447
- ├── vscode-extension/ # VS Code 扩展 manifest(20 命令、23 斜杠命令)
495
+ ├── vscode-extension/ # VS Code 扩展 manifest(20 命令、36 斜杠命令)
448
496
  ├── rules/ # 构建产物,11 个平台(提交到仓库)
449
497
  ├── docs/ # 官网(GitHub Pages)
450
498
  ├── scripts/build/ # 构建脚本(build-rules.ts / build-vscode.ts)
@@ -504,6 +552,10 @@ npm run test:coverage # 覆盖率报告
504
552
 
505
553
  | 版本 | 主要变更 |
506
554
  |------|---------|
555
+ | **v1.14.0** | 新增 3 个专业化 Agent(qa/security/data),内置 Agent 5 → 8;新增 4 种协作模式(`--mode sequential/parallel/review-loop/consensus`);新增 `ethan agent new` 交互式创建自定义 Agent;新增 MCP 工具 `ethan_agent_list/show`,MCP 工具 28 → 30 |
556
+ | **v1.13.0** | Multi-Agent 编排系统(`src/agents/`);5 个内置角色 Agent(architect/coder/reviewer/devops/pm);新增 `ethan agent list/show/run` CLI;新增 MCP 工具 `ethan_agent_orchestrate`;MCP 工具 27 → 28;新增宣传落地页 `docs/landing.html` |
557
+ | **v1.12.0** | 新增 10 个 Skill(技术债/Mock服务/数据迁移/LLM设计/威胁建模/绿色编码/服务目录/移动审查/数据管道/ML实验);Skills 26 → 36;新增 3 条 Pipeline(bugfix/security-audit/open-source-release);新增 19 个分析 CLI 命令(diff/deps/dora/adr/mermaid/i18n/onboard/migrate/postmortem/decision-log/knowledge/oss/prompt-lib/scaffold/benchmark/sync/compliance 等);MCP 工具 22 → 27 |
558
+ | **v1.11.0** | 新增 2 个 Skill(Spec Proposal/Spec Review);新增 OpenSpec 工具链(spec init/list/show/validate/proposal/review);新增 spec-workflow Pipeline;MCP 新增 ethan_spec_proposal/review/validate 3 个工具 |
507
559
  | **v1.10.3** | 修正 CodeBuddy slash 命令安装目录为 `.codebuddy/commands/`,生成 36 个独立命令文件(同 Claude Code 模式) |
508
560
  | **v1.10.2** | Claude Code 工作流 Slash 命令改为动态注入(`$(!ethan commit --no-copy)` bash 替换),执行时自动读取 git diff / 项目上下文并注入对话,无需手动复制粘贴 |
509
561
  | **v1.10.1** | `ethan slash` 新增 12 个工作流 Slash 命令(commit/review/pr/standup/changelog/workflow-start/done/status/auto/explain/test-case/estimate)|
@@ -0,0 +1,14 @@
1
+ /**
2
+ * agents/index.ts
3
+ * 导出活跃 Agent 列表(内置 + 自定义)
4
+ */
5
+ export { BUILT_IN_AGENTS, buildSkillRouting, getAgentsForPipeline } from './presets';
6
+ export { buildMultiAgentPrompt } from './orchestrator';
7
+ export type { AgentDefinition, AgentOrchestrationOptions } from './types';
8
+ import type { AgentDefinition } from './types';
9
+ /**
10
+ * 获取所有活跃 Agent(内置 + 用户自定义 .ethan/agents/)
11
+ * 自定义 Agent 同 id 覆盖内置 Agent
12
+ */
13
+ export declare function getActiveAgents(cwd?: string): AgentDefinition[];
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAI1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE,CAc/D"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /**
3
+ * agents/index.ts
4
+ * 导出活跃 Agent 列表(内置 + 自定义)
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.buildMultiAgentPrompt = exports.getAgentsForPipeline = exports.buildSkillRouting = exports.BUILT_IN_AGENTS = void 0;
8
+ exports.getActiveAgents = getActiveAgents;
9
+ var presets_1 = require("./presets");
10
+ Object.defineProperty(exports, "BUILT_IN_AGENTS", { enumerable: true, get: function () { return presets_1.BUILT_IN_AGENTS; } });
11
+ Object.defineProperty(exports, "buildSkillRouting", { enumerable: true, get: function () { return presets_1.buildSkillRouting; } });
12
+ Object.defineProperty(exports, "getAgentsForPipeline", { enumerable: true, get: function () { return presets_1.getAgentsForPipeline; } });
13
+ var orchestrator_1 = require("./orchestrator");
14
+ Object.defineProperty(exports, "buildMultiAgentPrompt", { enumerable: true, get: function () { return orchestrator_1.buildMultiAgentPrompt; } });
15
+ const presets_2 = require("./presets");
16
+ const custom_agent_loader_1 = require("../loader/custom-agent-loader");
17
+ /**
18
+ * 获取所有活跃 Agent(内置 + 用户自定义 .ethan/agents/)
19
+ * 自定义 Agent 同 id 覆盖内置 Agent
20
+ */
21
+ function getActiveAgents(cwd) {
22
+ const custom = (0, custom_agent_loader_1.loadCustomAgents)(cwd ?? process.cwd());
23
+ if (custom.length === 0)
24
+ return presets_2.BUILT_IN_AGENTS;
25
+ const merged = [...presets_2.BUILT_IN_AGENTS];
26
+ for (const ca of custom) {
27
+ const idx = merged.findIndex((a) => a.id === ca.id);
28
+ if (idx >= 0) {
29
+ merged[idx] = ca; // override
30
+ }
31
+ else {
32
+ merged.push(ca);
33
+ }
34
+ }
35
+ return merged;
36
+ }
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAcH,0CAcC;AA1BD,qCAAqF;AAA5E,0GAAA,eAAe,OAAA;AAAE,4GAAA,iBAAiB,OAAA;AAAE,+GAAA,oBAAoB,OAAA;AACjE,+CAAuD;AAA9C,qHAAA,qBAAqB,OAAA;AAG9B,uCAA4C;AAC5C,uEAAiE;AAGjE;;;GAGG;AACH,SAAgB,eAAe,CAAC,GAAY;IAC1C,MAAM,MAAM,GAAG,IAAA,sCAAgB,EAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,yBAAe,CAAC;IAEhD,MAAM,MAAM,GAAG,CAAC,GAAG,yBAAe,CAAC,CAAC;IACpC,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Multi-Agent 编排器
3
+ * 将 Pipeline 的步骤分配给不同 Agent,生成协作式超级 Prompt
4
+ * 执行模型:Prompt 生成(粘贴到 AI 编辑器执行,零 API 成本)
5
+ */
6
+ import type { PipelineDefinition, SkillDefinition } from '../skills/types';
7
+ import type { AgentDefinition, AgentOrchestrationOptions } from './types';
8
+ /** 生成 Multi-Agent 编排超级 Prompt */
9
+ export declare function buildMultiAgentPrompt(pipeline: PipelineDefinition, skills: SkillDefinition[], agents: AgentDefinition[], options: AgentOrchestrationOptions): string;
10
+ //# sourceMappingURL=orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/agents/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAa1E,iCAAiC;AACjC,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,EAAE,eAAe,EAAE,EACzB,MAAM,EAAE,eAAe,EAAE,EACzB,OAAO,EAAE,yBAAyB,GACjC,MAAM,CA2BR"}