sillyspec 3.26.10 → 3.26.11

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.
Files changed (97) hide show
  1. package/.claude/skills/sillyspec-archive/SKILL.md +85 -85
  2. package/.claude/skills/sillyspec-brainstorm/SKILL.md +114 -114
  3. package/.claude/skills/sillyspec-commit/SKILL.md +109 -109
  4. package/.claude/skills/sillyspec-continue/SKILL.md +45 -45
  5. package/.claude/skills/sillyspec-doctor/SKILL.md +76 -76
  6. package/.claude/skills/sillyspec-execute/SKILL.md +200 -200
  7. package/.claude/skills/sillyspec-explore/SKILL.md +95 -95
  8. package/.claude/skills/sillyspec-knowledge/SKILL.md +269 -269
  9. package/.claude/skills/sillyspec-plan/SKILL.md +148 -148
  10. package/.claude/skills/sillyspec-quick/SKILL.md +111 -111
  11. package/.claude/skills/sillyspec-resume/SKILL.md +68 -68
  12. package/.claude/skills/sillyspec-scan/SKILL.md +79 -79
  13. package/.claude/skills/sillyspec-state/SKILL.md +64 -64
  14. package/.claude/skills/sillyspec-status/SKILL.md +54 -54
  15. package/.claude/skills/sillyspec-verify/SKILL.md +83 -83
  16. package/.claude/skills/sillyspec-workspace/SKILL.md +169 -169
  17. package/.gitattributes +2 -0
  18. package/.husky/pre-push +20 -20
  19. package/.npmrc-publish +2 -0
  20. package/README.md +201 -201
  21. package/SKILL.md +90 -90
  22. package/package.json +39 -39
  23. package/packages/dashboard/dist/assets/index-Bq_Z2hne.js +7446 -7446
  24. package/packages/dashboard/dist/assets/index-O2W5RV4z.css +1 -1
  25. package/packages/dashboard/dist/index.html +16 -16
  26. package/packages/dashboard/package.json +25 -25
  27. package/packages/dashboard/server/executor.js +86 -86
  28. package/packages/dashboard/server/index.js +601 -601
  29. package/packages/dashboard/server/parser.js +526 -526
  30. package/src/change-risk-profile.js +254 -254
  31. package/src/classify-change.js +109 -109
  32. package/src/config-schema.js +310 -310
  33. package/src/contract-matrix.js +379 -379
  34. package/src/db.js +350 -350
  35. package/src/dispatch/backends/local-agent.js +155 -155
  36. package/src/dispatch/backends/sillyhub-mcp.js +245 -245
  37. package/src/dispatch/probe.js +210 -210
  38. package/src/dispatch/strategy.js +121 -121
  39. package/src/docs-check.js +131 -4
  40. package/src/doctor-diagnostics.js +711 -711
  41. package/src/endpoint-extractor.js +401 -401
  42. package/src/fs-atomic.js +69 -69
  43. package/src/git-helper.js +79 -79
  44. package/src/hooks/claude-pre-tool-use.cjs +125 -125
  45. package/src/hooks/worktree-guard.js +848 -848
  46. package/src/index.js +90 -8
  47. package/src/init.js +623 -623
  48. package/src/knowledge-match.js +130 -130
  49. package/src/local-detect.js +120 -120
  50. package/src/machine-interface.js +543 -543
  51. package/src/migrate.js +127 -127
  52. package/src/progress/change-registry.js +297 -260
  53. package/src/progress/consistency-doctor.js +355 -355
  54. package/src/progress/shared.js +36 -36
  55. package/src/progress/stage-machine.js +29 -1
  56. package/src/progress/step-store.js +261 -261
  57. package/src/progress.js +1131 -1127
  58. package/src/quicklog.js +693 -693
  59. package/src/review-tier.js +77 -77
  60. package/src/run/command.js +1385 -1364
  61. package/src/run/complete-handlers.js +1443 -1399
  62. package/src/run/complete.js +225 -24
  63. package/src/run/gates.js +755 -755
  64. package/src/run/prompt.js +761 -761
  65. package/src/run/quick-audit.js +155 -146
  66. package/src/run/shared.js +1268 -1215
  67. package/src/run/stage.js +487 -479
  68. package/src/scan-postcheck.js +371 -371
  69. package/src/setup.js +416 -416
  70. package/src/sillyhub-mcp/client.js +529 -529
  71. package/src/spec-sync.js +323 -319
  72. package/src/stage-contract.js +897 -897
  73. package/src/stage-review.js +549 -549
  74. package/src/stages/archive.js +155 -155
  75. package/src/stages/brainstorm-auto.js +236 -236
  76. package/src/stages/brainstorm.js +596 -597
  77. package/src/stages/cmd-existence.js +145 -145
  78. package/src/stages/doctor.js +371 -371
  79. package/src/stages/execute.js +1003 -1003
  80. package/src/stages/explore.js +34 -34
  81. package/src/stages/index.js +29 -29
  82. package/src/stages/knowledge.js +498 -498
  83. package/src/stages/plan-postcheck.js +1302 -1302
  84. package/src/stages/plan.js +625 -623
  85. package/src/stages/quick.js +151 -151
  86. package/src/stages/scan.js +607 -607
  87. package/src/stages/status.js +64 -64
  88. package/src/stages/verify.js +264 -264
  89. package/src/sync.js +1223 -1135
  90. package/src/task-review.js +1019 -1019
  91. package/src/verify-postcheck.js +1186 -1186
  92. package/src/workflow.js +600 -600
  93. package/src/worktree-apply.js +1213 -1136
  94. package/src/worktree-deps.js +353 -353
  95. package/src/worktree.js +1481 -1481
  96. package/templates/workflows/archive-impact.yaml +79 -79
  97. package/templates/workflows/scan-docs.yaml +132 -132
