@haaaiawd/anws 1.0.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/README.md +96 -0
- package/bin/cli.js +76 -0
- package/lib/copy.js +38 -0
- package/lib/index.js +8 -0
- package/lib/init.js +139 -0
- package/lib/manifest.js +53 -0
- package/lib/output.js +74 -0
- package/lib/update.js +85 -0
- package/package.json +36 -0
- package/templates/.agent/rules/agents.md +90 -0
- package/templates/.agent/skills/build-inspector/SKILL.md +83 -0
- package/templates/.agent/skills/complexity-guard/SKILL.md +71 -0
- package/templates/.agent/skills/complexity-guard/references/anti_patterns.md +21 -0
- package/templates/.agent/skills/concept-modeler/SKILL.md +112 -0
- package/templates/.agent/skills/concept-modeler/prompts/GLOSSARY_PROMPT.md +40 -0
- package/templates/.agent/skills/concept-modeler/references/ENTITY_EXTRACTION_PROMPT.md +299 -0
- package/templates/.agent/skills/concept-modeler/scripts/glossary_gen.py +66 -0
- package/templates/.agent/skills/git-forensics/SKILL.md +74 -0
- package/templates/.agent/skills/git-forensics/references/ANALYSIS_METHODOLOGY.md +193 -0
- package/templates/.agent/skills/git-forensics/scripts/git_forensics.py +615 -0
- package/templates/.agent/skills/git-forensics/scripts/git_hotspots.py +118 -0
- package/templates/.agent/skills/report-template/SKILL.md +88 -0
- package/templates/.agent/skills/report-template/references/REPORT_TEMPLATE.md +100 -0
- package/templates/.agent/skills/runtime-inspector/SKILL.md +93 -0
- package/templates/.agent/skills/spec-writer/SKILL.md +58 -0
- package/templates/.agent/skills/spec-writer/references/prd_template.md +174 -0
- package/templates/.agent/skills/system-architect/SKILL.md +620 -0
- package/templates/.agent/skills/system-architect/references/rfc_template.md +59 -0
- package/templates/.agent/skills/system-designer/SKILL.md +439 -0
- package/templates/.agent/skills/system-designer/references/system-design-template.md +533 -0
- package/templates/.agent/skills/task-planner/SKILL.md +474 -0
- package/templates/.agent/skills/task-planner/references/TASK_TEMPLATE.md +133 -0
- package/templates/.agent/skills/tech-evaluator/SKILL.md +135 -0
- package/templates/.agent/skills/tech-evaluator/references/ADR_TEMPLATE.md +68 -0
- package/templates/.agent/workflows/blueprint.md +185 -0
- package/templates/.agent/workflows/challenge.md +467 -0
- package/templates/.agent/workflows/change.md +294 -0
- package/templates/.agent/workflows/craft.md +626 -0
- package/templates/.agent/workflows/design-system.md +497 -0
- package/templates/.agent/workflows/explore.md +307 -0
- package/templates/.agent/workflows/forge.md +354 -0
- package/templates/.agent/workflows/genesis.md +265 -0
- package/templates/.agent/workflows/scout.md +130 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tech-evaluator
|
|
3
|
+
description: 评估技术栈选项,使用加权决策矩阵和 ATAM 方法论产出架构决策记录 (ADR)。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 技术评估师手册 (The Tech Evaluator's Manual)
|
|
7
|
+
|
|
8
|
+
> "没有最好的技术栈,只有最适合的技术栈。" —— ThoughtWorks Technology Radar
|
|
9
|
+
|
|
10
|
+
本技能基于 **SEI 的 ATAM (Architecture Tradeoff Analysis Method)** 和 **加权决策矩阵** 方法论。
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## ⚠️ 强制深度思考
|
|
15
|
+
|
|
16
|
+
> [!IMPORTANT]
|
|
17
|
+
> 在进行评估之前,你**必须**调用 `sequential thinking` 工具,视复杂情况进行 **3—7 步**推理。
|
|
18
|
+
> 思考内容例如:
|
|
19
|
+
> 1. "用户的核心需求是什么?必须支持哪些场景?"
|
|
20
|
+
> 2. "团队目前熟悉什么技术?学习新技术的时间预算是多少?"
|
|
21
|
+
> 3. "预算约束是什么?云服务成本敏感吗?"
|
|
22
|
+
> 4. "这个项目预期规模是什么?需要支持多少并发用户?"
|
|
23
|
+
> 5. "有没有合规要求(GDPR、等保)影响技术选择?"
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## ⚡ 任务目标
|
|
28
|
+
|
|
29
|
+
产出 **ADR (Architecture Decision Record)** 文档,记录技术栈决策及其理由。
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 🧭 评估流程 (The Evaluation)
|
|
34
|
+
|
|
35
|
+
### 第一步:收集约束 (Gather Constraints)
|
|
36
|
+
|
|
37
|
+
**必须从用户处获取**:
|
|
38
|
+
- **功能需求**: 核心功能列表
|
|
39
|
+
- **非功能需求**: 性能目标、可用性要求、安全等级
|
|
40
|
+
- **团队情况**: 人数、技能栈、学习意愿
|
|
41
|
+
- **预算**: 开发预算、运维预算、时间预算
|
|
42
|
+
- **特殊约束**: 合规要求、现有系统集成、客户指定技术
|
|
43
|
+
|
|
44
|
+
### 第二步:识别候选技术栈 (Identify Candidates)
|
|
45
|
+
|
|
46
|
+
**2025 主流技术栈参考**:
|
|
47
|
+
|
|
48
|
+
| 场景 | 推荐栈 | 备选 |
|
|
49
|
+
|------|--------|------|
|
|
50
|
+
| **Web 全栈** | Next.js + TypeScript | Nuxt, SvelteKit |
|
|
51
|
+
| **后端 API** | Go / Rust / Node.js | Python FastAPI, Java Spring |
|
|
52
|
+
| **桌面应用** | Tauri (Rust + Web) | Electron, Flutter Desktop |
|
|
53
|
+
| **移动应用** | React Native / Flutter | Swift/Kotlin 原生 |
|
|
54
|
+
| **AI/ML** | Python + PyTorch/TensorFlow | Rust (Candle), Julia |
|
|
55
|
+
| **数据密集** | PostgreSQL + TimescaleDB | ClickHouse, DuckDB |
|
|
56
|
+
|
|
57
|
+
### 第三步:12 维度评估 (12-Dimension Evaluation)
|
|
58
|
+
|
|
59
|
+
使用以下矩阵对每个候选栈打分 (1-5 分):
|
|
60
|
+
|
|
61
|
+
| 维度 | 权重建议 | 评估问题 |
|
|
62
|
+
|------|:--------:|---------|
|
|
63
|
+
| **需求匹配** | ★★★★★ | 能否实现所有核心功能? |
|
|
64
|
+
| **扩展性** | ★★★★ | 能否支撑 10x 增长? |
|
|
65
|
+
| **性能** | ★★★★ | 能否满足响应时间/吞吐量要求? |
|
|
66
|
+
| **安全性** | ★★★★ | 内置安全特性?合规支持? |
|
|
67
|
+
| **团队技能** | ★★★★★ | 团队熟悉程度?学习曲线? |
|
|
68
|
+
| **人才市场** | ★★★ | 招人容易吗? |
|
|
69
|
+
| **开发速度** | ★★★★ | 能否快速迭代? |
|
|
70
|
+
| **TCO (总成本)** | ★★★★ | 开发+运维+许可证成本? |
|
|
71
|
+
| **社区生态** | ★★★ | 库/工具丰富度?问题解答速度? |
|
|
72
|
+
| **长期维护** | ★★★ | 技术寿命?LTS 支持? |
|
|
73
|
+
| **集成能力** | ★★★ | 与现有系统/第三方服务集成? |
|
|
74
|
+
| **AI 就绪** | ★★ | 集成 AI/LLM 的便利性? |
|
|
75
|
+
|
|
76
|
+
### 第四步:权衡分析 (Trade-off Analysis)
|
|
77
|
+
|
|
78
|
+
使用 **ATAM 方法**:
|
|
79
|
+
1. 识别**质量属性场景** (如 "1000 并发用户时响应 < 200ms")
|
|
80
|
+
2. 评估每个候选栈对场景的**支持程度**
|
|
81
|
+
3. 识别**权衡点** (如 "选 Go 性能好但团队需学习")
|
|
82
|
+
4. 识别**风险点** (如 "选新框架可能踩坑")
|
|
83
|
+
|
|
84
|
+
### 第五步:产出 ADR (Generate ADR)
|
|
85
|
+
|
|
86
|
+
你**必须**使用 `write_to_file` 保存到 `genesis/v{N}/03_ADR/ADR_001_TECH_STACK.md`。
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 📤 ADR 输出模板
|
|
91
|
+
|
|
92
|
+
```markdown
|
|
93
|
+
# ADR-001: 技术栈选择
|
|
94
|
+
|
|
95
|
+
## 状态
|
|
96
|
+
Accepted / Proposed / Deprecated
|
|
97
|
+
|
|
98
|
+
## 背景
|
|
99
|
+
[项目背景和约束描述]
|
|
100
|
+
|
|
101
|
+
## 决策
|
|
102
|
+
[选择的技术栈及核心理由]
|
|
103
|
+
|
|
104
|
+
## 候选方案对比
|
|
105
|
+
|
|
106
|
+
| 候选 | 总分 | 优势 | 劣势 |
|
|
107
|
+
|------|------|------|------|
|
|
108
|
+
| 方案 A | 42/60 | ... | ... |
|
|
109
|
+
| 方案 B | 38/60 | ... | ... |
|
|
110
|
+
|
|
111
|
+
## 权衡点
|
|
112
|
+
- [权衡 1]
|
|
113
|
+
- [权衡 2]
|
|
114
|
+
|
|
115
|
+
## 后果
|
|
116
|
+
- 正面: [...]
|
|
117
|
+
- 负面: [...]
|
|
118
|
+
- 需要的后续行动: [...]
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 🛡️ 老师傅守则
|
|
124
|
+
|
|
125
|
+
1. **"无聊"技术优先**: 除非有充分理由,优先选择成熟稳定的技术。
|
|
126
|
+
2. **创新预算有限**: 每个项目只有 1-2 个"创新点"配额,其余用"无聊"技术。
|
|
127
|
+
3. **团队能力为王**: 再好的技术,团队不会用也是白搭。
|
|
128
|
+
4. **TCO 不只是钱**: 时间成本、认知成本也是成本。
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 🧰 工具箱
|
|
133
|
+
|
|
134
|
+
* `references/ADR_TEMPLATE.md`: ADR 模板
|
|
135
|
+
* `references/TECH_RADAR_2025.md`: 2025 技术雷达参考
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# ADR 模板 (Architecture Decision Record)
|
|
2
|
+
|
|
3
|
+
## 用途
|
|
4
|
+
此模板用于记录重大架构决策。每个 ADR 应专注于**单一决策**。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 模板
|
|
9
|
+
|
|
10
|
+
```markdown
|
|
11
|
+
# ADR-[编号]: [决策标题]
|
|
12
|
+
|
|
13
|
+
## 状态
|
|
14
|
+
[Proposed | Accepted | Deprecated | Superseded by ADR-XXX]
|
|
15
|
+
|
|
16
|
+
## 日期
|
|
17
|
+
[YYYY-MM-DD]
|
|
18
|
+
|
|
19
|
+
## 背景
|
|
20
|
+
[描述驱动此决策的问题或情况]
|
|
21
|
+
- 项目需求是什么?
|
|
22
|
+
- 有什么约束?
|
|
23
|
+
- 利益相关者的期望是什么?
|
|
24
|
+
|
|
25
|
+
## 决策驱动因素
|
|
26
|
+
[列出影响决策的关键因素]
|
|
27
|
+
- 因素 1: ...
|
|
28
|
+
- 因素 2: ...
|
|
29
|
+
|
|
30
|
+
## 候选方案
|
|
31
|
+
|
|
32
|
+
### 方案 A: [名称]
|
|
33
|
+
- **描述**: [简要描述]
|
|
34
|
+
- **优点**:
|
|
35
|
+
- ...
|
|
36
|
+
- **缺点**:
|
|
37
|
+
- ...
|
|
38
|
+
|
|
39
|
+
### 方案 B: [名称]
|
|
40
|
+
[同上格式]
|
|
41
|
+
|
|
42
|
+
## 决策
|
|
43
|
+
[明确陈述选择的方案及核心理由]
|
|
44
|
+
|
|
45
|
+
## 后果
|
|
46
|
+
|
|
47
|
+
### 正面
|
|
48
|
+
- ...
|
|
49
|
+
|
|
50
|
+
### 负面
|
|
51
|
+
- ...
|
|
52
|
+
|
|
53
|
+
### 需要的后续行动
|
|
54
|
+
- ...
|
|
55
|
+
|
|
56
|
+
## 参考资料
|
|
57
|
+
- [链接或引用]
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 最佳实践
|
|
63
|
+
|
|
64
|
+
1. **保持简洁**: ADR 应在几分钟内可读完
|
|
65
|
+
2. **聚焦单一决策**: 复杂决策拆分为多个 ADR
|
|
66
|
+
3. **不可变**: 一旦接受,视为历史记录;如需更改,创建新 ADR
|
|
67
|
+
4. **版本控制**: 将 ADR 与代码一起存储在 Git 中
|
|
68
|
+
5. **团队协作**: 在最终确定前收集团队反馈
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 将架构设计拆解为可执行的 WBS 任务清单,每个任务带验收标准和验证说明,生成 Mermaid 依赖图,前提是已完成 /genesis。
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /blueprint
|
|
6
|
+
|
|
7
|
+
<phase_context>
|
|
8
|
+
你是 **TASK ARCHITECT (任务规划师)**。
|
|
9
|
+
|
|
10
|
+
**核心使命**:
|
|
11
|
+
读取最新的架构版本 (`genesis/v{N}`),将其拆解为**可执行的任务清单**。
|
|
12
|
+
|
|
13
|
+
**核心原则**:
|
|
14
|
+
- **验证驱动** - 每个任务必须有验证说明
|
|
15
|
+
- **需求追溯** - 每个任务关联 [REQ-XXX]
|
|
16
|
+
- **适度粒度** - 每个任务 2-8 小时工作量
|
|
17
|
+
|
|
18
|
+
**Output Goal**: `genesis/v{N}/05_TASKS.md`
|
|
19
|
+
</phase_context>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## ⚠️ CRITICAL 前提条件
|
|
24
|
+
|
|
25
|
+
> [!IMPORTANT]
|
|
26
|
+
> **Blueprint 必须基于特定版本的架构**
|
|
27
|
+
>
|
|
28
|
+
> 你必须先找到最新的 Architecture Overview,才能拆解任务。
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Step 0: 定位架构版本 (Locate Architecture)
|
|
33
|
+
|
|
34
|
+
**目标**: 找到 Source of Truth。
|
|
35
|
+
|
|
36
|
+
1. **扫描版本**:
|
|
37
|
+
扫描 `genesis/` 目录,找到最新版本号 `v{N}`
|
|
38
|
+
2. **确定最新版本**:
|
|
39
|
+
- 找到数字最大的文件夹 `v{N}` (例如 `v3`)。
|
|
40
|
+
- **TARGET_DIR** = `genesis/v{N}`。
|
|
41
|
+
|
|
42
|
+
3. **检查必需文件**:
|
|
43
|
+
- [ ] `{TARGET_DIR}/01_PRD.md` 存在
|
|
44
|
+
- [ ] `{TARGET_DIR}/02_ARCHITECTURE_OVERVIEW.md` 存在
|
|
45
|
+
|
|
46
|
+
4. **检查可选文件** (如缺失则提示):
|
|
47
|
+
- [ ] `{TARGET_DIR}/04_SYSTEM_DESIGN/` 存在
|
|
48
|
+
- 如缺失: 提示 "建议先运行 `/design-system` 为每个系统生成详细设计。跳过此步可能导致任务粒度过粗。"
|
|
49
|
+
|
|
50
|
+
5. **如果必需文件缺失**: 报错并提示运行 `/genesis` 更新该版本。
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Step 1: 加载设计文档
|
|
55
|
+
|
|
56
|
+
**目标**: 从 **`{TARGET_DIR}`** 加载文档。
|
|
57
|
+
|
|
58
|
+
1. **读取 Architecture**: 读取 `{TARGET_DIR}/02_ARCHITECTURE_OVERVIEW.md`
|
|
59
|
+
2. **读取 PRD**: 读取 `{TARGET_DIR}/01_PRD.md`
|
|
60
|
+
3. **读取 ADRs**: 扫描 `{TARGET_DIR}/03_ADR/` 目录
|
|
61
|
+
4. **调用技能**: `task-planner`
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Step 2: 任务拆解 (Task Decomposition)
|
|
66
|
+
|
|
67
|
+
**目标**: 使用 WBS 方法拆解任务。
|
|
68
|
+
|
|
69
|
+
> [!IMPORTANT]
|
|
70
|
+
> **任务格式要求** (CRITICAL):
|
|
71
|
+
> 每个 Level 3 任务必须包含以下字段。
|
|
72
|
+
|
|
73
|
+
### 任务格式模板
|
|
74
|
+
|
|
75
|
+
```markdown
|
|
76
|
+
- [ ] **T{X}.{Y}.{Z}** [REQ-XXX]: 任务标题
|
|
77
|
+
- **描述**: 具体要做什么
|
|
78
|
+
- **输入**: 依赖的文件/接口
|
|
79
|
+
- **输出**: 产出的文件/组件
|
|
80
|
+
- **验收标准**:
|
|
81
|
+
- Given [前置条件]
|
|
82
|
+
- When [执行动作]
|
|
83
|
+
- Then [预期结果]
|
|
84
|
+
- **验证说明**: [如何检查完成,检查什么]
|
|
85
|
+
- **估时**: Xh
|
|
86
|
+
- **依赖**: T{A}.{B}.{C} (如有)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 验证说明格式指南
|
|
90
|
+
|
|
91
|
+
> [!IMPORTANT]
|
|
92
|
+
> **验证说明**描述"如何确认任务完成",而非具体命令。
|
|
93
|
+
> AI 执行任务时根据说明自行确定检查方式。
|
|
94
|
+
|
|
95
|
+
**示例**:
|
|
96
|
+
| 任务类型 | 验证说明示例 |
|
|
97
|
+
|---------|-------------|
|
|
98
|
+
| 前端组件 | 检查组件是否正确渲染;确认交互逻辑符合预期 |
|
|
99
|
+
| API 端点 | 调用接口确认返回正确格式;检查错误处理 |
|
|
100
|
+
| 数据库 Schema | 确认 Migration 成功执行;验证数据类型正确 |
|
|
101
|
+
| 配置文件 | 启动服务确认配置生效;检查环境变量读取 |
|
|
102
|
+
| 单元测试 | 运行测试套件确认全部通过 |
|
|
103
|
+
| 文档 | 阅读确认内容完整准确 |
|
|
104
|
+
|
|
105
|
+
**输出路径**: `{TARGET_DIR}/05_TASKS.md`
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Step 3: 依赖分析 (Dependency Analysis)
|
|
110
|
+
|
|
111
|
+
**目标**: 生成 Mermaid 依赖图。
|
|
112
|
+
|
|
113
|
+
```mermaid
|
|
114
|
+
graph TD
|
|
115
|
+
T1.1.1[初始化项目] --> T2.1.1[实现API]
|
|
116
|
+
T2.1.1 --> T3.1.1[前端集成]
|
|
117
|
+
T1.2.1[数据库Schema] --> T2.1.1
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**输出**: 插入到 `{TARGET_DIR}/05_TASKS.md` 开头。
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Step 4: 复杂度审计
|
|
125
|
+
|
|
126
|
+
调用 `complexity-guard` 确保:
|
|
127
|
+
- 单个任务 ≤ 8 小时
|
|
128
|
+
- 依赖关系不超过 5 层
|
|
129
|
+
- 无循环依赖
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Step 5: 生成文档
|
|
134
|
+
|
|
135
|
+
**目标**: 保存最终的任务清单,并**更新 AGENTS.md**。
|
|
136
|
+
|
|
137
|
+
**目标**: 保存最终的任务清单,并**更新 .agent/rules/agents.md**。
|
|
138
|
+
|
|
139
|
+
1. **保存**: 将内容保存到 `genesis/v{N}/05_TASKS.md`
|
|
140
|
+
2. **验证**: 确保文件包含所有任务、验收标准和依赖图。
|
|
141
|
+
3. **更新 .agent/rules/agents.md "当前状态"**:
|
|
142
|
+
- 活动任务清单: `genesis/v{N}/05_TASKS.md`
|
|
143
|
+
- 待办任务数: `{X}` (计算 total tasks)
|
|
144
|
+
- 最近一次更新: `{Today}`
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 检查清单
|
|
149
|
+
- ✅ 05_TASKS.md 是否包含所有 WBS 任务?
|
|
150
|
+
- ✅ 每个任务是否有 Context 和 Acceptance Criteria?
|
|
151
|
+
- ✅ 是否生成了 Mermaid 依赖图?
|
|
152
|
+
- ✅ 已更新 .agent/rules/agents.md?
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Step 6: 最终确认
|
|
157
|
+
|
|
158
|
+
**展示统计**:
|
|
159
|
+
```markdown
|
|
160
|
+
✅ Blueprint 阶段完成!
|
|
161
|
+
|
|
162
|
+
📊 任务统计:
|
|
163
|
+
- 总任务数: {N}
|
|
164
|
+
- P0 任务: {X}
|
|
165
|
+
- P1 任务: {Y}
|
|
166
|
+
- P2 任务: {Z}
|
|
167
|
+
- 总预估工时: {T}h
|
|
168
|
+
|
|
169
|
+
📁 产出: {TARGET_DIR}/05_TASKS.md
|
|
170
|
+
|
|
171
|
+
📋 下一步行动:
|
|
172
|
+
1. 按依赖顺序执行 P0 任务
|
|
173
|
+
2. 每完成一个任务,标记 [x] 并运行验证
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
<completion_criteria>
|
|
179
|
+
- ✅ 定位到最新架构版本 `v{N}`
|
|
180
|
+
- ✅ 任务清单 `05_TASKS.md` 已生成
|
|
181
|
+
- ✅ 每个 Level 3 任务包含验证说明
|
|
182
|
+
- ✅ 生成了 Mermaid 依赖图
|
|
183
|
+
- ✅ 已更新 .agent/rules/agents.md
|
|
184
|
+
- ✅ 用户已确认
|
|
185
|
+
</completion_criteria>
|