speccore 5.70.0 → 5.74.0
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/.agents/skills/spec-ask/SKILL.md +10 -0
- package/.agents/skills/speccore-router/SKILL.md +10 -0
- package/README.md +51 -15
- package/dist/cli.js +20 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/about.d.ts.map +1 -1
- package/dist/commands/about.js +11 -3
- package/dist/commands/about.js.map +1 -1
- package/dist/commands/analyze.d.ts +3 -0
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +135 -31
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/ask.d.ts +1 -1
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +15 -7
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/change.d.ts +5 -0
- package/dist/commands/change.d.ts.map +1 -1
- package/dist/commands/change.js +616 -27
- package/dist/commands/change.js.map +1 -1
- package/dist/commands/code-index.d.ts +18 -0
- package/dist/commands/code-index.d.ts.map +1 -0
- package/dist/commands/code-index.js +126 -0
- package/dist/commands/code-index.js.map +1 -0
- package/dist/commands/context.js +3 -3
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +12 -41
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/dev.d.ts +1 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +137 -20
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/diff.js +2 -2
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/doc2spec.js +8 -8
- package/dist/commands/doc2spec.js.map +1 -1
- package/dist/commands/done.js +2 -2
- package/dist/commands/done.js.map +1 -1
- package/dist/commands/execute.d.ts +2 -0
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +271 -76
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/handover.js +1 -1
- package/dist/commands/handover.js.map +1 -1
- package/dist/commands/help.js +20 -9
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/import.js +1 -1
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +105 -19
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/iteration/create.d.ts.map +1 -1
- package/dist/commands/iteration/create.js +101 -4
- package/dist/commands/iteration/create.js.map +1 -1
- package/dist/commands/iteration/split.d.ts.map +1 -1
- package/dist/commands/iteration/split.js +179 -112
- package/dist/commands/iteration/split.js.map +1 -1
- package/dist/commands/iteration-from-global.js +8 -8
- package/dist/commands/iteration-from-global.js.map +1 -1
- package/dist/commands/lifecycle.d.ts.map +1 -1
- package/dist/commands/lifecycle.js +49 -25
- package/dist/commands/lifecycle.js.map +1 -1
- package/dist/commands/merge-check.js +1 -1
- package/dist/commands/merge-check.js.map +1 -1
- package/dist/commands/pattern.js +1 -1
- package/dist/commands/pattern.js.map +1 -1
- package/dist/commands/plan.d.ts +20 -0
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +56 -40
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/retro.d.ts +9 -0
- package/dist/commands/retro.d.ts.map +1 -1
- package/dist/commands/retro.js +63 -16
- package/dist/commands/retro.js.map +1 -1
- package/dist/commands/status-panel.d.ts.map +1 -1
- package/dist/commands/status-panel.js +47 -18
- package/dist/commands/status-panel.js.map +1 -1
- package/dist/commands/sync.js +6 -6
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/task/new.js +31 -16
- package/dist/commands/task/new.js.map +1 -1
- package/dist/commands/trace.js +3 -3
- package/dist/commands/trace.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +25 -1
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/verify.d.ts +22 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +158 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/commands/welcome.d.ts.map +1 -1
- package/dist/commands/welcome.js +6 -9
- package/dist/commands/welcome.js.map +1 -1
- package/dist/core/ai-context-generator.js +2 -2
- package/dist/core/ai-context-generator.js.map +1 -1
- package/dist/core/analyze-engine.d.ts +19 -0
- package/dist/core/analyze-engine.d.ts.map +1 -1
- package/dist/core/analyze-engine.js +230 -18
- package/dist/core/analyze-engine.js.map +1 -1
- package/dist/core/ask-engine.d.ts.map +1 -1
- package/dist/core/ask-engine.js +101 -11
- package/dist/core/ask-engine.js.map +1 -1
- package/dist/core/capabilities.js +3 -3
- package/dist/core/code-index-markdown.d.ts +7 -0
- package/dist/core/code-index-markdown.d.ts.map +1 -0
- package/dist/core/code-index-markdown.js +160 -0
- package/dist/core/code-index-markdown.js.map +1 -0
- package/dist/core/code-scanner.d.ts +58 -3
- package/dist/core/code-scanner.d.ts.map +1 -1
- package/dist/core/code-scanner.js +406 -24
- package/dist/core/code-scanner.js.map +1 -1
- package/dist/core/git-integration.d.ts +10 -0
- package/dist/core/git-integration.d.ts.map +1 -1
- package/dist/core/git-integration.js +99 -2
- package/dist/core/git-integration.js.map +1 -1
- package/dist/core/inbox.d.ts +120 -0
- package/dist/core/inbox.d.ts.map +1 -0
- package/dist/core/inbox.js +377 -0
- package/dist/core/inbox.js.map +1 -0
- package/dist/core/intent-cache.d.ts.map +1 -1
- package/dist/core/intent-cache.js +8 -2
- package/dist/core/intent-cache.js.map +1 -1
- package/dist/core/intent-recognition.d.ts.map +1 -1
- package/dist/core/intent-recognition.js +4 -3
- package/dist/core/intent-recognition.js.map +1 -1
- package/dist/core/name-validator.js +1 -1
- package/dist/core/name-validator.js.map +1 -1
- package/dist/core/next-steps.js +3 -3
- package/dist/core/next-steps.js.map +1 -1
- package/dist/core/plan-html.js +3 -3
- package/dist/core/prompt-builder.d.ts +7 -0
- package/dist/core/prompt-builder.d.ts.map +1 -1
- package/dist/core/prompt-builder.js +52 -9
- package/dist/core/prompt-builder.js.map +1 -1
- package/dist/core/resolver.d.ts +52 -0
- package/dist/core/resolver.d.ts.map +1 -0
- package/dist/core/resolver.js +257 -0
- package/dist/core/resolver.js.map +1 -0
- package/dist/core/reverse-sync.js +2 -2
- package/dist/core/reverse-sync.js.map +1 -1
- package/dist/core/risk-scorer.js +2 -2
- package/dist/core/risk-scorer.js.map +1 -1
- package/dist/core/state.d.ts.map +1 -1
- package/dist/core/state.js +47 -15
- package/dist/core/state.js.map +1 -1
- package/dist/core/validator.js +9 -9
- package/dist/core/validator.js.map +1 -1
- package/dist/core/verify-engine.d.ts +64 -0
- package/dist/core/verify-engine.d.ts.map +1 -0
- package/dist/core/verify-engine.js +560 -0
- package/dist/core/verify-engine.js.map +1 -0
- package/package.json +1 -1
package/dist/commands/analyze.js
CHANGED
|
@@ -6,19 +6,96 @@ exports.analyzeCommand = analyzeCommand;
|
|
|
6
6
|
*
|
|
7
7
|
* 支持:
|
|
8
8
|
* - 需求分析: --req docs/a.md docs/b.md
|
|
9
|
-
* - 代码分析: --src backend/src frontend/src
|
|
9
|
+
* - 代码分析: --src backend/src 20-frontend/src
|
|
10
10
|
* - 联合分析: --src backend/src --req docs/req.md
|
|
11
11
|
*
|
|
12
12
|
* 输出范围:
|
|
13
|
-
* - global → .speccore/GLOBAL/
|
|
14
|
-
* - iteration → Iteration-XX/
|
|
15
|
-
* - task → Iteration-XX/Task-NN/
|
|
13
|
+
* - global → .speccore/GLOBAL/ 全局架构/代码健康
|
|
14
|
+
* - iteration → Iteration-XX/020-specs/ 迭代级基线(默认)
|
|
15
|
+
* - task → Iteration-XX/030-tasks/Task-NN/00-specs/ 任务级独立(不覆盖基线)
|
|
16
16
|
*/
|
|
17
17
|
const fs_extra_1 = require("fs-extra");
|
|
18
18
|
const path_1 = require("path");
|
|
19
19
|
const logger_1 = require("../utils/logger");
|
|
20
20
|
const context_1 = require("../core/context");
|
|
21
|
+
const analyze_engine_1 = require("../core/analyze-engine");
|
|
22
|
+
const fs_extra_2 = require("fs-extra");
|
|
21
23
|
async function analyzeCommand(options) {
|
|
24
|
+
// ── --supplement 模式: 追加未覆盖源码到现有报告 ──
|
|
25
|
+
if (options.supplement) {
|
|
26
|
+
const iter = options.iteration || await (0, context_1.getDefaultIteration)();
|
|
27
|
+
if (!iter) {
|
|
28
|
+
logger_1.logger.error('请指定迭代: -I <iteration>');
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const iterDir = await (0, context_1.getIterationDir)(iter);
|
|
32
|
+
const reportPath = (0, path_1.join)(iterDir, '020-specs', options.output || 'ANALYSIS.md');
|
|
33
|
+
logger_1.logger.info(`🔄 补充分析: ${iter}`);
|
|
34
|
+
const result = await (0, analyze_engine_1.supplementAnalysis)({
|
|
35
|
+
reportPath,
|
|
36
|
+
scope: options.sourceScope,
|
|
37
|
+
maxFiles: options.depth === 'deep' ? 20 : (options.depth === 'quick' ? 5 : 10),
|
|
38
|
+
});
|
|
39
|
+
if (result) {
|
|
40
|
+
if (result.addedFiles.length > 0) {
|
|
41
|
+
logger_1.logger.success(`✅ 补充完成: 新增 ${result.addedFiles.length} 个文件,累计 ${result.totalRead} 个`);
|
|
42
|
+
if (result.remainingUncovered > 0) {
|
|
43
|
+
logger_1.logger.info(` 📌 还有 ${result.remainingUncovered} 个未覆盖,可再次运行 --supplement 继续补充`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
// ── --auto 模式: 用分析引擎直接生成报告,不走 AI prompt ──
|
|
50
|
+
if (options.auto) {
|
|
51
|
+
const iter = options.iteration || await (0, context_1.getDefaultIteration)();
|
|
52
|
+
if (!iter) {
|
|
53
|
+
logger_1.logger.error('请指定迭代: -I <iteration>');
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const iterDir = await (0, context_1.getIterationDir)(iter);
|
|
57
|
+
const reqDir = (0, path_1.join)(iterDir, '010-requirements');
|
|
58
|
+
const specDir = (0, path_1.join)(iterDir, '020-specs');
|
|
59
|
+
await (0, fs_extra_1.ensureDir)(specDir);
|
|
60
|
+
// 收集需求文档
|
|
61
|
+
const requirements = [];
|
|
62
|
+
const reqIndex = (0, path_1.join)(reqDir, 'INDEX.md');
|
|
63
|
+
if (await (0, fs_extra_1.pathExists)(reqIndex))
|
|
64
|
+
requirements.push(reqIndex);
|
|
65
|
+
const convDir = (0, path_1.join)(reqDir, 'converted');
|
|
66
|
+
if (await (0, fs_extra_1.pathExists)(convDir)) {
|
|
67
|
+
try {
|
|
68
|
+
const files = await (0, fs_extra_2.readdir)(convDir);
|
|
69
|
+
for (const f of files.filter((f) => f.endsWith('.md')))
|
|
70
|
+
requirements.push((0, path_1.join)(convDir, f));
|
|
71
|
+
}
|
|
72
|
+
catch { }
|
|
73
|
+
}
|
|
74
|
+
const reqRoot = (0, path_1.join)(reqDir, 'REQUIREMENT.md');
|
|
75
|
+
if (await (0, fs_extra_1.pathExists)(reqRoot))
|
|
76
|
+
requirements.push(reqRoot);
|
|
77
|
+
if (requirements.length === 0) {
|
|
78
|
+
logger_1.logger.warn('未找到需求文档,请先导入: speccore doc2spec');
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const input = {
|
|
82
|
+
sources: [],
|
|
83
|
+
requirements,
|
|
84
|
+
scope: options.scope || 'iteration',
|
|
85
|
+
iteration: iter,
|
|
86
|
+
depth: options.depth || 'normal',
|
|
87
|
+
readSource: options.noSource ? false : true,
|
|
88
|
+
sourceScope: options.sourceScope,
|
|
89
|
+
};
|
|
90
|
+
logger_1.logger.info(`🤖 Auto 分析: ${iter} (${requirements.length} 个需求文档)`);
|
|
91
|
+
const result = await (0, analyze_engine_1.runAnalysis)(input);
|
|
92
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(specDir, 'ANALYSIS.md'), result.report);
|
|
93
|
+
logger_1.logger.success(`✅ 分析报告已生成: 020-specs/ANALYSIS.md`);
|
|
94
|
+
if (result.summary) {
|
|
95
|
+
logger_1.logger.info(` 📊 分析: ${result.summary.filesAnalyzed} 文件, ${result.summary.apisFound} 接口, ${result.summary.issues} 问题, ${result.summary.risks} 风险`);
|
|
96
|
+
}
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
22
99
|
// ── 非 prompt/apply 模式 → 全部转 AI prompt,不再走代码模板分析 ──
|
|
23
100
|
if (!options.prompt && !options.apply) {
|
|
24
101
|
options.prompt = true;
|
|
@@ -32,30 +109,41 @@ async function analyzeCommand(options) {
|
|
|
32
109
|
return;
|
|
33
110
|
}
|
|
34
111
|
// ── Apply 模式 ──
|
|
112
|
+
// 两层解耦:迭代级分析写 020-specs/,任务级分析只写 Task 目录(不覆盖迭代级基线)
|
|
35
113
|
if (options.apply) {
|
|
36
114
|
if (!options.iteration) {
|
|
37
115
|
logger_1.logger.error('--apply 需要 --iteration');
|
|
38
116
|
return;
|
|
39
117
|
}
|
|
40
118
|
const iterDir = await (0, context_1.getIterationDir)(options.iteration);
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
119
|
+
const isTaskLevel = !!options.task;
|
|
120
|
+
const taskDir = isTaskLevel
|
|
121
|
+
? (0, path_1.join)(iterDir, '030-tasks', options.task.startsWith('Task-') ? options.task : `Task-${options.task}`)
|
|
122
|
+
: null;
|
|
123
|
+
// 支持 JSON 多文档写入
|
|
44
124
|
if (options.apply.startsWith('{')) {
|
|
45
125
|
try {
|
|
46
126
|
const docs = JSON.parse(options.apply);
|
|
47
127
|
let count = 0;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
128
|
+
if (isTaskLevel && taskDir) {
|
|
129
|
+
// 任务级:只写 Task/00-specs/,不动 020-specs/(保持迭代级基线不变)
|
|
130
|
+
const taskSpecDir = (0, path_1.join)(taskDir, '00-specs');
|
|
131
|
+
await (0, fs_extra_1.ensureDir)(taskSpecDir);
|
|
132
|
+
for (const [filename, content] of Object.entries(docs)) {
|
|
133
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(taskSpecDir, filename), content);
|
|
134
|
+
count++;
|
|
135
|
+
}
|
|
136
|
+
logger_1.logger.success(`✅ ${count} 个 Spec 文档已写入 ${options.task}/00-specs/(任务级,迭代基线不变)`);
|
|
51
137
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const
|
|
55
|
-
await (0, fs_extra_1.ensureDir)(
|
|
138
|
+
else {
|
|
139
|
+
// 迭代级:写 020-specs/
|
|
140
|
+
const specDir = (0, path_1.join)(iterDir, '020-specs');
|
|
141
|
+
await (0, fs_extra_1.ensureDir)(specDir);
|
|
56
142
|
for (const [filename, content] of Object.entries(docs)) {
|
|
57
|
-
await (0, fs_extra_1.writeFile)((0, path_1.join)(
|
|
143
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(specDir, filename), content);
|
|
144
|
+
count++;
|
|
58
145
|
}
|
|
146
|
+
logger_1.logger.success(`✅ ${count} 个 Spec 文档已写入 020-specs/`);
|
|
59
147
|
}
|
|
60
148
|
return;
|
|
61
149
|
}
|
|
@@ -63,12 +151,20 @@ async function analyzeCommand(options) {
|
|
|
63
151
|
// fallback to single-file mode
|
|
64
152
|
}
|
|
65
153
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const
|
|
70
|
-
await (0, fs_extra_1.ensureDir)(
|
|
71
|
-
await (0, fs_extra_1.writeFile)((0, path_1.join)(
|
|
154
|
+
// 单文件模式
|
|
155
|
+
if (isTaskLevel && taskDir) {
|
|
156
|
+
// 任务级:只写 Task/00-specs/
|
|
157
|
+
const taskSpecDir = (0, path_1.join)(taskDir, '00-specs');
|
|
158
|
+
await (0, fs_extra_1.ensureDir)(taskSpecDir);
|
|
159
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(taskSpecDir, 'ANALYSIS.md'), options.apply);
|
|
160
|
+
logger_1.logger.success(`✅ ANALYSIS.md 已写入 ${options.task}/00-specs/(任务级,迭代基线不变)`);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
// 迭代级:写 020-specs/
|
|
164
|
+
const specDir = (0, path_1.join)(iterDir, '020-specs');
|
|
165
|
+
await (0, fs_extra_1.ensureDir)(specDir);
|
|
166
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(specDir, 'ANALYSIS.md'), options.apply);
|
|
167
|
+
logger_1.logger.success(`✅ ANALYSIS.md 已写入 020-specs/`);
|
|
72
168
|
}
|
|
73
169
|
return;
|
|
74
170
|
}
|
|
@@ -157,12 +253,12 @@ async function enrichTaskDocs(iteration, taskId, reqFiles) {
|
|
|
157
253
|
return;
|
|
158
254
|
}
|
|
159
255
|
const fullTaskDir = (0, path_1.join)(iterDir, taskEntry.name);
|
|
160
|
-
const
|
|
161
|
-
if (!(await (0, fs_extra_1.pathExists)(
|
|
256
|
+
const specsDir = (0, path_1.join)(fullTaskDir, '00-specs');
|
|
257
|
+
if (!(await (0, fs_extra_1.pathExists)(specsDir)))
|
|
162
258
|
return;
|
|
163
259
|
let reqContent = '';
|
|
164
260
|
// 读取任务 REQ 或传入的需求文件
|
|
165
|
-
const taskReqPath = (0, path_1.join)(
|
|
261
|
+
const taskReqPath = (0, path_1.join)(specsDir, 'REQ.md');
|
|
166
262
|
if (await (0, fs_extra_1.pathExists)(taskReqPath)) {
|
|
167
263
|
reqContent = await require('fs-extra').readFile(taskReqPath, 'utf-8');
|
|
168
264
|
}
|
|
@@ -175,7 +271,7 @@ async function enrichTaskDocs(iteration, taskId, reqFiles) {
|
|
|
175
271
|
if (!reqContent)
|
|
176
272
|
return;
|
|
177
273
|
// 补全 TECH.md
|
|
178
|
-
const techPath = (0, path_1.join)(
|
|
274
|
+
const techPath = (0, path_1.join)(specsDir, 'TECH.md');
|
|
179
275
|
let techContent = '';
|
|
180
276
|
if (await (0, fs_extra_1.pathExists)(techPath)) {
|
|
181
277
|
techContent = await require('fs-extra').readFile(techPath, 'utf-8');
|
|
@@ -199,7 +295,7 @@ async function enrichTaskDocs(iteration, taskId, reqFiles) {
|
|
|
199
295
|
}
|
|
200
296
|
}
|
|
201
297
|
// 补全 TEST.md
|
|
202
|
-
const testPath = (0, path_1.join)(
|
|
298
|
+
const testPath = (0, path_1.join)(fullTaskDir, '99-artifacts', 'TEST.md');
|
|
203
299
|
if (await (0, fs_extra_1.pathExists)(testPath)) {
|
|
204
300
|
let testContent = await require('fs-extra').readFile(testPath, 'utf-8');
|
|
205
301
|
if (!testContent.includes('## 补充分析')) {
|
|
@@ -220,7 +316,7 @@ async function enrichTaskDocs(iteration, taskId, reqFiles) {
|
|
|
220
316
|
}
|
|
221
317
|
}
|
|
222
318
|
// 补全 REVIEW.md
|
|
223
|
-
const reviewPath = (0, path_1.join)(
|
|
319
|
+
const reviewPath = (0, path_1.join)(fullTaskDir, '99-artifacts', 'REVIEW.md');
|
|
224
320
|
if (await (0, fs_extra_1.pathExists)(reviewPath)) {
|
|
225
321
|
let reviewContent = await require('fs-extra').readFile(reviewPath, 'utf-8');
|
|
226
322
|
if (!reviewContent.includes('## 本任务专项检查')) {
|
|
@@ -245,10 +341,10 @@ async function enrichTaskDocs(iteration, taskId, reqFiles) {
|
|
|
245
341
|
['MONITOR.md', `# 监控\n\n## 关键指标\n| 指标 | 阈值 | 级别 |\n| :--- | :--- | :--- |\n| 成功率 | <99.9% | P1 |\n| P99延迟 | >1000ms | P2 |\n`],
|
|
246
342
|
];
|
|
247
343
|
for (const [filename, content] of templates) {
|
|
248
|
-
const fp = (0, path_1.join)(
|
|
344
|
+
const fp = (0, path_1.join)(fullTaskDir, '99-artifacts', filename);
|
|
249
345
|
if (!(await (0, fs_extra_1.pathExists)(fp))) {
|
|
250
346
|
await (0, fs_extra_1.writeFile)(fp, content);
|
|
251
|
-
logger_1.logger.info(` 📄 创建
|
|
347
|
+
logger_1.logger.info(` 📄 创建 99-artifacts/${filename}`);
|
|
252
348
|
}
|
|
253
349
|
}
|
|
254
350
|
}
|
|
@@ -464,6 +560,8 @@ async function buildMultiDocPrompt(command, ctx) {
|
|
|
464
560
|
prompt += `- 当前是**任务级分析**,类型为 \`${taskType}\`,只需产出 ${taskDocs.length} 个文档:${taskDocs.map(([n]) => n).join('、')}\n`;
|
|
465
561
|
prompt += `- bugfix: 聚焦根因分析和修复验证;research: 聚焦技术调研;review: 聚焦代码审查\n`;
|
|
466
562
|
prompt += `- feature/refactor: 全量分析(功能、接口、数据、规则)\n`;
|
|
563
|
+
prompt += `- **双层解耦**:先读 \`020-specs/\` 了解迭代级基线,再读 \`00-specs/REQ.md\` 了解本任务已有的需求切片\n`;
|
|
564
|
+
prompt += `- 分析结果写入 \`00-specs/\`(任务独立),**不覆盖** \`020-specs/\`(迭代基线)\n`;
|
|
467
565
|
}
|
|
468
566
|
else {
|
|
469
567
|
prompt += `- 当前是**迭代级分析**,需产出全部 7 个文档,覆盖需求→技术→测试→评审→风险→依赖→监控\n`;
|
|
@@ -477,10 +575,16 @@ async function buildMultiDocPrompt(command, ctx) {
|
|
|
477
575
|
const tpl = templateMap[doc[0]] || '';
|
|
478
576
|
prompt += ` - ${doc[0]} → 参考 ${tpl}\n`;
|
|
479
577
|
}
|
|
480
|
-
prompt += `2.
|
|
578
|
+
prompt += `2. 读取需求文档(按优先级顺序):\n`;
|
|
579
|
+
prompt += ` a. 先读 010-requirements/INDEX.md — 了解需求全貌和文件清单\n`;
|
|
580
|
+
prompt += ` b. 再读 010-requirements/converted/*.md — doc2spec 转换后的核心规格(主要依据)\n`;
|
|
581
|
+
prompt += ` c. 再读 010-requirements/features/*/README.md — 功能级补充需求\n`;
|
|
582
|
+
prompt += ` d. 参考 010-requirements/assets/prototypes/ 和 designs/ — 原型和设计稿\n`;
|
|
583
|
+
prompt += ` e. 如用户指定了特定文档,优先读取指定文件;如要求全部,再读 sources/ 原始文档\n`;
|
|
481
584
|
prompt += `3. 读懂需求文档后,按专业模板标准自由撰写每个文档(不是填空表)\n`;
|
|
482
585
|
prompt += `4. 每个文档都要具体内容(禁止"待填充"),分析完成后支持交互编辑任意文档的任意章节\n`;
|
|
483
|
-
|
|
586
|
+
const taskFlag = isTask && ctx.task ? ` --task ${ctx.task}` : '';
|
|
587
|
+
prompt += `5. 写入: speccore analyze --apply '{"${taskDocs.map(([n]) => `${n}:"..."`).join(',')}...}' -I ${iter}${taskFlag}\n\n`;
|
|
484
588
|
for (let i = 0; i < taskDocs.length; i++) {
|
|
485
589
|
prompt += `### ${i + 1}/${taskDocs.length}: ${taskDocs[i][0]}\n\`\`\`markdown\n${taskDocs[i][1]}\n\`\`\`\n\n`;
|
|
486
590
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/ask.d.ts
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* 终端输出使用 Unicode 框线 + 颜色码,呈现视觉化预览
|
|
5
5
|
*/
|
|
6
6
|
export declare function askCommand(input: string, _options: any): Promise<void>;
|
|
7
|
-
export declare const SVG_ONBOARD = "<svg viewBox=\"0 0 680
|
|
7
|
+
export declare const SVG_ONBOARD = "<svg viewBox=\"0 0 680 400\" xmlns=\"http://www.w3.org/2000/svg\"><style>.mode-rect{transition:all .3s;cursor:pointer}.mode-rect:hover{filter:brightness(1.4) drop-shadow(0 0 12px currentColor)}.ask-circle{cursor:pointer;transition:all .3s}.ask-circle:hover{filter:drop-shadow(0 0 20px rgba(14,165,233,.7))}</style><line x1=\"319\" y1=\"218\" x2=\"230\" y2=\"178\" stroke=\"#14b8a6\" stroke-width=\"1.5\"/><line x1=\"361\" y1=\"218\" x2=\"450\" y2=\"178\" stroke=\"#f97316\" stroke-width=\"1.5\"/><line x1=\"319\" y1=\"238\" x2=\"230\" y2=\"278\" stroke=\"#0ea5e9\" stroke-width=\"1.5\"/><line x1=\"361\" y1=\"238\" x2=\"450\" y2=\"278\" stroke=\"#a78bfa\" stroke-width=\"1.5\"/><rect class=\"mode-rect\" x=\"40\" y=\"68\" width=\"285\" height=\"110\" rx=\"8\" fill=\"#0d1f38\" stroke=\"#14b8a6\" stroke-width=\"1\" onclick=\"window.location.href='speccore-ask-explain.html'\"/><text x=\"56\" y=\"90\" fill=\"#14b8a6\" font-size=\"13\" font-family=\"monospace\" font-weight=\"bold\">\u6A21\u5F0F1: \u547D\u4EE4\u89E3\u91CA</text><text x=\"56\" y=\"110\" fill=\"#5b7fa5\" font-size=\"10\" font-family=\"monospace\">\u89E3\u91CA\u4E0B dashboard \u547D\u4EE4</text><text x=\"56\" y=\"128\" fill=\"#5b7fa5\" font-size=\"10\" font-family=\"monospace\">init \u6709\u54EA\u4E9B\u53C2\u6570\uFF1F</text><text x=\"56\" y=\"146\" fill=\"#5b7fa5\" font-size=\"10\" font-family=\"monospace\">\u663E\u793A\u547D\u4EE4\u8BE6\u60C5 + \u793A\u4F8B + \u5173\u8054\u547D\u4EE4</text><rect x=\"160\" y=\"158\" width=\"120\" height=\"16\" rx=\"8\" fill=\"#14b8a6\" opacity=\"0.15\"/><text x=\"220\" y=\"170\" text-anchor=\"middle\" fill=\"#14b8a6\" font-size=\"9\" font-family=\"monospace\">\u77E5\u8BC6\u5E93\u5339\u914D</text><rect class=\"mode-rect\" x=\"355\" y=\"68\" width=\"285\" height=\"110\" rx=\"8\" fill=\"#0d1f38\" stroke=\"#f97316\" stroke-width=\"1\" onclick=\"window.location.href='speccore-ask-guide.html'\"/><text x=\"371\" y=\"90\" fill=\"#f97316\" font-size=\"13\" font-family=\"monospace\" font-weight=\"bold\">\u6A21\u5F0F2: \u4EFB\u52A1\u6307\u5F15</text><text x=\"371\" y=\"110\" fill=\"#5b7fa5\" font-size=\"10\" font-family=\"monospace\">\u6211\u60F3\u505A\u4E00\u4E2A\u767B\u5F55\u529F\u80FD</text><text x=\"371\" y=\"128\" fill=\"#5b7fa5\" font-size=\"10\" font-family=\"monospace\">\u600E\u4E48\u5F00\u59CB\u4E00\u4E2A\u65B0\u9879\u76EE\uFF1F</text><text x=\"371\" y=\"146\" fill=\"#5b7fa5\" font-size=\"10\" font-family=\"monospace\">\u5C55\u793A\u5B8C\u6574\u64CD\u4F5C\u6B65\u9AA4\u6D41\u6C34\u7EBF</text><rect x=\"480\" y=\"158\" width=\"120\" height=\"16\" rx=\"8\" fill=\"#f97316\" opacity=\"0.15\"/><text x=\"540\" y=\"170\" text-anchor=\"middle\" fill=\"#f97316\" font-size=\"9\" font-family=\"monospace\">\u5DE5\u4F5C\u6D41\u751F\u6210</text><rect class=\"mode-rect\" x=\"40\" y=\"278\" width=\"285\" height=\"110\" rx=\"8\" fill=\"#0d1f38\" stroke=\"#0ea5e9\" stroke-width=\"1\" onclick=\"window.location.href='speccore-ask-match.html'\"/><text x=\"56\" y=\"300\" fill=\"#0ea5e9\" font-size=\"13\" font-family=\"monospace\" font-weight=\"bold\">\u6A21\u5F0F3: \u610F\u56FE\u5339\u914D</text><text x=\"56\" y=\"320\" fill=\"#5b7fa5\" font-size=\"10\" font-family=\"monospace\">\u67E5\u770B\u9879\u76EE\u8FDB\u5EA6 \u2192 dashboard</text><text x=\"56\" y=\"338\" fill=\"#5b7fa5\" font-size=\"10\" font-family=\"monospace\">\u5E2E\u6211\u5BA1\u67E5\u4EE3\u7801 \u2192 validate</text><text x=\"56\" y=\"356\" fill=\"#5b7fa5\" font-size=\"10\" font-family=\"monospace\">\u76F4\u63A5\u5339\u914D\u547D\u4EE4</text><rect x=\"160\" y=\"368\" width=\"120\" height=\"16\" rx=\"8\" fill=\"#0ea5e9\" opacity=\"0.15\"/><text x=\"220\" y=\"378\" text-anchor=\"middle\" fill=\"#0ea5e9\" font-size=\"9\" font-family=\"monospace\">38\u610F\u56FE+AI</text><rect class=\"mode-rect\" x=\"355\" y=\"278\" width=\"285\" height=\"110\" rx=\"8\" fill=\"#0d1f38\" stroke=\"#a78bfa\" stroke-width=\"1\" onclick=\"window.location.href='speccore-ask-pipeline.html'\"/><text x=\"371\" y=\"300\" fill=\"#a78bfa\" font-size=\"13\" font-family=\"monospace\" font-weight=\"bold\">\u6A21\u5F0F4: \u590D\u6742\u7F16\u6392</text><text x=\"371\" y=\"320\" fill=\"#5b7fa5\" font-size=\"10\" font-family=\"monospace\">\u8BA1\u5212\u6240\u6709\u4EFB\u52A1\u665A8\u70B9\u5206\u6279</text><text x=\"371\" y=\"338\" fill=\"#5b7fa5\" font-size=\"10\" font-family=\"monospace\">\u505A\u5B8C\u5206\u6790\u62C6\u5206\u6267\u884CPR</text><text x=\"371\" y=\"356\" fill=\"#5b7fa5\" font-size=\"10\" font-family=\"monospace\">LLM\u5206\u89E3\u9884\u89C8\u786E\u8BA4\u6267\u884C</text><rect x=\"480\" y=\"368\" width=\"120\" height=\"16\" rx=\"8\" fill=\"#a78bfa\" opacity=\"0.15\"/><text x=\"540\" y=\"378\" text-anchor=\"middle\" fill=\"#a78bfa\" font-size=\"9\" font-family=\"monospace\">Pipeline\u5F15\u64CE</text><circle class=\"ask-circle\" cx=\"340\" cy=\"228\" r=\"28\" fill=\"#0d1f38\" stroke=\"#0ea5e9\" stroke-width=\"2\"/><text x=\"340\" y=\"234\" text-anchor=\"middle\" fill=\"#0ea5e9\" font-size=\"16\" font-family=\"monospace\" font-weight=\"bold\">ask</text></svg>";
|
|
8
8
|
//# sourceMappingURL=ask.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiKH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiKH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAmK5E;AA0ED,eAAO,MAAM,WAAW,47JAAu2H,CAAC"}
|
package/dist/commands/ask.js
CHANGED
|
@@ -189,7 +189,7 @@ async function askCommand(input, _options) {
|
|
|
189
189
|
return;
|
|
190
190
|
}
|
|
191
191
|
// ── 🎉 升级仪式:首次使用 / 版本升级时展示引导页 ──
|
|
192
|
-
const { pathExists, readFile, writeFile, ensureDir } = await Promise.resolve().then(() => __importStar(require('fs-extra')));
|
|
192
|
+
const { pathExists, readFile, writeFile, ensureDir, copy } = await Promise.resolve().then(() => __importStar(require('fs-extra')));
|
|
193
193
|
const { join } = await Promise.resolve().then(() => __importStar(require('path')));
|
|
194
194
|
const markerDir = join(process.cwd(), '.speccore', 'local');
|
|
195
195
|
const markerFile = join(markerDir, '.ask-onboarded');
|
|
@@ -203,8 +203,16 @@ async function askCommand(input, _options) {
|
|
|
203
203
|
}
|
|
204
204
|
if (lastVersion !== ver) {
|
|
205
205
|
const html = renderOnboardingHtml();
|
|
206
|
-
const outPath = join(process.cwd(), 'speccore-ask-onboarding.html');
|
|
206
|
+
const outPath = join(process.cwd(), 'outputs', 'speccore-ask-onboarding.html');
|
|
207
|
+
await ensureDir(join(process.cwd(), 'outputs'));
|
|
207
208
|
await writeFile(outPath, html);
|
|
209
|
+
// 复制关联模板页面到 outputs/
|
|
210
|
+
const tplDir = join(process.cwd(), 'templates', 'html');
|
|
211
|
+
for (const f of ['speccore-ask-explain.html', 'speccore-ask-guide.html', 'speccore-ask-match.html', 'speccore-ask-pipeline.html', 'speccore-help.html']) {
|
|
212
|
+
const src = join(tplDir, f);
|
|
213
|
+
if (await pathExists(src))
|
|
214
|
+
await copy(src, join(process.cwd(), 'outputs', f));
|
|
215
|
+
}
|
|
208
216
|
await writeFile(markerFile, ver);
|
|
209
217
|
// 输出 SPECCORE_ONBOARD 标记让 AI 展示引导页
|
|
210
218
|
process.stdout.write(`[SPECCORE_ONBOARD: ${outPath}]\n`);
|
|
@@ -349,7 +357,7 @@ async function askHtml(input) {
|
|
|
349
357
|
const html = renderAskHtml(result, input);
|
|
350
358
|
const path = require('path');
|
|
351
359
|
const fs = require('fs');
|
|
352
|
-
const file = path.join(process.cwd(), 'speccore-ask-result.html');
|
|
360
|
+
const file = path.join(process.cwd(), 'outputs', 'speccore-ask-result.html');
|
|
353
361
|
if (!!process.env.WORKBUDDY_SESSION) {
|
|
354
362
|
process.stdout.write(html);
|
|
355
363
|
}
|
|
@@ -399,7 +407,7 @@ function renderPipelineHtml(result, input) {
|
|
|
399
407
|
}
|
|
400
408
|
function buildPage(title, body, input, accent) {
|
|
401
409
|
const ver = require('../../package.json').version;
|
|
402
|
-
return `<!DOCTYPE html><html lang="zh-CN" data-theme="ocean"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>SpecCore · ${input.slice(0, 20)}</title><style>@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=JetBrains+Mono:wght@400;600;700&display=swap');[data-theme="ocean"]{--cyan:#0ea5e9;--bg:#0b1929;--card:rgba(13,31,56,.95);--border:rgba(14,165,233,.15);--text:#bae6fd;--muted:#5b7fa5;--green:#14b8a6;--orange:#f97316;--purple:#6366f1}*{margin:0;padding:0;box-sizing:border-box}body{font-family:'JetBrains Mono',monospace;background:var(--bg);color:var(--text);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 20px}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:99;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,240,255,.01) 2px,rgba(0,240,255,.01) 4px)}.card{max-width:
|
|
410
|
+
return `<!DOCTYPE html><html lang="zh-CN" data-theme="ocean"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>SpecCore · ${input.slice(0, 20)}</title><style>@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=JetBrains+Mono:wght@400;600;700&display=swap');[data-theme="ocean"]{--cyan:#0ea5e9;--bg:#0b1929;--card:rgba(13,31,56,.95);--border:rgba(14,165,233,.15);--text:#bae6fd;--muted:#5b7fa5;--green:#14b8a6;--orange:#f97316;--purple:#6366f1}*{margin:0;padding:0;box-sizing:border-box}body{font-family:'JetBrains Mono',monospace;background:var(--bg);color:var(--text);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 20px}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:99;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,240,255,.01) 2px,rgba(0,240,255,.01) 4px)}.card{max-width:800px;width:100%;margin:0 auto;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:24px;position:relative;overflow:hidden}.card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:scanX 3s linear infinite}.card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:scanX-rev 3s linear infinite}@keyframes scanX{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes scanX-rev{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}@keyframes scanY{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}@keyframes scanY-rev{0%{transform:translateY(100%)}100%{transform:translateY(-100%)}}.vline{position:absolute;top:0;width:1px;bottom:0;pointer-events:none}.vline.l{left:0;background:linear-gradient(180deg,transparent,var(--cyan),transparent);animation:scanY-rev 3s linear infinite}.vline.r{right:0;background:linear-gradient(180deg,transparent,var(--cyan),transparent);animation:scanY 3s linear infinite}h1{font-family:'Orbitron',sans-serif;font-size:24px;font-weight:900;background:linear-gradient(135deg,var(--cyan),var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:2px;animation:titleGlow 3s ease-in-out infinite}@keyframes titleGlow{0%,100%{filter:drop-shadow(0 0 20px rgba(14,165,233,.4)) drop-shadow(0 0 60px rgba(14,165,233,.15))}50%{filter:drop-shadow(0 0 30px rgba(14,165,233,.7)) drop-shadow(0 0 80px rgba(14,165,233,.3))}}@keyframes cardGlow{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.6)}}.card-bg{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 50% 10%,rgba(14,165,233,.25) 0%,transparent 70%);animation:cardGlow 3s ease-in-out infinite;transform-origin:top center}.grid-pattern{position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(14,165,233,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(14,165,233,.03) 1px,transparent 1px);background-size:60px 60px}.query{color:var(--muted);font-size:12px;margin:8px 0 16px}.badge{display:inline-block;padding:4px 14px;border-radius:20px;font-size:11px;font-weight:600;background:${accent}22;color:${accent};border:1px solid ${accent}44;margin-bottom:20px}code{background:rgba(14,165,233,.1);padding:2px 8px;border-radius:4px;color:var(--cyan);font-size:12px;display:inline-block;margin:4px 4px 4px 0}.tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;background:rgba(20,184,166,.1);color:var(--green);margin:2px}
|
|
403
411
|
/* Explain */
|
|
404
412
|
.explain-box{padding:10px 0}.explain-desc{font-size:13px;margin-bottom:16px}.explain-usage,.explain-examples,.explain-related{margin:10px 0}.label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-right:8px}
|
|
405
413
|
/* Guide */
|
|
@@ -408,11 +416,11 @@ function buildPage(title, body, input, accent) {
|
|
|
408
416
|
.match-result{padding:10px 0}.match-summary{font-weight:600;font-size:14px;margin-bottom:12px}.match-detail{color:var(--muted);font-size:12px;line-height:1.6}
|
|
409
417
|
/* Pipeline */
|
|
410
418
|
.pipeline-title{font-weight:600;margin-bottom:16px}.pipeline-steps{display:flex;flex-direction:column;gap:10px}.pipe-step{display:flex;gap:14px;padding:12px 14px;background:rgba(99,102,241,.04);border-left:2px solid var(--purple);border-radius:0 8px 8px 0}.pipe-step .pipe-num{font-family:Orbitron;font-size:20px;font-weight:900;color:var(--purple);min-width:36px}.pipe-step .pipe-cmd{font-weight:600;color:var(--green)}.pipe-step .pipe-args{color:var(--muted);font-size:11px}.pipe-step .pipe-desc{color:var(--muted);font-size:10px;margin-top:4px}.pipe-step .pipe-dep{font-size:9px;color:var(--orange);margin-top:4px}.confirm-bar{text-align:center;padding:14px;margin-top:16px;background:rgba(99,102,241,.08);border:1px dashed rgba(99,102,241,.2);border-radius:8px;color:var(--purple);font-size:12px}
|
|
411
|
-
.footer{text-align:center;color:var(--muted);font-size:10px;margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.04)}</style></head><body><div class="scanlines"></div><div class="card"><div class="vline l"></div><div class="vline r"></div><h1>SPECCORE ASK</h1><div class="query">"${input}"</div><div class="badge">${title}</div>${body}<div class="footer">由 SpecCore 驱动 v${ver} · ${new Date().toISOString().split('T')[0]}</div></div></body></html>`;
|
|
419
|
+
.footer{text-align:center;color:var(--muted);font-size:10px;margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.04)}</style></head><body><div class="scanlines"></div><div class="grid-pattern"></div><div class="card"><div class="card-bg"></div><div class="vline l"></div><div class="vline r"></div><h1>SPECCORE ASK</h1><div class="query">"${input}"</div><div class="badge">${title}</div>${body}<div class="footer">由 SpecCore 驱动 v${ver} · ${new Date().toISOString().split('T')[0]}</div></div></body></html>`;
|
|
412
420
|
}
|
|
413
421
|
function renderOnboardingHtml() {
|
|
414
422
|
const ver = require('../../package.json').version;
|
|
415
|
-
return '<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>Speccore Ask 首次引导</title><style>@import url(\'https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=JetBrains+Mono:wght@400;600;700\');*{box-sizing:border-box}body{margin:0;padding:24px 20px;background:#0b1929;display:flex;align-items:center;justify-content:center;min-height:100vh;font-family:\'JetBrains Mono\',monospace;position:relative}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,240,255,.015) 2px,rgba(0,240,255,.015) 4px)}.grid-pattern{position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(14,165,233,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(14,165,233,.03) 1px,transparent 1px);background-size:60px 60px}.card{max-width:
|
|
423
|
+
return '<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>Speccore Ask 首次引导</title><style>@import url(\'https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=JetBrains+Mono:wght@400;600;700\');*{box-sizing:border-box}body{margin:0;padding:24px 20px;background:#0b1929;display:flex;align-items:center;justify-content:center;min-height:100vh;font-family:\'JetBrains Mono\',monospace;position:relative}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,240,255,.015) 2px,rgba(0,240,255,.015) 4px)}.grid-pattern{position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(14,165,233,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(14,165,233,.03) 1px,transparent 1px);background-size:60px 60px}.card{max-width:800px;width:100%;background:rgba(13,31,56,.95);border:1px solid rgba(14,165,233,.15);border-radius:16px;padding:24px;position:relative;overflow:hidden;z-index:1}.card::before{content:\'\';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#0ea5e9,transparent);animation:scanX 3s linear infinite}.card::after{content:\'\';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#0ea5e9,transparent);animation:scanX-rev 3s linear infinite}.vline{position:absolute;top:0;width:1px;bottom:0;pointer-events:none}.vline.l{left:0;background:linear-gradient(0deg,transparent,#0ea5e9,transparent);animation:scanY-rev 3s linear infinite}.vline.r{right:0;background:linear-gradient(0deg,transparent,#0ea5e9,transparent);animation:scanY 3s linear infinite}@keyframes scanX{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes scanX-rev{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}@keyframes scanY{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}@keyframes scanY-rev{0%{transform:translateY(100%)}100%{transform:translateY(-100%)}}.wrap svg{display:block;width:100%;height:auto}.badge-line{text-align:center;margin-top:14px;position:relative;z-index:1;color:#5b7fa5;font-size:11px}.badge-line code{background:rgba(14,165,233,.15);color:#0ea5e9;padding:4px 14px;border-radius:6px;font-size:13px;border:1px solid rgba(14,165,233,.2)}.sub{color:#5b7fa5;font-size:12px;letter-spacing:1px;text-align:center;margin-top:6px}.bottom-bar{text-align:center;margin-top:14px;padding:12px 20px;background:rgba(14,165,233,.08);border:1px solid rgba(14,165,233,.15);border-radius:10px}.bottom-bar .entry{color:#bae6fd;font-size:12px}.bottom-bar .flow-desc{color:#5b7fa5;font-size:10px;margin-top:6px}.ft{text-align:center;color:#5b7fa5;font-size:10px;margin-top:16px;z-index:1}@keyframes cardGlow{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.6)}}.card-bg{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 50% 10%,rgba(14,165,233,.25) 0%,transparent 70%);animation:cardGlow 3s ease-in-out infinite;transform-origin:top center}@keyframes titleGlow{0%,100%{filter:drop-shadow(0 0 20px rgba(14,165,233,.4)) drop-shadow(0 0 60px rgba(14,165,233,.15))}50%{filter:drop-shadow(0 0 30px rgba(14,165,233,.7)) drop-shadow(0 0 80px rgba(14,165,233,.3))}}h1,h2{font-family:\'Orbitron\',sans-serif;font-size:40px;font-weight:900;background:linear-gradient(135deg,#0ea5e9,#6366f1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:2px;text-align:center;animation:titleGlow 3s ease-in-out infinite}.mode-rect{transition:all .3s;cursor:pointer}.mode-rect:hover{filter:brightness(1.4) drop-shadow(0 0 8px currentColor)}.ask-circle{cursor:pointer;transition:all .3s}.ask-circle:hover{filter:drop-shadow(0 0 16px rgba(14,165,233,.6))}.start-bar{text-align:center;margin-top:18px;position:relative;z-index:1}.start-btn{display:inline-block;padding:12px 36px;background:linear-gradient(135deg,#0ea5e9 0%,#6366f1 100%);border:none;border-radius:40px;color:#fff;font-family:\'JetBrains Mono\',monospace;font-size:13px;font-weight:700;letter-spacing:1px;cursor:pointer;box-shadow:0 0 24px rgba(14,165,233,.3);transition:all .3s;text-decoration:none}.start-btn:hover{box-shadow:0 0 40px rgba(14,165,233,.5);transform:translateY(-1px)}.copy-hint{display:inline-block;margin-top:10px;color:#5b7fa5;font-size:10px;cursor:pointer;transition:color .2s}.copy-hint:hover{color:#0ea5e9}</style></head><body><div class="scanlines"></div><div class="grid-pattern"></div><div class="card"><div class="card-bg"></div><div class="vline l"></div><div class="vline r"></div><h1>ask — SpecCore 万能AI入口</h1><div class="sub">一个命令解决所有问题:解释 / 指引 / 匹配 / 编排</div><div style="display:block;width:100%">' + exports.SVG_ONBOARD + '</div><div class="badge-line">任意自然语言,AI 自动匹配最佳模式</div><div class="start-bar"><a class="start-btn" href="speccore-help.html">知道了,开始使用</a><div class="copy-hint" onclick="navigator.clipboard.writeText(\'/spec-ask 你的需求\');this.textContent=\'✅ 已复制到剪贴板\'" title="点击复制">📋 点击复制命令</div></div><div class="bottom-bar"><div class="entry">统一入口: /spec-ask 任意自然语言,AI 自动理解意图</div><div class="flow-desc">AI 自动判断模式 → 执行匹配逻辑 → 展示结果 → 用户确认</div></div><div class="ft">SpecCore v' + ver + ' — 下次直接显示结果</div></div></body></html>';
|
|
416
424
|
}
|
|
417
|
-
exports.SVG_ONBOARD = '<svg viewBox="0 0 680
|
|
425
|
+
exports.SVG_ONBOARD = '<svg viewBox="0 0 680 400" xmlns="http://www.w3.org/2000/svg"><style>.mode-rect{transition:all .3s;cursor:pointer}.mode-rect:hover{filter:brightness(1.4) drop-shadow(0 0 12px currentColor)}.ask-circle{cursor:pointer;transition:all .3s}.ask-circle:hover{filter:drop-shadow(0 0 20px rgba(14,165,233,.7))}</style><line x1="319" y1="218" x2="230" y2="178" stroke="#14b8a6" stroke-width="1.5"/><line x1="361" y1="218" x2="450" y2="178" stroke="#f97316" stroke-width="1.5"/><line x1="319" y1="238" x2="230" y2="278" stroke="#0ea5e9" stroke-width="1.5"/><line x1="361" y1="238" x2="450" y2="278" stroke="#a78bfa" stroke-width="1.5"/><rect class="mode-rect" x="40" y="68" width="285" height="110" rx="8" fill="#0d1f38" stroke="#14b8a6" stroke-width="1" onclick="window.location.href=\'speccore-ask-explain.html\'"/><text x="56" y="90" fill="#14b8a6" font-size="13" font-family="monospace" font-weight="bold">模式1: 命令解释</text><text x="56" y="110" fill="#5b7fa5" font-size="10" font-family="monospace">解释下 dashboard 命令</text><text x="56" y="128" fill="#5b7fa5" font-size="10" font-family="monospace">init 有哪些参数?</text><text x="56" y="146" fill="#5b7fa5" font-size="10" font-family="monospace">显示命令详情 + 示例 + 关联命令</text><rect x="160" y="158" width="120" height="16" rx="8" fill="#14b8a6" opacity="0.15"/><text x="220" y="170" text-anchor="middle" fill="#14b8a6" font-size="9" font-family="monospace">知识库匹配</text><rect class="mode-rect" x="355" y="68" width="285" height="110" rx="8" fill="#0d1f38" stroke="#f97316" stroke-width="1" onclick="window.location.href=\'speccore-ask-guide.html\'"/><text x="371" y="90" fill="#f97316" font-size="13" font-family="monospace" font-weight="bold">模式2: 任务指引</text><text x="371" y="110" fill="#5b7fa5" font-size="10" font-family="monospace">我想做一个登录功能</text><text x="371" y="128" fill="#5b7fa5" font-size="10" font-family="monospace">怎么开始一个新项目?</text><text x="371" y="146" fill="#5b7fa5" font-size="10" font-family="monospace">展示完整操作步骤流水线</text><rect x="480" y="158" width="120" height="16" rx="8" fill="#f97316" opacity="0.15"/><text x="540" y="170" text-anchor="middle" fill="#f97316" font-size="9" font-family="monospace">工作流生成</text><rect class="mode-rect" x="40" y="278" width="285" height="110" rx="8" fill="#0d1f38" stroke="#0ea5e9" stroke-width="1" onclick="window.location.href=\'speccore-ask-match.html\'"/><text x="56" y="300" fill="#0ea5e9" font-size="13" font-family="monospace" font-weight="bold">模式3: 意图匹配</text><text x="56" y="320" fill="#5b7fa5" font-size="10" font-family="monospace">查看项目进度 → dashboard</text><text x="56" y="338" fill="#5b7fa5" font-size="10" font-family="monospace">帮我审查代码 → validate</text><text x="56" y="356" fill="#5b7fa5" font-size="10" font-family="monospace">直接匹配命令</text><rect x="160" y="368" width="120" height="16" rx="8" fill="#0ea5e9" opacity="0.15"/><text x="220" y="378" text-anchor="middle" fill="#0ea5e9" font-size="9" font-family="monospace">38意图+AI</text><rect class="mode-rect" x="355" y="278" width="285" height="110" rx="8" fill="#0d1f38" stroke="#a78bfa" stroke-width="1" onclick="window.location.href=\'speccore-ask-pipeline.html\'"/><text x="371" y="300" fill="#a78bfa" font-size="13" font-family="monospace" font-weight="bold">模式4: 复杂编排</text><text x="371" y="320" fill="#5b7fa5" font-size="10" font-family="monospace">计划所有任务晚8点分批</text><text x="371" y="338" fill="#5b7fa5" font-size="10" font-family="monospace">做完分析拆分执行PR</text><text x="371" y="356" fill="#5b7fa5" font-size="10" font-family="monospace">LLM分解预览确认执行</text><rect x="480" y="368" width="120" height="16" rx="8" fill="#a78bfa" opacity="0.15"/><text x="540" y="378" text-anchor="middle" fill="#a78bfa" font-size="9" font-family="monospace">Pipeline引擎</text><circle class="ask-circle" cx="340" cy="228" r="28" fill="#0d1f38" stroke="#0ea5e9" stroke-width="2"/><text x="340" y="234" text-anchor="middle" fill="#0ea5e9" font-size="16" font-family="monospace" font-weight="bold">ask</text></svg>';
|
|
418
426
|
//# sourceMappingURL=ask.js.map
|