sillyspec 3.20.2 → 3.20.4
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/.claude/skills/sillyspec-archive/SKILL.md +21 -21
- package/.claude/skills/sillyspec-auto/SKILL.md +83 -83
- package/.claude/skills/sillyspec-brainstorm/SKILL.md +44 -44
- package/.claude/skills/sillyspec-commit/SKILL.md +106 -106
- package/.claude/skills/sillyspec-continue/SKILL.md +45 -45
- package/.claude/skills/sillyspec-doctor/SKILL.md +31 -31
- package/.claude/skills/sillyspec-execute/SKILL.md +30 -30
- package/.claude/skills/sillyspec-explore/SKILL.md +109 -109
- package/.claude/skills/sillyspec-knowledge/SKILL.md +269 -269
- package/.claude/skills/sillyspec-plan/SKILL.md +21 -21
- package/.claude/skills/sillyspec-propose/SKILL.md +21 -21
- package/.claude/skills/sillyspec-quick/SKILL.md +21 -21
- package/.claude/skills/sillyspec-resume/SKILL.md +68 -68
- package/.claude/skills/sillyspec-scan/SKILL.md +21 -21
- package/.claude/skills/sillyspec-state/SKILL.md +54 -54
- package/.claude/skills/sillyspec-status/SKILL.md +21 -21
- package/.claude/skills/sillyspec-verify/SKILL.md +21 -21
- package/.claude/skills/sillyspec-workspace/SKILL.md +157 -157
- package/.husky/pre-push +13 -13
- package/CLAUDE.md +18 -18
- package/README.md +198 -188
- package/SKILL.md +90 -91
- package/bin/sillyspec.js +2 -2
- package/docs/brainstorm-plan-contract.md +64 -64
- package/docs/plan-execute-contract.md +123 -123
- package/docs/platform-scan-protocol.md +298 -298
- package/docs/revision-mode.md +115 -115
- package/docs/sillyspec/file-lifecycle/known-implementation-gaps.md +99 -99
- package/docs/sillyspec/file-lifecycle/platform-workflows-sync.md +218 -218
- package/docs/sillyspec/file-lifecycle/stage-artifacts.md +167 -167
- package/docs/sillyspec/file-lifecycle/storage-and-state.md +148 -148
- package/docs/sillyspec/file-lifecycle/worktree-and-guard.md +211 -193
- package/docs/sillyspec/file-lifecycle.md +125 -125
- package/docs/workflow-contract-regression.md +106 -106
- package/docs/worktree-isolation.md +252 -252
- package/package.json +40 -40
- package/packages/dashboard/dist/assets/index-Bq_Z2hne.js +7446 -7446
- package/packages/dashboard/dist/assets/index-O2W5RV4z.css +1 -1
- package/packages/dashboard/dist/index.html +16 -16
- package/packages/dashboard/index.html +15 -15
- package/packages/dashboard/package-lock.json +2384 -2384
- package/packages/dashboard/package.json +25 -25
- package/packages/dashboard/server/executor.js +86 -86
- package/packages/dashboard/server/index.js +588 -588
- package/packages/dashboard/server/parser.js +526 -526
- package/packages/dashboard/server/watcher.js +344 -344
- package/packages/dashboard/src/App.vue +558 -558
- package/packages/dashboard/src/components/ActionBar.vue +93 -93
- package/packages/dashboard/src/components/CommandPalette.vue +96 -96
- package/packages/dashboard/src/components/DetailPanel.vue +137 -137
- package/packages/dashboard/src/components/LogStream.vue +65 -65
- package/packages/dashboard/src/components/PipelineStage.vue +95 -95
- package/packages/dashboard/src/components/PipelineView.vue +156 -156
- package/packages/dashboard/src/components/ProjectList.vue +210 -210
- package/packages/dashboard/src/components/StageBadge.vue +67 -67
- package/packages/dashboard/src/components/StepCard.vue +94 -94
- package/packages/dashboard/src/components/detail/DocsDetail.vue +48 -48
- package/packages/dashboard/src/components/detail/GitDetail.vue +61 -61
- package/packages/dashboard/src/components/detail/TechDetail.vue +43 -43
- package/packages/dashboard/src/composables/useDashboard.js +170 -170
- package/packages/dashboard/src/composables/useKeyboard.js +119 -119
- package/packages/dashboard/src/composables/useWebSocket.js +129 -129
- package/packages/dashboard/src/main.js +8 -8
- package/packages/dashboard/src/style.css +132 -132
- package/packages/dashboard/vite.config.js +18 -18
- package/src/brainstorm-postcheck.js +158 -158
- package/src/change-list.js +52 -52
- package/src/change-risk-profile.js +352 -352
- package/src/classify-change.js +73 -73
- package/src/constants.js +70 -70
- package/src/contract-matrix.js +278 -278
- package/src/db.js +201 -201
- package/src/endpoint-extractor.js +315 -315
- package/src/hooks/claude-pre-tool-use.cjs +125 -125
- package/src/hooks/worktree-guard.js +653 -653
- package/src/index.js +922 -900
- package/src/init.js +431 -431
- package/src/knowledge-match.js +130 -130
- package/src/migrate.js +117 -117
- package/src/modules.js +482 -482
- package/src/progress.js +1734 -1734
- package/src/run.js +3465 -3358
- package/src/scan-postcheck.js +387 -383
- package/src/setup.js +398 -398
- package/src/stage-contract.js +700 -700
- package/src/stages/archive.js +160 -160
- package/src/stages/brainstorm-auto.js +229 -229
- package/src/stages/brainstorm.js +645 -645
- package/src/stages/doctor.js +365 -365
- package/src/stages/execute.js +625 -625
- package/src/stages/explore.js +34 -34
- package/src/stages/index.js +29 -29
- package/src/stages/knowledge.js +498 -498
- package/src/stages/plan-postcheck.js +511 -513
- package/src/stages/plan.js +582 -582
- package/src/stages/propose.js +174 -174
- package/src/stages/quick.js +82 -82
- package/src/stages/scan.js +558 -558
- package/src/stages/status.js +65 -65
- package/src/stages/verify.js +322 -322
- package/src/sync.js +497 -497
- package/src/task-review.js +346 -346
- package/src/workflow.js +785 -785
- package/src/worktree-apply.js +549 -549
- package/src/worktree-deps.js +185 -0
- package/src/worktree.js +982 -932
- package/templates/workflows/archive-impact.yaml +79 -79
- package/templates/workflows/scan-docs.yaml +132 -132
- package/test/brainstorm-plan-contract.test.mjs +273 -273
- package/test/check-syntax.mjs +26 -26
- package/test/contract-artifacts.test.mjs +323 -323
- package/test/decision-supersede.test.mjs +277 -277
- package/test/knowledge-match.test.mjs +231 -231
- package/test/plan-execute-contract.test.mjs +330 -330
- package/test/plan-optimization.test.mjs +572 -572
- package/test/platform-artifacts.test.mjs +166 -166
- package/test/platform-failure-samples.test.mjs +199 -199
- package/test/platform-recovery-chain.test.mjs +167 -167
- package/test/platform-recovery.test.mjs +136 -136
- package/test/platform-scan-p0.test.mjs +168 -168
- package/test/revision-v1.test.mjs +1145 -1145
- package/test/run-scan-project-parse.test.mjs +200 -200
- package/test/run-tests.mjs +48 -48
- package/test/scan-knowledge.test.mjs +175 -175
- package/test/scan-paths.test.mjs +68 -68
- package/test/scan-postcheck.test.mjs +197 -197
- package/test/spec-dir.test.mjs +206 -206
- package/test/stage-contract.test.mjs +299 -299
- package/test/stage-definitions.test.mjs +39 -39
- package/test/wait-gates.test.mjs +496 -496
- package/test/worktree-deps-provision.test.mjs +148 -0
- package/test/worktree-guard.test.mjs +71 -71
- package/test/worktree-native-overlay.test.mjs +188 -188
package/docs/revision-mode.md
CHANGED
|
@@ -1,115 +1,115 @@
|
|
|
1
|
-
---
|
|
2
|
-
author: qinyi
|
|
3
|
-
created_at: 2026-06-18 22:48:00
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Revision Mode — 阶段修订
|
|
7
|
-
|
|
8
|
-
## 核心语义
|
|
9
|
-
|
|
10
|
-
已完成(completed)的阶段不能直接重跑。必须通过 `--reopen` 进入受控修订模式。
|
|
11
|
-
|
|
12
|
-
修订模式确保:
|
|
13
|
-
- 阶段状态机闭环:completed → revising → completed
|
|
14
|
-
- 因果链不断:上游修订时,下游阶段自动标记 stale
|
|
15
|
-
- 产物安全:reopen 不删除、不备份、不回滚文件,只改 progress 状态
|
|
16
|
-
|
|
17
|
-
## 命令
|
|
18
|
-
|
|
19
|
-
### `--reopen` — 重新打开已完成阶段
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
sillyspec run brainstorm --reopen
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
把阶段从 completed 变为 revising。不删除步骤历史,不清空产物文件。
|
|
26
|
-
|
|
27
|
-
**不带 `--from-step` 时:** 只在阶段存在 pending/stale/waiting/failed 步骤时允许继续。如果所有步骤都是 completed,会拒绝并要求指定 `--from-step`。
|
|
28
|
-
|
|
29
|
-
### `--reopen --from-step <index|name>` — 从指定步骤开始修订
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
# 按序号(1-based)
|
|
33
|
-
sillyspec run brainstorm --reopen --from-step 3
|
|
34
|
-
|
|
35
|
-
# 按名称
|
|
36
|
-
sillyspec run brainstorm --reopen --from-step "方案选择"
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
效果:
|
|
40
|
-
- from-step 之前的步骤:保持 completed
|
|
41
|
-
- from-step 本身:变为 pending
|
|
42
|
-
- from-step 之后的步骤:标记为 stale(曾经完成,但因上游修订失效)
|
|
43
|
-
- 当前阶段状态:变为 revising
|
|
44
|
-
- 所有下游阶段:自动 cascade stale
|
|
45
|
-
|
|
46
|
-
### `--reset` — 彻底重置(核弹)
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
sillyspec run brainstorm --reset
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
清空所有步骤状态,从头开始。不保留任何历史。只在确实需要完全重来时使用。
|
|
53
|
-
|
|
54
|
-
## 下游 cascade 规则
|
|
55
|
-
|
|
56
|
-
阶段顺序:`scan → brainstorm → plan → execute → verify → archive`
|
|
57
|
-
|
|
58
|
-
reopen 任意阶段,其下游所有已 completed 的阶段自动变为 stale,并记录 staleReason。
|
|
59
|
-
|
|
60
|
-
示例:
|
|
61
|
-
```
|
|
62
|
-
reopen brainstorm --from-step 2
|
|
63
|
-
→ brainstorm: revising
|
|
64
|
-
→ plan: stale (上游 brainstorm 已修订)
|
|
65
|
-
→ execute: stale
|
|
66
|
-
→ verify: stale
|
|
67
|
-
→ archive: stale (已有归档文件保留但不再可信)
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
stale 阶段不能直接 `run`,必须 `--reopen --from-step` 或 `--reset`。
|
|
71
|
-
|
|
72
|
-
## --reopen / --from-step / --reset 对比
|
|
73
|
-
|
|
74
|
-
| 维度 | --reopen --from-step | --reopen | --reset |
|
|
75
|
-
|------|---------------------|----------|---------|
|
|
76
|
-
| 步骤历史 | 保留之前的,后面失效 | 保留 | 全部清空 |
|
|
77
|
-
| 产物文件 | 不动 | 不动 | 不动 |
|
|
78
|
-
| 阶段状态 | revising | revising | pending |
|
|
79
|
-
| revision 计数 | +1 | +1 | 不变 |
|
|
80
|
-
| 下游 cascade | stale | stale | 不 cascade |
|
|
81
|
-
| 适用场景 | 局部返工 | 继续中断 | 彻底重来 |
|
|
82
|
-
|
|
83
|
-
## 文件策略
|
|
84
|
-
|
|
85
|
-
- reopen **不触碰**任何产物文件(design.md、plan.md、task docs 等)
|
|
86
|
-
- agent 在 revision context 下审视并更新已有产物
|
|
87
|
-
- 如需备份/快照功能,后续版本再加
|
|
88
|
-
|
|
89
|
-
## Revision Context 注入
|
|
90
|
-
|
|
91
|
-
修订模式下执行步骤时,prompt 前会注入:
|
|
92
|
-
|
|
93
|
-
```
|
|
94
|
-
🔄 Revision Context
|
|
95
|
-
本阶段处于修订模式(revision N),不是首次执行。
|
|
96
|
-
- 修订起始步骤:index: name
|
|
97
|
-
- 当前步骤之前已完成的步骤仍然有效,不需要重做。
|
|
98
|
-
- 当前步骤及之后的步骤需要重新生成或调整已有产物。
|
|
99
|
-
- 已有产物文件被保留,审视并更新它们,而不是从零创建。
|
|
100
|
-
- 不要绕过 CLI 进度追踪。
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
## progress 展示示例
|
|
104
|
-
|
|
105
|
-
```
|
|
106
|
-
🔧 🧠 需求探索
|
|
107
|
-
📋 revision: 2, from step: 2: 加载项目上下文
|
|
108
|
-
✅ 状态检查 (保持 completed)
|
|
109
|
-
⬜ 加载项目上下文 (pending — 从这里重做)
|
|
110
|
-
⚠️ 协作与复用检查 (stale)
|
|
111
|
-
⚠️ 原型/设计图分析 (stale)
|
|
112
|
-
...
|
|
113
|
-
⚠️ 📐 实现计划
|
|
114
|
-
⚠️ stale: 上游阶段 brainstorm 已修订 (revision 2)
|
|
115
|
-
```
|
|
1
|
+
---
|
|
2
|
+
author: qinyi
|
|
3
|
+
created_at: 2026-06-18 22:48:00
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Revision Mode — 阶段修订
|
|
7
|
+
|
|
8
|
+
## 核心语义
|
|
9
|
+
|
|
10
|
+
已完成(completed)的阶段不能直接重跑。必须通过 `--reopen` 进入受控修订模式。
|
|
11
|
+
|
|
12
|
+
修订模式确保:
|
|
13
|
+
- 阶段状态机闭环:completed → revising → completed
|
|
14
|
+
- 因果链不断:上游修订时,下游阶段自动标记 stale
|
|
15
|
+
- 产物安全:reopen 不删除、不备份、不回滚文件,只改 progress 状态
|
|
16
|
+
|
|
17
|
+
## 命令
|
|
18
|
+
|
|
19
|
+
### `--reopen` — 重新打开已完成阶段
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
sillyspec run brainstorm --reopen
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
把阶段从 completed 变为 revising。不删除步骤历史,不清空产物文件。
|
|
26
|
+
|
|
27
|
+
**不带 `--from-step` 时:** 只在阶段存在 pending/stale/waiting/failed 步骤时允许继续。如果所有步骤都是 completed,会拒绝并要求指定 `--from-step`。
|
|
28
|
+
|
|
29
|
+
### `--reopen --from-step <index|name>` — 从指定步骤开始修订
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# 按序号(1-based)
|
|
33
|
+
sillyspec run brainstorm --reopen --from-step 3
|
|
34
|
+
|
|
35
|
+
# 按名称
|
|
36
|
+
sillyspec run brainstorm --reopen --from-step "方案选择"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
效果:
|
|
40
|
+
- from-step 之前的步骤:保持 completed
|
|
41
|
+
- from-step 本身:变为 pending
|
|
42
|
+
- from-step 之后的步骤:标记为 stale(曾经完成,但因上游修订失效)
|
|
43
|
+
- 当前阶段状态:变为 revising
|
|
44
|
+
- 所有下游阶段:自动 cascade stale
|
|
45
|
+
|
|
46
|
+
### `--reset` — 彻底重置(核弹)
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
sillyspec run brainstorm --reset
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
清空所有步骤状态,从头开始。不保留任何历史。只在确实需要完全重来时使用。
|
|
53
|
+
|
|
54
|
+
## 下游 cascade 规则
|
|
55
|
+
|
|
56
|
+
阶段顺序:`scan → brainstorm → plan → execute → verify → archive`
|
|
57
|
+
|
|
58
|
+
reopen 任意阶段,其下游所有已 completed 的阶段自动变为 stale,并记录 staleReason。
|
|
59
|
+
|
|
60
|
+
示例:
|
|
61
|
+
```
|
|
62
|
+
reopen brainstorm --from-step 2
|
|
63
|
+
→ brainstorm: revising
|
|
64
|
+
→ plan: stale (上游 brainstorm 已修订)
|
|
65
|
+
→ execute: stale
|
|
66
|
+
→ verify: stale
|
|
67
|
+
→ archive: stale (已有归档文件保留但不再可信)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
stale 阶段不能直接 `run`,必须 `--reopen --from-step` 或 `--reset`。
|
|
71
|
+
|
|
72
|
+
## --reopen / --from-step / --reset 对比
|
|
73
|
+
|
|
74
|
+
| 维度 | --reopen --from-step | --reopen | --reset |
|
|
75
|
+
|------|---------------------|----------|---------|
|
|
76
|
+
| 步骤历史 | 保留之前的,后面失效 | 保留 | 全部清空 |
|
|
77
|
+
| 产物文件 | 不动 | 不动 | 不动 |
|
|
78
|
+
| 阶段状态 | revising | revising | pending |
|
|
79
|
+
| revision 计数 | +1 | +1 | 不变 |
|
|
80
|
+
| 下游 cascade | stale | stale | 不 cascade |
|
|
81
|
+
| 适用场景 | 局部返工 | 继续中断 | 彻底重来 |
|
|
82
|
+
|
|
83
|
+
## 文件策略
|
|
84
|
+
|
|
85
|
+
- reopen **不触碰**任何产物文件(design.md、plan.md、task docs 等)
|
|
86
|
+
- agent 在 revision context 下审视并更新已有产物
|
|
87
|
+
- 如需备份/快照功能,后续版本再加
|
|
88
|
+
|
|
89
|
+
## Revision Context 注入
|
|
90
|
+
|
|
91
|
+
修订模式下执行步骤时,prompt 前会注入:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
🔄 Revision Context
|
|
95
|
+
本阶段处于修订模式(revision N),不是首次执行。
|
|
96
|
+
- 修订起始步骤:index: name
|
|
97
|
+
- 当前步骤之前已完成的步骤仍然有效,不需要重做。
|
|
98
|
+
- 当前步骤及之后的步骤需要重新生成或调整已有产物。
|
|
99
|
+
- 已有产物文件被保留,审视并更新它们,而不是从零创建。
|
|
100
|
+
- 不要绕过 CLI 进度追踪。
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## progress 展示示例
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
🔧 🧠 需求探索
|
|
107
|
+
📋 revision: 2, from step: 2: 加载项目上下文
|
|
108
|
+
✅ 状态检查 (保持 completed)
|
|
109
|
+
⬜ 加载项目上下文 (pending — 从这里重做)
|
|
110
|
+
⚠️ 协作与复用检查 (stale)
|
|
111
|
+
⚠️ 原型/设计图分析 (stale)
|
|
112
|
+
...
|
|
113
|
+
⚠️ 📐 实现计划
|
|
114
|
+
⚠️ stale: 上游阶段 brainstorm 已修订 (revision 2)
|
|
115
|
+
```
|
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
---
|
|
2
|
-
author: qinyi
|
|
3
|
-
created_at: 2026-06-04 16:25:42
|
|
4
|
-
updated_at: 2026-06-04 16:55:00
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# 剩余实现差异清单
|
|
8
|
-
|
|
9
|
-
本页只记录当前代码仍存在的实现差异。已修复的条目不再保留为缺口,包括:
|
|
10
|
-
|
|
11
|
-
- `brainstorm` / `propose` 重复 object key 导致步骤丢失。
|
|
12
|
-
- scan prompt 写 `.sillyspec/.runtime/local.yaml`。
|
|
13
|
-
- hook 只读根目录 `local.yaml`。
|
|
14
|
-
- archive 第 4 步正常流程不触发自动归档。
|
|
15
|
-
- 自动 sync / approval 参数顺序不匹配。
|
|
16
|
-
- `ProgressManager._updatePlatformLastSync()` / `_updateApprovalStatus()` 缺失。
|
|
17
|
-
|
|
18
|
-
## workflow-runs 平台路径支持未从 run.js 接通
|
|
19
|
-
|
|
20
|
-
代码位置:`src/workflow.js`、`src/run.js`
|
|
21
|
-
|
|
22
|
-
现象:
|
|
23
|
-
|
|
24
|
-
- `saveWorkflowRun()` 支持传 `runtimeRoot`。
|
|
25
|
-
- `run.js` scan/archive post-check 调用时没有传 `runtimeRoot` / `scanRunId`。
|
|
26
|
-
|
|
27
|
-
影响:
|
|
28
|
-
|
|
29
|
-
- 自动 post-check 的 workflow run 当前写本地 `.sillyspec/.runtime/workflow-runs/`。
|
|
30
|
-
- 平台模式下不能按旧文档断言它会写入 `<runtime-root>/scan-runs/<scan-run-id>/workflow-runs/`。
|
|
31
|
-
|
|
32
|
-
## `--no-worktree` 未作为 run flag 接通
|
|
33
|
-
|
|
34
|
-
代码位置:`src/run.js`、`src/stages/execute.js`、`src/worktree.js`、`src/hooks/worktree-guard.js`
|
|
35
|
-
|
|
36
|
-
现象:
|
|
37
|
-
|
|
38
|
-
- execute prompt 和 worktree 错误信息提到 `--no-worktree`。
|
|
39
|
-
- `buildExecuteSteps()` 也有 `noWorktree` option。
|
|
40
|
-
- `runCommand()` 的 known flags 不包含 `--no-worktree`。
|
|
41
|
-
- CLI usage 也没有列出 `--no-worktree`。
|
|
42
|
-
|
|
43
|
-
影响:
|
|
44
|
-
|
|
45
|
-
- 文档不能把 `--no-worktree` 描述成已可用的公开 run 参数。
|
|
46
|
-
- `changes.no_worktree` / gate `noWorktree` 字段存在,但当前没有清晰 CLI 生命周期入口。
|
|
47
|
-
|
|
48
|
-
## DB schema version 口径不统一
|
|
49
|
-
|
|
50
|
-
代码位置:`src/db.js`、`src/progress.js`
|
|
51
|
-
|
|
52
|
-
现象:
|
|
53
|
-
|
|
54
|
-
- `db.js` 的 `project.schema_version` 默认值是 4。
|
|
55
|
-
- `progress.js` 的 `CURRENT_VERSION` 是 3。
|
|
56
|
-
- `ProgressManager.init()` 写 project 行时使用 `CURRENT_VERSION`。
|
|
57
|
-
|
|
58
|
-
影响:
|
|
59
|
-
|
|
60
|
-
- 文档只描述表结构,不把当前状态存储称为明确 v4 schema。
|
|
61
|
-
|
|
62
|
-
## `global.json` 是遗留口径
|
|
63
|
-
|
|
64
|
-
代码位置:`src/progress.js`
|
|
65
|
-
|
|
66
|
-
现象:
|
|
67
|
-
|
|
68
|
-
- 注释和常量还提到 `.sillyspec/.runtime/global.json`。
|
|
69
|
-
- 实际 `readGlobal()` / `writeGlobal()` 已经走 SQL。
|
|
70
|
-
|
|
71
|
-
影响:
|
|
72
|
-
|
|
73
|
-
- 文档应写成“当前没有实际 global.json 生命周期”。
|
|
74
|
-
|
|
75
|
-
## workflow archive 固定 project 为 `sillyspec`
|
|
76
|
-
|
|
77
|
-
代码位置:`src/run.js`
|
|
78
|
-
|
|
79
|
-
现象:
|
|
80
|
-
|
|
81
|
-
- archive `extract-module-impact` post-check 调用 `runPostCheck(resolved, cwd, 'sillyspec')`。
|
|
82
|
-
- 不按当前项目注册表动态选择 project。
|
|
83
|
-
|
|
84
|
-
影响:
|
|
85
|
-
|
|
86
|
-
- 文档不能写成 archive impact workflow 对所有项目自动按 project 维度检查。
|
|
87
|
-
|
|
88
|
-
## platform approve / reject 尚未实现
|
|
89
|
-
|
|
90
|
-
代码位置:`src/sync.js`
|
|
91
|
-
|
|
92
|
-
现象:
|
|
93
|
-
|
|
94
|
-
- `sillyspec platform approve <change-name>` 和 `reject <change-name>` 有 CLI 分支。
|
|
95
|
-
- 当前实现只打印 “尚未实现” warning。
|
|
96
|
-
|
|
97
|
-
影响:
|
|
98
|
-
|
|
99
|
-
- 本地 `checkApproval()` 能读取并记录平台审批状态,但 CLI 端还不能主动向平台发起 approve/reject。
|
|
1
|
+
---
|
|
2
|
+
author: qinyi
|
|
3
|
+
created_at: 2026-06-04 16:25:42
|
|
4
|
+
updated_at: 2026-06-04 16:55:00
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 剩余实现差异清单
|
|
8
|
+
|
|
9
|
+
本页只记录当前代码仍存在的实现差异。已修复的条目不再保留为缺口,包括:
|
|
10
|
+
|
|
11
|
+
- `brainstorm` / `propose` 重复 object key 导致步骤丢失。
|
|
12
|
+
- scan prompt 写 `.sillyspec/.runtime/local.yaml`。
|
|
13
|
+
- hook 只读根目录 `local.yaml`。
|
|
14
|
+
- archive 第 4 步正常流程不触发自动归档。
|
|
15
|
+
- 自动 sync / approval 参数顺序不匹配。
|
|
16
|
+
- `ProgressManager._updatePlatformLastSync()` / `_updateApprovalStatus()` 缺失。
|
|
17
|
+
|
|
18
|
+
## workflow-runs 平台路径支持未从 run.js 接通
|
|
19
|
+
|
|
20
|
+
代码位置:`src/workflow.js`、`src/run.js`
|
|
21
|
+
|
|
22
|
+
现象:
|
|
23
|
+
|
|
24
|
+
- `saveWorkflowRun()` 支持传 `runtimeRoot`。
|
|
25
|
+
- `run.js` scan/archive post-check 调用时没有传 `runtimeRoot` / `scanRunId`。
|
|
26
|
+
|
|
27
|
+
影响:
|
|
28
|
+
|
|
29
|
+
- 自动 post-check 的 workflow run 当前写本地 `.sillyspec/.runtime/workflow-runs/`。
|
|
30
|
+
- 平台模式下不能按旧文档断言它会写入 `<runtime-root>/scan-runs/<scan-run-id>/workflow-runs/`。
|
|
31
|
+
|
|
32
|
+
## `--no-worktree` 未作为 run flag 接通
|
|
33
|
+
|
|
34
|
+
代码位置:`src/run.js`、`src/stages/execute.js`、`src/worktree.js`、`src/hooks/worktree-guard.js`
|
|
35
|
+
|
|
36
|
+
现象:
|
|
37
|
+
|
|
38
|
+
- execute prompt 和 worktree 错误信息提到 `--no-worktree`。
|
|
39
|
+
- `buildExecuteSteps()` 也有 `noWorktree` option。
|
|
40
|
+
- `runCommand()` 的 known flags 不包含 `--no-worktree`。
|
|
41
|
+
- CLI usage 也没有列出 `--no-worktree`。
|
|
42
|
+
|
|
43
|
+
影响:
|
|
44
|
+
|
|
45
|
+
- 文档不能把 `--no-worktree` 描述成已可用的公开 run 参数。
|
|
46
|
+
- `changes.no_worktree` / gate `noWorktree` 字段存在,但当前没有清晰 CLI 生命周期入口。
|
|
47
|
+
|
|
48
|
+
## DB schema version 口径不统一
|
|
49
|
+
|
|
50
|
+
代码位置:`src/db.js`、`src/progress.js`
|
|
51
|
+
|
|
52
|
+
现象:
|
|
53
|
+
|
|
54
|
+
- `db.js` 的 `project.schema_version` 默认值是 4。
|
|
55
|
+
- `progress.js` 的 `CURRENT_VERSION` 是 3。
|
|
56
|
+
- `ProgressManager.init()` 写 project 行时使用 `CURRENT_VERSION`。
|
|
57
|
+
|
|
58
|
+
影响:
|
|
59
|
+
|
|
60
|
+
- 文档只描述表结构,不把当前状态存储称为明确 v4 schema。
|
|
61
|
+
|
|
62
|
+
## `global.json` 是遗留口径
|
|
63
|
+
|
|
64
|
+
代码位置:`src/progress.js`
|
|
65
|
+
|
|
66
|
+
现象:
|
|
67
|
+
|
|
68
|
+
- 注释和常量还提到 `.sillyspec/.runtime/global.json`。
|
|
69
|
+
- 实际 `readGlobal()` / `writeGlobal()` 已经走 SQL。
|
|
70
|
+
|
|
71
|
+
影响:
|
|
72
|
+
|
|
73
|
+
- 文档应写成“当前没有实际 global.json 生命周期”。
|
|
74
|
+
|
|
75
|
+
## workflow archive 固定 project 为 `sillyspec`
|
|
76
|
+
|
|
77
|
+
代码位置:`src/run.js`
|
|
78
|
+
|
|
79
|
+
现象:
|
|
80
|
+
|
|
81
|
+
- archive `extract-module-impact` post-check 调用 `runPostCheck(resolved, cwd, 'sillyspec')`。
|
|
82
|
+
- 不按当前项目注册表动态选择 project。
|
|
83
|
+
|
|
84
|
+
影响:
|
|
85
|
+
|
|
86
|
+
- 文档不能写成 archive impact workflow 对所有项目自动按 project 维度检查。
|
|
87
|
+
|
|
88
|
+
## platform approve / reject 尚未实现
|
|
89
|
+
|
|
90
|
+
代码位置:`src/sync.js`
|
|
91
|
+
|
|
92
|
+
现象:
|
|
93
|
+
|
|
94
|
+
- `sillyspec platform approve <change-name>` 和 `reject <change-name>` 有 CLI 分支。
|
|
95
|
+
- 当前实现只打印 “尚未实现” warning。
|
|
96
|
+
|
|
97
|
+
影响:
|
|
98
|
+
|
|
99
|
+
- 本地 `checkApproval()` 能读取并记录平台审批状态,但 CLI 端还不能主动向平台发起 approve/reject。
|