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

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

|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
**第三步:看规则的复利效应** —— 随着规则积累,重复偏差会逐步下降。
|
|
86
86
|
|
|
87
|
-

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

|
|
98
98
|
|
|
99
|
-
> **[
|
|
99
|
+
> **[在线 Demo →](https://lwtlong.github.io/ai-dev-analytics/)** 真实脱敏数据,无需安装。
|
|
100
100
|
|
|
101
|
-
AIDA
|
|
101
|
+
AIDA 全方位采集 AI 辅助开发的每个维度,转化为交互式图表:
|
|
102
102
|
|
|
103
|
-
|
|
|
103
|
+
| 你能看到什么 | 为什么重要 |
|
|
104
104
|
|---|---|
|
|
105
|
-
|
|
|
106
|
-
|
|
|
107
|
-
|
|
|
108
|
-
| **Bug
|
|
109
|
-
|
|
|
110
|
-
|
|
|
111
|
-
|
|
|
112
|
-
|
|
|
113
|
-
|
|
|
114
|
-
|
|
|
105
|
+
| **偏差根因分布** | 知道 AI *为什么*出错 —— 规则缺失?幻觉?上下文不足? |
|
|
106
|
+
| **偏差类别分布** | 知道 AI *在哪*出错 —— 布局?组件?API? |
|
|
107
|
+
| **偏差 & 规则趋势图** | 看着偏差随规则积累而下降 |
|
|
108
|
+
| **Bug 严重度分布** | 追踪质量 —— 哪个阶段产出严重 Bug? |
|
|
109
|
+
| **自检通过率趋势** | AI 代码质量是在变好还是变差? |
|
|
110
|
+
| **各阶段任务完成** | 看到完整开发生命周期的进度 |
|
|
111
|
+
| **文件修改热点** | 哪些文件反复被改?痛点在哪? |
|
|
112
|
+
| **规则溯源表** | 每条规则都关联到产生它的偏差 |
|
|
113
|
+
| **完整开发时间线** | 每个任务、Bug、审查、偏差 —— 按时间排列 |
|
|
114
|
+
| **项目总览(团队视角)** | 跨分支统计、开发者对比、需求状态 |
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
运行 `npx ai-dev-analytics dashboard`,几秒钟看到**你自己项目的数据**。
|
|
117
117
|
|
|
118
|
-
|
|
118
|
+
### 🔒 100% 本地。零外部请求。
|
|
119
119
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
AIDA stores JSON source data in `.aida/` and generates any required AI tool config or readable views inside the current project only. **The codebase contains zero HTTP calls to external services** — no telemetry, no cloud sync, no analytics, no tracking. Zero runtime dependencies. Your code and data never leave your machine. Period.
|
|
123
|
-
|
|
124
|
-
## Command Reference
|
|
125
|
-
|
|
126
|
-
Detailed CLI usage, command behavior, supported AI tools, merge/import/build flow, and migration notes are documented in [COMMANDS.md](./COMMANDS.md).
|
|
127
|
-
|
|
128
|
-
## Documentation
|
|
129
|
-
|
|
130
|
-
For public documentation navigation, schema references, workflow notes, and dashboard-related docs, see [docs/INDEX.md](./docs/INDEX.md).
|
|
120
|
+
AIDA 只往项目里的 `.aida/` 目录写 JSON 文件。**整个代码库不包含任何外部 HTTP 请求** —— 不发遥测、不上传云端、不请求分析服务、不做任何追踪。你的代码和数据不会离开你的电脑。
|
|
131
121
|
|
|
132
122
|
---
|
|
133
123
|
|
|
134
|
-
## ⚡ 30
|
|
135
|
-
|
|
136
|
-
The Chinese README, [README.zh-CN.md](./README.zh-CN.md), is the primary documentation. This English file is kept as a reference.
|
|
124
|
+
## ⚡ 30 秒上手
|
|
137
125
|
|
|
138
|
-
###
|
|
126
|
+
### 在 `.mcp.json` 里加一行
|
|
139
127
|
|
|
140
128
|
```json
|
|
141
|
-
{ "mcpServers": { "aida": { "command": "npx", "args": ["-y", "ai-dev-analytics", "mcp"] } } }
|
|
129
|
+
{ "mcpServers": { "aida": { "command": "npx", "args": ["--registry=https://registry.npmjs.org/", "-y", "ai-dev-analytics", "mcp"] } } }
|
|
142
130
|
```
|
|
143
131
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
Current policy: **all tool configs, rules, skills, and MCP entry files stay inside the current project only**. AIDA no longer writes Codex or other tool config to global locations outside the project.
|
|
132
|
+
不需要 SDK,不需要包装器,不需要改代码。把这行加到项目根目录的 `.mcp.json`,AI 下次写代码时 AIDA 就开始采集数据。
|
|
147
133
|
|
|
148
|
-
>
|
|
134
|
+
> 如果 `npx` 较慢,可以先全局安装:`npm install -g ai-dev-analytics`,然后把 command 改成 `"aida"`。全局安装后也可以直接使用 `aida` 命令。
|
|
149
135
|
|
|
150
136
|
<details>
|
|
151
|
-
<summary>Cursor / VS Code Copilot / Windsurf / Lingma
|
|
137
|
+
<summary>Cursor / VS Code Copilot / Windsurf / Lingma 配置</summary>
|
|
152
138
|
|
|
153
|
-
**Cursor** `.cursor/mcp.json
|
|
139
|
+
**Cursor** `.cursor/mcp.json`:
|
|
154
140
|
```json
|
|
155
141
|
{
|
|
156
142
|
"mcpServers": {
|
|
157
143
|
"aida": {
|
|
158
144
|
"command": "npx",
|
|
159
|
-
"args": ["-y", "ai-dev-analytics", "mcp"]
|
|
145
|
+
"args": ["--registry=https://registry.npmjs.org/", "-y", "ai-dev-analytics", "mcp"]
|
|
160
146
|
}
|
|
161
147
|
}
|
|
162
148
|
}
|
|
163
149
|
```
|
|
164
150
|
|
|
165
|
-
**VS Code Copilot** `.vscode/mcp.json
|
|
151
|
+
**VS Code Copilot** `.vscode/mcp.json`:
|
|
166
152
|
```json
|
|
167
153
|
{
|
|
168
154
|
"servers": {
|
|
169
155
|
"aida": {
|
|
170
156
|
"command": "npx",
|
|
171
|
-
"args": ["-y", "ai-dev-analytics", "mcp"]
|
|
157
|
+
"args": ["--registry=https://registry.npmjs.org/", "-y", "ai-dev-analytics", "mcp"]
|
|
172
158
|
}
|
|
173
159
|
}
|
|
174
160
|
}
|
|
175
161
|
```
|
|
176
162
|
|
|
177
|
-
**Windsurf**
|
|
163
|
+
**Windsurf** `~/.codeium/windsurf/mcp_config.json`:
|
|
178
164
|
```json
|
|
179
165
|
{
|
|
180
166
|
"mcpServers": {
|
|
181
167
|
"aida": {
|
|
182
168
|
"command": "npx",
|
|
183
|
-
"args": ["-y", "ai-dev-analytics", "mcp"]
|
|
169
|
+
"args": ["--registry=https://registry.npmjs.org/", "-y", "ai-dev-analytics", "mcp"]
|
|
184
170
|
}
|
|
185
171
|
}
|
|
186
172
|
}
|
|
187
173
|
```
|
|
188
174
|
|
|
189
|
-
**Lingma
|
|
175
|
+
**Lingma(通义灵码)** `.lingma/mcp.json`:
|
|
190
176
|
```json
|
|
191
177
|
{
|
|
192
178
|
"mcpServers": {
|
|
193
179
|
"aida": {
|
|
194
180
|
"command": "npx",
|
|
195
|
-
"args": ["-y", "ai-dev-analytics", "mcp"]
|
|
181
|
+
"args": ["--registry=https://registry.npmjs.org/", "-y", "ai-dev-analytics", "mcp"]
|
|
196
182
|
}
|
|
197
183
|
}
|
|
198
184
|
}
|
|
199
185
|
```
|
|
200
186
|
</details>
|
|
201
187
|
|
|
202
|
-
###
|
|
188
|
+
### 打开看板
|
|
203
189
|
|
|
204
190
|
```bash
|
|
205
191
|
npx ai-dev-analytics dashboard
|
|
206
192
|
```
|
|
207
193
|
|
|
208
|
-
|
|
194
|
+
打开 `http://localhost:2375`,即可查看本地数据看板。
|
|
209
195
|
|
|
210
196
|
---
|
|
211
197
|
|
|
212
|
-
##
|
|
198
|
+
## 🧭 场景操作指南
|
|
213
199
|
|
|
214
|
-
|
|
200
|
+
下面这些是最常见的落地场景。想看详细行为、重复执行语义和边界说明,直接跳到 [COMMANDS.md](./COMMANDS.md)。
|
|
215
201
|
|
|
216
|
-
|
|
217
|
-
|---|---|
|
|
218
|
-
| "AI keeps getting layouts wrong" | Dashboard shows: 9 layout deviations, root cause 56% hallucination + 44% rule-missing. 4 rules sedimented → zero repeats next run |
|
|
219
|
-
| "I corrected this three times already" | AIDA recorded the deviation pattern. AI detected `rule-missing`, suggested a rule, you confirmed — AI reads it every session, you never correct it again |
|
|
220
|
-
| "That feature had a lot of bugs" | 5 bugs, 3 critical — all concentrated in one phase. Now you know where to add guardrails |
|
|
221
|
-
| "What did I even do this quarter?" | 47 tasks, 23 deviations fixed, 6 rules sedimented, 4064 lines. Export → H1 performance review done |
|
|
202
|
+
### 1. 新项目初始化
|
|
222
203
|
|
|
223
|
-
|
|
204
|
+
详细步骤见:[COMMANDS.md / 场景 1:新项目初始化](./COMMANDS.md#场景-1新项目初始化)
|
|
224
205
|
|
|
225
|
-
|
|
206
|
+
适用场景:
|
|
226
207
|
|
|
227
|
-
|
|
208
|
+
- 仓库里还没有 `.aida`
|
|
209
|
+
- 想从零接入 AIDA
|
|
228
210
|
|
|
229
|
-
|
|
230
|
-
> You've been using Claude Code for a week. AIDA's dashboard shows: 23 deviations, concentrated in `component-usage` and `layout` categories, root cause mostly `rule-missing`. AI detects the patterns and suggests rules — you confirm, 6 project rules sedimented. Next week, those categories show zero deviations. Your AI now knows your project conventions.
|
|
211
|
+
操作:
|
|
231
212
|
|
|
232
|
-
|
|
233
|
-
|
|
213
|
+
```bash
|
|
214
|
+
aida init
|
|
215
|
+
```
|
|
234
216
|
|
|
235
|
-
|
|
236
|
-
> End of H1. Open the dashboard: 150 tasks across 3 features, 89% first-pass review rate, 12 rules sedimented that now benefit the entire team. All structured data — export it, attach it to your review doc. Data beats "I think I did a lot."
|
|
217
|
+
你会在交互里选择:
|
|
237
218
|
|
|
238
|
-
|
|
239
|
-
|
|
219
|
+
- `collect` 或 `full` 模式
|
|
220
|
+
- 需要接入的 AI 工具
|
|
221
|
+
- 是否导入现有工具的规则 / skills 作为 baseline
|
|
240
222
|
|
|
241
|
-
|
|
223
|
+
初始化后建议立即检查:
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
aida build
|
|
227
|
+
aida status
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### 2. 老项目迁移到 AIDA
|
|
231
|
+
|
|
232
|
+
详细步骤见:[COMMANDS.md / 场景 2:老项目迁移](./COMMANDS.md#场景-2老项目迁移)
|
|
242
233
|
|
|
243
|
-
|
|
234
|
+
适用场景:
|
|
244
235
|
|
|
245
|
-
|
|
236
|
+
- 项目还在使用旧 `.aidevos`
|
|
237
|
+
- 想把旧 rules / skills / run 数据迁进当前 AIDA 体系
|
|
246
238
|
|
|
239
|
+
最省事的方式:
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
aida migrate-legacy
|
|
247
243
|
```
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
244
|
+
|
|
245
|
+
如果你想显式指定 baseline tool:
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
aida migrate-legacy cursor
|
|
249
|
+
aida migrate-legacy codex
|
|
251
250
|
```
|
|
252
251
|
|
|
253
|
-
|
|
252
|
+
如果你想拆开执行:
|
|
254
253
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
254
|
+
```bash
|
|
255
|
+
aida migrate-dir
|
|
256
|
+
aida import cursor
|
|
257
|
+
aida migrate
|
|
258
|
+
aida memory rebuild
|
|
259
|
+
aida build
|
|
260
|
+
```
|
|
262
261
|
|
|
263
|
-
|
|
262
|
+
### 3. 已经初始化过,但产物缺失或版本升级后想补齐
|
|
264
263
|
|
|
265
|
-
|
|
264
|
+
详细步骤见:[COMMANDS.md / 场景 3:项目已初始化,但想补齐缺失产物](./COMMANDS.md#场景-3项目已初始化但想补齐缺失产物)
|
|
265
|
+
|
|
266
|
+
适用场景:
|
|
266
267
|
|
|
267
|
-
|
|
268
|
+
- `AGENTS.md` / `CLAUDE.md` / `.codex/config.toml` 被删了
|
|
269
|
+
- 旧版本包生成不完整
|
|
270
|
+
- 发新包后想在老项目里补齐生成产物
|
|
268
271
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
C -->|Visualization| D["Dashboard\nlocalhost:2375"]
|
|
274
|
-
C -->|Pattern Analysis| E[".aida/rules.json"]
|
|
275
|
-
E -->|AI Reads Rules| A
|
|
272
|
+
操作:
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
aida init
|
|
276
276
|
```
|
|
277
277
|
|
|
278
|
-
|
|
278
|
+
然后在交互里选:
|
|
279
279
|
|
|
280
|
-
|
|
281
|
-
<summary>📋 10 MCP Tools (auto-collected)</summary>
|
|
282
|
-
|
|
283
|
-
| Tool | What it captures |
|
|
284
|
-
|------|-----------------|
|
|
285
|
-
| `aida_task_start` | Task begins — ID, title, stage, PRD phase |
|
|
286
|
-
| `aida_task_done` | Task completed — duration auto-calculated |
|
|
287
|
-
| `aida_log_bug` | Bug found — severity, title, related files |
|
|
288
|
-
| `aida_bug_fix` | Bug fixed — links fix to original bug |
|
|
289
|
-
| `aida_log_review` | Code self-review — pass/fail, issue list |
|
|
290
|
-
| `aida_log_deviation` | AI output ≠ expectation — root cause, category |
|
|
291
|
-
| `aida_log_files` | File changes — auto-scans `git diff`, zero args needed |
|
|
292
|
-
| `aida_highlight` | Notable achievement worth recording |
|
|
293
|
-
| `aida_status` | Current run status snapshot |
|
|
294
|
-
| `aida_log_rule` | Sediment project rule — user confirms, then AI calls this tool |
|
|
280
|
+
- `Repair missing generated files`
|
|
295
281
|
|
|
296
|
-
|
|
282
|
+
或者直接跑:
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
aida build
|
|
286
|
+
aida migrate-legacy
|
|
287
|
+
```
|
|
297
288
|
|
|
298
|
-
|
|
289
|
+
其中:
|
|
299
290
|
|
|
300
|
-
|
|
291
|
+
- `aida build` 适合“真源没问题,只想重建产物”
|
|
292
|
+
- `aida migrate-legacy` 适合“历史项目想顺手补齐 memory / import / build 全链路”
|
|
301
293
|
|
|
302
|
-
|
|
303
|
-
|-------|------|-----------------|
|
|
304
|
-
| **Run** | `.aida/runs/{branch}/{dev}/run.json` | Every task, bug, deviation, review, file change |
|
|
305
|
-
| **Branch** | `.aida/runs/{branch}/requirement.json` | Requirement and branch-level aggregate data |
|
|
306
|
-
| **Project** | `.aida/index.json` | Cross-branch overview for team leads |
|
|
307
|
-
| **Rules** | `.aida/rules.json` | Sedimented project rules — your AI's growing knowledge base |
|
|
294
|
+
### 4. 已有工具规则想回收进 `.aida/*.json`
|
|
308
295
|
|
|
309
|
-
|
|
296
|
+
详细步骤见:[COMMANDS.md / 场景 4:import 和 build 怎么配合](./COMMANDS.md#场景-4import-和-build-怎么配合)
|
|
310
297
|
|
|
311
|
-
|
|
298
|
+
适用场景:
|
|
312
299
|
|
|
313
|
-
|
|
300
|
+
- 项目里已经有 `.cursor/`、`.claude/`、`.codex/` 本地规则
|
|
301
|
+
- 想把分散资产统一回收到 `.aida/rules.json` / `.aida/skills.json`
|
|
314
302
|
|
|
315
|
-
|
|
303
|
+
操作:
|
|
316
304
|
|
|
317
305
|
```bash
|
|
318
|
-
aida
|
|
319
|
-
aida
|
|
306
|
+
aida import
|
|
307
|
+
aida import cursor
|
|
308
|
+
aida import codex
|
|
320
309
|
```
|
|
321
310
|
|
|
322
|
-
|
|
311
|
+
经验上:
|
|
323
312
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
Next Run: AI reads rules → better output → fewer deviations
|
|
313
|
+
- 无参数 `import`:适合把当前项目里能发现的资产统一扫回 AIDA
|
|
314
|
+
- 带 baseline tool:适合你明确知道“以某个工具的资产为准”
|
|
315
|
+
|
|
316
|
+
回收后建议再跑一次:
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
aida build
|
|
332
320
|
```
|
|
333
321
|
|
|
334
|
-
|
|
335
|
-
|-------|-------------|-------------------|
|
|
336
|
-
| **Requirement** | Parses PRD, extracts modules and phases | PRD phases, scope |
|
|
337
|
-
| **Task Split** | Breaks requirements into atomic tasks | Task list, stages, estimates |
|
|
338
|
-
| **Code Gen** | Generates code per task | Files changed, lines added, duration |
|
|
339
|
-
| **Self-Review** | Reviews its own output against conventions | Pass/fail, issue list, quality score |
|
|
340
|
-
| **Bug Fix** | Fixes bugs found during review | Bug severity, fix details, related files |
|
|
341
|
-
| **Deviation Fix** | Corrects output that doesn't match expectations | Root cause, category, new rule (when root cause is rule-missing) |
|
|
322
|
+
### 5. rules 冲突
|
|
342
323
|
|
|
343
|
-
|
|
324
|
+
详细步骤见:[COMMANDS.md / 场景 5:rules 冲突](./COMMANDS.md#场景-5rules-冲突)
|
|
344
325
|
|
|
345
|
-
|
|
326
|
+
适用场景:
|
|
346
327
|
|
|
347
|
-
|
|
348
|
-
|
|
328
|
+
- `git pull` / `git merge` 后 `.aida/rules.json` 出现 conflict marker
|
|
329
|
+
|
|
330
|
+
操作:
|
|
349
331
|
|
|
350
332
|
```bash
|
|
351
|
-
aida
|
|
352
|
-
|
|
353
|
-
aida start # Create a new development run
|
|
354
|
-
aida status # Show current run status
|
|
355
|
-
aida dashboard # Launch dashboard (default port 2375)
|
|
356
|
-
aida dashboard --port 3000 # Custom port
|
|
357
|
-
aida mcp # Start MCP server (for AI tool config)
|
|
358
|
-
aida log <subcommand> # Write structured data (task, bug, review, etc.)
|
|
359
|
-
aida memory <subcommand> # Rebuild/search/show project memory
|
|
360
|
-
aida reindex # Rebuild project-level index
|
|
361
|
-
aida report # Generate performance report
|
|
362
|
-
aida rules build # Generate rule view files from registry
|
|
363
|
-
aida rules dedupe # Find and remove near-duplicate rules
|
|
364
|
-
aida rules merge # Merge rules from parallel branches
|
|
365
|
-
aida update # Update skills to latest version
|
|
366
|
-
aida migrate # Migrate old data to current schema
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
`aida init` and `aida build` now use interactive multi-select prompts in TTY terminals, with automatic fallback to comma-separated numeric input in non-interactive environments.
|
|
333
|
+
aida rules merge
|
|
334
|
+
```
|
|
370
335
|
|
|
371
|
-
|
|
336
|
+
如果你想顺手把 `skills.json` 也一起处理:
|
|
372
337
|
|
|
373
|
-
|
|
374
|
-
|
|
338
|
+
```bash
|
|
339
|
+
aida merge
|
|
340
|
+
```
|
|
375
341
|
|
|
376
|
-
|
|
342
|
+
然后建议检查:
|
|
377
343
|
|
|
378
|
-
|
|
344
|
+
```bash
|
|
345
|
+
aida rules dedupe
|
|
346
|
+
aida build
|
|
347
|
+
```
|
|
379
348
|
|
|
380
|
-
|
|
381
|
-
2. As the AI works, it naturally calls `aida_task_start`, `aida_log_files`, etc.
|
|
382
|
-
3. Data flows into `run.json` silently
|
|
383
|
-
4. Deviation patterns emerge → AI suggests rules → user confirms → sedimented
|
|
384
|
-
5. AI reads rules next session → output quality improves
|
|
349
|
+
### 6. skills 冲突
|
|
385
350
|
|
|
386
|
-
|
|
351
|
+
详细步骤见:[COMMANDS.md / 场景 6:skills 冲突](./COMMANDS.md#场景-6skills-冲突)
|
|
387
352
|
|
|
388
|
-
|
|
353
|
+
适用场景:
|
|
389
354
|
|
|
390
|
-
|
|
355
|
+
- `.aida/skills.json` 出现 conflict marker
|
|
391
356
|
|
|
392
|
-
|
|
357
|
+
操作:
|
|
393
358
|
|
|
394
|
-
|
|
359
|
+
```bash
|
|
360
|
+
aida merge
|
|
361
|
+
```
|
|
395
362
|
|
|
396
|
-
|
|
363
|
+
或者只处理 skills:
|
|
397
364
|
|
|
365
|
+
```bash
|
|
366
|
+
aida skills merge
|
|
398
367
|
```
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
.aida/memories/modules/*.json ← module memory source, committed to git
|
|
404
|
-
.aida/runs/*/requirement.json ← requirement history source, committed to git
|
|
405
|
-
.aida/runs/*/context.json ← branch context source, committed to git
|
|
406
|
-
↓
|
|
368
|
+
|
|
369
|
+
处理完建议再跑:
|
|
370
|
+
|
|
371
|
+
```bash
|
|
407
372
|
aida build
|
|
408
|
-
↓
|
|
409
|
-
.aida/**/*.md and other non-JSON files ← generated or local-only, gitignored
|
|
410
|
-
.claude/.cursor/.codex/.lingma and peers ← project-local tool artifacts, gitignored
|
|
411
|
-
.mcp.json / AGENTS.md / CLAUDE.md ← project-local integration files, recommended to ignore
|
|
412
|
-
↓
|
|
413
|
-
AI reads its own tool files next session
|
|
414
373
|
```
|
|
415
374
|
|
|
416
|
-
|
|
375
|
+
### 7. 规则重复、相似、怀疑冲突
|
|
376
|
+
|
|
377
|
+
相关操作见:[COMMANDS.md / 场景 5:rules 冲突](./COMMANDS.md#场景-5rules-冲突)
|
|
378
|
+
|
|
379
|
+
适用场景:
|
|
380
|
+
|
|
381
|
+
- 规则越积越多
|
|
382
|
+
- 多分支合并后担心重复
|
|
383
|
+
- 想清理 exact duplicate,再人工看 near duplicate
|
|
417
384
|
|
|
418
|
-
|
|
419
|
-
- commit only JSON source files under `.aida`
|
|
420
|
-
- keep AI tool directories and project integration files local-only
|
|
421
|
-
- `aida init`, `aida migrate-dir`, and `aida migrate-legacy` print a manual reminder when ignored files were already tracked, but do not run destructive Git commands automatically
|
|
385
|
+
操作:
|
|
422
386
|
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
- old `report` files remain derived output; new context recovery uses the migrated JSON memory source
|
|
387
|
+
```bash
|
|
388
|
+
aida rules dedupe
|
|
389
|
+
```
|
|
427
390
|
|
|
428
|
-
|
|
429
|
-
- before coding, search module memory and prefer MCP `aida_memory_pack` or the JSON sources under `.aida/runs/*/requirement.json`, `.aida/runs/*/context.json`, and `.aida/memories/modules/*.json`
|
|
430
|
-
- if the branch context is missing or stale, rebuild it with `aida memory rebuild` or MCP `aida_context_rebuild`
|
|
391
|
+
它会:
|
|
431
392
|
|
|
432
|
-
|
|
393
|
+
- 自动移除 exact duplicate
|
|
394
|
+
- 提示 near duplicate / potential conflict
|
|
433
395
|
|
|
434
|
-
|
|
396
|
+
如果你手工改了 `.aida/rules.json`,记得再跑:
|
|
435
397
|
|
|
436
398
|
```bash
|
|
437
|
-
|
|
438
|
-
aida build # regenerate local AI tool artifacts from updated JSON sources
|
|
399
|
+
aida rules build
|
|
439
400
|
```
|
|
440
401
|
|
|
441
|
-
###
|
|
402
|
+
### 8. 发布前自检建议
|
|
403
|
+
|
|
404
|
+
详细步骤见:[COMMANDS.md / 场景 8:发布前自检](./COMMANDS.md#场景-8发布前自检)
|
|
405
|
+
|
|
406
|
+
如果你准备发包,至少建议在当前项目里跑一遍:
|
|
407
|
+
|
|
408
|
+
```bash
|
|
409
|
+
npm run build
|
|
410
|
+
npm test
|
|
411
|
+
npm pack --dry-run
|
|
412
|
+
aida build
|
|
413
|
+
aida import codex
|
|
414
|
+
aida migrate-legacy codex
|
|
415
|
+
aida rules build
|
|
416
|
+
aida rules dedupe
|
|
417
|
+
```
|
|
442
418
|
|
|
443
|
-
|
|
419
|
+
如果仓库里还有冲突样本,建议再补:
|
|
444
420
|
|
|
445
421
|
```bash
|
|
446
|
-
|
|
447
|
-
aida
|
|
448
|
-
aida build # rebuild local AI tool artifacts
|
|
449
|
-
git add .aida/rules.json
|
|
450
|
-
git commit -m "merge: resolve rules conflict"
|
|
422
|
+
aida rules merge
|
|
423
|
+
aida merge
|
|
451
424
|
```
|
|
452
425
|
|
|
453
|
-
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
## 🧭 命令速览
|
|
454
429
|
|
|
455
|
-
###
|
|
430
|
+
### 初始化与迁移
|
|
456
431
|
|
|
457
432
|
```bash
|
|
458
|
-
aida
|
|
459
|
-
aida
|
|
433
|
+
aida init
|
|
434
|
+
aida migrate-dir
|
|
435
|
+
aida migrate-legacy
|
|
460
436
|
```
|
|
461
437
|
|
|
462
|
-
|
|
438
|
+
- `aida init`:初始化新项目;如果项目已初始化,会进入“新增工具 / 修复缺失产物 / 退出”的分支。
|
|
439
|
+
- `aida migrate-dir`:只做 `.aidevos -> .aida` 目录迁移与路径替换;已经迁过时会安全 no-op。
|
|
440
|
+
- `aida migrate-legacy`:一键迁移老项目;即使项目已经是 `.aida`,也可以重跑,用于补建之前缺失的产物。
|
|
441
|
+
|
|
442
|
+
### 构建与合并
|
|
443
|
+
|
|
444
|
+
```bash
|
|
445
|
+
aida build
|
|
446
|
+
aida merge
|
|
447
|
+
aida rules build
|
|
448
|
+
aida rules dedupe
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
- `aida build`:从 `.aida/*.json` 真源重建规则视图、技能、工具侧产物、MCP 配置和 memory 视图。
|
|
452
|
+
- `aida merge`:解决 `.aida/rules.json` / `.aida/skills.json` 的 git conflict 内容。
|
|
453
|
+
- `aida rules build`:只重建规则相关产物。
|
|
454
|
+
- `aida rules dedupe`:先移除完全重复的规则,再提示近似重复/潜在冲突的规则。
|
|
455
|
+
|
|
456
|
+
详细说明见 [COMMANDS.md](./COMMANDS.md)。
|
|
463
457
|
|
|
464
458
|
---
|
|
465
459
|
|
|
466
|
-
##
|
|
460
|
+
## 🧩 规则去重与冲突判断
|
|
461
|
+
|
|
462
|
+
### 1. 完全重复如何判断
|
|
463
|
+
|
|
464
|
+
AIDA 用 `fingerprint` 判断 exact duplicate。生成规则如下:
|
|
465
|
+
|
|
466
|
+
1. 转小写
|
|
467
|
+
2. 折叠空白字符:多个空格 / 换行 / tab 归一成一个空格
|
|
468
|
+
3. 去掉常见中英文标点
|
|
469
|
+
4. `trim`
|
|
470
|
+
5. 对归一化后的内容做 `sha256`
|
|
471
|
+
6. 取前 12 位作为 `fingerprint`
|
|
472
|
+
|
|
473
|
+
这意味着以下内容会被视为同一条规则:
|
|
474
|
+
|
|
475
|
+
- `禁止任何形式的臆想,不清楚必须询问`
|
|
476
|
+
- ` 禁止任何形式的臆想,不清楚必须询问 `
|
|
477
|
+
- `禁止任何形式的臆想,不清楚必须询问!`
|
|
478
|
+
|
|
479
|
+
### 2. 近似重复 / 潜在冲突如何判断
|
|
480
|
+
|
|
481
|
+
`aida rules dedupe` 不只看 `fingerprint`。对于**不同 fingerprint** 的规则,它会继续做近似判断:
|
|
482
|
+
|
|
483
|
+
- 只比较同一 `category` 下的规则
|
|
484
|
+
- 用和 `fingerprint` 一致的归一化规则做文本清洗
|
|
485
|
+
- 按空格切词
|
|
486
|
+
- 过滤长度小于等于 1 的 token
|
|
487
|
+
- 计算 Jaccard 相似度
|
|
488
|
+
- 相似度 `>= 0.4` 时,标记为 potential duplicate
|
|
489
|
+
|
|
490
|
+
这类规则不会自动合并,只会提示人工处理。原因很简单:语义相近不代表可以安全替换。
|
|
491
|
+
|
|
492
|
+
### 3. 当前行为
|
|
467
493
|
|
|
468
|
-
-
|
|
469
|
-
-
|
|
470
|
-
-
|
|
471
|
-
-
|
|
472
|
-
- [ ] Cross-project rule sharing — team-wide AI knowledge base
|
|
494
|
+
- `rules add`:按 `fingerprint` 阻止新增完全重复规则
|
|
495
|
+
- `merge`:按 `fingerprint` 合并冲突两侧规则
|
|
496
|
+
- `build`:分发规则视图时会过滤 exact duplicate,避免生成产物里重复出现
|
|
497
|
+
- `rules dedupe`:会把 `rules.json` 里已经存在的 exact duplicate 清掉,并继续提示 near duplicate
|
|
473
498
|
|
|
474
499
|
---
|
|
475
500
|
|
|
476
|
-
##
|
|
501
|
+
## 🔁 重复执行与覆盖策略
|
|
477
502
|
|
|
478
|
-
|
|
479
|
-
|---|---|
|
|
480
|
-
| **Runtime** | Node.js + TypeScript, zero dependencies |
|
|
481
|
-
| **Dashboard** | React 19 + ECharts + Tailwind CSS 4 |
|
|
482
|
-
| **Protocol** | MCP over stdio (JSON-RPC 2.0) |
|
|
483
|
-
| **Data** | Local JSON files, no database |
|
|
484
|
-
| **Real-time** | Server-Sent Events (SSE) |
|
|
485
|
-
| **i18n** | Chinese / English, switchable in dashboard |
|
|
503
|
+
重复执行的目标是**补全缺失,不破坏用户手工内容**。当前策略如下。
|
|
486
504
|
|
|
487
|
-
|
|
505
|
+
### 安全重跑的命令
|
|
488
506
|
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
507
|
+
- `aida init`
|
|
508
|
+
- 未初始化时:正常初始化
|
|
509
|
+
- 已初始化时:进入交互分支,可选择新增工具或修复缺失文件
|
|
510
|
+
- `aida migrate-dir`
|
|
511
|
+
- 已经使用 `.aida` 时:直接 no-op
|
|
512
|
+
- `aida migrate-legacy`
|
|
513
|
+
- 已迁移项目可重跑
|
|
514
|
+
- 适合“老版本包生成不完整,升级后再补建”的场景
|
|
492
515
|
|
|
493
|
-
|
|
516
|
+
### 不会直接冲掉用户内容的部分
|
|
494
517
|
|
|
495
|
-
|
|
518
|
+
- `AGENTS.md` / `CLAUDE.md`
|
|
519
|
+
- 只维护 AIDA 注入区块
|
|
520
|
+
- 已有自定义内容会尽量保留
|
|
521
|
+
- `.mcp.json` / `.cursor/mcp.json` / `.lingma/mcp.json`
|
|
522
|
+
- 走 JSON merge,把 `aida` MCP server 合进去
|
|
523
|
+
- `.codex/config.toml`
|
|
524
|
+
- 只维护 `[mcp_servers.aida]` 片段,保留其他配置
|
|
525
|
+
- `.gitignore`
|
|
526
|
+
- 只追加缺失条目,不清空现有内容
|
|
496
527
|
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
npm install
|
|
501
|
-
npm test
|
|
502
|
-
```
|
|
528
|
+
### 会被重建覆盖的部分
|
|
529
|
+
|
|
530
|
+
以下属于 **AIDA 受管生成产物**,重复执行会按 `.aida/*.json` 真源重建:
|
|
503
531
|
|
|
504
|
-
|
|
532
|
+
- `.aida/rules/*.md`
|
|
533
|
+
- `.aida/memories/modules/*.md`
|
|
534
|
+
- `.aida/runs/*/context.md`
|
|
535
|
+
- `.cursor/rules/aida/*`
|
|
536
|
+
- `.codex/rules/aida/*`
|
|
537
|
+
- `.claude/rules/aida/*`
|
|
538
|
+
- `.lingma/rules/*`
|
|
539
|
+
- 工具侧由 AIDA 分发的 skill / command 文件
|
|
505
540
|
|
|
506
|
-
|
|
541
|
+
这部分不建议手改。若手改,再次 `build` / `repair` / `migrate-legacy` 时会被覆盖,这是预期行为。
|
|
542
|
+
|
|
543
|
+
### 推荐原则
|
|
544
|
+
|
|
545
|
+
- 想长期保留的规则、技能、上下文:改 `.aida/*.json` 真源
|
|
546
|
+
- 只想修复缺失产物:优先重跑 `aida init -> repair` 或 `aida migrate-legacy`
|
|
547
|
+
- 不要把人工内容写进 AIDA 受管生成目录
|
|
507
548
|
|
|
508
549
|
---
|
|
509
550
|
|
|
510
|
-
|
|
551
|
+
## 📁 数据沉淀与绩效汇报
|
|
511
552
|
|
|
512
|
-
|
|
513
|
-
**Add data, and your AI gets smarter every run.**
|
|
553
|
+
AIDA 不只是可视化 —— 它**沉淀数据**。每次运行都积累结构化数据,时间越长价值越大。
|
|
514
554
|
|
|
515
|
-
|
|
555
|
+
```
|
|
556
|
+
第 1 周:47 个任务、23 个偏差、5 个 Bug、6 条规则、4064 行代码
|
|
557
|
+
第 4 周:180+ 任务、偏差率持续下降、15 条规则、完整质量历史
|
|
558
|
+
一个季度:完整的开发记录 —— 可导出、可分析、可汇报
|
|
559
|
+
```
|
|
516
560
|
|
|
517
|
-
|
|
561
|
+
所有数据都在 `.aida/` 里,格式是结构化 JSON。没有厂商锁定,随时可以导出、查询或接入别的报表系统。
|