momo-ai 1.0.19 → 1.0.21
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/.claude/skills/algorithmic-art/LICENSE.txt +202 -0
- package/.claude/skills/algorithmic-art/SKILL.md +405 -0
- package/.claude/skills/algorithmic-art/templates/generator_template.js +223 -0
- package/.claude/skills/algorithmic-art/templates/viewer.html +599 -0
- package/.claude/skills/r2mo-rad-lain/PROMPT.md +281 -0
- package/.claude/skills/r2mo-rad-lain/README.md +192 -0
- package/.claude/skills/r2mo-rad-lain/SKILL.md +412 -0
- package/.claude/skills/r2mo-rad-lain/examples/argument-parsing.js +154 -0
- package/.claude/skills/r2mo-rad-lain/examples/file-operations.js +182 -0
- package/.claude/skills/r2mo-rad-lain/file-utils-api.md +281 -0
- package/.claude/skills/r2mo-rad-lain/menu-api.md +187 -0
- package/.claude/skills/r2mo-rad-lain/scripts/file-utils.js +223 -0
- package/.claude/skills/r2mo-rad-lain/scripts/menu.js +289 -0
- package/.claude/skills/r2mo-rad-lain/scripts/yaml-parser.js +209 -0
- package/.claude/skills/r2mo-rad-lain/templates/command.json.template +13 -0
- package/.claude/skills/r2mo-rad-lain/templates/executor.js.template +32 -0
- package/.claude/skills/r2mo-rad-lain/templates/interactive-menu.js.template +221 -0
- package/.cursor/mcp.json +17 -0
- package/.obsidian/app.json +1 -0
- package/.obsidian/appearance.json +4 -0
- package/.obsidian/community-plugins.json +4 -0
- package/.obsidian/core-plugins.json +33 -0
- package/.obsidian/plugins/ai-agent/main.js +98495 -0
- package/.obsidian/plugins/ai-agent/manifest.json +11 -0
- package/.obsidian/plugins/ai-agent/styles.css +806 -0
- package/.obsidian/plugins/dataview/main.js +20876 -0
- package/.obsidian/plugins/dataview/manifest.json +11 -0
- package/.obsidian/plugins/dataview/styles.css +141 -0
- package/.obsidian/plugins/obsidian-excalidraw-plugin/main.js +10 -0
- package/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json +12 -0
- package/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css +1 -0
- package/.obsidian/plugins/templater-obsidian/main.js +45 -0
- package/.obsidian/plugins/templater-obsidian/manifest.json +11 -0
- package/.obsidian/plugins/templater-obsidian/styles.css +226 -0
- package/.obsidian/plugins/terminal/main.js +200 -0
- package/.obsidian/plugins/terminal/manifest.json +14 -0
- package/.obsidian/plugins/terminal/styles.css +32 -0
- package/.obsidian/themes/AnuPpuccin/manifest.json +7 -0
- package/.obsidian/themes/AnuPpuccin/theme.css +9080 -0
- package/.obsidian/themes/Things/manifest.json +7 -0
- package/.obsidian/themes/Things/theme.css +1628 -0
- package/.obsidian/workspace.json +196 -0
- package/README.md +10 -123
- package/docs/images/logo.jpeg +0 -0
- package/install.sh +1 -0
- package/package.json +6 -2
- package/skills/r2mo-rad-lain/SKILL.md +101 -0
- package/src/_agent/trae/momo-datamodel.json +2 -1
- package/src/_agent/trae/momo-module-req.json +2 -1
- package/src/_agent/trae/momo-system-req.json +2 -1
- package/src/_agent/trae/momo-task.json +2 -1
- package/src/_agent/trae/momo-taskplan.json +2 -1
- package/src/_mcp/skills-server.mjs +70 -0
- package/src/_skill/repositories.json +16 -0
- package/src/_template/LAIN/.momo/advanced/refer.json +0 -4
- package/src/commander/help.json +5 -0
- package/src/commander/mcp.json +13 -0
- package/src/commander/open.json +8 -2
- package/src/commander/skills.json +20 -0
- package/src/executor/executeEnv.js +48 -38
- package/src/executor/executeHelp.js +77 -16
- package/src/executor/executeInit.js +203 -149
- package/src/executor/executeMcp.js +290 -0
- package/src/executor/executeOpen.js +144 -125
- package/src/executor/executeSkills.js +747 -0
- package/src/executor/index.js +5 -39
- package/src/momo.js +2 -1
- package/src/utils/momo-args.js +39 -0
- package/src/utils/momo-file-utils.js +75 -0
- package/src/utils/momo-menu.js +54 -0
- package/src/commander/actor.json +0 -12
- package/src/commander/actors.json +0 -6
- package/src/commander/add.json +0 -12
- package/src/commander/agent.json +0 -12
- package/src/commander/agentcfg.json +0 -5
- package/src/commander/archive.json +0 -12
- package/src/commander/commit.json +0 -12
- package/src/commander/console.json +0 -7
- package/src/commander/lain.json +0 -7
- package/src/commander/list.json +0 -7
- package/src/commander/plan.json +0 -12
- package/src/commander/project.json +0 -12
- package/src/commander/pull.json +0 -6
- package/src/commander/push.json +0 -6
- package/src/commander/repo.json +0 -18
- package/src/commander/run.json +0 -18
- package/src/commander/show.json +0 -12
- package/src/commander/tasks.json +0 -18
- package/src/commander/unlock.json +0 -6
- package/src/commander/validate.json +0 -12
- package/src/executor/executeActor.js +0 -133
- package/src/executor/executeActors.js +0 -58
- package/src/executor/executeAdd.js +0 -307
- package/src/executor/executeAgent.js +0 -224
- package/src/executor/executeAgentCfg.js +0 -195
- package/src/executor/executeArchive.js +0 -124
- package/src/executor/executeCommit.js +0 -202
- package/src/executor/executeConsole.js +0 -142
- package/src/executor/executeList.js +0 -133
- package/src/executor/executePlan.js +0 -164
- package/src/executor/executeProject.js +0 -312
- package/src/executor/executePull.js +0 -127
- package/src/executor/executePush.js +0 -243
- package/src/executor/executeRepo.js +0 -238
- package/src/executor/executeRun.js +0 -644
- package/src/executor/executeShow.js +0 -164
- package/src/executor/executeTasks.js +0 -384
- package/src/executor/executeUnlock.js +0 -110
- package/src/executor/executeValidate.js +0 -210
|
@@ -9,25 +9,40 @@ const _ioDirectory = async (baseDir) => {
|
|
|
9
9
|
".momo/template/",
|
|
10
10
|
".momo/advanced/",
|
|
11
11
|
".momo/scripts/",
|
|
12
|
-
"specification/",
|
|
13
|
-
"specification/changes/",
|
|
14
|
-
"specification/actor/",
|
|
15
|
-
"specification/.archives/",
|
|
16
|
-
"specification/.activities/",
|
|
17
|
-
"source/",
|
|
18
|
-
"integration/",
|
|
19
|
-
"integration/openspec/",
|
|
20
|
-
"integration/spec-kit/",
|
|
21
|
-
"integration/kiro/",
|
|
22
|
-
"integration/trea/",
|
|
23
|
-
"integration/cursor/",
|
|
24
|
-
"integration/lingma/",
|
|
25
|
-
"integration/qoder/",
|
|
26
|
-
"integration/windsurf/",
|
|
27
|
-
"integration/github/",
|
|
28
|
-
"integration/claude-code/",
|
|
29
|
-
"integration/chatgpt/",
|
|
30
|
-
".
|
|
12
|
+
".momo/specification/",
|
|
13
|
+
".momo/specification/changes/",
|
|
14
|
+
".momo/specification/actor/",
|
|
15
|
+
".momo/specification/.archives/",
|
|
16
|
+
".momo/specification/.activities/",
|
|
17
|
+
".momo/source/",
|
|
18
|
+
".momo/integration/",
|
|
19
|
+
".momo/integration/openspec/",
|
|
20
|
+
".momo/integration/spec-kit/",
|
|
21
|
+
".momo/integration/kiro/",
|
|
22
|
+
".momo/integration/trea/",
|
|
23
|
+
".momo/integration/cursor/",
|
|
24
|
+
".momo/integration/lingma/",
|
|
25
|
+
".momo/integration/qoder/",
|
|
26
|
+
".momo/integration/windsurf/",
|
|
27
|
+
".momo/integration/github/",
|
|
28
|
+
".momo/integration/claude-code/",
|
|
29
|
+
".momo/integration/chatgpt/",
|
|
30
|
+
".momo/integration/auggie/",
|
|
31
|
+
".momo/integration/cline/",
|
|
32
|
+
".momo/integration/roocode/",
|
|
33
|
+
".momo/integration/codebuddy/",
|
|
34
|
+
".momo/integration/costrict/",
|
|
35
|
+
".momo/integration/crush/",
|
|
36
|
+
".momo/integration/factory/",
|
|
37
|
+
".momo/integration/gemini/",
|
|
38
|
+
".momo/integration/opencode/",
|
|
39
|
+
".momo/integration/kilo/",
|
|
40
|
+
".momo/integration/codex/",
|
|
41
|
+
".momo/integration/amazonq/",
|
|
42
|
+
".momo/integration/qwen/",
|
|
43
|
+
".momo/reference/maven",
|
|
44
|
+
".momo/reference/npm",
|
|
45
|
+
".momo/.working/"
|
|
31
46
|
];
|
|
32
47
|
|
|
33
48
|
// 创建所有目录
|
|
@@ -55,13 +70,11 @@ const _ioFile = async (baseDir) => {
|
|
|
55
70
|
* .momo/template/ 存放模板目录
|
|
56
71
|
* .momo/advanced/
|
|
57
72
|
* .momo/scripts/
|
|
58
|
-
*
|
|
59
|
-
* specification/
|
|
60
|
-
* specification/
|
|
61
|
-
* specification/.
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* integration/ 下所有类型的子目录
|
|
73
|
+
* .momo/specification/changes/
|
|
74
|
+
* .momo/specification/actor/
|
|
75
|
+
* .momo/specification/.archives/
|
|
76
|
+
* .momo/specification/.activities/
|
|
77
|
+
* .momo/integration/ 下所有类型的子目录
|
|
65
78
|
*/
|
|
66
79
|
|
|
67
80
|
/*
|
|
@@ -79,23 +92,23 @@ const _ioFile = async (baseDir) => {
|
|
|
79
92
|
const templateFiles = [
|
|
80
93
|
{
|
|
81
94
|
source: "specification/project.md",
|
|
82
|
-
target: "specification/project.md"
|
|
95
|
+
target: ".momo/specification/project.md"
|
|
83
96
|
},
|
|
84
97
|
{
|
|
85
98
|
source: "specification/project-model.md",
|
|
86
|
-
target: "specification/project-model.md"
|
|
99
|
+
target: ".momo/specification/project-model.md"
|
|
87
100
|
},
|
|
88
101
|
{
|
|
89
102
|
source: "specification/requirement.md",
|
|
90
|
-
target: "specification/requirement.md"
|
|
103
|
+
target: ".momo/specification/requirement.md"
|
|
91
104
|
},
|
|
92
105
|
{
|
|
93
106
|
source: ".gitignore",
|
|
94
|
-
target: ".gitignore"
|
|
107
|
+
target: ".momo/.gitignore"
|
|
95
108
|
},
|
|
96
109
|
{
|
|
97
110
|
source: "AGENTS.md",
|
|
98
|
-
target: "AGENTS.md"
|
|
111
|
+
target: ".momo/AGENTS.md"
|
|
99
112
|
}
|
|
100
113
|
];
|
|
101
114
|
|
|
@@ -133,38 +146,38 @@ const _ioFile = async (baseDir) => {
|
|
|
133
146
|
".momo/prompt/",
|
|
134
147
|
".momo/template/",
|
|
135
148
|
".momo/scripts/",
|
|
136
|
-
"reference/maven",
|
|
137
|
-
"reference/npm",
|
|
138
|
-
"specification/changes/",
|
|
139
|
-
"specification/actor/",
|
|
140
|
-
"specification/.archives/",
|
|
141
|
-
"specification/.activities/",
|
|
142
|
-
"source/",
|
|
143
|
-
"integration/openspec/",
|
|
144
|
-
"integration/spec-kit/",
|
|
145
|
-
"integration/kiro/",
|
|
146
|
-
"integration/trea/",
|
|
147
|
-
"integration/cursor/",
|
|
148
|
-
"integration/lingma/",
|
|
149
|
-
"integration/qoder/",
|
|
150
|
-
"integration/windsurf/",
|
|
151
|
-
"integration/github/",
|
|
152
|
-
"integration/claude-code/",
|
|
153
|
-
"integration/chatgpt/",
|
|
149
|
+
".momo/reference/maven",
|
|
150
|
+
".momo/reference/npm",
|
|
151
|
+
".momo/specification/changes/",
|
|
152
|
+
".momo/specification/actor/",
|
|
153
|
+
".momo/specification/.archives/",
|
|
154
|
+
".momo/specification/.activities/",
|
|
155
|
+
".momo/source/",
|
|
156
|
+
".momo/integration/openspec/",
|
|
157
|
+
".momo/integration/spec-kit/",
|
|
158
|
+
".momo/integration/kiro/",
|
|
159
|
+
".momo/integration/trea/",
|
|
160
|
+
".momo/integration/cursor/",
|
|
161
|
+
".momo/integration/lingma/",
|
|
162
|
+
".momo/integration/qoder/",
|
|
163
|
+
".momo/integration/windsurf/",
|
|
164
|
+
".momo/integration/github/",
|
|
165
|
+
".momo/integration/claude-code/",
|
|
166
|
+
".momo/integration/chatgpt/",
|
|
154
167
|
// 新增的 integration 目录(使用小写)
|
|
155
|
-
"integration/auggie/",
|
|
156
|
-
"integration/cline/",
|
|
157
|
-
"integration/roocode/",
|
|
158
|
-
"integration/codebuddy/",
|
|
159
|
-
"integration/costrict/",
|
|
160
|
-
"integration/crush/",
|
|
161
|
-
"integration/factory/",
|
|
162
|
-
"integration/gemini/",
|
|
163
|
-
"integration/opencode/",
|
|
164
|
-
"integration/kilo/",
|
|
165
|
-
"integration/codex/",
|
|
166
|
-
"integration/amazonq/",
|
|
167
|
-
"integration/qwen/"
|
|
168
|
+
".momo/integration/auggie/",
|
|
169
|
+
".momo/integration/cline/",
|
|
170
|
+
".momo/integration/roocode/",
|
|
171
|
+
".momo/integration/codebuddy/",
|
|
172
|
+
".momo/integration/costrict/",
|
|
173
|
+
".momo/integration/crush/",
|
|
174
|
+
".momo/integration/factory/",
|
|
175
|
+
".momo/integration/gemini/",
|
|
176
|
+
".momo/integration/opencode/",
|
|
177
|
+
".momo/integration/kilo/",
|
|
178
|
+
".momo/integration/codex/",
|
|
179
|
+
".momo/integration/amazonq/",
|
|
180
|
+
".momo/integration/qwen/"
|
|
168
181
|
];
|
|
169
182
|
|
|
170
183
|
// 为每个目录创建一个空的 .gitkeep 文件,确保目录被git跟踪
|
|
@@ -184,31 +197,31 @@ const _ioFile = async (baseDir) => {
|
|
|
184
197
|
|
|
185
198
|
// 为每个 integration 目录创建 config.json 文件
|
|
186
199
|
const integrationDirs = [
|
|
187
|
-
"integration/openspec/",
|
|
188
|
-
"integration/spec-kit/",
|
|
189
|
-
"integration/kiro/",
|
|
190
|
-
"integration/trea/",
|
|
191
|
-
"integration/cursor/",
|
|
192
|
-
"integration/lingma/",
|
|
193
|
-
"integration/qoder/",
|
|
194
|
-
"integration/windsurf/",
|
|
195
|
-
"integration/github/",
|
|
196
|
-
"integration/claude-code/",
|
|
197
|
-
"integration/chatgpt/",
|
|
200
|
+
".momo/integration/openspec/",
|
|
201
|
+
".momo/integration/spec-kit/",
|
|
202
|
+
".momo/integration/kiro/",
|
|
203
|
+
".momo/integration/trea/",
|
|
204
|
+
".momo/integration/cursor/",
|
|
205
|
+
".momo/integration/lingma/",
|
|
206
|
+
".momo/integration/qoder/",
|
|
207
|
+
".momo/integration/windsurf/",
|
|
208
|
+
".momo/integration/github/",
|
|
209
|
+
".momo/integration/claude-code/",
|
|
210
|
+
".momo/integration/chatgpt/",
|
|
198
211
|
// 新增的 integration 目录(使用小写)
|
|
199
|
-
"integration/auggie/",
|
|
200
|
-
"integration/cline/",
|
|
201
|
-
"integration/roocode/",
|
|
202
|
-
"integration/codebuddy/",
|
|
203
|
-
"integration/costrict/",
|
|
204
|
-
"integration/crush/",
|
|
205
|
-
"integration/factory/",
|
|
206
|
-
"integration/gemini/",
|
|
207
|
-
"integration/opencode/",
|
|
208
|
-
"integration/kilo/",
|
|
209
|
-
"integration/codex/",
|
|
210
|
-
"integration/amazonq/",
|
|
211
|
-
"integration/qwen/"
|
|
212
|
+
".momo/integration/auggie/",
|
|
213
|
+
".momo/integration/cline/",
|
|
214
|
+
".momo/integration/roocode/",
|
|
215
|
+
".momo/integration/codebuddy/",
|
|
216
|
+
".momo/integration/costrict/",
|
|
217
|
+
".momo/integration/crush/",
|
|
218
|
+
".momo/integration/factory/",
|
|
219
|
+
".momo/integration/gemini/",
|
|
220
|
+
".momo/integration/opencode/",
|
|
221
|
+
".momo/integration/kilo/",
|
|
222
|
+
".momo/integration/codex/",
|
|
223
|
+
".momo/integration/amazonq/",
|
|
224
|
+
".momo/integration/qwen/"
|
|
212
225
|
];
|
|
213
226
|
|
|
214
227
|
// 通用的 LLM 配置模板
|
|
@@ -261,9 +274,9 @@ const _ioFile = async (baseDir) => {
|
|
|
261
274
|
|
|
262
275
|
// 检查目标文件是否已存在
|
|
263
276
|
if (fs.existsSync(targetPath)) {
|
|
264
|
-
// 跳过 specification/ 目录下的所有文件
|
|
265
|
-
if (file.target.startsWith("specification/")) {
|
|
266
|
-
Ec.waiting("跳过文件:" + file.target + " ".yellow + "(specification目录下的文件可能已被修改)".yellow);
|
|
277
|
+
// 跳过 .momo/specification/ 目录下的所有文件
|
|
278
|
+
if (file.target.startsWith(".momo/specification/")) {
|
|
279
|
+
Ec.waiting("跳过文件:" + file.target + " ".yellow + "(.momo/specification目录下的文件可能已被修改)".yellow);
|
|
267
280
|
} else if (shouldOverwrite) {
|
|
268
281
|
// 目标文件已存在,根据用户选择决定是否覆盖(非specification目录下的文件)
|
|
269
282
|
Ec.waiting("覆盖模板文件:" + file.target);
|
|
@@ -329,70 +342,111 @@ const _ioFile = async (baseDir) => {
|
|
|
329
342
|
if (!fs.existsSync(momoAdvancedDir)) {
|
|
330
343
|
await fsAsync.mkdir(momoAdvancedDir, {recursive: true});
|
|
331
344
|
}
|
|
345
|
+
|
|
346
|
+
// 处理 .gitignore 文件,确保 .momo 目录被忽略
|
|
347
|
+
const gitignorePath = path.resolve(baseDir, ".gitignore");
|
|
348
|
+
let gitignoreContent = "";
|
|
349
|
+
|
|
350
|
+
// 检查 .gitignore 文件是否存在
|
|
351
|
+
if (fs.existsSync(gitignorePath)) {
|
|
352
|
+
// 读取现有的 .gitignore 内容
|
|
353
|
+
gitignoreContent = await fsAsync.readFile(gitignorePath, 'utf8');
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
// 检查 .momo 是否已经在 .gitignore 中
|
|
357
|
+
if (!gitignoreContent.includes('.momo')) {
|
|
358
|
+
// 如果内容不为空,先添加一个换行
|
|
359
|
+
if (gitignoreContent && !gitignoreContent.endsWith('\n')) {
|
|
360
|
+
gitignoreContent += '\n';
|
|
361
|
+
}
|
|
362
|
+
// 添加 .momo 到 .gitignore
|
|
363
|
+
gitignoreContent += '.momo\n';
|
|
364
|
+
|
|
365
|
+
// 写入 .gitignore 文件
|
|
366
|
+
await fsAsync.writeFile(gitignorePath, gitignoreContent);
|
|
367
|
+
Ec.waiting("已更新 .gitignore 文件,添加 .momo 目录到忽略列表");
|
|
368
|
+
} else {
|
|
369
|
+
Ec.waiting(".gitignore 文件已包含 .momo 目录,无需更新");
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
// 创建 .claude/skills/ 目录并添加占位符文件
|
|
373
|
+
const claudeSkillsDir = path.resolve(baseDir, ".claude", "skills");
|
|
374
|
+
await fsAsync.mkdir(claudeSkillsDir, {recursive: true});
|
|
375
|
+
Ec.waiting("创建 .claude/skills/ 目录");
|
|
376
|
+
|
|
377
|
+
// 在 .claude/skills/ 目录中创建 .placeholder 文件
|
|
378
|
+
const placeholderPath = path.join(claudeSkillsDir, ".placeholder");
|
|
379
|
+
if (!fs.existsSync(placeholderPath)) {
|
|
380
|
+
await fsAsync.writeFile(placeholderPath, "");
|
|
381
|
+
Ec.waiting("在 .claude/skills/ 目录中创建 .placeholder 文件");
|
|
382
|
+
} else {
|
|
383
|
+
Ec.waiting(".claude/skills/ 目录中的 .placeholder 文件已存在");
|
|
384
|
+
}
|
|
332
385
|
}
|
|
333
386
|
|
|
334
387
|
/**
|
|
335
388
|
* 目录结构说明
|
|
336
|
-
* .momo/
|
|
337
|
-
*
|
|
338
|
-
*
|
|
339
|
-
*
|
|
340
|
-
*
|
|
341
|
-
*
|
|
342
|
-
*
|
|
343
|
-
*
|
|
344
|
-
*
|
|
345
|
-
*
|
|
346
|
-
*
|
|
389
|
+
* .momo/ 根目录
|
|
390
|
+
* /prompt/ 存放备注目录
|
|
391
|
+
* /template/ 存放模板目录
|
|
392
|
+
* /advanced/ 高级配置说明
|
|
393
|
+
* /actor.md - 角色定制说明
|
|
394
|
+
* /scripts/ 特殊脚本目录
|
|
395
|
+
* /reference/
|
|
396
|
+
* /maven/ Maven 外置项目
|
|
397
|
+
* /npm/ NPM 外置项目
|
|
398
|
+
* /specification/ 工作目录
|
|
399
|
+
* /project.md - 项目基本说明文件
|
|
400
|
+
* /project-model.md - 模型说明文件(通常是建模所需的核心概念模型)
|
|
347
401
|
*
|
|
348
|
-
*
|
|
349
|
-
*
|
|
350
|
-
*
|
|
351
|
-
*
|
|
352
|
-
*
|
|
353
|
-
*
|
|
354
|
-
*
|
|
355
|
-
*
|
|
356
|
-
*
|
|
357
|
-
*
|
|
358
|
-
*
|
|
359
|
-
*
|
|
360
|
-
*
|
|
361
|
-
*
|
|
362
|
-
*
|
|
363
|
-
*
|
|
364
|
-
*
|
|
365
|
-
*
|
|
366
|
-
*
|
|
367
|
-
*
|
|
368
|
-
*
|
|
369
|
-
*
|
|
370
|
-
*
|
|
371
|
-
*
|
|
372
|
-
*
|
|
373
|
-
*
|
|
374
|
-
*
|
|
375
|
-
*
|
|
376
|
-
*
|
|
377
|
-
*
|
|
378
|
-
*
|
|
379
|
-
*
|
|
380
|
-
*
|
|
381
|
-
*
|
|
382
|
-
*
|
|
383
|
-
*
|
|
384
|
-
*
|
|
385
|
-
*
|
|
386
|
-
*
|
|
387
|
-
*
|
|
388
|
-
*
|
|
389
|
-
*
|
|
390
|
-
*
|
|
391
|
-
*
|
|
392
|
-
*
|
|
393
|
-
*
|
|
394
|
-
*
|
|
395
|
-
*
|
|
402
|
+
* --------- 需求分析 / 任务分配设计 / 角色定制 ------------
|
|
403
|
+
* /requirement.md - 基础需求说明(第一份)
|
|
404
|
+
* /changes/ 变更详情
|
|
405
|
+
* /change-XXX/
|
|
406
|
+
* /implementation.md 实现方案步骤说明
|
|
407
|
+
* /proposal.md ( OpenSpec ) 变更提案说明文件
|
|
408
|
+
* /tasks.md ( OpenSpec ) 变更任务列表说明 -> 链接到 tasks/ 目录下的具体任务清单中
|
|
409
|
+
* /tasks 计划详细内容,如果拆分成 Task 则对应到 Tasks/plan-XXX/ 目录中
|
|
410
|
+
* /M01-T001-01.md 具体任务文件,M代表模块,T代表任务,001代表任务编号,01代表子任务序号
|
|
411
|
+
* /M01-T001-02.md ......
|
|
412
|
+
* /design.md ( OpenSpec ) 变更设计说明文件
|
|
413
|
+
* /change.md ( OpenSpec -> specs/profile/spec.md ) 变更说明文件
|
|
414
|
+
* /actor/ 角色目录 / 定义了 Agent 所具有的角色信息,可自定义角色
|
|
415
|
+
* /{name}/stack.md 角色技能(技术栈)说明文件
|
|
416
|
+
* /{name}/limit.md 角色限制说明文件
|
|
417
|
+
* /.archives/ 归档记录
|
|
418
|
+
* /.activities/
|
|
419
|
+
* /actor@plan-XXX/ 角色在某个计划下的历史执行记录(带时间戳)
|
|
420
|
+
* /source/ 源代码目录
|
|
421
|
+
* /develop-01
|
|
422
|
+
* /develop-02
|
|
423
|
+
* /develop-03
|
|
424
|
+
* /integration/ 集成目录(特殊集成配置)
|
|
425
|
+
* openspec/ OpenSpec 目录
|
|
426
|
+
* /config.json 配置文件
|
|
427
|
+
* spec-kit/ SpecKit 目录
|
|
428
|
+
* kiro/ Kiro 目录
|
|
429
|
+
* trea/ Trea 目录
|
|
430
|
+
* cursor/ Cursor 目录
|
|
431
|
+
* lingma/ Lingma 目录
|
|
432
|
+
* qoder/ Qoder 目录
|
|
433
|
+
* windsurf/ WindSurf 目录
|
|
434
|
+
* github/ Github Copilot 目录
|
|
435
|
+
* claude-code/ Claude Code 目录
|
|
436
|
+
* chatgpt/ ChatGPT 目录
|
|
437
|
+
* auggie/ Auggie (Augment CLI) 目录
|
|
438
|
+
* cline/ Cline 目录
|
|
439
|
+
* roocode/ RooCode 目录
|
|
440
|
+
* codebuddy/ CodeBuddy Code (CLI) 目录
|
|
441
|
+
* costrict/ CoStrict 目录
|
|
442
|
+
* crush/ Crush 目录
|
|
443
|
+
* factory/ Factory Droid 目录
|
|
444
|
+
* gemini/ Gemini CLI 目录
|
|
445
|
+
* opencode/ OpenCode 目录
|
|
446
|
+
* kilo/ Kilo Code 目录
|
|
447
|
+
* codex/ Codex 目录
|
|
448
|
+
* amazonq/ Amazon Q Developer 目录
|
|
449
|
+
* qwen/ Qwen Code 目录
|
|
396
450
|
* @param options
|
|
397
451
|
*/
|
|
398
452
|
module.exports = (options) => {
|
|
@@ -401,7 +455,7 @@ module.exports = (options) => {
|
|
|
401
455
|
/*
|
|
402
456
|
* 基本信息
|
|
403
457
|
*/
|
|
404
|
-
const directory = parsed.directory || '.';
|
|
458
|
+
const directory = parsed.directory || parsed.d || '.';
|
|
405
459
|
// 创建基础目录结构
|
|
406
460
|
const basePath = path.resolve(process.cwd(), directory);
|
|
407
461
|
|