speccore 8.3.341 → 8.3.346

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.
Files changed (48) hide show
  1. package/README.en.md +11 -10
  2. package/README.md +11 -11
  3. package/dist/cli.js +14 -3
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/analyze.d.ts.map +1 -1
  6. package/dist/commands/analyze.js +53 -21
  7. package/dist/commands/analyze.js.map +1 -1
  8. package/dist/commands/ask.d.ts +1 -0
  9. package/dist/commands/ask.d.ts.map +1 -1
  10. package/dist/commands/ask.js +5 -18
  11. package/dist/commands/ask.js.map +1 -1
  12. package/dist/commands/help.d.ts +2 -1
  13. package/dist/commands/help.d.ts.map +1 -1
  14. package/dist/commands/help.js +97 -8
  15. package/dist/commands/help.js.map +1 -1
  16. package/dist/commands/init.d.ts.map +1 -1
  17. package/dist/commands/init.js +3 -24
  18. package/dist/commands/init.js.map +1 -1
  19. package/dist/commands/iteration/taskify.d.ts.map +1 -1
  20. package/dist/commands/iteration/taskify.js +5 -147
  21. package/dist/commands/iteration/taskify.js.map +1 -1
  22. package/dist/commands/welcome.d.ts.map +1 -1
  23. package/dist/commands/welcome.js +37 -36
  24. package/dist/commands/welcome.js.map +1 -1
  25. package/dist/core/command-visibility.d.ts +13 -0
  26. package/dist/core/command-visibility.d.ts.map +1 -0
  27. package/dist/core/command-visibility.js +27 -0
  28. package/dist/core/command-visibility.js.map +1 -0
  29. package/dist/core/function-map.d.ts +49 -0
  30. package/dist/core/function-map.d.ts.map +1 -0
  31. package/dist/core/function-map.js +280 -0
  32. package/dist/core/function-map.js.map +1 -0
  33. package/dist/core/help-panel.d.ts +1 -1
  34. package/dist/core/help-panel.d.ts.map +1 -1
  35. package/dist/core/help-panel.js +10 -10
  36. package/dist/core/page-bundle.d.ts +25 -0
  37. package/dist/core/page-bundle.d.ts.map +1 -0
  38. package/dist/core/page-bundle.js +144 -0
  39. package/dist/core/page-bundle.js.map +1 -0
  40. package/dist/core/prompt-builder.d.ts +9 -0
  41. package/dist/core/prompt-builder.d.ts.map +1 -1
  42. package/dist/core/prompt-builder.js +134 -2
  43. package/dist/core/prompt-builder.js.map +1 -1
  44. package/package.json +1 -1
  45. package/templates/html/speccore-ask-guide.html +1 -1
  46. package/templates/html/speccore-ask-pipeline.html +1 -1
  47. package/templates/html/speccore-ask-result.html +1 -1
  48. package/templates/html/speccore-help.html +34 -61
