speccore 8.3.21 → 8.3.26

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 (120) hide show
  1. package/README.md +7 -4
  2. package/dist/cli.js +19 -3
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/analyze.d.ts.map +1 -1
  5. package/dist/commands/analyze.js +24 -8
  6. package/dist/commands/analyze.js.map +1 -1
  7. package/dist/commands/config.d.ts +3 -1
  8. package/dist/commands/config.d.ts.map +1 -1
  9. package/dist/commands/config.js +206 -90
  10. package/dist/commands/config.js.map +1 -1
  11. package/dist/commands/context-output.d.ts.map +1 -1
  12. package/dist/commands/context-output.js +0 -10
  13. package/dist/commands/context-output.js.map +1 -1
  14. package/dist/commands/dev.js +6 -7
  15. package/dist/commands/dev.js.map +1 -1
  16. package/dist/commands/doctor.d.ts.map +1 -1
  17. package/dist/commands/doctor.js +140 -0
  18. package/dist/commands/doctor.js.map +1 -1
  19. package/dist/commands/done.js +51 -20
  20. package/dist/commands/done.js.map +1 -1
  21. package/dist/commands/execute.d.ts.map +1 -1
  22. package/dist/commands/execute.js +147 -45
  23. package/dist/commands/execute.js.map +1 -1
  24. package/dist/commands/help.js +5 -0
  25. package/dist/commands/help.js.map +1 -1
  26. package/dist/commands/init.d.ts +0 -2
  27. package/dist/commands/init.d.ts.map +1 -1
  28. package/dist/commands/init.js +9 -51
  29. package/dist/commands/init.js.map +1 -1
  30. package/dist/commands/iteration/split.js +29 -17
  31. package/dist/commands/iteration/split.js.map +1 -1
  32. package/dist/commands/status-panel.d.ts.map +1 -1
  33. package/dist/commands/status-panel.js +13 -48
  34. package/dist/commands/status-panel.js.map +1 -1
  35. package/dist/commands/status.d.ts.map +1 -1
  36. package/dist/commands/status.js +32 -0
  37. package/dist/commands/status.js.map +1 -1
  38. package/dist/commands/update.d.ts.map +1 -1
  39. package/dist/commands/update.js +206 -8
  40. package/dist/commands/update.js.map +1 -1
  41. package/dist/commands/verdict.d.ts +16 -0
  42. package/dist/commands/verdict.d.ts.map +1 -0
  43. package/dist/commands/verdict.js +189 -0
  44. package/dist/commands/verdict.js.map +1 -0
  45. package/dist/commands/verify.d.ts.map +1 -1
  46. package/dist/commands/verify.js +3 -2
  47. package/dist/commands/verify.js.map +1 -1
  48. package/dist/core/analyze-engine.d.ts.map +1 -1
  49. package/dist/core/analyze-engine.js +3 -4
  50. package/dist/core/analyze-engine.js.map +1 -1
  51. package/dist/core/arbitration/arbitration-engine.d.ts +36 -0
  52. package/dist/core/arbitration/arbitration-engine.d.ts.map +1 -0
  53. package/dist/core/arbitration/arbitration-engine.js +142 -0
  54. package/dist/core/arbitration/arbitration-engine.js.map +1 -0
  55. package/dist/core/arbitration/conflict-detector.d.ts +15 -0
  56. package/dist/core/arbitration/conflict-detector.d.ts.map +1 -0
  57. package/dist/core/arbitration/conflict-detector.js +78 -0
  58. package/dist/core/arbitration/conflict-detector.js.map +1 -0
  59. package/dist/core/arbitration/conflict-types.d.ts +34 -0
  60. package/dist/core/arbitration/conflict-types.d.ts.map +1 -0
  61. package/dist/core/arbitration/conflict-types.js +8 -0
  62. package/dist/core/arbitration/conflict-types.js.map +1 -0
  63. package/dist/core/arbitration/contract-registry.d.ts +15 -0
  64. package/dist/core/arbitration/contract-registry.d.ts.map +1 -0
  65. package/dist/core/arbitration/contract-registry.js +185 -0
  66. package/dist/core/arbitration/contract-registry.js.map +1 -0
  67. package/dist/core/arbitration/contract-types.d.ts +33 -0
  68. package/dist/core/arbitration/contract-types.d.ts.map +1 -0
  69. package/dist/core/arbitration/contract-types.js +8 -0
  70. package/dist/core/arbitration/contract-types.js.map +1 -0
  71. package/dist/core/arbitration/index.d.ts +16 -0
  72. package/dist/core/arbitration/index.d.ts.map +1 -0
  73. package/dist/core/arbitration/index.js +32 -0
  74. package/dist/core/arbitration/index.js.map +1 -0
  75. package/dist/core/arbitration/l1-auto-arbiter.d.ts +19 -0
  76. package/dist/core/arbitration/l1-auto-arbiter.d.ts.map +1 -0
  77. package/dist/core/arbitration/l1-auto-arbiter.js +41 -0
  78. package/dist/core/arbitration/l1-auto-arbiter.js.map +1 -0
  79. package/dist/core/arbitration/l2-ai-arbiter.d.ts +19 -0
  80. package/dist/core/arbitration/l2-ai-arbiter.d.ts.map +1 -0
  81. package/dist/core/arbitration/l2-ai-arbiter.js +57 -0
  82. package/dist/core/arbitration/l2-ai-arbiter.js.map +1 -0
  83. package/dist/core/arbitration/l3-human-arbiter.d.ts +24 -0
  84. package/dist/core/arbitration/l3-human-arbiter.d.ts.map +1 -0
  85. package/dist/core/arbitration/l3-human-arbiter.js +65 -0
  86. package/dist/core/arbitration/l3-human-arbiter.js.map +1 -0
  87. package/dist/core/arbitration/verdict-generator.d.ts +16 -0
  88. package/dist/core/arbitration/verdict-generator.d.ts.map +1 -0
  89. package/dist/core/arbitration/verdict-generator.js +166 -0
  90. package/dist/core/arbitration/verdict-generator.js.map +1 -0
  91. package/dist/core/arbitration/verdict-types.d.ts +49 -0
  92. package/dist/core/arbitration/verdict-types.d.ts.map +1 -0
  93. package/dist/core/arbitration/verdict-types.js +8 -0
  94. package/dist/core/arbitration/verdict-types.js.map +1 -0
  95. package/dist/core/ask-config.d.ts +4 -3
  96. package/dist/core/ask-config.d.ts.map +1 -1
  97. package/dist/core/ask-config.js +79 -1
  98. package/dist/core/ask-config.js.map +1 -1
  99. package/dist/core/ask-engine.d.ts.map +1 -1
  100. package/dist/core/ask-engine.js +7 -0
  101. package/dist/core/ask-engine.js.map +1 -1
  102. package/dist/core/intent-recognition.d.ts +1 -1
  103. package/dist/core/intent-recognition.d.ts.map +1 -1
  104. package/dist/core/intent-recognition.js +10 -0
  105. package/dist/core/intent-recognition.js.map +1 -1
  106. package/dist/core/pattern-detector.d.ts +24 -0
  107. package/dist/core/pattern-detector.d.ts.map +1 -1
  108. package/dist/core/pattern-detector.js +172 -3
  109. package/dist/core/pattern-detector.js.map +1 -1
  110. package/dist/core/quality-audit.d.ts.map +1 -1
  111. package/dist/core/quality-audit.js +23 -15
  112. package/dist/core/quality-audit.js.map +1 -1
  113. package/dist/core/spec-skeleton.d.ts.map +1 -1
  114. package/dist/core/spec-skeleton.js +35 -12
  115. package/dist/core/spec-skeleton.js.map +1 -1
  116. package/dist/core/unified-config.d.ts +161 -27
  117. package/dist/core/unified-config.d.ts.map +1 -1
  118. package/dist/core/unified-config.js +856 -82
  119. package/dist/core/unified-config.js.map +1 -1
  120. package/package.json +1 -1
