ai-dev-analytics 1.1.5 → 1.1.7
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.en.md +91 -0
- package/README.md +340 -296
- package/README.zh-CN.md +6 -515
- package/dist/cli/commands/import.d.ts.map +1 -1
- package/dist/cli/commands/import.js +4 -3
- package/dist/cli/commands/import.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +19 -33
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/log.d.ts.map +1 -1
- package/dist/cli/commands/log.js +2 -1
- package/dist/cli/commands/log.js.map +1 -1
- package/dist/cli/commands/migrate-legacy.d.ts.map +1 -1
- package/dist/cli/commands/migrate-legacy.js +5 -4
- package/dist/cli/commands/migrate-legacy.js.map +1 -1
- package/dist/cli/commands/rules.d.ts +5 -0
- package/dist/cli/commands/rules.d.ts.map +1 -1
- package/dist/cli/commands/rules.js +31 -11
- package/dist/cli/commands/rules.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +247 -12
- package/dist/mcp/server.js.map +1 -1
- package/dist/utils/ai-build.d.ts +1 -0
- package/dist/utils/ai-build.d.ts.map +1 -1
- package/dist/utils/ai-build.js +77 -19
- package/dist/utils/ai-build.js.map +1 -1
- package/dist/utils/bootstrap.d.ts +33 -0
- package/dist/utils/bootstrap.d.ts.map +1 -0
- package/dist/utils/bootstrap.js +143 -0
- package/dist/utils/bootstrap.js.map +1 -0
- package/dist/utils/fs.d.ts +1 -0
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +20 -7
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/guide.d.ts.map +1 -1
- package/dist/utils/guide.js +48 -59
- package/dist/utils/guide.js.map +1 -1
- package/dist/utils/import.d.ts +2 -0
- package/dist/utils/import.d.ts.map +1 -1
- package/dist/utils/import.js +127 -30
- package/dist/utils/import.js.map +1 -1
- package/dist/utils/memory.d.ts.map +1 -1
- package/dist/utils/memory.js +34 -11
- package/dist/utils/memory.js.map +1 -1
- package/dist/utils/paths.d.ts +2 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +4 -0
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/prompt.d.ts +1 -0
- package/dist/utils/prompt.d.ts.map +1 -1
- package/dist/utils/prompt.js +20 -2
- package/dist/utils/prompt.js.map +1 -1
- package/dist/utils/rules.d.ts +4 -0
- package/dist/utils/rules.d.ts.map +1 -1
- package/dist/utils/rules.js +60 -3
- package/dist/utils/rules.js.map +1 -1
- package/dist/utils/run-data.d.ts +2 -1
- package/dist/utils/run-data.d.ts.map +1 -1
- package/dist/utils/run-data.js +11 -0
- package/dist/utils/run-data.js.map +1 -1
- package/dist/utils/skills.d.ts +6 -1
- package/dist/utils/skills.d.ts.map +1 -1
- package/dist/utils/skills.js +87 -14
- package/dist/utils/skills.js.map +1 -1
- package/package.json +1 -1
package/README.zh-CN.md
CHANGED
|
@@ -1,517 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
# 中文文档入口已迁移
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
中文主文档现在以 [README.md](./README.md) 为准。
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
**AIDA 在每个开发节点采集结构化数据,用看板可视化,再把偏差规律沉淀成规则 —— 让你的 AI 每次运行都写出更符合预期的代码。**
|
|
10
|
-
|
|
11
|
-
一行配置接入,零工作流改变。
|
|
12
|
-
|
|
13
|
-
```json
|
|
14
|
-
{ "mcpServers": { "aida": { "command": "npx", "args": ["-y", "ai-dev-analytics", "mcp"] } } }
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
[](https://www.npmjs.com/package/ai-dev-analytics)
|
|
18
|
-
[](./LICENSE)
|
|
19
|
-
[](https://nodejs.org)
|
|
20
|
-
[](#测试)
|
|
21
|
-
[](https://lwtlong.github.io/ai-dev-analytics/)
|
|
22
|
-
[](https://glama.ai/mcp/servers/LWTlong/ai-dev-analytics)
|
|
23
|
-
|
|
24
|
-
[](https://glama.ai/mcp/servers/LWTlong/ai-dev-analytics)
|
|
25
|
-
|
|
26
|
-
[一行接入](#-30-秒上手) · [数据驱动闭环](#-数据驱动闭环) · [数据看板](#-数据看板) · [SOP 流程](#-标准化-ai-开发流程) · [数据沉淀](#-数据沉淀与绩效汇报) · [命令文档](./COMMANDS.md) · [文档导航](./docs/INDEX.md) · [English Reference](./README.md)
|
|
27
|
-
|
|
28
|
-
</div>
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## 一个洞察
|
|
33
|
-
|
|
34
|
-
Vibe Coding 很强。但它是一个黑箱。
|
|
35
|
-
|
|
36
|
-
你让 Claude 写一个功能,它写了,你 ship 了。但你对过程**零可见性**:
|
|
37
|
-
|
|
38
|
-
- AI 完成了多少任务?每个任务花了多长时间?
|
|
39
|
-
- AI 在哪里偏离了你的项目规范?为什么?
|
|
40
|
-
- 哪些偏差反复出现?加什么规则能根治?
|
|
41
|
-
- Bug 率多少?哪个阶段产出最多 Bug?
|
|
42
|
-
|
|
43
|
-
没有数据,你就无法改进。你只是在一遍又一遍地 vibe —— 带着同样的盲区。
|
|
44
|
-
|
|
45
|
-
**AIDA 让不可见变可见。** 它在每次 vibe coding 过程中采集结构化数据,用实时看板渲染,再把偏差模式沉淀成项目规则。你的 AI 不再只是写代码 —— 它**学习你的项目**。
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## 🔄 数据驱动闭环
|
|
50
|
-
|
|
51
|
-
这是 AIDA 的核心 —— **数据进来,规则出去,代码越来越好。**
|
|
52
|
-
|
|
53
|
-
```
|
|
54
|
-
Vibe Coding 过程
|
|
55
|
-
↓
|
|
56
|
-
AIDA 静默采集结构化数据
|
|
57
|
-
(任务、偏差、Bug、自检、文件变更、时间线)
|
|
58
|
-
↓
|
|
59
|
-
看板可视化呈现规律
|
|
60
|
-
"9 个偏差 → 56% 幻觉, 44% 规则缺失"
|
|
61
|
-
↓
|
|
62
|
-
发现偏差规律 → AI 建议沉淀规则 → 用户确认 → 写入规则库
|
|
63
|
-
.aida/rules.json ← 你的 AI 知识库在成长
|
|
64
|
-
↓
|
|
65
|
-
AI 下次读取规则 → 同样的错误被消除
|
|
66
|
-
↓
|
|
67
|
-
循环往复 —— 每一轮,AI 输出都更接近你的预期
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**来自真实生产项目的数据:**
|
|
71
|
-
|
|
72
|
-
| 运行 | 偏差情况 | 发生了什么 | 沉淀的规则 |
|
|
73
|
-
|------|---------|-----------|-----------|
|
|
74
|
-
| 第 1 轮 | 47 个任务产生 23 个偏差 | AI 组件用错、布局写反、API 模式不对 | 沉淀 6 条项目专属规则 |
|
|
75
|
-
| 第 2 轮 | **零重复偏差** | AI 读了规则,相同模式的错误归零 | — |
|
|
76
|
-
|
|
77
|
-
**第一步:看清 AI *为什么*出错** —— 根因分布一目了然:是 AI 幻觉、规则缺失、还是上下文不足?
|
|
78
|
-
|
|
79
|
-

