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.
Files changed (65) hide show
  1. package/README.en.md +91 -0
  2. package/README.md +340 -296
  3. package/README.zh-CN.md +6 -515
  4. package/dist/cli/commands/import.d.ts.map +1 -1
  5. package/dist/cli/commands/import.js +4 -3
  6. package/dist/cli/commands/import.js.map +1 -1
  7. package/dist/cli/commands/init.d.ts.map +1 -1
  8. package/dist/cli/commands/init.js +19 -33
  9. package/dist/cli/commands/init.js.map +1 -1
  10. package/dist/cli/commands/log.d.ts.map +1 -1
  11. package/dist/cli/commands/log.js +2 -1
  12. package/dist/cli/commands/log.js.map +1 -1
  13. package/dist/cli/commands/migrate-legacy.d.ts.map +1 -1
  14. package/dist/cli/commands/migrate-legacy.js +5 -4
  15. package/dist/cli/commands/migrate-legacy.js.map +1 -1
  16. package/dist/cli/commands/rules.d.ts +5 -0
  17. package/dist/cli/commands/rules.d.ts.map +1 -1
  18. package/dist/cli/commands/rules.js +31 -11
  19. package/dist/cli/commands/rules.js.map +1 -1
  20. package/dist/mcp/server.d.ts.map +1 -1
  21. package/dist/mcp/server.js +247 -12
  22. package/dist/mcp/server.js.map +1 -1
  23. package/dist/utils/ai-build.d.ts +1 -0
  24. package/dist/utils/ai-build.d.ts.map +1 -1
  25. package/dist/utils/ai-build.js +77 -19
  26. package/dist/utils/ai-build.js.map +1 -1
  27. package/dist/utils/bootstrap.d.ts +33 -0
  28. package/dist/utils/bootstrap.d.ts.map +1 -0
  29. package/dist/utils/bootstrap.js +143 -0
  30. package/dist/utils/bootstrap.js.map +1 -0
  31. package/dist/utils/fs.d.ts +1 -0
  32. package/dist/utils/fs.d.ts.map +1 -1
  33. package/dist/utils/fs.js +20 -7
  34. package/dist/utils/fs.js.map +1 -1
  35. package/dist/utils/guide.d.ts.map +1 -1
  36. package/dist/utils/guide.js +48 -59
  37. package/dist/utils/guide.js.map +1 -1
  38. package/dist/utils/import.d.ts +2 -0
  39. package/dist/utils/import.d.ts.map +1 -1
  40. package/dist/utils/import.js +127 -30
  41. package/dist/utils/import.js.map +1 -1
  42. package/dist/utils/memory.d.ts.map +1 -1
  43. package/dist/utils/memory.js +7 -4
  44. package/dist/utils/memory.js.map +1 -1
  45. package/dist/utils/paths.d.ts +2 -0
  46. package/dist/utils/paths.d.ts.map +1 -1
  47. package/dist/utils/paths.js +4 -0
  48. package/dist/utils/paths.js.map +1 -1
  49. package/dist/utils/prompt.d.ts +1 -0
  50. package/dist/utils/prompt.d.ts.map +1 -1
  51. package/dist/utils/prompt.js +20 -2
  52. package/dist/utils/prompt.js.map +1 -1
  53. package/dist/utils/rules.d.ts +4 -0
  54. package/dist/utils/rules.d.ts.map +1 -1
  55. package/dist/utils/rules.js +60 -3
  56. package/dist/utils/rules.js.map +1 -1
  57. package/dist/utils/run-data.d.ts +2 -1
  58. package/dist/utils/run-data.d.ts.map +1 -1
  59. package/dist/utils/run-data.js +11 -0
  60. package/dist/utils/run-data.js.map +1 -1
  61. package/dist/utils/skills.d.ts +6 -1
  62. package/dist/utils/skills.d.ts.map +1 -1
  63. package/dist/utils/skills.js +87 -14
  64. package/dist/utils/skills.js.map +1 -1
  65. package/package.json +1 -1
package/README.md CHANGED
@@ -2,516 +2,560 @@
2
2
 
3
3
  # AIDA
4
4
 
