ai-jue 1.0.0 → 1.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.md +634 -65
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +37 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/apply.d.ts +5 -0
- package/dist/commands/apply.js +173 -0
- package/dist/commands/apply.js.map +1 -0
- package/dist/commands/check.d.ts +5 -0
- package/dist/commands/check.js +63 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/create-preset.d.ts +5 -0
- package/dist/commands/create-preset.js +54 -0
- package/dist/commands/create-preset.js.map +1 -0
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.js +60 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +5 -0
- package/dist/commands/list.js +52 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/validate.d.ts +5 -0
- package/dist/commands/validate.js +63 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/config.d.ts +214 -0
- package/dist/config.js +97 -0
- package/dist/config.js.map +1 -0
- package/dist/logger.d.ts +21 -0
- package/dist/logger.js +65 -0
- package/dist/logger.js.map +1 -0
- package/dist/preset.d.ts +3 -0
- package/dist/preset.js +99 -0
- package/dist/preset.js.map +1 -0
- package/dist/resolver.d.ts +2 -0
- package/dist/resolver.js +63 -0
- package/dist/resolver.js.map +1 -0
- package/package.json +44 -7
package/README.md
CHANGED
|
@@ -1,107 +1,676 @@
|
|
|
1
|
-
# jue
|
|
1
|
+
# ai-jue
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
**像配置 ESLint 一样配置你的 AI 工具**
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/ai-jue)
|
|
4
8
|
[](LICENSE)
|
|
5
|
-
[](https://travis-ci.org/your-username/jue)
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
```bash
|
|
11
|
+
npm install -D ai-jue jue-preset-react
|
|
12
|
+
```
|
|
8
13
|
|
|
9
|
-
|
|
14
|
+
[快速开始](#快速开始) · [配置指南](#配置指南) · [预设列表](#官方预设)
|
|
10
15
|
|
|
11
|
-
|
|
16
|
+
</div>
|
|
12
17
|
|
|
13
18
|
---
|
|
14
19
|
|
|
15
|
-
##
|
|
20
|
+
## 为什么需要 ai-jue?
|
|
16
21
|
|
|
17
|
-
|
|
22
|
+
`ai-jue` 项目的诞生,是为了解决 AI 辅助开发时代下,开发者经验无法有效沉淀、复用和共享的核心痛点。
|
|
18
23
|
|
|
19
|
-
|
|
20
|
-
- **难以复用**:在项目 A 中好用的 Prompt,很难方便地应用到项目 B。
|
|
21
|
-
- **工具锁定**:为 VSCode Copilot 优化的经验,无法直接用于 Gemini 或其他工具。
|
|
24
|
+
具体来说,它要解决以下三个相互关联的问题:
|
|
22
25
|
|
|
23
|
-
|
|
26
|
+
1. **配置碎片化 (Configuration Fragmentation)**
|
|
27
|
+
* **问题**: 随着 AI 编程工具(如 Gemini, Claude, Cursor, Copilot Workspace)的增多,每个工具都有自己独立的配置文件(`.gemini/`, `CLAUDE.md`, `.vscode/settings.json` 等)。开发者需要在不同项目、不同工具间手动维护这些零散的配置,非常繁琐且容易出错。
|
|
28
|
+
* **`ai-jue` 的解法**: 提供一个统一的入口 `ai.config.js`,实现“一次配置,多处生效”,将开发者从重复的配置工作中解放出来。
|
|
24
29
|
|
|
25
|
-
|
|
30
|
+
2. **经验难沉淀 (Experience Evaporation)**
|
|
31
|
+
* **问题**: 开发者在使用 AI 的过程中,会总结出很多高价值的“最佳实践”,例如针对特定场景的优质 Prompt、解决特定问题的“技能”(Skill)、或者与项目代码库深度结合的上下文指令。这些宝贵的智力资产,目前大多以零散的文本片段形式存在于开发者的个人笔记或大脑中,无法形成系统性的知识库。
|
|
32
|
+
* **`ai-jue` 的解法**: 创造 **“预设(Preset)”** 的概念。让开发者可以将这些碎片化的经验,打包成一个结构化的、可被版本控制和分发的 `npm` 包。
|
|
26
33
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
34
|
+
3. **共享成本高 (High Sharing Cost)**
|
|
35
|
+
* **问题**: 即使一个团队总结出了一套高效的 AI 使用模式,也很难在团队成员或跨团队之间高效地同步和推广。传统的做法是口口相传或维护一篇共享文档,效率低下且难以保持更新。
|
|
36
|
+
* **`ai-jue` 的解法**: 通过 `npm` 生态来实现“一键分享、一键复用”。团队的最佳实践可以发布为一个私有的 `@my-company/jue-preset-internal` 包,团队成员只需在 `ai.config.js` 中引入即可。优秀的通用能力也可以发布到公共 `npm` 仓库,供整个社区使用。
|
|
30
37
|
|
|
31
|
-
|
|
38
|
+
**总结来说,`ai-jue` 的使命,就是成为 AI 开发领域的 `ESLint` 或 `Babel`:它不直接产出业务代码,而是通过提供标准、工具和生态,将开发者高价值的、抽象的“AI 开发能力”进行标准化、工程化和资产化,从而极大地提升整个开发工作流的效率和质量。**
|
|
32
39
|
|
|
33
|
-
|
|
40
|
+
---
|
|
34
41
|
|
|
35
|
-
|
|
36
|
-
- **`jue-plugin-*` (插件包)**: 独立的 npm 包,提供实际的“物料”,包括:
|
|
37
|
-
- **模块 (Modules)**: 原子化的能力单元(如,一个用于代码审查的 `skill`,一个关于 React 技术栈的 `context`)。
|
|
38
|
-
- **画像 (Profiles)**: 预设的模块组合,为特定场景(如 `React 前端开发`)服务。
|
|
39
|
-
- **模板 (Templates)**: 针对特定 AI 工具(如 Gemini, VSCode)的配置文件模板。
|
|
42
|
+
## 快速开始
|
|
40
43
|
|
|
41
|
-
|
|
42
|
-
`jue apply` -> `jue-core` 读取 `Profile` -> 从各插件中“装配”`Modules` -> 填入 `Template` -> 生成最终配置文件
|
|
44
|
+
### 1. 安装
|
|
43
45
|
|
|
44
|
-
|
|
46
|
+
```bash
|
|
47
|
+
# 安装 ai-jue 和预设
|
|
48
|
+
npm install -D ai-jue jue-preset-react
|
|
49
|
+
|
|
50
|
+
# 或者使用其他预设
|
|
51
|
+
npm install -D ai-jue jue-preset-vue
|
|
52
|
+
npm install -D ai-jue jue-preset-node
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 2. 初始化
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npx jue init
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
交互式选择你的配置:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
? 检测到 React + TypeScript 项目,使用推荐配置? (Y/n)
|
|
65
|
+
? 选择 AI 工具:
|
|
66
|
+
◉ Claude Code
|
|
67
|
+
◉ Cursor
|
|
68
|
+
◯ GitHub Copilot
|
|
69
|
+
|
|
70
|
+
✓ 已生成 CLAUDE.md
|
|
71
|
+
✓ 已生成 .cursor/cli.json
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 3. 完成
|
|
75
|
+
|
|
76
|
+
现在你的 AI 工具已经配置好了,包含:
|
|
77
|
+
|
|
78
|
+
- 项目上下文理解
|
|
79
|
+
- 代码规范指导
|
|
80
|
+
- 常用命令和技巧
|
|
81
|
+
- 最佳实践提示
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 配置方式
|
|
86
|
+
|
|
87
|
+
### 方式一:使用预设(推荐)
|
|
88
|
+
|
|
89
|
+
就像 `eslint-config-airbnb` 一样:
|
|
90
|
+
|
|
91
|
+
```javascript
|
|
92
|
+
// ai.config.js
|
|
93
|
+
export default {
|
|
94
|
+
preset: 'react', // 使用 React 预设
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
npx jue apply
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 方式二:组合多个预设
|
|
103
|
+
|
|
104
|
+
```javascript
|
|
105
|
+
// ai.config.js
|
|
106
|
+
export default {
|
|
107
|
+
presets: [
|
|
108
|
+
'base', // 基础配置
|
|
109
|
+
'react', // React 配置
|
|
110
|
+
'typescript' // TypeScript 配置
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 方式三:自定义扩展
|
|
116
|
+
|
|
117
|
+
```javascript
|
|
118
|
+
// ai.config.js
|
|
119
|
+
export default {
|
|
120
|
+
preset: 'react',
|
|
121
|
+
|
|
122
|
+
// 添加自定义内容
|
|
123
|
+
extends: {
|
|
124
|
+
prompts: './prompts/custom-rules.md',
|
|
125
|
+
skills: ['./skills/my-skill.md']
|
|
126
|
+
},
|
|
127
|
+
|
|
128
|
+
// 覆盖配置
|
|
129
|
+
overrides: {
|
|
130
|
+
tools: ['claude', 'cursor']
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 方式四:在 package.json 中配置
|
|
136
|
+
|
|
137
|
+
```json
|
|
138
|
+
{
|
|
139
|
+
"name": "my-app",
|
|
140
|
+
"devDependencies": {
|
|
141
|
+
"ai-jue": "^1.0.0",
|
|
142
|
+
"jue-preset-react": "^1.0.0"
|
|
143
|
+
},
|
|
144
|
+
"jue": {
|
|
145
|
+
"preset": "react",
|
|
146
|
+
"tools": ["claude", "cursor"]
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## 核心概念
|
|
154
|
+
|
|
155
|
+
### 预设 (Presets)
|
|
156
|
+
|
|
157
|
+
预设是预配置的 AI 能力组合,类似 ESLint 的 `eslint-config-*`。它是一系列“能力资产”的打包,这些资产可能包括:
|
|
158
|
+
- **Prompts/Instructions** - 系统提示词和上下文
|
|
159
|
+
- **Skills** - 各种 AI 的技能文件
|
|
160
|
+
- **Commands** - 自定义命令
|
|
161
|
+
- **MCP Servers** - Model Context Protocol 服务器配置
|
|
162
|
+
- **Sub-agents** - 子代理配置
|
|
163
|
+
|
|
164
|
+
**多语言资产加载 (i18n) 提示:**
|
|
165
|
+
`ai-jue` 采用**渐进增强**的策略加载多语言资产。它不强制预设提供 `prompt.md` 这样的通用文件,而是根据用户在 `ai.config.js` 中 `language` 配置(如 `zh-CN`)智能地选择。
|
|
166
|
+
查找优先级如下:
|
|
167
|
+
1. 如果 `language` 已配置,则优先查找 `[文件名].<language>.md`(例如 `prompt.zh-CN.md`)。
|
|
168
|
+
2. 其次,查找 `[文件名].md`(无语言后缀的通用版本)。
|
|
169
|
+
3. 其次,如果找不到特定语言的文件,则回退到加载 `[文件名].md`(无语言后缀的通用版本)。
|
|
170
|
+
这种策略确保了默认情况下用户无需关心语言配置,系统会自动适应现有文件;但当需要时,用户可以简单地通过配置来获得本地化体验。
|
|
171
|
+
|
|
172
|
+
**官方预设:**
|
|
173
|
+
|
|
174
|
+
### 配置文件
|
|
175
|
+
|
|
176
|
+
支持多种配置方式(优先级从高到低):
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
ai.config.js # JS 配置(推荐,支持动态配置)
|
|
180
|
+
ai.config.json # JSON 配置
|
|
181
|
+
.airc.js # RC 文件
|
|
182
|
+
.airc.json
|
|
183
|
+
jue.config.js # 兼容模式,备选
|
|
184
|
+
jue.config.json # 兼容模式,备选
|
|
185
|
+
.juerc.js # 兼容模式,备选
|
|
186
|
+
.juerc.json # 兼容模式,备选
|
|
187
|
+
package.json # ai 字段
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 命令行
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
# 初始化配置(交互式)
|
|
196
|
+
npx jue init
|
|
197
|
+
|
|
198
|
+
# 应用配置(生成 AI 工具配置文件)
|
|
199
|
+
npx jue apply
|
|
200
|
+
|
|
201
|
+
# 应用指定预设
|
|
202
|
+
npx jue apply --preset react
|
|
203
|
+
|
|
204
|
+
# 仅生成特定工具的配置
|
|
205
|
+
npx jue apply --tool claude
|
|
206
|
+
|
|
207
|
+
# 列出可用预设
|
|
208
|
+
npx jue list presets
|
|
209
|
+
|
|
210
|
+
# 列出已安装插件
|
|
211
|
+
npx jue list plugins
|
|
212
|
+
|
|
213
|
+
# 验证配置
|
|
214
|
+
npx jue validate
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## 工作原理
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
┌─────────────────────────────────────────────┐
|
|
223
|
+
│ 1. 读取配置 │
|
|
224
|
+
│ ai.config.js / package.json │
|
|
225
|
+
└─────────────────────────────────────────────┘
|
|
226
|
+
↓
|
|
227
|
+
┌─────────────────────────────────────────────┐
|
|
228
|
+
│ 2. 加载预设 │
|
|
229
|
+
│ jue-preset-react │
|
|
230
|
+
│ └─ 包含所需的插件和能力 │
|
|
231
|
+
└─────────────────────────────────────────────┘
|
|
232
|
+
↓
|
|
233
|
+
┌─────────────────────────────────────────────┐
|
|
234
|
+
│ 3. 编译抽象能力 (Compile Abstract Capabilities) │
|
|
235
|
+
│ - Prompts, Skills, Commands 等 │
|
|
236
|
+
└─────────────────────────────────────────────┘
|
|
237
|
+
↓
|
|
238
|
+
┌─────────────────────────────────────────────┐
|
|
239
|
+
│ 4. 生成工具配置文件 (Generate Tool Configs) │
|
|
240
|
+
│ (针对不同 AI 工具的“后端”) │
|
|
241
|
+
│ ✓ CLAUDE.md (Claude Code) │
|
|
242
|
+
│ ✓ .cursor/cli.json (Cursor) │
|
|
243
|
+
│ ✓ .gemini/settings.json (Gemini) │
|
|
244
|
+
│ ✓ .github/copilot-instructions.md │
|
|
245
|
+
└─────────────────────────────────────────────┘
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## 使用场景
|
|
251
|
+
|
|
252
|
+
### 场景 1:新项目标准化配置
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
# 创建项目
|
|
256
|
+
npm create vite@latest my-app -- --template react-ts
|
|
257
|
+
cd my-app
|
|
258
|
+
|
|
259
|
+
# 安装 AI 配置(就像安装 ESLint)
|
|
260
|
+
npm install -D ai-jue jue-preset-react
|
|
261
|
+
npx jue init
|
|
262
|
+
|
|
263
|
+
# ✓ 完成!所有 AI 工具配置就绪
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### 场景 2:团队统一标准
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
# 1. 团队发布内部预设
|
|
270
|
+
# packages/jue-preset-company/
|
|
271
|
+
npm publish @company/jue-preset-internal
|
|
272
|
+
|
|
273
|
+
# 2. 成员使用团队预设
|
|
274
|
+
npm install -D ai-jue @company/jue-preset-internal
|
|
275
|
+
|
|
276
|
+
# ai.config.js
|
|
277
|
+
export default {
|
|
278
|
+
preset: '@company/internal'
|
|
279
|
+
}
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### 场景 3:多项目复用
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
# 项目 A
|
|
286
|
+
cd project-a
|
|
287
|
+
npm install -D ai-jue jue-preset-react
|
|
288
|
+
npx jue apply
|
|
289
|
+
|
|
290
|
+
# 项目 B - 相同的配置,一行命令
|
|
291
|
+
cd project-b
|
|
292
|
+
npm install -D ai-jue jue-preset-react
|
|
293
|
+
npx jue apply
|
|
294
|
+
|
|
295
|
+
# 配置完全一致!
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### 场景 4:跨 AI 工具使用
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
# 一次配置,多工具使用
|
|
302
|
+
npx jue apply
|
|
303
|
+
|
|
304
|
+
# 自动生成:
|
|
305
|
+
# ✓ CLAUDE.md - Claude Code 读取
|
|
306
|
+
# ✓ .cursor/cli.json - Cursor 读取
|
|
307
|
+
# ✓ .gemini/settings.json - Gemini 读取
|
|
308
|
+
# ✓ .github/copilot-instructions.md - Copilot 读取
|
|
309
|
+
|
|
310
|
+
# 所有工具使用相同的知识库!
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
## 官方预设
|
|
316
|
+
|
|
317
|
+
### `jue-preset-base`
|
|
318
|
+
|
|
319
|
+
基础配置,适用于所有项目。
|
|
320
|
+
|
|
321
|
+
**包含能力:**
|
|
322
|
+
|
|
323
|
+
- 代码审查指导
|
|
324
|
+
- Git 最佳实践
|
|
325
|
+
- 清晰的错误处理建议
|
|
326
|
+
- 性能优化提示
|
|
45
327
|
|
|
46
|
-
|
|
328
|
+
```bash
|
|
329
|
+
npm install -D jue-preset-base
|
|
330
|
+
```
|
|
47
331
|
|
|
48
|
-
|
|
49
|
-
# 安装核心引擎
|
|
50
|
-
npm install -g jue-core
|
|
332
|
+
### `jue-preset-react`
|
|
51
333
|
|
|
52
|
-
|
|
53
|
-
npm install -g jue-plugin-base # 基础技能包
|
|
54
|
-
npm install -g jue-plugin-react # React 技能包
|
|
55
|
-
npm install -g jue-plugin-gemini # Gemini 适配包
|
|
56
|
-
```
|
|
334
|
+
React 项目专用配置。
|
|
57
335
|
|
|
58
|
-
|
|
336
|
+
**包含能力:**
|
|
59
337
|
|
|
60
|
-
|
|
338
|
+
- React Hooks 最佳实践
|
|
339
|
+
- 组件设计模式
|
|
340
|
+
- 性能优化(useMemo, useCallback)
|
|
341
|
+
- 常见错误规避
|
|
342
|
+
- 测试建议
|
|
61
343
|
|
|
62
|
-
|
|
63
|
-
# 将 base/default 画像中的能力,应用到用户全局的 gemini 配置中
|
|
64
|
-
jue apply --profile base/default --scope user --tools gemini
|
|
65
|
-
```
|
|
344
|
+
**自动包含:** `jue-preset-base`
|
|
66
345
|
|
|
67
|
-
|
|
346
|
+
```bash
|
|
347
|
+
npm install -D jue-preset-react
|
|
348
|
+
```
|
|
68
349
|
|
|
69
|
-
|
|
350
|
+
### `jue-preset-typescript`
|
|
70
351
|
|
|
71
|
-
|
|
72
|
-
# 进入你的 React 项目目录
|
|
73
|
-
cd my-react-app
|
|
352
|
+
TypeScript 项目配置。
|
|
74
353
|
|
|
75
|
-
|
|
76
|
-
jue apply --profile react/standard --tools gemini
|
|
77
|
-
```
|
|
354
|
+
**包含能力:**
|
|
78
355
|
|
|
79
|
-
|
|
356
|
+
- 类型定义最佳实践
|
|
357
|
+
- 泛型使用技巧
|
|
358
|
+
- 类型收窄建议
|
|
359
|
+
- 常见类型错误解决
|
|
80
360
|
|
|
81
|
-
|
|
361
|
+
```bash
|
|
362
|
+
npm install -D jue-preset-typescript
|
|
363
|
+
```
|
|
82
364
|
|
|
83
|
-
|
|
365
|
+
### 组合使用
|
|
84
366
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
367
|
+
```javascript
|
|
368
|
+
// ai.config.js
|
|
369
|
+
export default {
|
|
370
|
+
presets: [
|
|
371
|
+
'base',
|
|
372
|
+
'react',
|
|
373
|
+
'typescript'
|
|
374
|
+
]
|
|
375
|
+
}
|
|
376
|
+
```
|
|
89
377
|
|
|
90
|
-
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
## 创建自己的预设
|
|
381
|
+
|
|
382
|
+
### 1. 创建包
|
|
383
|
+
|
|
384
|
+
```bash
|
|
385
|
+
mkdir jue-preset-myteam
|
|
386
|
+
cd jue-preset-myteam
|
|
387
|
+
npm init -y
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
### 2. 定义预设
|
|
391
|
+
|
|
392
|
+
```javascript
|
|
393
|
+
// index.js
|
|
394
|
+
export default {
|
|
395
|
+
name: 'myteam',
|
|
396
|
+
|
|
397
|
+
// 继承其他预设
|
|
398
|
+
extends: ['base', 'react'],
|
|
399
|
+
|
|
400
|
+
// 添加自定义内容
|
|
401
|
+
prompts: [
|
|
402
|
+
'./prompts/team-standards.md',
|
|
403
|
+
'./prompts/code-review-checklist.md'
|
|
404
|
+
],
|
|
405
|
+
|
|
406
|
+
skills: [
|
|
407
|
+
'./skills/deploy-command.md'
|
|
408
|
+
],
|
|
409
|
+
|
|
410
|
+
// 配置 MCP servers
|
|
411
|
+
mcp: {
|
|
412
|
+
servers: {
|
|
413
|
+
'team-db': {
|
|
414
|
+
command: 'npx',
|
|
415
|
+
args: ['@myteam/mcp-server-db']
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### 3. 添加内容
|
|
423
|
+
|
|
424
|
+
```
|
|
425
|
+
jue-preset-myteam/
|
|
426
|
+
├── package.json
|
|
427
|
+
├── index.js
|
|
428
|
+
├── prompts/
|
|
429
|
+
│ ├── team-standards.md
|
|
430
|
+
│ └── code-review-checklist.md
|
|
431
|
+
└── skills/
|
|
432
|
+
└── deploy-command.md
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
### 4. 发布
|
|
436
|
+
|
|
437
|
+
```json
|
|
438
|
+
{
|
|
439
|
+
"name": "jue-preset-myteam",
|
|
440
|
+
"version": "1.0.0",
|
|
441
|
+
"keywords": ["jue-preset"],
|
|
442
|
+
"main": "index.js",
|
|
443
|
+
"files": ["index.js", "prompts", "skills"]
|
|
444
|
+
}
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
```bash
|
|
448
|
+
npm publish
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
### 5. 使用
|
|
452
|
+
|
|
453
|
+
```bash
|
|
454
|
+
npm install -D jue-preset-myteam
|
|
455
|
+
npx jue apply --preset myteam
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
---
|
|
459
|
+
|
|
460
|
+
## 对比
|
|
461
|
+
|
|
462
|
+
### vs 手动配置
|
|
463
|
+
|
|
464
|
+
| 维度 | 手动配置 | ai-jue |
|
|
465
|
+
|------|---------|--------|
|
|
466
|
+
| 新项目配置 | 复制粘贴,10+ 分钟 | `npx jue init`,30 秒 |
|
|
467
|
+
| 多项目同步 | 手动更新每个项目 | 更新预设包,统一升级 |
|
|
468
|
+
| 团队协作 | 文档传递,容易遗漏 | 共享预设包,自动同步 |
|
|
469
|
+
| 跨工具配置 | 每个工具单独配置 | 一次配置,自动生成 |
|
|
470
|
+
| 版本管理 | 难以追踪变更 | Git + npm 版本控制 |
|
|
471
|
+
|
|
472
|
+
### vs 其他工具
|
|
473
|
+
|
|
474
|
+
ai-jue 不是替代品,而是标准化工具:
|
|
475
|
+
|
|
476
|
+
- **不替代** Claude Code/Cursor/Copilot → 配置它们
|
|
477
|
+
- **不替代** MCP Servers → 管理和组合它们
|
|
478
|
+
- **不替代** Custom Skills → 标准化分发它们
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
## 迁移指南
|
|
483
|
+
|
|
484
|
+
### 从手动配置迁移
|
|
485
|
+
|
|
486
|
+
```bash
|
|
487
|
+
# 1. 安装 ai-jue
|
|
488
|
+
npm install -D ai-jue
|
|
489
|
+
|
|
490
|
+
# 2. 创建配置(会检测现有配置)
|
|
491
|
+
npx jue init
|
|
492
|
+
|
|
493
|
+
# 3. ai-jue 会询问:
|
|
494
|
+
# "检测到现有的 CLAUDE.md,是否导入?"
|
|
495
|
+
# 选择 Yes,自动迁移内容
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
### 从其他项目迁移
|
|
499
|
+
|
|
500
|
+
```bash
|
|
501
|
+
# 1. 找出之前项目用的预设
|
|
502
|
+
cd old-project
|
|
503
|
+
cat ai.config.js
|
|
504
|
+
|
|
505
|
+
# 2. 在新项目使用相同预设
|
|
506
|
+
cd new-project
|
|
507
|
+
npm install -D ai-jue jue-preset-react
|
|
508
|
+
npx jue apply --preset react
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
---
|
|
512
|
+
|
|
513
|
+
## 常见问题
|
|
514
|
+
|
|
515
|
+
### Q: 和 ESLint/Prettier 的区别是什么?
|
|
516
|
+
|
|
517
|
+
A:
|
|
518
|
+
|
|
519
|
+
- **ESLint** - 检查代码质量
|
|
520
|
+
- **Prettier** - 格式化代码
|
|
521
|
+
- **ai-jue** - 配置 AI 工具的行为和知识
|
|
522
|
+
|
|
523
|
+
它们解决不同的问题,可以一起使用。
|
|
524
|
+
|
|
525
|
+
### Q: 是否支持自定义?
|
|
526
|
+
|
|
527
|
+
A: 完全支持!就像 ESLint 可以自定义规则一样,你可以:
|
|
528
|
+
|
|
529
|
+
- 扩展现有预设
|
|
530
|
+
- 添加自定义 prompts/skills
|
|
531
|
+
- 创建自己的预设包
|
|
532
|
+
|
|
533
|
+
### Q: 会影响项目运行吗?
|
|
534
|
+
|
|
535
|
+
A: 不会。ai-jue 只生成配置文件(CLAUDE.md 等),不影响代码运行,类似 `.eslintrc` 文件。
|
|
536
|
+
|
|
537
|
+
### Q: ai-jue 会覆盖我的手动修改吗?
|
|
91
538
|
|
|
92
|
-
|
|
539
|
+
A: **绝对不会粗暴覆盖。** `ai-jue` 的核心设计原则之一就是**尊重并保护用户的手动修改**。我们的“智能共存”策略确保了这一点:
|
|
93
540
|
|
|
94
|
-
|
|
541
|
+
- **对于 `.md` 这类文本文件**:`ai-jue` 只会更新它自己管理的、被 `<!-- AI-JUE:START -->` 和 `<!-- AI-JUE:END -->` 包围的区块。**您在该区块之外添加的任何内容都将永远被保留**,不会受到任何影响。
|
|
542
|
+
- **对于 `.json` 这类配置文件**:`ai-jue` 会执行**深度合并 (Deep Merge)**。这意味着它只会添加或更新它所管理的字段,而**您手动添加的任何其他字段都会被完整地保留下来**。
|
|
95
543
|
|
|
96
|
-
|
|
97
|
-
2. 在 `package.json` 中加入 `"keywords": ["jue-plugin"]`。
|
|
98
|
-
3. 按照规范组织你的 `modules/` 和 `profiles/` 目录。
|
|
99
|
-
4. 发布到 npm!
|
|
544
|
+
您可以放心地将 `ai-jue` 集成到现有项目中,而无需担心它会破坏您已有的宝贵配置。
|
|
100
545
|
|
|
101
|
-
|
|
546
|
+
### Q: 需要每次都运行吗?
|
|
102
547
|
|
|
103
|
-
|
|
548
|
+
A: 不需要。配置文件生成后就可以提交到 Git,团队成员直接使用。需要更新时再运行 `jue apply`。
|
|
549
|
+
|
|
550
|
+
### Q: 支持哪些 AI 工具?
|
|
551
|
+
|
|
552
|
+
A: 目前支持:
|
|
553
|
+
|
|
554
|
+
- Claude Code
|
|
555
|
+
- Cursor
|
|
556
|
+
- GitHub Copilot
|
|
557
|
+
- Windsurf
|
|
558
|
+
- 任何支持 markdown 配置的 AI 工具
|
|
559
|
+
|
|
560
|
+
---
|
|
561
|
+
|
|
562
|
+
## 最佳实践
|
|
563
|
+
|
|
564
|
+
### 1. 在项目初始化时配置
|
|
565
|
+
|
|
566
|
+
```bash
|
|
567
|
+
# 创建项目后立即配置
|
|
568
|
+
npm create vite@latest
|
|
569
|
+
npm install -D ai-jue jue-preset-react
|
|
570
|
+
npx jue init
|
|
571
|
+
git add .
|
|
572
|
+
git commit -m "chore: setup ai tools config"
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
### 2. 配置文件纳入版本控制
|
|
576
|
+
|
|
577
|
+
```bash
|
|
578
|
+
# .gitignore - 不要忽略这些文件
|
|
579
|
+
# CLAUDE.md
|
|
580
|
+
# .cursor/cli.json
|
|
581
|
+
# .gemini/settings.json
|
|
582
|
+
# ai.config.js
|
|
583
|
+
```
|
|
584
|
+
|
|
585
|
+
### 3. 团队使用统一预设
|
|
586
|
+
|
|
587
|
+
```json
|
|
588
|
+
// package.json
|
|
589
|
+
{
|
|
590
|
+
"devDependencies": {
|
|
591
|
+
"ai-jue": "^1.0.0",
|
|
592
|
+
"@company/jue-preset-internal": "^1.0.0"
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
```
|
|
596
|
+
|
|
597
|
+
### 4. 定期更新预设
|
|
598
|
+
|
|
599
|
+
```bash
|
|
600
|
+
# 更新预设包获取最新最佳实践
|
|
601
|
+
npm update jue-preset-react
|
|
602
|
+
npx jue apply
|
|
603
|
+
```
|
|
604
|
+
|
|
605
|
+
---
|
|
606
|
+
|
|
607
|
+
## 路线图 (Roadmap)
|
|
608
|
+
|
|
609
|
+
`ai-jue` 的发展路径将遵循从“有用的工具”到“无感的基建”,最终成为“繁荣的生态”的演进策略。
|
|
610
|
+
|
|
611
|
+
- [x] **v0.1 - MVP 验证**
|
|
612
|
+
- [x] 核心概念设计 (`ai.config.js`, `.ai` 目录)。
|
|
613
|
+
- [x] 实现 `apply` 命令,完成“预设 -> 配置文件”的核心流程。
|
|
614
|
+
- [x] 实现项目自我“自举”,使用 `ai-jue` 管理自身AI配置。
|
|
615
|
+
|
|
616
|
+
- [ ] **v0.2 - 可用性与本地体验**
|
|
617
|
+
- [ ] 实现 `init` 命令,提供顺滑的上手体验。
|
|
618
|
+
- [ ] 完善多预设组合与本地 `.ai` 资产的 `extends` 继承能力。
|
|
619
|
+
- [ ] 增加 `check` 命令,主动检测预设更新。
|
|
620
|
+
- [ ] 官方预设:覆盖 React, Vue, Node, TypeScript 等主流场景。
|
|
621
|
+
|
|
622
|
+
- [ ] **v1.0 - 生态飞轮启动**
|
|
623
|
+
- [ ] **核心功能:** `create-preset` 命令,实现从本地 `.ai` 目录一键打包、发布新预设。
|
|
624
|
+
- [ ] **生态治理:** 建立预设的社区策展机制(如官方认证、质量评分)。
|
|
625
|
+
- [ ] **文档完善:** 提供预设开发的完整指南和最佳实践。
|
|
626
|
+
|
|
627
|
+
- [ ] **v2.0 - 无缝工作流与高级架构**
|
|
628
|
+
- [ ] **无缝体验:** `apply --watch` 模式,实现 AI 配置的热重载。
|
|
629
|
+
- [ ] **IDE 集成:** VS Code 扩展,提供配置校验、源映射追溯(Prompt Source Maps)等高级功能。
|
|
630
|
+
- [ ] **高级架构:** 引入更强大的配置语言(如 `patch` 操作符)、将核心重构为“编译器+后端插件”模式、支持“逃生通道”等。
|
|
631
|
+
|
|
632
|
+
- [ ] **未来...**
|
|
633
|
+
- [ ] 可视化配置工具。
|
|
634
|
+
- [ ] 与更多第三方工具(如脚手架)的深度集成。
|
|
635
|
+
|
|
636
|
+
---
|
|
637
|
+
|
|
638
|
+
## 技术栈与开发哲学 (Technical Stack & Development Philosophy)
|
|
639
|
+
|
|
640
|
+
`ai-jue` 致力于构建一个简洁、高效、可维护的 AI 配置管理工具,因此在技术栈和开发哲学上遵循以下原则:
|
|
641
|
+
|
|
642
|
+
* **技术栈:**
|
|
643
|
+
* **核心语言:** 最新的 TypeScript,确保代码质量和可维护性。
|
|
644
|
+
* **命令行工具:** Yargs,提供强大且友好的命令行交互体验。
|
|
645
|
+
* **编码风格:**
|
|
646
|
+
* **函数式编程范式:** 鼓励使用纯函数、不可变数据和函数组合,以提高代码的可预测性和可测试性。
|
|
647
|
+
* **设计原则:**
|
|
648
|
+
* **Unix 哲学:** 遵循“做一件事,并把它做好;小而精巧,可以组合”的理念。
|
|
649
|
+
* **KISS 原则 (Keep It Simple, Stupid):** 优先选择最简单、最直接的解决方案,避免不必要的复杂性,确保项目的长期可维护性。
|
|
650
|
+
|
|
651
|
+
---
|
|
652
|
+
|
|
653
|
+
## 贡献
|
|
654
|
+
|
|
655
|
+
欢迎贡献!你可以:
|
|
656
|
+
|
|
657
|
+
- 🐛 [报告问题](https://github.com/yourusername/ai-jue/issues)
|
|
658
|
+
- 💡 [提出建议](https://github.com/yourusername/ai-jue/discussions)
|
|
659
|
+
- 📦 [创建预设](docs/creating-presets.md)
|
|
660
|
+
- 🔧 [开发插件](docs/plugin-development.md)
|
|
661
|
+
|
|
662
|
+
---
|
|
104
663
|
|
|
105
664
|
## License
|
|
106
665
|
|
|
107
666
|
[MIT](LICENSE)
|
|
667
|
+
|
|
668
|
+
---
|
|
669
|
+
|
|
670
|
+
<div align="center">
|
|
671
|
+
|
|
672
|
+
**让 AI 工具配置像 ESLint 一样简单** 🚀
|
|
673
|
+
|
|
674
|
+
Made with ❤️ for developers
|
|
675
|
+
|
|
676
|
+
</div>
|