ai-dev-analytics 2.0.0 → 2.0.2

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 (180) hide show
  1. package/README.en.md +34 -48
  2. package/README.md +52 -458
  3. package/dist/cli/commands/doctor.d.ts.map +1 -1
  4. package/dist/cli/commands/doctor.js +109 -11
  5. package/dist/cli/commands/doctor.js.map +1 -1
  6. package/dist/cli/commands/init.d.ts.map +1 -1
  7. package/dist/cli/commands/init.js +4 -0
  8. package/dist/cli/commands/init.js.map +1 -1
  9. package/dist/cli/commands/memory.d.ts.map +1 -1
  10. package/dist/cli/commands/memory.js +3 -13
  11. package/dist/cli/commands/memory.js.map +1 -1
  12. package/dist/cli/commands/merge-data.d.ts +0 -1
  13. package/dist/cli/commands/merge-data.d.ts.map +1 -1
  14. package/dist/cli/commands/merge-data.js +2 -12
  15. package/dist/cli/commands/merge-data.js.map +1 -1
  16. package/dist/cli/commands/merge.js +4 -4
  17. package/dist/cli/commands/merge.js.map +1 -1
  18. package/dist/cli/commands/rules.d.ts +0 -10
  19. package/dist/cli/commands/rules.d.ts.map +1 -1
  20. package/dist/cli/commands/rules.js +7 -33
  21. package/dist/cli/commands/rules.js.map +1 -1
  22. package/dist/cli/commands/skills.d.ts +0 -5
  23. package/dist/cli/commands/skills.d.ts.map +1 -1
  24. package/dist/cli/commands/skills.js +4 -24
  25. package/dist/cli/commands/skills.js.map +1 -1
  26. package/dist/cli/commands/sync.d.ts.map +1 -1
  27. package/dist/cli/commands/sync.js +6 -15
  28. package/dist/cli/commands/sync.js.map +1 -1
  29. package/dist/cli/index.js +25 -90
  30. package/dist/cli/index.js.map +1 -1
  31. package/dist/{schemas/run-json.d.ts → internal/runtime/schema.d.ts} +4 -18
  32. package/dist/internal/runtime/schema.d.ts.map +1 -0
  33. package/dist/{schemas/run-json.js → internal/runtime/schema.js} +5 -9
  34. package/dist/internal/runtime/schema.js.map +1 -0
  35. package/dist/{utils/run-data.d.ts → internal/runtime/state.d.ts} +7 -8
  36. package/dist/internal/runtime/state.d.ts.map +1 -0
  37. package/dist/{utils/run-data.js → internal/runtime/state.js} +11 -12
  38. package/dist/internal/runtime/state.js.map +1 -0
  39. package/dist/{utils → internal/runtime}/summary.d.ts +2 -2
  40. package/dist/internal/runtime/summary.d.ts.map +1 -0
  41. package/dist/{utils → internal/runtime}/summary.js +4 -4
  42. package/dist/internal/runtime/summary.js.map +1 -0
  43. package/dist/internal/runtime/tokens.d.ts.map +1 -0
  44. package/dist/internal/runtime/tokens.js.map +1 -0
  45. package/dist/mcp/server.js +9 -8
  46. package/dist/mcp/server.js.map +1 -1
  47. package/dist/schemas/aida-project.d.ts +4 -0
  48. package/dist/schemas/aida-project.d.ts.map +1 -1
  49. package/dist/schemas/rules.d.ts +15 -0
  50. package/dist/schemas/rules.d.ts.map +1 -0
  51. package/dist/schemas/rules.js +5 -0
  52. package/dist/schemas/rules.js.map +1 -0
  53. package/dist/services/project-build.d.ts +44 -0
  54. package/dist/services/project-build.d.ts.map +1 -0
  55. package/dist/services/project-build.js +32 -0
  56. package/dist/services/project-build.js.map +1 -0
  57. package/dist/services/project-health.d.ts +14 -0
  58. package/dist/services/project-health.d.ts.map +1 -0
  59. package/dist/services/project-health.js +19 -0
  60. package/dist/services/project-health.js.map +1 -0
  61. package/dist/services/security-audit.d.ts +59 -0
  62. package/dist/services/security-audit.d.ts.map +1 -0
  63. package/dist/services/security-audit.js +638 -0
  64. package/dist/services/security-audit.js.map +1 -0
  65. package/dist/utils/ai-build.d.ts +0 -5
  66. package/dist/utils/ai-build.d.ts.map +1 -1
  67. package/dist/utils/ai-build.js +2 -35
  68. package/dist/utils/ai-build.js.map +1 -1
  69. package/dist/utils/guide.d.ts +3 -3
  70. package/dist/utils/guide.js +6 -6
  71. package/dist/utils/import.d.ts.map +1 -1
  72. package/dist/utils/import.js +4 -15
  73. package/dist/utils/import.js.map +1 -1
  74. package/dist/utils/paths.d.ts +0 -10
  75. package/dist/utils/paths.d.ts.map +1 -1
  76. package/dist/utils/paths.js +1 -17
  77. package/dist/utils/paths.js.map +1 -1
  78. package/dist/utils/project-health.d.ts +1 -0
  79. package/dist/utils/project-health.d.ts.map +1 -1
  80. package/dist/utils/project-health.js +26 -3
  81. package/dist/utils/project-health.js.map +1 -1
  82. package/dist/utils/rules.d.ts +11 -1
  83. package/dist/utils/rules.d.ts.map +1 -1
  84. package/dist/utils/rules.js +27 -1
  85. package/dist/utils/rules.js.map +1 -1
  86. package/dist/utils/skills.d.ts +6 -10
  87. package/dist/utils/skills.d.ts.map +1 -1
  88. package/dist/utils/skills.js +23 -67
  89. package/dist/utils/skills.js.map +1 -1
  90. package/package.json +12 -14
  91. package/dist/cli/commands/build.d.ts +0 -2
  92. package/dist/cli/commands/build.d.ts.map +0 -1
  93. package/dist/cli/commands/build.js +0 -55
  94. package/dist/cli/commands/build.js.map +0 -1
  95. package/dist/cli/commands/dashboard.d.ts +0 -2
  96. package/dist/cli/commands/dashboard.d.ts.map +0 -1
  97. package/dist/cli/commands/dashboard.js +0 -70
  98. package/dist/cli/commands/dashboard.js.map +0 -1
  99. package/dist/cli/commands/import.d.ts +0 -2
  100. package/dist/cli/commands/import.d.ts.map +0 -1
  101. package/dist/cli/commands/import.js +0 -71
  102. package/dist/cli/commands/import.js.map +0 -1
  103. package/dist/cli/commands/log.d.ts +0 -2
  104. package/dist/cli/commands/log.d.ts.map +0 -1
  105. package/dist/cli/commands/log.js +0 -440
  106. package/dist/cli/commands/log.js.map +0 -1
  107. package/dist/cli/commands/migrate-dir.d.ts +0 -6
  108. package/dist/cli/commands/migrate-dir.d.ts.map +0 -1
  109. package/dist/cli/commands/migrate-dir.js +0 -125
  110. package/dist/cli/commands/migrate-dir.js.map +0 -1
  111. package/dist/cli/commands/migrate-legacy.d.ts +0 -2
  112. package/dist/cli/commands/migrate-legacy.d.ts.map +0 -1
  113. package/dist/cli/commands/migrate-legacy.js +0 -141
  114. package/dist/cli/commands/migrate-legacy.js.map +0 -1
  115. package/dist/cli/commands/migrate.d.ts +0 -2
  116. package/dist/cli/commands/migrate.d.ts.map +0 -1
  117. package/dist/cli/commands/migrate.js +0 -303
  118. package/dist/cli/commands/migrate.js.map +0 -1
  119. package/dist/cli/commands/reindex.d.ts +0 -14
  120. package/dist/cli/commands/reindex.d.ts.map +0 -1
  121. package/dist/cli/commands/reindex.js +0 -69
  122. package/dist/cli/commands/reindex.js.map +0 -1
  123. package/dist/cli/commands/report.d.ts +0 -2
  124. package/dist/cli/commands/report.d.ts.map +0 -1
  125. package/dist/cli/commands/report.js +0 -224
  126. package/dist/cli/commands/report.js.map +0 -1
  127. package/dist/cli/commands/start.d.ts +0 -2
  128. package/dist/cli/commands/start.d.ts.map +0 -1
  129. package/dist/cli/commands/start.js +0 -155
  130. package/dist/cli/commands/start.js.map +0 -1
  131. package/dist/cli/commands/status.d.ts +0 -2
  132. package/dist/cli/commands/status.d.ts.map +0 -1
  133. package/dist/cli/commands/status.js +0 -70
  134. package/dist/cli/commands/status.js.map +0 -1
  135. package/dist/cli/commands/update.d.ts +0 -2
  136. package/dist/cli/commands/update.d.ts.map +0 -1
  137. package/dist/cli/commands/update.js +0 -74
  138. package/dist/cli/commands/update.js.map +0 -1
  139. package/dist/schemas/run-json.d.ts.map +0 -1
  140. package/dist/schemas/run-json.js.map +0 -1
  141. package/dist/server/api.d.ts +0 -30
  142. package/dist/server/api.d.ts.map +0 -1
  143. package/dist/server/api.js +0 -232
  144. package/dist/server/api.js.map +0 -1
  145. package/dist/server/index.d.ts +0 -2
  146. package/dist/server/index.d.ts.map +0 -1
  147. package/dist/server/index.js +0 -228
  148. package/dist/server/index.js.map +0 -1
  149. package/dist/utils/run-data.d.ts.map +0 -1
  150. package/dist/utils/run-data.js.map +0 -1
  151. package/dist/utils/summary.d.ts.map +0 -1
  152. package/dist/utils/summary.js.map +0 -1
  153. package/dist/utils/tokens.d.ts.map +0 -1
  154. package/dist/utils/tokens.js.map +0 -1
  155. package/src/assets/skills/audit.md +0 -98
  156. package/src/assets/skills/bug-fixer.md +0 -43
  157. package/src/assets/skills/code-generator.md +0 -71
  158. package/src/assets/skills/commit-code.md +0 -67
  159. package/src/assets/skills/dashboard-generator.md +0 -65
  160. package/src/assets/skills/dev-flower.md +0 -85
  161. package/src/assets/skills/deviation-recorder.md +0 -83
  162. package/src/assets/skills/docx-to-markdown.md +0 -69
  163. package/src/assets/skills/mcp-reviewer.md +0 -38
  164. package/src/assets/skills/requirement-analyzer.md +0 -103
  165. package/src/assets/skills/rules-evolver.md +0 -47
  166. package/src/assets/skills/self-reviewer.md +0 -49
  167. package/src/assets/skills/task-splitter.md +0 -60
  168. package/src/assets/skills/workflow-orchestrator.md +0 -209
  169. package/src/assets/templates/demo-run.json +0 -910
  170. package/src/assets/templates/run.json +0 -63
  171. package/src/dashboard/assets/index-B8QcPcg7.css +0 -1
  172. package/src/dashboard/assets/index-DcAl6lhS.js +0 -111
  173. package/src/dashboard/demo/overview.json +0 -71
  174. package/src/dashboard/demo/run.en.json +0 -1169
  175. package/src/dashboard/demo/run.json +0 -2667
  176. package/src/dashboard/demo/run.zh.json +0 -1169
  177. package/src/dashboard/demo/runs.json +0 -19
  178. package/src/dashboard/index.html +0 -13
  179. /package/dist/{utils → internal/runtime}/tokens.d.ts +0 -0
  180. /package/dist/{utils → internal/runtime}/tokens.js +0 -0