5
- ### Make Vibe Coding Measurable.
5
+ ### Vibe Coding 数据化。
6
6
 
7
- Every vibe coding session generates massive insights — deviations, patterns, quality signals.<br>
8
- *But you close the terminal, and all of it vanishes. Next session, you start blind again.*<br>
9
- **AIDA captures structured data at every development checkpoint, visualizes it in a live dashboard, and distills deviation patterns into rules that make your AI write better code — every single run.**
7
+ 每一次 Vibe Coding 都在产生大量信号 —— 偏差、模式、质量数据。<br>
8
+ *但你关掉终端,这些全部消失。下次对话,继续盲写。*<br>
9
+ **AIDA 在每个开发节点采集结构化数据,用看板可视化,再把偏差规律沉淀成规则 —— 让你的 AI 每次运行都写出更符合预期的代码。**
10
10
 
11
- One line to integrate. Zero workflow changes.
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
- [![npm version](https://img.shields.io/badge/npm-v1.1.3-0066ff)](https://www.npmjs.com/package/ai-dev-analytics)
17
+ [![npm version](https://img.shields.io/badge/npm-v1.1.6-0066ff)](https://www.npmjs.com/package/ai-dev-analytics)
18
18
  [![license](https://img.shields.io/github/license/LWTlong/ai-dev-analytics?color=%23333)](./LICENSE)
19
19
  [![node](https://img.shields.io/node/v/ai-dev-analytics?color=%23339933)](https://nodejs.org)
20
- [![tests](https://img.shields.io/badge/tests-passing-brightgreen)](#testing)
21
- [![Live Demo](https://img.shields.io/badge/🎯_Live_Demo-Interactive_Dashboard-FF4B4B)](https://lwtlong.github.io/ai-dev-analytics/)
20
+ [![tests](https://img.shields.io/badge/tests-passing-brightgreen)](#测试)
21
+ [![在线 Demo](https://img.shields.io/badge/🎯_在线Demo-交互式看板-FF4B4B)](https://lwtlong.github.io/ai-dev-analytics/)
22
22
  [![ai-dev-analytics MCP server](https://glama.ai/mcp/servers/LWTlong/ai-dev-analytics/badges/score.svg)](https://glama.ai/mcp/servers/LWTlong/ai-dev-analytics)
23
23
 
24
24
  [![ai-dev-analytics MCP server](https://glama.ai/mcp/servers/LWTlong/ai-dev-analytics/badges/card.svg)](https://glama.ai/mcp/servers/LWTlong/ai-dev-analytics)
25
25
 
26
- [One-Line Setup](#-30-second-setup) · [Data-Driven Loop](#-the-data-driven-loop) · [Dashboard](#-the-dashboard) · [SOP Workflow](#-standardized-ai-development-workflow) · [Data for Reports](#-data-sedimentation--performance-reports) · [Commands](./COMMANDS.md) · [Docs](./docs/INDEX.md) · [中文文档](./README.zh-CN.md)
26
+ [一行接入](#-30-秒上手) · [场景操作指南](#-场景操作指南) · [数据驱动闭环](#-数据驱动闭环) · [命令速览](#-命令速览) · [重复执行与覆盖策略](#-重复执行与覆盖策略) · [规则去重与冲突判断](#-规则去重与冲突判断) · [命令文档](./COMMANDS.md) · [文档导航](./docs/INDEX.md) · [English](./README.en.md)
27
27
 
28
28
  </div>
29
29
 
30
30
  ---
31
31
 
32
- ## The Insight
32
+ ## 一个洞察
33
33
 
34
- Vibe coding is powerful. But it's a black box.
34
+ Vibe Coding 很强。但它是一个黑箱。
35
35
 
36
- You tell Claude to build a feature. It writes code. You ship it. But you have **zero visibility** into what actually happened:
36
+ 你让 Claude 写一个功能,它写了,你 ship 了。但你对过程**零可见性**:
37
37
 
38
- - How many tasks did AI complete? How long did each take?
39
- - Where did AI deviate from your project conventions? Why?
40
- - Which deviations keep recurring? What rules would prevent them?
41
- - What's the bug rate? Which phases produce the most bugs?
38
+ - AI 完成了多少任务?每个任务花了多长时间?
39
+ - AI 在哪里偏离了你的项目规范?为什么?
40
+ - 哪些偏差反复出现?加什么规则能根治?
41
+ - Bug 率多少?哪个阶段产出最多 Bug?
42
42
 
43
- Without data, you can't improve. You're just vibing — over and over, with the same blind spots.
43
+ 没有数据,你就无法改进。你只是在一遍又一遍地 vibe —— 带着同样的盲区。
44
44
 
45
- **AIDA makes the invisible visible.** It collects structured data from every vibe coding session, renders it in a real-time dashboard, and turns deviation patterns into project rules. Your AI doesn't just code — it **learns your project**.
45
+ **AIDA 让不可见变可见。** 它在每次 vibe coding 过程中采集结构化数据,用实时看板渲染,再把偏差模式沉淀成项目规则。你的 AI 不再只是写代码 —— 它**学习你的项目**。
46
46
 
47
47
  ---
48
48
 
49
- ## 🔄 The Data-Driven Loop
49
+ ## 🔄 数据驱动闭环
50
50
 
51
- This is the core of AIDA **data in, rules out, better code next time.**
51
+ 这是 AIDA 的核心 —— **数据进来,规则出去,代码越来越好。**
52
52
 
53
53
  ```
54
- Vibe Coding Session
54
+ Vibe Coding 过程
55
55
 
56
- AIDA silently collects structured data
57
- (tasks, deviations, bugs, reviews, files, timeline)
56
+ AIDA 静默采集结构化数据
57
+ (任务、偏差、Bug、自检、文件变更、时间线)
58
58
 
59
- Dashboard visualizes patterns
60
- "9 deviations → 56% hallucination, 44% rule-missing"
59
+ 看板可视化呈现规律
60
+ "9 个偏差 → 56% 幻觉, 44% 规则缺失"
61
61
 
62
- Deviation patterns identified → AI suggests rules user confirms sedimented
63
- .aida/rules.json ← your AI's growing knowledge base
62
+ 发现偏差规律 → AI 建议沉淀规则用户确认写入规则库
63
+ .aida/rules.json ← 你的 AI 知识库在成长
64
64
 
65
- AI reads rules next session same mistakes eliminated
65
+ AI 下次读取规则同样的错误被消除
66
66
 
67
- Repeat each cycle, AI output gets closer to your expectations
67
+ 循环往复 —— 每一轮,AI 输出都更接近你的预期
68
68
  ```
69
69
 
70
- **Real data from a production project:**
70
+ **来自真实生产项目的数据:**
71
71
 
72
- | Run | Deviations | What happened | Rules sedimented |
73
- |-----|-----------|---------------|-----------------|
74
- | #1 | 23 deviations across 47 tasks | AI misused components, wrong layouts, incorrect API patterns | 6 project-specific rules |
75
- | #2 | **0 repeat deviations** | AI read the rules. Same patterns — zero errors. | — |
72
+ | 运行 | 偏差情况 | 发生了什么 | 沉淀的规则 |
73
+ |------|---------|-----------|-----------|
74
+ | 1 | 47 个任务产生 23 个偏差 | AI 组件用错、布局写反、API 模式不对 | 沉淀 6 条项目专属规则 |
75
+ | 2 | **零重复偏差** | AI 读了规则,相同模式的错误归零 | — |
76
76
 
77
- **Step 1: See *why* AI deviates** Root cause breakdown reveals whether issues stem from hallucination, missing rules, or insufficient context.
77
+ **第一步:看清 AI *为什么*出错** —— 根因分布一目了然:是 AI 幻觉、规则缺失、还是上下文不足?
78
78
 
79
- ![Deviation Root Cause](https://raw.githubusercontent.com/LWTlong/ai-dev-analytics/main/docs/deviation-root-cause.png)
79
+ ![偏差根因分布](https://raw.githubusercontent.com/LWTlong/ai-dev-analytics/main/docs/deviation-root-cause.png)
80
80
 
81
- **Step 2: See *where* AI deviates** Category distribution pinpoints the exact areas: UI spacing, layout, component usage, API patterns.
81
+ **第二步:看清 AI *在哪*出错** —— 类别分布精准定位:UI 间距、布局结构、组件使用、API 模式。
82
82
 
83
- ![Deviation Category Distribution](https://raw.githubusercontent.com/LWTlong/ai-dev-analytics/main/docs/deviation-category.png)
83
+ ![偏差类别分布](https://raw.githubusercontent.com/LWTlong/ai-dev-analytics/main/docs/deviation-category.png)
84
84
 
85
- **Step 3: Watch rules compound** — As rules accumulate (green line), the same deviation patterns stop recurring.
85
+ **第三步:看规则的复利效应** —— 随着规则积累,重复偏差会逐步下降。
86
86
 
87
- ![Deviation & Rule Trend](https://raw.githubusercontent.com/LWTlong/ai-dev-analytics/main/docs/deviation-rule-trend.png)
87
+ ![偏差与规则趋势](https://raw.githubusercontent.com/LWTlong/ai-dev-analytics/main/docs/deviation-rule-trend.png)
88
88
 
89
- The `.aida/rules.json` file is your **project-specific AI knowledge base**. It grows with every run. The more you use AI, the smarter it gets at *your* project.
89
+ `.aida/rules.json` 就是你的**项目专属 AI 知识库**。用 AI 写得越多,它对*你的项目*就越懂。
90
90
 
91
91
  ---
92
92
 
93
- ## 📊 The Dashboard
93
+ ## 📊 数据看板
94
94
 
95
- **Your entire vibe coding process — structured, visualized, actionable.**
95
+ **你的整个 Vibe Coding 过程 —— 结构化、可视化、可操作。**
96
96
 
97
97
  ![Dashboard](https://raw.githubusercontent.com/LWTlong/ai-dev-analytics/main/docs/dashboard.png)
98
98
 
99
- > **[Live Demo →](https://lwtlong.github.io/ai-dev-analytics/)** Real anonymized project data. No install needed.
99
+ > **[在线 Demo →](https://lwtlong.github.io/ai-dev-analytics/)** 真实脱敏数据,无需安装。
100
100
 
101
- AIDA captures every dimension of AI-assisted development and turns it into interactive charts:
101
+ AIDA 全方位采集 AI 辅助开发的每个维度,转化为交互式图表:
102
102
 
103
- | What you see | Why it matters |
103
+ | 你能看到什么 | 为什么重要 |
104
104
  |---|---|
105
- | **Deviation root cause breakdown** | Know *why* AI fails rule-missing? hallucination? context gap? |
106
- | **Deviation category distribution** | Know *where* AI fails layout? components? API? |
107
- | **Deviation & rule trend over time** | Watch deviations drop as rules accumulate |
108
- | **Bug severity distribution** | Track quality which phases produce critical bugs? |
109
- | **Self-review pass rate trend** | Is AI code getting better or worse over time? |
110
- | **Task completion by phase** | See progress across the full development lifecycle |
111
- | **File modification hotspots** | Which files keep getting changed? Where are the pain points? |
112
- | **Rules table with source mapping** | Every rule links back to the deviation that created it |
113
- | **Full development timeline** | Every task, bug, review, deviation — chronologically |
114
- | **Project overview (team view)** | Cross-branch stats, developer comparison, requirement status |
105
+ | **偏差根因分布** | 知道 AI *为什么*出错 —— 规则缺失?幻觉?上下文不足? |
106
+ | **偏差类别分布** | 知道 AI *在哪*出错 —— 布局?组件?API |
107
+ | **偏差 & 规则趋势图** | 看着偏差随规则积累而下降 |
108
+ | **Bug 严重度分布** | 追踪质量 —— 哪个阶段产出严重 Bug? |
109
+ | **自检通过率趋势** | AI 代码质量是在变好还是变差? |
110
+ | **各阶段任务完成** | 看到完整开发生命周期的进度 |
111
+ | **文件修改热点** | 哪些文件反复被改?痛点在哪? |
112
+ | **规则溯源表** | 每条规则都关联到产生它的偏差 |
113
+ | **完整开发时间线** | 每个任务、Bug、审查、偏差 —— 按时间排列 |
114
+ | **项目总览(团队视角)** | 跨分支统计、开发者对比、需求状态 |
115
115
 
116
- Every KPI card is clickable — drill down into task details, deviation root causes, review reports, and file changes.
116
+ 运行 `npx ai-dev-analytics dashboard`,几秒钟看到**你自己项目的数据**。
117
117
 
118
- Run `npx ai-dev-analytics dashboard` to see **your own project's data** in seconds.
118
+ ### 🔒 100% 本地。零外部请求。
119
119
 
120
- ### 🔒 100% Local. Zero External Requests.
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-Second Setup
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
- ### Add one MCP config inside the project — that's the entire integration.
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
- No SDK. No wrapper. No code changes. Add this to your project root `.mcp.json`, and AIDA starts collecting data the next time your AI writes code. It works silently — zero workflow changes.
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
- > *Tip: If `npx` is slow, install globally first: `npm install -g ai-dev-analytics`, then change the command to `"aida"`. Global install also gives you the `aida` CLI command (e.g. `aida dashboard`, `aida init`).*
134
+ > 如果 `npx` 较慢,可以先全局安装:`npm install -g ai-dev-analytics`,然后把 command 改成 `"aida"`。全局安装后也可以直接使用 `aida` 命令。
149
135
 
150
136
  <details>
151
- <summary>Cursor / VS Code Copilot / Windsurf / Lingma</summary>
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** project-local MCP config file:
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 (通义灵码)** `.lingma/mcp.json`:
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
- ### See your data
188
+ ### 打开看板
203
189
 
204
190
  ```bash
205
191
  npx ai-dev-analytics dashboard
206
192
  ```
207
193
 
208
- Open `http://localhost:2375` — real-time updates via SSE, Chinese/English toggle built in.
194
+ 打开 `http://localhost:2375`,即可查看本地数据看板。
209
195
 
210
196
  ---
211
197
 
212
- ## 🤔 Why Data Changes Everything
198
+ ## 🧭 场景操作指南
213
199
 
214
- **Without data, every vibe coding session starts from zero. With data, each one builds on the last.**
200
+ 下面这些是最常见的落地场景。想看详细行为、重复执行语义和边界说明,直接跳到 [COMMANDS.md](./COMMANDS.md)。
215
201
 
216
- | Vibing blind | Vibing with data |
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
- **Vibe coding without data is just vibing. Add data, and it becomes a compounding system.**
204
+ 详细步骤见:[COMMANDS.md / 场景 1:新项目初始化](./COMMANDS.md#场景-1新项目初始化)
224
205
 
225
- ---
206
+ 适用场景:
226
207
 
227
- ## 🎯 Use Cases
208
+ - 仓库里还没有 `.aida`
209
+ - 想从零接入 AIDA
228
210
 
229
- **Vibe Coder — "I want my AI to actually learn my project"**
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
- **Tech Lead — "I need to see what AI is actually doing across the team"**
233
- > Team of 4 uses Claude Code daily. Open the project overview: Developer A has 2 deviations + 5 sedimented rules (AI is learning). Developer B has 15 deviations + 0 rules (AI is not learning). The data tells you exactly where to intervene.
213
+ ```bash
214
+ aida init
215
+ ```
234
216
 
235
- **Senior Engineer — "Show me the data for my performance review"**
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
- **Team adopting vibe coding — "How do we go from chaotic to systematic?"**
239
- > Start collecting data. After 2 weeks, the dashboard shows clear patterns: which types of tasks AI handles well, where it consistently deviates, what rules are needed. You go from "AI sometimes works" to "AI works predictably because we've taught it our conventions."
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
- ## 📁 Data Sedimentation & Performance Reports
234
+ 适用场景:
244
235
 
245
- AIDA doesn't just visualize — it **sediments**. Every run accumulates structured data that compounds over time.
236
+ - 项目还在使用旧 `.aidevos`
237
+ - 想把旧 rules / skills / run 数据迁进当前 AIDA 体系
246
238
 
239
+ 最省事的方式:
240
+
241
+ ```bash
242
+ aida migrate-legacy
247
243
  ```
248
- Week 1: 47 tasks, 23 deviations, 5 bugs, 6 rules, 4064 lines
249
- Week 4: 180+ tasks, deviation rate dropping, 15 rules, full quality history
250
- Quarter: Complete development record — exportable, analyzable, presentable
244
+
245
+ 如果你想显式指定 baseline tool:
246
+
247
+ ```bash
248
+ aida migrate-legacy cursor
249
+ aida migrate-legacy codex
251
250
  ```
252
251
 
253
- **What you can do with sedimented data:**
252
+ 如果你想拆开执行:
254
253
 
255
- | Scenario | What you get |
256
- |----------|-------------|
257
- | **H1 / H2 Performance Review** | Tasks completed, quality metrics (pass rate, bug rate), code volume, rules contributed — all with numbers, not feelings |
258
- | **Annual Summary** | Cross-project trends, deviation patterns over time, rule growth curve, total output |
259
- | **Sprint Retrospective** | What went wrong, what rules were added, which phases improved, measurable quality delta |
260
- | **Team Leader Report** | Per-developer stats, deviation hotspots, which modules need better rules, team-wide AI maturity |
261
- | **Project Handover** | Full development history — someone new can see exactly what happened, what rules exist, and why |
254
+ ```bash
255
+ aida migrate-dir
256
+ aida import cursor
257
+ aida migrate
258
+ aida memory rebuild
259
+ aida build
260
+ ```
262
261
 
263
- All data is structured JSON in `.aida/`. No vendor lock-in. Export it, query it, pipe it into any reporting tool. Run `aida report` to generate a summary at any time.
262
+ ### 3. 已经初始化过,但产物缺失或版本升级后想补齐
264
263
 
265
- ---
264
+ 详细步骤见:[COMMANDS.md / 场景 3:项目已初始化,但想补齐缺失产物](./COMMANDS.md#场景-3项目已初始化但想补齐缺失产物)
265
+
266
+ 适用场景:
266
267
 
267
- ## ⚙️ How It Works
268
+ - `AGENTS.md` / `CLAUDE.md` / `.codex/config.toml` 被删了
269
+ - 旧版本包生成不完整
270
+ - 发新包后想在老项目里补齐生成产物
268
271
 
269
- ```mermaid
270
- flowchart LR
271
- A["Your AI Tool\nClaude Code / Cursor"] -->|Vibe Coding| B{"AIDA MCP Server\n10 Tools"}
272
- B -->|Silent Data Collection| C[".aida/run.json"]
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
- Your AI tool calls AIDA's MCP tools automatically as it works. You don't invoke them manually. No prompts to write, no scripts to run — just vibe code as usual.
278
+ 然后在交互里选:
279
279
 
280
- <details>
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
- </details>
282
+ 或者直接跑:
283
+
284
+ ```bash
285
+ aida build
286
+ aida migrate-legacy
287
+ ```
297
288
 
298
- ### Data Model
289
+ 其中:
299
290
 
300
- All data is local JSON. No database, no cloud.
291
+ - `aida build` 适合“真源没问题,只想重建产物”
292
+ - `aida migrate-legacy` 适合“历史项目想顺手补齐 memory / import / build 全链路”
301
293
 
302
- | Level | File | What it contains |
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
- All structured JSON ready for export, analysis, or feeding into reports.
296
+ 详细步骤见:[COMMANDS.md / 场景 4:import build 怎么配合](./COMMANDS.md#场景-4import-和-build-怎么配合)
310
297
 
311
- ---
298
+ 适用场景:
312
299
 
313
- ## 🚀 Standardized AI Development Workflow
300
+ - 项目里已经有 `.cursor/`、`.claude/`、`.codex/` 本地规则
301
+ - 想把分散资产统一回收到 `.aida/rules.json` / `.aida/skills.json`
314
302
 
315
- Beyond data collection, AIDA provides a **complete SOP for AI-assisted development** — a standardized workflow that turns chaotic vibe coding into a repeatable, measurable process.
303
+ 操作:
316
304
 
317
305
  ```bash
318
- aida init # Select "Full workflow"
319
- aida start # Create a development run
306
+ aida import
307
+ aida import cursor
308
+ aida import codex
320
309
  ```
321
310
 
322
- This enables **14 AI Skills** orchestrated as a full development pipeline:
311
+ 经验上:
323
312
 
324
- ```
325
- PRD Ingestion Requirement Analysis → Task Decomposition
326
-
327
- Code Generation → Self-Review → Bug Fix → Deviation Fix
328
-
329
- Data Collection → Pattern Analysis → Rule Sedimentation
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
- | Phase | What AI does | What AIDA records |
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
- Every step produces structured data. Every deviation can become a rule. The SOP ensures nothing falls through the cracks — and the data makes the whole process visible and improvable.
324
+ 详细步骤见:[COMMANDS.md / 场景 5:rules 冲突](./COMMANDS.md#场景-5rules-冲突)
344
325
 
345
- ---
326
+ 适用场景:
346
327
 
347
- <details>
348
- <summary>🖥 CLI Reference</summary>
328
+ - `git pull` / `git merge` 后 `.aida/rules.json` 出现 conflict marker
329
+
330
+ 操作:
349
331
 
350
332
  ```bash
351
- aida init # Interactive project setup
352
- aida migrate-legacy # Upgrade legacy .aidevos project in one command
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
- </details>
336
+ 如果你想顺手把 `skills.json` 也一起处理:
372
337
 
373
- <details>
374
- <summary>🔌 MCP Integration Details</summary>
338
+ ```bash
339
+ aida merge
340
+ ```
375
341
 
376
- AIDA uses [Model Context Protocol](https://modelcontextprotocol.io/) — the standard way for AI tools to interact with external systems. The MCP server runs over stdio with zero dependencies.
342
+ 然后建议检查:
377
343
 
378
- **What happens when you add the config:**
344
+ ```bash
345
+ aida rules dedupe
346
+ aida build
347
+ ```
379
348
 
380
- 1. Your AI tool discovers AIDA's data + memory tools via MCP
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
- **No prompts to write. No scripts to run. No workflow to learn.**
351
+ 详细步骤见:[COMMANDS.md / 场景 6:skills 冲突](./COMMANDS.md#场景-6skills-冲突)
387
352
 
388
- </details>
353
+ 适用场景:
389
354
 
390
- ---
355
+ - `.aida/skills.json` 出现 conflict marker
391
356
 
392
- ## 📐 Rules System — Team Workflow
357
+ 操作:
393
358
 
394
- Rules are the compounding asset of AIDA. Here's how they work in a team setting.
359
+ ```bash
360
+ aida merge
361
+ ```
395
362
 
396
- ### Architecture
363
+ 或者只处理 skills:
397
364
 
365
+ ```bash
366
+ aida skills merge
398
367
  ```
399
- .aida/rules.json ← rules source of truth, committed to git
400
- .aida/skills.json ← skills source of truth, committed to git
401
- .aida/config.json ← project config source of truth, committed to git
402
- .aida/memories/index.json ← module memory index, committed to git
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
- `aida build` writes generated rules, skills, memory views, and MCP config into AI tool directories inside the current project or AIDA view directories. Never edit generated `.md` files manually.
375
+ ### 7. 规则重复、相似、怀疑冲突
376
+
377
+ 相关操作见:[COMMANDS.md / 场景 5:rules 冲突](./COMMANDS.md#场景-5rules-冲突)
378
+
379
+ 适用场景:
380
+
381
+ - 规则越积越多
382
+ - 多分支合并后担心重复
383
+ - 想清理 exact duplicate,再人工看 near duplicate
417
384
 
418
- Recommended Git strategy:
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
- Legacy migration note:
424
- - `aida migrate-legacy` now also migrates historical `run.json`, `requirement.json`, and `analysis.md` into `.aida/runs/*/context.json` and `.aida/memories/modules/*.json`
425
- - when multiple baseline tools are detected, it auto-selects based on project config order and built-in priority instead of blocking on an interactive prompt
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
- Runtime recovery note:
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
- ### Daily workflow
393
+ - 自动移除 exact duplicate
394
+ - 提示 near duplicate / potential conflict
433
395
 
434
- After pulling changes that include new rules:
396
+ 如果你手工改了 `.aida/rules.json`,记得再跑:
435
397
 
436
398
  ```bash
437
- git pull
438
- aida build # regenerate local AI tool artifacts from updated JSON sources
399
+ aida rules build
439
400
  ```
440
401
 
441
- ### Merge conflict resolution
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
- When two developers add rules on separate branches and merge, `rules.json` may get a standard git conflict. Resolve it in one command:
419
+ 如果仓库里还有冲突样本,建议再补:
444
420
 
445
421
  ```bash
446
- # After git merge produces a conflict in rules.json:
447
- aida rules merge # fingerprint union — no duplicates, no lost rules
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
- `aida rules merge` uses fingerprint deduplication: if two rules have identical content, only one is kept. If they differ, both are kept and the incoming rule is renumbered to avoid ID collisions.
426
+ ---
427
+
428
+ ## 🧭 命令速览
454
429
 
455
- ### Managing rules over time
430
+ ### 初始化与迁移
456
431
 
457
432
  ```bash
458
- aida rules list # list all rules grouped by category
459
- aida rules dedupe # surface rules with >40% keyword overlap for manual review
433
+ aida init
434
+ aida migrate-dir
435
+ aida migrate-legacy
460
436
  ```
461
437
 
462
- Rules have a `status` field (`active` / `deprecated`). When project conventions evolve, deprecate old rules — they stop appearing in the `.md` files your AI reads, but remain in `rules.json` as an audit trail.
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
- ## Roadmap
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
- - [ ] Export reports as PDF / HTML (H1/H2 performance reviews)
469
- - [ ] Historical trend analysis — deviation reduction curves over time
470
- - [ ] Team dashboard with multi-project aggregation
471
- - [ ] VS Code extension for inline deviation alerts
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
- ## Tech Stack
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
- ## Testing
505
+ ### 安全重跑的命令
488
506
 
489
- ```bash
490
- npm test # 82 tests across 29 suites
491
- ```
507
+ - `aida init`
508
+ - 未初始化时:正常初始化
509
+ - 已初始化时:进入交互分支,可选择新增工具或修复缺失文件
510
+ - `aida migrate-dir`
511
+ - 已经使用 `.aida` 时:直接 no-op
512
+ - `aida migrate-legacy`
513
+ - 已迁移项目可重跑
514
+ - 适合“老版本包生成不完整,升级后再补建”的场景
492
515
 
493
- ## Contributing
516
+ ### 不会直接冲掉用户内容的部分
494
517
 
495
- Issues, feature requests, and PRs are welcome.
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
- ```bash
498
- git clone https://github.com/LWTlong/ai-dev-analytics.git
499
- cd ai-dev-analytics
500
- npm install
501
- npm test
502
- ```
528
+ ### 会被重建覆盖的部分
529
+
530
+ 以下属于 **AIDA 受管生成产物**,重复执行会按 `.aida/*.json` 真源重建:
503
531
 
504
- ## License
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
- [MIT](./LICENSE)
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
- <div align="center">
551
+ ## 📁 数据沉淀与绩效汇报
511
552
 
512
- **Vibe coding without data is just vibing.**<br>
513
- **Add data, and your AI gets smarter every run.**
553
+ AIDA 不只是可视化 —— 它**沉淀数据**。每次运行都积累结构化数据,时间越长价值越大。
514
554
 
515
- [Get Started in 30 Seconds →](#-30-second-setup)
555
+ ```
556
+ 第 1 周:47 个任务、23 个偏差、5 个 Bug、6 条规则、4064 行代码
557
+ 第 4 周:180+ 任务、偏差率持续下降、15 条规则、完整质量历史
558
+ 一个季度:完整的开发记录 —— 可导出、可分析、可汇报
559
+ ```
516
560
 
517
- </div>
561
+ 所有数据都在 `.aida/` 里,格式是结构化 JSON。没有厂商锁定,随时可以导出、查询或接入别的报表系统。