@@ -1,7 +1,9 @@
1
1
  export interface ConfigOptions {
2
2
  get?: string;
3
3
  set?: string;
4
- reset?: boolean;
4
+ list?: boolean;
5
+ upgrade?: boolean;
6
+ project?: boolean;
5
7
  rule?: string;
6
8
  tech?: string;
7
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAQD;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAUnC;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDzE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAUnC;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DzE"}
@@ -2,9 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.installHooks = installHooks;
4
4
  exports.configCommand = configCommand;
5
+ /**
6
+ * config — 配置管理命令
7
+ * v8.3.25+: 统一使用 .speccore.yml,支持 --list / --upgrade
8
+ */
5
9
  const fs_extra_1 = require("fs-extra");
6
10
  const logger_1 = require("../utils/logger");
7
- const CONFIG_PATH = '.speccore/SETTINGS.md';
11
+ const unified_config_1 = require("../core/unified-config");
8
12
  /**
9
13
  * Install Git hooks (pre-commit + pre-push)
10
14
  */
@@ -26,119 +30,238 @@ async function configCommand(options) {
26
30
  const spinner = new logger_1.Spinner('Processing configuration');
27
31
  spinner.start();
28
32
  try {
29
- // CONSTITUTION.md spec-rule 配置
30
- if (options.rule && options.set) {
33
+ // --upgrade: 升级配置结构
34
+ if (options.upgrade) {
31
35
  spinner.stop();
32
- await setSpecRule(options.rule, options.set);
36
+ if (options.project) {
37
+ await (0, unified_config_1.upgradeProjectConfig)();
38
+ }
39
+ else {
40
+ await (0, unified_config_1.upgradeConfig)();
41
+ }
33
42
  return;
34
43
  }
35
- // TECH_STACK.md 技术栈配置
36
- if (options.tech && options.set) {
44
+ // --list: 列出所有配置
45
+ if (options.list) {
37
46
  spinner.stop();
38
- await setTechStack(options.tech, options.set);
47
+ if (options.project) {
48
+ await printProjectConfigList();
49
+ }
50
+ else {
51
+ await printConfigList();
52
+ }
39
53
  return;
40
54
  }
55
+ // --get: 读取配置项
41
56
  if (options.get) {
42
- const value = await getConfig(options.get);
43
- spinner.stop(`Config value: ${value}`);
57
+ const config = await (0, unified_config_1.loadConfig)();
58
+ const value = getValueByPath(config, options.get);
59
+ spinner.stop(value !== undefined ? `${options.get} = ${JSON.stringify(value)}` : `${options.get}: Not set`);
44
60
  return;
45
61
  }
62
+ // --set: 设置配置项
46
63
  if (options.set) {
47
- const [key, value] = options.set.split('=');
48
- if (!key || value === undefined) {
49
- spinner.fail('Invalid format. Use --set key=value');
50
- return;
51
- }
52
- await setConfig(key, value);
53
- spinner.stop(`Set ${key} = ${value}`);
64
+ spinner.stop();
65
+ await handleSet(options.set);
66
+ return;
67
+ }
68
+ // CONSTITUTION.md spec-rule 配置(保留旧功能)
69
+ if (options.rule && options.set) {
70
+ spinner.stop();
71
+ await setSpecRule(options.rule, options.set);
54
72
  return;
55
73
  }
56
- if (options.reset) {
57
- await resetConfig();
58
- spinner.stop('Configuration reset to defaults');
74
+ // TECH_STACK.md 技术栈配置(保留旧功能)
75
+ if (options.tech && options.set) {
76
+ spinner.stop();
77
+ await setTechStack(options.tech, options.set);
59
78
  return;
60
79
  }
61
- // Show all config
62
- const config = await loadConfig();
63
- spinner.stop('Current configuration');
64
- console.log(config);
80
+ // 无参数:显示帮助
81
+ spinner.stop();
82
+ printHelp();
65
83
  }
66
84
  catch (error) {
67
85
  spinner.fail(`Config operation failed: ${error}`);
68
86
  throw error;
69
87
  }
70
88
  }
71
- async function loadConfig() {
72
- if (!(await (0, fs_extra_1.pathExists)(CONFIG_PATH))) {
73
- return {};
74
- }
75
- const content = await (0, fs_extra_1.readFile)(CONFIG_PATH, 'utf-8');
76
- const config = {};
77
- // Parse markdown table
78
- const lines = content.split('\n');
79
- for (const line of lines) {
80
- const match = line.match(/\|\s*(\S+)\s*\|\s*(\S+)\s*\|\s*(\S+)\s*\|/);
81
- if (match && !match[1].includes('---') && !match[1].includes('配置项')) {
82
- const key = match[1].trim();
83
- const value = match[2].trim();
84
- config[key] = parseValue(value);
85
- }
89
+ // ─────────────────────────────────────────
90
+ // --list: 列出所有配置项
91
+ // ─────────────────────────────────────────
92
+ async function printConfigList() {
93
+ const { config, warnings } = await (0, unified_config_1.loadConfigWithMeta)();
94
+ logger_1.logger.info('\n⚙️ .speccore.yml 系统配置列表\n');
95
+ // schema_version
96
+ logger_1.logger.info(`schema_version: ${config.schema_version}`);
97
+ // quality_gates
98
+ logger_1.logger.info('quality_gates:');
99
+ logger_1.logger.info(` enforce_testing: ${config.quality_gates.enforce_testing}`);
100
+ logger_1.logger.info(` enforce_review: ${config.quality_gates.enforce_review}`);
101
+ logger_1.logger.info(` require_pr: ${config.quality_gates.require_pr}`);
102
+ // arbitration
103
+ logger_1.logger.info('arbitration:');
104
+ logger_1.logger.info(` enabled: ${config.arbitration.enabled}`);
105
+ logger_1.logger.info(` mode: ${config.arbitration.mode}`);
106
+ // settings
107
+ logger_1.logger.info('settings:');
108
+ logger_1.logger.info(` assignee.enabled: ${config.settings.assignee.enabled}`);
109
+ logger_1.logger.info(` assignee.mode: ${config.settings.assignee.mode}`);
110
+ logger_1.logger.info(` trace.enabled: ${config.settings.trace.enabled}`);
111
+ logger_1.logger.info(` patterns.auto_save: ${config.settings.patterns.auto_save}`);
112
+ logger_1.logger.info(` plan.parallel_suggest: ${config.settings.plan.parallel_suggest}`);
113
+ logger_1.logger.info(` sync.auto_check: ${config.settings.sync.auto_check}`);
114
+ logger_1.logger.info(` validation.strict_mode: ${config.settings.validation.strict_mode}`);
115
+ logger_1.logger.info(` archive.auto_cleanup: ${config.settings.archive.auto_cleanup}`);
116
+ logger_1.logger.info(` review.check_assignee: ${config.settings.review.check_assignee}`);
117
+ // ask
118
+ logger_1.logger.info('ask.routing.mode: ' + config.ask.routing.mode);
119
+ logger_1.logger.info(`ask.llm_providers: ${config.ask.llm_providers.length} 个`);
120
+ if (warnings.length > 0) {
121
+ logger_1.logger.info('\n⚠️ 配置警告:');
122
+ for (const w of warnings)
123
+ logger_1.logger.info(` ${w}`);
86
124
  }
87
- return config;
125
+ logger_1.logger.info('\n💡 使用 speccore config --get <path> 查看具体值');
126
+ logger_1.logger.info('💡 使用 speccore config --upgrade 升级系统配置');
127
+ logger_1.logger.info('💡 使用 speccore config --list --project 查看项目配置');
128
+ logger_1.logger.info('💡 完整配置参考见 docs/config-reference.md\n');
88
129
  }
89
- function parseValue(value) {
90
- if (value === 'true')
130
+ async function printProjectConfigList() {
131
+ const { config, warnings } = await (0, unified_config_1.loadProjectConfigWithMeta)();
132
+ logger_1.logger.info('\n📁 .speccore/PROJECT.yaml 项目配置列表\n');
133
+ // schema_version
134
+ logger_1.logger.info(`schema_version: ${config.schema_version}`);
135
+ // project
136
+ logger_1.logger.info(`project.name: ${config.project.name}`);
137
+ if (config.project.description) {
138
+ logger_1.logger.info(`project.description: ${config.project.description}`);
139
+ }
140
+ if (config.project.version) {
141
+ logger_1.logger.info(`project.version: ${config.project.version}`);
142
+ }
143
+ // platforms
144
+ if (config.platforms.length > 0) {
145
+ logger_1.logger.info(`platforms: ${config.platforms.map(p => p.name).join(', ')}`);
146
+ }
147
+ else {
148
+ logger_1.logger.info('platforms: (空)');
149
+ }
150
+ // git
151
+ logger_1.logger.info('git:');
152
+ logger_1.logger.info(` default_base: ${config.git.default_base}`);
153
+ logger_1.logger.info(` branch_prefix: ${config.git.branch_prefix}`);
154
+ logger_1.logger.info(` protected_branches: [${config.git.protected_branches.join(', ')}]`);
155
+ // code_scope
156
+ logger_1.logger.info(`code_scope: [${config.code_scope.join(', ')}]`);
157
+ if (warnings.length > 0) {
158
+ logger_1.logger.info('\n⚠️ 配置警告:');
159
+ for (const w of warnings)
160
+ logger_1.logger.info(` ${w}`);
161
+ }
162
+ logger_1.logger.info('\n💡 使用 speccore config --upgrade --project 升级项目配置');
163
+ logger_1.logger.info('💡 完整配置参考见 docs/config-reference.md\n');
164
+ }
165
+ // ─────────────────────────────────────────
166
+ // --set: 设置配置项
167
+ // ─────────────────────────────────────────
168
+ async function handleSet(setExpr) {
169
+ // 支持两种格式: --set key=value 或 --set key value(由 CLI parser 处理)
170
+ const eqIndex = setExpr.indexOf('=');
171
+ if (eqIndex === -1) {
172
+ logger_1.logger.error('格式错误。使用: speccore config --set key=value');
173
+ logger_1.logger.info(' 示例: speccore config --set arbitration.mode=l1-only');
174
+ return;
175
+ }
176
+ const key = setExpr.slice(0, eqIndex).trim();
177
+ const rawValue = setExpr.slice(eqIndex + 1).trim();
178
+ const config = await (0, unified_config_1.loadConfig)();
179
+ const value = parseSetValue(rawValue);
180
+ if (!setValueByPath(config, key, value)) {
181
+ logger_1.logger.error(`未知配置项: ${key}`);
182
+ logger_1.logger.info(' 使用 speccore config --list 查看所有配置项');
183
+ return;
184
+ }
185
+ await (0, unified_config_1.saveConfig)(config);
186
+ logger_1.logger.success(`已设置: ${key} = ${JSON.stringify(value)}`);
187
+ }
188
+ function parseSetValue(raw) {
189
+ if (raw === 'true')
91
190
  return true;
92
- if (value === 'false')
191
+ if (raw === 'false')
93
192
  return false;
94
- const num = parseFloat(value);
95
- if (!isNaN(num))
193
+ if (raw === 'null')
194
+ return null;
195
+ const num = Number(raw);
196
+ if (!isNaN(num) && raw !== '')
96
197
  return num;
97
- return value;
98
- }
99
- async function getConfig(key) {
100
- const config = await loadConfig();
101
- return String(config[key] ?? 'Not set');
198
+ return raw;
102
199
  }
103
- async function setConfig(key, value) {
104
- let content = '';
105
- if (await (0, fs_extra_1.pathExists)(CONFIG_PATH)) {
106
- content = await (0, fs_extra_1.readFile)(CONFIG_PATH, 'utf-8');
200
+ // ─────────────────────────────────────────
201
+ // 路径操作(点号路径)
202
+ // ─────────────────────────────────────────
203
+ function getValueByPath(obj, path) {
204
+ const parts = path.split('.');
205
+ let current = obj;
206
+ for (const part of parts) {
207
+ if (current === null || current === undefined)
208
+ return undefined;
209
+ if (typeof current !== 'object')
210
+ return undefined;
211
+ current = current[part];
107
212
  }
108
- else {
109
- content = '# 框架配置\n\n## 功能开关\n| 配置项 | 值 | 说明 |\n| :--- | :--- | :--- |\n';
110
- }
111
- // Update or add the config line
112
- const lines = content.split('\n');
113
- const configLine = `| ${key} | ${value} | |`;
114
- let found = false;
115
- for (let i = 0; i < lines.length; i++) {
116
- if (lines[i].includes(`| ${key} `)) {
117
- lines[i] = configLine;
118
- found = true;
119
- break;
120
- }
213
+ return current;
214
+ }
215
+ function setValueByPath(obj, path, value) {
216
+ const parts = path.split('.');
217
+ let current = obj;
218
+ for (let i = 0; i < parts.length - 1; i++) {
219
+ const part = parts[i];
220
+ if (current === null || current === undefined)
221
+ return false;
222
+ if (typeof current !== 'object')
223
+ return false;
224
+ current = current[part];
121
225
  }
122
- if (!found) {
123
- lines.push(configLine);
226
+ const lastPart = parts[parts.length - 1];
227
+ if (current === null || current === undefined)
228
+ return false;
229
+ if (typeof current !== 'object')
230
+ return false;
231
+ // 检查字段是否存在于 DEFAULT_CONFIG 中(防止写入任意字段)
232
+ const defaultValue = getValueByPath(unified_config_1.DEFAULT_CONFIG, path);
233
+ if (defaultValue === undefined && !isValidDynamicPath(path)) {
234
+ return false;
124
235
  }
125
- await (0, fs_extra_1.ensureDir)('.speccore');
126
- await (0, fs_extra_1.writeFile)(CONFIG_PATH, lines.join('\n'));
236
+ current[lastPart] = value;
237
+ return true;
238
+ }
239
+ function isValidDynamicPath(path) {
240
+ // 允许动态路径,如 platforms[0].name
241
+ return path.startsWith('platforms') || path.startsWith('git');
127
242
  }
128
- async function resetConfig() {
129
- const defaultConfig = `# 框架配置
130
-
131
- ## 功能开关
132
- | 配置项 | 值 | 说明 |
133
- | :--- | :--- | :--- |
134
- | assignee.enabled | true | 是否启用执行人追踪 |
135
- | assignee.mode | loose | 执行人追踪强制程度 |
136
- `;
137
- await (0, fs_extra_1.ensureDir)('.speccore');
138
- await (0, fs_extra_1.writeFile)(CONFIG_PATH, defaultConfig);
243
+ // ─────────────────────────────────────────
244
+ // 帮助信息
245
+ // ─────────────────────────────────────────
246
+ function printHelp() {
247
+ logger_1.logger.info('\n⚙️ speccore config 配置管理\n');
248
+ logger_1.logger.info('用法:');
249
+ logger_1.logger.info(' speccore config --list 列出系统配置(.speccore.yml)');
250
+ logger_1.logger.info(' speccore config --list --project 列出项目配置(.speccore/PROJECT.yaml)');
251
+ logger_1.logger.info(' speccore config --get <path> 读取配置项');
252
+ logger_1.logger.info(' speccore config --set <path>=<value> 设置配置项');
253
+ logger_1.logger.info(' speccore config --upgrade 升级系统配置结构');
254
+ logger_1.logger.info(' speccore config --upgrade --project 升级项目配置结构');
255
+ logger_1.logger.info('');
256
+ logger_1.logger.info('示例:');
257
+ logger_1.logger.info(' speccore config --get arbitration.mode');
258
+ logger_1.logger.info(' speccore config --set arbitration.mode=l1-only');
259
+ logger_1.logger.info(' speccore config --set settings.patterns.auto_save=off');
260
+ logger_1.logger.info('');
261
+ logger_1.logger.info('完整配置参考: docs/config-reference.md\n');
139
262
  }
140
263
  // ============================================================
141
- // CONSTITUTION.md spec-rule 写入
264
+ // CONSTITUTION.md spec-rule 写入(保留旧功能)
142
265
  // ============================================================
143
266
  const CONSTITUTION_PATH = '.speccore/CONSTITUTION.md';
144
267
  async function setSpecRule(ruleName, value) {
@@ -147,22 +270,18 @@ async function setSpecRule(ruleName, value) {
147
270
  return;
148
271
  }
149
272
  let content = await (0, fs_extra_1.readFile)(CONSTITUTION_PATH, 'utf-8');
150
- // 标准化口语描述
151
273
  const normalized = normalizeRuleValue(ruleName, value);
152
274
  const ruleBlock = `<!-- spec-rule: ${ruleName} -->\n- ${normalized}\n<!-- /spec-rule -->`;
153
- // 查找已有 spec-rule 区块并更新
154
275
  const ruleRegex = new RegExp(`<!--\\s*spec-rule:\\s*${ruleName}\\s*-->[\\s\\S]*?<!--\\s*/spec-rule\\s*-->`, 'i');
155
276
  if (ruleRegex.test(content)) {
156
277
  content = content.replace(ruleRegex, ruleBlock);
157
278
  logger_1.logger.info(`已更新 spec-rule: ${ruleName}`);
158
279
  }
159
280
  else {
160
- // 找到 ## 代码规范 章节并追加
161
281
  if (content.includes('## 代码规范')) {
162
282
  content = content.replace(/(## 代码规范[^\n]*\n)/, `$1${ruleBlock}\n`);
163
283
  }
164
284
  else {
165
- // 追加到文件末尾
166
285
  content += `\n\n## 代码规范\n\n${ruleBlock}\n`;
167
286
  }
168
287
  logger_1.logger.info(`已新增 spec-rule: ${ruleName}`);
@@ -172,7 +291,6 @@ async function setSpecRule(ruleName, value) {
172
291
  logger_1.logger.info(' 💡 下次 speccore execute 将自动应用此规则');
173
292
  }
174
293
  function normalizeRuleValue(ruleName, value) {
175
- // 去掉语气词 + 口语前缀
176
294
  let v = value.replace(/[了啦啊呢嗯哈哦]$/, '').trim();
177
295
  v = v.replace(/^(改成|换成?|用|用的是|统一用|使用)\s*/i, '').trim();
178
296
  switch (ruleName) {
@@ -191,9 +309,8 @@ function normalizeRuleValue(ruleName, value) {
191
309
  }
192
310
  }
193
311
  // ============================================================
194
- // TECH_STACK.md 技术栈写入
312
+ // TECH_STACK.md 技术栈写入(保留旧功能)
195
313
  // ============================================================
196
- // v7.2.0+: 全局技术文档统一放在 overview/ 子目录下
197
314
  const TECH_STACK_PATH_NEW = '.speccore/GLOBAL/overview/TECH_STACK.md';
198
315
  const TECH_STACK_PATH_LEGACY = '.speccore/GLOBAL/TECH_STACK.md';
199
316
  async function resolveTechStackPath() {
@@ -220,7 +337,6 @@ async function setTechStack(target, value) {
220
337
  else {
221
338
  logger_1.logger.warn(`未找到 tech-stack: ${target} 区块,请在 TECH_STACK.md 中手动添加`);
222
339
  }
223
- // 始终写入新路径
224
340
  await (0, fs_extra_1.writeFile)(TECH_STACK_PATH_NEW, content);
225
341
  logger_1.logger.info(` ${target}: ${value}`);
226
342
  logger_1.logger.info(' 💡 下次 speccore execute 将显示此技术栈');
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context-output.d.ts","sourceRoot":"","sources":["../../src/commands/context-output.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC7B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAwG3E"}
1
+ {"version":3,"file":"context-output.d.ts","sourceRoot":"","sources":["../../src/commands/context-output.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC7B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA8F3E"}
@@ -7,7 +7,6 @@ exports.contextCommand = contextCommand;
7
7
  const fs_extra_1 = require("fs-extra");
8
8
  const path_1 = require("path");
9
9
  const logger_1 = require("../utils/logger");
10
- const unified_config_1 = require("../core/unified-config");
11
10
  const context_1 = require("../core/context");
12
11
  async function contextCommand(options) {
13
12
  // ── 切换迭代模式 ──
@@ -54,7 +53,6 @@ async function contextCommand(options) {
54
53
  const specsDir = (0, path_1.join)(taskBase, '00-specs');
55
54
  const backendDir = (await (0, fs_extra_1.pathExists)((0, path_1.join)(specsDir, 'REQ.md'))) ? specsDir : (0, path_1.join)(taskBase, 'backend');
56
55
  const sharedDir = (0, path_1.join)(taskBase, '_shared');
57
- const config = await (0, unified_config_1.loadConfig)();
58
56
  // Collect context
59
57
  const context = [];
60
58
  // CONSTITUTION
@@ -93,14 +91,6 @@ async function contextCommand(options) {
93
91
  const test = await (0, fs_extra_1.readFile)(testPath, 'utf-8');
94
92
  context.push(test.slice(0, 1000));
95
93
  }
96
- // Tech stack
97
- if (config.tech_stack) {
98
- context.push('\n## 技术栈\n');
99
- for (const [k, v] of Object.entries(config.tech_stack)) {
100
- if (v)
101
- context.push(`- ${k}: ${v}`);
102
- }
103
- }
104
94
  const output = context.join('\n');
105
95
  logger_1.logger.info(`\n📋 ${taskEntry.name} 上下文 (${output.length} 字符):\n`);
106
96
  logger_1.logger.info(output);
@@ -1 +1 @@
1
- {"version":3,"file":"context-output.js","sourceRoot":"","sources":["../../src/commands/context-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-output.js","sourceRoot":"","sources":["../../src/commands/context-output.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,6 @@ const child_process_1 = require("child_process");
44
44
  const logger_1 = require("../utils/logger");
45
45
  const ask_host_ai_1 = require("../core/ask-host-ai");
46
46
  const context_1 = require("../core/context");
47
- const spec_paths_1 = require("../core/spec-paths");
48
47
  const ask_host_ai_2 = require("../core/ask-host-ai");
49
48
  const pipeline_engine_1 = require("../core/pipeline-engine");
50
49
  const questions_1 = require("../core/questions");
@@ -124,7 +123,7 @@ async function devCommand(options) {
124
123
  }
125
124
  const iterDir = `Iteration-${iteration}`;
126
125
  const legacyReq = (0, path_1.join)(iterDir, '010-requirements', 'REQUIREMENT.md');
127
- const analysis = await (0, spec_paths_1.resolveGlobalSpecPath)((0, path_1.join)(iterDir, '020-specs'), 'ANALYSIS.md') || (0, path_1.join)(iterDir, '020-specs', 'ANALYSIS.md');
126
+ const analysis = (0, path_1.join)(iterDir, '020-specs', 'overview', 'ANALYSIS.md');
128
127
  if (!(await (0, fs_extra_1.pathExists)(legacyReq))) {
129
128
  showPhase('导入需求', ['speccore doc2spec -f PRD.docx -i ' + iteration]);
130
129
  }
@@ -249,8 +248,8 @@ async function autoPipeline(options) {
249
248
  break;
250
249
  }
251
250
  case 'analyze': {
252
- const analysis = await (0, spec_paths_1.resolveGlobalSpecPath)((0, path_1.join)(iterDir, '020-specs'), 'ANALYSIS.md') || (0, path_1.join)(iterDir, '020-specs', 'ANALYSIS.md');
253
- const techSpec = (0, path_1.join)(iterDir, '020-specs', 'ANALYSIS.md');
251
+ const analysis = (0, path_1.join)(iterDir, '020-specs', 'overview', 'ANALYSIS.md');
252
+ const techSpec = (0, path_1.join)(iterDir, '020-specs', 'overview', 'ANALYSIS.md');
254
253
  let needsAnalysis = !(await (0, fs_extra_1.pathExists)(analysis));
255
254
  let needsSpecs = false;
256
255
  if (!needsAnalysis) {
@@ -453,8 +452,8 @@ async function renderDevHtml(options) {
453
452
  const isInit = await (0, fs_extra_1.pathExists)('.speccore');
454
453
  const phases = [
455
454
  { name: lang === 'en' ? I18N.en.stepInit : I18N.zh.stepInit, key: 'init', done: !!isInit, icon: '🏗️', cmd: 'init', description: '初始化 SpecCore 项目结构', args: '',
456
- detail: '创建 .speccore/ 目录及配置文件(CONSTITUTION.md、SETTINGS.md 等),奠定项目规范基础。',
457
- prerequisites: ['空目录或已有代码仓库'], outputs: ['.speccore/CONSTITUTION.md', '.speccore/SETTINGS.md', '.speccore/local/context.json'],
455
+ detail: '创建 .speccore/ 目录及配置文件(CONSTITUTION.md、.speccore.yml 等),奠定项目规范基础。',
456
+ prerequisites: ['空目录或已有代码仓库'], outputs: ['.speccore/CONSTITUTION.md', '.speccore.yml', '.speccore/local/context.json'],
458
457
  tips: '如果已有项目,init 会扫描现有工程结构自动填写技术栈。', examples: ['speccore init'] },
459
458
  { name: lang === 'en' ? I18N.en.stepDoc : I18N.zh.stepDoc, key: 'doc', done: false, icon: '📝', cmd: 'doc2spec', description: '导入 PRD 文档,AI 转换需求规格', args: '-f PRD.docx' + (iterName ? ' --iteration ' + iterName : ''),
460
459
  detail: '将产品需求文档(Word / PDF / Markdown)导入迭代,AI 自动提取并转换为标准需求规格。也支持自然语言直接描述需求。',
@@ -484,7 +483,7 @@ async function renderDevHtml(options) {
484
483
  if (iterDir) {
485
484
  const reqDoc = (0, path_1.join)(iterDir, '010-requirements', 'REQUIREMENT.md');
486
485
  const hasReqFeature = await hasFeatureDirs(iterDir); // 新结构: 010-requirements/{feature}/
487
- const analysis = await (0, spec_paths_1.resolveGlobalSpecPath)((0, path_1.join)(iterDir, '020-specs'), 'ANALYSIS.md') || (0, path_1.join)(iterDir, '020-specs', 'ANALYSIS.md');
486
+ const analysis = (0, path_1.join)(iterDir, '020-specs', 'overview', 'ANALYSIS.md');
488
487
  if ((await (0, fs_extra_1.pathExists)(reqDoc)) || hasReqFeature)
489
488
  phases[1].done = true;
490
489
  if (await (0, fs_extra_1.pathExists)(analysis))