package/README.md CHANGED
@@ -2,13 +2,10 @@
2
2
 
3
3
  # AIDA
4
4
 
5
- ### AI 项目规则、技能和模块记忆真正成为真源。
5
+ ### 管理 AI 工具资产的 JSON 真源。
6
6
 
7
- 项目里真正长期有价值的,不是 task 流水账,而是:<br>
8
- *规则、技能、模块业务记忆,以及需求最终改了什么。*<br>
9
- **AIDA 2.0 把这些资产统一沉淀到 `.aida/*.json`,再稳定分发到 Claude / Cursor / Codex 等工具。**
10
-
11
- 一行配置接入,最少命令,围绕 JSON 真源工作。
7
+ AIDA 2.0 只关注长期有价值的项目资产:
8
+ **rules、skills、memories、summary。**
12
9
 
13
10
  ```json
14
11
  { "mcpServers": { "aida": { "command": "npx", "args": ["--registry=https://registry.npmjs.org/", "-y", "ai-dev-analytics", "mcp"] } } }
@@ -17,40 +14,33 @@
17
14
  [![npm version](https://img.shields.io/badge/npm-v2.0.0-0066ff)](https://www.npmjs.com/package/ai-dev-analytics)
18
15
  [![license](https://img.shields.io/github/license/LWTlong/ai-dev-analytics?color=%23333)](./LICENSE)
19
16
  [![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)](#测试)
21
- [![在线 Demo](https://img.shields.io/badge/🎯_在线Demo-交互式看板-FF4B4B)](https://lwtlong.github.io/ai-dev-analytics/)
17
+ [![tests](https://img.shields.io/badge/tests-passing-brightgreen)](#验证)
22
18
  [![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
19
 
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
-
26
- [一行接入](#-30-秒上手) · [2.0 真源模型](#-20-真源模型) · [场景操作指南](#-场景操作指南) · [命令速览](#-命令速览) · [重复执行与覆盖策略](#-重复执行与覆盖策略) · [规则去重与冲突判断](#-规则去重与冲突判断) · [命令文档](./COMMANDS.md) · [文档导航](./docs/INDEX.md) · [English](./README.en.md)
20
+ [30 秒上手](#30-秒上手) · [真源模型](#20-真源模型) · [命令模型](#命令模型) · [命令文档](./COMMANDS.md) · [文档导航](./docs/INDEX.md) · [English](./README.en.md)
27
21
 
28
22
  </div>
29
23
 
30
24
  ---
31
25
 
32
- ## 一个洞察
33
-
34
- AI 编码很强,但项目记忆往往是散的。
26
+ ## 为什么是 2.0
35
27
 
36
- 你让 Claude 写一个功能,它写了,你 ship 了。但长期真正缺的是这些:
28
+ 2.0 不再围绕 task 流水账、运行态 timeline 或 dashboard。
37
29
 
38
- - 这个项目有哪些长期有效的规则?
39
- - 这个项目有哪些真正要保留的 skills?
40
- - 某个模块以前为什么这么写?
41
- - 上一个需求改了哪些模块、为什么改?
30
+ 它只保留真正需要长期沉淀的内容:
42
31
 
43
- 没有这些真源,AI 每次都像新同事第一次进项目,靠重新扫代码碰运气。
32
+ - 项目规则 `rules`
33
+ - 项目技能 `skills`
34
+ - 模块记忆 `memories`
35
+ - 需求摘要 `summary`
44
36
 
45
- **AIDA 2.0 让这些资产固定下来。** 它把规则、技能、模块记忆和需求摘要沉淀成统一 JSON 真源,再分发到你实际使用的 AI 工具里。你的 AI 不再只是写代码,它开始**继承你的项目上下文**。
37
+ 这些 JSON 真源统一存放在 `.aida/` 下,再按需分发到 `.cursor`、`.claude`、`.codex`、`.lingma` 等工具目录。工具目录只是 projection,不是主数据。
46
38
 
47
39
  ---
48
40
 
49
- ## 🧱 2.0 真源模型
41
+ ## 2.0 真源模型
50
42
 
51
- 2.0 的核心不是 run/task 流水账,而是这 5 类真源:
52
-
53
- ```
43
+ ```text
54
44
  .aida/
55
45
  config.json
56
46
  rules.json
@@ -60,491 +50,95 @@ AI 编码很强,但项目记忆往往是散的。
60
50
  memories/
61
51
  index.json
62
52
  modules/*.json
63
- rules/*.md
64
53
  ```
