speccore 1.0.1 → 4.0.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/README.en.md +131 -312
- package/README.md +134 -292
- package/dist/cli.js +46 -8
- package/dist/cli.js.map +1 -1
- package/dist/commands/context.d.ts +8 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +180 -0
- package/dist/commands/context.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 +18 -0
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/import.d.ts +3 -0
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +24 -6
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/index-update.d.ts +8 -0
- package/dist/commands/index-update.d.ts.map +1 -0
- package/dist/commands/index-update.js +180 -0
- package/dist/commands/index-update.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +40 -152
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/new-task.d.ts +15 -0
- package/dist/commands/new-task.d.ts.map +1 -0
- package/dist/commands/new-task.js +208 -0
- package/dist/commands/new-task.js.map +1 -0
- package/dist/commands/platform-add.d.ts +12 -0
- package/dist/commands/platform-add.d.ts.map +1 -0
- package/dist/commands/platform-add.js +111 -0
- package/dist/commands/platform-add.js.map +1 -0
- package/dist/commands/progress.d.ts +1 -0
- package/dist/commands/progress.d.ts.map +1 -1
- package/dist/commands/progress.js +3 -2
- package/dist/commands/progress.js.map +1 -1
- package/dist/core/intent-recognition.d.ts +3 -3
- package/dist/core/intent-recognition.d.ts.map +1 -1
- package/dist/core/intent-recognition.js +41 -2
- package/dist/core/intent-recognition.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* index-update — 扫描 GLOBAL/PROJECTS/ 下所有项目需求,自动重建 GLOBAL/INDEX.md
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.indexUpdateCommand = indexUpdateCommand;
|
|
7
|
+
const fs_extra_1 = require("fs-extra");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const logger_1 = require("../utils/logger");
|
|
10
|
+
const global_layer_1 = require("../core/global-layer");
|
|
11
|
+
async function indexUpdateCommand(options) {
|
|
12
|
+
const spinner = new logger_1.Spinner('Scanning requirements and rebuilding index');
|
|
13
|
+
spinner.start();
|
|
14
|
+
try {
|
|
15
|
+
const globalDir = (0, path_1.join)(process.cwd(), '.speccore', 'GLOBAL');
|
|
16
|
+
if (!(await (0, fs_extra_1.pathExists)(globalDir))) {
|
|
17
|
+
spinner.fail('Global layer not initialized. Run: speccore init');
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const projectsDir = (0, path_1.join)(globalDir, 'PROJECTS');
|
|
21
|
+
if (!(await (0, fs_extra_1.pathExists)(projectsDir))) {
|
|
22
|
+
spinner.fail('No projects found in GLOBAL/PROJECTS/');
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const index = await (0, global_layer_1.readGlobalIndex)();
|
|
26
|
+
const today = new Date().toISOString().split('T')[0];
|
|
27
|
+
// 扫描所有项目
|
|
28
|
+
const projects = await scanAllProjects(projectsDir);
|
|
29
|
+
// 收集所有需求
|
|
30
|
+
const allReqs = [];
|
|
31
|
+
let totalReqs = 0;
|
|
32
|
+
let newReqs = 0;
|
|
33
|
+
let updatedReqs = 0;
|
|
34
|
+
const currentReqIds = new Set();
|
|
35
|
+
for (const proj of projects) {
|
|
36
|
+
// 提取 REQ-XXX 条目
|
|
37
|
+
const reqContent = await (0, fs_extra_1.readFile)((0, path_1.join)(projectsDir, proj, 'REQUIREMENT.md'), 'utf-8');
|
|
38
|
+
const reqMatches = reqContent.matchAll(/### (REQ-\d+).*\n([\s\S]*?)(?=### REQ-\d+|$)/g);
|
|
39
|
+
for (const match of reqMatches) {
|
|
40
|
+
const reqId = match[1];
|
|
41
|
+
const reqBody = match[2];
|
|
42
|
+
currentReqIds.add(reqId);
|
|
43
|
+
totalReqs++;
|
|
44
|
+
// 从 GLOBAL/INDEX 查找现有状态
|
|
45
|
+
const existingEntry = index.reqs?.find((r) => r.id === reqId);
|
|
46
|
+
const name = extractField(reqBody, '需求名称') || proj;
|
|
47
|
+
const status = extractField(reqBody, '状态') || '📝 待开发';
|
|
48
|
+
const version = extractField(reqBody, '版本') || 'v1.0';
|
|
49
|
+
allReqs.push({ id: reqId, project: proj, name, status, version });
|
|
50
|
+
if (!existingEntry) {
|
|
51
|
+
newReqs++;
|
|
52
|
+
}
|
|
53
|
+
else if (existingEntry.status !== status ||
|
|
54
|
+
existingEntry.name !== name) {
|
|
55
|
+
updatedReqs++;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// 重建 INDEX.md
|
|
60
|
+
if (!options.dryRun) {
|
|
61
|
+
await rebuildIndex(globalDir, allReqs, projects, totalReqs, today);
|
|
62
|
+
}
|
|
63
|
+
spinner.stop(options.dryRun ? 'Dry run completed (no changes made)' : 'Index rebuilt successfully');
|
|
64
|
+
logger_1.logger.info('');
|
|
65
|
+
logger_1.logger.info('📊 扫描结果:');
|
|
66
|
+
logger_1.logger.info(` 项目数:${projects.length} 个`);
|
|
67
|
+
logger_1.logger.info(` 需求数:${totalReqs} 条`);
|
|
68
|
+
if (!options.dryRun) {
|
|
69
|
+
logger_1.logger.info(` 新增需求:${newReqs} 条`);
|
|
70
|
+
logger_1.logger.info(` 状态更新:${updatedReqs} 条`);
|
|
71
|
+
logger_1.logger.info('');
|
|
72
|
+
logger_1.logger.info('✅ GLOBAL/INDEX.md 已更新!');
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
logger_1.logger.info('');
|
|
76
|
+
logger_1.logger.info('💡 预览模式(--dry-run),索引未被实际修改。');
|
|
77
|
+
logger_1.logger.info(' 去除 --dry-run 执行实际更新。');
|
|
78
|
+
}
|
|
79
|
+
// 列出项目摘要
|
|
80
|
+
logger_1.logger.info('');
|
|
81
|
+
logger_1.logger.info('📁 项目摘要:');
|
|
82
|
+
for (const proj of projects) {
|
|
83
|
+
const reqCount = allReqs.filter((r) => r.project === proj).length;
|
|
84
|
+
logger_1.logger.info(` - ${proj}: ${reqCount} 个需求`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
spinner.fail(`Index update failed: ${error}`);
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* 扫描 GLOBAL/PROJECTS/ 下所有项目
|
|
94
|
+
*/
|
|
95
|
+
async function scanAllProjects(projectsDir) {
|
|
96
|
+
const projects = [];
|
|
97
|
+
if (!(await (0, fs_extra_1.pathExists)(projectsDir)))
|
|
98
|
+
return projects;
|
|
99
|
+
const entries = await (0, fs_extra_1.readdir)(projectsDir, { withFileTypes: true });
|
|
100
|
+
for (const entry of entries) {
|
|
101
|
+
if (entry.isDirectory() && !entry.name.startsWith('_')) {
|
|
102
|
+
const reqPath = (0, path_1.join)(projectsDir, entry.name, 'REQUIREMENT.md');
|
|
103
|
+
if (await (0, fs_extra_1.pathExists)(reqPath)) {
|
|
104
|
+
projects.push(entry.name);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return projects;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* 从 markdown 正文中提取字段
|
|
112
|
+
*/
|
|
113
|
+
function extractField(body, field) {
|
|
114
|
+
const patterns = [
|
|
115
|
+
new RegExp(`\\*\\*${field}\\*\\*\\s*[::]\\s*([^\\n]+)`, 'i'),
|
|
116
|
+
new RegExp(`\\|\\s*${field}\\s*\\|\\s*([^\\|]+)\\|`, 'i'),
|
|
117
|
+
];
|
|
118
|
+
for (const pattern of patterns) {
|
|
119
|
+
const match = body.match(pattern);
|
|
120
|
+
if (match)
|
|
121
|
+
return match[1].trim();
|
|
122
|
+
}
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* 重建 INDEX.md
|
|
127
|
+
*/
|
|
128
|
+
async function rebuildIndex(globalDir, reqs, projects, totalReqs, today) {
|
|
129
|
+
const indexPath = (0, path_1.join)(globalDir, 'INDEX.md');
|
|
130
|
+
// 按需求 ID 排序
|
|
131
|
+
reqs.sort((a, b) => a.id.localeCompare(b.id));
|
|
132
|
+
let content = `# 全量需求索引(Global Catalog)
|
|
133
|
+
|
|
134
|
+
> 本文件是需求定位的"地图"。具体需求内容请查看各项目的 \`PROJECTS/{项目名}/REQUIREMENT.md\`。
|
|
135
|
+
> 本文件由 \`speccore import\` 和 \`speccore index-update\` 自动维护,请勿手动编辑。
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 需求索引
|
|
140
|
+
|
|
141
|
+
| 需求 ID | 项目 | 需求名称 | 状态 | 版本 | 文件路径 |
|
|
142
|
+
| :--- | :--- | :--- | :--- | :--- | :--- |
|
|
143
|
+
`;
|
|
144
|
+
if (reqs.length === 0) {
|
|
145
|
+
content += '| _暂无需求_ | - | - | - | - | - |\n';
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
for (const req of reqs) {
|
|
149
|
+
content += `| ${req.id} | ${req.project} | ${req.name} | ${req.status} | ${req.version} | GLOBAL/PROJECTS/${req.project}/REQUIREMENT.md |\n`;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
content += `
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 项目列表
|
|
156
|
+
|
|
157
|
+
| 项目名称 | 需求数 | 状态 | 最后更新 |
|
|
158
|
+
| :--- | :--- | :--- | :--- |
|
|
159
|
+
`;
|
|
160
|
+
if (projects.length === 0) {
|
|
161
|
+
content += '| _暂无项目_ | - | - | - |\n';
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
for (const proj of projects) {
|
|
165
|
+
const reqCount = reqs.filter((r) => r.project === proj).length;
|
|
166
|
+
content += `| ${proj} | ${reqCount} | 活跃 | ${today} |\n`;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
content += `
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 版本信息
|
|
173
|
+
|
|
174
|
+
| 版本 | 日期 | 变更说明 |
|
|
175
|
+
| :--- | :--- | :--- |
|
|
176
|
+
| v1.0 | ${today} | 由 speccore index-update 自动重建 |
|
|
177
|
+
`;
|
|
178
|
+
await (0, fs_extra_1.writeFile)(indexPath, content);
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=index-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-update.js","sourceRoot":"","sources":["../../src/commands/index-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiFrE"}
|
package/dist/commands/init.js
CHANGED
|
@@ -33,12 +33,13 @@ async function initCommand(options) {
|
|
|
33
33
|
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'PATTERNS', 'TEMPLATES', 'export'));
|
|
34
34
|
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'PATTERNS', 'TEMPLATES', 'report'));
|
|
35
35
|
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'GLOBAL', 'BASELINES'));
|
|
36
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'config'));
|
|
36
37
|
// Create default files
|
|
37
38
|
await createDefaultFiles(speccoreDir);
|
|
38
39
|
// Create GLOBAL layer files
|
|
39
40
|
await createGlobalFiles(speccoreDir);
|
|
40
|
-
// Create
|
|
41
|
-
await
|
|
41
|
+
// Create config files
|
|
42
|
+
await createConfigFiles(speccoreDir);
|
|
42
43
|
// Create context.json
|
|
43
44
|
await (0, fs_extra_1.writeFile)((0, path_1.join)(speccoreDir, 'local', 'context.json'), JSON.stringify({
|
|
44
45
|
currentIteration: '',
|
|
@@ -68,9 +69,6 @@ async function initCommand(options) {
|
|
|
68
69
|
logger_1.logger.info(' 3. Run: speccore import --project=<name> --path=<path> to import projects');
|
|
69
70
|
logger_1.logger.info(' 4. Run: speccore global-status to view global layer');
|
|
70
71
|
logger_1.logger.info(' 5. Run: speccore iteration-from-global to generate iteration from requirements');
|
|
71
|
-
logger_1.logger.info('');
|
|
72
|
-
logger_1.logger.info('💡 WorkBuddy Integration: .workbuddy/ files created.');
|
|
73
|
-
logger_1.logger.info(' Reopen this project in WorkBuddy to enable Speccore commands.');
|
|
74
72
|
}
|
|
75
73
|
catch (error) {
|
|
76
74
|
spinner.fail(`Initialization failed: ${error}`);
|
|
@@ -567,154 +565,44 @@ _暂无需求,等待 \`speccore import\` 导入_
|
|
|
567
565
|
`);
|
|
568
566
|
}
|
|
569
567
|
/**
|
|
570
|
-
*
|
|
571
|
-
* 包括项目记忆文件和 Speccore skill
|
|
568
|
+
* 创建配置文件(platforms.yaml 等)
|
|
572
569
|
*/
|
|
573
|
-
async function
|
|
574
|
-
const
|
|
575
|
-
// .
|
|
576
|
-
await (0, fs_extra_1.
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
await (0, fs_extra_1.writeFile)((0, path_1.join)(workbuddyDir, 'skills', 'speccore', 'SKILL.md'), `---
|
|
610
|
-
name: speccore
|
|
611
|
-
description: SpecCore spec-driven development CLI integration. Detects .speccore/ projects and enables AI-powered requirements, iteration management, global architecture layer, and intent recognition.
|
|
612
|
-
version: 1.0.0
|
|
613
|
-
triggers:
|
|
614
|
-
- speccore
|
|
615
|
-
- spec
|
|
616
|
-
- 需求
|
|
617
|
-
- 迭代
|
|
618
|
-
- 规格
|
|
619
|
-
- 全量层
|
|
620
|
-
- 意图识别
|
|
621
|
-
- requirement
|
|
622
|
-
- iteration
|
|
623
|
-
- global layer
|
|
624
|
-
- 变更影响
|
|
625
|
-
- 基线
|
|
626
|
-
- 审计
|
|
627
|
-
---
|
|
628
|
-
|
|
629
|
-
# SpecCore — Spec-Driven Development CLI
|
|
630
|
-
|
|
631
|
-
This skill activates when the user opens a project containing a \`.speccore/\` directory, or when they mention spec-driven development, requirement management, or any Speccore command.
|
|
632
|
-
|
|
633
|
-
## Project Detection
|
|
634
|
-
|
|
635
|
-
A project is a Speccore project if \`.speccore/\` exists in the project root. Key files:
|
|
636
|
-
- \`.speccore/CONSTITUTION.md\` — tech stack constitution
|
|
637
|
-
- \`.speccore/SETTINGS.md\` — framework configuration
|
|
638
|
-
- \`.speccore/GLOBAL/INDEX.md\` — multi-project global requirement index
|
|
639
|
-
- \`.speccore/PROJECT/INDEX.md\` — local project index
|
|
640
|
-
- \`.speccore/PROJECT/TEAM.md\` — team members & git mapping
|
|
641
|
-
- \`.speccore/ITERATIONS/README.md\` — iteration index
|
|
642
|
-
- \`.speccore/RULES/POST_COMPLETION.md\` — post-completion maintenance rules
|
|
643
|
-
- \`.speccore/local/context.json\` — runtime context (current iteration, task, assignee)
|
|
644
|
-
|
|
645
|
-
## Multi-Project Global Layer
|
|
646
|
-
|
|
647
|
-
\`\`\`
|
|
648
|
-
.speccore/GLOBAL/
|
|
649
|
-
├── INDEX.md # Universal requirement catalog
|
|
650
|
-
├── OVERVIEW.md # Cross-project panorama
|
|
651
|
-
├── ARCHITECTURE.md # System architecture (mermaid)
|
|
652
|
-
├── TECH_STACK.md # Unified tech stack registry
|
|
653
|
-
├── CODE_INDEX.md # Code path mappings
|
|
654
|
-
├── GLOSSARY.md # Cross-project glossary
|
|
655
|
-
├── PROTOTYPE_INDEX.md
|
|
656
|
-
├── CHANGELOG.md # Global change log
|
|
657
|
-
├── BASELINES/ # Version baselines
|
|
658
|
-
└── PROJECTS/{proj}/ # Per-project requirements
|
|
659
|
-
\`\`\`
|
|
660
|
-
|
|
661
|
-
## Speccore Commands Quick Reference
|
|
662
|
-
|
|
663
|
-
### Setup & Import
|
|
664
|
-
- \`speccore init\` — Initialize (already done)
|
|
665
|
-
- \`speccore import --project=<name> [--type=backend|web|...] --path=<path>\` — Import source code
|
|
666
|
-
- \`speccore global-status\` — View multi-project overview
|
|
667
|
-
|
|
668
|
-
### Spec-Driven Development
|
|
669
|
-
- \`speccore spec "<natural language>"\` — Smart entry via intent recognition
|
|
670
|
-
- \`speccore goal --name="<name>" [--iteration=<it>]\` — Create new requirement
|
|
671
|
-
|
|
672
|
-
### Iteration Management
|
|
673
|
-
- \`speccore iteration create --name="<name>" [--goal=<goal>]\` — Start iteration
|
|
674
|
-
- \`speccore iteration-from-global [--project=<name>]\` — Generate from global layer
|
|
675
|
-
- \`speccore sync-global [--iteration=<name>]\` — Sync back to global
|
|
676
|
-
|
|
677
|
-
### Analysis & Quality
|
|
678
|
-
- \`speccore impact --req=<id>\` — Change impact analysis
|
|
679
|
-
- \`speccore audit [--strict]\` — Quality audit (duplicates, conflicts)
|
|
680
|
-
- \`speccore dashboard\` — HTML dashboard
|
|
681
|
-
- \`speccore history [--req=<id>]\` — Change history
|
|
682
|
-
|
|
683
|
-
### Maintenance
|
|
684
|
-
- \`speccore bugfix --title="<desc>"\` — Quick bug fix
|
|
685
|
-
- \`speccore change --req=<id> --desc="<desc>"\` — Requirement change
|
|
686
|
-
- \`speccore handover [--iteration=<name>]\` — Handover document
|
|
687
|
-
- \`speccore retro [--iteration=<name>]\` — Retrospective
|
|
688
|
-
- \`speccore rename --target=<old> --new-name=<new>\` — Rename
|
|
689
|
-
- \`speccore baseline create --name=<name>\` — Version snapshot
|
|
690
|
-
|
|
691
|
-
## Working with Speccore Projects
|
|
692
|
-
|
|
693
|
-
1. **Always read \`.speccore/local/context.json\` first** to understand current state
|
|
694
|
-
2. **Before creating specs**, read \`.speccore/CONSTITUTION.md\` for conventions
|
|
695
|
-
3. **For multi-project work**, check \`.speccore/GLOBAL/INDEX.md\`
|
|
696
|
-
4. **Run commands directly** using \`speccore\` CLI
|
|
697
|
-
5. **After changes**, suggest running sync or audit
|
|
698
|
-
|
|
699
|
-
## Quick Aliases
|
|
700
|
-
|
|
701
|
-
| Alias | Command |
|
|
702
|
-
|-------|---------|
|
|
703
|
-
| in | init |
|
|
704
|
-
| imp | import |
|
|
705
|
-
| it | iteration |
|
|
706
|
-
| ex | expand |
|
|
707
|
-
| pl | plan |
|
|
708
|
-
| pg | program |
|
|
709
|
-
| ch | create |
|
|
710
|
-
| if | impact |
|
|
711
|
-
| bl | baseline |
|
|
712
|
-
| db | dashboard |
|
|
713
|
-
| ad | audit |
|
|
714
|
-
| sg | sync-global |
|
|
715
|
-
| gs | global-status |
|
|
716
|
-
| hs | history |
|
|
717
|
-
| ifg | iteration-from-global |
|
|
570
|
+
async function createConfigFiles(speccoreDir) {
|
|
571
|
+
const configDir = (0, path_1.join)(speccoreDir, 'config');
|
|
572
|
+
// platforms.yaml — 前端平台配置
|
|
573
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(configDir, 'platforms.yaml'), `# 前端平台配置
|
|
574
|
+
# 由 speccore platform-add 自动维护,也可手动编辑
|
|
575
|
+
|
|
576
|
+
platforms:
|
|
577
|
+
web:
|
|
578
|
+
name: "Web端"
|
|
579
|
+
description: "PC Web 端"
|
|
580
|
+
default: true
|
|
581
|
+
tech_stack: "Vue 3 + TypeScript + Vite"
|
|
582
|
+
enabled: true
|
|
583
|
+
|
|
584
|
+
h5:
|
|
585
|
+
name: "H5端"
|
|
586
|
+
description: "移动端 H5"
|
|
587
|
+
default: true
|
|
588
|
+
tech_stack: "Vue 3 + Vant + Vite"
|
|
589
|
+
enabled: true
|
|
590
|
+
|
|
591
|
+
miniapp:
|
|
592
|
+
name: "小程序端"
|
|
593
|
+
description: "微信小程序"
|
|
594
|
+
default: true
|
|
595
|
+
tech_stack: "Taro + TypeScript"
|
|
596
|
+
enabled: true
|
|
597
|
+
|
|
598
|
+
# 用户动态添加的平台会追加在此
|
|
599
|
+
# 示例:
|
|
600
|
+
# tablet:
|
|
601
|
+
# name: "平板端"
|
|
602
|
+
# description: "平板端应用"
|
|
603
|
+
# default: false
|
|
604
|
+
# tech_stack: "React Native"
|
|
605
|
+
# enabled: true
|
|
718
606
|
`);
|
|
719
607
|
}
|
|
720
608
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;AAUA,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* new-task — 创建单个原子任务,支持多平台
|
|
3
|
+
* 支持 --platforms 参数指定前端平台,--backend-only / --frontend-only
|
|
4
|
+
*/
|
|
5
|
+
export interface NewTaskOptions {
|
|
6
|
+
name: string;
|
|
7
|
+
type?: string;
|
|
8
|
+
desc?: string;
|
|
9
|
+
platforms?: string;
|
|
10
|
+
backendOnly?: boolean;
|
|
11
|
+
frontendOnly?: boolean;
|
|
12
|
+
iteration?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function newTaskCommand(options: NewTaskOptions): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=new-task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new-task.d.ts","sourceRoot":"","sources":["../../src/commands/new-task.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAoF3E"}
|