speccore 6.48.0 → 6.48.1
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/dist/commands/init.js
CHANGED
|
@@ -318,9 +318,9 @@ async function createDefaultFiles(projectRoot, speccoreDir) {
|
|
|
318
318
|
|
|
319
319
|
## 端列表(全局权威)
|
|
320
320
|
|
|
321
|
-
> ⚠️
|
|
321
|
+
> ⚠️ **工程标识是全项目唯一的端标识符**,所有命令(analyze/split/execute)、目录名(020-specs/{端}/)、模板目录(templates/{level}/{端}/)均使用此处声明的端名。
|
|
322
322
|
|
|
323
|
-
|
|
|
323
|
+
| 工程标识 | 描述 | 类型 |
|
|
324
324
|
| :--- | :--- | :--- |
|
|
325
325
|
| app | 移动端 APP | frontend |
|
|
326
326
|
| h5 | 移动 H5 端 | frontend |
|
|
@@ -328,24 +328,24 @@ async function createDefaultFiles(projectRoot, speccoreDir) {
|
|
|
328
328
|
| admin | 后台管理端 | frontend |
|
|
329
329
|
|
|
330
330
|
> **端名规则**:
|
|
331
|
-
> -
|
|
331
|
+
> - 工程标识 = 工程名,一一对应(一个端 = 一个完整的服務/应用 = 一个 git 仓库)
|
|
332
332
|
> - 全小写、无空格、用短横线分隔(如 order-service)
|
|
333
333
|
> - 类型:frontend / backend / infra
|
|
334
334
|
> - 此列表是 analyze/split/execute 的唯一端名来源
|
|
335
|
-
> -
|
|
335
|
+
> - 「对应端」列引用此列表中的工程标识,每行只填一个
|
|
336
336
|
|
|
337
337
|
## 项目信息
|
|
338
338
|
|
|
339
|
-
|
|
|
339
|
+
| 工程标识 | 项目名称 | 源码路径 | Git 仓库 | 默认分支 | 对应端 |
|
|
340
340
|
| :--- | :--- | :--- | :--- | :--- | :--- |
|
|
341
341
|
| ${projectName} | 待填写 | ./ | ${gitUrl || '待配置'} | main | 待填写 |
|
|
342
342
|
|
|
343
|
-
> ⚠️ **项目名称** 是给人和 AI
|
|
343
|
+
> ⚠️ **项目名称** 是给人和 AI 看的业务名称(如"食堂后台管理"、"商户入驻系统"),不同于技术上的工程标识。
|
|
344
344
|
> AI 会据此理解项目业务范围,在分析/拆分/生成代码时作为上下文参考。
|
|
345
345
|
|
|
346
346
|
> 多工程示例(每个端 = 一个独立工程):
|
|
347
347
|
>
|
|
348
|
-
> |
|
|
348
|
+
> | 工程标识 | 项目名称 | 源码路径 | Git 仓库 | 默认分支 | 对应端 |
|
|
349
349
|
> | :--- | :--- | :--- | :--- | :--- | :--- |
|
|
350
350
|
> | admin-web | 后台管理端 | ./packages/admin | git@xxx/admin.git | main | admin |
|
|
351
351
|
> | h5-app | 移动H5端 | ./packages/h5 | git@xxx/h5.git | main | h5 |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-paths.d.ts","sourceRoot":"","sources":["../../src/core/spec-paths.ts"],"names":[],"mappings":"AASA,eAAe;AACf,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,iBAAiB,UAE7B,CAAC;AAEF;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMrG;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5F;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"spec-paths.d.ts","sourceRoot":"","sources":["../../src/core/spec-paths.ts"],"names":[],"mappings":"AASA,eAAe;AACf,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,iBAAiB,UAE7B,CAAC;AAEF;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMrG;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5F;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAwE3D"}
|
package/dist/core/spec-paths.js
CHANGED
|
@@ -55,12 +55,14 @@ async function parsePlatformList() {
|
|
|
55
55
|
const lines = content.split('\n');
|
|
56
56
|
// 1. 优先解析「端列表」章节(v6.46.0+ 显式声明)
|
|
57
57
|
let inPlatformSection = false;
|
|
58
|
+
let platformColIdx = -1; // 端名列索引(动态查找)
|
|
58
59
|
const platforms = new Set();
|
|
59
60
|
for (let i = 0; i < lines.length; i++) {
|
|
60
61
|
const line = lines[i].trim();
|
|
61
62
|
// 检测章节标题
|
|
62
63
|
if (line.match(/^##\s+.*\u7aef\u5217\u8868/) || line.match(/^##\s+.*\u5e73\u53f0\u5217\u8868/)) {
|
|
63
64
|
inPlatformSection = true;
|
|
65
|
+
platformColIdx = -1; // 重置,每个章节重新找表头
|
|
64
66
|
continue;
|
|
65
67
|
}
|
|
66
68
|
// 遇到下一个 ## 章节就停止
|
|
@@ -68,13 +70,26 @@ async function parsePlatformList() {
|
|
|
68
70
|
break;
|
|
69
71
|
if (!inPlatformSection)
|
|
70
72
|
continue;
|
|
71
|
-
//
|
|
72
|
-
if (!line.startsWith('|')
|
|
73
|
+
// 解析表格行
|
|
74
|
+
if (!line.startsWith('|'))
|
|
75
|
+
continue;
|
|
76
|
+
// 分隔行跳过
|
|
77
|
+
if (line.match(/^\|\s*[-:]/))
|
|
73
78
|
continue;
|
|
74
79
|
const cells = line.split('|').map(c => c.trim()).filter(Boolean);
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
80
|
+
// 表头行:动态查找端名列索引
|
|
81
|
+
if (platformColIdx === -1 && cells.length > 0) {
|
|
82
|
+
// 匹配表头中的端名列:端名 / 平台名 / 工程标识 / 工程ID
|
|
83
|
+
platformColIdx = cells.findIndex(h => h === '端名' || h === '平台名' || h === '工程标识' || h === '工程ID' ||
|
|
84
|
+
h.includes('端名') || h.includes('平台名') || h.includes('工程标识'));
|
|
85
|
+
if (platformColIdx < 0)
|
|
86
|
+
platformColIdx = 0; // 兜底:取第 1 列
|
|
87
|
+
continue; // 表头行本身不是数据
|
|
88
|
+
}
|
|
89
|
+
// 数据行:取端名列
|
|
90
|
+
if (cells.length > platformColIdx) {
|
|
91
|
+
const platformName = cells[platformColIdx].trim();
|
|
92
|
+
if (platformName) {
|
|
78
93
|
platforms.add(platformName);
|
|
79
94
|
}
|
|
80
95
|
}
|
|
@@ -91,15 +106,15 @@ async function parsePlatformList() {
|
|
|
91
106
|
}
|
|
92
107
|
if (headerIdx >= 0) {
|
|
93
108
|
const headers = lines[headerIdx].split('|').map(h => h.trim()).filter(Boolean);
|
|
94
|
-
const
|
|
95
|
-
if (
|
|
109
|
+
const colIdx = headers.findIndex(h => h.includes('对应需求端') || h.includes('对应端'));
|
|
110
|
+
if (colIdx >= 0) {
|
|
96
111
|
for (let i = headerIdx + 1; i < lines.length; i++) {
|
|
97
112
|
const line = lines[i].trim();
|
|
98
113
|
if (!line.startsWith('|') || line.match(/^\|\s*[-:]/))
|
|
99
114
|
continue;
|
|
100
115
|
const cells = line.split('|').map(c => c.trim()).filter(Boolean);
|
|
101
|
-
if (cells[
|
|
102
|
-
cells[
|
|
116
|
+
if (cells[colIdx]) {
|
|
117
|
+
cells[colIdx].split(',').forEach((p) => {
|
|
103
118
|
const trimmed = p.trim();
|
|
104
119
|
if (trimmed && !trimmed.startsWith('>'))
|
|
105
120
|
platforms.add(trimmed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-paths.js","sourceRoot":"","sources":["../../src/core/spec-paths.ts"],"names":[],"mappings":";;;AAuBA,sDAMC;AAMD,kDAIC;AAOD,
|
|
1
|
+
{"version":3,"file":"spec-paths.js","sourceRoot":"","sources":["../../src/core/spec-paths.ts"],"names":[],"mappings":"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"}
|