speccore 6.76.1 → 6.77.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-analyze/SKILL.md +174 -4
- package/.agents/skills/spec-change/SKILL.md +156 -20
- package/.agents/skills/spec-doc2spec/SKILL.md +121 -4
- package/.agents/skills/spec-execute/SKILL.md +148 -5
- package/.agents/skills/spec-iteration-create/SKILL.md +128 -9
- package/.agents/skills/spec-plan/SKILL.md +123 -4
- package/.agents/skills/spec-spec2doc/SKILL.md +126 -4
- package/.agents/skills/spec-split/SKILL.md +214 -4
- package/.agents/skills/spec-task-create/SKILL.md +156 -9
- package/.agents/skills/speccore-router/SKILL.md +21 -1
- package/dist/cli.js +22 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts +2 -0
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +198 -14
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/clarify.d.ts +11 -0
- package/dist/commands/clarify.d.ts.map +1 -0
- package/dist/commands/clarify.js +138 -0
- package/dist/commands/clarify.js.map +1 -0
- package/dist/commands/execute.d.ts +1 -0
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +15 -0
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +4 -8
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/iteration/split.d.ts +3 -1
- package/dist/commands/iteration/split.d.ts.map +1 -1
- package/dist/commands/iteration/split.js +125 -153
- package/dist/commands/iteration/split.js.map +1 -1
- package/dist/commands/update.js +0 -1
- package/dist/commands/update.js.map +1 -1
- package/dist/core/ask-engine.d.ts.map +1 -1
- package/dist/core/ask-engine.js +3 -2
- package/dist/core/ask-engine.js.map +1 -1
- package/dist/core/change-detector.d.ts +25 -0
- package/dist/core/change-detector.d.ts.map +1 -0
- package/dist/core/change-detector.js +170 -0
- package/dist/core/change-detector.js.map +1 -0
- package/dist/core/requirement-clarifier.d.ts +41 -0
- package/dist/core/requirement-clarifier.d.ts.map +1 -0
- package/dist/core/requirement-clarifier.js +181 -0
- package/dist/core/requirement-clarifier.js.map +1 -0
- package/package.json +1 -1
- package/.agents/skills/spec-dev/SKILL.md +0 -10
- package/.agents/skills/spec-synthesize/SKILL.md +0 -10
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.detectProfessionalLevel = detectProfessionalLevel;
|
|
4
|
+
exports.buildClarifyPrompt = buildClarifyPrompt;
|
|
5
|
+
exports.parseClarifiedRequirement = parseClarifiedRequirement;
|
|
6
|
+
exports.writeClarifiedDoc = writeClarifiedDoc;
|
|
7
|
+
exports.assessRequirementDoc = assessRequirementDoc;
|
|
8
|
+
exports.buildClarifiedHeader = buildClarifiedHeader;
|
|
9
|
+
/**
|
|
10
|
+
* requirement-clarifier — 需求专业化模块
|
|
11
|
+
*
|
|
12
|
+
* 将用户原始需求描述(口语化/非专业)整理为 PRD 级专业需求文档。
|
|
13
|
+
* 支持专业度检测、AI 整理 Prompt 构建、结果解析和文件写入。
|
|
14
|
+
*
|
|
15
|
+
* v6.76.0+
|
|
16
|
+
*/
|
|
17
|
+
const fs_extra_1 = require("fs-extra");
|
|
18
|
+
const path_1 = require("path");
|
|
19
|
+
const logger_1 = require("../utils/logger");
|
|
20
|
+
const task_utils_1 = require("../utils/task-utils");
|
|
21
|
+
/**
|
|
22
|
+
* 检测文档专业度
|
|
23
|
+
* 宽松策略:满足 2+ 个条件即判定为 "low"
|
|
24
|
+
*/
|
|
25
|
+
function detectProfessionalLevel(content) {
|
|
26
|
+
if (!content || content.trim().length < 50)
|
|
27
|
+
return 'low';
|
|
28
|
+
const checks = {
|
|
29
|
+
// 1. 口语化检测:大量短句、无标点或口语词
|
|
30
|
+
oral: (() => {
|
|
31
|
+
const oralPatterns = /(我要|我想|能不能|可不可以|帮忙|弄一个|搞一个|加个|改下|顺便|反正|大概|差不多)/g;
|
|
32
|
+
const oralMatches = content.match(oralPatterns);
|
|
33
|
+
const oralRatio = oralMatches ? oralMatches.length / content.length : 0;
|
|
34
|
+
return oralRatio > 0.005; // 口语词密度 > 0.5%
|
|
35
|
+
})(),
|
|
36
|
+
// 2. 无结构化标题:没有 ## 二级标题
|
|
37
|
+
noStructure: !/^#{2,3}\s+/m.test(content),
|
|
38
|
+
// 3. 无验收标准:没有"验收"、"AC"、"验收标准"等关键词
|
|
39
|
+
noAcceptance: !/(验收标准|验收条件|AC[::]|acceptance criteria|验收准则|测试标准)/i.test(content),
|
|
40
|
+
// 4. 无业务规则:没有"规则"、"约束"、"限制"等关键词
|
|
41
|
+
noRules: !/(业务规则|约束条件|限制条件|校验规则|规则[::]|rule[::])/i.test(content),
|
|
42
|
+
// 5. 纯文本段落:没有表格、列表、代码块等结构化元素
|
|
43
|
+
noFormatting: !/(\|.*\|.*\||^\s*[-*]\s+|```)/m.test(content),
|
|
44
|
+
// 6. 无功能边界:没有"范围"、"边界"、"不涉及"等关键词
|
|
45
|
+
noBoundary: !/(功能范围|范围[::]|边界|不涉及|不包含|排除)/i.test(content),
|
|
46
|
+
};
|
|
47
|
+
const failCount = Object.values(checks).filter(Boolean).length;
|
|
48
|
+
if (failCount >= 4)
|
|
49
|
+
return 'low';
|
|
50
|
+
if (failCount >= 2)
|
|
51
|
+
return 'medium';
|
|
52
|
+
return 'high';
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 构建需求专业化 Prompt
|
|
56
|
+
* 让 AI 以专业产品经理角色整理 PRD
|
|
57
|
+
*/
|
|
58
|
+
function buildClarifyPrompt(rawDesc, context) {
|
|
59
|
+
const sections = [];
|
|
60
|
+
sections.push('# 需求专业化 — 将原始描述整理为 PRD 级需求文档');
|
|
61
|
+
sections.push('');
|
|
62
|
+
sections.push('## 你的角色');
|
|
63
|
+
sections.push('你是资深产品经理 + 领域专家。请将用户的原始需求描述整理为一份专业的需求规格说明书(PRD)。');
|
|
64
|
+
sections.push('');
|
|
65
|
+
sections.push('## 用户原始输入');
|
|
66
|
+
sections.push('```');
|
|
67
|
+
sections.push(rawDesc);
|
|
68
|
+
sections.push('```');
|
|
69
|
+
sections.push('');
|
|
70
|
+
if (context?.sourceFile) {
|
|
71
|
+
sections.push(`> 来源: ${context.sourceFile}`);
|
|
72
|
+
sections.push('');
|
|
73
|
+
}
|
|
74
|
+
sections.push('## 整理要求');
|
|
75
|
+
sections.push('');
|
|
76
|
+
sections.push('### 必须包含的章节');
|
|
77
|
+
sections.push('1. **背景与目标**:为什么要做这个功能,解决什么问题,预期收益');
|
|
78
|
+
sections.push('2. **用户故事**:作为 [角色],我希望 [目标],以便 [价值](可写多个)');
|
|
79
|
+
sections.push('3. **功能规格**:');
|
|
80
|
+
sections.push(' - 功能清单(按模块组织)');
|
|
81
|
+
sections.push(' - 每个功能的详细描述(输入、处理、输出)');
|
|
82
|
+
sections.push(' - 业务规则(校验、约束、状态流转)');
|
|
83
|
+
sections.push(' - 异常场景和边界条件');
|
|
84
|
+
sections.push('4. **验收标准(AC)**:可测试的、具体的验收条件,每条用 [ ] 标记');
|
|
85
|
+
sections.push('5. **非功能需求**:性能、安全、兼容性等(如适用)');
|
|
86
|
+
sections.push('6. **依赖与约束**:依赖的其他系统/模块,技术/业务约束');
|
|
87
|
+
sections.push('');
|
|
88
|
+
sections.push('### 写作规范');
|
|
89
|
+
sections.push('- 使用 Markdown 格式,结构清晰');
|
|
90
|
+
sections.push('- 语言专业、准确,避免口语化表达');
|
|
91
|
+
sections.push('- 技术术语使用行业标准表述');
|
|
92
|
+
sections.push('- 不要添加文档中未提及的功能,不要脑补');
|
|
93
|
+
sections.push('- 如果原始描述不完整,标注「待补充」而不是自行编造');
|
|
94
|
+
sections.push('');
|
|
95
|
+
sections.push('## 输出格式');
|
|
96
|
+
sections.push('直接输出整理后的 Markdown PRD 文档,不要输出 JSON、不要输出解释、不要输出代码块包裹整个文档。');
|
|
97
|
+
sections.push('文档末尾附加「原始输入」章节,记录用户原始描述。');
|
|
98
|
+
sections.push('');
|
|
99
|
+
return sections.join('\n');
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* 解析 AI 返回的整理结果
|
|
103
|
+
* 提取 PRD 内容和原始输入
|
|
104
|
+
*/
|
|
105
|
+
function parseClarifiedRequirement(response) {
|
|
106
|
+
// 移除常见的代码块包裹
|
|
107
|
+
let cleaned = response.trim();
|
|
108
|
+
if (cleaned.startsWith('```markdown')) {
|
|
109
|
+
cleaned = cleaned.slice('```markdown'.length).trim();
|
|
110
|
+
}
|
|
111
|
+
if (cleaned.startsWith('```')) {
|
|
112
|
+
cleaned = cleaned.slice(3).trim();
|
|
113
|
+
}
|
|
114
|
+
if (cleaned.endsWith('```')) {
|
|
115
|
+
cleaned = cleaned.slice(0, -3).trim();
|
|
116
|
+
}
|
|
117
|
+
const hasOriginalSection = /## 原始输入/.test(cleaned);
|
|
118
|
+
return { content: cleaned, hasOriginalSection };
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* 写入澄清后的需求文档
|
|
122
|
+
* 位置: 010-requirements/converted/clarified-{slug}.md
|
|
123
|
+
*/
|
|
124
|
+
async function writeClarifiedDoc(content, iterDir, sourceName) {
|
|
125
|
+
const convertedDir = (0, path_1.join)(iterDir, '010-requirements', 'converted');
|
|
126
|
+
await (0, fs_extra_1.ensureDir)(convertedDir);
|
|
127
|
+
// 生成文件名:基于来源名 + 时间戳
|
|
128
|
+
const baseName = (0, path_1.basename)(sourceName, '.md')
|
|
129
|
+
.replace(/[^\w\u4e00-\u9fa5-]/g, '-')
|
|
130
|
+
.replace(/-+/g, '-')
|
|
131
|
+
.replace(/^-|-$/g, '')
|
|
132
|
+
|| 'clarified';
|
|
133
|
+
const now = new Date();
|
|
134
|
+
const timestamp = `${now.getFullYear()}${String(now.getMonth() + 1).padStart(2, '0')}${String(now.getDate()).padStart(2, '0')}`;
|
|
135
|
+
const filename = `clarified-${baseName}-${timestamp}.md`;
|
|
136
|
+
const filepath = (0, path_1.join)(convertedDir, filename);
|
|
137
|
+
// 备份已有文件
|
|
138
|
+
const backup = await (0, task_utils_1.backupWithTimestamp)(filepath);
|
|
139
|
+
if (backup) {
|
|
140
|
+
logger_1.logger.info(` 📦 旧版已备份: ${(0, path_1.basename)(backup)}`);
|
|
141
|
+
}
|
|
142
|
+
await (0, fs_extra_1.writeFile)(filepath, content, 'utf-8');
|
|
143
|
+
return filepath;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* 读取需求文档并检测专业度
|
|
147
|
+
* 返回检测结果和建议
|
|
148
|
+
*/
|
|
149
|
+
async function assessRequirementDoc(filePath) {
|
|
150
|
+
const content = await (0, fs_extra_1.readFile)(filePath, 'utf-8');
|
|
151
|
+
const level = detectProfessionalLevel(content);
|
|
152
|
+
const issues = [];
|
|
153
|
+
if (level !== 'high') {
|
|
154
|
+
if (!/(验收标准|验收条件|AC[::]|acceptance criteria)/i.test(content)) {
|
|
155
|
+
issues.push('缺少验收标准(AC)');
|
|
156
|
+
}
|
|
157
|
+
if (!/(业务规则|约束条件|校验规则)/i.test(content)) {
|
|
158
|
+
issues.push('缺少业务规则');
|
|
159
|
+
}
|
|
160
|
+
if (!/^#{2,3}\s+/m.test(content)) {
|
|
161
|
+
issues.push('缺少结构化标题');
|
|
162
|
+
}
|
|
163
|
+
if (/(我要|我想|能不能|可不可以|帮忙|弄一个|搞一个)/g.test(content)) {
|
|
164
|
+
issues.push('存在口语化表述');
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return { level, content, issues };
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* 生成澄清后的文档头部元信息
|
|
171
|
+
*/
|
|
172
|
+
function buildClarifiedHeader(originalSource, clarifyTime = new Date().toISOString()) {
|
|
173
|
+
return `---
|
|
174
|
+
source: "${originalSource}"
|
|
175
|
+
clarified-at: "${clarifyTime}"
|
|
176
|
+
status: "clarified"
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
`;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=requirement-clarifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirement-clarifier.js","sourceRoot":"","sources":["../../src/core/requirement-clarifier.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED