6aspec 3.0.0-dev.5 → 3.0.0-dev.7
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.
|
@@ -59,7 +59,7 @@ Phase 4: 任务拆解与排期
|
|
|
59
59
|
- 预估工作量在 0.5-3 人日(超过则继续拆分)
|
|
60
60
|
|
|
61
61
|
**拆解维度**(可组合使用):
|
|
62
|
-
- 按交付里程碑:契约与集成 → 数据变更 → 迁移/兼容/回滚 → 核心链路
|
|
62
|
+
- 按交付里程碑:契约与集成 → 数据变更 → 迁移/兼容/回滚 → 核心链路
|
|
63
63
|
- 按功能模块:模块A → 模块B → 模块C
|
|
64
64
|
- 按依赖关系:前置任务 → 核心任务 → 后置任务
|
|
65
65
|
- 按横切能力:Integration / Migration / Compatibility / Observability / Security
|
|
@@ -179,13 +179,6 @@ Phase 4: 任务拆解与排期
|
|
|
179
179
|
- [ ] [TASK-030: 核心业务逻辑实现(对齐 AC/Scenario)](../tasks/TASK-030.md)
|
|
180
180
|
- [ ] [TASK-031: 定时任务/事件消费/回调处理实现(如适用)](../tasks/TASK-031.md)
|
|
181
181
|
|
|
182
|
-
### M4: 集成联调与可观测性(Integration & Observability)
|
|
183
|
-
- [ ] [TASK-040: 集成联调与异常路径验证(重试/乱序/重复)](../tasks/TASK-040.md)
|
|
184
|
-
- [ ] [TASK-041: 可观测性补齐(处理记录可查、日志/指标/追踪要点)](../tasks/TASK-041.md)
|
|
185
|
-
|
|
186
|
-
### M5: 发布准备(Release)
|
|
187
|
-
- [ ] [TASK-050: 发布检查清单(灰度/回滚演练要点)](../tasks/TASK-050.md)
|
|
188
|
-
|
|
189
182
|
## 依赖关系图(示例)
|
|
190
183
|
|
|
191
184
|
```mermaid
|
|
@@ -193,8 +186,6 @@ Phase 4: 任务拆解与排期
|
|
|
193
186
|
TASK001 --> TASK010
|
|
194
187
|
TASK010 --> TASK020
|
|
195
188
|
TASK020 --> TASK030
|
|
196
|
-
TASK030 --> TASK040
|
|
197
|
-
TASK040 --> TASK050
|
|
198
189
|
```
|
|
199
190
|
|
|
200
191
|
## 工作量统计
|
|
@@ -205,8 +196,6 @@ Phase 4: 任务拆解与排期
|
|
|
205
196
|
| M1 | <n> | <x> 人日 |
|
|
206
197
|
| M2 | <n> | <x> 人日 |
|
|
207
198
|
| M3 | <n> | <x> 人日 |
|
|
208
|
-
| M4 | <n> | <x> 人日 |
|
|
209
|
-
| M5 | <n> | <x> 人日 |
|
|
210
199
|
| **总计** | **<n>** | **<x> 人日** |
|
|
211
200
|
|
|
212
201
|
## 风险清单
|
package/lib/installer.js
CHANGED
|
@@ -195,7 +195,7 @@ class Installer {
|
|
|
195
195
|
// 安装 Cursor 配置
|
|
196
196
|
installCursor() {
|
|
197
197
|
this.log('开始安装 Cursor 配置...');
|
|
198
|
-
|
|
198
|
+
|
|
199
199
|
const sourceDir = path.join(this.packageDir, '.cursor');
|
|
200
200
|
const targetDir = path.join(this.targetDir, '.cursor');
|
|
201
201
|
|
|
@@ -204,11 +204,11 @@ class Installer {
|
|
|
204
204
|
}
|
|
205
205
|
|
|
206
206
|
const targetExists = fs.existsSync(targetDir);
|
|
207
|
-
|
|
207
|
+
|
|
208
208
|
if (this.mergeMode && targetExists) {
|
|
209
209
|
// 智能合并模式
|
|
210
210
|
this.log('使用智能合并模式(保留用户自定义文件)...');
|
|
211
|
-
|
|
211
|
+
|
|
212
212
|
// 只复制 commands 目录
|
|
213
213
|
const commandsSourceDir = path.join(sourceDir, 'commands');
|
|
214
214
|
if (fs.existsSync(commandsSourceDir)) {
|
|
@@ -216,26 +216,41 @@ class Installer {
|
|
|
216
216
|
const result = this.mergeDir(commandsSourceDir, commandsTargetDir);
|
|
217
217
|
this.log(`commands: 更新了 ${result.updated} 个文件,新增了 ${result.added} 个文件`, 'info');
|
|
218
218
|
}
|
|
219
|
+
|
|
220
|
+
// 复制 agents 目录
|
|
221
|
+
const agentsSourceDir = path.join(sourceDir, 'agents');
|
|
222
|
+
if (fs.existsSync(agentsSourceDir)) {
|
|
223
|
+
const agentsTargetDir = path.join(targetDir, 'agents');
|
|
224
|
+
const result = this.mergeDir(agentsSourceDir, agentsTargetDir);
|
|
225
|
+
this.log(`agents: 更新了 ${result.updated} 个文件,新增了 ${result.added} 个文件`, 'info');
|
|
226
|
+
}
|
|
219
227
|
} else {
|
|
220
228
|
// 完全覆盖模式
|
|
221
229
|
if (targetExists) {
|
|
222
230
|
this.backupDir(targetDir);
|
|
223
231
|
}
|
|
224
232
|
this.log('复制 Cursor 配置文件...');
|
|
225
|
-
|
|
233
|
+
|
|
226
234
|
// 创建目标目录
|
|
227
235
|
if (!fs.existsSync(targetDir)) {
|
|
228
236
|
fs.mkdirSync(targetDir, { recursive: true });
|
|
229
237
|
}
|
|
230
|
-
|
|
238
|
+
|
|
231
239
|
// 只复制 commands 目录
|
|
232
240
|
const commandsSourceDir = path.join(sourceDir, 'commands');
|
|
233
241
|
if (fs.existsSync(commandsSourceDir)) {
|
|
234
242
|
const commandsTargetDir = path.join(targetDir, 'commands');
|
|
235
243
|
this.copyDir(commandsSourceDir, commandsTargetDir);
|
|
236
244
|
}
|
|
245
|
+
|
|
246
|
+
// 复制 agents 目录
|
|
247
|
+
const agentsSourceDir = path.join(sourceDir, 'agents');
|
|
248
|
+
if (fs.existsSync(agentsSourceDir)) {
|
|
249
|
+
const agentsTargetDir = path.join(targetDir, 'agents');
|
|
250
|
+
this.copyDir(agentsSourceDir, agentsTargetDir);
|
|
251
|
+
}
|
|
237
252
|
}
|
|
238
|
-
|
|
253
|
+
|
|
239
254
|
this.log('✓ Cursor 配置安装完成!', 'success');
|
|
240
255
|
}
|
|
241
256
|
|
package/package.json
CHANGED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"permissions": {
|
|
3
|
-
"allow": [
|
|
4
|
-
"Bash(ls -la .claude/commands/6aspec/green/*.md)",
|
|
5
|
-
"Bash(xargs -I {} basename {})",
|
|
6
|
-
"Bash(git mv 6A_constitution.md green_constitution.md)",
|
|
7
|
-
"Bash(git mv 6A_design_sop.md green_design_sop.md)",
|
|
8
|
-
"Bash(git mv 6A_import_model_table_sop.md green_import_model_table_sop.md)",
|
|
9
|
-
"Bash(git mv 6A_init_event_list_sop.md green_init_event_list_sop.md)",
|
|
10
|
-
"Bash(git mv 6A_init_map_sop.md green_init_map_sop.md)",
|
|
11
|
-
"Bash(git mv 6A_model_sop.md green_model_sop.md)",
|
|
12
|
-
"Bash(git mv 6A_new_sop.md green_new_sop.md)",
|
|
13
|
-
"Bash(git mv 6A_rollback_sop.md green_rollback_sop.md)",
|
|
14
|
-
"Bash(git mv 6A_visual_logic_sop.md green_visual_logic_sop.md)",
|
|
15
|
-
"Bash(git mv 6A_code_implementation_sop.md green_code_implementation_sop.md)",
|
|
16
|
-
"Bash(git mv 6A_archive_sop.md green_archive_sop.md)",
|
|
17
|
-
"Bash(git mv 6A_continue_sop.md green_continue_sop.md)",
|
|
18
|
-
"Bash(git mv 6A_tasks_sop.md green_tasks_sop.md)",
|
|
19
|
-
"Bash(git mv 6A_clarify_sop.md green_clarify_sop.md)",
|
|
20
|
-
"Bash(git mv 6A_status_sop.md green_status_sop.md)",
|
|
21
|
-
"Bash(ls -la .6aspec/rules/green/6A_*.md)",
|
|
22
|
-
"Bash(xargs sed -i '' 's/6A_\\\\\\([a-z_]*\\\\\\)\\\\.md/green_\\\\1.md/g')",
|
|
23
|
-
"Bash(openspec --help)",
|
|
24
|
-
"Bash(openspec schemas --json 2>/dev/null | head -100)",
|
|
25
|
-
"Bash(openspec status --json 2>/dev/null | head -50)",
|
|
26
|
-
"WebSearch",
|
|
27
|
-
"Bash(git mv:*)"
|
|
28
|
-
]
|
|
29
|
-
}
|
|
30
|
-
}
|