|
|
80
|
-
|
|
81
|
-
**第二步:看清 AI *在哪*出错** —— 类别分布精准定位:UI 间距、布局结构、组件使用、API 模式。
|
|
82
|
-
|
|
83
|
-

|
|
84
|
-
|
|
85
|
-
**第三步:看规则的复利效应** —— 随着规则积累(绿色线),同类偏差模式不再复现。
|
|
86
|
-
|
|
87
|
-

|
|
88
|
-
|
|
89
|
-
`.aida/rules.json` 就是你的**项目专属 AI 知识库**。用 AI 写得越多,它对*你的项目*就越懂。
|
|
90
|
-
|
|
91
|
-
---
|
|
92
|
-
|
|
93
|
-
## 📊 数据看板
|
|
94
|
-
|
|
95
|
-
**你的整个 Vibe Coding 过程 —— 结构化、可视化、可操作。**
|
|
96
|
-
|
|
97
|
-

|
|
98
|
-
|
|
99
|
-
> **[在线 Demo →](https://lwtlong.github.io/ai-dev-analytics/)** 真实脱敏数据,无需安装。
|
|
100
|
-
|
|
101
|
-
AIDA 全方位采集 AI 辅助开发的每个维度,转化为交互式图表:
|
|
102
|
-
|
|
103
|
-
| 你能看到什么 | 为什么重要 |
|
|
104
|
-
|---|---|
|
|
105
|
-
| **偏差根因分布** | 知道 AI *为什么*出错 —— 规则缺失?幻觉?上下文不足? |
|
|
106
|
-
| **偏差类别分布** | 知道 AI *在哪*出错 —— 布局?组件?API? |
|
|
107
|
-
| **偏差 & 规则趋势图** | 看着偏差随规则积累而下降 |
|
|
108
|
-
| **Bug 严重度分布** | 追踪质量 —— 哪个阶段产出严重 Bug? |
|
|
109
|
-
| **自检通过率趋势** | AI 代码质量是在变好还是变差? |
|
|
110
|
-
| **各阶段任务完成** | 看到完整开发生命周期的进度 |
|
|
111
|
-
| **文件修改热点** | 哪些文件反复被改?痛点在哪? |
|
|
112
|
-
| **规则溯源表** | 每条规则都关联到产生它的偏差 |
|
|
113
|
-
| **完整开发时间线** | 每个任务、Bug、审查、偏差 —— 按时间排列 |
|
|
114
|
-
| **项目总览(团队视角)** | 跨分支统计、开发者对比、需求状态 |
|
|
115
|
-
|
|
116
|
-
每个 KPI 卡片都可点击 —— 下钻到任务详情、偏差根因、自检报告、文件变更。
|
|
117
|
-
|
|
118
|
-
运行 `npx ai-dev-analytics dashboard`,几秒钟看到**你自己项目的数据**。
|
|
119
|
-
|
|
120
|
-
### 🔒 100% 本地。零外部请求。
|
|
121
|
-
|
|
122
|
-
AIDA 会在项目里的 `.aida/` 保存 JSON 真源,并在当前项目内生成各 AI 工具所需的本地配置与视图文件。**整个代码库不包含任何外部 HTTP 请求** —— 不发遥测、不上传云端、不请求分析服务、不做任何追踪。零运行时依赖。你的代码和数据绝不会离开你的电脑。
|
|
123
|
-
|
|
124
|
-
## 命令文档
|
|
125
|
-
|
|
126
|
-
详细 CLI 用法、命令行为、支持的 AI 工具、merge/import/build 流程、迁移说明,见 [COMMANDS.md](./COMMANDS.md)。
|
|
127
|
-
|
|
128
|
-
## 文档导航
|
|
129
|
-
|
|
130
|
-
公开文档导航、schema 参考、工作流说明、看板相关文档,见 [docs/INDEX.md](./docs/INDEX.md)。
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
## ⚡ 30 秒上手
|
|
135
|
-
|
|
136
|
-
中文 README 是主文档,英文版 [README.md](./README.md) 作为参考同步维护。
|
|
137
|
-
|
|
138
|
-
### 在项目里加一行 MCP 配置 —— 这就是全部的接入成本。
|
|
139
|
-
|
|
140
|
-
```json
|
|
141
|
-
{ "mcpServers": { "aida": { "command": "npx", "args": ["-y", "ai-dev-analytics", "mcp"] } } }
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
不需要 SDK,不需要包装器,不需要改代码。把这行加到项目根目录的 `.mcp.json`,AI 下次写代码时 AIDA 就开始采集数据。完全静默 —— 零工作流改变。
|
|
145
|
-
|
|
146
|
-
当前策略是:**所有工具配置、rules、skills、MCP 接入文件都只落在当前项目内**。AIDA 不再把 Codex 或其他工具配置写到项目外或全局目录。
|
|
147
|
-
|
|
148
|
-
> *提示:如果 `npx` 比较慢,可以先全局安装:`npm install -g ai-dev-analytics`,然后把 command 改成 `"aida"`。全局安装后也可以直接使用 `aida` 命令(如 `aida dashboard`、`aida init`)。*
|
|
149
|
-
|
|
150
|
-
<details>
|
|
151
|
-
<summary>Cursor / VS Code Copilot / Windsurf / Lingma 配置</summary>
|
|
152
|
-
|
|
153
|
-
**Cursor** `.cursor/mcp.json`:
|
|
154
|
-
```json
|
|
155
|
-
{
|
|
156
|
-
"mcpServers": {
|
|
157
|
-
"aida": {
|
|
158
|
-
"command": "npx",
|
|
159
|
-
"args": ["-y", "ai-dev-analytics", "mcp"]
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
**VS Code Copilot** `.vscode/mcp.json`:
|
|
166
|
-
```json
|
|
167
|
-
{
|
|
168
|
-
"servers": {
|
|
169
|
-
"aida": {
|
|
170
|
-
"command": "npx",
|
|
171
|
-
"args": ["-y", "ai-dev-analytics", "mcp"]
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
**Windsurf** 项目内 MCP 配置文件:
|
|
178
|
-
```json
|
|
179
|
-
{
|
|
180
|
-
"mcpServers": {
|
|
181
|
-
"aida": {
|
|
182
|
-
"command": "npx",
|
|
183
|
-
"args": ["-y", "ai-dev-analytics", "mcp"]
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
**Lingma(通义灵码)** `.lingma/mcp.json`:
|
|
190
|
-
```json
|
|
191
|
-
{
|
|
192
|
-
"mcpServers": {
|
|
193
|
-
"aida": {
|
|
194
|
-
"command": "npx",
|
|
195
|
-
"args": ["-y", "ai-dev-analytics", "mcp"]
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
```
|
|
200
|
-
</details>
|
|
201
|
-
|
|
202
|
-
### 打开看板
|
|
203
|
-
|
|
204
|
-
```bash
|
|
205
|
-
npx ai-dev-analytics dashboard
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
打开 `http://localhost:2375` —— SSE 实时推送,内置中英文切换。
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
## 🤔 为什么数据改变一切
|
|
213
|
-
|
|
214
|
-
**没有数据,每次 Vibe Coding 都从零开始。有了数据,每次都在上一次的基础上进化。**
|
|
215
|
-
|
|
216
|
-
| 盲目 vibe | 数据驱动 vibe |
|
|
217
|
-
|---|---|
|
|
218
|
-
| "AI 布局又写错了" | 看板显示:9 个布局偏差,根因 56% 幻觉 + 44% 规则缺失。沉淀 4 条规则 → 下一轮零重复 |
|
|
219
|
-
| "这个错误我纠正三次了" | AIDA 记录了偏差模式,AI 检测到 `rule-missing`,建议沉淀规则,你确认后写入 —— AI 每次都读,你再也不用纠正 |
|
|
220
|
-
| "那个功能 Bug 挺多的" | 5 个 Bug,3 个严重 —— 全集中在同一个阶段。现在你知道该在哪里加防线了 |
|
|
221
|
-
| "这个季度我到底干了什么?" | 47 个任务、23 个偏差修复、6 条规则沉淀、4064 行代码。导出 → H1 绩效汇报搞定 |
|
|
222
|
-
|
|
223
|
-
**没有数据的 Vibe Coding 只是在 Vibe。有了数据,才是复利系统。**
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
## 🎯 使用场景
|
|
228
|
-
|
|
229
|
-
**Vibe Coder —— "我想让 AI 真正学会我的项目"**
|
|
230
|
-
> 用 Claude Code 一周了。打开 AIDA 看板:23 个偏差,集中在 `组件使用` 和 `布局` 类别,根因大部分是 `规则缺失`。AI 识别偏差模式并建议沉淀规则,你确认后写入了 6 条项目规则。下一周,这些类别偏差归零。AI 现在懂你的项目规范了。
|
|
231
|
-
|
|
232
|
-
**技术负责人 —— "我要看到 AI 在团队里到底干了什么"**
|
|
233
|
-
> 4 个人每天用 Claude Code。打开项目总览:A 同学 2 个偏差 + 5 条规则(AI 在学习)。B 同学 15 个偏差 + 0 条规则(AI 没在学)。数据告诉你该介入哪里。
|
|
234
|
-
|
|
235
|
-
**高级工程师 —— "绩效汇报要数据"**
|
|
236
|
-
> H1 结束了。打开看板:3 个功能共 150 个任务,89% 首次通过率,沉淀 12 条规则让整个团队受益。全是结构化数据 —— 导出,附到绩效文档。数据比"我觉得我干了很多"有说服力。
|
|
237
|
-
|
|
238
|
-
**团队落地 Vibe Coding —— "怎么从无序到有序?"**
|
|
239
|
-
> 先采集数据。两周后看板上模式很清晰:哪类任务 AI 处理得好,哪里总是偏差,需要什么规则。你从"AI 有时候能用"变成"AI 稳定能用,因为我们用数据教会了它我们的规范"。
|
|
240
|
-
|
|
241
|
-
---
|
|
242
|
-
|
|
243
|
-
## 📁 数据沉淀与绩效汇报
|
|
244
|
-
|
|
245
|
-
AIDA 不只是可视化 —— 它**沉淀数据**。每次运行都积累结构化数据,时间越长价值越大。
|
|
246
|
-
|
|
247
|
-
```
|
|
248
|
-
第 1 周:47 个任务、23 个偏差、5 个 Bug、6 条规则、4064 行代码
|
|
249
|
-
第 4 周:180+ 任务、偏差率持续下降、15 条规则、完整质量历史
|
|
250
|
-
一个季度:完整的开发记录 —— 可导出、可分析、可汇报
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
**沉淀的数据能干什么:**
|
|
254
|
-
|
|
255
|
-
| 场景 | 你能拿到什么 |
|
|
256
|
-
|------|-------------|
|
|
257
|
-
| **H1 / H2 绩效汇报** | 任务完成量、质量指标(通过率、Bug 率)、代码产出、贡献的规则 —— 全是数字,不是感觉 |
|
|
258
|
-
| **年度总结** | 跨项目趋势、偏差模式变化、规则增长曲线、总产出统计 |
|
|
259
|
-
| **Sprint 回顾** | 哪里出了问题、新增了哪些规则、哪些阶段改善了、可量化的质量变化 |
|
|
260
|
-
| **团队 Leader 报告** | 各开发者数据、偏差热点、哪个模块需要更好的规则、团队 AI 成熟度 |
|
|
261
|
-
| **项目交接** | 完整开发历史 —— 接手的人能看到做了什么、有什么规则、为什么有这些规则 |
|
|
262
|
-
|
|
263
|
-
所有数据都是 `.aida/` 里的结构化 JSON。没有厂商锁定。随时导出、查询、接入任何报表工具。运行 `aida report` 随时生成汇总。
|
|
264
|
-
|
|
265
|
-
---
|
|
266
|
-
|
|
267
|
-
## ⚙️ 工作原理
|
|
268
|
-
|
|
269
|
-
```mermaid
|
|
270
|
-
flowchart LR
|
|
271
|
-
A["你的 AI 工具\nClaude Code / Cursor"] -->|Vibe Coding| B{"AIDA MCP Server\n10 个工具"}
|
|
272
|
-
B -->|静默采集| C[".aida/run.json"]
|
|
273
|
-
C -->|可视化| D["数据看板\nlocalhost:2375"]
|
|
274
|
-
C -->|模式分析| E[".aida/rules.json"]
|
|
275
|
-
E -->|AI 读取规则| A
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
AI 工具在工作时自动调用 MCP 工具。你不需要手动操作 —— 像往常一样 vibe code 就行。
|
|
279
|
-
|
|
280
|
-
<details>
|
|
281
|
-
<summary>📋 10 个 MCP 工具(自动采集)</summary>
|
|
282
|
-
|
|
283
|
-
| 工具 | 采集什么 |
|
|
284
|
-
|------|---------|
|
|
285
|
-
| `aida_task_start` | 任务开始 —— ID、标题、阶段、PRD 阶段 |
|
|
286
|
-
| `aida_task_done` | 任务完成 —— 自动计算耗时 |
|
|
287
|
-
| `aida_log_bug` | 发现 Bug —— 严重度、标题、相关文件 |
|
|
288
|
-
| `aida_bug_fix` | 修复 Bug —— 关联到原始 Bug |
|
|
289
|
-
| `aida_log_review` | 代码自检 —— 通过/不通过、问题列表 |
|
|
290
|
-
| `aida_log_deviation` | AI 产出 ≠ 预期 —— 根因、分类 |
|
|
291
|
-
| `aida_log_files` | 文件变更 —— 自动扫描 `git diff`,零参数 |
|
|
292
|
-
| `aida_highlight` | 值得记录的亮点 |
|
|
293
|
-
| `aida_status` | 当前运行状态快照 |
|
|
294
|
-
| `aida_log_rule` | 沉淀项目规则 —— 用户确认后,AI 调用此工具写入规则 |
|
|
295
|
-
|
|
296
|
-
</details>
|
|
297
|
-
|
|
298
|
-
### 数据模型
|
|
299
|
-
|
|
300
|
-
所有数据都是本地 JSON。不需要数据库,不需要云服务。
|
|
301
|
-
|
|
302
|
-
| 层级 | 文件 | 内容 |
|
|
303
|
-
|------|------|------|
|
|
304
|
-
| **运行** | `.aida/runs/{分支}/{开发者}/run.json` | 每个任务、Bug、偏差、审查、文件变更 |
|
|
305
|
-
| **分支** | `.aida/runs/{分支}/requirement.json` | 需求与分支聚合统计 |
|
|
306
|
-
| **项目** | `.aida/index.json` | 跨分支总览 |
|
|
307
|
-
| **规则** | `.aida/rules.json` | 沉淀的项目规则 —— AI 持续增长的知识库 |
|
|
308
|
-
|
|
309
|
-
全是结构化 JSON —— 随时可导出、可分析、可生成汇报。
|
|
310
|
-
|
|
311
|
-
---
|
|
312
|
-
|
|
313
|
-
## 🚀 标准化 AI 开发流程
|
|
314
|
-
|
|
315
|
-
除了数据采集,AIDA 还提供**一套完整的 AI 辅助开发 SOP** —— 把无序的 vibe coding 变成可重复、可度量的标准化流程。
|
|
316
|
-
|
|
317
|
-
```bash
|
|
318
|
-
aida init # 选择 "Full workflow"
|
|
319
|
-
aida start # 创建开发运行
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
启用 **14 个 AI Skills**,编排为完整的开发流水线:
|
|
323
|
-
|
|
324
|
-
```
|
|
325
|
-
PRD 接入 → 需求分析 → 任务拆分
|
|
326
|
-
↓
|
|
327
|
-
代码生成 → 自检审查 → Bug 修复 → 偏差修复
|
|
328
|
-
↓
|
|
329
|
-
数据采集 → 模式分析 → 规则沉淀
|
|
330
|
-
↓
|
|
331
|
-
下一轮:AI 读取规则 → 更好的输出 → 更少的偏差
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
| 阶段 | AI 做什么 | AIDA 记录什么 |
|
|
335
|
-
|------|----------|--------------|
|
|
336
|
-
| **需求** | 解析 PRD,提取模块和阶段 | PRD 阶段、范围 |
|
|
337
|
-
| **任务拆分** | 将需求分解为原子任务 | 任务列表、阶段、预估 |
|
|
338
|
-
| **代码生成** | 按任务生成代码 | 文件变更、代码行数、耗时 |
|
|
339
|
-
| **自检审查** | 对照规范审查自身输出 | 通过/不通过、问题列表、质量评分 |
|
|
340
|
-
| **Bug 修复** | 修复审查中发现的缺陷 | Bug 严重度、修复详情、关联文件 |
|
|
341
|
-
| **偏差修复** | 纠正不符合预期的输出 | 根因、分类、新增规则(根因为规则缺失时) |
|
|
342
|
-
|
|
343
|
-
每个步骤都产出结构化数据。每个偏差都可以变成规则。SOP 确保不遗漏任何环节 —— 数据让整个过程可见、可分析、可持续改进。
|
|
344
|
-
|
|
345
|
-
---
|
|
346
|
-
|
|
347
|
-
<details>
|
|
348
|
-
<summary>🖥 CLI 命令</summary>
|
|
349
|
-
|
|
350
|
-
```bash
|
|
351
|
-
aida init # 交互式初始化
|
|
352
|
-
aida migrate-legacy # 一条命令升级旧 .aidevos 项目
|
|
353
|
-
aida start # 创建新的开发运行
|
|
354
|
-
aida status # 查看当前运行状态
|
|
355
|
-
aida dashboard # 启动数据看板(默认端口 2375)
|
|
356
|
-
aida dashboard --port 3000 # 自定义端口
|
|
357
|
-
aida mcp # 启动 MCP 服务(供 AI 工具配置)
|
|
358
|
-
aida log <子命令> # 写入结构化数据(task, bug, review 等)
|
|
359
|
-
aida memory <子命令> # 重建 / 检索 / 查看项目记忆
|
|
360
|
-
aida reindex # 重建项目级索引
|
|
361
|
-
aida report # 生成效能报告
|
|
362
|
-
aida rules build # 从注册表生成规则视图文件
|
|
363
|
-
aida rules dedupe # 查找并去除近似重复规则
|
|
364
|
-
aida rules merge # 合并并行分支的规则
|
|
365
|
-
aida update # 更新 Skills 到最新版本
|
|
366
|
-
aida migrate # 迁移旧数据到当前 schema
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
`aida init` 和 `aida build` 现在在 TTY 终端中使用真正的多选交互;在非交互环境里会自动回退为逗号分隔数字输入,便于脚本和 CI 使用。
|
|
370
|
-
|
|
371
|
-
</details>
|
|
372
|
-
|
|
373
|
-
<details>
|
|
374
|
-
<summary>🔌 MCP 集成详情</summary>
|
|
375
|
-
|
|
376
|
-
AIDA 使用 [Model Context Protocol](https://modelcontextprotocol.io/) —— AI 工具与外部系统交互的标准协议。MCP 服务通过 stdio 运行,零依赖。
|
|
377
|
-
|
|
378
|
-
**加完配置后发生了什么:**
|
|
379
|
-
|
|
380
|
-
1. 你的 AI 工具通过 MCP 发现 AIDA 的数据采集和记忆恢复工具
|
|
381
|
-
2. AI 工作时自然地调用 `aida_task_start`、`aida_log_files` 等
|
|
382
|
-
3. 数据静默写入 `run.json`
|
|
383
|
-
4. 偏差模式浮现 → AI 建议沉淀规则 → 用户确认 → 写入规则库
|
|
384
|
-
5. AI 下次读取规则 → 输出质量提升
|
|
385
|
-
|
|
386
|
-
**不需要写 prompt。不需要跑脚本。不需要学新的工作流。**
|
|
387
|
-
|
|
388
|
-
</details>
|
|
389
|
-
|
|
390
|
-
---
|
|
391
|
-
|
|
392
|
-
## 📐 规则系统 —— 团队协作流程
|
|
393
|
-
|
|
394
|
-
规则是 AIDA 的核心复利资产。以下是团队场景下的完整使用方式。
|
|
395
|
-
|
|
396
|
-
### 架构设计
|
|
397
|
-
|
|
398
|
-
```
|
|
399
|
-
.aida/rules.json ← 规则真源,提交到 git
|
|
400
|
-
.aida/skills.json ← skills 真源,提交到 git
|
|
401
|
-
.aida/config.json ← 项目配置真源,提交到 git
|
|
402
|
-
.aida/memories/index.json ← 模块记忆索引,提交到 git
|
|
403
|
-
.aida/memories/modules/*.json ← 模块记忆真源,提交到 git
|
|
404
|
-
.aida/runs/*/requirement.json ← 历史需求真源,提交到 git
|
|
405
|
-
.aida/runs/*/context.json ← 分支上下文真源,提交到 git
|
|
406
|
-
↓
|
|
407
|
-
aida build
|
|
408
|
-
↓
|
|
409
|
-
.aida/**/*.md 等非 JSON 文件 ← 自动生成或本地产物,加入 gitignore
|
|
410
|
-
.claude/.cursor/.codex/.lingma 等目录 ← 项目内工具产物,加入 gitignore
|
|
411
|
-
.mcp.json / AGENTS.md / CLAUDE.md ← 项目内接入文件,建议加入 gitignore
|
|
412
|
-
↓
|
|
413
|
-
AI 下次直接读取自己工具目录中的文件
|
|
414
|
-
```
|
|
415
|
-
|
|
416
|
-
`aida build` 会把规则、skills、记忆阅读视图、MCP 配置分发到当前项目内的 AI 工具目录或 `.aida` 视图目录。不要手动编辑这些生成的 `.md` 文件。
|
|
417
|
-
|
|
418
|
-
当前建议的 Git 策略:
|
|
419
|
-
- `.aida` 下只提交 JSON 真源,其他派生文件全部忽略
|
|
420
|
-
- AI 工具目录和项目接入文件只保留在项目本地,不进入版本库
|
|
421
|
-
- `aida init`、`aida migrate-dir`、`aida migrate-legacy` 会提示你手动取消已被 Git 跟踪的忽略文件,但不会自动执行危险 Git 操作
|
|
422
|
-
|
|
423
|
-
旧项目迁移说明:
|
|
424
|
-
- `aida migrate-legacy` 现在会把历史 `run.json`、`requirement.json`、`analysis.md` 一起迁成 `.aida/runs/*/context.json` 和 `.aida/memories/modules/*.json`
|
|
425
|
-
- 如果检测到多个可导入基线工具,会按项目配置顺序和内置优先级自动选择,不再卡在交互等待
|
|
426
|
-
- 旧 `report` 文件仍然只是派生输出;新的上下文恢复依赖迁移后的 JSON 记忆真源
|
|
427
|
-
|
|
428
|
-
运行时恢复说明:
|
|
429
|
-
- 编码前先检索模块记忆,优先读取 MCP `aida_memory_pack` 或 `.aida/runs/*/requirement.json`、`.aida/runs/*/context.json`、`.aida/memories/modules/*.json`
|
|
430
|
-
- 如果分支上下文缺失或过旧,使用 `aida memory rebuild` 或 MCP `aida_context_rebuild` 重建
|
|
431
|
-
|
|
432
|
-
### 日常流程
|
|
433
|
-
|
|
434
|
-
拉取了包含新规则的代码后:
|
|
435
|
-
|
|
436
|
-
```bash
|
|
437
|
-
git pull
|
|
438
|
-
aida build # 从更新后的 JSON 数据源重新生成本地 AI 工具产物
|
|
439
|
-
```
|
|
440
|
-
|
|
441
|
-
### 合并冲突处理
|
|
442
|
-
|
|
443
|
-
两位开发者在不同分支各自添加了规则并合并时,`rules.json` 可能产生标准的 git 冲突。一条命令解决:
|
|
444
|
-
|
|
445
|
-
```bash
|
|
446
|
-
# git merge 在 rules.json 产生冲突后执行:
|
|
447
|
-
aida rules merge # 按 fingerprint 做并集——不丢规则,不产生重复
|
|
448
|
-
aida build # 重建本地 AI 工具产物
|
|
449
|
-
git add .aida/rules.json
|
|
450
|
-
git commit -m "merge: resolve rules conflict"
|
|
451
|
-
```
|
|
452
|
-
|
|
453
|
-
`aida rules merge` 使用指纹去重:内容完全相同只保留一条;内容不同则两条都保留,新规则自动重新编号避免 ID 冲突。
|
|
454
|
-
|
|
455
|
-
### 规则日常维护
|
|
456
|
-
|
|
457
|
-
```bash
|
|
458
|
-
aida rules list # 按分类列出所有规则
|
|
459
|
-
aida rules dedupe # 找出关键词重叠度 >40% 的相似规则,供手动处理
|
|
460
|
-
```
|
|
461
|
-
|
|
462
|
-
规则有 `status` 字段(`active` / `deprecated`)。项目规范变化时,将旧规则标记为 `deprecated`——它从 AI 读取的 `.md` 文件里消失,但保留在 `rules.json` 中作为审计记录。
|
|
463
|
-
|
|
464
|
-
---
|
|
465
|
-
|
|
466
|
-
## Roadmap
|
|
467
|
-
|
|
468
|
-
- [ ] 导出报告为 PDF / HTML(H1/H2 绩效汇报)
|
|
469
|
-
- [ ] 历史趋势分析 —— 偏差随规则积累递减的曲线
|
|
470
|
-
- [ ] 多项目聚合的团队看板
|
|
471
|
-
- [ ] VS Code 扩展 —— 编辑器内偏差告警
|
|
472
|
-
- [ ] 跨项目规则共享 —— 团队级 AI 知识库
|
|
473
|
-
|
|
474
|
-
---
|
|
475
|
-
|
|
476
|
-
## 技术栈
|
|
477
|
-
|
|
478
|
-
| | |
|
|
479
|
-
|---|---|
|
|
480
|
-
| **运行时** | Node.js + TypeScript,零运行时依赖 |
|
|
481
|
-
| **看板** | React 19 + ECharts + Tailwind CSS 4 |
|
|
482
|
-
| **协议** | MCP over stdio (JSON-RPC 2.0) |
|
|
483
|
-
| **数据** | 本地 JSON 文件,不需要数据库 |
|
|
484
|
-
| **实时** | Server-Sent Events (SSE) |
|
|
485
|
-
| **国际化** | 中文 / 英文,看板内一键切换 |
|
|
486
|
-
|
|
487
|
-
## 测试
|
|
488
|
-
|
|
489
|
-
```bash
|
|
490
|
-
npm test # 82 个测试,29 个测试套件
|
|
491
|
-
```
|
|
492
|
-
|
|
493
|
-
## 参与贡献
|
|
494
|
-
|
|
495
|
-
欢迎提 Issue、功能建议和 PR。
|
|
496
|
-
|
|
497
|
-
```bash
|
|
498
|
-
git clone https://github.com/LWTlong/ai-dev-analytics.git
|
|
499
|
-
cd ai-dev-analytics
|
|
500
|
-
npm install
|
|
501
|
-
npm test
|
|
502
|
-
```
|
|
503
|
-
|
|
504
|
-
## 许可证
|
|
505
|
-
|
|
506
|
-
[MIT](./LICENSE)
|
|
507
|
-
|
|
508
|
-
---
|
|
509
|
-
|
|
510
|
-
<div align="center">
|
|
511
|
-
|
|
512
|
-
**没有数据的 Vibe Coding 只是在 Vibe。**<br>
|
|
513
|
-
**有了数据,你的 AI 每次运行都在进化。**
|
|
514
|
-
|
|
515
|
-
[马上试试 →](#-30-秒上手)
|
|
516
|
-
|
|
517
|
-
</div>
|
|
5
|
+
- 中文主说明: [README.md](./README.md)
|
|
6
|
+
- 英文说明: [README.en.md](./README.en.md)
|
|
7
|
+
- 命令参考: [COMMANDS.md](./COMMANDS.md)
|
|
8
|
+
- 文档导航: [docs/INDEX.md](./docs/INDEX.md)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/import.ts"],"names":[],"mappings":"AAwBA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/import.ts"],"names":[],"mappings":"AAwBA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAgEnD"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { green, red, yellow } from '../../utils/display.js';
|
|
2
2
|
import { configPath } from '../../utils/paths.js';
|
|
3
3
|
import { fileExists } from '../../utils/fs.js';
|
|
4
|
-
import { importProjectSources, importProjectSourcesWithBaseline } from '../../utils/import.js';
|
|
4
|
+
import { CLOSED_LOOP_BASELINE_TOOLS, importProjectSources, importProjectSourcesWithBaseline } from '../../utils/import.js';
|
|
5
5
|
import { buildProjectArtifacts } from '../../utils/ai-build.js';
|
|
6
6
|
function requestedBaseline() {
|
|
7
7
|
const value = process.argv[3]?.trim();
|
|
8
8
|
if (!value)
|
|
9
9
|
return null;
|
|
10
|
-
if (
|
|
10
|
+
if (CLOSED_LOOP_BASELINE_TOOLS.includes(value)) {
|
|
11
11
|
return value;
|
|
12
12
|
}
|
|
13
13
|
return 'invalid';
|
|
@@ -28,7 +28,8 @@ export async function importSources() {
|
|
|
28
28
|
const baseline = requestedBaseline();
|
|
29
29
|
const options = importOptions();
|
|
30
30
|
if (baseline === 'invalid') {
|
|
31
|
-
console.log(red(`\n
|
|
31
|
+
console.log(red(`\n Unsupported baseline tool for import: ${process.argv[3]?.trim()}\n`));
|
|
32
|
+
console.log(` Supported baseline tools: ${CLOSED_LOOP_BASELINE_TOOLS.join(', ')}\n`);
|
|
32
33
|
return;
|
|
33
34
|
}
|
|
34
35
|
if (baseline) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../src/cli/commands/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../src/cli/commands/import.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AA+GA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAoO1C"}
|