@@ -1 +1 @@
1
- {"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../src/commands/welcome.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH,MAAM,WAAW,cAAc;IAAG,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAAE;AAEpF,wBAAsB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA+D5E;AAYD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAClD,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAC/B,MAAM,CAOR"}
1
+ {"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../src/commands/welcome.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH,MAAM,WAAW,cAAc;IAAG,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAAE;AAEpF,wBAAsB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAoE5E;AAYD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAClD,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAC/B,MAAM,CAOR"}
@@ -58,39 +58,44 @@ async function welcomeCommand(_options) {
58
58
  const isInit = await (0, fs_extra_1.pathExists)((0, path_1.join)(process.cwd(), '.speccore'));
59
59
  const iteration = await (0, context_1.getDefaultIteration)('');
60
60
  const iterName = (!iteration || iteration.includes('---') || iteration.length < 2) ? '' : iteration;
61
- if ((0, ask_host_ai_1.isAiContext)() || !process.stdout.isTTY || _options.web) {
62
- let taskCount = 0;
63
- if (iterName) {
64
- try {
65
- const entries = await (0, fs_extra_1.readdir)(`Iteration-${iterName}`, { withFileTypes: true });
66
- taskCount = entries.filter(e => e.isDirectory() && e.name.startsWith('Task-')).length;
67
- }
68
- catch { }
69
- }
70
- let phase = 'doc';
71
- if (iterName) {
72
- const reqDoc = (0, path_1.join)((0, task_utils_1.getProjectRoot)(), `Iteration-${iterName}`, '020-specs', 'REQUIREMENT.md');
73
- if (!(await (0, fs_extra_1.pathExists)(reqDoc)))
74
- phase = 'doc';
75
- else if (!(await (0, fs_extra_1.pathExists)((0, path_1.join)((0, task_utils_1.getProjectRoot)(), `Iteration-${iterName}`, '020-specs', 'ANALYSIS.md'))))
76
- phase = 'analyze';
77
- else if (taskCount === 0)
78
- phase = 'split';
79
- else
80
- phase = 'execute';
61
+ // 阶段与任务数统一计算(HTML 名片与联动页面共用,TTY 分支同样落盘)
62
+ let taskCount = 0;
63
+ if (iterName) {
64
+ try {
65
+ const entries = await (0, fs_extra_1.readdir)(`Iteration-${iterName}`, { withFileTypes: true });
66
+ taskCount = entries.filter(e => e.isDirectory() && e.name.startsWith('Task-')).length;
81
67
  }
68
+ catch { }
69
+ }
70
+ let phase = 'doc';
71
+ if (iterName) {
72
+ const reqDoc = (0, path_1.join)((0, task_utils_1.getProjectRoot)(), `Iteration-${iterName}`, '020-specs', 'REQUIREMENT.md');
73
+ if (!(await (0, fs_extra_1.pathExists)(reqDoc)))
74
+ phase = 'doc';
75
+ else if (!(await (0, fs_extra_1.pathExists)((0, path_1.join)((0, task_utils_1.getProjectRoot)(), `Iteration-${iterName}`, '020-specs', 'ANALYSIS.md'))))
76
+ phase = 'analyze';
77
+ else if (taskCount === 0)
78
+ phase = 'split';
79
+ else
80
+ phase = 'execute';
81
+ }
82
+ // 落盘名片 + 补齐跳转目标(v8.3.342+:任何分支输出 [SPECCORE_WELCOME] 标记前必须写文件,
83
+ // 修复此前 TTY 分支输出标记但文件不存在的断链)
84
+ const emitPage = async () => {
82
85
  const html = renderWelcomeHtml(version, isInit, iterName, phase, taskCount);
83
86
  const outPath = _options.output || (0, path_1.join)(process.cwd(), 'outputs', 'welcome-SpecCore.html');
84
87
  await (0, fs_extra_1.ensureDir)((0, path_1.join)(process.cwd(), 'outputs'));
85
88
  await (0, fs_extra_1.writeFile)(outPath, html);
86
- // v8.3.338+: 已初始化项目联动生成提示词库页,保证项目名片内「查看提示词库」链接可达
87
- if (isInit) {
88
- try {
89
- const { generatePromptsPage } = await Promise.resolve().then(() => __importStar(require('./prompts')));
90
- await generatePromptsPage((0, path_1.join)(process.cwd(), 'outputs', 'speccore-prompts.html'));
91
- }
92
- catch { /* 联动生成失败不阻断 welcome */ }
89
+ // 名片内跳转目标:ask 引导页家族(含帮助页/提示词库)+ 配置引导页(已初始化时)
90
+ try {
91
+ const { ensureWelcomeTargets } = await Promise.resolve().then(() => __importStar(require('../core/page-bundle')));
92
+ await ensureWelcomeTargets(process.cwd(), isInit);
93
93
  }
94
+ catch { /* 联动生成失败不阻断 welcome */ }
95
+ return outPath;
96
+ };
97
+ if ((0, ask_host_ai_1.isAiContext)() || !process.stdout.isTTY || _options.web) {
98
+ const outPath = await emitPage();
94
99
  process.stdout.write(`✅ 页面已生成: file://${outPath}\n`);
95
100
  process.stdout.write(`[SPECCORE_WELCOME: ${outPath}]\n`);
96
101
  return;
@@ -104,27 +109,23 @@ async function welcomeCommand(_options) {
104
109
  logger_1.logger.info(box('📦 项目状态', ['', `${C.gray}尚未初始化${C.r}`, '', `${C.cyan}◆ 快速开始:${C.r} speccore init`]));
105
110
  logger_1.logger.info('');
106
111
  showAskGuide();
107
- process.stdout.write(`[SPECCORE_WELCOME: ${(0, path_1.join)(process.cwd(), 'outputs', 'welcome-SpecCore.html')}]\n`);
112
+ const outPath = await emitPage();
113
+ process.stdout.write(`[SPECCORE_WELCOME: ${outPath}]\n`);
108
114
  return;
109
115
  }
110
116
  if (!iterName) {
111
117
  logger_1.logger.info(box('📦 项目状态', [`${C.gray}无活跃迭代${C.r}`, `${C.b}speccore iteration create -n Q1${C.r}`]));
112
118
  logger_1.logger.info('');
113
119
  showAskGuide();
114
- process.stdout.write(`[SPECCORE_WELCOME: ${(0, path_1.join)(process.cwd(), 'outputs', 'welcome-SpecCore.html')}]\n`);
120
+ const outPath = await emitPage();
121
+ process.stdout.write(`[SPECCORE_WELCOME: ${outPath}]\n`);
115
122
  return;
116
123
  }
117
- let taskCount = 0;
118
- try {
119
- const entries = await (0, fs_extra_1.readdir)(`Iteration-${iterName}`, { withFileTypes: true });
120
- taskCount = entries.filter(e => e.isDirectory() && e.name.startsWith('Task-')).length;
121
- }
122
- catch { }
123
124
  logger_1.logger.info(box(`📦 项目状态 · ${iterName}`, [`${C.gray}任务数: ${taskCount}${C.r}`, `${C.b}speccore next(下一步)${C.r}`, `${C.b}speccore run(全自动)${C.r}`]));
124
125
  logger_1.logger.info('');
125
126
  showAskGuide();
126
127
  // 始终输出标记,确保 AI 宿主弹出页面
127
- const outPath = (0, path_1.join)(process.cwd(), 'outputs', 'welcome-SpecCore.html');
128
+ const outPath = await emitPage();
128
129
  process.stdout.write(`[SPECCORE_WELCOME: ${outPath}]\n`);
129
130
  }
130
131
  function showAskGuide() {
@@ -1 +1 @@
1
- {"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../src/commands/welcome.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../src/commands/welcome.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 命令面收敛名单(v8.3.346+)
3
+ *
4
+ * help 面板(speccore --help)只展示核心命令,其余命令隐藏但功能保留——
5
+ * ask 引擎意图词典、run 流水线编排、内部逻辑调用仍直接可用,只是不再占用面板。
6
+ * 全量清单入口: speccore help --all
7
+ *
8
+ * 单一事实源:cli.ts(隐藏遍历)与 help.ts(--all 全量视图)共同消费此名单,
9
+ * 增删命令时只需改这一处。
10
+ */
11
+ export declare const CORE_COMMANDS: ReadonlySet<string>;
12
+ export declare function isCoreCommand(name: string): boolean;
13
+ //# sourceMappingURL=command-visibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-visibility.d.ts","sourceRoot":"","sources":["../../src/core/command-visibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,MAAM,CAQ5C,CAAC;AAEH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CORE_COMMANDS = void 0;
4
+ exports.isCoreCommand = isCoreCommand;
5
+ /**
6
+ * 命令面收敛名单(v8.3.346+)
7
+ *
8
+ * help 面板(speccore --help)只展示核心命令,其余命令隐藏但功能保留——
9
+ * ask 引擎意图词典、run 流水线编排、内部逻辑调用仍直接可用,只是不再占用面板。
10
+ * 全量清单入口: speccore help --all
11
+ *
12
+ * 单一事实源:cli.ts(隐藏遍历)与 help.ts(--all 全量视图)共同消费此名单,
13
+ * 增删命令时只需改这一处。
14
+ */
15
+ exports.CORE_COMMANDS = new Set([
16
+ // 流水线 13 阶段
17
+ 'init', 'doc2spec', 'req-doc', 'unitize', 'analyze', 'taskify', 'plan',
18
+ 'execute', 'verify', 'pipeline', 'pr', 'done', 'spec2doc',
19
+ // 基础管理
20
+ 'iteration', 'task',
21
+ // 智能入口与友好辅助
22
+ 'ask', 'run', 'next', 'dashboard', 'status', 'about', 'help',
23
+ ]);
24
+ function isCoreCommand(name) {
25
+ return exports.CORE_COMMANDS.has(name);
26
+ }
27
+ //# sourceMappingURL=command-visibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-visibility.js","sourceRoot":"","sources":["../../src/core/command-visibility.ts"],"names":[],"mappings":";;;AAoBA,sCAEC;AAtBD;;;;;;;;;GASG;AACU,QAAA,aAAa,GAAwB,IAAI,GAAG,CAAC;IACxD,YAAY;IACZ,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM;IACtE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU;IACzD,OAAO;IACP,WAAW,EAAE,MAAM;IACnB,YAAY;IACZ,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;CAC7D,CAAC,CAAC;AAEH,SAAgB,aAAa,CAAC,IAAY;IACxC,OAAO,qBAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,49 @@
1
+ export interface FunctionMapUnit {
2
+ name: string;
3
+ platforms: string[];
4
+ sharedCapability: string;
5
+ dependsOn: string[];
6
+ description: string;
7
+ }
8
+ /**
9
+ * v7.4.2+: 解析 FUNCTION_MAP.md(表格格式优先,回退树形格式)。
10
+ * 迁出自 taskify.ts 原 parseFunctionMap(v8.3.343),逻辑不变。
11
+ */
12
+ export declare function parseFunctionMap(content: string, allPlatforms: string[]): FunctionMapUnit[];
13
+ export interface NarrowPlatformGap {
14
+ /** 功能单元目录名(如 admin-web-03-booking-management) */
15
+ feature: string;
16
+ /** _matrix.md 已声明的端 */
17
+ declared: string[];
18
+ /** FUNCTION_MAP 声明的端 */
19
+ functionMap: string[];
20
+ /** FUNCTION_MAP 有、声明无、且端目录无真实规格的端(需要补端分析) */
21
+ missing: string[];
22
+ /** FUNCTION_MAP 有、声明无、但端目录已有真实规格的端(_matrix 声明滞后,需同步声明) */
23
+ undeclared: string[];
24
+ }
25
+ /**
26
+ * v8.3.343+: 声明过窄检测。
27
+ *
28
+ * 背景:doc2spec 生成的 _matrix.md platforms 语义是「端级需求文档所属端」(常为单端),
29
+ * 而 analyze 阶段 AI 写入的 FUNCTION_MAP 端覆盖语义是「功能单元跨端协作涉及端」(多端)。
30
+ * 此前两者无交叉校验:骨架按单端声明收敛,后端端级规格缺失时静默通过,
31
+ * taskify 拿不到后端规格(瞎编或漏任务)、execute 代码生成不完整。
32
+ *
33
+ * 策略:只读检测 + 警告(不回灌 _matrix,避免 AI 生成的 FUNCTION_MAP 污染权威声明)。
34
+ * 锚定方式:FUNCTION_MAP 每行中与功能单元目录名精确相等的单元格 → 该行端列。
35
+ * 目录名匹配不到的行跳过(宁缺勿滥,不做模糊匹配)。
36
+ *
37
+ * 两类缺口:
38
+ * - missing:端级规格缺失 → 需补端分析;
39
+ * - undeclared:端级规格已存在但 _matrix 未声明 → 声明滞后。
40
+ * 后者也必须报:taskify 的 readMatrixPlatforms 非空即采信(端级文档反推被短路),
41
+ * 声明不更新则多端子任务依然不会生成,补的端分析白费。
42
+ *
43
+ * @param iterDir 迭代目录绝对路径
44
+ * @param features 功能单元目录名列表(parseFeatureList 产物)
45
+ * @param declaredMap 单元 → _matrix 声明端映射(resolveFeaturePlatformMap 产物)
46
+ * @param allPlatforms CONSTITUTION 标准端列表
47
+ */
48
+ export declare function detectNarrowPlatformDeclarations(iterDir: string, features: string[], declaredMap: Map<string, string[]>, allPlatforms: string[]): Promise<NarrowPlatformGap[]>;
49
+ //# sourceMappingURL=function-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-map.d.ts","sourceRoot":"","sources":["../../src/core/function-map.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAI3F;AAoJD,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wBAAwB;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,gCAAgC,CACpD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,EAClB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAClC,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAqC9B"}
@@ -0,0 +1,280 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseFunctionMap = parseFunctionMap;
4
+ exports.detectNarrowPlatformDeclarations = detectNarrowPlatformDeclarations;
5
+ /**
6
+ * function-map.ts — FUNCTION_MAP 解析与端覆盖交叉校验
7
+ *
8
+ * v8.3.343+:
9
+ * 1. 从 taskify.ts 迁出 parseFunctionMap(表格/树形双格式),供 analyze 与 taskify 共享;
10
+ * 2. 新增 detectNarrowPlatformDeclarations——「声明过窄检测」:
11
+ * doc2spec 写进 _matrix.md 的端声明语义是「这份端级需求文档属于哪个端」,
12
+ * 而 FUNCTION_MAP 的端覆盖语义是「该功能单元跨端协作涉及哪些端」。
13
+ * 两者语义不同却被同一字段承载,导致多端单元只有单端骨架、taskify 拿不到后端规格。
14
+ * 本检测在 analyze 阶段比对两者:FUNCTION_MAP 声明了某端、_matrix 未声明、
15
+ * 且该端目录无真实规格时,输出缺口警告(只告警不自动回灌,避免污染权威声明)。
16
+ */
17
+ const path_1 = require("path");
18
+ const fs_extra_1 = require("fs-extra");
19
+ const spec_paths_1 = require("./spec-paths");
20
+ const spec_skeleton_1 = require("./spec-skeleton");
21
+ /**
22
+ * v7.4.2+: 解析 FUNCTION_MAP.md(表格格式优先,回退树形格式)。
23
+ * 迁出自 taskify.ts 原 parseFunctionMap(v8.3.343),逻辑不变。
24
+ */
25
+ function parseFunctionMap(content, allPlatforms) {
26
+ const tableResult = parseFunctionMapTable(content, allPlatforms);
27
+ if (tableResult.length > 0)
28
+ return tableResult;
29
+ return parseFunctionMapTree(content, allPlatforms);
30
+ }
31
+ /**
32
+ * v7.4.2+: 解析 FUNCTION_MAP.md 表格格式
33
+ */
34
+ function parseFunctionMapTable(content, allPlatforms) {
35
+ const units = [];
36
+ const lines = content.split(/\r?\n/);
37
+ let inTable = false;
38
+ let platformColIdx = -1;
39
+ let sharedCapColIdx = -1;
40
+ let dependsOnColIdx = -1;
41
+ let descColIdx = -1;
42
+ // v8.3.345: 名称列定位。新格式表头「| 单元ID | 功能模块/功能单元 | 中文名 | 涉及端 | …」
43
+ // 名称在第 2 列(首列是 M-01 这类单元ID);旧格式「| 功能单元(目录名) | 名称 | 端列表 | …」
44
+ // 名称在第 1 列。按表头含「功能模块/功能单元」且非「涉及端」定位,避免取到单元ID。
45
+ let nameColIdx = -1;
46
+ for (const line of lines) {
47
+ if ((line.includes('功能单元') || line.includes('功能模块')) && line.includes('涉及端')) {
48
+ inTable = true;
49
+ const headerCells = line.split('|').map(c => c.trim()).filter(Boolean);
50
+ platformColIdx = headerCells.findIndex(c => c.includes('涉及端'));
51
+ sharedCapColIdx = headerCells.findIndex(c => c.includes('共享能力'));
52
+ dependsOnColIdx = headerCells.findIndex(c => c.includes('依赖任务'));
53
+ descColIdx = headerCells.findIndex(c => c.includes('说明'));
54
+ nameColIdx = headerCells.findIndex(c => (c.includes('功能模块') || c.includes('功能单元')) && !c.includes('涉及端'));
55
+ continue;
56
+ }
57
+ if (!inTable)
58
+ continue;
59
+ if (line.startsWith('## ') && !line.includes('功能映射'))
60
+ break;
61
+ const cells = line.split('|').map(c => c.trim()).filter(Boolean);
62
+ if (cells.length < 3)
63
+ continue;
64
+ if (cells.every(c => /^[-:]+$/.test(c)))
65
+ continue;
66
+ if (cells.some(c => c.includes('功能单元')) || cells.some(c => c.includes('涉及端')))
67
+ continue;
68
+ // v8.3.268: 功能单元列此前取 cells[0](旧数据「| 目录名 | 名称 | 端列表 | …」首列即目录名)。
69
+ // v8.3.345: 新格式表头带「单元ID」列(首列 M-01),取 cells[0] 会拿到单元ID——
70
+ // 改为优先表头定位列,无表头信息时兜底:首列若是单元ID 模式(M-01/F-01)取第二列。
71
+ // 「dir(名称)」格式剥尾部括号注释。
72
+ let unitNameRaw = '';
73
+ if (nameColIdx >= 0 && nameColIdx < cells.length) {
74
+ unitNameRaw = cells[nameColIdx];
75
+ }
76
+ else {
77
+ const first = cells[0] || '';
78
+ unitNameRaw = /^[A-Za-z]+-\d+$/.test(first) ? (cells[1] || first) : first;
79
+ }
80
+ const unitName = unitNameRaw.replace(/[((][^))]*[))]$/, '').trim();
81
+ if (!unitName || unitName === '#' || unitName === '功能单元')
82
+ continue;
83
+ let platforms = [];
84
+ if (platformColIdx >= 0 && platformColIdx < cells.length) {
85
+ const raw = cells[platformColIdx];
86
+ if (raw && raw !== '无' && raw !== '—' && raw !== '-') {
87
+ platforms = raw.split(/[,,]/).map(p => p.trim()).filter(p => p && allPlatforms.includes(p));
88
+ }
89
+ }
90
+ // v8.3.268: 端列自适应——AI 落盘 FUNCTION_MAP 表格可能列错位(涉及端表头下是
91
+ // 名称、端列表落在其他列),按表头解析落空时扫描整行,找「逗号分隔且 ≥2 个
92
+ // 值全部属于标准端名」的单元格作为端列,避免静默回退全端平铺。
93
+ if (platforms.length === 0) {
94
+ platforms = findAdaptivePlatformCell(cells, allPlatforms);
95
+ }
96
+ if (platforms.length === 0)
97
+ platforms = [...allPlatforms];
98
+ let sharedCapability = '无';
99
+ if (sharedCapColIdx >= 0 && sharedCapColIdx < cells.length) {
100
+ const raw = cells[sharedCapColIdx];
101
+ if (raw && raw !== '无' && raw !== '—' && raw !== '-')
102
+ sharedCapability = raw;
103
+ }
104
+ let dependsOn = [];
105
+ if (dependsOnColIdx >= 0 && dependsOnColIdx < cells.length) {
106
+ const raw = cells[dependsOnColIdx];
107
+ if (raw && raw !== '无' && raw !== '—' && raw !== '-') {
108
+ dependsOn = raw.split(/[,,]/).map(p => p.trim()).filter(Boolean);
109
+ }
110
+ }
111
+ let description = '';
112
+ if (descColIdx >= 0 && descColIdx < cells.length)
113
+ description = cells[descColIdx];
114
+ units.push({ name: unitName, platforms, sharedCapability, dependsOn, description });
115
+ }
116
+ return units;
117
+ }
118
+ /**
119
+ * v7.4.2+: 解析 FUNCTION_MAP.md 树形格式
120
+ * 匹配: ├── 会议室 CRUD .............. room-service ✅ | admin-web ✅
121
+ * 提取: 模块名="会议室 CRUD", 涉及端=[room-service, admin-web]
122
+ */
123
+ function parseFunctionMapTree(content, allPlatforms) {
124
+ const units = [];
125
+ const lines = content.split(/\r?\n/);
126
+ const treeNodeRe = /[├└]──\s*/;
127
+ const separatorRe = /\s*[.·]{3,}\s*/;
128
+ for (const line of lines) {
129
+ if (!treeNodeRe.test(line))
130
+ continue;
131
+ const afterTree = line.replace(/.*[├└]──\s*/, '').trim();
132
+ if (!afterTree)
133
+ continue;
134
+ // 跳过分类型节点(如 ├── 🏢 会议室管理),这些是父级分类
135
+ if (!separatorRe.test(afterTree) && !afterTree.includes('✅') && !afterTree.includes('❌') && !afterTree.includes('⚠️')) {
136
+ continue;
137
+ }
138
+ const parts = afterTree.split(separatorRe);
139
+ if (parts.length < 2)
140
+ continue;
141
+ let unitName = parts[0].replace(/[🏢📅✅💰🔔👥📊⚙️🔑🛡️]/g, '').trim();
142
+ if (!unitName || unitName.length < 2)
143
+ continue;
144
+ const platformPart = parts.slice(1).join(' ');
145
+ const platforms = [];
146
+ for (const p of allPlatforms) {
147
+ if (platformPart.includes(p)) {
148
+ platforms.push(p);
149
+ }
150
+ }
151
+ if (platforms.length === 0) {
152
+ platforms.push(...allPlatforms);
153
+ }
154
+ units.push({ name: unitName, platforms, sharedCapability: '无', dependsOn: [], description: '' });
155
+ }
156
+ return units;
157
+ }
158
+ /** 端列自适应定位:找「逗号分隔且 ≥2 个值全部属于标准端名」的单元格 */
159
+ function findAdaptivePlatformCell(cells, allPlatforms) {
160
+ for (const cell of cells) {
161
+ const parts = cell.split(/[,,]/).map(p => p.trim()).filter(Boolean);
162
+ if (parts.length >= 2 && parts.every(p => allPlatforms.includes(p))) {
163
+ return parts;
164
+ }
165
+ }
166
+ return [];
167
+ }
168
+ /**
169
+ * v8.3.343+: 声明过窄检测。
170
+ *
171
+ * 背景:doc2spec 生成的 _matrix.md platforms 语义是「端级需求文档所属端」(常为单端),
172
+ * 而 analyze 阶段 AI 写入的 FUNCTION_MAP 端覆盖语义是「功能单元跨端协作涉及端」(多端)。
173
+ * 此前两者无交叉校验:骨架按单端声明收敛,后端端级规格缺失时静默通过,
174
+ * taskify 拿不到后端规格(瞎编或漏任务)、execute 代码生成不完整。
175
+ *
176
+ * 策略:只读检测 + 警告(不回灌 _matrix,避免 AI 生成的 FUNCTION_MAP 污染权威声明)。
177
+ * 锚定方式:FUNCTION_MAP 每行中与功能单元目录名精确相等的单元格 → 该行端列。
178
+ * 目录名匹配不到的行跳过(宁缺勿滥,不做模糊匹配)。
179
+ *
180
+ * 两类缺口:
181
+ * - missing:端级规格缺失 → 需补端分析;
182
+ * - undeclared:端级规格已存在但 _matrix 未声明 → 声明滞后。
183
+ * 后者也必须报:taskify 的 readMatrixPlatforms 非空即采信(端级文档反推被短路),
184
+ * 声明不更新则多端子任务依然不会生成,补的端分析白费。
185
+ *
186
+ * @param iterDir 迭代目录绝对路径
187
+ * @param features 功能单元目录名列表(parseFeatureList 产物)
188
+ * @param declaredMap 单元 → _matrix 声明端映射(resolveFeaturePlatformMap 产物)
189
+ * @param allPlatforms CONSTITUTION 标准端列表
190
+ */
191
+ async function detectNarrowPlatformDeclarations(iterDir, features, declaredMap, allPlatforms) {
192
+ if (features.length === 0)
193
+ return [];
194
+ const funcMapPath = (0, path_1.join)(iterDir, '020-specs', spec_paths_1.GLOBAL_SPECS_DIR, 'FUNCTION_MAP.md');
195
+ if (!(await (0, fs_extra_1.pathExists)(funcMapPath)))
196
+ return [];
197
+ const content = await (0, fs_extra_1.readFile)(funcMapPath, 'utf-8').catch(() => '');
198
+ if (!content.trim() || content.includes(spec_skeleton_1.SKELETON_MARKER))
199
+ return [];
200
+ const rows = parseFunctionMapRawRows(content, allPlatforms);
201
+ const featureSet = new Set(features);
202
+ const gaps = [];
203
+ const specDir = (0, path_1.join)(iterDir, '020-specs');
204
+ for (const row of rows) {
205
+ // 锚定目录名:行内存在与功能单元目录名精确相等的单元格
206
+ const featureCell = row.cells.find(c => featureSet.has(c));
207
+ if (!featureCell)
208
+ continue;
209
+ const declared = declaredMap.get(featureCell) || [];
210
+ const fmPlatforms = row.platforms.filter(p => allPlatforms.includes(p));
211
+ if (fmPlatforms.length === 0)
212
+ continue;
213
+ // FUNCTION_MAP 声明了但 _matrix 未声明的端
214
+ const beyond = fmPlatforms.filter(p => !declared.includes(p));
215
+ if (beyond.length === 0)
216
+ continue;
217
+ // 分流:端目录无真实规格 → missing(补端分析);已有真实规格 → undeclared(同步声明)
218
+ const missing = [];
219
+ const undeclared = [];
220
+ for (const p of beyond) {
221
+ const platformDir = (0, path_1.join)(specDir, featureCell, p);
222
+ if (!(await (0, fs_extra_1.pathExists)(platformDir))) {
223
+ missing.push(p);
224
+ continue;
225
+ }
226
+ const hasReal = await dirHasRealContent(platformDir);
227
+ if (!hasReal)
228
+ missing.push(p);
229
+ else
230
+ undeclared.push(p);
231
+ }
232
+ if (missing.length > 0 || undeclared.length > 0) {
233
+ gaps.push({ feature: featureCell, declared, functionMap: fmPlatforms, missing, undeclared });
234
+ }
235
+ }
236
+ return gaps;
237
+ }
238
+ /** FUNCTION_MAP 表格行级解析:每行 cells + 自适应端列(与 parseFunctionMapTable 同口径) */
239
+ function parseFunctionMapRawRows(content, allPlatforms) {
240
+ const rows = [];
241
+ const lines = content.split(/\r?\n/);
242
+ let inTable = false;
243
+ for (const line of lines) {
244
+ if ((line.includes('功能单元') || line.includes('功能模块')) && line.includes('涉及端')) {
245
+ inTable = true;
246
+ continue;
247
+ }
248
+ if (!inTable)
249
+ continue;
250
+ if (line.startsWith('## ') && !line.includes('功能映射'))
251
+ break;
252
+ const cells = line.split('|').map(c => c.trim()).filter(Boolean);
253
+ if (cells.length < 3)
254
+ continue;
255
+ if (cells.every(c => /^[-:]+$/.test(c)))
256
+ continue;
257
+ if (cells.some(c => c.includes('功能单元')) || cells.some(c => c.includes('涉及端')))
258
+ continue;
259
+ // 端列自适应:找「逗号分隔且 ≥2 个值全部属于标准端名」的单元格
260
+ const platforms = findAdaptivePlatformCell(cells, allPlatforms);
261
+ rows.push({ cells, platforms });
262
+ }
263
+ return rows;
264
+ }
265
+ /** 目录内存在非骨架真实内容(≥100 字符的 .md/.yaml 即算) */
266
+ async function dirHasRealContent(dir) {
267
+ const files = await (0, fs_extra_1.readdir)(dir, { withFileTypes: true }).catch(() => []);
268
+ for (const f of files) {
269
+ if (!f.isFile())
270
+ continue;
271
+ if (!/\.(md|yaml|yml)$/.test(f.name))
272
+ continue;
273
+ const c = await (0, fs_extra_1.readFile)((0, path_1.join)(dir, f.name), 'utf-8').catch(() => '');
274
+ const t = c.trim();
275
+ if (t && !t.includes(spec_skeleton_1.SKELETON_MARKER) && t.length >= 100)
276
+ return true;
277
+ }
278
+ return false;
279
+ }
280
+ //# sourceMappingURL=function-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-map.js","sourceRoot":"","sources":["../../src/core/function-map.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const HELP_PANEL = "\n\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 \uD83E\uDDE0 = \u534F\u4F5C\u5F0F\uFF08\u652F\u6301 --interactive\uFF09 \u26A1 = \u5355\u6B21\u6267\u884C \u2502\n\u2502 \u6838\u5FC3\u6D41\u6C34\u7EBF: init \u2192 doc2spec \u2192 unitize \u2192 analyze \u2192 taskify \u2502\n\u2502 \u2192 plan \u2192 execute \u2192 pr \u2192 done \u2192 spec2doc \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 \uD83D\uDCE5 \u8D44\u4EA7\u63A5\u5165 \u2502\n\u2502 \uD83D\uDE80 init \u26A1 \u521D\u59CB\u5316\u9879\u76EE \u2502\n\u2502 \uD83D\uDCC5 iteration \u26A1 \u8FED\u4EE3\u7BA1\u7406 \u2502\n\u2502 \uD83D\uDCDD doc2spec \u26A1 \u5BFC\u5165 PRD \u2192 Spec MD\uFF08AI \u7CBE\u70BC\u63A8\u8350\uFF09 \u2502\n\u2502 \uD83D\uDD2A unitize \u26A1 \u5207\u5206\u9700\u6C42\u6587\u6863 \u2192 \u529F\u80FD\u5355\u5143\uFF08features/\uFF09 \u2502\n\u2502 \uD83D\uDCE4 spec2doc \u26A1 Spec MD \u2192 Word/PDF\uFF08AI \u6392\u7248\u63A8\u8350\uFF09 \u2502\n\u2502 \uD83D\uDCE6 task new \u26A1 \u521B\u5EFA\u4EFB\u52A1 \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 \uD83E\uDD1D \u534F\u4F5C\u51B3\u7B56 \u2502\n\u2502 \uD83D\uDD0D analyze \uD83E\uDDE0 \u9700\u6C42\u5206\u6790+\u4EE3\u7801\u5BA1\u67E5+\u591A\u7AEF\u5408\u6210\uFF08--full\uFF09 \u2502\n\u2502 \uD83D\uDCCA taskify \uD83E\uDDE0 \u62C6\u529F\u80FD\u5355\u5143 \u2192 \u5F00\u53D1\u4EFB\u52A1\uFF08Task-*\uFF09 \u2502\n\u2502 \uD83D\uDCCB plan \uD83E\uDDE0 \u6267\u884C\u8BA1\u5212\uFF08--interactive\uFF09 \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 \uD83D\uDE80 \u6267\u884C\u4EA4\u4ED8 \u2502\n\u2502 \uD83D\uDCBB execute \u26A1 \u81EA\u52A8\u6392\u5E8F\u6267\u884C \u2502\n\u2502 \uD83D\uDD00 pr \uD83E\uDDE0 \u521B\u5EFAPR\uFF08--interactive\uFF09 \u2502\n\u2502 \u2705 done \uD83E\uDDE0 \u6536\u5C3E\u5F52\u6863\uFF08--interactive\uFF09 \u2502\n\u2502 \uD83D\uDD04 change \uD83E\uDDE0 \u9700\u6C42\u53D8\u66F4\uFF08--interactive\uFF09 \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 \uD83D\uDCCA \u6CBB\u7406 \u2502\n\u2502 \u2705 validate \u26A1 \u5408\u89C4\u6821\u9A8C \u2502\n\u2502 \uD83D\uDDD1 rename \u26A1 \u91CD\u547D\u540D Task/\u8FED\u4EE3 \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 \uD83D\uDCA1 \u667A\u80FD\u5165\u53E3 \u2502\n\u2502 speccore \u81EA\u9002\u5E94\u9762\u677F\uFF08\u68C0\u6D4B\u9636\u6BB5 \u2192 \u63D0\u793A\u4E0B\u4E00\u6B65\uFF09 \u2502\n\u2502 speccore ask \"...\" \u81EA\u7136\u8BED\u8A00\u610F\u56FE\u8BC6\u522B \u2502\n\u2502 speccore next \u68C0\u6D4B\u8FDB\u5EA6\uFF1A\u63D0\u793A\u4E0B\u4E00\u6B65\uFF08\u53EA\u6307\u5F15\uFF09 \u2502\n\u2502 speccore run \u7AEF\u5230\u7AEF\u5168\u81EA\u52A8\u6D41\u6C34\u7EBF\uFF0813 \u9636\u6BB5\uFF09 \u2502\n\u2502 speccore about \u7248\u672C\u4FE1\u606F/\u529F\u80FD\u8BF4\u660E/\u6587\u6863\u94FE\u63A5 \u2502\n\u2502 speccore dashboard \u53EF\u89C6\u5316\u4EEA\u8868\u76D8\uFF08\u8FED\u4EE3/\u5168\u5C40\uFF09 \u2502\n\u2502 speccore prompts \u63D0\u793A\u8BCD\u5E93\uFF1A\u9884\u7F6E\u6A21\u677F + \u81EA\u5B9A\u4E49\u63D0\u793A\u8BCD \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n";
1
+ export declare const HELP_PANEL = "\n\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 \uD83E\uDDE0 = \u534F\u4F5C\u5F0F\uFF08\u652F\u6301 --interactive\uFF09 \u26A1 = \u5355\u6B21\u6267\u884C \u2502\n\u2502 \u6838\u5FC3\u6D41\u6C34\u7EBF: init \u2192 doc2spec \u2192 req-doc \u2192 unitize \u2192 analyze \u2502\n\u2502 \u2192 taskify \u2192 plan \u2192 execute \u2192 verify \u2192 pipeline \u2502\n\u2502 \u2192 pr \u2192 done \u2192 spec2doc \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 \uD83D\uDCE5 \u8D44\u4EA7\u63A5\u5165 \u2502\n\u2502 \uD83D\uDE80 init \u26A1 \u521D\u59CB\u5316\u9879\u76EE \u2502\n\u2502 \uD83D\uDCC5 iteration \u26A1 \u8FED\u4EE3\u7BA1\u7406 \u2502\n\u2502 \uD83D\uDCDD doc2spec \u26A1 \u5BFC\u5165 PRD \u2192 Spec MD\uFF08AI \u7CBE\u70BC\u63A8\u8350\uFF09 \u2502\n\u2502 \uD83D\uDD2A unitize \u26A1 \u5207\u5206\u9700\u6C42\u6587\u6863 \u2192 \u529F\u80FD\u5355\u5143\uFF08features/\uFF09 \u2502\n\u2502 \uD83D\uDCE6 task new \u26A1 \u521B\u5EFA\u4EFB\u52A1 \u2502\n\u2502 \uD83D\uDCE4 spec2doc \u26A1 Spec MD \u2192 Word/PDF\uFF08AI \u6392\u7248\u63A8\u8350\uFF09 \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 \uD83E\uDD1D \u534F\u4F5C\u51B3\u7B56 \u2502\n\u2502 \uD83D\uDD0D analyze \uD83E\uDDE0 \u9700\u6C42\u5206\u6790+\u4EE3\u7801\u5BA1\u67E5+\u591A\u7AEF\u5408\u6210\uFF08--full\uFF09 \u2502\n\u2502 \uD83D\uDCCA taskify \uD83E\uDDE0 \u62C6\u529F\u80FD\u5355\u5143 \u2192 \u5F00\u53D1\u4EFB\u52A1\uFF08Task-*\uFF09 \u2502\n\u2502 \uD83D\uDCCB plan \uD83E\uDDE0 \u6267\u884C\u8BA1\u5212\uFF08--interactive\uFF09 \u2502\n\u2502 \uD83D\uDCDD req-doc \uD83E\uDDE0 \u9700\u6C42\u6587\u6863\u5316\uFF08\u53E3\u8BED\u5316 \u2192 PRD\uFF09 \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 \uD83D\uDE80 \u6267\u884C\u4EA4\u4ED8 \u2502\n\u2502 \uD83D\uDCBB execute \u26A1 \u81EA\u52A8\u6392\u5E8F\u6267\u884C \u2502\n\u2502 \u2705 verify \u26A1 \u7F16\u8BD1+Lint+\u5355\u6D4B+UI \u5192\u70DF\uFF08\u8D28\u91CF\u95E8\u7981\uFF09 \u2502\n\u2502 \uD83D\uDEA2 pipeline \u26A1 \u5408\u5E76\u5206\u652F \u2192 \u6784\u5EFA \u2192 \u90E8\u7F72\uFF08\u73AF\u5883\u9A71\u52A8\uFF09 \u2502\n\u2502 \uD83D\uDD00 pr \uD83E\uDDE0 \u521B\u5EFAPR\uFF08--interactive\uFF09 \u2502\n\u2502 \u2705 done \uD83E\uDDE0 \u6536\u5C3E\u5F52\u6863\uFF08--interactive\uFF09 \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 \uD83D\uDCA1 \u667A\u80FD\u5165\u53E3 \u2502\n\u2502 speccore \u81EA\u9002\u5E94\u9762\u677F\uFF08\u68C0\u6D4B\u9636\u6BB5 \u2192 \u63D0\u793A\u4E0B\u4E00\u6B65\uFF09 \u2502\n\u2502 speccore ask \"...\" \u81EA\u7136\u8BED\u8A00\u610F\u56FE\u8BC6\u522B \u2502\n\u2502 speccore next \u68C0\u6D4B\u8FDB\u5EA6\uFF1A\u63D0\u793A\u4E0B\u4E00\u6B65\uFF08\u53EA\u6307\u5F15\uFF09 \u2502\n\u2502 speccore run \u7AEF\u5230\u7AEF\u5168\u81EA\u52A8\u6D41\u6C34\u7EBF\uFF0813 \u9636\u6BB5\uFF09 \u2502\n\u2502 speccore dashboard \u53EF\u89C6\u5316\u4EEA\u8868\u76D8\uFF08\u8FED\u4EE3/\u5168\u5C40\uFF09 \u2502\n\u2502 speccore status \u9879\u76EE\u72B6\u6001\u9762\u677F \u2502\n\u2502 speccore about \u7248\u672C\u4FE1\u606F/\u529F\u80FD\u8BF4\u660E/\u6587\u6863\u94FE\u63A5 \u2502\n\u2502 \uD83D\uDCA1 speccore help --all \u67E5\u770B\u5168\u90E8\u547D\u4EE4\uFF08\u542B\u4F4E\u9891/\u8FD0\u7EF4\u547D\u4EE4\uFF09 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n";
2
2
  //# sourceMappingURL=help-panel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"help-panel.d.ts","sourceRoot":"","sources":["../../src/core/help-panel.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,usMAsCtB,CAAC"}
1
+ {"version":3,"file":"help-panel.d.ts","sourceRoot":"","sources":["../../src/core/help-panel.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,uhMAsCtB,CAAC"}