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
|
@@ -1,157 +1,157 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sillyspec:workspace
|
|
3
|
-
description: 工作区管理 — 初始化、管理多项目工作区,查看子项目状态
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## 交互规范
|
|
7
|
-
|
|
8
|
-
**当需要用户从多个选项中做出选择时,必须使用 Claude Code 内置的 AskUserQuestion 工具,将选项以参数传入。**
|
|
9
|
-
|
|
10
|
-
不要用编号列表让用户手动输入数字。
|
|
11
|
-
如果需要自由输入,在 AskUserQuestion 的选项中加入"Other(自定义输入)"。
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
你现在是 SillySpec 的工作区管理器。
|
|
16
|
-
|
|
17
|
-
## 用户指令
|
|
18
|
-
$ARGUMENTS
|
|
19
|
-
|
|
20
|
-
## 核心流程
|
|
21
|
-
|
|
22
|
-
### Step 1: 检查工作区配置
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
ls .sillyspec/projects/*.yaml 2>/dev/null | grep -q .
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
如果不存在 → 这是一个尚未配置工作区的项目。询问用户:
|
|
29
|
-
1. 初始化工作区
|
|
30
|
-
2. 跳过
|
|
31
|
-
|
|
32
|
-
### Step 2: 解析指令
|
|
33
|
-
|
|
34
|
-
根据 `$ARGUMENTS` 或默认行为:
|
|
35
|
-
|
|
36
|
-
- **无参数 / `status`** → 显示工作区状态
|
|
37
|
-
- **`add`** → 添加子项目
|
|
38
|
-
- **`remove`** → 移除子项目
|
|
39
|
-
- **`info`** → 显示某个子项目详情
|
|
40
|
-
- 无参数且 projects/*.yaml 不存在 → 初始化工作区
|
|
41
|
-
|
|
42
|
-
### Step 3: 执行对应操作
|
|
43
|
-
|
|
44
|
-
#### 3a. 初始化工作区(projects/ 不存在时)
|
|
45
|
-
|
|
46
|
-
1. 询问工作区名称(默认用当前目录名)
|
|
47
|
-
2. 逐个添加子项目:
|
|
48
|
-
- 询问子项目名称(如 `frontend`、`backend`)
|
|
49
|
-
- 询问子项目路径(相对于工作区根目录,如 `./frontend`)
|
|
50
|
-
- 询问子项目角色描述(如 `前端 - Vue3 + TypeScript`)
|
|
51
|
-
- 询问仓库地址(可选)
|
|
52
|
-
- 验证路径存在
|
|
53
|
-
添加完后询问:
|
|
54
|
-
> 1. 继续添加子项目
|
|
55
|
-
> 2. 完成,配置共享规范
|
|
56
|
-
3. 询问共享规范文件
|
|
57
|
-
4. 为每个子项目创建 `.sillyspec/projects/<name>.yaml`:
|
|
58
|
-
```yaml
|
|
59
|
-
name: <name>
|
|
60
|
-
path: <relative-path>
|
|
61
|
-
status: active
|
|
62
|
-
```
|
|
63
|
-
> ⚠️ `sillyspec init` 只会写入 `name`、`path`、`status` 三个字段。
|
|
64
|
-
> `role` 和 `repo` 由 `/sillyspec:workspace add` 追加。
|
|
65
|
-
5. 创建 `.sillyspec/shared/` 目录
|
|
66
|
-
|
|
67
|
-
#### 3b. 添加子项目(`add`)
|
|
68
|
-
|
|
69
|
-
1. 询问名称、路径、角色
|
|
70
|
-
2. 验证路径存在
|
|
71
|
-
3. 创建/更新 `.sillyspec/projects/<name>.yaml`
|
|
72
|
-
4. Git 提交
|
|
73
|
-
|
|
74
|
-
#### 3c. 移除子项目(`remove`)
|
|
75
|
-
|
|
76
|
-
1. 显示当前所有子项目列表
|
|
77
|
-
2. 询问要移除哪个:
|
|
78
|
-
> 1. (列出子项目名称)
|
|
79
|
-
> 2. 取消
|
|
80
|
-
3. 删除 `.sillyspec/projects/<name>.yaml`
|
|
81
|
-
4. Git 提交
|
|
82
|
-
|
|
83
|
-
#### 3d. 工作区状态(`status`,默认)
|
|
84
|
-
|
|
85
|
-
读取所有 `projects/*.yaml`,对每个子项目检查:
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
# 读取子项目列表
|
|
89
|
-
for f in .sillyspec/projects/*.yaml; do
|
|
90
|
-
[ -f "$f" ] || continue
|
|
91
|
-
proj_name=$(basename "$f" .yaml)
|
|
92
|
-
proj_path=$(grep '^path:' "$f" | head -1 | sed 's/^path:[[:space:]]*//')
|
|
93
|
-
proj_role=$(grep '^role:' "$f" | head -1 | sed 's/^role:[[:space:]]*//')
|
|
94
|
-
# 检查子项目状态
|
|
95
|
-
cd "$proj_path"
|
|
96
|
-
ls .sillyspec/ 2>/dev/null
|
|
97
|
-
cat .sillyspec/PROJECT.md 2>/dev/null
|
|
98
|
-
ls .sillyspec/docs/${proj_name}/scan/ 2>/dev/null | wc -l
|
|
99
|
-
cd -
|
|
100
|
-
done
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
输出格式:
|
|
104
|
-
|
|
105
|
-
```
|
|
106
|
-
🏢 工作区:<workspace-name>
|
|
107
|
-
|
|
108
|
-
📦 子项目(N 个):
|
|
109
|
-
✅ frontend ./frontend 前端 - Vue3 + TypeScript 已扫描(7 份文档)
|
|
110
|
-
⚠️ backend ./backend 后端 - Node.js 已初始化(未扫描)
|
|
111
|
-
❌ miniprogram ./miniprogram 小程序 - Taro 未初始化
|
|
112
|
-
|
|
113
|
-
📄 共享规范:2 份
|
|
114
|
-
- api-contract.md
|
|
115
|
-
- data-models.md
|
|
116
|
-
|
|
117
|
-
💡 操作:
|
|
118
|
-
/sillyspec:workspace add — 添加子项目
|
|
119
|
-
/sillyspec:workspace remove — 移除子项目
|
|
120
|
-
/sillyspec:init — 初始化子项目
|
|
121
|
-
/sillyspec:scan — 扫描子项目
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
#### 3e. 子项目详情(`info <name>`)
|
|
125
|
-
|
|
126
|
-
显示指定子项目的详细信息,包括 PROJECT.md、REQUIREMENTS.md 内容摘要、扫描文档列表。
|
|
127
|
-
|
|
128
|
-
### Step 4: projects/*.yaml 格式
|
|
129
|
-
|
|
130
|
-
每个子项目对应 `.sillyspec/projects/<name>.yaml`:
|
|
131
|
-
|
|
132
|
-
**sillyspec init 创建的格式(3 字段):**
|
|
133
|
-
```yaml
|
|
134
|
-
name: frontend
|
|
135
|
-
path: ./frontend
|
|
136
|
-
status: active
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
**workspace add 扩展的格式(最多 5 字段):**
|
|
140
|
-
```yaml
|
|
141
|
-
name: frontend
|
|
142
|
-
path: ./frontend
|
|
143
|
-
status: active
|
|
144
|
-
role: 前端 - Vue3 + TypeScript
|
|
145
|
-
repo: https://github.com/xxx/frontend.git # 可选
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
### 最后说:
|
|
149
|
-
|
|
150
|
-
> 工作区已更新。
|
|
151
|
-
> 下一步:对子项目运行 `/sillyspec:init` 或 `/sillyspec:scan`。
|
|
152
|
-
|
|
153
|
-
## 绝对规则
|
|
154
|
-
- 不修改子项目目录下的任何文件
|
|
155
|
-
- projects/*.yaml 必须是合法 YAML
|
|
156
|
-
- 子项目路径必须是相对于工作区根目录的相对路径
|
|
157
|
-
- 路径必须验证存在性
|
|
1
|
+
---
|
|
2
|
+
name: sillyspec:workspace
|
|
3
|
+
description: 工作区管理 — 初始化、管理多项目工作区,查看子项目状态
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## 交互规范
|
|
7
|
+
|
|
8
|
+
**当需要用户从多个选项中做出选择时,必须使用 Claude Code 内置的 AskUserQuestion 工具,将选项以参数传入。**
|
|
9
|
+
|
|
10
|
+
不要用编号列表让用户手动输入数字。
|
|
11
|
+
如果需要自由输入,在 AskUserQuestion 的选项中加入"Other(自定义输入)"。
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
你现在是 SillySpec 的工作区管理器。
|
|
16
|
+
|
|
17
|
+
## 用户指令
|
|
18
|
+
$ARGUMENTS
|
|
19
|
+
|
|
20
|
+
## 核心流程
|
|
21
|
+
|
|
22
|
+
### Step 1: 检查工作区配置
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
ls .sillyspec/projects/*.yaml 2>/dev/null | grep -q .
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
如果不存在 → 这是一个尚未配置工作区的项目。询问用户:
|
|
29
|
+
1. 初始化工作区
|
|
30
|
+
2. 跳过
|
|
31
|
+
|
|
32
|
+
### Step 2: 解析指令
|
|
33
|
+
|
|
34
|
+
根据 `$ARGUMENTS` 或默认行为:
|
|
35
|
+
|
|
36
|
+
- **无参数 / `status`** → 显示工作区状态
|
|
37
|
+
- **`add`** → 添加子项目
|
|
38
|
+
- **`remove`** → 移除子项目
|
|
39
|
+
- **`info`** → 显示某个子项目详情
|
|
40
|
+
- 无参数且 projects/*.yaml 不存在 → 初始化工作区
|
|
41
|
+
|
|
42
|
+
### Step 3: 执行对应操作
|
|
43
|
+
|
|
44
|
+
#### 3a. 初始化工作区(projects/ 不存在时)
|
|
45
|
+
|
|
46
|
+
1. 询问工作区名称(默认用当前目录名)
|
|
47
|
+
2. 逐个添加子项目:
|
|
48
|
+
- 询问子项目名称(如 `frontend`、`backend`)
|
|
49
|
+
- 询问子项目路径(相对于工作区根目录,如 `./frontend`)
|
|
50
|
+
- 询问子项目角色描述(如 `前端 - Vue3 + TypeScript`)
|
|
51
|
+
- 询问仓库地址(可选)
|
|
52
|
+
- 验证路径存在
|
|
53
|
+
添加完后询问:
|
|
54
|
+
> 1. 继续添加子项目
|
|
55
|
+
> 2. 完成,配置共享规范
|
|
56
|
+
3. 询问共享规范文件
|
|
57
|
+
4. 为每个子项目创建 `.sillyspec/projects/<name>.yaml`:
|
|
58
|
+
```yaml
|
|
59
|
+
name: <name>
|
|
60
|
+
path: <relative-path>
|
|
61
|
+
status: active
|
|
62
|
+
```
|
|
63
|
+
> ⚠️ `sillyspec init` 只会写入 `name`、`path`、`status` 三个字段。
|
|
64
|
+
> `role` 和 `repo` 由 `/sillyspec:workspace add` 追加。
|
|
65
|
+
5. 创建 `.sillyspec/shared/` 目录
|
|
66
|
+
|
|
67
|
+
#### 3b. 添加子项目(`add`)
|
|
68
|
+
|
|
69
|
+
1. 询问名称、路径、角色
|
|
70
|
+
2. 验证路径存在
|
|
71
|
+
3. 创建/更新 `.sillyspec/projects/<name>.yaml`
|
|
72
|
+
4. Git 提交
|
|
73
|
+
|
|
74
|
+
#### 3c. 移除子项目(`remove`)
|
|
75
|
+
|
|
76
|
+
1. 显示当前所有子项目列表
|
|
77
|
+
2. 询问要移除哪个:
|
|
78
|
+
> 1. (列出子项目名称)
|
|
79
|
+
> 2. 取消
|
|
80
|
+
3. 删除 `.sillyspec/projects/<name>.yaml`
|
|
81
|
+
4. Git 提交
|
|
82
|
+
|
|
83
|
+
#### 3d. 工作区状态(`status`,默认)
|
|
84
|
+
|
|
85
|
+
读取所有 `projects/*.yaml`,对每个子项目检查:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# 读取子项目列表
|
|
89
|
+
for f in .sillyspec/projects/*.yaml; do
|
|
90
|
+
[ -f "$f" ] || continue
|
|
91
|
+
proj_name=$(basename "$f" .yaml)
|
|
92
|
+
proj_path=$(grep '^path:' "$f" | head -1 | sed 's/^path:[[:space:]]*//')
|
|
93
|
+
proj_role=$(grep '^role:' "$f" | head -1 | sed 's/^role:[[:space:]]*//')
|
|
94
|
+
# 检查子项目状态
|
|
95
|
+
cd "$proj_path"
|
|
96
|
+
ls .sillyspec/ 2>/dev/null
|
|
97
|
+
cat .sillyspec/PROJECT.md 2>/dev/null
|
|
98
|
+
ls .sillyspec/docs/${proj_name}/scan/ 2>/dev/null | wc -l
|
|
99
|
+
cd -
|
|
100
|
+
done
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
输出格式:
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
🏢 工作区:<workspace-name>
|
|
107
|
+
|
|
108
|
+
📦 子项目(N 个):
|
|
109
|
+
✅ frontend ./frontend 前端 - Vue3 + TypeScript 已扫描(7 份文档)
|
|
110
|
+
⚠️ backend ./backend 后端 - Node.js 已初始化(未扫描)
|
|
111
|
+
❌ miniprogram ./miniprogram 小程序 - Taro 未初始化
|
|
112
|
+
|
|
113
|
+
📄 共享规范:2 份
|
|
114
|
+
- api-contract.md
|
|
115
|
+
- data-models.md
|
|
116
|
+
|
|
117
|
+
💡 操作:
|
|
118
|
+
/sillyspec:workspace add — 添加子项目
|
|
119
|
+
/sillyspec:workspace remove — 移除子项目
|
|
120
|
+
/sillyspec:init — 初始化子项目
|
|
121
|
+
/sillyspec:scan — 扫描子项目
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
#### 3e. 子项目详情(`info <name>`)
|
|
125
|
+
|
|
126
|
+
显示指定子项目的详细信息,包括 PROJECT.md、REQUIREMENTS.md 内容摘要、扫描文档列表。
|
|
127
|
+
|
|
128
|
+
### Step 4: projects/*.yaml 格式
|
|
129
|
+
|
|
130
|
+
每个子项目对应 `.sillyspec/projects/<name>.yaml`:
|
|
131
|
+
|
|
132
|
+
**sillyspec init 创建的格式(3 字段):**
|
|
133
|
+
```yaml
|
|
134
|
+
name: frontend
|
|
135
|
+
path: ./frontend
|
|
136
|
+
status: active
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**workspace add 扩展的格式(最多 5 字段):**
|
|
140
|
+
```yaml
|
|
141
|
+
name: frontend
|
|
142
|
+
path: ./frontend
|
|
143
|
+
status: active
|
|
144
|
+
role: 前端 - Vue3 + TypeScript
|
|
145
|
+
repo: https://github.com/xxx/frontend.git # 可选
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### 最后说:
|
|
149
|
+
|
|
150
|
+
> 工作区已更新。
|
|
151
|
+
> 下一步:对子项目运行 `/sillyspec:init` 或 `/sillyspec:scan`。
|
|
152
|
+
|
|
153
|
+
## 绝对规则
|
|
154
|
+
- 不修改子项目目录下的任何文件
|
|
155
|
+
- projects/*.yaml 必须是合法 YAML
|
|
156
|
+
- 子项目路径必须是相对于工作区根目录的相对路径
|
|
157
|
+
- 路径必须验证存在性
|
package/.husky/pre-push
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
#!/bin/sh
|
|
2
|
-
echo "🔧 pre-push: running lint + test..."
|
|
3
|
-
npm run lint --silent 2>&1
|
|
4
|
-
if [ $? -ne 0 ]; then
|
|
5
|
-
echo "❌ pre-push: lint failed, aborting push"
|
|
6
|
-
exit 1
|
|
7
|
-
fi
|
|
8
|
-
npm test --silent 2>&1
|
|
9
|
-
if [ $? -ne 0 ]; then
|
|
10
|
-
echo "❌ pre-push: test failed, aborting push"
|
|
11
|
-
exit 1
|
|
12
|
-
fi
|
|
13
|
-
echo "✅ pre-push: lint + test passed"
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
echo "🔧 pre-push: running lint + test..."
|
|
3
|
+
npm run lint --silent 2>&1
|
|
4
|
+
if [ $? -ne 0 ]; then
|
|
5
|
+
echo "❌ pre-push: lint failed, aborting push"
|
|
6
|
+
exit 1
|
|
7
|
+
fi
|
|
8
|
+
npm test --silent 2>&1
|
|
9
|
+
if [ $? -ne 0 ]; then
|
|
10
|
+
echo "❌ pre-push: test failed, aborting push"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
echo "✅ pre-push: lint + test passed"
|
package/CLAUDE.md
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
# Claude Code 指引
|
|
2
|
-
|
|
3
|
-
## 文件生命周期文档同步
|
|
4
|
-
每次修改 `src/stages/` 下的阶段定义(prompt、步骤、输出文件名等)或 `src/run.js`、`src/progress.js` 等影响文件生命周期的代码后,**必须同步更新** `docs/sillyspec/file-lifecycle.md`,确保文档与代码一致。
|
|
5
|
-
|
|
6
|
-
### 触发更新的典型改动
|
|
7
|
-
- 新增/删除/重命名阶段步骤
|
|
8
|
-
- 修改步骤 prompt 中的输出文件名(如 verify-result.md)
|
|
9
|
-
- 修改阶段间的流转逻辑(如 archive 归档方式)
|
|
10
|
-
- 新增/删除运行时文件类型(如 gate-status.json)
|
|
11
|
-
- 修改 ProgressManager 的数据存储方式(如 SQLite 表结构变更)
|
|
12
|
-
|
|
13
|
-
### 更新检查清单
|
|
14
|
-
- [ ] 文件名引用一致(prompt 输出的文件名 == validateFileLocations 期望的文件名)
|
|
15
|
-
- [ ] 阶段步骤描述与 `src/stages/*.js` 一致
|
|
16
|
-
- [ ] 归档/清理流程描述与实际代码逻辑一致
|
|
17
|
-
- [ ] 数据库 Schema 描述与 `src/db.js` 一致
|
|
18
|
-
- [ ] 更新文档头部 `updated_at` 时间戳
|
|
1
|
+
# Claude Code 指引
|
|
2
|
+
|
|
3
|
+
## 文件生命周期文档同步
|
|
4
|
+
每次修改 `src/stages/` 下的阶段定义(prompt、步骤、输出文件名等)或 `src/run.js`、`src/progress.js` 等影响文件生命周期的代码后,**必须同步更新** `docs/sillyspec/file-lifecycle.md`,确保文档与代码一致。
|
|
5
|
+
|
|
6
|
+
### 触发更新的典型改动
|
|
7
|
+
- 新增/删除/重命名阶段步骤
|
|
8
|
+
- 修改步骤 prompt 中的输出文件名(如 verify-result.md)
|
|
9
|
+
- 修改阶段间的流转逻辑(如 archive 归档方式)
|
|
10
|
+
- 新增/删除运行时文件类型(如 gate-status.json)
|
|
11
|
+
- 修改 ProgressManager 的数据存储方式(如 SQLite 表结构变更)
|
|
12
|
+
|
|
13
|
+
### 更新检查清单
|
|
14
|
+
- [ ] 文件名引用一致(prompt 输出的文件名 == validateFileLocations 期望的文件名)
|
|
15
|
+
- [ ] 阶段步骤描述与 `src/stages/*.js` 一致
|
|
16
|
+
- [ ] 归档/清理流程描述与实际代码逻辑一致
|
|
17
|
+
- [ ] 数据库 Schema 描述与 `src/db.js` 一致
|
|
18
|
+
- [ ] 更新文档头部 `updated_at` 时间戳
|