@dtt_siye/atool 1.3.0 → 1.3.1
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/lib/install-skills.sh +16 -0
- package/lib/knowledge-graph.sh +483 -81
- package/lib/pre-scan.sh +70 -5
- package/package.json +1 -1
- package/skills/project-analyze/SKILL.md +34 -15
- package/skills/project-analyze/phases/phase2-understand.md +7 -1
- package/skills/project-analyze/phases/phase2.5-refine.md +284 -0
- package/skills/project-analyze/phases/phase4-synthesize.md +100 -119
- package/skills/project-analyze/phases/phase5-export.md +78 -32
- package/skills/project-analyze/prompts/understand-agent.md +17 -0
- package/skills/project-analyze/rules/android.md +61 -260
- package/skills/project-analyze/rules/devops.md +61 -421
- package/skills/project-analyze/rules/generic.md +53 -221
- package/skills/project-analyze/rules/go.md +60 -275
- package/skills/project-analyze/rules/harmony.md +64 -237
- package/skills/project-analyze/rules/java.md +47 -485
- package/skills/project-analyze/rules/mobile-flutter.md +57 -292
- package/skills/project-analyze/rules/mobile-react-native.md +65 -262
- package/skills/project-analyze/rules/mobile-swift.md +58 -303
- package/skills/project-analyze/rules/python.md +50 -296
- package/skills/project-analyze/rules/rust-tauri.md +51 -217
- package/skills/project-analyze/rules/rust.md +50 -274
- package/skills/project-analyze/rules/web-nextjs.md +61 -335
- package/skills/project-analyze/rules/web-react.md +50 -272
- package/skills/project-analyze/rules/web-vue.md +58 -352
- package/skills/project-analyze/rules/web.md +55 -347
- package/skills/requirements-writer/SKILL.md +48 -1
- package/skills/software-architecture/SKILL.md +73 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Phase 4: SYNTHESIZE(主 Agent
|
|
1
|
+
# Phase 4: SYNTHESIZE(主 Agent — 聚合模式)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**目标**:以 Phase 2.5 精炼后的模块文档 + 知识图谱为数据源,**聚合**为项目级交付物。Phase 4 不再从零生成模块级内容,而是聚合、补全项目级独有文档、并生成 PROJECT-DELIVERABLE.md 总览入口。
|
|
4
4
|
|
|
5
5
|
## 前置检查
|
|
6
6
|
|
|
@@ -12,46 +12,40 @@
|
|
|
12
12
|
## 输入数据
|
|
13
13
|
|
|
14
14
|
- 模块文档(必须):`atool-analysis/modules/*/README.md`
|
|
15
|
+
- 模块精炼文档(必须):`atool-analysis/modules/*/prd.md`、`dev-guide.md`、`test-cases.md`
|
|
15
16
|
- 模块数据(必须):`.atool-docs/modules/*/data.json`
|
|
16
17
|
- 图谱数据(可选):`.atool-docs/knowledge-graph.json`
|
|
17
18
|
- 五维分析(可选):`.atool-docs/multi-dimensional-analysis.json`
|
|
18
19
|
|
|
19
20
|
## 步骤
|
|
20
21
|
|
|
21
|
-
### 4.1
|
|
22
|
+
### 4.1 聚合项目概述(overview/)
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
#### 4.1a summary.md(聚合)
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
从各模块 `README.md` 提取摘要,拼接为项目级概述:
|
|
27
|
+
- 第 1 段:Executive Summary(CEO/VP 可读级别,3-5 句)
|
|
28
|
+
- 第 2 段:模块清单表(模块名 / 职责 / 状态)
|
|
29
|
+
- 第 3 段:技术栈概述(从 `analysis-state.json` 的 `detected_stack` 提取)
|
|
26
30
|
|
|
27
|
-
|
|
28
|
-
1. **项目是做什么的**(2-4 句话,完全不用技术术语)
|
|
29
|
-
2. **核心业务能力**(5-8 项,用业务语言描述)
|
|
30
|
-
3. **关键数字**(模块数、接口数、核心实体数)
|
|
31
|
-
4. **健康度摘要**(如存在严重技术债,用业务影响语言描述,如"某模块修改风险较高,可能影响XX功能稳定性")
|
|
31
|
+
#### 4.1b architecture.md(聚合 + 项目级补全)
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
从各模块精炼后的 `dev-guide.md` 的架构章节聚合:
|
|
34
|
+
1. **全局架构图**(Mermaid graph TB):从各模块的组件设计章节提取模块名和依赖关系,生成项目级视图
|
|
35
|
+
2. **各模块架构摘要**:每个模块一段(模块名 / 分层 / 关键 ADR)
|
|
36
|
+
3. **ADR 汇总**:从各模块 dev-guide.md 提取所有 ADR,汇总为项目级 ADR 列表
|
|
37
|
+
4. **项目级补全**(引用 software-architecture A/E/F 模板结构):
|
|
38
|
+
- A. Architecture Summary:Business Context + Technical Drivers + Style Decision
|
|
39
|
+
- E. Risk and Trade-offs:项目级风险登记表
|
|
40
|
+
- F. Evolution Roadmap:分阶段演进表
|
|
34
41
|
|
|
35
|
-
#### 4.
|
|
42
|
+
#### 4.1c tech-stack.md(保持不变)
|
|
36
43
|
|
|
37
|
-
|
|
38
|
-
1. **系统架构图**(Mermaid graph TB 格式,同时写入 `diagrams/architecture.mmd`)
|
|
39
|
-
2. **各层/模块职责说明**
|
|
40
|
-
3. **核心数据流**(用 Mermaid sequence diagram,同时写入 `diagrams/data-flow.mmd`)
|
|
41
|
-
4. **关键设计决策**(ADR 格式:决策/选择/替代/理由)
|
|
44
|
+
从 Phase 1 pre-scan 数据聚合,无需精炼。
|
|
42
45
|
|
|
43
|
-
#### 4.
|
|
46
|
+
#### 4.1d getting-started.md(聚合)
|
|
44
47
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
#### 4.1d `getting-started.md` — 新人上手指南
|
|
48
|
-
|
|
49
|
-
**Zero-KT 标准**:新人仅凭此文档可完成:
|
|
50
|
-
1. **环境搭建**(前置依赖 + 安装命令)
|
|
51
|
-
2. **运行项目**(启动命令 + 验证成功的方式)
|
|
52
|
-
3. **理解主要业务流程**(3-5 个核心场景 walkthrough)
|
|
53
|
-
4. **添加第一个功能**(具体到哪个模块/文件/类,附代码模板)
|
|
54
|
-
5. **运行测试**(命令 + 预期结果)
|
|
48
|
+
从各模块 `dev-guide.md` 的快速启动部分聚合。
|
|
55
49
|
|
|
56
50
|
### 4.2 生成 Mermaid 图表(diagrams/)
|
|
57
51
|
|
|
@@ -120,49 +114,41 @@ Phase 3(1-3月): {长期优化}
|
|
|
120
114
|
#### 4.3c `recommendations.md`
|
|
121
115
|
可行动的 Top 10 改进建议。每项包含:问题描述、建议行动、预期收益、工作量。
|
|
122
116
|
|
|
123
|
-
### 4.4
|
|
124
|
-
|
|
125
|
-
创建 `atool-analysis/project/` 目录下 4 个文件:
|
|
126
|
-
|
|
127
|
-
#### 4.4a `project/prd.md` — 项目级 PRD(聚合视角)
|
|
128
|
-
|
|
129
|
-
从所有模块的 prd.md 聚合,生成项目级视角:
|
|
117
|
+
### 4.4 聚合项目级文档(project/)
|
|
130
118
|
|
|
131
|
-
|
|
132
|
-
2. **全局用户流**:跨模块的端到端用户旅程(Mermaid journey 格式,至少 3 个核心场景)
|
|
133
|
-
3. **功能矩阵**:模块 × 功能的交叉表(哪个模块提供哪些功能)
|
|
134
|
-
4. **非目标汇总**:整个项目明确不做的事
|
|
135
|
-
5. **Phased Rollout**:MVP → v1.1 → v2.0 路线图建议(基于技术债和功能完成度推断)
|
|
119
|
+
#### 4.4a project/prd.md(聚合)
|
|
136
120
|
|
|
137
|
-
|
|
121
|
+
从各模块精炼后的 `prd.md` 聚合为项目级 PRD:
|
|
122
|
+
1. **Executive Summary**:项目整体业务目标 + 成功标准
|
|
123
|
+
2. **功能矩阵**:模块 × 功能 交叉表
|
|
124
|
+
3. **NFR 汇总**:
|
|
125
|
+
- 从各模块 NFR-{MOD}-NNN 归纳生成 NFR-SYS-NNN(系统级)
|
|
126
|
+
- NFR-SYS-NNN 必须覆盖所有模块 NFR 的范围
|
|
127
|
+
4. **全局用户流**:Mermaid journey 图
|
|
128
|
+
5. **非目标汇总**:各模块非目标聚合
|
|
129
|
+
6. **Phased Rollout Roadmap**
|
|
138
130
|
|
|
139
|
-
#### 4.4b
|
|
131
|
+
#### 4.4b project/deployment.md(项目级独有)
|
|
140
132
|
|
|
141
|
-
|
|
133
|
+
Phase 4 主 agent 直接引用 software-architecture D 模板结构生成(不启动 sub-agent):
|
|
134
|
+
- 部署拓扑(Mermaid)
|
|
135
|
+
- 环境配置矩阵(dev/staging/prod)
|
|
136
|
+
- CI/CD 流程
|
|
137
|
+
- 可观测性表
|
|
138
|
+
- 回滚策略
|
|
139
|
+
- 扩缩容规则
|
|
142
140
|
|
|
143
|
-
|
|
144
|
-
2. **配置项清单**:从 config/env 文件提取,格式:`| 变量名 | 类型 | 默认值 | 必填 | 说明 |`
|
|
145
|
-
3. **启动命令**:dev/staging/production 三套(从 scripts/Makefile/docker-compose 提取)
|
|
146
|
-
4. **Docker 配置**(如有 Dockerfile):镜像构建 + 运行命令
|
|
147
|
-
5. **部署检查清单**:10 项 checkbox(数据库迁移/配置注入/健康检查/日志/监控/回滚准备...)
|
|
148
|
-
6. **回滚策略**:基于部署方式的回滚步骤
|
|
149
|
-
7. **健康检查接口**:从代码中的 /health /ready /live 端点提取
|
|
141
|
+
#### 4.4c project/testing-strategy.md(聚合 + 项目级补全)
|
|
150
142
|
|
|
151
|
-
|
|
143
|
+
Phase 4 主 agent 聚合各模块 `test-cases.md` + 补全:
|
|
144
|
+
- 模块级测试覆盖汇总
|
|
145
|
+
- 集成测试策略
|
|
146
|
+
- E2E 测试策略
|
|
147
|
+
- 性能测试策略
|
|
152
148
|
|
|
153
|
-
|
|
154
|
-
2. **覆盖率目标**:行覆盖/分支覆盖建议值
|
|
155
|
-
3. **关键路径测试场景**:从 `project/prd.md` 核心用户流推导的 E2E 场景
|
|
156
|
-
4. **自动化建议**:推荐测试框架 + 配置模板(基于技术栈,如 Jest/JUnit/pytest)
|
|
157
|
-
5. **测试数据策略**:种子数据/工厂模式建议
|
|
149
|
+
#### 4.4d project/runbook.md(聚合)
|
|
158
150
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
1. **常见故障排查**:`| 症状 | 可能原因 | 诊断命令 | 解决方案 |`(至少 5 个场景)
|
|
162
|
-
2. **监控指标建议**:API 延迟/错误率/内存/CPU/数据库连接池
|
|
163
|
-
3. **告警阈值建议**:每个指标的 warning/critical 阈值
|
|
164
|
-
4. **日志查看**:日志文件路径 + 常用查询命令(grep/jq)
|
|
165
|
-
5. **扩缩容指南**(如有容器化)
|
|
151
|
+
Phase 4 主 agent 聚合各模块 `dev-guide.md` 的运维相关章节。
|
|
166
152
|
|
|
167
153
|
### 4.5 生成安全和性能文档(quality/ 扩展)
|
|
168
154
|
|
|
@@ -197,64 +183,59 @@ OWASP Top 10 逐项检查,从所有 data.json 的 `security_issues` 聚合:
|
|
|
197
183
|
4. **并发处理**:线程池/连接池配置评估
|
|
198
184
|
5. **建议优化点**:Top 5 性能改进建议(按预期收益排序,每项包含:问题/影响/建议/预期收益)
|
|
199
185
|
|
|
200
|
-
### 4.6
|
|
201
|
-
|
|
202
|
-
> **执行命令(必须通过 Bash 工具):**
|
|
203
|
-
> ```bash
|
|
204
|
-
> DOCS_DIR="$(pwd)/.atool-docs"
|
|
205
|
-
> jq --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
|
|
206
|
-
> '.phases.phase4_synthesize = "completed" | .updated_at = $ts' \
|
|
207
|
-
> "$DOCS_DIR/analysis-state.json" > "$DOCS_DIR/analysis-state.json.tmp" \
|
|
208
|
-
> && mv "$DOCS_DIR/analysis-state.json.tmp" "$DOCS_DIR/analysis-state.json"
|
|
209
|
-
> echo "Phase 4 completed"
|
|
210
|
-
> ```
|
|
211
|
-
|
|
212
|
-
### 4.7 PRD 覆盖率检测
|
|
213
|
-
|
|
214
|
-
在所有文档生成完成后,检查模块级 PRD 的覆盖率:
|
|
215
|
-
|
|
216
|
-
**对每个 `atool-analysis/modules/{name}/prd.md`,检查是否包含以下关键要素**:
|
|
217
|
-
1. 用户故事(As a... I want...)— 搜索 "As a" 或 "用户故事"
|
|
218
|
-
2. 验收标准(AC-)— 搜索 "AC-" 或 "验收标准"
|
|
219
|
-
3. 按钮/交互定义 — 搜索 "按钮" 或 "输入字段" 或 "交互"
|
|
220
|
-
4. 字段校验规则 — 搜索 "校验" 或 "必填" 或 "validation"
|
|
221
|
-
5. 四种状态 — 搜索 "加载中" 或 "空数据" 或 "错误状态"
|
|
222
|
-
|
|
223
|
-
**覆盖率评分**:每个要素命中 = 20分,总分 0-100。
|
|
224
|
-
|
|
225
|
-
将评分写入 `analysis-state.json`:
|
|
226
|
-
```json
|
|
227
|
-
"prd_coverage": {
|
|
228
|
-
"average_score": 60,
|
|
229
|
-
"modules_below_70": ["order-service", "payment-service"],
|
|
230
|
-
"recommendation": "建议运行 /requirements-writer 补齐 PRD 深度"
|
|
231
|
-
}
|
|
232
|
-
```
|
|
186
|
+
### 4.6 NFR 一致性回扫
|
|
233
187
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
188
|
+
在 `project/prd.md` 生成 NFR-SYS-NNN 后,对所有模块的 prd.md 执行回扫:
|
|
189
|
+
|
|
190
|
+
1. 读取 `project/prd.md` 中的 NFR-SYS-NNN 列表
|
|
191
|
+
2. 对每个 `modules/*/prd.md`:
|
|
192
|
+
- 将 `[待系统级确认]` 替换为 `(≤ NFR-SYS-NNN)`(匹配对应类别:性能→性能,安全→安全,可用性→可用性)
|
|
193
|
+
- 如果模块 NFR 数值超出系统 NFR 范围,标注 `[⚠️ 超出系统级约束 NFR-SYS-NNN]`
|
|
194
|
+
3. 记录回扫结果到 `analysis-state.json`:`nfr_backscan.conflicts_count`
|
|
195
|
+
|
|
196
|
+
### 4.7 架构违反率检测
|
|
197
|
+
|
|
198
|
+
如果 `.atool-docs/knowledge-graph.json` 存在:
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
VIOLATIONS=$(jq '[.edges[] | select(.type == "layer_violation")] | length' .atool-docs/knowledge-graph.json)
|
|
202
|
+
TOTAL=$(jq '.edges | length' .atool-docs/knowledge-graph.json)
|
|
244
203
|
```
|
|
245
204
|
|
|
205
|
+
如果 `VIOLATIONS / TOTAL > 0.30`(>30%):
|
|
206
|
+
- 记录到 `analysis-state.json`:`arch_violation_rate`
|
|
207
|
+
- 在 Phase 5 完成摘要中建议:`⚠️ 架构层违反率 {rate}%(>30%),建议运行 /software-architecture 进行深度架构审查`
|
|
208
|
+
|
|
209
|
+
### 4.8 生成 PROJECT-DELIVERABLE.md
|
|
210
|
+
|
|
211
|
+
生成 `atool-analysis/PROJECT-DELIVERABLE.md` 总览入口文件。
|
|
212
|
+
|
|
213
|
+
结构(硬性):
|
|
214
|
+
|
|
215
|
+
1. **标题 + 元信息**:项目名、生成时间、分析深度、技术栈、模块数/精炼数/降级数
|
|
216
|
+
2. **执行摘要**:3-5 段项目级业务概述(CEO/VP 可读)
|
|
217
|
+
3. **文档导航**:
|
|
218
|
+
- 项目级文档表(PRD / 架构 / 部署 / 测试策略 / 运维手册,含相对链接)
|
|
219
|
+
- 模块级文档表(每个模块一行,含 PRD/架构/API/数据模型/测试用例链接 + 精炼状态 ✅/⚠️)
|
|
220
|
+
- 质量报告表(code-review / tech-debt / security-audit / performance-baseline)
|
|
221
|
+
4. **全局架构概览**:从 `overview/architecture.md` 内联 Mermaid 图
|
|
222
|
+
5. **功能矩阵**:从 `project/prd.md` 内联核心功能表
|
|
223
|
+
6. **精炼覆盖率报告**:每个模块的 PRD 覆盖率 + 架构完整度 + 精炼状态(从 `analysis-state.json` 的 `refine_status` 读取)
|
|
224
|
+
7. **后续操作建议**:降级模块补全 / code-review / project-query / software-architecture(如架构违反率 >30%)
|
|
225
|
+
|
|
246
226
|
## 完成条件
|
|
247
227
|
|
|
248
|
-
- `
|
|
249
|
-
- `
|
|
250
|
-
- `
|
|
251
|
-
- `
|
|
252
|
-
- `
|
|
253
|
-
- `
|
|
254
|
-
- `
|
|
255
|
-
-
|
|
256
|
-
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
-
|
|
228
|
+
- `overview/summary.md` 存在
|
|
229
|
+
- `overview/architecture.md` 存在且包含 Mermaid 图
|
|
230
|
+
- `project/prd.md` 存在且包含 NFR-SYS
|
|
231
|
+
- `project/deployment.md` 存在
|
|
232
|
+
- `project/testing-strategy.md` 存在
|
|
233
|
+
- `project/runbook.md` 存在
|
|
234
|
+
- `PROJECT-DELIVERABLE.md` 存在且包含所有模块链接
|
|
235
|
+
- NFR 一致性回扫已执行
|
|
236
|
+
- 更新 state:
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
jq '.phases.phase4_synthesize = "completed" | .deliverable_status.project_deliverable_md = "completed"' \
|
|
240
|
+
.atool-docs/analysis-state.json > tmp && mv tmp .atool-docs/analysis-state.json
|
|
241
|
+
```
|
|
@@ -101,7 +101,70 @@
|
|
|
101
101
|
> fi
|
|
102
102
|
> ```
|
|
103
103
|
|
|
104
|
-
### 5.4
|
|
104
|
+
### 5.4 生成 EXPORT-FULL.md(可选)
|
|
105
|
+
|
|
106
|
+
**触发条件**:用户使用 `--export` 参数,或在完成摘要中选择导出。
|
|
107
|
+
|
|
108
|
+
拼接逻辑(bash):
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
OUTPUT="atool-analysis/EXPORT-FULL.md"
|
|
112
|
+
|
|
113
|
+
# 1. 标题 + 元信息
|
|
114
|
+
echo "# $(jq -r '.project' .atool-docs/analysis-state.json) — 完整项目交付文档" > "$OUTPUT"
|
|
115
|
+
echo "" >> "$OUTPUT"
|
|
116
|
+
echo "> 自动生成于 $(date '+%Y-%m-%d %H:%M') | 单文件导出版" >> "$OUTPUT"
|
|
117
|
+
echo "" >> "$OUTPUT"
|
|
118
|
+
echo "---" >> "$OUTPUT"
|
|
119
|
+
|
|
120
|
+
# 2. 项目级文档
|
|
121
|
+
for FILE in \
|
|
122
|
+
"atool-analysis/overview/architecture.md" \
|
|
123
|
+
"atool-analysis/project/prd.md" \
|
|
124
|
+
; do
|
|
125
|
+
[ -f "$FILE" ] && { echo ""; echo "---"; echo ""; cat "$FILE"; } >> "$OUTPUT"
|
|
126
|
+
done
|
|
127
|
+
|
|
128
|
+
# 3. 模块级文档(按重要性排序)
|
|
129
|
+
for MOD in $(jq -r '.modules | sort_by(-.importance) | .[].name' .atool-docs/pre-scan/manifest.json); do
|
|
130
|
+
for DOC in prd.md dev-guide.md api.md data-model.md test-cases.md; do
|
|
131
|
+
FILE="atool-analysis/modules/$MOD/$DOC"
|
|
132
|
+
[ -f "$FILE" ] && { echo ""; echo "---"; echo ""; echo "## $MOD / $DOC"; echo ""; cat "$FILE"; } >> "$OUTPUT"
|
|
133
|
+
done
|
|
134
|
+
done
|
|
135
|
+
|
|
136
|
+
# 4. 项目级剩余文档
|
|
137
|
+
for FILE in \
|
|
138
|
+
"atool-analysis/project/deployment.md" \
|
|
139
|
+
"atool-analysis/project/testing-strategy.md" \
|
|
140
|
+
"atool-analysis/project/runbook.md" \
|
|
141
|
+
; do
|
|
142
|
+
[ -f "$FILE" ] && { echo ""; echo "---"; echo ""; cat "$FILE"; } >> "$OUTPUT"
|
|
143
|
+
done
|
|
144
|
+
|
|
145
|
+
# 5. 质量摘要(仅前 50 行 + 链接)
|
|
146
|
+
[ -f "atool-analysis/quality/code-review.md" ] && {
|
|
147
|
+
echo ""; echo "---"; echo ""
|
|
148
|
+
head -50 "atool-analysis/quality/code-review.md"
|
|
149
|
+
echo ""; echo "*完整报告见 quality/code-review.md*"
|
|
150
|
+
} >> "$OUTPUT"
|
|
151
|
+
|
|
152
|
+
# 6. 附录
|
|
153
|
+
echo ""; echo "---"; echo ""
|
|
154
|
+
echo "## 附录:精炼覆盖率报告" >> "$OUTPUT"
|
|
155
|
+
echo "" >> "$OUTPUT"
|
|
156
|
+
echo "| 模块 | PRD 覆盖率 | 架构门禁 | 状态 |" >> "$OUTPUT"
|
|
157
|
+
echo "|------|-----------|---------|------|" >> "$OUTPUT"
|
|
158
|
+
jq -r '.refine_status | to_entries[] | "| \(.key) | \(.value.prd_coverage // "N/A")% | \(.value.arch_gate // "N/A") | \(if .value.degraded then "⚠️ 降级" else "✅" end) |"' \
|
|
159
|
+
.atool-docs/analysis-state.json >> "$OUTPUT"
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
更新 state:
|
|
163
|
+
```bash
|
|
164
|
+
jq '.deliverable_status.export_single_file = "completed"' .atool-docs/analysis-state.json > tmp && mv tmp .atool-docs/analysis-state.json
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### 5.5 更新 State + 打印完成摘要
|
|
105
168
|
|
|
106
169
|
> **执行命令(必须通过 Bash 工具):**
|
|
107
170
|
> ```bash
|
|
@@ -112,50 +175,33 @@
|
|
|
112
175
|
> && mv "$DOCS_DIR/analysis-state.json.tmp" "$DOCS_DIR/analysis-state.json"
|
|
113
176
|
> ```
|
|
114
177
|
|
|
115
|
-
|
|
178
|
+
**打印完成摘要:**
|
|
116
179
|
|
|
117
180
|
```
|
|
118
|
-
✅
|
|
119
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
120
|
-
项目:{PROJECT_NAME}
|
|
121
|
-
技术栈:{STACK} | 深度:{DEPTH}
|
|
122
|
-
模块数:{MODULE_COUNT} | 文件数:{FILE_COUNT}
|
|
123
|
-
|
|
124
|
-
📁 文档目录:atool-analysis/
|
|
125
|
-
📋 overview/summary.md — 项目业务摘要
|
|
126
|
-
🏗️ overview/architecture.md — 系统架构说明
|
|
127
|
-
🚀 overview/getting-started.md — 新人上手指南
|
|
128
|
-
📦 modules/ — 模块文档(PRD/API/数据模型/测试用例/开发指引)
|
|
129
|
-
📊 quality/ — 代码质量 + 安全审计 + 性能基准
|
|
130
|
-
📐 diagrams/ — Mermaid 架构图源文件
|
|
131
|
-
📂 project/ — 项目级 PRD/部署/测试策略/运维手册
|
|
132
|
-
```
|
|
181
|
+
✅ Phase 5 EXPORT 完成
|
|
133
182
|
|
|
134
|
-
|
|
183
|
+
📦 交付物:
|
|
184
|
+
- atool-analysis/PROJECT-DELIVERABLE.md — 总览入口(文档导航 + 架构概览 + 覆盖率报告)
|
|
185
|
+
- atool-analysis/EXPORT-FULL.md — 单文件导出版(如已生成)
|
|
135
186
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
187
|
+
📊 精炼覆盖率:
|
|
188
|
+
- 精炼模块:{M}/{N}
|
|
189
|
+
- 平均 PRD 覆盖率:{avg}%
|
|
190
|
+
- 降级模块:{list}(如有)
|
|
140
191
|
|
|
141
|
-
→ 运行 /requirements-writer 可自动补齐:
|
|
142
|
-
requirements-writer 会读取本次分析结果,进入后向增强模式,
|
|
143
|
-
通过 Multi-Agent 并行为每个模块生成正式交付级 PRD。
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
**无论覆盖率如何,始终显示以下提示:**
|
|
147
|
-
|
|
148
|
-
```
|
|
149
192
|
💡 后续操作:
|
|
150
|
-
- 在 aTool Monitor → Projects 查看完整可视化(知识图谱 + Mermaid 渲染)
|
|
151
193
|
- /project-query 查询分析结果(依赖分析、影响分析等)
|
|
152
|
-
- /requirements-writer
|
|
194
|
+
- /requirements-writer 对降级模块补全 PRD
|
|
153
195
|
- /code-review 执行 8 维度深度代码审查
|
|
196
|
+
- /software-architecture 深度架构审查(如架构违反率 >30%)
|
|
154
197
|
```
|
|
155
198
|
|
|
199
|
+
其中 `{M}/{N}` 和 `{avg}` 从 `analysis-state.json` 的 `refine_status` 计算。如果 `refine_status` 不存在(旧版 state),显示 "N/A"。
|
|
200
|
+
|
|
156
201
|
## 完成条件
|
|
157
202
|
|
|
158
203
|
- `atool-analysis/manifest.json` 存在
|
|
159
204
|
- `atool-analysis/data/modules.json` 存在
|
|
205
|
+
- `atool-analysis/PROJECT-DELIVERABLE.md` 存在
|
|
160
206
|
- `phases.phase5_export = "completed"`
|
|
161
207
|
- 完成摘要已打印给用户
|
|
@@ -170,6 +170,9 @@
|
|
|
170
170
|
## 输出文件 4:atool-analysis/modules/{module_name}/dev-guide.md
|
|
171
171
|
(层2c: 开发指引 — 新开发者操作手册)
|
|
172
172
|
|
|
173
|
+
> ⚠️ 此为初稿。Phase 2.5 将由 software-architecture 追加组件设计和 ADR 章节。
|
|
174
|
+
> 初稿重点:准确描述开发操作流程和现有架构约束,不必追求架构文档的完整性。
|
|
175
|
+
|
|
173
176
|
必须包含以下 4 节:
|
|
174
177
|
|
|
175
178
|
### 如何添加新功能
|
|
@@ -192,6 +195,9 @@
|
|
|
192
195
|
## 输出文件 5:atool-analysis/modules/{module_name}/prd.md
|
|
193
196
|
(层2d: 模块级 PRD — 按钮级别功能定义)
|
|
194
197
|
|
|
198
|
+
> ⚠️ 此为初稿。Phase 2.5 将按 requirements-writer 的 8 节标准模板精炼。
|
|
199
|
+
> 初稿重点:准确提取业务逻辑和功能点,不必追求格式完美。
|
|
200
|
+
|
|
195
201
|
质量标准:开发者拿到此文档 + api.md + data-model.md,无需再问产品经理任何问题即可完成全部开发。
|
|
196
202
|
|
|
197
203
|
必须包含以下 4 节:
|
|
@@ -340,9 +346,20 @@
|
|
|
340
346
|
"gaps": ["PRD 缺失用户删除功能描述", "API 文档缺少错误码表"],
|
|
341
347
|
"inconsistencies": ["文档说支持批量删除,代码中未实现", "文档中的字段名与代码不一致:文档用 userName,代码用 username"]
|
|
342
348
|
}
|
|
349
|
+
,
|
|
350
|
+
"refine_hints": {
|
|
351
|
+
"detected_patterns": ["MVC", "CQRS", "Event-Driven"],
|
|
352
|
+
"key_decisions": ["选择 Redis 作为缓存层因为...", "使用 JWT 而非 Session 因为..."],
|
|
353
|
+
"cross_module_deps": ["依赖 user-service 的 /api/users/{id}", "消费 order-events 队列"]
|
|
354
|
+
}
|
|
343
355
|
}
|
|
344
356
|
```
|
|
345
357
|
|
|
358
|
+
**refine_hints 说明**:为 Phase 2.5 精炼提供线索,避免精炼 agent 重新读源码。
|
|
359
|
+
- `detected_patterns`: sub-agent 识别到的架构模式名称
|
|
360
|
+
- `key_decisions`: 从代码中识别的关键设计决策(原始描述,无需 ADR 格式)
|
|
361
|
+
- `cross_module_deps`: 跨模块依赖的具体描述(API 路径、事件名、共享实体)
|
|
362
|
+
|
|
346
363
|
字段说明:
|
|
347
364
|
- `layer`:架构层(从路径和类名推断)
|
|
348
365
|
- `quality_score`:0.0-1.0(从 quality_issues 的数量和严重程度计算)
|