sillyspec 3.20.2 → 3.20.3
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 +1 -5
- package/.claude/skills/sillyspec-auto/SKILL.md +2 -8
- package/.claude/skills/sillyspec-brainstorm/SKILL.md +1 -28
- package/.claude/skills/sillyspec-commit/SKILL.md +3 -4
- package/.claude/skills/sillyspec-continue/SKILL.md +4 -5
- package/.claude/skills/sillyspec-doctor/SKILL.md +3 -12
- package/.claude/skills/sillyspec-execute/SKILL.md +2 -15
- package/.claude/skills/sillyspec-explore/SKILL.md +1 -14
- package/.claude/skills/sillyspec-plan/SKILL.md +36 -5
- package/.claude/skills/sillyspec-propose/SKILL.md +0 -4
- package/.claude/skills/sillyspec-quick/SKILL.md +1 -5
- package/.claude/skills/sillyspec-resume/SKILL.md +66 -23
- package/.claude/skills/sillyspec-scan/SKILL.md +1 -5
- package/.claude/skills/sillyspec-state/SKILL.md +8 -8
- package/.claude/skills/sillyspec-status/SKILL.md +1 -5
- package/.claude/skills/sillyspec-verify/SKILL.md +1 -5
- package/.claude/skills/sillyspec-workspace/SKILL.md +3 -11
- package/.sillyspec/changes/archive/2026-04-08-derive-state/design.md +97 -0
- package/.sillyspec/changes/archive/2026-04-08-derive-state/plan.md +51 -0
- package/.sillyspec/changes/archive/2026-04-08-derive-state/proposal.md +29 -0
- package/.sillyspec/changes/archive/2026-04-08-derive-state/requirements.md +34 -0
- package/.sillyspec/changes/archive/2026-04-08-derive-state/tasks.md +13 -0
- package/.sillyspec/changes/archive/2026-04-08-derive-state/verify-result.md +43 -0
- package/.sillyspec/changes/auto-mode/design.md +50 -0
- package/.sillyspec/changes/auto-mode/proposal.md +19 -0
- package/.sillyspec/changes/auto-mode/requirements.md +21 -0
- package/.sillyspec/changes/auto-mode/tasks.md +7 -0
- package/.sillyspec/changes/brainstorm-archive/2026-04-05-dashboard-design.md +206 -0
- package/.sillyspec/changes/brainstorm-archive/2026-04-05-unified-docs-design.md +199 -0
- package/.sillyspec/changes/dashboard/design.md +219 -0
- package/.sillyspec/changes/dashboard/design.md.braindraft +206 -0
- package/.sillyspec/changes/run-command-design/design.md +1230 -0
- package/.sillyspec/changes/unified-docs-design/design.md +199 -0
- package/.sillyspec/docs/sillyspec/scan/.gitkeep +0 -0
- package/.sillyspec/knowledge/INDEX.md +8 -0
- package/.sillyspec/knowledge/uncategorized.md +3 -0
- package/.sillyspec/plans/2026-04-05-dashboard.md +737 -0
- package/.sillyspec/projects/sillyspec.yaml +3 -0
- package/README.md +11 -13
- package/SKILL.md +40 -44
- package/dist/steps/brainstorm/01-load-context.md +30 -0
- package/dist/steps/brainstorm/02-reuse-check.md +6 -0
- package/dist/steps/brainstorm/03-prototype-analysis.md +11 -0
- package/dist/steps/brainstorm/04-module-split.md +23 -0
- package/dist/steps/brainstorm/05-dialog-explore.md +8 -0
- package/dist/steps/brainstorm/06-propose-approaches.md +3 -0
- package/dist/steps/brainstorm/07-present-design.md +3 -0
- package/dist/steps/brainstorm/08-write-design.md +21 -0
- package/dist/steps/brainstorm/09-self-review.md +15 -0
- package/dist/steps/brainstorm/10-user-confirm.md +3 -0
- package/dist/steps/brainstorm/11-output-spec.md +7 -0
- package/dist/steps/brainstorm/manifest.yaml +26 -0
- package/dist/steps/execute/01-load-context.md +41 -0
- package/dist/steps/execute/02-scan-conventions.md +47 -0
- package/dist/steps/execute/03-skill-mcp.md +19 -0
- package/dist/steps/execute/04-assign-task.md +22 -0
- package/dist/steps/execute/04b-prompt-template.md +54 -0
- package/dist/steps/execute/05-write-test.md +7 -0
- package/dist/steps/execute/06-write-code.md +8 -0
- package/dist/steps/execute/07-run-test.md +26 -0
- package/dist/steps/execute/08-fix-issues.md +28 -0
- package/dist/steps/execute/09-next-task.md +33 -0
- package/dist/steps/execute/manifest.yaml +28 -0
- package/dist/steps/plan/01-load-context.md +22 -0
- package/dist/steps/plan/02-anchor-confirm.md +1 -0
- package/dist/steps/plan/03-expand-tasks.md +33 -0
- package/dist/steps/plan/04-mark-order.md +15 -0
- package/dist/steps/plan/05-e2e-planning.md +17 -0
- package/dist/steps/plan/06-self-check.md +16 -0
- package/dist/steps/plan/07-save.md +1 -0
- package/dist/steps/plan/manifest.yaml +18 -0
- package/dist/steps/scan/01-env-detect.md +51 -0
- package/dist/steps/scan/02-tech-stack.md +16 -0
- package/dist/steps/scan/03-conventions.md +16 -0
- package/dist/steps/scan/04-structure.md +19 -0
- package/dist/steps/scan/05-quality.md +18 -0
- package/dist/steps/scan/06-complete.md +49 -0
- package/dist/steps/scan/manifest.yaml +16 -0
- package/dist/steps/verify/01-load-specs.md +28 -0
- package/dist/steps/verify/02-check-tasks.md +1 -0
- package/dist/steps/verify/03-check-design.md +6 -0
- package/dist/steps/verify/04-run-tests.md +7 -0
- package/dist/steps/verify/05-e2e-tests.md +27 -0
- package/dist/steps/verify/05b-e2e-fix.md +33 -0
- package/dist/steps/verify/06-code-quality.md +25 -0
- package/dist/steps/verify/07-lint-check.md +27 -0
- package/dist/steps/verify/08-output-report.md +14 -0
- package/dist/steps/verify/manifest.yaml +22 -0
- package/package.json +1 -7
- package/packages/dashboard/dist/assets/{index-Bq_Z2hne.js → index-D1EVTLmc.js} +1264 -1264
- package/packages/dashboard/dist/assets/index-DGe8CqeP.css +1 -0
- package/packages/dashboard/dist/index.html +2 -2
- package/packages/dashboard/package-lock.json +6 -6
- package/packages/dashboard/server/executor.js +1 -1
- package/packages/dashboard/server/index.js +18 -98
- package/packages/dashboard/server/parser.js +71 -139
- package/packages/dashboard/server/watcher.js +6 -14
- package/packages/dashboard/src/App.vue +185 -418
- package/packages/dashboard/src/components/ActionBar.vue +1 -10
- package/packages/dashboard/src/components/CommandPalette.vue +1 -5
- package/packages/dashboard/src/components/DocPreview.vue +8 -105
- package/packages/dashboard/src/components/DocTree.vue +19 -75
- package/packages/dashboard/src/components/PipelineStage.vue +2 -22
- package/packages/dashboard/src/components/PipelineView.vue +5 -32
- package/packages/dashboard/src/components/ProjectOverview.vue +139 -113
- package/packages/dashboard/src/components/StageBadge.vue +3 -17
- package/packages/dashboard/src/components/StepCard.vue +2 -7
- package/packages/dashboard/src/composables/useDashboard.js +0 -28
- package/src/derive.js +147 -0
- package/src/index.js +40 -688
- package/src/init.js +63 -119
- package/src/migrate.js +7 -7
- package/src/progress.js +248 -1474
- package/src/run.js +302 -3008
- package/src/setup.js +64 -2
- package/src/stages/archive.js +17 -123
- package/src/stages/brainstorm.js +48 -454
- package/src/stages/doctor.js +46 -99
- package/src/stages/execute.js +59 -420
- package/src/stages/index.js +18 -12
- package/src/stages/plan.js +189 -492
- package/src/stages/propose.js +11 -70
- package/src/stages/quick.js +13 -52
- package/src/stages/scan.js +68 -485
- package/src/stages/status.js +1 -1
- package/src/stages/verify.js +16 -203
- package/src/step.js +543 -0
- package/.claude/skills/sillyspec-knowledge/SKILL.md +0 -270
- package/.husky/pre-push +0 -13
- package/CLAUDE.md +0 -18
- package/docs/brainstorm-plan-contract.md +0 -64
- package/docs/plan-execute-contract.md +0 -123
- package/docs/platform-scan-protocol.md +0 -298
- package/docs/revision-mode.md +0 -115
- package/docs/sillyspec/file-lifecycle/known-implementation-gaps.md +0 -99
- package/docs/sillyspec/file-lifecycle/platform-workflows-sync.md +0 -218
- package/docs/sillyspec/file-lifecycle/stage-artifacts.md +0 -167
- package/docs/sillyspec/file-lifecycle/storage-and-state.md +0 -148
- package/docs/sillyspec/file-lifecycle/worktree-and-guard.md +0 -193
- package/docs/sillyspec/file-lifecycle.md +0 -125
- package/docs/workflow-contract-regression.md +0 -106
- package/docs/worktree-isolation.md +0 -252
- package/packages/dashboard/dist/assets/index-O2W5RV4z.css +0 -1
- package/packages/dashboard/dist/prototype-dashboard.html +0 -836
- package/packages/dashboard/dist/prototype-overview.html +0 -256
- package/packages/dashboard/public/prototype-dashboard.html +0 -836
- package/packages/dashboard/public/prototype-overview.html +0 -256
- package/packages/dashboard/src/components/HResizeHandle.vue +0 -48
- package/packages/dashboard/src/components/ProjectCard.vue +0 -187
- package/packages/dashboard/src/components/VResizeHandle.vue +0 -61
- package/packages/dashboard/src/composables/useLayout.js +0 -131
- package/src/brainstorm-postcheck.js +0 -158
- package/src/change-list.js +0 -52
- package/src/change-risk-profile.js +0 -352
- package/src/classify-change.js +0 -73
- package/src/constants.js +0 -70
- package/src/contract-matrix.js +0 -278
- package/src/db.js +0 -201
- package/src/endpoint-extractor.js +0 -315
- package/src/hooks/claude-pre-tool-use.cjs +0 -125
- package/src/hooks/worktree-guard.js +0 -761
- package/src/knowledge-match.js +0 -130
- package/src/modules.js +0 -482
- package/src/scan-postcheck.js +0 -383
- package/src/stage-contract.js +0 -700
- package/src/stages/brainstorm-auto.js +0 -229
- package/src/stages/explore.js +0 -34
- package/src/stages/knowledge.js +0 -498
- package/src/stages/plan-postcheck.js +0 -513
- package/src/sync.js +0 -497
- package/src/task-review.js +0 -346
- package/src/workflow.js +0 -785
- package/src/worktree-apply.js +0 -549
- package/src/worktree.js +0 -932
- package/templates/workflows/archive-impact.yaml +0 -79
- package/templates/workflows/scan-docs.yaml +0 -132
- package/test/brainstorm-plan-contract.test.mjs +0 -273
- package/test/check-syntax.mjs +0 -26
- package/test/cli-top-level-aliases.test.mjs +0 -174
- package/test/contract-artifacts.test.mjs +0 -323
- package/test/decision-supersede.test.mjs +0 -277
- package/test/knowledge-match.test.mjs +0 -231
- package/test/plan-execute-contract.test.mjs +0 -330
- package/test/plan-optimization.test.mjs +0 -572
- package/test/platform-artifacts.test.mjs +0 -190
- package/test/platform-failure-samples.test.mjs +0 -199
- package/test/platform-recovery-chain.test.mjs +0 -179
- package/test/platform-recovery.test.mjs +0 -167
- package/test/platform-scan-p0.test.mjs +0 -175
- package/test/revision-v1.test.mjs +0 -1145
- package/test/run-sanitize-project-name.test.mjs +0 -51
- package/test/run-scan-postcheck-fail.test.mjs +0 -64
- package/test/run-scan-project-parse.test.mjs +0 -200
- package/test/run-tests.mjs +0 -48
- package/test/scan-docs-yaml-placeholders.test.mjs +0 -84
- package/test/scan-knowledge.test.mjs +0 -175
- package/test/scan-paths.test.mjs +0 -68
- package/test/scan-postcheck-project-priority.test.mjs +0 -85
- package/test/scan-postcheck.test.mjs +0 -197
- package/test/scan-workflow-anyfailed-block.test.mjs +0 -52
- package/test/spec-dir.test.mjs +0 -206
- package/test/stage-contract-failed-post-check.test.mjs +0 -102
- package/test/stage-contract.test.mjs +0 -299
- package/test/stage-definitions.test.mjs +0 -39
- package/test/wait-gates.test.mjs +0 -501
- package/test/workflow-spec-base.test.mjs +0 -142
- package/test/worktree-guard.test.mjs +0 -136
- package/test/worktree-native-overlay.test.mjs +0 -188
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sillyspec:knowledge
|
|
3
|
-
description: Agent-safe knowledge base commands for SillySpec repositories. Search, inspect, validate, refresh, and propose knowledge entries.
|
|
4
|
-
argument-hint: "search --query \"<text>\" --limit N | inspect --id \"<id>\" | validate | refresh | propose --title \"<title>\" --category <name>"
|
|
5
|
-
version: "3.19.2"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 交互规范
|
|
9
|
-
当需要用户从多个选项中做出选择时,必须使用 Claude Code 内置的 AskUserQuestion 工具,将选项以参数传入。
|
|
10
|
-
|
|
11
|
-
## 何时使用此技能
|
|
12
|
-
Use this skill when working on a SillySpec repository and the task may depend on prior project knowledge, known issues, implementation patterns, scan-derived learnings, execute-stage knowledge hits, or `.sillyspec/knowledge`.
|
|
13
|
-
|
|
14
|
-
Before implementing changes, **first search the knowledge base** to avoid repeating known work or running into known issues.
|
|
15
|
-
|
|
16
|
-
## 命令列表
|
|
17
|
-
|
|
18
|
-
### 1. knowledge search — 搜索知识库
|
|
19
|
-
在执行任务前搜索相关知识。
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
sillyspec knowledge search --query "<task summary>" --limit 5
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
**示例:**
|
|
26
|
-
```bash
|
|
27
|
-
sillyspec knowledge search --query "worktree baseline apply conflict" --limit 5
|
|
28
|
-
sillyspec knowledge search --query "postcheck validation error"
|
|
29
|
-
sillyspec knowledge search --query "GLM usage metadata"
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
**输出(JSON):**
|
|
33
|
-
```json
|
|
34
|
-
{
|
|
35
|
-
"ok": true,
|
|
36
|
-
"query": "worktree baseline",
|
|
37
|
-
"matches": [
|
|
38
|
-
{
|
|
39
|
-
"id": "patterns",
|
|
40
|
-
"path": "knowledge/patterns.md",
|
|
41
|
-
"title": "Patterns",
|
|
42
|
-
"summary": "每个阶段对应 `src/stages/` 下的独立模块...",
|
|
43
|
-
"score": 3,
|
|
44
|
-
"tags": ["worktree", "git-worktree", "WorktreeManager"],
|
|
45
|
-
"category": "Patterns"
|
|
46
|
-
}
|
|
47
|
-
]
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
**使用场景:**
|
|
52
|
-
- 实现新功能前,检查是否有现有模式可复用
|
|
53
|
-
- 遇到报错前,搜索是否是已知问题
|
|
54
|
-
- 修改特定模块前,了解约定和坑点
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
### 2. knowledge inspect — 读取知识条目详情
|
|
59
|
-
搜索命中后,读取完整条目内容。
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
sillyspec knowledge inspect --id "<knowledge-id>"
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
**示例:**
|
|
66
|
-
```bash
|
|
67
|
-
sillyspec knowledge inspect --id "patterns"
|
|
68
|
-
sillyspec knowledge inspect --id "known-issues/sqljs-wasm-only"
|
|
69
|
-
sillyspec knowledge inspect --id "generated/worktree-baseline-conflict"
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
**输出(JSON):**
|
|
73
|
-
```json
|
|
74
|
-
{
|
|
75
|
-
"ok": true,
|
|
76
|
-
"entry": {
|
|
77
|
-
"id": "patterns",
|
|
78
|
-
"title": "Patterns",
|
|
79
|
-
"summary": "每个阶段对应 `src/stages/` 下的独立模块...",
|
|
80
|
-
"zone": "manual",
|
|
81
|
-
"path": "knowledge/patterns.md",
|
|
82
|
-
"meta": {
|
|
83
|
-
"author": "qinyi",
|
|
84
|
-
"created_at": "2026-06-19T12:40:00+08:00",
|
|
85
|
-
"updated_at": "2026-06-24T10:00:00+08:00"
|
|
86
|
-
},
|
|
87
|
-
"body": "完整 markdown 内容..."
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
**zone 说明:**
|
|
93
|
-
- `manual` — 人工维护的知识(可直接信任)
|
|
94
|
-
- `generated` — 自动提取的知识(scan 生成,需人工审核)
|
|
95
|
-
- `proposed` — 提议待审核的知识(未合并)
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
### 3. knowledge validate — 校验知识库健康度
|
|
100
|
-
在 commit/archive 前检查知识库是否可用。
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
sillyspec knowledge validate
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
**输出(JSON):**
|
|
107
|
-
```json
|
|
108
|
-
{
|
|
109
|
-
"ok": false,
|
|
110
|
-
"errors": [
|
|
111
|
-
{
|
|
112
|
-
"code": "broken_reference",
|
|
113
|
-
"path": "knowledge/generated/foo.md",
|
|
114
|
-
"referenced_in": "INDEX.md",
|
|
115
|
-
"display": "Foo Pattern"
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"code": "empty_file",
|
|
119
|
-
"path": "knowledge/bar.md"
|
|
120
|
-
}
|
|
121
|
-
],
|
|
122
|
-
"warnings": [
|
|
123
|
-
{
|
|
124
|
-
"code": "too_many_uncategorized",
|
|
125
|
-
"count": 12,
|
|
126
|
-
"path": "knowledge/uncategorized.md"
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"code": "unregistered_file",
|
|
130
|
-
"path": "knowledge/new-file.md"
|
|
131
|
-
}
|
|
132
|
-
]
|
|
133
|
-
}
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
**错误码说明:**
|
|
137
|
-
| code | 说明 |
|
|
138
|
-
|---|---|
|
|
139
|
-
| `knowledge_dir_missing` | `.sillyspec/knowledge/` 目录不存在 |
|
|
140
|
-
| `missing_index` | `INDEX.md` 不存在 |
|
|
141
|
-
| `broken_reference` | INDEX.md 引用的文件不存在 |
|
|
142
|
-
| `empty_file` | 知识文件为空 |
|
|
143
|
-
| `too_many_uncategorized` | uncategorized.md 条目 ≥10,需清理 |
|
|
144
|
-
| `unregistered_file` | 手动知识文件未在 INDEX.md 注册 |
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
### 4. knowledge refresh — 从 scan 文档刷新自动知识
|
|
149
|
-
**仅写 generated/ 区,不覆盖 manual/。**
|
|
150
|
-
|
|
151
|
-
```bash
|
|
152
|
-
sillyspec knowledge refresh
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
**使用场景:**
|
|
156
|
-
- scan 阶段完成后,自动提取可复用知识
|
|
157
|
-
- archive 阶段完成后,沉淀长期有效的模式
|
|
158
|
-
|
|
159
|
-
**行为:**
|
|
160
|
-
1. 扫描 `.sillyspec/docs/<project>/scan/*.md`
|
|
161
|
-
2. 提取每个 `## 章节`(至少 3 行)作为知识条目
|
|
162
|
-
3. 写入 `.sillyspec/knowledge/generated/<slug>.md`
|
|
163
|
-
4. 生成 `generated/INDEX.md`
|
|
164
|
-
|
|
165
|
-
**输出(JSON):**
|
|
166
|
-
```json
|
|
167
|
-
{
|
|
168
|
-
"ok": true,
|
|
169
|
-
"generated_count": 8,
|
|
170
|
-
"new_count": 5,
|
|
171
|
-
"overwritten_count": 3,
|
|
172
|
-
"files": [
|
|
173
|
-
{ "file": "generated/worktree-isolation.md", "title": "...", "new": true },
|
|
174
|
-
{ "file": "generated/progress-management.md", "title": "...", "new": false }
|
|
175
|
-
]
|
|
176
|
-
}
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
**注意事项:**
|
|
180
|
-
- generated/ 区知识是自动生成,不保证准确,需人工审核后合并到 manual/
|
|
181
|
-
- 已有文件会被覆盖( overwrite_count)
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
### 5. knowledge propose — 提议新知识
|
|
186
|
-
不直接编辑 manual/,而是写入 proposed/ 供审核。
|
|
187
|
-
|
|
188
|
-
```bash
|
|
189
|
-
sillyspec knowledge propose --title "<title>" --category <category> --body "<content>" --from "<source>"
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
**参数说明:**
|
|
193
|
-
| 参数 | 必填 | 说明 |
|
|
194
|
-
|---|---|---|
|
|
195
|
-
| `--title` | ✅ | 知识标题 |
|
|
196
|
-
| `--category` | ❌ | 分类(默认 uncategorized),如 known-issues, patterns, conventions |
|
|
197
|
-
| `--body` | ❌ | 知识正文 |
|
|
198
|
-
| `--from` | ❌ | 来源标注(如 execute/quick/scan) |
|
|
199
|
-
|
|
200
|
-
**示例:**
|
|
201
|
-
```bash
|
|
202
|
-
sillyspec knowledge propose --title "GLM API 超时处理" --category known-issues --body "GLM 模型默认超时 30 秒..." --from "execute"
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
**输出(JSON):**
|
|
206
|
-
```json
|
|
207
|
-
{
|
|
208
|
-
"ok": true,
|
|
209
|
-
"id": "proposed/glm-api-timeout",
|
|
210
|
-
"path": "knowledge/proposed/glm-api-timeout.md",
|
|
211
|
-
"title": "GLM API 超时处理",
|
|
212
|
-
"category": "known-issues",
|
|
213
|
-
"new": true,
|
|
214
|
-
"action": "created"
|
|
215
|
-
}
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
**后续流程:**
|
|
219
|
-
- archive/commit 阶段审核 proposed/ 条目
|
|
220
|
-
- 合格的合并到 manual/,不合格的删除
|
|
221
|
-
|
|
222
|
-
---
|
|
223
|
-
|
|
224
|
-
## Agent 使用指南
|
|
225
|
-
|
|
226
|
-
### 任务前必查
|
|
227
|
-
在开始实现新功能、修改现有代码、或遇到报错前:
|
|
228
|
-
1. `knowledge search --query "<任务关键词>"`
|
|
229
|
-
2. 命中则 `knowledge inspect --id "<id>"`
|
|
230
|
-
3. 遵循知识中的约定和避坑建议
|
|
231
|
-
|
|
232
|
-
### 发现新知识
|
|
233
|
-
执行任务中发现可复用模式或新坑:
|
|
234
|
-
1. `knowledge propose --title "<标题>" --category <分类> --body "<内容>"`
|
|
235
|
-
2. 不要直接编辑 `.sillyspec/knowledge/manual/*.md`
|
|
236
|
-
|
|
237
|
-
### 提交前校验
|
|
238
|
-
commit/archive 前检查知识库状态:
|
|
239
|
-
1. `knowledge validate`
|
|
240
|
-
2. 如有 errors,先修复再提交
|
|
241
|
-
|
|
242
|
-
### 扫描后刷新
|
|
243
|
-
scan 阶段完成后:
|
|
244
|
-
1. `knowledge refresh`
|
|
245
|
-
2. 审核生成的 `generated/*.md`,有用的合并到 manual/
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
## 禁止事项
|
|
250
|
-
|
|
251
|
-
❌ **不要直接编辑** `manual/` 或 `generated/` 中的知识文件
|
|
252
|
-
- 使用 `knowledge propose` 提议新知识
|
|
253
|
-
- 使用 `knowledge refresh` 刷新自动知识
|
|
254
|
-
|
|
255
|
-
❌ **不要使用 `grep` 或 `cat` 直接读取知识文件**
|
|
256
|
-
- 使用 `knowledge search` 和 `knowledge inspect`
|
|
257
|
-
- 它们使用与 execute 阶段相同的匹配引擎
|
|
258
|
-
|
|
259
|
-
❌ **不要让 agent 去审核 proposed/ 条目**
|
|
260
|
-
- 提议供人工审核,不要自动合并
|
|
261
|
-
- 只有用户明确要求才合并
|
|
262
|
-
|
|
263
|
-
---
|
|
264
|
-
|
|
265
|
-
## 设计原则
|
|
266
|
-
|
|
267
|
-
- **Agent-safe:** 所有输出为 JSON,失败有明确错误码
|
|
268
|
-
- **写保护:** refresh 仅写 generated/,propose 仅写 proposed/,不碰 manual/
|
|
269
|
-
- **匹配引擎:** 使用 `knowledge-match.js`(与 execute 阶段一致)
|
|
270
|
-
- **审计友好:** 每个条目记录来源、创建/更新时间
|
package/.husky/pre-push
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
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
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
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,64 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
author: qinyi
|
|
3
|
-
created_at: 2026-06-19 00:45:00
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Brainstorm → Plan Contract
|
|
7
|
-
|
|
8
|
-
## 核心契约
|
|
9
|
-
|
|
10
|
-
`design.md` 是 plan 阶段的**主要设计输入**。plan 不应该在空的或缺少关键决策的 design.md 上生成任务。
|
|
11
|
-
|
|
12
|
-
## design.md 结构要求
|
|
13
|
-
|
|
14
|
-
### 必须包含(error — 阻断 plan)
|
|
15
|
-
|
|
16
|
-
| # | 章节 | 匹配关键词 |
|
|
17
|
-
|---|------|-----------|
|
|
18
|
-
| 1 | 目标/背景/问题描述 | 目标、goal、objective、背景、background、问题、problem、purpose、目的 |
|
|
19
|
-
| 2 | 范围/总体方案/设计 | 范围、scope、总体方案、方案、approach、solution、设计、design |
|
|
20
|
-
| 3 | 决策/方案选择 | 决策、decision、选择、choice、方案选择、D-xxx@vN(decisions.md 引用) |
|
|
21
|
-
|
|
22
|
-
### 建议包含(warning — 不阻断 plan)
|
|
23
|
-
|
|
24
|
-
| # | 章节 | 匹配关键词 |
|
|
25
|
-
|---|------|-----------|
|
|
26
|
-
| 4 | 非目标/Non-goals | 非目标、non-goals、不做、out of scope |
|
|
27
|
-
| 5 | 约束/风险/Trade-off | 约束、constraint、风险、risk、trade-off |
|
|
28
|
-
| 6 | 文件变更清单 | 文件变更、变更清单、changed files |
|
|
29
|
-
|
|
30
|
-
## 校验规则
|
|
31
|
-
|
|
32
|
-
plan 启动时(第一个步骤执行前)调用 `validateDesignForPlan(designContent)`:
|
|
33
|
-
|
|
34
|
-
| 结果 | 行为 |
|
|
35
|
-
|------|------|
|
|
36
|
-
| 全部通过 | 正常进入 plan |
|
|
37
|
-
| 有 warning | 继续执行,展示警告 |
|
|
38
|
-
| 有 error | fail-fast,提示修复 design.md |
|
|
39
|
-
|
|
40
|
-
## 第一版设计原则
|
|
41
|
-
|
|
42
|
-
- **轻量 markdown 契约**:检查标题和关键词,不强 schema
|
|
43
|
-
- **关键词宽泛**:中英文都支持
|
|
44
|
-
- **decisions.md 引用也算决策**:`D-xxx@vN` 或 `decisions.md` 引用即满足决策检查
|
|
45
|
-
- **不做 brainstorm postcheck 阻断**:brainstorm 完成时不校验此契约(brainstorm 可以产出不完整的 design.md),只在 plan 启动时校验
|
|
46
|
-
|
|
47
|
-
## 错误处理
|
|
48
|
-
|
|
49
|
-
| 场景 | 行为 |
|
|
50
|
-
|------|------|
|
|
51
|
-
| design.md 不存在 | 不校验(向后兼容,plan 可以独立运行) |
|
|
52
|
-
| design.md 空 | fail-fast |
|
|
53
|
-
| 缺目标/背景 | fail-fast |
|
|
54
|
-
| 缺范围/方案 | fail-fast |
|
|
55
|
-
| 缺决策 | fail-fast |
|
|
56
|
-
| 缺非目标/约束/文件清单 | warning,继续执行 |
|
|
57
|
-
|
|
58
|
-
## 完整契约链
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
brainstorm → design.md → [Plan Contract 校验] → plan → plan.md → [Execute Contract 校验] → execute
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
每个阶段启动前都校验上游产物,形成双重保险。
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
author: qinyi
|
|
3
|
-
created_at: 2026-06-19 00:25:00
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Plan → Execute Contract
|
|
7
|
-
|
|
8
|
-
## 核心契约
|
|
9
|
-
|
|
10
|
-
`plan.md` 是 execute 阶段的**唯一任务蓝图输入**。execute 不从其他来源(brainstorm、tasks.md、agent 记忆)获取任务列表。
|
|
11
|
-
|
|
12
|
-
## plan.md 格式要求
|
|
13
|
-
|
|
14
|
-
### Checkbox Task(必须)
|
|
15
|
-
|
|
16
|
-
execute 通过 checkbox 解析任务,格式:
|
|
17
|
-
|
|
18
|
-
```markdown
|
|
19
|
-
- [ ] task-01: 实现用户认证模块
|
|
20
|
-
- [ ] task-02: 添加权限校验中间件
|
|
21
|
-
- [ ] task-03: 编写集成测试
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
### Task ID 规则
|
|
25
|
-
|
|
26
|
-
- 格式:`task-XX`(XX 为数字,建议两位补零)
|
|
27
|
-
- 必须唯一:同一 plan.md 内不能有两个相同 task id
|
|
28
|
-
- 建议连续:从 task-01 开始递增
|
|
29
|
-
- 不能为空:每个 checkbox task 必须有 id
|
|
30
|
-
|
|
31
|
-
### Task Name 规则
|
|
32
|
-
|
|
33
|
-
- 必须非空
|
|
34
|
-
- 清晰描述任务内容
|
|
35
|
-
|
|
36
|
-
### Wave 分组
|
|
37
|
-
|
|
38
|
-
```markdown
|
|
39
|
-
## Wave 1
|
|
40
|
-
- [ ] task-01: 搭建项目骨架
|
|
41
|
-
- [ ] task-02: 配置 CI/CD
|
|
42
|
-
|
|
43
|
-
## Wave 2
|
|
44
|
-
- [ ] task-03: 实现业务逻辑
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
- Wave 内任务无依赖(可并行)
|
|
48
|
-
- Wave 间有依赖(按序执行)
|
|
49
|
-
- Wave 只能引用已存在的 task
|
|
50
|
-
|
|
51
|
-
## 校验规则
|
|
52
|
-
|
|
53
|
-
execute 进入前调用 `validatePlanForExecute(planContent)`:
|
|
54
|
-
|
|
55
|
-
| # | 规则 | 级别 |
|
|
56
|
-
|---|------|------|
|
|
57
|
-
| 1 | plan.md 非空 | error |
|
|
58
|
-
| 2 | 至少有一个 checkbox task | error |
|
|
59
|
-
| 3 | task id 唯一 | error |
|
|
60
|
-
| 4 | task id 连续(task-01 起) | error |
|
|
61
|
-
| 5 | task name 非空 | error |
|
|
62
|
-
| 6 | task 有 id(无 id 只 warning) | warning |
|
|
63
|
-
|
|
64
|
-
校验失败 → fail-fast,不进入 execute。
|
|
65
|
-
校验通过但有 warning → 继续执行,提示警告。
|
|
66
|
-
|
|
67
|
-
## 复杂度场景
|
|
68
|
-
|
|
69
|
-
### none(最小变更)
|
|
70
|
-
```markdown
|
|
71
|
-
## Wave 1
|
|
72
|
-
- [ ] task-01: 修复 bug
|
|
73
|
-
```
|
|
74
|
-
至少 1 个 checkbox task。
|
|
75
|
-
|
|
76
|
-
### light(轻量变更)
|
|
77
|
-
```markdown
|
|
78
|
-
## Wave 1
|
|
79
|
-
- [ ] task-01: 添加 API 端点
|
|
80
|
-
- [ ] task-02: 添加前端调用
|
|
81
|
-
```
|
|
82
|
-
1 个 Wave,2-3 个 task。
|
|
83
|
-
|
|
84
|
-
### full(完整变更)
|
|
85
|
-
```markdown
|
|
86
|
-
## Wave 1: 基础设施
|
|
87
|
-
- [ ] task-01: 数据库 schema
|
|
88
|
-
- [ ] task-02: 模型定义
|
|
89
|
-
|
|
90
|
-
## Wave 2: 业务逻辑
|
|
91
|
-
- [ ] task-03: API 实现
|
|
92
|
-
- [ ] task-04: 业务规则
|
|
93
|
-
|
|
94
|
-
## Wave 3: 测试
|
|
95
|
-
- [ ] task-05: 集成测试
|
|
96
|
-
```
|
|
97
|
-
多个 Wave,每个 Wave 1-N 个 task。
|
|
98
|
-
|
|
99
|
-
## execute reopen 契约
|
|
100
|
-
|
|
101
|
-
当 execute 被 `--reopen` 时:
|
|
102
|
-
1. **必须从最新 plan.md 重新解析 steps**(不复用旧 task/wave)
|
|
103
|
-
2. 如果 plan.md 已变更(wave 数量变了),execute steps 会反映最新状态
|
|
104
|
-
3. 旧 completed steps 不保留(全部回到 pending/stale)
|
|
105
|
-
|
|
106
|
-
## 错误处理
|
|
107
|
-
|
|
108
|
-
| 场景 | 行为 |
|
|
109
|
-
|------|------|
|
|
110
|
-
| plan.md 不存在 | 生成默认 3 Wave(向后兼容) |
|
|
111
|
-
| plan.md 存在但无 checkbox | fail-fast |
|
|
112
|
-
| task id 重复 | fail-fast |
|
|
113
|
-
| task id 不连续 | fail-fast |
|
|
114
|
-
| plan.md 被修改后 execute reopen | 重新解析,使用最新 wave/task |
|
|
115
|
-
|
|
116
|
-
## 双重校验
|
|
117
|
-
|
|
118
|
-
契约在两个时点执行:
|
|
119
|
-
|
|
120
|
-
1. **plan 完成时**(plan postcheck):plan.md 不合法 → 阻断 completed,plan 阶段无法完成
|
|
121
|
-
2. **execute 启动时**(execute entry):plan.md 不合法 → fail-fast,不进入 execute
|
|
122
|
-
|
|
123
|
-
这确保 plan.md 在进入 execute 之前就是合法的,execute 启动时的校验是二次保险。
|