@@ -1,79 +1,79 @@
1
- name: archive-impact
2
- description: 分析变更影响的模块并同步模块文档
3
- spec_version: 1
4
-
5
- roles:
6
- - id: impact-analyzer
7
- name: "影响分析"
8
- task: "分析 git diff,提取变更影响模块"
9
- inputs:
10
- paths: [".sillyspec/changes/", ".sillyspec/docs/*/modules/"]
11
- hints:
12
- grep_patterns: ["_module-map", "module-impact", "git diff"]
13
- outputs:
14
- - path: ".sillyspec/changes/<change-name>/module-impact.md"
15
- required: true
16
- checks:
17
- - type: file_exists
18
- - type: min_lines
19
- min: 20
20
- - type: contains_sections
21
- sections: ["模块影响矩阵", "未匹配文件"]
22
- constraints:
23
- - "以 git diff 为准(真实 > 声明)"
24
- - "影响类型:逻辑变更/数据结构变更/接口变更/调用关系变更/配置变更/新增"
25
- - "需要 review 标记不确定的影响"
26
-
27
- - id: doc-syncer
28
- name: "文档同步"
29
- task: "根据 module-impact.md 同步更新模块索引和卡片"
30
- depends_on:
31
- - impact-analyzer
32
- inputs:
33
- from_role: impact-analyzer
34
- output: module-impact
35
- output_description: "变更影响分析结果,包含模块影响矩阵"
36
- paths: [".sillyspec/docs/*/modules/"]
37
- hints:
38
- grep_patterns: ["_module-map", "module-impact"]
39
- outputs:
40
- - path: ".sillyspec/docs/sillyspec/modules/_module-map.yaml"
41
- required: false
42
- checks:
43
- - type: file_exists
44
- - path: ".sillyspec/docs/sillyspec/modules/<module-id>.md"
45
- required: false
46
- # checks 跳过:路径含动态 <module-id> 占位符,不适合静态检查
47
- constraints:
48
- - "结构化事实改 _module-map.yaml,语义解释改模块卡片"
49
- - "人工备注区域永远保护,不覆盖"
50
- - "更新前展示 diff 摘要,请用户确认"
51
-
52
- orchestration:
53
- mode: sequential
54
- timeout_per_role: 180
55
-
56
- checks:
57
- role_level:
58
- - type: file_exists
59
- - type: min_lines
60
- min: 10
61
- workflow_level:
62
- - type: file_exists
63
- path: ".sillyspec/changes/<change-name>/module-impact.md"
64
-
65
- retry:
66
- max_attempts: 1
67
- include_failure_context: true
68
- retry_scope: failed_role_only
69
-
70
- on_check_failure: prompt_retry
71
-
72
- permissions:
73
- write_mode: patch_only
74
- write_scope:
75
- - ".sillyspec/docs/"
76
- - ".sillyspec/changes/<change-name>/"
77
- allow_shell: true
78
- allow_network: false
79
- allow_git: true
1
+ name: archive-impact
2
+ description: 分析变更影响的模块并同步模块文档
3
+ spec_version: 1
4
+
5
+ roles:
6
+ - id: impact-analyzer
7
+ name: "影响分析"
8
+ task: "分析 git diff,提取变更影响模块"
9
+ inputs:
10
+ paths: [".sillyspec/changes/", ".sillyspec/docs/*/modules/"]
11
+ hints:
12
+ grep_patterns: ["_module-map", "module-impact", "git diff"]
13
+ outputs:
14
+ - path: ".sillyspec/changes/<change-name>/module-impact.md"
15
+ required: true
16
+ checks:
17
+ - type: file_exists
18
+ - type: min_lines
19
+ min: 20
20
+ - type: contains_sections
21
+ sections: ["模块影响矩阵", "未匹配文件"]
22
+ constraints:
23
+ - "以 git diff 为准(真实 > 声明)"
24
+ - "影响类型:逻辑变更/数据结构变更/接口变更/调用关系变更/配置变更/新增"
25
+ - "需要 review 标记不确定的影响"
26
+
27
+ - id: doc-syncer
28
+ name: "文档同步"
29
+ task: "根据 module-impact.md 同步更新模块索引和卡片"
30
+ depends_on:
31
+ - impact-analyzer
32
+ inputs:
33
+ from_role: impact-analyzer
34
+ output: module-impact
35
+ output_description: "变更影响分析结果,包含模块影响矩阵"
36
+ paths: [".sillyspec/docs/*/modules/"]
37
+ hints:
38
+ grep_patterns: ["_module-map", "module-impact"]
39
+ outputs:
40
+ - path: ".sillyspec/docs/sillyspec/modules/_module-map.yaml"
41
+ required: false
42
+ checks:
43
+ - type: file_exists
44
+ - path: ".sillyspec/docs/sillyspec/modules/<module-id>.md"
45
+ required: false
46
+ # checks 跳过:路径含动态 <module-id> 占位符,不适合静态检查
47
+ constraints:
48
+ - "结构化事实改 _module-map.yaml,语义解释改模块卡片"
49
+ - "人工备注区域永远保护,不覆盖"
50
+ - "更新前展示 diff 摘要,请用户确认"
51
+
52
+ orchestration:
53
+ mode: sequential
54
+ timeout_per_role: 180
55
+
56
+ checks:
57
+ role_level:
58
+ - type: file_exists
59
+ - type: min_lines
60
+ min: 10
61
+ workflow_level:
62
+ - type: file_exists
63
+ path: ".sillyspec/changes/<change-name>/module-impact.md"
64
+
65
+ retry:
66
+ max_attempts: 1
67
+ include_failure_context: true
68
+ retry_scope: failed_role_only
69
+
70
+ on_check_failure: prompt_retry
71
+
72
+ permissions:
73
+ write_mode: patch_only
74
+ write_scope:
75
+ - ".sillyspec/docs/"
76
+ - ".sillyspec/changes/<change-name>/"
77
+ allow_shell: true
78
+ allow_network: false
79
+ allow_git: true
@@ -1,132 +1,132 @@
1
- name: scan-docs
2
- description: 并行生成项目的扫描文档(7份)
3
- spec_version: 1
4
-
5
- roles:
6
- - id: arch
7
- name: "技术架构"
8
- task: "生成 ARCHITECTURE.md"
9
- inputs:
10
- paths:
11
- - "src/*.js"
12
- - "package.json"
13
- hints:
14
- grep_patterns: ["class ", "export ", "import ", "schema", "CREATE TABLE"]
15
- outputs:
16
- - path: "{SPEC_ROOT}/docs/<project>/scan/ARCHITECTURE.md"
17
- required: true
18
- checks:
19
- - type: file_exists
20
- - type: min_lines
21
- min: 20
22
- - type: contains_sections
23
- sections: ["技术栈", "架构概览"]
24
- constraints:
25
- - "禁止读源码全文,只用 grep/rg 搜索"
26
- - "Schema 只记表名+说明+字段数"
27
-
28
- - id: conventions
29
- name: "代码约定"
30
- task: "生成 CONVENTIONS.md"
31
- inputs:
32
- paths: ["src/"]
33
- hints:
34
- grep_patterns: ["function ", "const ", "async ", "try ", "catch "]
35
- outputs:
36
- - path: "{SPEC_ROOT}/docs/<project>/scan/CONVENTIONS.md"
37
- required: true
38
- checks:
39
- - type: file_exists
40
- - type: min_lines
41
- min: 15
42
- - type: contains_sections
43
- sections: ["框架隐形规则", "代码风格"]
44
- constraints:
45
- - "禁止读源码全文"
46
- - "提取 3-5 个典型模式"
47
-
48
- - id: structure
49
- name: "目录结构+外部集成"
50
- task: "生成 STRUCTURE.md 和 INTEGRATIONS.md"
51
- inputs:
52
- paths: ["./"]
53
- hints:
54
- grep_patterns: ["fetch", "http", "WebSocket", "ws", "chokidar"]
55
- outputs:
56
- - path: "{SPEC_ROOT}/docs/<project>/scan/STRUCTURE.md"
57
- required: true
58
- checks:
59
- - type: file_exists
60
- - type: min_lines
61
- min: 15
62
- - path: "{SPEC_ROOT}/docs/<project>/scan/INTEGRATIONS.md"
63
- required: true
64
- checks:
65
- - type: file_exists
66
- - type: min_lines
67
- min: 15
68
- constraints:
69
- - "STRUCTURE: 目录树+模块说明"
70
- - "INTEGRATIONS: 按类型分组外部依赖"
71
-
72
- - id: quality
73
- name: "测试+债务+概览"
74
- task: "生成 TESTING.md、CONCERNS.md、PROJECT.md"
75
- inputs:
76
- paths: ["src/", "packages/"]
77
- hints:
78
- grep_patterns: ["TODO", "FIXME", "deprecated", "test", "describe"]
79
- outputs:
80
- - path: "{SPEC_ROOT}/docs/<project>/scan/TESTING.md"
81
- required: true
82
- checks:
83
- - type: file_exists
84
- - type: min_lines
85
- min: 10
86
- - type: no_placeholder
87
- - path: "{SPEC_ROOT}/docs/<project>/scan/CONCERNS.md"
88
- required: true
89
- checks:
90
- - type: file_exists
91
- - type: min_lines
92
- min: 10
93
- - type: contains_sections
94
- sections: ["代码质量", "依赖风险"]
95
- - path: "{SPEC_ROOT}/docs/<project>/scan/PROJECT.md"
96
- required: true
97
- checks:
98
- - type: file_exists
99
- - type: min_lines
100
- min: 15
101
- - type: contains_sections
102
- sections: ["项目简介", "技术栈"]
103
- constraints:
104
- - "CONCERNS 按严重程度分组(🔴/🟡/🟢)"
105
- - "不编造不存在的测试"
106
-
107
- orchestration:
108
- mode: parallel
109
- max_concurrent: 4
110
- timeout_per_role: 120
111
-
112
- checks:
113
- workflow_level:
114
- - type: file_count
115
- path: "scan/"
116
- min: 7
117
- - type: no_empty_files
118
-
119
- retry:
120
- max_attempts: 1
121
- include_failure_context: true
122
- retry_scope: failed_role_only
123
-
124
- on_check_failure: prompt_retry
125
-
126
- permissions:
127
- write_mode: direct
128
- write_scope:
129
- - "{SPEC_ROOT}/docs/<project>/scan/"
130
- allow_shell: true
131
- allow_network: false
132
- allow_git: false
1
+ name: scan-docs
2
+ description: 并行生成项目的扫描文档(7份)
3
+ spec_version: 1
4
+
5
+ roles:
6
+ - id: arch
7
+ name: "技术架构"
8
+ task: "生成 ARCHITECTURE.md"
9
+ inputs:
10
+ paths:
11
+ - "src/*.js"
12
+ - "package.json"
13
+ hints:
14
+ grep_patterns: ["class ", "export ", "import ", "schema", "CREATE TABLE"]
15
+ outputs:
16
+ - path: "{SPEC_ROOT}/docs/<project>/scan/ARCHITECTURE.md"
17
+ required: true
18
+ checks:
19
+ - type: file_exists
20
+ - type: min_lines
21
+ min: 20
22
+ - type: contains_sections
23
+ sections: ["技术栈", "架构概览"]
24
+ constraints:
25
+ - "禁止读源码全文,只用 grep/rg 搜索"
26
+ - "Schema 只记表名+说明+字段数"
27
+
28
+ - id: conventions
29
+ name: "代码约定"
30
+ task: "生成 CONVENTIONS.md"
31
+ inputs:
32
+ paths: ["src/"]
33
+ hints:
34
+ grep_patterns: ["function ", "const ", "async ", "try ", "catch "]
35
+ outputs:
36
+ - path: "{SPEC_ROOT}/docs/<project>/scan/CONVENTIONS.md"
37
+ required: true
38
+ checks:
39
+ - type: file_exists
40
+ - type: min_lines
41
+ min: 15
42
+ - type: contains_sections
43
+ sections: ["框架隐形规则", "代码风格"]
44
+ constraints:
45
+ - "禁止读源码全文"
46
+ - "提取 3-5 个典型模式"
47
+
48
+ - id: structure
49
+ name: "目录结构+外部集成"
50
+ task: "生成 STRUCTURE.md 和 INTEGRATIONS.md"
51
+ inputs:
52
+ paths: ["./"]
53
+ hints:
54
+ grep_patterns: ["fetch", "http", "WebSocket", "ws", "chokidar"]
55
+ outputs:
56
+ - path: "{SPEC_ROOT}/docs/<project>/scan/STRUCTURE.md"
57
+ required: true
58
+ checks:
59
+ - type: file_exists
60
+ - type: min_lines
61
+ min: 15
62
+ - path: "{SPEC_ROOT}/docs/<project>/scan/INTEGRATIONS.md"
63
+ required: true
64
+ checks:
65
+ - type: file_exists
66
+ - type: min_lines
67
+ min: 15
68
+ constraints:
69
+ - "STRUCTURE: 目录树+模块说明"
70
+ - "INTEGRATIONS: 按类型分组外部依赖"
71
+
72
+ - id: quality
73
+ name: "测试+债务+概览"
74
+ task: "生成 TESTING.md、CONCERNS.md、PROJECT.md"
75
+ inputs:
76
+ paths: ["src/", "packages/"]
77
+ hints:
78
+ grep_patterns: ["TODO", "FIXME", "deprecated", "test", "describe"]
79
+ outputs:
80
+ - path: "{SPEC_ROOT}/docs/<project>/scan/TESTING.md"
81
+ required: true
82
+ checks:
83
+ - type: file_exists
84
+ - type: min_lines
85
+ min: 10
86
+ - type: no_placeholder
87
+ - path: "{SPEC_ROOT}/docs/<project>/scan/CONCERNS.md"
88
+ required: true
89
+ checks:
90
+ - type: file_exists
91
+ - type: min_lines
92
+ min: 10
93
+ - type: contains_sections
94
+ sections: ["代码质量", "依赖风险"]
95
+ - path: "{SPEC_ROOT}/docs/<project>/scan/PROJECT.md"
96
+ required: true
97
+ checks:
98
+ - type: file_exists
99
+ - type: min_lines
100
+ min: 15
101
+ - type: contains_sections
102
+ sections: ["项目简介", "技术栈"]
103
+ constraints:
104
+ - "CONCERNS 按严重程度分组(🔴/🟡/🟢)"
105
+ - "不编造不存在的测试"
106
+
107
+ orchestration:
108
+ mode: parallel
109
+ max_concurrent: 4
110
+ timeout_per_role: 120
111
+
112
+ checks:
113
+ workflow_level:
114
+ - type: file_count
115
+ path: "scan/"
116
+ min: 7
117
+ - type: no_empty_files
118
+
119
+ retry:
120
+ max_attempts: 1
121
+ include_failure_context: true
122
+ retry_scope: failed_role_only
123
+
124
+ on_check_failure: prompt_retry
125
+
126
+ permissions:
127
+ write_mode: direct
128
+ write_scope:
129
+ - "{SPEC_ROOT}/docs/<project>/scan/"
130
+ allow_shell: true
131
+ allow_network: false
132
+ allow_git: false