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.
- package/README.en.md +34 -48
- package/README.md +52 -458
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +109 -11
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +4 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/memory.d.ts.map +1 -1
- package/dist/cli/commands/memory.js +3 -13
- package/dist/cli/commands/memory.js.map +1 -1
- package/dist/cli/commands/merge-data.d.ts +0 -1
- package/dist/cli/commands/merge-data.d.ts.map +1 -1
- package/dist/cli/commands/merge-data.js +2 -12
- package/dist/cli/commands/merge-data.js.map +1 -1
- package/dist/cli/commands/merge.js +4 -4
- package/dist/cli/commands/merge.js.map +1 -1
- package/dist/cli/commands/rules.d.ts +0 -10
- package/dist/cli/commands/rules.d.ts.map +1 -1
- package/dist/cli/commands/rules.js +7 -33
- package/dist/cli/commands/rules.js.map +1 -1
- package/dist/cli/commands/skills.d.ts +0 -5
- package/dist/cli/commands/skills.d.ts.map +1 -1
- package/dist/cli/commands/skills.js +4 -24
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/sync.d.ts.map +1 -1
- package/dist/cli/commands/sync.js +6 -15
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/index.js +25 -90
- package/dist/cli/index.js.map +1 -1
- package/dist/{schemas/run-json.d.ts → internal/runtime/schema.d.ts} +4 -18
- package/dist/internal/runtime/schema.d.ts.map +1 -0
- package/dist/{schemas/run-json.js → internal/runtime/schema.js} +5 -9
- package/dist/internal/runtime/schema.js.map +1 -0
- package/dist/{utils/run-data.d.ts → internal/runtime/state.d.ts} +7 -8
- package/dist/internal/runtime/state.d.ts.map +1 -0
- package/dist/{utils/run-data.js → internal/runtime/state.js} +11 -12
- package/dist/internal/runtime/state.js.map +1 -0
- package/dist/{utils → internal/runtime}/summary.d.ts +2 -2
- package/dist/internal/runtime/summary.d.ts.map +1 -0
- package/dist/{utils → internal/runtime}/summary.js +4 -4
- package/dist/internal/runtime/summary.js.map +1 -0
- package/dist/internal/runtime/tokens.d.ts.map +1 -0
- package/dist/internal/runtime/tokens.js.map +1 -0
- package/dist/mcp/server.js +9 -8
- package/dist/mcp/server.js.map +1 -1
- package/dist/schemas/aida-project.d.ts +4 -0
- package/dist/schemas/aida-project.d.ts.map +1 -1
- package/dist/schemas/rules.d.ts +15 -0
- package/dist/schemas/rules.d.ts.map +1 -0
- package/dist/schemas/rules.js +5 -0
- package/dist/schemas/rules.js.map +1 -0
- package/dist/services/project-build.d.ts +44 -0
- package/dist/services/project-build.d.ts.map +1 -0
- package/dist/services/project-build.js +32 -0
- package/dist/services/project-build.js.map +1 -0
- package/dist/services/project-health.d.ts +14 -0
- package/dist/services/project-health.d.ts.map +1 -0
- package/dist/services/project-health.js +19 -0
- package/dist/services/project-health.js.map +1 -0
- package/dist/services/security-audit.d.ts +59 -0
- package/dist/services/security-audit.d.ts.map +1 -0
- package/dist/services/security-audit.js +638 -0
- package/dist/services/security-audit.js.map +1 -0
- package/dist/utils/ai-build.d.ts +0 -5
- package/dist/utils/ai-build.d.ts.map +1 -1
- package/dist/utils/ai-build.js +2 -35
- package/dist/utils/ai-build.js.map +1 -1
- package/dist/utils/guide.d.ts +3 -3
- package/dist/utils/guide.js +6 -6
- package/dist/utils/import.d.ts.map +1 -1
- package/dist/utils/import.js +4 -15
- package/dist/utils/import.js.map +1 -1
- package/dist/utils/paths.d.ts +0 -10
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +1 -17
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/project-health.d.ts +1 -0
- package/dist/utils/project-health.d.ts.map +1 -1
- package/dist/utils/project-health.js +26 -3
- package/dist/utils/project-health.js.map +1 -1
- package/dist/utils/rules.d.ts +11 -1
- package/dist/utils/rules.d.ts.map +1 -1
- package/dist/utils/rules.js +27 -1
- package/dist/utils/rules.js.map +1 -1
- package/dist/utils/skills.d.ts +6 -10
- package/dist/utils/skills.d.ts.map +1 -1
- package/dist/utils/skills.js +23 -67
- package/dist/utils/skills.js.map +1 -1
- package/package.json +12 -14
- package/dist/cli/commands/build.d.ts +0 -2
- package/dist/cli/commands/build.d.ts.map +0 -1
- package/dist/cli/commands/build.js +0 -55
- package/dist/cli/commands/build.js.map +0 -1
- package/dist/cli/commands/dashboard.d.ts +0 -2
- package/dist/cli/commands/dashboard.d.ts.map +0 -1
- package/dist/cli/commands/dashboard.js +0 -70
- package/dist/cli/commands/dashboard.js.map +0 -1
- package/dist/cli/commands/import.d.ts +0 -2
- package/dist/cli/commands/import.d.ts.map +0 -1
- package/dist/cli/commands/import.js +0 -71
- package/dist/cli/commands/import.js.map +0 -1
- package/dist/cli/commands/log.d.ts +0 -2
- package/dist/cli/commands/log.d.ts.map +0 -1
- package/dist/cli/commands/log.js +0 -440
- package/dist/cli/commands/log.js.map +0 -1
- package/dist/cli/commands/migrate-dir.d.ts +0 -6
- package/dist/cli/commands/migrate-dir.d.ts.map +0 -1
- package/dist/cli/commands/migrate-dir.js +0 -125
- package/dist/cli/commands/migrate-dir.js.map +0 -1
- package/dist/cli/commands/migrate-legacy.d.ts +0 -2
- package/dist/cli/commands/migrate-legacy.d.ts.map +0 -1
- package/dist/cli/commands/migrate-legacy.js +0 -141
- package/dist/cli/commands/migrate-legacy.js.map +0 -1
- package/dist/cli/commands/migrate.d.ts +0 -2
- package/dist/cli/commands/migrate.d.ts.map +0 -1
- package/dist/cli/commands/migrate.js +0 -303
- package/dist/cli/commands/migrate.js.map +0 -1
- package/dist/cli/commands/reindex.d.ts +0 -14
- package/dist/cli/commands/reindex.d.ts.map +0 -1
- package/dist/cli/commands/reindex.js +0 -69
- package/dist/cli/commands/reindex.js.map +0 -1
- package/dist/cli/commands/report.d.ts +0 -2
- package/dist/cli/commands/report.d.ts.map +0 -1
- package/dist/cli/commands/report.js +0 -224
- package/dist/cli/commands/report.js.map +0 -1
- package/dist/cli/commands/start.d.ts +0 -2
- package/dist/cli/commands/start.d.ts.map +0 -1
- package/dist/cli/commands/start.js +0 -155
- package/dist/cli/commands/start.js.map +0 -1
- package/dist/cli/commands/status.d.ts +0 -2
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/status.js +0 -70
- package/dist/cli/commands/status.js.map +0 -1
- package/dist/cli/commands/update.d.ts +0 -2
- package/dist/cli/commands/update.d.ts.map +0 -1
- package/dist/cli/commands/update.js +0 -74
- package/dist/cli/commands/update.js.map +0 -1
- package/dist/schemas/run-json.d.ts.map +0 -1
- package/dist/schemas/run-json.js.map +0 -1
- package/dist/server/api.d.ts +0 -30
- package/dist/server/api.d.ts.map +0 -1
- package/dist/server/api.js +0 -232
- package/dist/server/api.js.map +0 -1
- package/dist/server/index.d.ts +0 -2
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js +0 -228
- package/dist/server/index.js.map +0 -1
- package/dist/utils/run-data.d.ts.map +0 -1
- package/dist/utils/run-data.js.map +0 -1
- package/dist/utils/summary.d.ts.map +0 -1
- package/dist/utils/summary.js.map +0 -1
- package/dist/utils/tokens.d.ts.map +0 -1
- package/dist/utils/tokens.js.map +0 -1
- package/src/assets/skills/audit.md +0 -98
- package/src/assets/skills/bug-fixer.md +0 -43
- package/src/assets/skills/code-generator.md +0 -71
- package/src/assets/skills/commit-code.md +0 -67
- package/src/assets/skills/dashboard-generator.md +0 -65
- package/src/assets/skills/dev-flower.md +0 -85
- package/src/assets/skills/deviation-recorder.md +0 -83
- package/src/assets/skills/docx-to-markdown.md +0 -69
- package/src/assets/skills/mcp-reviewer.md +0 -38
- package/src/assets/skills/requirement-analyzer.md +0 -103
- package/src/assets/skills/rules-evolver.md +0 -47
- package/src/assets/skills/self-reviewer.md +0 -49
- package/src/assets/skills/task-splitter.md +0 -60
- package/src/assets/skills/workflow-orchestrator.md +0 -209
- package/src/assets/templates/demo-run.json +0 -910
- package/src/assets/templates/run.json +0 -63
- package/src/dashboard/assets/index-B8QcPcg7.css +0 -1
- package/src/dashboard/assets/index-DcAl6lhS.js +0 -111
- package/src/dashboard/demo/overview.json +0 -71
- package/src/dashboard/demo/run.en.json +0 -1169
- package/src/dashboard/demo/run.json +0 -2667
- package/src/dashboard/demo/run.zh.json +0 -1169
- package/src/dashboard/demo/runs.json +0 -19
- package/src/dashboard/index.html +0 -13
- /package/dist/{utils → internal/runtime}/tokens.d.ts +0 -0
- /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
|
-
###
|
|
5
|
+
### 管理 AI 工具资产的 JSON 真源。
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
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
|
[](https://www.npmjs.com/package/ai-dev-analytics)
|
|
18
15
|
[](./LICENSE)
|
|
19
16
|
[](https://nodejs.org)
|
|
20
|
-
[](
|
|
21
|
-
[](https://lwtlong.github.io/ai-dev-analytics/)
|
|
17
|
+
[](#验证)
|
|
22
18
|
[](https://glama.ai/mcp/servers/LWTlong/ai-dev-analytics)
|
|
23
19
|
|
|
24
|
-
[
|
|
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
|
-
|
|
28
|
+
2.0 不再围绕 task 流水账、运行态 timeline 或 dashboard。
|
|
37
29
|
|
|
38
|
-
|
|
39
|
-
- 这个项目有哪些真正要保留的 skills?
|
|
40
|
-
- 某个模块以前为什么这么写?
|
|
41
|
-
- 上一个需求改了哪些模块、为什么改?
|
|
30
|
+
它只保留真正需要长期沉淀的内容:
|
|
42
31
|
|
|
43
|
-
|
|
32
|
+
- 项目规则 `rules`
|
|
33
|
+
- 项目技能 `skills`
|
|
34
|
+
- 模块记忆 `memories`
|
|
35
|
+
- 需求摘要 `summary`
|
|
44
36
|
|
|
45
|
-
|
|
37
|
+
这些 JSON 真源统一存放在 `.aida/` 下,再按需分发到 `.cursor`、`.claude`、`.codex`、`.lingma` 等工具目录。工具目录只是 projection,不是主数据。
|
|
46
38
|
|
|
47
39
|
---
|
|
48
40
|
|
|
49
|
-
##
|
|
41
|
+
## 2.0 真源模型
|
|
50
42
|
|
|
51
|
-
|
|
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
|
-
- `
|
|
69
|
-
- `memories/
|
|
70
|
-
- `
|
|
57
|
+
- `summary.json`:需求级摘要
|
|
58
|
+
- `memories/index.json`:低成本检索索引
|
|
59
|
+
- `memories/modules/*.json`:模块级上下文与约束
|
|
71
60
|
|
|
72
|
-
2.0
|
|
61
|
+
2.0 会主动清理这些 1.x 噪音:
|
|
73
62
|
|
|
74
63
|
- `run.json`
|
|
75
|
-
-
|
|
76
|
-
- `timeline /
|
|
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
|
-
|
|
74
|
+
### 1. 安装 MCP
|
|
88
75
|
|
|
89
|
-
|
|
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
|
-
|
|
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
|
-
|
|
85
|
+
npm install -g ai-dev-analytics
|
|
182
86
|
```
|
|
183
87
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
## 🧭 场景操作指南
|
|
189
|
-
|
|
190
|
-
下面这些是最常见的落地场景。想看详细行为、重复执行语义和边界说明,直接跳到 [COMMANDS.md](./COMMANDS.md)。
|
|
88
|
+
然后把 `command` 改为 `"aida"`。
|
|
191
89
|
|
|
192
|
-
###
|
|
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
|
|
245
|
-
aida import cursor
|
|
246
|
-
aida migrate
|
|
247
|
-
aida memory rebuild
|
|
248
|
-
aida build
|
|
99
|
+
aida sync
|
|
249
100
|
```
|
|
250
101
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
详细步骤见:[COMMANDS.md / 场景 3:项目已初始化,但想补齐缺失产物](./COMMANDS.md#场景-3项目已初始化但想补齐缺失产物)
|
|
254
|
-
|
|
255
|
-
适用场景:
|
|
102
|
+
---
|
|
256
103
|
|
|
257
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
423
|
-
|
|
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":"
|
|
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"}
|