speccore 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +401 -0
- package/README.md +401 -0
- package/bin/speccore +2 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +450 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/archive.d.ts +10 -0
- package/dist/commands/archive.d.ts.map +1 -0
- package/dist/commands/archive.js +138 -0
- package/dist/commands/archive.js.map +1 -0
- package/dist/commands/audit.d.ts +10 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +278 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/baseline.d.ts +13 -0
- package/dist/commands/baseline.d.ts.map +1 -0
- package/dist/commands/baseline.js +227 -0
- package/dist/commands/baseline.js.map +1 -0
- package/dist/commands/bugfix.d.ts +13 -0
- package/dist/commands/bugfix.d.ts.map +1 -0
- package/dist/commands/bugfix.js +181 -0
- package/dist/commands/bugfix.js.map +1 -0
- package/dist/commands/change.d.ts +14 -0
- package/dist/commands/change.d.ts.map +1 -0
- package/dist/commands/change.js +150 -0
- package/dist/commands/change.js.map +1 -0
- package/dist/commands/config.d.ts +7 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +110 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/dashboard.d.ts +9 -0
- package/dist/commands/dashboard.d.ts.map +1 -0
- package/dist/commands/dashboard.js +209 -0
- package/dist/commands/dashboard.js.map +1 -0
- package/dist/commands/demo.d.ts +10 -0
- package/dist/commands/demo.d.ts.map +1 -0
- package/dist/commands/demo.js +151 -0
- package/dist/commands/demo.js.map +1 -0
- package/dist/commands/execute.d.ts +18 -0
- package/dist/commands/execute.d.ts.map +1 -0
- package/dist/commands/execute.js +127 -0
- package/dist/commands/execute.js.map +1 -0
- package/dist/commands/global-status.d.ts +9 -0
- package/dist/commands/global-status.d.ts.map +1 -0
- package/dist/commands/global-status.js +135 -0
- package/dist/commands/global-status.js.map +1 -0
- package/dist/commands/goal.d.ts +15 -0
- package/dist/commands/goal.d.ts.map +1 -0
- package/dist/commands/goal.js +282 -0
- package/dist/commands/goal.js.map +1 -0
- package/dist/commands/handover.d.ts +11 -0
- package/dist/commands/handover.d.ts.map +1 -0
- package/dist/commands/handover.js +169 -0
- package/dist/commands/handover.js.map +1 -0
- package/dist/commands/health.d.ts +7 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +80 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/help.d.ts +10 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +93 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/history.d.ts +9 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +87 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/impact.d.ts +12 -0
- package/dist/commands/impact.d.ts.map +1 -0
- package/dist/commands/impact.js +238 -0
- package/dist/commands/impact.js.map +1 -0
- package/dist/commands/import.d.ts +15 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +366 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +564 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/iteration/create.d.ts +7 -0
- package/dist/commands/iteration/create.d.ts.map +1 -0
- package/dist/commands/iteration/create.js +141 -0
- package/dist/commands/iteration/create.js.map +1 -0
- package/dist/commands/iteration/split.d.ts +9 -0
- package/dist/commands/iteration/split.d.ts.map +1 -0
- package/dist/commands/iteration/split.js +165 -0
- package/dist/commands/iteration/split.js.map +1 -0
- package/dist/commands/iteration-from-global.d.ts +11 -0
- package/dist/commands/iteration-from-global.d.ts.map +1 -0
- package/dist/commands/iteration-from-global.js +294 -0
- package/dist/commands/iteration-from-global.js.map +1 -0
- package/dist/commands/plan.d.ts +12 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +126 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/progress.d.ts +10 -0
- package/dist/commands/progress.d.ts.map +1 -0
- package/dist/commands/progress.js +89 -0
- package/dist/commands/progress.js.map +1 -0
- package/dist/commands/rename.d.ts +14 -0
- package/dist/commands/rename.d.ts.map +1 -0
- package/dist/commands/rename.js +298 -0
- package/dist/commands/rename.js.map +1 -0
- package/dist/commands/report.d.ts +10 -0
- package/dist/commands/report.d.ts.map +1 -0
- package/dist/commands/report.js +124 -0
- package/dist/commands/report.js.map +1 -0
- package/dist/commands/research.d.ts +14 -0
- package/dist/commands/research.d.ts.map +1 -0
- package/dist/commands/research.js +181 -0
- package/dist/commands/research.js.map +1 -0
- package/dist/commands/retro.d.ts +10 -0
- package/dist/commands/retro.d.ts.map +1 -0
- package/dist/commands/retro.js +130 -0
- package/dist/commands/retro.js.map +1 -0
- package/dist/commands/spec.d.ts +8 -0
- package/dist/commands/spec.d.ts.map +1 -0
- package/dist/commands/spec.js +155 -0
- package/dist/commands/spec.js.map +1 -0
- package/dist/commands/status.d.ts +7 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +48 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sync-global.d.ts +13 -0
- package/dist/commands/sync-global.d.ts.map +1 -0
- package/dist/commands/sync-global.js +218 -0
- package/dist/commands/sync-global.js.map +1 -0
- package/dist/commands/sync.d.ts +13 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +170 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/task/new.d.ts +13 -0
- package/dist/commands/task/new.d.ts.map +1 -0
- package/dist/commands/task/new.js +195 -0
- package/dist/commands/task/new.js.map +1 -0
- package/dist/commands/template-add.d.ts +12 -0
- package/dist/commands/template-add.d.ts.map +1 -0
- package/dist/commands/template-add.js +65 -0
- package/dist/commands/template-add.js.map +1 -0
- package/dist/commands/validate.d.ts +10 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +37 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/welcome.d.ts +9 -0
- package/dist/commands/welcome.d.ts.map +1 -0
- package/dist/commands/welcome.js +166 -0
- package/dist/commands/welcome.js.map +1 -0
- package/dist/core/context.d.ts +31 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +145 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/global-layer.d.ts +124 -0
- package/dist/core/global-layer.d.ts.map +1 -0
- package/dist/core/global-layer.js +456 -0
- package/dist/core/global-layer.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +24 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/intent-recognition.d.ts +48 -0
- package/dist/core/intent-recognition.d.ts.map +1 -0
- package/dist/core/intent-recognition.js +485 -0
- package/dist/core/intent-recognition.js.map +1 -0
- package/dist/core/state.d.ts +26 -0
- package/dist/core/state.d.ts.map +1 -0
- package/dist/core/state.js +187 -0
- package/dist/core/state.js.map +1 -0
- package/dist/core/template-engine.d.ts +28 -0
- package/dist/core/template-engine.d.ts.map +1 -0
- package/dist/core/template-engine.js +57 -0
- package/dist/core/template-engine.js.map +1 -0
- package/dist/core/validator.d.ts +26 -0
- package/dist/core/validator.d.ts.map +1 -0
- package/dist/core/validator.js +246 -0
- package/dist/core/validator.js.map +1 -0
- package/dist/core/yaml-parser.d.ts +25 -0
- package/dist/core/yaml-parser.d.ts.map +1 -0
- package/dist/core/yaml-parser.js +113 -0
- package/dist/core/yaml-parser.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/file.d.ts +29 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/file.js +126 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/git.d.ts +25 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +77 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/logger.d.ts +41 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +184 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,564 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initCommand = initCommand;
|
|
4
|
+
const fs_extra_1 = require("fs-extra");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const logger_1 = require("../utils/logger");
|
|
7
|
+
const context_1 = require("../core/context");
|
|
8
|
+
async function initCommand(options) {
|
|
9
|
+
const spinner = new logger_1.Spinner('Initializing SpecCore');
|
|
10
|
+
spinner.start();
|
|
11
|
+
try {
|
|
12
|
+
const projectRoot = process.cwd();
|
|
13
|
+
const speccoreDir = (0, path_1.join)(projectRoot, '.speccore');
|
|
14
|
+
// Check if already initialized
|
|
15
|
+
if (await (0, fs_extra_1.pathExists)(speccoreDir)) {
|
|
16
|
+
if (!options.force) {
|
|
17
|
+
spinner.fail('SpecCore already initialized. Use --force to overwrite.');
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
spinner.stop('Overwriting existing configuration...');
|
|
21
|
+
}
|
|
22
|
+
// Create directory structure
|
|
23
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'PROJECT'));
|
|
24
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'PATTERNS'));
|
|
25
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'ITERATIONS'));
|
|
26
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'RULES'));
|
|
27
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'local'));
|
|
28
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'GLOBAL'));
|
|
29
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'GLOBAL', 'PROJECTS'));
|
|
30
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'GLOBAL', 'PROJECTS', '_template'));
|
|
31
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'PATTERNS', 'TEMPLATES', 'crud'));
|
|
32
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'PATTERNS', 'TEMPLATES', 'auth'));
|
|
33
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'PATTERNS', 'TEMPLATES', 'export'));
|
|
34
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'PATTERNS', 'TEMPLATES', 'report'));
|
|
35
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(speccoreDir, 'GLOBAL', 'BASELINES'));
|
|
36
|
+
// Create default files
|
|
37
|
+
await createDefaultFiles(speccoreDir);
|
|
38
|
+
// Create GLOBAL layer files
|
|
39
|
+
await createGlobalFiles(speccoreDir);
|
|
40
|
+
// Create context.json
|
|
41
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(speccoreDir, 'local', 'context.json'), JSON.stringify({
|
|
42
|
+
currentIteration: '',
|
|
43
|
+
currentTask: '',
|
|
44
|
+
currentAssignee: '',
|
|
45
|
+
lastUpdated: new Date().toISOString(),
|
|
46
|
+
lastAction: '',
|
|
47
|
+
lastIntent: '',
|
|
48
|
+
interruptedAt: '',
|
|
49
|
+
iterationStatus: '',
|
|
50
|
+
pendingTasks: 0,
|
|
51
|
+
inProgressTasks: 0,
|
|
52
|
+
completedTasks: 0,
|
|
53
|
+
blockedTasks: 0,
|
|
54
|
+
customAliases: {},
|
|
55
|
+
history: []
|
|
56
|
+
}, null, 2));
|
|
57
|
+
// Create .gitignore entry
|
|
58
|
+
await updateGitignore(projectRoot);
|
|
59
|
+
// Update context
|
|
60
|
+
await (0, context_1.updateContext)({ lastUpdated: new Date().toISOString() });
|
|
61
|
+
spinner.stop('SpecCore initialized successfully!');
|
|
62
|
+
logger_1.logger.info('');
|
|
63
|
+
logger_1.logger.info('Next steps:');
|
|
64
|
+
logger_1.logger.info(' 1. Edit .speccore/CONSTITUTION.md to define your tech stack');
|
|
65
|
+
logger_1.logger.info(' 2. Edit .speccore/PROJECT/TEAM.md to add team members');
|
|
66
|
+
logger_1.logger.info(' 3. Run: speccore import --project=<name> --path=<path> to import projects');
|
|
67
|
+
logger_1.logger.info(' 4. Run: speccore global-status to view global layer');
|
|
68
|
+
logger_1.logger.info(' 5. Run: speccore iteration-from-global to generate iteration from requirements');
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
spinner.fail(`Initialization failed: ${error}`);
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async function createDefaultFiles(speccoreDir) {
|
|
76
|
+
// CONSTITUTION.md
|
|
77
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(speccoreDir, 'CONSTITUTION.md'), `# 技术宪法
|
|
78
|
+
|
|
79
|
+
> 本项目遵循 SpecCore 框架规范
|
|
80
|
+
|
|
81
|
+
## 技术栈
|
|
82
|
+
|
|
83
|
+
### 后端
|
|
84
|
+
- 语言:Java / TypeScript / Go / Python
|
|
85
|
+
- 框架:Spring Boot / NestJS / Gin / FastAPI
|
|
86
|
+
- 数据库:MySQL / PostgreSQL / MongoDB
|
|
87
|
+
- 缓存:Redis
|
|
88
|
+
|
|
89
|
+
### 前端
|
|
90
|
+
- 框架:Vue / React / Angular
|
|
91
|
+
- 状态管理:Pinia / Redux / NgRx
|
|
92
|
+
- UI 组件:Element Plus / Ant Design
|
|
93
|
+
|
|
94
|
+
## 命名规范
|
|
95
|
+
- 接口:/api/v1/{模块}/{操作}
|
|
96
|
+
- 错误码:4 位数字,按模块划分
|
|
97
|
+
- 数据库:snake_case
|
|
98
|
+
- 代码:camelCase / PascalCase
|
|
99
|
+
|
|
100
|
+
## 异常码体系
|
|
101
|
+
| 错误码 | 含义 | 场景 |
|
|
102
|
+
| :--- | :--- | :--- |
|
|
103
|
+
| 1001 | 用户不存在 | 登录时手机号未注册 |
|
|
104
|
+
| 1002 | 密码错误 | 登录密码不匹配 |
|
|
105
|
+
| ... | ... | ... |
|
|
106
|
+
`);
|
|
107
|
+
// PROJECT files
|
|
108
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(speccoreDir, 'PROJECT', 'INDEX.md'), `# 项目索引
|
|
109
|
+
|
|
110
|
+
## 项目概览
|
|
111
|
+
- 项目名称:
|
|
112
|
+
- 项目代号:
|
|
113
|
+
- 创建日期:
|
|
114
|
+
|
|
115
|
+
## 目录结构
|
|
116
|
+
- [OVERVIEW.md](OVERVIEW.md) - 项目全景
|
|
117
|
+
- [REQUIREMENT.md](REQUIREMENT.md) - 项目级需求
|
|
118
|
+
- [ARCHITECTURE.md](ARCHITECTURE.md) - 项目级架构
|
|
119
|
+
- [TEAM.md](TEAM.md) - 团队与 Git 映射
|
|
120
|
+
- [GLOSSARY.md](GLOSSARY.md) - 术语表
|
|
121
|
+
`);
|
|
122
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(speccoreDir, 'PROJECT', 'TEAM.md'), `# 团队与 Git 映射
|
|
123
|
+
|
|
124
|
+
| 成员 | Git 用户名 | 角色 | 技术栈 | 负责模块 |
|
|
125
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
126
|
+
| | | | | |
|
|
127
|
+
`);
|
|
128
|
+
// ITERATIONS/README.md
|
|
129
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(speccoreDir, 'ITERATIONS', 'README.md'), `# 期次索引
|
|
130
|
+
|
|
131
|
+
| 期次名称 | 时间范围 | 状态 | 负责人 | 备注 |
|
|
132
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
133
|
+
| | | | | |
|
|
134
|
+
`);
|
|
135
|
+
// SETTINGS.md
|
|
136
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(speccoreDir, 'SETTINGS.md'), `# SpecCore 框架配置
|
|
137
|
+
|
|
138
|
+
> 修改后,AI 将在下一次执行命令时自动生效。
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 1. 执行人追踪(Assignee Tracking)
|
|
143
|
+
|
|
144
|
+
| 配置项 | 可选值 | 默认值 | 说明 |
|
|
145
|
+
| :--- | :--- | :--- | :--- |
|
|
146
|
+
| \`assignee.enabled\` | \`true\`/\`false\` | \`true\` | 是否启用执行人追踪 |
|
|
147
|
+
| \`assignee.mode\` | \`strict\`/\`loose\`/\`off\` | \`loose\` | 强制程度 |
|
|
148
|
+
|
|
149
|
+
### 模式说明
|
|
150
|
+
| 模式 | 行为 |
|
|
151
|
+
| :--- | :--- |
|
|
152
|
+
| **\`strict\`** | 校验执行人与 Git 提交者,不一致时阻断命令执行 |
|
|
153
|
+
| **\`loose\`** | 自动填写 Git 提交者,仅发出警告(推荐) |
|
|
154
|
+
| **\`off\`** | 不读取、不校验、不推荐任何人 |
|
|
155
|
+
|
|
156
|
+
## 2. 双向追溯配置
|
|
157
|
+
|
|
158
|
+
| 配置项 | 可选值 | 默认值 | 说明 |
|
|
159
|
+
| :--- | :--- | :--- | :--- |
|
|
160
|
+
| \`trace.enabled\` | \`true\`/\`false\` | \`true\` | 是否启用双向追溯 |
|
|
161
|
+
| \`trace.auto_annotate\` | \`true\`/\`false\` | \`true\` | 生成代码时是否自动添加 @spec 注释 |
|
|
162
|
+
|
|
163
|
+
## 3. 其他配置
|
|
164
|
+
|
|
165
|
+
| 配置项 | 可选值 | 默认值 | 说明 |
|
|
166
|
+
| :--- | :--- | :--- | :--- |
|
|
167
|
+
| \`archive.auto_cleanup\` | \`true\`/\`false\` | \`false\` | 归档时是否自动清理未使用的资源 |
|
|
168
|
+
| \`plan.parallel_suggest\` | \`true\`/\`false\` | \`true\` | 是否自动推荐并行开发策略 |
|
|
169
|
+
| \`validation.strict_mode\` | \`true\`/\`false\` | \`false\` | 合规性检查是否为严格模式 |
|
|
170
|
+
| \`sync.auto_check\` | \`true\`/\`false\` | \`true\` | 开发完成后是否自动检查反向同步 |
|
|
171
|
+
| \`review.check_assignee\` | \`true\`/\`false\` | \`false\` | 审查时是否检查执行人签名 |
|
|
172
|
+
|
|
173
|
+
## 4. 配置变更记录
|
|
174
|
+
|
|
175
|
+
| 日期 | 变更项 | 旧值 | 新值 | 变更人 |
|
|
176
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
177
|
+
`);
|
|
178
|
+
// CODE_REVIEW.md
|
|
179
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(speccoreDir, 'RULES', 'CODE_REVIEW.md'), `# 代码审查规则
|
|
180
|
+
|
|
181
|
+
## 审查维度
|
|
182
|
+
1. 规范遵循
|
|
183
|
+
2. 代码质量
|
|
184
|
+
3. 测试覆盖
|
|
185
|
+
4. 性能指标
|
|
186
|
+
5. 安全性
|
|
187
|
+
|
|
188
|
+
## 评分标准
|
|
189
|
+
| 等级 | 分数 | 说明 |
|
|
190
|
+
| :--- | :--- | :--- |
|
|
191
|
+
| A | 90-100 | 优秀 |
|
|
192
|
+
| B | 75-89 | 良好 |
|
|
193
|
+
| C | 60-74 | 合格 |
|
|
194
|
+
| D | <60 | 不合格 |
|
|
195
|
+
`);
|
|
196
|
+
// POST_COMPLETION.md (Feature 完成后的维护流程)
|
|
197
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(speccoreDir, 'RULES', 'POST_COMPLETION.md'), `# Feature 完成后的维护流程
|
|
198
|
+
|
|
199
|
+
> 当 Feature 已签署 ✅ 已完成 后,本文件定义其线上运行与维护期的标准流程。
|
|
200
|
+
|
|
201
|
+
## 1. Feature 状态扩展
|
|
202
|
+
|
|
203
|
+
| 状态 | 图标 | 含义 | 触发条件 |
|
|
204
|
+
| :--- | :--- | :--- | :--- |
|
|
205
|
+
| 已完成 | ✅ | Spec 与代码完全对齐,已上线 | 开发完成 + 验收通过 |
|
|
206
|
+
| 待反向同步 | ⚠️ | 代码已改但 Spec 未同步 | 紧急补丁后 |
|
|
207
|
+
| 维护中 | 🔄 | 正在回归或功能增强 | 分配维护任务后 |
|
|
208
|
+
| 已废弃 | 🚫 | 功能下线,不再维护 | 业务下线 + 代码移除 |
|
|
209
|
+
|
|
210
|
+
## 2. 补丁反向同步流程(⚠️ → ✅)
|
|
211
|
+
|
|
212
|
+
1. AI 读取当前代码,对比 Spec 文件,生成差异报告
|
|
213
|
+
2. 逐项更新:REQ.md、API_CONTRACT.yaml、TASK.md
|
|
214
|
+
3. 更新变更履历
|
|
215
|
+
4. 更新 PROJECT_GRAPH.md 状态
|
|
216
|
+
|
|
217
|
+
## 3. Bug 修复流程(✅ → 🔄 → ✅)
|
|
218
|
+
|
|
219
|
+
1. 标记状态为 🔄 维护中
|
|
220
|
+
2. 根因分析 → 追加到 TASK.md「线上问题记录」
|
|
221
|
+
3. 沉淀到 PATTERNS/ 模式库
|
|
222
|
+
4. 回归验证 → 恢复状态到 ✅
|
|
223
|
+
|
|
224
|
+
## 4. 功能增强流程(✅ → 🔄 → ✅)
|
|
225
|
+
|
|
226
|
+
1. 标记状态为 🔄 维护中
|
|
227
|
+
2. 在 REQ.md 追加新需求
|
|
228
|
+
3. 更新 API_CONTRACT.yaml
|
|
229
|
+
4. 更新 TASK.md 和 E2E-TEST-SPEC.md
|
|
230
|
+
5. 完成后改回 ✅
|
|
231
|
+
|
|
232
|
+
## 5. 功能下线流程(✅ → 🚫)
|
|
233
|
+
|
|
234
|
+
1. 状态改为 🚫 已废弃
|
|
235
|
+
2. PATTERNS/ 标记相关模式为「仅作历史参考」
|
|
236
|
+
3. 代码保留至少一个迭代周期
|
|
237
|
+
4. 最后一个周期后删除代码和 Spec
|
|
238
|
+
|
|
239
|
+
## 6. 维护检查清单
|
|
240
|
+
|
|
241
|
+
- [ ] 是否已更新所有受影响的 Spec 文件?
|
|
242
|
+
- [ ] 是否已在变更履历中追加记录?
|
|
243
|
+
- [ ] 是否已更新 PROJECT_GRAPH.md 状态?
|
|
244
|
+
- [ ] 是否已沉淀到 PATTERNS/ 模式库?
|
|
245
|
+
- [ ] 是否已回归 E2E-TEST-SPEC.md 测试场景?
|
|
246
|
+
|
|
247
|
+
若有任何一项为"否",不得将状态改回 ✅ 已完成。
|
|
248
|
+
`);
|
|
249
|
+
}
|
|
250
|
+
async function updateGitignore(projectRoot) {
|
|
251
|
+
const gitignorePath = (0, path_1.join)(projectRoot, '.gitignore');
|
|
252
|
+
const entry = '# SpecCore local config\n.speccore/local/\n期次-*/.local/\n';
|
|
253
|
+
if (await (0, fs_extra_1.pathExists)(gitignorePath)) {
|
|
254
|
+
const content = await (0, fs_extra_1.readFile)(gitignorePath, 'utf-8');
|
|
255
|
+
if (!content.includes('.speccore/local/')) {
|
|
256
|
+
await (0, fs_extra_1.writeFile)(gitignorePath, content + '\n' + entry);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
await (0, fs_extra_1.writeFile)(gitignorePath, entry);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* 创建 GLOBAL 全量层目录和模板文件
|
|
265
|
+
*/
|
|
266
|
+
async function createGlobalFiles(speccoreDir) {
|
|
267
|
+
const globalDir = (0, path_1.join)(speccoreDir, 'GLOBAL');
|
|
268
|
+
// GLOBAL/INDEX.md - 全量需求索引
|
|
269
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(globalDir, 'INDEX.md'), `# 全量需求索引(Global Catalog)
|
|
270
|
+
|
|
271
|
+
> 本文件是需求定位的"地图"。具体需求内容请查看各项目的 \`PROJECTS/{项目名}/REQUIREMENT.md\`。
|
|
272
|
+
> 本文件由 \`speccore import\` 和 \`speccore sync-global\` 自动维护,请勿手动编辑。
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## 需求索引
|
|
277
|
+
|
|
278
|
+
| 需求 ID | 项目 | 需求名称 | 状态 | 版本 | 关联期次 | 关联 Task | 文件路径 |
|
|
279
|
+
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
|
|
280
|
+
| _暂无需求_ | - | - | - | - | - | - | - |
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## 项目列表
|
|
285
|
+
|
|
286
|
+
| 项目名称 | 项目类型 | 需求数 | 已实现 | 进行中 | 待开发 | 最后导入 |
|
|
287
|
+
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
|
|
288
|
+
| _暂无项目_ | - | - | - | - | - | - |
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## 期次关联
|
|
293
|
+
|
|
294
|
+
| 期次名称 | 包含需求 | 状态 | 创建日期 |
|
|
295
|
+
| :--- | :--- | :--- | :--- |
|
|
296
|
+
| _暂无期次_ | - | - | - |
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## 版本信息
|
|
301
|
+
|
|
302
|
+
| 版本 | 日期 | 变更说明 |
|
|
303
|
+
| :--- | :--- | :--- |
|
|
304
|
+
| v1.0 | ${new Date().toISOString().split('T')[0]} | 初始创建 |
|
|
305
|
+
`);
|
|
306
|
+
// GLOBAL/OVERVIEW.md - 全量项目全景
|
|
307
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(globalDir, 'OVERVIEW.md'), `# 全量项目全景
|
|
308
|
+
|
|
309
|
+
> 本文档是从全局视角描述所有项目的全景视图,跨项目、跨系统的统一入口。
|
|
310
|
+
|
|
311
|
+
## 项目列表
|
|
312
|
+
|
|
313
|
+
| 项目名称 | 类型 | 状态 | 描述 |
|
|
314
|
+
| :--- | :--- | :--- | :--- |
|
|
315
|
+
| _待导入_ | - | - | - |
|
|
316
|
+
|
|
317
|
+
## 期次索引
|
|
318
|
+
|
|
319
|
+
| 期次名称 | 关联需求 | 状态 | 创建时间 |
|
|
320
|
+
| :--- | :--- | :--- | :--- |
|
|
321
|
+
| _暂无期次_ | - | - | - |
|
|
322
|
+
|
|
323
|
+
## 版本信息
|
|
324
|
+
|
|
325
|
+
- 全量层版本:v1.0
|
|
326
|
+
- 最后更新:${new Date().toISOString().split('T')[0]}
|
|
327
|
+
`);
|
|
328
|
+
// GLOBAL/ARCHITECTURE.md - 全量技术架构
|
|
329
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(globalDir, 'ARCHITECTURE.md'), `# 全量技术架构
|
|
330
|
+
|
|
331
|
+
> 本文档描述所有项目的整体技术架构,是跨项目、跨系统的全量视图。
|
|
332
|
+
|
|
333
|
+
## 系统架构图
|
|
334
|
+
|
|
335
|
+
\`\`\`mermaid
|
|
336
|
+
flowchart TB
|
|
337
|
+
subgraph "服务层"
|
|
338
|
+
direction LR
|
|
339
|
+
SVC1[服务A]
|
|
340
|
+
SVC2[服务B]
|
|
341
|
+
SVC3[服务C]
|
|
342
|
+
end
|
|
343
|
+
|
|
344
|
+
subgraph "前端层"
|
|
345
|
+
direction LR
|
|
346
|
+
WEB[Web 应用]
|
|
347
|
+
H5[H5 应用]
|
|
348
|
+
MP[小程序]
|
|
349
|
+
end
|
|
350
|
+
|
|
351
|
+
subgraph "数据层"
|
|
352
|
+
direction LR
|
|
353
|
+
DB1[(数据库A)]
|
|
354
|
+
DB2[(数据库B)]
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
WEB --> SVC1
|
|
358
|
+
WEB --> SVC2
|
|
359
|
+
H5 --> SVC1
|
|
360
|
+
H5 --> SVC2
|
|
361
|
+
MP --> SVC1
|
|
362
|
+
MP --> SVC2
|
|
363
|
+
SVC1 --> DB1
|
|
364
|
+
SVC2 --> DB2
|
|
365
|
+
\`\`\`
|
|
366
|
+
|
|
367
|
+
## 服务列表
|
|
368
|
+
|
|
369
|
+
| 服务名称 | 类型 | 技术栈 | 端口 | 描述 |
|
|
370
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
371
|
+
| _待导入_ | - | - | - | - |
|
|
372
|
+
|
|
373
|
+
## 服务间调用关系
|
|
374
|
+
|
|
375
|
+
| 调用方 | 被调用方 | 通信方式 | 说明 |
|
|
376
|
+
| :--- | :--- | :--- | :--- |
|
|
377
|
+
| _待导入_ | - | - | - |
|
|
378
|
+
|
|
379
|
+
## 跨服务数据模型
|
|
380
|
+
|
|
381
|
+
| 模型名称 | 所属服务 | 被依赖服务 | 说明 |
|
|
382
|
+
| :--- | :--- | :--- | :--- |
|
|
383
|
+
| _待导入_ | - | - | - |
|
|
384
|
+
|
|
385
|
+
## 外部依赖
|
|
386
|
+
|
|
387
|
+
| 依赖名称 | 用途 | 版本 | 说明 |
|
|
388
|
+
| :--- | :--- | :--- | :--- |
|
|
389
|
+
| _待导入_ | - | - | - |
|
|
390
|
+
`);
|
|
391
|
+
// GLOBAL/TECH_STACK.md - 全量技术栈
|
|
392
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(globalDir, 'TECH_STACK.md'), `# 全量技术栈
|
|
393
|
+
|
|
394
|
+
> 本文档汇总所有项目的技术栈信息,跨项目统一管理版本和依赖。
|
|
395
|
+
|
|
396
|
+
## 后端技术栈
|
|
397
|
+
|
|
398
|
+
| 项目名称 | 语言/框架 | ORM | 数据库 | 缓存 | 消息队列 |
|
|
399
|
+
| :--- | :--- | :--- | :--- | :--- | :--- |
|
|
400
|
+
| _待导入_ | - | - | - | - | - |
|
|
401
|
+
|
|
402
|
+
## 前端技术栈
|
|
403
|
+
|
|
404
|
+
| 项目名称 | 平台类型 | 框架 | 状态管理 | UI 库 | 构建工具 |
|
|
405
|
+
| :--- | :--- | :--- | :--- | :--- | :--- |
|
|
406
|
+
| _待导入_ | - | - | - | - | - |
|
|
407
|
+
|
|
408
|
+
## 中间件与基础设施
|
|
409
|
+
|
|
410
|
+
| 组件 | 版本 | 用途 | 使用项目 |
|
|
411
|
+
| :--- | :--- | :--- | :--- |
|
|
412
|
+
| _待导入_ | - | - | - |
|
|
413
|
+
|
|
414
|
+
## 版本兼容性矩阵
|
|
415
|
+
|
|
416
|
+
| 组件 | 当前版本 | 最新版本 | 升级建议 |
|
|
417
|
+
| :--- | :--- | :--- | :--- |
|
|
418
|
+
| _待导入_ | - | - | - |
|
|
419
|
+
`);
|
|
420
|
+
// GLOBAL/CODE_INDEX.md - 全量代码索引
|
|
421
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(globalDir, 'CODE_INDEX.md'), `# 全量代码索引
|
|
422
|
+
|
|
423
|
+
> 本文档是多工程代码路径映射,将所有项目的代码路径统一索引。
|
|
424
|
+
|
|
425
|
+
## 工程映射
|
|
426
|
+
|
|
427
|
+
| 工程名称 | 类型 | 本地路径 | Git 仓库 | 分支 |
|
|
428
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
429
|
+
| _待导入_ | - | - | - | - |
|
|
430
|
+
|
|
431
|
+
## 关键目录说明
|
|
432
|
+
|
|
433
|
+
| 工程名称 | 目录 | 说明 |
|
|
434
|
+
| :--- | :--- | :--- |
|
|
435
|
+
| _待导入_ | - | - |
|
|
436
|
+
|
|
437
|
+
## 跨工程引用
|
|
438
|
+
|
|
439
|
+
| 引用方 | 被引用方 | 引用方式 | 说明 |
|
|
440
|
+
| :--- | :--- | :--- | :--- |
|
|
441
|
+
| _待导入_ | - | - | - |
|
|
442
|
+
`);
|
|
443
|
+
// GLOBAL/PROTOTYPE_INDEX.md - 全量原型索引
|
|
444
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(globalDir, 'PROTOTYPE_INDEX.md'), `# 全量原型索引
|
|
445
|
+
|
|
446
|
+
> 本文档按平台分类管理所有设计原型。
|
|
447
|
+
|
|
448
|
+
## Web 端
|
|
449
|
+
|
|
450
|
+
| 原型名称 | 位置 | 关联需求 | 说明 |
|
|
451
|
+
| :--- | :--- | :--- | :--- |
|
|
452
|
+
| _待导入_ | - | - | - |
|
|
453
|
+
|
|
454
|
+
## H5 端
|
|
455
|
+
|
|
456
|
+
| 原型名称 | 位置 | 关联需求 | 说明 |
|
|
457
|
+
| :--- | :--- | :--- | :--- |
|
|
458
|
+
| _待导入_ | - | - | - |
|
|
459
|
+
|
|
460
|
+
## 小程序端
|
|
461
|
+
|
|
462
|
+
| 原型名称 | 位置 | 关联需求 | 说明 |
|
|
463
|
+
| :--- | :--- | :--- | :--- |
|
|
464
|
+
| _待导入_ | - | - | - |
|
|
465
|
+
`);
|
|
466
|
+
// GLOBAL/GLOSSARY.md - 全量术语表
|
|
467
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(globalDir, 'GLOSSARY.md'), `# 全量术语表
|
|
468
|
+
|
|
469
|
+
> 本文档是跨项目统一术语定义,确保团队对核心概念的理解一致。
|
|
470
|
+
|
|
471
|
+
## 业务术语
|
|
472
|
+
|
|
473
|
+
| 术语 | 英文 | 定义 | 使用场景 | 相关需求 |
|
|
474
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
475
|
+
| _待补充_ | - | - | - | - |
|
|
476
|
+
|
|
477
|
+
## 技术术语
|
|
478
|
+
|
|
479
|
+
| 术语 | 英文 | 定义 | 使用场景 | 相关项目 |
|
|
480
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
481
|
+
| _待补充_ | - | - | - | - |
|
|
482
|
+
|
|
483
|
+
## 缩写对照
|
|
484
|
+
|
|
485
|
+
| 缩写 | 全称 | 说明 |
|
|
486
|
+
| :--- | :--- | :--- |
|
|
487
|
+
| _待补充_ | - | - |
|
|
488
|
+
`);
|
|
489
|
+
// GLOBAL/CHANGELOG.md - 全量变更日志
|
|
490
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(globalDir, 'CHANGELOG.md'), `# 全量变更日志
|
|
491
|
+
|
|
492
|
+
> 本文档记录全量层的所有变更操作(导入、同步、手动修改)。
|
|
493
|
+
|
|
494
|
+
## 变更记录
|
|
495
|
+
|
|
496
|
+
| 日期 | 版本 | 操作 | 描述 | 操作者 |
|
|
497
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
498
|
+
| ${new Date().toISOString().split('T')[0]} | v1.0 | 创建 | 全量层模板初始化 | SpecCore |
|
|
499
|
+
|
|
500
|
+
## 版本说明
|
|
501
|
+
|
|
502
|
+
- **版本格式**:v{主版本}.{次版本}
|
|
503
|
+
- **主版本变更**:新增/删除项目、大范围需求重构
|
|
504
|
+
- **次版本变更**:需求条目增删改、同步操作
|
|
505
|
+
`);
|
|
506
|
+
// GLOBAL/PROJECTS/_template/REQUIREMENT.md
|
|
507
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(globalDir, 'PROJECTS', '_template', 'REQUIREMENT.md'), `# {项目名称} - 需求文档
|
|
508
|
+
|
|
509
|
+
> 本文件仅包含本项目需求。跨项目引用请通过 \`GLOBAL/INDEX.md\` 映射。
|
|
510
|
+
> 最后更新:{日期}
|
|
511
|
+
|
|
512
|
+
---
|
|
513
|
+
|
|
514
|
+
## 项目信息
|
|
515
|
+
|
|
516
|
+
| 属性 | 值 |
|
|
517
|
+
| :--- | :--- |
|
|
518
|
+
| 项目名称 | {project} |
|
|
519
|
+
| 项目类型 | {type} |
|
|
520
|
+
| 技术栈 | {tech_stack} |
|
|
521
|
+
| 负责人 | {owner} |
|
|
522
|
+
|
|
523
|
+
---
|
|
524
|
+
|
|
525
|
+
## 需求列表
|
|
526
|
+
|
|
527
|
+
_暂无需求,等待 \`speccore import\` 导入_
|
|
528
|
+
|
|
529
|
+
---
|
|
530
|
+
|
|
531
|
+
## 已废弃需求
|
|
532
|
+
|
|
533
|
+
<!-- 已废弃的需求条目移动到这里,保留完整历史 -->
|
|
534
|
+
`);
|
|
535
|
+
// GLOBAL/PROJECTS/_template/METADATA.md
|
|
536
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(globalDir, 'PROJECTS', '_template', 'METADATA.md'), `# {项目名称} - 元数据
|
|
537
|
+
|
|
538
|
+
| 属性 | 值 |
|
|
539
|
+
| :--- | :--- |
|
|
540
|
+
| 项目名称 | {project} |
|
|
541
|
+
| 项目类型 | {type} |
|
|
542
|
+
| 技术栈 | {tech_stack} |
|
|
543
|
+
| 版本 | {version} |
|
|
544
|
+
| 负责人 | {owner} |
|
|
545
|
+
| 代码仓库 | {repo_url} |
|
|
546
|
+
| 最后扫描 | {date} |
|
|
547
|
+
|
|
548
|
+
## 依赖关系
|
|
549
|
+
|
|
550
|
+
| 依赖项目 | 依赖方式 | 说明 |
|
|
551
|
+
| :--- | :--- | :--- |
|
|
552
|
+
| _待填写_ | - | - |
|
|
553
|
+
`);
|
|
554
|
+
// GLOBAL/BASELINES/README.md - 基线索引
|
|
555
|
+
await (0, fs_extra_1.writeFile)((0, path_1.join)(globalDir, 'BASELINES', 'README.md'), `# 基线索引
|
|
556
|
+
|
|
557
|
+
> 本文件记录所有创建的基线版本。
|
|
558
|
+
|
|
559
|
+
| 基线名称 | 创建时间 | 需求数 | 项目数 | 备注 |
|
|
560
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
561
|
+
| _暂无基线_ | - | - | - | - |
|
|
562
|
+
`);
|
|
563
|
+
}
|
|
564
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/iteration/create.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C3F"}
|