@chenmk/superflow 0.4.0 → 0.5.1

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 (242) hide show
  1. package/INSTALL.en.md +58 -12
  2. package/INSTALL.md +62 -33
  3. package/README.md +181 -54
  4. package/README.zh-CN.md +158 -51
  5. package/assets/brand/managed-review-loop.png +0 -0
  6. package/assets/manifest.json +10 -5
  7. package/assets/scripts/superflow-coding-ready.mjs +135 -0
  8. package/assets/scripts/superflow-dependency-update-hook.sh +81 -8
  9. package/assets/scripts/superflow-document-audit.mjs +240 -0
  10. package/assets/scripts/superflow-environment-preflight.mjs +398 -0
  11. package/assets/scripts/superflow-hook-guard.sh +40 -1
  12. package/assets/scripts/superflow-managed-command-guard.py +309 -0
  13. package/assets/scripts/superflow-managed-executor-preflight.mjs +421 -0
  14. package/assets/scripts/superflow-managed-owner-verification.sh +117 -0
  15. package/assets/scripts/superflow-managed-work-check.mjs +287 -26
  16. package/assets/scripts/superflow-managed-work-guard.sh +6 -92
  17. package/assets/skills/superflow-clarify/SKILL.md +14 -0
  18. package/assets/skills/superflow-design/SKILL.md +38 -13
  19. package/assets/skills/superflow-docs/SKILL.md +93 -2
  20. package/assets/skills/superflow-pipeline/SKILL.md +167 -10
  21. package/assets/skills/superflow-pipeline/references/batch-prompt-template.md +17 -9
  22. package/assets/skills/superflow-pipeline/references/document-readiness.md +157 -0
  23. package/assets/skills/superflow-pipeline/references/document-templates.md +9 -5
  24. package/assets/skills/superflow-pipeline/references/feature-gated-workflow.md +14 -0
  25. package/assets/skills/superflow-pipeline/references/implementation-prompt-template.md +20 -11
  26. package/assets/skills/superflow-pipeline/references/managed-work.md +123 -15
  27. package/assets/skills/superflow-pipeline/references/orchestration.md +2 -2
  28. package/assets/skills/superflow-pipeline/references/p0-baseline-template.md +3 -2
  29. package/assets/skills/superflow-pipeline/references/quality-gate.md +7 -5
  30. package/assets/skills/superflow-pipeline/references/reviewer-checklist.md +7 -0
  31. package/assets/skills/superflow-pipeline/scripts/superflow-guard.sh +205 -9
  32. package/assets/skills/superflow-pipeline/scripts/superflow-handoff.sh +7 -4
  33. package/assets/skills/superflow-requirement-review/SKILL.md +178 -0
  34. package/assets/skills/superflow-requirement-review/agents/openai.yaml +4 -0
  35. package/assets/skills-en/superflow-clarify/SKILL.md +17 -0
  36. package/assets/skills-en/superflow-design/SKILL.md +31 -12
  37. package/assets/skills-en/superflow-docs/SKILL.md +99 -0
  38. package/assets/skills-en/superflow-pipeline/SKILL.md +163 -9
  39. package/assets/skills-en/superflow-pipeline/references/batch-prompt-template.md +4 -0
  40. package/assets/skills-en/superflow-pipeline/references/document-readiness.md +125 -0
  41. package/assets/skills-en/superflow-pipeline/references/document-templates.md +10 -0
  42. package/assets/skills-en/superflow-pipeline/references/feature-gated-workflow.md +7 -0
  43. package/assets/skills-en/superflow-pipeline/references/implementation-prompt-template.md +7 -0
  44. package/assets/skills-en/superflow-pipeline/references/managed-work.md +160 -10
  45. package/assets/skills-en/superflow-pipeline/references/quality-gate.md +12 -0
  46. package/assets/skills-en/superflow-pipeline/references/reviewer-checklist.md +7 -0
  47. package/assets/skills-en/superflow-pipeline/scripts/superflow-guard.sh +205 -9
  48. package/assets/skills-en/superflow-pipeline/scripts/superflow-handoff.sh +7 -4
  49. package/assets/skills-en/superflow-requirement-review/SKILL.md +99 -0
  50. package/assets/skills-en/superflow-requirement-review/agents/openai.yaml +4 -0
  51. package/dist/app/cli.js +64 -9
  52. package/dist/app/cli.js.map +1 -1
  53. package/dist/app/commands/change-guard.js +19 -2
  54. package/dist/app/commands/change-guard.js.map +1 -1
  55. package/dist/app/commands/check.js +107 -45
  56. package/dist/app/commands/check.js.map +1 -1
  57. package/dist/app/commands/docs.js +7 -3
  58. package/dist/app/commands/docs.js.map +1 -1
  59. package/dist/app/commands/doctor.js +174 -198
  60. package/dist/app/commands/doctor.js.map +1 -1
  61. package/dist/app/commands/eval.js +64 -0
  62. package/dist/app/commands/eval.js.map +1 -0
  63. package/dist/app/commands/implement.js +7 -3
  64. package/dist/app/commands/implement.js.map +1 -1
  65. package/dist/app/commands/init.js +12 -24
  66. package/dist/app/commands/init.js.map +1 -1
  67. package/dist/app/commands/mcp.js +167 -0
  68. package/dist/app/commands/mcp.js.map +1 -0
  69. package/dist/app/commands/pipeline.js +652 -18
  70. package/dist/app/commands/pipeline.js.map +1 -1
  71. package/dist/app/commands/requirement-review.js +6 -0
  72. package/dist/app/commands/requirement-review.js.map +1 -0
  73. package/dist/app/commands/status.js +66 -3
  74. package/dist/app/commands/status.js.map +1 -1
  75. package/dist/app/commands/uninstall.js +3 -3
  76. package/dist/app/commands/uninstall.js.map +1 -1
  77. package/dist/app/commands/update.js +83 -9
  78. package/dist/app/commands/update.js.map +1 -1
  79. package/dist/domains/agent.js +3 -11
  80. package/dist/domains/agent.js.map +1 -1
  81. package/dist/domains/config/cli-help.js +54 -12
  82. package/dist/domains/config/cli-help.js.map +1 -1
  83. package/dist/domains/config/i18n.js +6 -8
  84. package/dist/domains/config/i18n.js.map +1 -1
  85. package/dist/domains/config/manifest.js +0 -3
  86. package/dist/domains/config/manifest.js.map +1 -1
  87. package/dist/domains/deps.js +68 -7
  88. package/dist/domains/deps.js.map +1 -1
  89. package/dist/domains/managed-work/completion-policy.js +174 -0
  90. package/dist/domains/managed-work/completion-policy.js.map +1 -0
  91. package/dist/domains/managed-work/context-manifest.js +208 -0
  92. package/dist/domains/managed-work/context-manifest.js.map +1 -0
  93. package/dist/domains/managed-work/contract.js +135 -4
  94. package/dist/domains/managed-work/contract.js.map +1 -1
  95. package/dist/domains/managed-work/control-signals.js +34 -0
  96. package/dist/domains/managed-work/control-signals.js.map +1 -0
  97. package/dist/domains/managed-work/control.js +628 -0
  98. package/dist/domains/managed-work/control.js.map +1 -0
  99. package/dist/domains/managed-work/evaluation.js +497 -0
  100. package/dist/domains/managed-work/evaluation.js.map +1 -0
  101. package/dist/domains/managed-work/evidence-path.js +14 -0
  102. package/dist/domains/managed-work/evidence-path.js.map +1 -0
  103. package/dist/domains/managed-work/execution-contract.js +167 -0
  104. package/dist/domains/managed-work/execution-contract.js.map +1 -0
  105. package/dist/domains/managed-work/executor-policy.js +65 -0
  106. package/dist/domains/managed-work/executor-policy.js.map +1 -0
  107. package/dist/domains/managed-work/failure.js +65 -0
  108. package/dist/domains/managed-work/failure.js.map +1 -0
  109. package/dist/domains/managed-work/host-review.js +77 -0
  110. package/dist/domains/managed-work/host-review.js.map +1 -0
  111. package/dist/domains/managed-work/human-messages.js +31 -0
  112. package/dist/domains/managed-work/human-messages.js.map +1 -0
  113. package/dist/domains/managed-work/input.js +29 -3
  114. package/dist/domains/managed-work/input.js.map +1 -1
  115. package/dist/domains/managed-work/journal.js +77 -3
  116. package/dist/domains/managed-work/journal.js.map +1 -1
  117. package/dist/domains/managed-work/lock.js +67 -1
  118. package/dist/domains/managed-work/lock.js.map +1 -1
  119. package/dist/domains/managed-work/notifications.js +0 -15
  120. package/dist/domains/managed-work/notifications.js.map +1 -1
  121. package/dist/domains/managed-work/pair-admission.js +108 -0
  122. package/dist/domains/managed-work/pair-admission.js.map +1 -0
  123. package/dist/domains/managed-work/prompts.js +257 -22
  124. package/dist/domains/managed-work/prompts.js.map +1 -1
  125. package/dist/domains/managed-work/redaction.js +90 -0
  126. package/dist/domains/managed-work/redaction.js.map +1 -0
  127. package/dist/domains/managed-work/review-convergence.js +41 -0
  128. package/dist/domains/managed-work/review-convergence.js.map +1 -0
  129. package/dist/domains/managed-work/review-facts.js +181 -0
  130. package/dist/domains/managed-work/review-facts.js.map +1 -0
  131. package/dist/domains/managed-work/rule-selection.js +84 -0
  132. package/dist/domains/managed-work/rule-selection.js.map +1 -0
  133. package/dist/domains/managed-work/runner.js +1967 -175
  134. package/dist/domains/managed-work/runner.js.map +1 -1
  135. package/dist/domains/managed-work/schemas.js +72 -2
  136. package/dist/domains/managed-work/schemas.js.map +1 -1
  137. package/dist/domains/managed-work/service.js +82 -13
  138. package/dist/domains/managed-work/service.js.map +1 -1
  139. package/dist/domains/managed-work/state.js +195 -5
  140. package/dist/domains/managed-work/state.js.map +1 -1
  141. package/dist/domains/managed-work/storage.js +66 -24
  142. package/dist/domains/managed-work/storage.js.map +1 -1
  143. package/dist/domains/managed-work/types.js +12 -9
  144. package/dist/domains/managed-work/types.js.map +1 -1
  145. package/dist/domains/managed-work/verification-categories.js +39 -0
  146. package/dist/domains/managed-work/verification-categories.js.map +1 -0
  147. package/dist/domains/managed-work/verification-policy.js +116 -0
  148. package/dist/domains/managed-work/verification-policy.js.map +1 -0
  149. package/dist/domains/managed-work/wait.js +21 -3
  150. package/dist/domains/managed-work/wait.js.map +1 -1
  151. package/dist/domains/managed-work/workspace-binding.js +133 -0
  152. package/dist/domains/managed-work/workspace-binding.js.map +1 -0
  153. package/dist/domains/sdd-readiness.js +44 -0
  154. package/dist/domains/sdd-readiness.js.map +1 -0
  155. package/dist/domains/skill/deploy.js +0 -6
  156. package/dist/domains/skill/deploy.js.map +1 -1
  157. package/dist/domains/skill/scripts.js +0 -8
  158. package/dist/domains/skill/scripts.js.map +1 -1
  159. package/dist/domains/state.js +1 -2
  160. package/dist/domains/state.js.map +1 -1
  161. package/dist/mcp/runtime-identity.js +21 -0
  162. package/dist/mcp/runtime-identity.js.map +1 -0
  163. package/dist/mcp/server.js +369 -0
  164. package/dist/mcp/server.js.map +1 -0
  165. package/dist/platform/agent-process.js +499 -38
  166. package/dist/platform/agent-process.js.map +1 -1
  167. package/dist/platform/executable.js +28 -0
  168. package/dist/platform/executable.js.map +1 -0
  169. package/dist/platform/paths.js +1 -17
  170. package/dist/platform/paths.js.map +1 -1
  171. package/dist/platform/process-tree.js +44 -0
  172. package/dist/platform/process-tree.js.map +1 -0
  173. package/dist/platform/process.js +1 -1
  174. package/dist/platform/process.js.map +1 -1
  175. package/package.json +17 -7
  176. package/scripts/check-design-principles.mjs +107 -0
  177. package/scripts/check-managed-work-design.mjs +507 -0
  178. package/scripts/clean-dist.js +9 -0
  179. package/scripts/ensure-bin-modes.js +11 -0
  180. package/scripts/preinstall.js +57 -0
  181. package/dist/cli/index.js +0 -193
  182. package/dist/cli/index.js.map +0 -1
  183. package/dist/commands/archive.js +0 -6
  184. package/dist/commands/archive.js.map +0 -1
  185. package/dist/commands/clarify.js +0 -6
  186. package/dist/commands/clarify.js.map +0 -1
  187. package/dist/commands/design.js +0 -28
  188. package/dist/commands/design.js.map +0 -1
  189. package/dist/commands/docs.js +0 -6
  190. package/dist/commands/docs.js.map +0 -1
  191. package/dist/commands/doctor.js +0 -494
  192. package/dist/commands/doctor.js.map +0 -1
  193. package/dist/commands/implement.js +0 -6
  194. package/dist/commands/implement.js.map +0 -1
  195. package/dist/commands/init.js +0 -520
  196. package/dist/commands/init.js.map +0 -1
  197. package/dist/commands/pipeline.js +0 -6
  198. package/dist/commands/pipeline.js.map +0 -1
  199. package/dist/commands/scan.js +0 -63
  200. package/dist/commands/scan.js.map +0 -1
  201. package/dist/commands/status.js +0 -173
  202. package/dist/commands/status.js.map +0 -1
  203. package/dist/commands/uninstall.js +0 -214
  204. package/dist/commands/uninstall.js.map +0 -1
  205. package/dist/commands/update.js +0 -193
  206. package/dist/commands/update.js.map +0 -1
  207. package/dist/commands/verify.js +0 -6
  208. package/dist/commands/verify.js.map +0 -1
  209. package/dist/core/assets.js +0 -27
  210. package/dist/core/assets.js.map +0 -1
  211. package/dist/core/cli-help.js +0 -98
  212. package/dist/core/cli-help.js.map +0 -1
  213. package/dist/core/context.js +0 -123
  214. package/dist/core/context.js.map +0 -1
  215. package/dist/core/dependencies.js +0 -146
  216. package/dist/core/dependencies.js.map +0 -1
  217. package/dist/core/detect.js +0 -64
  218. package/dist/core/detect.js.map +0 -1
  219. package/dist/core/i18n.js +0 -105
  220. package/dist/core/i18n.js.map +0 -1
  221. package/dist/core/integrity.js +0 -46
  222. package/dist/core/integrity.js.map +0 -1
  223. package/dist/core/manifest.js +0 -21
  224. package/dist/core/manifest.js.map +0 -1
  225. package/dist/core/prompts.js +0 -20
  226. package/dist/core/prompts.js.map +0 -1
  227. package/dist/core/registry.js +0 -134
  228. package/dist/core/registry.js.map +0 -1
  229. package/dist/core/rules.js +0 -17
  230. package/dist/core/rules.js.map +0 -1
  231. package/dist/core/scripts.js +0 -48
  232. package/dist/core/scripts.js.map +0 -1
  233. package/dist/core/skill-check.js +0 -32
  234. package/dist/core/skill-check.js.map +0 -1
  235. package/dist/core/skills.js +0 -62
  236. package/dist/core/skills.js.map +0 -1
  237. package/dist/core/state.js +0 -54
  238. package/dist/core/state.js.map +0 -1
  239. package/dist/utils/path.js +0 -11
  240. package/dist/utils/path.js.map +0 -1
  241. package/dist/utils/shell.js +0 -29
  242. package/dist/utils/shell.js.map +0 -1