65
54
 
66
55
  - `rules.json`:项目级技术规范真源
67
56
  - `skills.json`:项目级技能真源
68
- - `memories/index.json`:模块目录索引,低 token 检索入口
69
- - `memories/modules/*.json`:模块正文,记录为什么这么实现、改过什么
70
- - `summary.json`:需求/分支级轻量摘要,记录这次最终改了什么
57
+ - `summary.json`:需求级摘要
58
+ - `memories/index.json`:低成本检索索引
59
+ - `memories/modules/*.json`:模块级上下文与约束
71
60
 
72
- 2.0 会主动丢弃这些 1.x 噪音:
61
+ 2.0 会主动清理这些 1.x 噪音:
73
62
 
74
63
  - `run.json`
75
- - `task` 持久化流水账
76
- - `timeline / events / workflow`
64
+ - task 持久化流水账
65
+ - `timeline / workflow / events`
77
66
  - `.aida/runs/**`
78
67
  - `.aida/index.json`
79
68
  - `.aida/tool-configs.json`
80
69
 
81
70
  ---
82
71
 
83
- ## 📊 数据看板
84
-
85
- **你的整个 Vibe Coding 过程 —— 结构化、可视化、可操作。**
72
+ ## 30 秒上手
86
73
 
87
- ![Dashboard](https://raw.githubusercontent.com/LWTlong/ai-dev-analytics/main/docs/dashboard.png)
74
+ ### 1. 安装 MCP
88
75
 
89
- > **[在线 Demo →](https://lwtlong.github.io/ai-dev-analytics/)** 真实脱敏数据,无需安装。
90
-
91
- AIDA 全方位采集 AI 辅助开发的每个维度,转化为交互式图表:
92
-
93
- | 你能看到什么 | 为什么重要 |
94
- |---|---|
95
- | **偏差根因分布** | 知道 AI *为什么*出错 —— 规则缺失?幻觉?上下文不足? |
96
- | **偏差类别分布** | 知道 AI *在哪*出错 —— 布局?组件?API? |
97
- | **偏差 & 规则趋势图** | 看着偏差随规则积累而下降 |
98
- | **Bug 严重度分布** | 追踪质量 —— 哪个阶段产出严重 Bug? |
99
- | **自检通过率趋势** | AI 代码质量是在变好还是变差? |
100
- | **各阶段任务完成** | 看到完整开发生命周期的进度 |
101
- | **文件修改热点** | 哪些文件反复被改?痛点在哪? |
102
- | **规则溯源表** | 每条规则都关联到产生它的偏差 |
103
- | **完整开发时间线** | 每个任务、Bug、审查、偏差 —— 按时间排列 |
104
- | **项目总览(团队视角)** | 跨分支统计、开发者对比、需求状态 |
105
-
106
- 运行 `npx ai-dev-analytics dashboard`,几秒钟看到**你自己项目的数据**。
107
-
108
- ### 🔒 100% 本地。零外部请求。
109
-
110
- AIDA 只往项目里的 `.aida/` 目录写 JSON 文件。**整个代码库不包含任何外部 HTTP 请求** —— 不发遥测、不上传云端、不请求分析服务、不做任何追踪。你的代码和数据不会离开你的电脑。
111
-
112
- ---
113
-
114
- ## ⚡ 30 秒上手
115
-
116
- ### 在 `.mcp.json` 里加一行
76
+ 在项目根目录 `.mcp.json` 中加入:
117
77
 
118
78
  ```json
119
79
  { "mcpServers": { "aida": { "command": "npx", "args": ["--registry=https://registry.npmjs.org/", "-y", "ai-dev-analytics", "mcp"] } } }
120
80
  ```
121
81
 
122
- 不需要 SDK,不需要包装器,不需要改代码。把这行加到项目根目录的 `.mcp.json`,AI 下次写代码时 AIDA 就开始采集数据。
123
-
124
- > 如果 `npx` 较慢,可以先全局安装:`npm install -g ai-dev-analytics`,然后把 command 改成 `"aida"`。全局安装后也可以直接使用 `aida` 命令。
125
-
126
- <details>
127
- <summary>Cursor / VS Code Copilot / Windsurf / Lingma 配置</summary>
128
-
129
- **Cursor** `.cursor/mcp.json`:
130
- ```json
131
- {
132
- "mcpServers": {
133
- "aida": {
134
- "command": "npx",
135
- "args": ["--registry=https://registry.npmjs.org/", "-y", "ai-dev-analytics", "mcp"]
136
- }
137
- }
138
- }
139
- ```
140
-
141
- **VS Code Copilot** `.vscode/mcp.json`:
142
- ```json
143
- {
144
- "servers": {
145
- "aida": {
146
- "command": "npx",
147
- "args": ["--registry=https://registry.npmjs.org/", "-y", "ai-dev-analytics", "mcp"]
148
- }
149
- }
150
- }
151
- ```
152
-
153
- **Windsurf** `~/.codeium/windsurf/mcp_config.json`:
154
- ```json
155
- {
156
- "mcpServers": {
157
- "aida": {
158
- "command": "npx",
159
- "args": ["--registry=https://registry.npmjs.org/", "-y", "ai-dev-analytics", "mcp"]
160
- }
161
- }
162
- }
163
- ```
164
-
165
- **Lingma(通义灵码)** `.lingma/mcp.json`:
166
- ```json
167
- {
168
- "mcpServers": {
169
- "aida": {
170
- "command": "npx",
171
- "args": ["--registry=https://registry.npmjs.org/", "-y", "ai-dev-analytics", "mcp"]
172
- }
173
- }
174
- }
175
- ```
176
- </details>
177
-
178
- ### 打开看板
82
+ 如果你更喜欢全局命令:
179
83
 
180
84
  ```bash
181
- npx ai-dev-analytics dashboard
85
+ npm install -g ai-dev-analytics
182
86
  ```
183
87
 
184
- 打开 `http://localhost:2375`,即可查看本地数据看板。
185
-
186
- ---
187
-
188
- ## 🧭 场景操作指南
189
-
190
- 下面这些是最常见的落地场景。想看详细行为、重复执行语义和边界说明,直接跳到 [COMMANDS.md](./COMMANDS.md)。
88
+ 然后把 `command` 改为 `"aida"`。
191
89
 
192
- ### 1. 新项目初始化
193
-
194
- 详细步骤见:[COMMANDS.md / 场景 1:新项目初始化](./COMMANDS.md#场景-1新项目初始化)
195
-
196
- 适用场景:
197
-
198
- - 仓库里还没有 `.aida`
199
- - 想从零接入 AIDA
200
-
201
- 操作:
90
+ ### 2. 初始化项目
202
91
 
203
92
  ```bash
204
93
  aida init
205
94
  ```
206
95
 
207
- 你会在交互里选择:
208
-
209
- - 需要接入的 AI 工具
210
- - 是否导入现有工具的规则 / skills 作为 baseline
211
-
212
- 初始化后建议立即检查:
213
-
214
- ```bash
215
- aida build
216
- aida doctor
217
- ```
218
-
219
- ### 2. 老项目迁移到 AIDA
220
-
221
- 详细步骤见:[COMMANDS.md / 场景 2:老项目迁移](./COMMANDS.md#场景-2老项目迁移)
222
-
223
- 适用场景:
224
-
225
- - 项目还在使用旧 `.aidevos`
226
- - 想把旧 rules / skills / run 数据迁进当前 AIDA 体系
227
-
228
- 最省事的方式:
229
-
230
- ```bash
231
- aida migrate-legacy
232
- ```
233
-
234
- 如果你想显式指定 baseline tool:
235
-
236
- ```bash
237
- aida migrate-legacy cursor
238
- aida migrate-legacy codex
239
- ```
240
-
241
- 如果你想拆开执行:
96
+ ### 3. 重建投影
242
97
 
243
98
  ```bash
244
- aida migrate-dir
245
- aida import cursor
246
- aida migrate
247
- aida memory rebuild
248
- aida build
99
+ aida sync
249
100
  ```
250
101
 
251
- ### 3. 已经初始化过,但产物缺失或版本升级后想补齐
252
-
253
- 详细步骤见:[COMMANDS.md / 场景 3:项目已初始化,但想补齐缺失产物](./COMMANDS.md#场景-3项目已初始化但想补齐缺失产物)
254
-
255
- 适用场景:
102
+ ---
256
103
 
257
- - `AGENTS.md` / `CLAUDE.md` / `.codex/config.toml` 被删了
258
- - 旧版本包生成不完整
259
- - 发新包后想在老项目里补齐生成产物
104
+ ## 命令模型
260
105
 
261
- 操作:
106
+ 当前主命令只保留这几类:
262
107
 
263
108
  ```bash
264
109
  aida init
110
+ aida sync
111
+ aida doctor
112
+ aida rules
113
+ aida skills
114
+ aida memory
115
+ aida mcp
265
116
  ```
266
117
 
267
- 然后在交互里选:
268
-
269
- - `Repair missing generated files`
270
-
271
- 或者直接跑:
272
-
273
- ```bash
274
- aida build
275
- aida migrate-legacy
276
- ```
277
-
278
- 其中:
279
-
280
- - `aida build` 适合“真源没问题,只想重建产物”
281
- - `aida migrate-legacy` 适合“历史项目想顺手补齐 memory / import / build 全链路”
282
-
283
- ### 4. 已有工具规则想回收进 `.aida/*.json`
284
-
285
- 详细步骤见:[COMMANDS.md / 场景 4:import 和 build 怎么配合](./COMMANDS.md#场景-4import-和-build-怎么配合)
286
-
287
- 适用场景:
288
-
289
- - 项目里已经有 `.cursor/`、`.claude/`、`.codex/` 本地规则
290
- - 想把分散资产统一回收到 `.aida/rules.json` / `.aida/skills.json`
291
-
292
- 操作:
293
-
294
- ```bash
295
- aida import
296
- aida import cursor
297
- aida import codex
298
- ```
299
-
300
- 经验上:
301
-
302
- - 无参数 `import`:适合把当前项目里能发现的资产统一扫回 AIDA
303
- - 带 baseline tool:适合你明确知道“以某个工具的资产为准”
304
-
305
- 回收后建议再跑一次:
306
-
307
- ```bash
308
- aida build
309
- ```
310
-
311
- ### 5. rules 冲突
312
-
313
- 详细步骤见:[COMMANDS.md / 场景 5:rules 冲突](./COMMANDS.md#场景-5rules-冲突)
314
-
315
- 适用场景:
316
-
317
- - `git pull` / `git merge` 后 `.aida/rules.json` 出现 conflict marker
318
-
319
- 操作:
320
-
321
- ```bash
322
- aida rules merge
323
- ```
324
-
325
- 如果你想顺手把 `skills.json` 也一起处理:
326
-
327
- ```bash
328
- aida merge
329
- ```
330
-
331
- 然后建议检查:
332
-
333
- ```bash
334
- aida rules dedupe
335
- aida build
336
- ```
337
-
338
- ### 6. skills 冲突
339
-
340
- 详细步骤见:[COMMANDS.md / 场景 6:skills 冲突](./COMMANDS.md#场景-6skills-冲突)
341
-
342
- 适用场景:
343
-
344
- - `.aida/skills.json` 出现 conflict marker
345
-
346
- 操作:
347
-
348
- ```bash
349
- aida merge
350
- ```
351
-
352
- 或者只处理 skills:
353
-
354
- ```bash
355
- aida skills merge
356
- ```
357
-
358
- 处理完建议再跑:
359
-
360
- ```bash
361
- aida build
362
- ```
363
-
364
- ### 7. 规则重复、相似、怀疑冲突
365
-
366
- 相关操作见:[COMMANDS.md / 场景 5:rules 冲突](./COMMANDS.md#场景-5rules-冲突)
367
-
368
- 适用场景:
369
-
370
- - 规则越积越多
371
- - 多分支合并后担心重复
372
- - 想清理 exact duplicate,再人工看 near duplicate
373
-
374
- 操作:
375
-
376
- ```bash
377
- aida rules dedupe
378
- ```
379
-
380
- 它会:
381
-
382
- - 自动移除 exact duplicate
383
- - 提示 near duplicate / potential conflict
384
-
385
- 如果你手工改了 `.aida/rules.json`,记得再跑:
386
-
387
- ```bash
388
- aida rules build
389
- ```
390
-
391
- ### 8. 发布前自检建议
118
+ 心智很简单:
392
119
 
393
- 详细步骤见:[COMMANDS.md / 场景 8:发布前自检](./COMMANDS.md#场景-8发布前自检)
120
+ - `init`:初始化 2.0 真源和工具接入
121
+ - `sync`:日常收口,刷新 memory/summary/工具投影
122
+ - `doctor`:检查并清洗项目状态
123
+ - `rules / skills / memory`:直接管理资产本身
394
124
 
395
- 如果你准备发包,至少建议在当前项目里跑一遍:
125
+ 详细行为见 [COMMANDS.md](./COMMANDS.md)。
396
126
 
397
- ```bash
398
- npm run build
399
- npm test
400
- npm pack --dry-run
401
- aida build
402
- aida import codex
403
- aida migrate-legacy codex
404
- aida rules build
405
- aida rules dedupe
406
- ```
127
+ ---
407
128
 
408
- 如果仓库里还有冲突样本,建议再补:
129
+ 如果你的项目已经是 2.0 结构,日常只需要:
409
130
 
410
131
  ```bash
411
- aida rules merge
412
- aida merge
132
+ aida sync
413
133
  ```
414
134
 
415
135
  ---
416
136
 
417
- ## 🧭 命令速览
137
+ ## 验证
418
138
 
419
- ### 初始化与迁移
139
+ 本仓库当前通过:
420
140
 
421
141
  ```bash
422
- aida init
423
- aida migrate-dir
424
- aida migrate-legacy
425
- ```
426
-
427
- - `aida init`:初始化新项目;如果项目已初始化,会进入“新增工具 / 修复缺失产物 / 退出”的分支。
428
- - `aida migrate-dir`:只做 `.aidevos -> .aida` 目录迁移与路径替换;已经迁过时会安全 no-op。
429
- - `aida migrate-legacy`:一键迁移老项目;即使项目已经是 `.aida`,也可以重跑,用于补建之前缺失的产物。
430
-
431
- ### 构建与合并
432
-
433
- ```bash
434
- aida build
435
- aida merge
436
- aida rules build
437
- aida rules dedupe
142
+ npm test
143
+ npm run build
438
144
  ```
439
-
440
- - `aida build`:从 `.aida/*.json` 真源重建规则视图、技能、工具侧产物、MCP 配置和 memory 视图。
441
- - `aida merge`:解决 `.aida/rules.json` / `.aida/skills.json` 的 git conflict 内容。
442
- - `aida rules build`:只重建规则相关产物。
443
- - `aida rules dedupe`:先移除完全重复的规则,再提示近似重复/潜在冲突的规则。
444
-
445
- 详细说明见 [COMMANDS.md](./COMMANDS.md)。
446
-
447
- ---
448
-
449
- ## 🧩 规则去重与冲突判断
450
-
451
- ### 1. 完全重复如何判断
452
-
453
- AIDA 用 `fingerprint` 判断 exact duplicate。生成规则如下:
454
-
455
- 1. 转小写
456
- 2. 折叠空白字符:多个空格 / 换行 / tab 归一成一个空格
457
- 3. 去掉常见中英文标点
458
- 4. `trim`
459
- 5. 对归一化后的内容做 `sha256`
460
- 6. 取前 12 位作为 `fingerprint`
461
-
462
- 这意味着以下内容会被视为同一条规则:
463
-
464
- - `禁止任何形式的臆想,不清楚必须询问`
465
- - ` 禁止任何形式的臆想,不清楚必须询问 `
466
- - `禁止任何形式的臆想,不清楚必须询问!`
467
-
468
- ### 2. 近似重复 / 潜在冲突如何判断
469
-
470
- `aida rules dedupe` 不只看 `fingerprint`。对于**不同 fingerprint** 的规则,它会继续做近似判断:
471
-
472
- - 只比较同一 `category` 下的规则
473
- - 用和 `fingerprint` 一致的归一化规则做文本清洗
474
- - 按空格切词
475
- - 过滤长度小于等于 1 的 token
476
- - 计算 Jaccard 相似度
477
- - 相似度 `>= 0.4` 时,标记为 potential duplicate
478
-
479
- 这类规则不会自动合并,只会提示人工处理。原因很简单:语义相近不代表可以安全替换。
480
-
481
- ### 3. 当前行为
482
-
483
- - `rules add`:按 `fingerprint` 阻止新增完全重复规则
484
- - `merge`:按 `fingerprint` 合并冲突两侧规则
485
- - `build`:分发规则视图时会过滤 exact duplicate,避免生成产物里重复出现
486
- - `rules dedupe`:会把 `rules.json` 里已经存在的 exact duplicate 清掉,并继续提示 near duplicate
487
-
488
- ---
489
-
490
- ## 🔁 重复执行与覆盖策略
491
-
492
- 重复执行的目标是**补全缺失,不破坏用户手工内容**。当前策略如下。
493
-
494
- ### 安全重跑的命令
495
-
496
- - `aida init`
497
- - 未初始化时:正常初始化
498
- - 已初始化时:进入交互分支,可选择新增工具或修复缺失文件
499
- - `aida migrate-dir`
500
- - 已经使用 `.aida` 时:直接 no-op
501
- - `aida migrate-legacy`
502
- - 已迁移项目可重跑
503
- - 适合“老版本包生成不完整,升级后再补建”的场景
504
-
505
- ### 不会直接冲掉用户内容的部分
506
-
507
- - `AGENTS.md` / `CLAUDE.md`
508
- - 只维护 AIDA 注入区块
509
- - 已有自定义内容会尽量保留
510
- - `.mcp.json` / `.cursor/mcp.json` / `.lingma/mcp.json`
511
- - 走 JSON merge,把 `aida` MCP server 合进去
512
- - `.codex/config.toml`
513
- - 只维护 `[mcp_servers.aida]` 片段,保留其他配置
514
- - `.gitignore`
515
- - 只追加缺失条目,不清空现有内容
516
-
517
- ### 会被重建覆盖的部分
518
-
519
- 以下属于 **AIDA 受管生成产物**,重复执行会按 `.aida/*.json` 真源重建:
520
-
521
- - `.aida/rules/*.md`
522
- - `.aida/memories/modules/*.md`
523
- - `.cursor/rules/aida/*`
524
- - `.codex/rules/aida/*`
525
- - `.claude/rules/aida/*`
526
- - `.lingma/rules/*`
527
- - 工具侧由 AIDA 分发的 skill / command 文件
528
-
529
- 这部分不建议手改。若手改,再次 `build` / `repair` / `migrate-legacy` 时会被覆盖,这是预期行为。
530
-
531
- ### 推荐原则
532
-
533
- - 想长期保留的规则、技能、上下文:改 `.aida/*.json` 真源
534
- - 只想修复缺失产物:优先重跑 `aida init -> repair` 或 `aida migrate-legacy`
535
- - 不要把人工内容写进 AIDA 受管生成目录
536
-
537
- ---
538
-
539
- ## 📁 数据沉淀与需求回顾
540
-
541
- AIDA 2.0 沉淀的重点不是过程流水账,而是长期有价值的结果:
542
-
543
- - 项目级规则
544
- - 项目技能
545
- - 模块业务记忆
546
- - 需求 / 分支级摘要
547
-
548
- 这些数据全部都在 `.aida/` 里,以结构化 JSON 保存。你可以直接查询、导出,或接到自己的报表系统里。
549
-
550
- 更重要的是,AI 下次再改同一个模块时,不需要重新从头猜项目背景,而是可以先通过 memory 索引找到这个模块以前改过什么、为什么改。
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAcA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAmE5C"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAqDA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CA0H5C"}