spec-agent 2.0.6 → 2.0.7

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.

Potentially problematic release.


This version of spec-agent might be problematic. Click here for more details.

package/README.md CHANGED
@@ -6,7 +6,8 @@
6
6
 
7
7
  如果你是通过 npm 公网安装并希望从零开始跑通,建议先阅读:
8
8
 
9
- - `USAGE_FROM_NPM.md`(npm 网页不支持该相对链接,安装后在本地包目录查看)
9
+ - `USAGE.md`
10
+ - `IMPLEMENTATION.md`
10
11
 
11
12
  ## 在 Cursor 中使用
12
13
 
@@ -329,4 +330,4 @@ npm run dev
329
330
 
330
331
  如果你要把本工具作为“可直接调用的 Cursor 智能体”交付给其他人,请看:
331
332
 
332
- - `CURSOR_AGENT_PACK.md`
333
+ - `USAGE.md`
package/USAGE.md ADDED
@@ -0,0 +1,75 @@
1
+ # SPEC-AGENT USAGE
2
+
3
+ 本文件合并了原 `USAGE_FROM_NPM.md` 与 `CURSOR_AGENT_PACK.md` 的使用内容,作为统一操作手册。
4
+
5
+ ## 1. 安装与检查
6
+
7
+ ```bash
8
+ npm install -g spec-agent@latest --registry=https://registry.npmjs.org/
9
+ spec-agent --version
10
+ spec-agent --help
11
+ ```
12
+
13
+ ## 2. LLM 配置(单模型)
14
+
15
+ PowerShell:
16
+
17
+ ```powershell
18
+ $env:LLM_API_KEY="your_api_key"
19
+ $env:LLM_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
20
+ $env:LLM_MODEL="qwen-plus"
21
+ ```
22
+
23
+ 可选自检:
24
+
25
+ ```bash
26
+ spec-agent doctor --workspace ./output --check-llm
27
+ ```
28
+
29
+ ## 3. 最小跑通流程
30
+
31
+ ```bash
32
+ spec-agent pipeline --input ./docs --output ./output
33
+ spec-agent handoff --workspace ./output --target cursor --include-summaries
34
+ spec-agent round --workspace ./output --input ./docs --target cursor --max-parallel 4
35
+ ```
36
+
37
+ ## 4. 原型图产物
38
+
39
+ 当需求文档包含图片时,重点查看:
40
+
41
+ - `output/prototypes/*`
42
+ - `output/prototype_index.json`
43
+ - `output/prototype_index.md`
44
+ - `output/handoff/tasks/*.md`(含 `Prototype References` 与 `Prototype Candidates`)
45
+
46
+ 前端交付建议:
47
+
48
+ - 优先按 `Prototype References`(高置信)实现页面
49
+ - `Prototype Candidates` 仅作为候选,必要时人工确认
50
+
51
+ ## 5. 回填执行
52
+
53
+ ```bash
54
+ spec-agent round --workspace ./output --input ./docs --complete T001,T002 --fail T003 --error "compile failed"
55
+ ```
56
+
57
+ ## 6. Cursor Agent Pack 使用
58
+
59
+ 需要在项目内放置:
60
+
61
+ - `.cursor/rules/spec-agent-assistant.mdc`
62
+ - `.cursor/skills/spec-agent-onboarding-agent/SKILL.md`
63
+ - `.cursor/skills/spec-agent-execution-orchestrator/SKILL.md`
64
+ - `.cursor/skills/spec-agent-product-dev-agent/SKILL.md`
65
+
66
+ 推荐触发语句:
67
+
68
+ ```text
69
+ 请按 spec-agent-product-dev-agent 流程,从需求分析开始,产出并推进一轮开发。
70
+ ```
71
+
72
+ ## 7. 当前交付范围
73
+
74
+ - 默认前端优先(页面/路由/组件/交互/状态/假数据)
75
+ - 后端/API/数据库任务默认延期,除非明确要求
@@ -1 +1 @@
1
- {"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../src/commands/handoff.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAoCD,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA8J7F"}
1
+ {"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../src/commands/handoff.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAuCD,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgK7F"}
@@ -83,6 +83,7 @@ async function handoffCommand(options, command) {
83
83
  if (!task)
84
84
  continue;
85
85
  const sourceChunks = guessSourceChunks(task, sourceChunkMap);
86
+ const prototypeMatches = matchTaskPrototypes(task, sourceChunks, prototypeAssets);
86
87
  const mapped = {
87
88
  id: task.id,
88
89
  name: task.name,
@@ -93,7 +94,8 @@ async function handoffCommand(options, command) {
93
94
  assignedType: agentType,
94
95
  estimatedHours: task.estimatedHours,
95
96
  sourceChunks,
96
- prototypeRefs: matchTaskPrototypes(task, sourceChunks, prototypeAssets),
97
+ prototypeRefs: prototypeMatches.filter(match => match.level === 'high'),
98
+ prototypeCandidates: prototypeMatches.filter(match => match.level !== 'high'),
97
99
  };
98
100
  rows.push(mapped);
99
101
  handoffTasks.push(mapped);
@@ -227,7 +229,9 @@ function renderTaskPrompt(input) {
227
229
  ? row.sourceChunks.map(i => `chunk_${i}_summary.json`).join(', ')
228
230
  : '未定位到明确 source chunk,请从 spec_summary.json 补充判断';
229
231
  const prototypeLines = (row.prototypeRefs || [])
230
- .map(ref => `- ${ref.id} | \`${ref.path}\` | score=${ref.score} | ${ref.reason}${ref.summary ? ` | ${ref.summary}` : ''}`);
232
+ .map(ref => `- ${ref.id} | \`${ref.path}\` | ${ref.level} | score=${ref.score} | ${ref.reason}${ref.summary ? ` | ${ref.summary}` : ''}`);
233
+ const prototypeCandidateLines = (row.prototypeCandidates || [])
234
+ .map(ref => `- ${ref.id} | \`${ref.path}\` | ${ref.level} | score=${ref.score} | ${ref.reason}${ref.summary ? ` | ${ref.summary}` : ''}`);
231
235
  return [
232
236
  `# Task Handoff - ${row.id} ${row.name}`,
233
237
  '',
@@ -259,7 +263,11 @@ function renderTaskPrompt(input) {
259
263
  '',
260
264
  '## Prototype References',
261
265
  '',
262
- ...(prototypeLines.length > 0 ? prototypeLines : ['- 无直接匹配原型,必要时在 prototype_index.json 中人工筛选']),
266
+ ...(prototypeLines.length > 0 ? prototypeLines : ['- high 置信度匹配原型,必要时参考候选区']),
267
+ '',
268
+ '## Prototype Candidates (medium/low)',
269
+ '',
270
+ ...(prototypeCandidateLines.length > 0 ? prototypeCandidateLines : ['- 无候选原型']),
263
271
  '',
264
272
  '## Execution Constraints',
265
273
  '',
@@ -330,7 +338,11 @@ function matchTaskPrototypes(task, sourceChunks, assets) {
330
338
  const taskName = normalizeName(task.name);
331
339
  const taskTokens = new Set(taskName.split(' ').filter(token => token.length >= 2));
332
340
  const matches = [];
341
+ const minBytes = Math.max(1024, parseInt(process.env.PROTOTYPE_MIN_BYTES || '12000', 10) || 12000);
333
342
  for (const asset of assets) {
343
+ if (shouldSkipPrototypeForMatching(asset, minBytes)) {
344
+ continue;
345
+ }
334
346
  let score = 0;
335
347
  const reasons = [];
336
348
  const chunkHits = intersectCount(sourceChunks || [], asset.sourceChunks || []);
@@ -350,10 +362,12 @@ function matchTaskPrototypes(task, sourceChunks, assets) {
350
362
  reasons.push(`关键词命中(${tokenHits})`);
351
363
  }
352
364
  if (score >= 35) {
365
+ const level = score >= 70 ? 'high' : score >= 45 ? 'medium' : 'low';
353
366
  matches.push({
354
367
  id: asset.id,
355
368
  path: asset.path,
356
369
  score,
370
+ level,
357
371
  reason: reasons.join(' + ') || '弱匹配',
358
372
  summary: asset.summary,
359
373
  });
@@ -363,6 +377,17 @@ function matchTaskPrototypes(task, sourceChunks, assets) {
363
377
  .sort((a, b) => b.score - a.score)
364
378
  .slice(0, 5);
365
379
  }
380
+ function shouldSkipPrototypeForMatching(asset, minBytes) {
381
+ const estimatedSize = asset.estimatedSize || 0;
382
+ if (estimatedSize > 0 && estimatedSize < minBytes) {
383
+ return true;
384
+ }
385
+ const text = normalizeName(`${asset.alt || ''} ${asset.summary || ''}`);
386
+ if (text.length < 8 && estimatedSize < minBytes * 2) {
387
+ return true;
388
+ }
389
+ return false;
390
+ }
366
391
  function intersectCount(a, b) {
367
392
  if (a.length === 0 || b.length === 0)
368
393
  return 0;
@@ -1 +1 @@
1
- {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/commands/handoff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/commands/handoff.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-agent",
3
- "version": "2.0.6",
3
+ "version": "2.0.7",
4
4
  "description": "CLI for requirement decomposition and agent-ready planning",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -24,6 +24,7 @@ interface HandoffTask {
24
24
  estimatedHours?: number;
25
25
  sourceChunks?: number[];
26
26
  prototypeRefs?: PrototypeMatch[];
27
+ prototypeCandidates?: PrototypeMatch[];
27
28
  }
28
29
 
29
30
  interface PrototypeIndexFile {
@@ -37,6 +38,7 @@ interface PrototypeAssetEntry {
37
38
  alt?: string;
38
39
  summary?: string;
39
40
  sourceChunks?: number[];
41
+ estimatedSize?: number;
40
42
  }
41
43
 
42
44
  interface PrototypeMatch {
@@ -45,6 +47,7 @@ interface PrototypeMatch {
45
47
  reason: string;
46
48
  score: number;
47
49
  summary?: string;
50
+ level: 'high' | 'medium' | 'low';
48
51
  }
49
52
 
50
53
  export async function handoffCommand(options: HandoffOptions, command: Command): Promise<void> {
@@ -98,6 +101,7 @@ export async function handoffCommand(options: HandoffOptions, command: Command):
98
101
  const task = taskById.get(taskId);
99
102
  if (!task) continue;
100
103
  const sourceChunks = guessSourceChunks(task, sourceChunkMap);
104
+ const prototypeMatches = matchTaskPrototypes(task, sourceChunks, prototypeAssets);
101
105
  const mapped: HandoffTask = {
102
106
  id: task.id,
103
107
  name: task.name,
@@ -108,7 +112,8 @@ export async function handoffCommand(options: HandoffOptions, command: Command):
108
112
  assignedType: agentType,
109
113
  estimatedHours: task.estimatedHours,
110
114
  sourceChunks,
111
- prototypeRefs: matchTaskPrototypes(task, sourceChunks, prototypeAssets),
115
+ prototypeRefs: prototypeMatches.filter(match => match.level === 'high'),
116
+ prototypeCandidates: prototypeMatches.filter(match => match.level !== 'high'),
112
117
  };
113
118
  rows.push(mapped);
114
119
  handoffTasks.push(mapped);
@@ -269,7 +274,9 @@ function renderTaskPrompt(input: {
269
274
  ? row.sourceChunks.map(i => `chunk_${i}_summary.json`).join(', ')
270
275
  : '未定位到明确 source chunk,请从 spec_summary.json 补充判断';
271
276
  const prototypeLines = (row.prototypeRefs || [])
272
- .map(ref => `- ${ref.id} | \`${ref.path}\` | score=${ref.score} | ${ref.reason}${ref.summary ? ` | ${ref.summary}` : ''}`);
277
+ .map(ref => `- ${ref.id} | \`${ref.path}\` | ${ref.level} | score=${ref.score} | ${ref.reason}${ref.summary ? ` | ${ref.summary}` : ''}`);
278
+ const prototypeCandidateLines = (row.prototypeCandidates || [])
279
+ .map(ref => `- ${ref.id} | \`${ref.path}\` | ${ref.level} | score=${ref.score} | ${ref.reason}${ref.summary ? ` | ${ref.summary}` : ''}`);
273
280
 
274
281
  return [
275
282
  `# Task Handoff - ${row.id} ${row.name}`,
@@ -302,7 +309,11 @@ function renderTaskPrompt(input: {
302
309
  '',
303
310
  '## Prototype References',
304
311
  '',
305
- ...(prototypeLines.length > 0 ? prototypeLines : ['- 无直接匹配原型,必要时在 prototype_index.json 中人工筛选']),
312
+ ...(prototypeLines.length > 0 ? prototypeLines : ['- high 置信度匹配原型,必要时参考候选区']),
313
+ '',
314
+ '## Prototype Candidates (medium/low)',
315
+ '',
316
+ ...(prototypeCandidateLines.length > 0 ? prototypeCandidateLines : ['- 无候选原型']),
306
317
  '',
307
318
  '## Execution Constraints',
308
319
  '',
@@ -389,8 +400,12 @@ function matchTaskPrototypes(
389
400
  const taskName = normalizeName(task.name);
390
401
  const taskTokens = new Set(taskName.split(' ').filter(token => token.length >= 2));
391
402
  const matches: PrototypeMatch[] = [];
403
+ const minBytes = Math.max(1024, parseInt(process.env.PROTOTYPE_MIN_BYTES || '12000', 10) || 12000);
392
404
 
393
405
  for (const asset of assets) {
406
+ if (shouldSkipPrototypeForMatching(asset, minBytes)) {
407
+ continue;
408
+ }
394
409
  let score = 0;
395
410
  const reasons: string[] = [];
396
411
 
@@ -413,10 +428,12 @@ function matchTaskPrototypes(
413
428
  }
414
429
 
415
430
  if (score >= 35) {
431
+ const level: PrototypeMatch['level'] = score >= 70 ? 'high' : score >= 45 ? 'medium' : 'low';
416
432
  matches.push({
417
433
  id: asset.id,
418
434
  path: asset.path,
419
435
  score,
436
+ level,
420
437
  reason: reasons.join(' + ') || '弱匹配',
421
438
  summary: asset.summary,
422
439
  });
@@ -428,6 +445,18 @@ function matchTaskPrototypes(
428
445
  .slice(0, 5);
429
446
  }
430
447
 
448
+ function shouldSkipPrototypeForMatching(asset: PrototypeAssetEntry, minBytes: number): boolean {
449
+ const estimatedSize = asset.estimatedSize || 0;
450
+ if (estimatedSize > 0 && estimatedSize < minBytes) {
451
+ return true;
452
+ }
453
+ const text = normalizeName(`${asset.alt || ''} ${asset.summary || ''}`);
454
+ if (text.length < 8 && estimatedSize < minBytes * 2) {
455
+ return true;
456
+ }
457
+ return false;
458
+ }
459
+
431
460
  function intersectCount(a: number[], b: number[]): number {
432
461
  if (a.length === 0 || b.length === 0) return 0;
433
462
  const set = new Set(a);
@@ -1,93 +0,0 @@
1
- # Spec-Agent Cursor Agent Pack
2
-
3
- 这是一套可分发给其他人的 `.cursor` 智能体配置,目标是让对方拿到后可以在对话框中:
4
-
5
- 1. 检查并安装 `spec-agent`
6
- 2. 分析需求并产出标准产物
7
- 3. 基于产物进入执行闭环并推进开发(当前以前端实现为主)
8
-
9
- ## Current Scope
10
-
11
- - 当前默认交付范围:前端页面快速构建(页面/路由/交互/表单/状态/假数据联调)
12
- - 后端接口、数据库、部署链路:默认暂不实现,作为后续阶段
13
-
14
- ## Pack Contents
15
-
16
- - `.cursor/rules/spec-agent-assistant.mdc`
17
- - `.cursor/skills/spec-agent-onboarding-agent/SKILL.md`
18
- - `.cursor/skills/spec-agent-execution-orchestrator/SKILL.md`
19
- - `.cursor/skills/spec-agent-execution-orchestrator/reference.md`
20
- - `.cursor/skills/spec-agent-execution-orchestrator/agent-prompts.md`
21
- - `.cursor/skills/spec-agent-product-dev-agent/SKILL.md`
22
-
23
- ## How Others Use
24
-
25
- ### 1) 获取仓库并安装 CLI
26
-
27
- ```bash
28
- npm install -g spec-agent --registry=https://registry.npmjs.org/
29
- spec-agent --version
30
- ```
31
-
32
- ### 2) 在项目中准备需求
33
-
34
- - 将需求文档放入 `./docs`
35
- - 或让 Agent 将对话需求保存到 `docs/requirement.md`
36
-
37
- ### 3) 配置 LLM(统一单模型)
38
-
39
- 仅保留一个模型配置:`LLM_MODEL`(不再需要 `LLM_MODEL_SCAN/ANALYZE/VISION`)。
40
-
41
- PowerShell(当前终端):
42
-
43
- ```powershell
44
- $env:LLM_API_KEY="your_api_key"
45
- $env:LLM_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
46
- $env:LLM_MODEL="qwen-plus"
47
- ```
48
-
49
- 可选自检:
50
-
51
- ```bash
52
- spec-agent doctor --workspace ./output --check-llm
53
- ```
54
-
55
- ### 4) 对话触发(推荐语句)
56
-
57
- ```text
58
- 请按 spec-agent-product-dev-agent 流程,从需求分析开始,产出并推进一轮开发。
59
- ```
60
-
61
- 或:
62
-
63
- ```text
64
- 按 spec-agent 执行一轮,workspace=./output,input=./docs。
65
- ```
66
-
67
- ### 5) 回填执行结果
68
-
69
- ```bash
70
- spec-agent round --workspace ./output --input ./docs --complete T001,T002 --fail T003 --error "compile failed"
71
- ```
72
-
73
- ## Standard Artifact Paths
74
-
75
- - `output/manifest.json`
76
- - `output/prototypes/*`
77
- - `output/prototype_index.json`
78
- - `output/prototype_index.md`
79
- - `output/spec_summary.json`
80
- - `output/task_plan.json`
81
- - `output/dispatch_plan.json`
82
- - `output/handoff/handoff_bundle.json`
83
- - `output/execution/run_state.json`
84
- - `output/execution/execution_report.json`
85
- - `output/orchestrator_context.json`
86
-
87
- ## Delivery Checklist
88
-
89
- - [ ] `spec-agent --version` 可用
90
- - [ ] `LLM_API_KEY` / `LLM_BASE_URL` / `LLM_MODEL` 已配置
91
- - [ ] `spec-agent pipeline --input ./docs --output ./output` 可跑通
92
- - [ ] `spec-agent round --workspace ./output --input ./docs` 可输出下一步
93
- - [ ] `.cursor` 目录已包含 rule + skills