@@ -1,494 +0,0 @@
1
- import { existsSync, readdirSync, readFileSync, statSync } from 'fs';
2
- import { homedir } from 'os';
3
- import path from 'path';
4
- import { runCommand } from '../platform/process.js';
5
- import { getPlatformPaths } from '../platform/paths.js';
6
- import { parseAgentSelection, parseInstallScope, resolveAgents, } from '../domains/agent.js';
7
- import { ALL_RULES, ALL_SKILLS, CODEX_PROMPTS, hookScriptsForAgent, scriptsForAgent, } from '../domains/skill/assets.js';
8
- const VALID_STATE_FIELDS = new Set([
9
- 'workflow',
10
- 'phase',
11
- 'canonical_spec',
12
- 'context_compression',
13
- 'design_doc',
14
- 'technical_design',
15
- 'plan',
16
- 'base_ref',
17
- 'build_mode',
18
- 'build_pause',
19
- 'subagent_dispatch',
20
- 'tdd_mode',
21
- 'review_mode',
22
- 'isolation',
23
- 'verify_mode',
24
- 'auto_transition',
25
- 'verify_result',
26
- 'verification_report',
27
- 'branch_status',
28
- 'archived',
29
- 'direct_override',
30
- 'build_command',
31
- 'verify_command',
32
- 'handoff_context',
33
- 'handoff_hash',
34
- 'superpower_strategy',
35
- 'implementation_prompt',
36
- 'worktree_ports',
37
- 'created_at',
38
- 'verified_at',
39
- 'updated_at',
40
- ]);
41
- const REQUIRED_STATE_FIELDS = [
42
- 'workflow',
43
- 'phase',
44
- 'canonical_spec',
45
- 'build_mode',
46
- 'tdd_mode',
47
- 'review_mode',
48
- 'isolation',
49
- 'verify_mode',
50
- 'auto_transition',
51
- 'verify_result',
52
- 'verification_report',
53
- 'branch_status',
54
- 'archived',
55
- 'handoff_context',
56
- 'handoff_hash',
57
- 'created_at',
58
- 'updated_at',
59
- ];
60
- export async function doctorCommand(options = {}) {
61
- if (options.json) {
62
- const result = await collectDoctor(options);
63
- console.log(JSON.stringify(result, null, 2));
64
- if (result.failed)
65
- process.exit(1);
66
- return;
67
- }
68
- let failed = false;
69
- const agents = resolveAgents(parseAgentSelection(options.agent));
70
- const scope = parseDoctorScope(options.scope);
71
- const projectPath = path.resolve(options.targetPath ?? process.cwd());
72
- console.log('[CLI]');
73
- const which = await runCommand('which', ['superflow']).catch(() => ({ code: 1, stdout: '', stderr: '' }));
74
- if (which.code === 0) {
75
- console.log(' ✓ superflow CLI 在 PATH');
76
- }
77
- else {
78
- console.log(' ✗ superflow CLI 不在 PATH(FAIL)');
79
- failed = true;
80
- }
81
- console.log('\n[第三方依赖]');
82
- const openspec = await runCommand('which', ['openspec']).catch(() => ({ code: 1, stdout: '', stderr: '' }));
83
- if (openspec.code === 0) {
84
- console.log(' ✓ openspec CLI 在 PATH');
85
- }
86
- else {
87
- console.log(' ✗ openspec CLI 缺失(FAIL)');
88
- failed = true;
89
- }
90
- const openspecProjectChecks = collectOpenSpecProjectChecks(projectPath);
91
- for (const check of openspecProjectChecks) {
92
- if (check.status === 'pass') {
93
- console.log(` ✓ ${check.check}: ${check.message}`);
94
- }
95
- else {
96
- console.log(` ✗ ${check.check}: ${check.message}`);
97
- failed = true;
98
- }
99
- }
100
- for (const agent of agents) {
101
- failed = checkAgentDependencies(agent, failed, firstInstallScope(scope), projectPath);
102
- }
103
- for (const currentScope of scopesForDoctor(scope)) {
104
- for (const agent of agents) {
105
- const platform = getPlatformPaths(agent, currentScope, projectPath);
106
- console.log(`\n[脚本: ${platform.name}]`);
107
- if (existsSync(platform.scriptsDir)) {
108
- for (const hook of scriptsForAgent(agent)) {
109
- if (existsSync(path.join(platform.scriptsDir, hook))) {
110
- console.log(` ✓ ${hook}`);
111
- }
112
- else {
113
- console.log(` ✗ ${hook} 缺失(FAIL)`);
114
- failed = true;
115
- }
116
- }
117
- if (hookScriptsForAgent(agent).length === 0) {
118
- console.log(` ⚠ ${platform.name} 未注册自动 hook;使用 /superflow-* command 显式运行门禁(WARN)`);
119
- }
120
- else {
121
- failed = checkHookRegistration(platform.settingsFile, agent, failed);
122
- }
123
- }
124
- else {
125
- console.log(` ✗ ${platform.scriptsDir} 缺失(FAIL)`);
126
- failed = true;
127
- }
128
- console.log(`\n[Skills: ${platform.name}]`);
129
- for (const skill of ALL_SKILLS) {
130
- if (existsSync(path.join(platform.skillsDir, skill, 'SKILL.md'))) {
131
- console.log(` ✓ ${skill}`);
132
- }
133
- else {
134
- console.log(` ✗ ${skill} 缺失(FAIL)`);
135
- failed = true;
136
- }
137
- }
138
- if (agent === 'codex' || agent === 'opencode') {
139
- console.log(`\n[${agent === 'opencode' ? 'Command Alias' : 'Prompt Alias'}: ${platform.name}]`);
140
- for (const prompt of CODEX_PROMPTS) {
141
- if (existsSync(path.join(platform.promptsDir, prompt))) {
142
- console.log(` ✓ /${prompt.replace(/\.md$/, '')}`);
143
- }
144
- else {
145
- console.log(` ✗ /${prompt.replace(/\.md$/, '')} 缺失(FAIL)`);
146
- failed = true;
147
- }
148
- }
149
- }
150
- console.log(`\n[Rules: ${platform.name}]`);
151
- for (const rule of ALL_RULES) {
152
- if (existsSync(path.join(platform.rulesDir, rule))) {
153
- console.log(` ✓ ${rule}`);
154
- }
155
- else {
156
- console.log(` ✗ ${rule} 缺失(FAIL)`);
157
- failed = true;
158
- }
159
- }
160
- }
161
- }
162
- const stateChecks = collectSddStateChecks(projectPath);
163
- if (stateChecks.length > 0) {
164
- console.log('\n[SuperBridge Flow State]');
165
- for (const check of stateChecks) {
166
- if (check.status === 'pass') {
167
- console.log(` ✓ ${check.check}: ${check.message}`);
168
- }
169
- else if (check.status === 'warn') {
170
- console.log(` ⚠ ${check.check}: ${check.message}`);
171
- }
172
- else {
173
- console.log(` ✗ ${check.check}: ${check.message}`);
174
- failed = true;
175
- }
176
- }
177
- }
178
- console.log('');
179
- if (failed) {
180
- console.log('→ Exit code: 1 (FAIL)');
181
- process.exit(1);
182
- }
183
- else {
184
- console.log('→ Exit code: 0 (PASS / 仅 WARN)');
185
- }
186
- }
187
- export async function collectDoctor(options = {}) {
188
- const agents = resolveAgents(parseAgentSelection(options.agent));
189
- const scope = parseDoctorScope(options.scope);
190
- const scopesChecked = scopesForDoctor(scope);
191
- const projectPath = path.resolve(options.projectPath ?? options.targetPath ?? process.cwd());
192
- const checks = [];
193
- const which = await runCommand('which', ['superflow']).catch(() => ({ code: 1, stdout: '', stderr: '' }));
194
- checks.push({
195
- check: 'superflow CLI',
196
- status: which.code === 0 ? 'pass' : 'fail',
197
- message: which.code === 0 ? 'available in PATH' : 'missing from PATH',
198
- });
199
- const openspec = await runCommand('which', ['openspec']).catch(() => ({ code: 1, stdout: '', stderr: '' }));
200
- checks.push({
201
- check: 'openspec CLI',
202
- status: openspec.code === 0 ? 'pass' : 'fail',
203
- message: openspec.code === 0 ? 'available in PATH' : 'missing from PATH',
204
- });
205
- checks.push(...collectOpenSpecProjectChecks(projectPath));
206
- for (const currentScope of scopesChecked) {
207
- for (const agent of agents) {
208
- const platform = getPlatformPaths(agent, currentScope, projectPath);
209
- checks.push({
210
- check: `superpowers:${agent}`,
211
- status: hasSuperpowers(agent) ? 'pass' : 'warn',
212
- message: hasSuperpowers(agent) ? 'detected' : 'not detected',
213
- });
214
- checks.push({
215
- check: `understand-anything:${agent}`,
216
- status: hasUnderstand(agent) ? 'pass' : 'warn',
217
- message: hasUnderstand(agent) ? 'detected' : 'not detected',
218
- });
219
- checks.push({
220
- check: `api-doc-changelog:${agent}`,
221
- status: existsSync(path.join(platform.skillsDir, 'api-doc-changelog', 'SKILL.md')) ? 'pass' : 'warn',
222
- message: existsSync(path.join(platform.skillsDir, 'api-doc-changelog', 'SKILL.md')) ? 'detected' : 'missing',
223
- });
224
- for (const script of scriptsForAgent(agent)) {
225
- const scriptPath = path.join(platform.scriptsDir, script);
226
- checks.push({
227
- check: `script:${agent}:${currentScope}:${script}`,
228
- status: existsSync(scriptPath) ? 'pass' : 'fail',
229
- message: scriptPath,
230
- });
231
- }
232
- const hookScripts = hookScriptsForAgent(agent);
233
- if (hookScripts.length === 0) {
234
- checks.push({
235
- check: `hooks:${agent}:${currentScope}`,
236
- status: 'warn',
237
- message: 'native hook registration is not supported; use command aliases',
238
- });
239
- }
240
- else {
241
- const hookCount = countSddHookCommands(platform.settingsFile, agent);
242
- checks.push({
243
- check: `hooks:${agent}:${currentScope}`,
244
- status: hookCount >= 7 ? 'pass' : 'fail',
245
- message: `${hookCount} command(s) registered`,
246
- });
247
- }
248
- for (const skill of ALL_SKILLS) {
249
- const skillPath = path.join(platform.skillsDir, skill, 'SKILL.md');
250
- checks.push({
251
- check: `skill:${agent}:${currentScope}:${skill}`,
252
- status: existsSync(skillPath) ? 'pass' : 'fail',
253
- message: skillPath,
254
- });
255
- }
256
- if (agent === 'codex' || agent === 'opencode') {
257
- for (const prompt of CODEX_PROMPTS) {
258
- const promptPath = path.join(platform.promptsDir, prompt);
259
- checks.push({
260
- check: `prompt:${agent}:${currentScope}:${prompt}`,
261
- status: existsSync(promptPath) ? 'pass' : 'fail',
262
- message: promptPath,
263
- });
264
- }
265
- }
266
- for (const rule of ALL_RULES) {
267
- const ruleFile = path.join(platform.rulesDir, rule);
268
- checks.push({
269
- check: `rule:${agent}:${currentScope}:${rule}`,
270
- status: existsSync(ruleFile) ? 'pass' : 'fail',
271
- message: ruleFile,
272
- });
273
- }
274
- }
275
- }
276
- checks.push(...collectSddStateChecks(projectPath));
277
- return {
278
- agents,
279
- scope,
280
- scopesChecked,
281
- projectPath,
282
- failed: checks.some((check) => check.status === 'fail'),
283
- checks,
284
- };
285
- }
286
- function collectOpenSpecProjectChecks(projectPath) {
287
- const changesDir = path.join(projectPath, 'openspec', 'changes');
288
- const specsDir = path.join(projectPath, 'openspec', 'specs');
289
- const missing = [
290
- existsSync(changesDir) ? '' : 'openspec/changes',
291
- existsSync(specsDir) ? '' : 'openspec/specs',
292
- ].filter(Boolean);
293
- return [{
294
- check: 'openspec project',
295
- status: missing.length > 0 ? 'fail' : 'pass',
296
- message: missing.length > 0
297
- ? `missing ${missing.join(', ')}; run superflow init or openspec init`
298
- : 'openspec/changes and openspec/specs detected',
299
- }];
300
- }
301
- function collectSddStateChecks(projectPath) {
302
- const changesDir = path.join(projectPath, 'openspec', 'changes');
303
- if (!existsSync(changesDir))
304
- return [];
305
- const checks = [];
306
- for (const entry of readdirSync(changesDir).sort()) {
307
- const changeDir = path.join(changesDir, entry);
308
- if (!safeIsDirectory(changeDir))
309
- continue;
310
- const statePath = path.join(changeDir, '.sdd', 'state.yaml');
311
- if (!existsSync(statePath))
312
- continue;
313
- const state = readFileSync(statePath, 'utf-8');
314
- const keys = collectTopLevelYamlKeys(state);
315
- const unknown = keys.filter((key) => !VALID_STATE_FIELDS.has(key));
316
- const missing = REQUIRED_STATE_FIELDS.filter((key) => !keys.includes(key));
317
- const invalidHash = invalidHandoffHash(state);
318
- const problems = [
319
- unknown.length > 0 ? `unknown field(s): ${unknown.join(', ')}` : '',
320
- missing.length > 0 ? `missing field(s): ${missing.join(', ')}` : '',
321
- invalidHash,
322
- ].filter(Boolean);
323
- checks.push({
324
- check: `superflow-state:${entry}`,
325
- status: problems.length > 0 ? 'fail' : 'pass',
326
- message: problems.length > 0 ? problems.join('; ') : 'valid',
327
- });
328
- }
329
- return checks;
330
- }
331
- function collectTopLevelYamlKeys(content) {
332
- const keys = [];
333
- for (const line of content.split(/\r?\n/)) {
334
- const trimmed = line.trim();
335
- if (!trimmed || trimmed.startsWith('#'))
336
- continue;
337
- if (/^\s/.test(line) || trimmed.startsWith('- '))
338
- continue;
339
- const match = line.match(/^['"]?([A-Za-z0-9_-]+)['"]?\s*:/);
340
- if (match)
341
- keys.push(match[1]);
342
- }
343
- return keys;
344
- }
345
- function invalidHandoffHash(content) {
346
- const match = content.match(/^handoff_hash:\s*(.*)$/m);
347
- if (!match)
348
- return '';
349
- const value = match[1].replace(/\s+#.*$/, '').trim();
350
- if (!value || value === 'null')
351
- return '';
352
- return /^[a-f0-9]{64}$/.test(value)
353
- ? ''
354
- : `handoff_hash is not sha256: ${value}`;
355
- }
356
- function safeIsDirectory(target) {
357
- try {
358
- return statSync(target).isDirectory();
359
- }
360
- catch {
361
- return false;
362
- }
363
- }
364
- function parseDoctorScope(value) {
365
- if (value === 'auto')
366
- return 'auto';
367
- return parseInstallScope(value);
368
- }
369
- function scopesForDoctor(scope) {
370
- return scope === 'auto' ? ['project', 'global'] : [scope];
371
- }
372
- function firstInstallScope(scope) {
373
- return scope === 'auto' ? 'global' : scope;
374
- }
375
- function checkAgentDependencies(agent, failed, scope, projectPath) {
376
- const platform = getPlatformPaths(agent, scope, projectPath);
377
- const label = agent === 'claude'
378
- ? 'Claude'
379
- : agent === 'codex'
380
- ? 'Codex'
381
- : 'OpenCode';
382
- if (hasSuperpowers(agent)) {
383
- console.log(` ✓ superpowers (${label})`);
384
- }
385
- else {
386
- console.log(` ⚠ superpowers 未检测到(${label},WARN)`);
387
- }
388
- if (hasUnderstand(agent)) {
389
- console.log(` ✓ understand-anything (${label})`);
390
- }
391
- else {
392
- console.log(` ⚠ understand-anything 未检测到(${label},WARN)`);
393
- }
394
- if (existsSync(path.join(platform.skillsDir, 'api-doc-changelog', 'SKILL.md'))) {
395
- console.log(` ✓ api-doc-changelog (${label})`);
396
- }
397
- else {
398
- console.log(` ⚠ api-doc-changelog 缺失(${label},WARN)`);
399
- }
400
- return failed;
401
- }
402
- function checkHookRegistration(settingsFile, agent, failed) {
403
- if (!existsSync(settingsFile)) {
404
- console.log(` ✗ ${settingsFile} 不存在,无法检查 hook 注册(FAIL)`);
405
- return true;
406
- }
407
- const settings = JSON.parse(readFileSync(settingsFile, 'utf-8'));
408
- const sddCommands = countSddHookCommands(settingsFile, agent, settings);
409
- if (sddCommands >= 7) {
410
- console.log(` ✓ ${sddCommands} workflow hook command 已注册到 ${settingsFile}`);
411
- return failed;
412
- }
413
- console.log(` ✗ ${settingsFile} 只有 ${sddCommands} workflow hook command(FAIL,需要 7+)`);
414
- return true;
415
- }
416
- export function countSddHookCommands(settingsFile, agent, parsedSettings) {
417
- if (!existsSync(settingsFile))
418
- return 0;
419
- const settings = parsedSettings ?? JSON.parse(readFileSync(settingsFile, 'utf-8'));
420
- const hooks = settings.hooks || {};
421
- let sddCommands = 0;
422
- const scriptDir = agent === 'claude' ? '/scripts/' : '/hooks/';
423
- for (const entries of Object.values(hooks)) {
424
- if (!Array.isArray(entries))
425
- continue;
426
- for (const entry of entries) {
427
- if (!entry?.hooks)
428
- continue;
429
- for (const h of entry.hooks) {
430
- if (h.command?.includes(`${scriptDir}superflow-`) ||
431
- h.command?.includes(`${scriptDir}sdd-`) ||
432
- h.command?.includes(`${scriptDir}${agent}-auto-backup`)) {
433
- sddCommands++;
434
- }
435
- }
436
- }
437
- }
438
- return sddCommands;
439
- }
440
- function hasSuperpowers(agent) {
441
- const home = homedir();
442
- const roots = agent === 'codex'
443
- ? [
444
- path.join(home, '.codex', 'plugins', 'cache'),
445
- path.join(home, '.codex', '.tmp', 'plugins'),
446
- ]
447
- : [
448
- path.join(home, '.claude', 'plugins'),
449
- path.join(home, '.claude', 'plugins', 'cache'),
450
- ];
451
- return roots.some((root) => containsPathSegment(root, 'superpowers'));
452
- }
453
- function hasUnderstand(agent) {
454
- const home = homedir();
455
- const pluginSkill = path.join(home, '.understand-anything', 'repo', 'understand-anything-plugin', 'skills', 'understand', 'SKILL.md');
456
- if (!existsSync(pluginSkill))
457
- return false;
458
- if (agent === 'codex') {
459
- return existsSync(path.join(home, '.agents', 'skills', 'understand', 'SKILL.md'));
460
- }
461
- return existsSync(pluginSkill);
462
- }
463
- function containsPathSegment(root, segment) {
464
- if (!existsSync(root))
465
- return false;
466
- const stack = [root];
467
- const needle = segment.toLowerCase();
468
- while (stack.length > 0) {
469
- const current = stack.pop();
470
- let entries;
471
- try {
472
- entries = readdirSync(current);
473
- }
474
- catch {
475
- continue;
476
- }
477
- for (const entry of entries) {
478
- const full = path.join(current, entry);
479
- if (entry.toLowerCase().includes(needle))
480
- return true;
481
- if (stack.length < 200 && existsSync(full)) {
482
- try {
483
- if (statSync(full).isDirectory())
484
- stack.push(full);
485
- }
486
- catch {
487
- continue;
488
- }
489
- }
490
- }
491
- }
492
- return false;
493
- }
494
- //# sourceMappingURL=doctor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { checkSkillDeployment } from '../domains/skill/check.js';
2
- const SKILL_NAME = 'superflow-implement';
3
- export async function implementCommand(_task, options = {}) {
4
- checkSkillDeployment(SKILL_NAME, options);
5
- }
6
- //# sourceMappingURL=implement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"implement.js","sourceRoot":"","sources":["../../src/commands/implement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAA0B,MAAM,2BAA2B,CAAC;AAEzF,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAc,EACd,UAA6B,EAAE;IAE/B,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC"}