ai-dev-analytics 1.1.12 → 2.0.1

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