@winspan/claude-forge 9.2.0 → 9.12.0

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 (591) hide show
  1. package/DEVELOPMENT.md +80 -19
  2. package/README.md +13 -6
  3. package/dist/catalogs/agents.json +19 -24
  4. package/dist/catalogs/skills.json +139 -27
  5. package/dist/claudemd/templates/swarm-protocol.md +1 -1
  6. package/dist/cli/commands/agent.d.ts +169 -0
  7. package/dist/cli/commands/agent.d.ts.map +1 -0
  8. package/dist/cli/commands/agent.js +690 -0
  9. package/dist/cli/commands/agent.js.map +1 -0
  10. package/dist/cli/commands/codegraph.d.ts +17 -0
  11. package/dist/cli/commands/codegraph.d.ts.map +1 -0
  12. package/dist/cli/commands/codegraph.js +263 -0
  13. package/dist/cli/commands/codegraph.js.map +1 -0
  14. package/dist/cli/commands/decisions.d.ts.map +1 -1
  15. package/dist/cli/commands/decisions.js +46 -9
  16. package/dist/cli/commands/decisions.js.map +1 -1
  17. package/dist/cli/commands/executions.d.ts.map +1 -1
  18. package/dist/cli/commands/executions.js +2 -1
  19. package/dist/cli/commands/executions.js.map +1 -1
  20. package/dist/cli/commands/insights-goal-check.d.ts +5 -1
  21. package/dist/cli/commands/insights-goal-check.d.ts.map +1 -1
  22. package/dist/cli/commands/insights-goal-check.js +15 -15
  23. package/dist/cli/commands/insights-goal-check.js.map +1 -1
  24. package/dist/cli/commands/knowledge.d.ts +51 -0
  25. package/dist/cli/commands/knowledge.d.ts.map +1 -1
  26. package/dist/cli/commands/knowledge.js +202 -29
  27. package/dist/cli/commands/knowledge.js.map +1 -1
  28. package/dist/cli/commands/loop.d.ts +95 -0
  29. package/dist/cli/commands/loop.d.ts.map +1 -0
  30. package/dist/cli/commands/loop.js +408 -0
  31. package/dist/cli/commands/loop.js.map +1 -0
  32. package/dist/cli/commands/maintenance.d.ts +33 -0
  33. package/dist/cli/commands/maintenance.d.ts.map +1 -0
  34. package/dist/cli/commands/maintenance.js +75 -0
  35. package/dist/cli/commands/maintenance.js.map +1 -0
  36. package/dist/cli/commands/mcp.d.ts +23 -0
  37. package/dist/cli/commands/mcp.d.ts.map +1 -1
  38. package/dist/cli/commands/mcp.js +82 -0
  39. package/dist/cli/commands/mcp.js.map +1 -1
  40. package/dist/cli/commands/skills.d.ts +131 -0
  41. package/dist/cli/commands/skills.d.ts.map +1 -1
  42. package/dist/cli/commands/skills.js +409 -9
  43. package/dist/cli/commands/skills.js.map +1 -1
  44. package/dist/cli/commands/stats.d.ts.map +1 -1
  45. package/dist/cli/commands/stats.js +9 -2
  46. package/dist/cli/commands/stats.js.map +1 -1
  47. package/dist/cli/index.js +8 -0
  48. package/dist/cli/index.js.map +1 -1
  49. package/dist/core/constants.d.ts +37 -0
  50. package/dist/core/constants.d.ts.map +1 -1
  51. package/dist/core/constants.js +43 -0
  52. package/dist/core/constants.js.map +1 -1
  53. package/dist/core/diagnostics/checks.d.ts.map +1 -1
  54. package/dist/core/diagnostics/checks.js +2 -1
  55. package/dist/core/diagnostics/checks.js.map +1 -1
  56. package/dist/core/diagnostics/daemon-status.d.ts +1 -1
  57. package/dist/core/diagnostics/daemon-status.d.ts.map +1 -1
  58. package/dist/core/diagnostics/daemon-status.js +1 -1
  59. package/dist/core/diagnostics/daemon-status.js.map +1 -1
  60. package/dist/core/diagnostics/entropy-checks.d.ts +3 -2
  61. package/dist/core/diagnostics/entropy-checks.d.ts.map +1 -1
  62. package/dist/core/diagnostics/entropy-checks.js +10 -5
  63. package/dist/core/diagnostics/entropy-checks.js.map +1 -1
  64. package/dist/core/diagnostics/heartbeat-reader.d.ts +28 -0
  65. package/dist/core/diagnostics/heartbeat-reader.d.ts.map +1 -0
  66. package/dist/core/diagnostics/heartbeat-reader.js +50 -0
  67. package/dist/core/diagnostics/heartbeat-reader.js.map +1 -0
  68. package/dist/core/event-fields.d.ts +27 -0
  69. package/dist/core/event-fields.d.ts.map +1 -1
  70. package/dist/core/event-fields.js +43 -0
  71. package/dist/core/event-fields.js.map +1 -1
  72. package/dist/core/governance/global-inject.d.ts +34 -4
  73. package/dist/core/governance/global-inject.d.ts.map +1 -1
  74. package/dist/core/governance/global-inject.js +80 -25
  75. package/dist/core/governance/global-inject.js.map +1 -1
  76. package/dist/core/insights/agent-anchor-guard.d.ts +77 -0
  77. package/dist/core/insights/agent-anchor-guard.d.ts.map +1 -0
  78. package/dist/core/insights/agent-anchor-guard.js +119 -0
  79. package/dist/core/insights/agent-anchor-guard.js.map +1 -0
  80. package/dist/core/insights/agent-distill-context.d.ts +55 -0
  81. package/dist/core/insights/agent-distill-context.d.ts.map +1 -0
  82. package/dist/core/insights/agent-distill-context.js +146 -0
  83. package/dist/core/insights/agent-distill-context.js.map +1 -0
  84. package/dist/core/insights/agent-distill-spawn.d.ts +56 -0
  85. package/dist/core/insights/agent-distill-spawn.d.ts.map +1 -0
  86. package/dist/core/insights/agent-distill-spawn.js +179 -0
  87. package/dist/core/insights/agent-distill-spawn.js.map +1 -0
  88. package/dist/core/insights/agent-drift.d.ts +66 -0
  89. package/dist/core/insights/agent-drift.d.ts.map +1 -0
  90. package/dist/core/insights/agent-drift.js +109 -0
  91. package/dist/core/insights/agent-drift.js.map +1 -0
  92. package/dist/core/insights/agent-evolution-sources.d.ts +21 -0
  93. package/dist/core/insights/agent-evolution-sources.d.ts.map +1 -0
  94. package/dist/core/insights/agent-evolution-sources.js +36 -0
  95. package/dist/core/insights/agent-evolution-sources.js.map +1 -0
  96. package/dist/core/insights/agent-health.d.ts +142 -0
  97. package/dist/core/insights/agent-health.d.ts.map +1 -0
  98. package/dist/core/insights/agent-health.js +296 -0
  99. package/dist/core/insights/agent-health.js.map +1 -0
  100. package/dist/core/insights/agent-patch-apply.d.ts +45 -0
  101. package/dist/core/insights/agent-patch-apply.d.ts.map +1 -0
  102. package/dist/core/insights/agent-patch-apply.js +165 -0
  103. package/dist/core/insights/agent-patch-apply.js.map +1 -0
  104. package/dist/core/insights/agent-suggest.d.ts +128 -0
  105. package/dist/core/insights/agent-suggest.d.ts.map +1 -0
  106. package/dist/core/insights/agent-suggest.js +284 -0
  107. package/dist/core/insights/agent-suggest.js.map +1 -0
  108. package/dist/core/insights/coverage-tiers.d.ts +46 -0
  109. package/dist/core/insights/coverage-tiers.d.ts.map +1 -0
  110. package/dist/core/insights/coverage-tiers.js +95 -0
  111. package/dist/core/insights/coverage-tiers.js.map +1 -0
  112. package/dist/{daemon/services → core/insights}/experience-extractor.d.ts +0 -7
  113. package/dist/core/insights/experience-extractor.d.ts.map +1 -0
  114. package/dist/{daemon/services → core/insights}/experience-extractor.js +5 -9
  115. package/dist/core/insights/experience-extractor.js.map +1 -0
  116. package/dist/{daemon/services → core/insights}/violation-reporter.d.ts +20 -1
  117. package/dist/core/insights/violation-reporter.d.ts.map +1 -0
  118. package/dist/{daemon/services → core/insights}/violation-reporter.js +56 -4
  119. package/dist/core/insights/violation-reporter.js.map +1 -0
  120. package/dist/core/loop/loop-engine.d.ts +140 -0
  121. package/dist/core/loop/loop-engine.d.ts.map +1 -0
  122. package/dist/core/loop/loop-engine.js +266 -0
  123. package/dist/core/loop/loop-engine.js.map +1 -0
  124. package/dist/core/queue/index.d.ts.map +1 -1
  125. package/dist/core/queue/index.js +2 -1
  126. package/dist/core/queue/index.js.map +1 -1
  127. package/dist/core/storage/base.d.ts +159 -0
  128. package/dist/core/storage/base.d.ts.map +1 -1
  129. package/dist/core/storage/base.js +523 -0
  130. package/dist/core/storage/base.js.map +1 -1
  131. package/dist/core/storage/codegraph-types.d.ts +79 -0
  132. package/dist/core/storage/codegraph-types.d.ts.map +1 -0
  133. package/dist/core/storage/codegraph-types.js +14 -0
  134. package/dist/core/storage/codegraph-types.js.map +1 -0
  135. package/dist/core/storage/codegraph.d.ts +186 -0
  136. package/dist/core/storage/codegraph.d.ts.map +1 -0
  137. package/dist/core/storage/codegraph.js +452 -0
  138. package/dist/core/storage/codegraph.js.map +1 -0
  139. package/dist/core/storage/decisions.d.ts +30 -5
  140. package/dist/core/storage/decisions.d.ts.map +1 -1
  141. package/dist/core/storage/decisions.js +45 -13
  142. package/dist/core/storage/decisions.js.map +1 -1
  143. package/dist/core/storage/events.d.ts +127 -0
  144. package/dist/core/storage/events.d.ts.map +1 -1
  145. package/dist/core/storage/events.js +318 -3
  146. package/dist/core/storage/events.js.map +1 -1
  147. package/dist/core/storage/feedback.d.ts +3 -23
  148. package/dist/core/storage/feedback.d.ts.map +1 -1
  149. package/dist/core/storage/feedback.js +37 -38
  150. package/dist/core/storage/feedback.js.map +1 -1
  151. package/dist/core/storage/injections.d.ts +40 -0
  152. package/dist/core/storage/injections.d.ts.map +1 -1
  153. package/dist/core/storage/injections.js +69 -0
  154. package/dist/core/storage/injections.js.map +1 -1
  155. package/dist/core/storage/knowledge.d.ts +226 -0
  156. package/dist/core/storage/knowledge.d.ts.map +1 -1
  157. package/dist/core/storage/knowledge.js +391 -4
  158. package/dist/core/storage/knowledge.js.map +1 -1
  159. package/dist/core/storage/pipeline-rollup.d.ts +1 -7
  160. package/dist/core/storage/pipeline-rollup.d.ts.map +1 -1
  161. package/dist/core/storage/pipeline-rollup.js +18 -57
  162. package/dist/core/storage/pipeline-rollup.js.map +1 -1
  163. package/dist/core/storage/routing.d.ts +34 -0
  164. package/dist/core/storage/routing.d.ts.map +1 -1
  165. package/dist/core/storage/routing.js +92 -2
  166. package/dist/core/storage/routing.js.map +1 -1
  167. package/dist/core/storage/rows.d.ts +5 -25
  168. package/dist/core/storage/rows.d.ts.map +1 -1
  169. package/dist/core/storage/schema.sql +92 -27
  170. package/dist/core/storage/sessions.d.ts.map +1 -1
  171. package/dist/core/storage/sessions.js +2 -1
  172. package/dist/core/storage/sessions.js.map +1 -1
  173. package/dist/core/storage/skills.d.ts +159 -0
  174. package/dist/core/storage/skills.d.ts.map +1 -1
  175. package/dist/core/storage/skills.js +350 -4
  176. package/dist/core/storage/skills.js.map +1 -1
  177. package/dist/core/storage/sqlite.d.ts +81 -25
  178. package/dist/core/storage/sqlite.d.ts.map +1 -1
  179. package/dist/core/storage/sqlite.js +143 -45
  180. package/dist/core/storage/sqlite.js.map +1 -1
  181. package/dist/core/storage/tasks.d.ts +270 -0
  182. package/dist/core/storage/tasks.d.ts.map +1 -1
  183. package/dist/core/storage/tasks.js +495 -16
  184. package/dist/core/storage/tasks.js.map +1 -1
  185. package/dist/core/storage/tool-intercepts.d.ts +1 -1
  186. package/dist/core/storage/tool-intercepts.js +1 -1
  187. package/dist/core/types.d.ts +26 -3
  188. package/dist/core/types.d.ts.map +1 -1
  189. package/dist/core/types.js +1 -3
  190. package/dist/core/types.js.map +1 -1
  191. package/dist/core/utils/binary-paths.d.ts +32 -0
  192. package/dist/core/utils/binary-paths.d.ts.map +1 -1
  193. package/dist/core/utils/binary-paths.js +52 -0
  194. package/dist/core/utils/binary-paths.js.map +1 -1
  195. package/dist/core/utils/claude-cli-resolver.d.ts.map +1 -0
  196. package/dist/{skills/distill → core/utils}/claude-cli-resolver.js +1 -1
  197. package/dist/core/utils/claude-cli-resolver.js.map +1 -0
  198. package/dist/core/utils/claude-cli-spawn.d.ts +1 -1
  199. package/dist/core/utils/claude-cli-spawn.js +2 -2
  200. package/dist/core/utils/claude-cli-spawn.js.map +1 -1
  201. package/dist/core/utils/noise-prompt.d.ts +1 -1
  202. package/dist/core/utils/noise-prompt.js +1 -1
  203. package/dist/core/utils/time.d.ts +26 -0
  204. package/dist/core/utils/time.d.ts.map +1 -1
  205. package/dist/core/utils/time.js +33 -0
  206. package/dist/core/utils/time.js.map +1 -1
  207. package/dist/daemon/config-store.d.ts.map +1 -1
  208. package/dist/daemon/config-store.js +14 -5
  209. package/dist/daemon/config-store.js.map +1 -1
  210. package/dist/daemon/event-parser.d.ts.map +1 -1
  211. package/dist/daemon/event-parser.js +5 -0
  212. package/dist/daemon/event-parser.js.map +1 -1
  213. package/dist/daemon/handlers/post-tool-use.d.ts +24 -16
  214. package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
  215. package/dist/daemon/handlers/post-tool-use.js +76 -116
  216. package/dist/daemon/handlers/post-tool-use.js.map +1 -1
  217. package/dist/daemon/handlers/pre-tool-use.d.ts +35 -10
  218. package/dist/daemon/handlers/pre-tool-use.d.ts.map +1 -1
  219. package/dist/daemon/handlers/pre-tool-use.js +71 -38
  220. package/dist/daemon/handlers/pre-tool-use.js.map +1 -1
  221. package/dist/daemon/handlers/stop.d.ts +20 -0
  222. package/dist/daemon/handlers/stop.d.ts.map +1 -1
  223. package/dist/daemon/handlers/stop.js +96 -8
  224. package/dist/daemon/handlers/stop.js.map +1 -1
  225. package/dist/daemon/handlers/user-prompt.d.ts +16 -1
  226. package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
  227. package/dist/daemon/handlers/user-prompt.js +97 -56
  228. package/dist/daemon/handlers/user-prompt.js.map +1 -1
  229. package/dist/daemon/handlers/violation-content-backfill.d.ts +76 -0
  230. package/dist/daemon/handlers/violation-content-backfill.d.ts.map +1 -0
  231. package/dist/daemon/handlers/violation-content-backfill.js +167 -0
  232. package/dist/daemon/handlers/violation-content-backfill.js.map +1 -0
  233. package/dist/daemon/index.d.ts +19 -0
  234. package/dist/daemon/index.d.ts.map +1 -1
  235. package/dist/daemon/index.js +125 -200
  236. package/dist/daemon/index.js.map +1 -1
  237. package/dist/daemon/rules/defaults.d.ts.map +1 -1
  238. package/dist/daemon/rules/defaults.js +151 -64
  239. package/dist/daemon/rules/defaults.js.map +1 -1
  240. package/dist/daemon/rules/types.d.ts +28 -22
  241. package/dist/daemon/rules/types.d.ts.map +1 -1
  242. package/dist/daemon/rules/workflow-defaults.js +9 -9
  243. package/dist/daemon/rules/workflow-defaults.js.map +1 -1
  244. package/dist/daemon/services/codegraph-sync.d.ts +94 -0
  245. package/dist/daemon/services/codegraph-sync.d.ts.map +1 -0
  246. package/dist/daemon/services/codegraph-sync.js +159 -0
  247. package/dist/daemon/services/codegraph-sync.js.map +1 -0
  248. package/dist/daemon/services/decision-hint.d.ts +47 -10
  249. package/dist/daemon/services/decision-hint.d.ts.map +1 -1
  250. package/dist/daemon/services/decision-hint.js +99 -24
  251. package/dist/daemon/services/decision-hint.js.map +1 -1
  252. package/dist/daemon/services/event-ttl-sweep.d.ts.map +1 -1
  253. package/dist/daemon/services/event-ttl-sweep.js +3 -2
  254. package/dist/daemon/services/event-ttl-sweep.js.map +1 -1
  255. package/dist/daemon/services/feedback-aggregator.d.ts +14 -26
  256. package/dist/daemon/services/feedback-aggregator.d.ts.map +1 -1
  257. package/dist/daemon/services/feedback-aggregator.js +23 -63
  258. package/dist/daemon/services/feedback-aggregator.js.map +1 -1
  259. package/dist/daemon/services/heartbeat-writer.d.ts +6 -15
  260. package/dist/daemon/services/heartbeat-writer.d.ts.map +1 -1
  261. package/dist/daemon/services/heartbeat-writer.js +7 -36
  262. package/dist/daemon/services/heartbeat-writer.js.map +1 -1
  263. package/dist/daemon/services/kb-injector.d.ts +1 -1
  264. package/dist/daemon/services/kb-injector.d.ts.map +1 -1
  265. package/dist/daemon/services/kb-injector.js +10 -2
  266. package/dist/daemon/services/kb-injector.js.map +1 -1
  267. package/dist/daemon/services/kb-rebuild-scheduler.d.ts +95 -0
  268. package/dist/daemon/services/kb-rebuild-scheduler.d.ts.map +1 -0
  269. package/dist/daemon/services/kb-rebuild-scheduler.js +149 -0
  270. package/dist/daemon/services/kb-rebuild-scheduler.js.map +1 -0
  271. package/dist/daemon/services/loop-hint.d.ts +139 -0
  272. package/dist/daemon/services/loop-hint.d.ts.map +1 -0
  273. package/dist/daemon/services/loop-hint.js +272 -0
  274. package/dist/daemon/services/loop-hint.js.map +1 -0
  275. package/dist/daemon/services/outcome-classification-service.js +1 -1
  276. package/dist/daemon/services/outcome-classification-service.js.map +1 -1
  277. package/dist/daemon/services/task-segmenter.d.ts +11 -0
  278. package/dist/daemon/services/task-segmenter.d.ts.map +1 -1
  279. package/dist/daemon/services/task-segmenter.js +48 -2
  280. package/dist/daemon/services/task-segmenter.js.map +1 -1
  281. package/dist/daemon/startup/maintenance-schedulers.d.ts +68 -0
  282. package/dist/daemon/startup/maintenance-schedulers.d.ts.map +1 -0
  283. package/dist/daemon/startup/maintenance-schedulers.js +294 -0
  284. package/dist/daemon/startup/maintenance-schedulers.js.map +1 -0
  285. package/dist/daemon/templates/agents/agent-retro-distiller.md +106 -0
  286. package/dist/daemon/templates/agents/claudemd-writer.md +1 -0
  287. package/dist/daemon/templates/agents/coder.md +165 -8
  288. package/dist/daemon/templates/agents/decision-maker.md +107 -21
  289. package/dist/daemon/templates/agents/doc-reviewer.md +4 -1
  290. package/dist/daemon/templates/agents/harness-debug-full.md +85 -3
  291. package/dist/daemon/templates/agents/knowledge-builder.md +1 -0
  292. package/dist/daemon/templates/agents/patch-applier.md +1 -0
  293. package/dist/daemon/templates/agents/planner.md +55 -3
  294. package/dist/daemon/templates/agents/safety-net-implementer.md +278 -0
  295. package/dist/daemon/templates/agents/skill-distiller.md +1 -0
  296. package/dist/daemon/templates/agents/task-boundary-classifier.md +1 -0
  297. package/dist/daemon/templates/agents/verify-agent.md +128 -5
  298. package/dist/hooks/stop.sh +7 -1
  299. package/dist/knowledge/builder.js +36 -7
  300. package/dist/knowledge/builder.js.map +1 -1
  301. package/dist/knowledge/constants.d.ts +10 -5
  302. package/dist/knowledge/constants.d.ts.map +1 -1
  303. package/dist/knowledge/constants.js +10 -5
  304. package/dist/knowledge/constants.js.map +1 -1
  305. package/dist/knowledge/graph/edge-extractor.d.ts +45 -0
  306. package/dist/knowledge/graph/edge-extractor.d.ts.map +1 -0
  307. package/dist/knowledge/graph/edge-extractor.js +242 -0
  308. package/dist/knowledge/graph/edge-extractor.js.map +1 -0
  309. package/dist/knowledge/graph/impact.d.ts +73 -0
  310. package/dist/knowledge/graph/impact.d.ts.map +1 -0
  311. package/dist/knowledge/graph/impact.js +94 -0
  312. package/dist/knowledge/graph/impact.js.map +1 -0
  313. package/dist/knowledge/graph/types.d.ts +22 -0
  314. package/dist/knowledge/graph/types.d.ts.map +1 -0
  315. package/dist/knowledge/graph/types.js +13 -0
  316. package/dist/knowledge/graph/types.js.map +1 -0
  317. package/dist/knowledge/prompt.d.ts +9 -0
  318. package/dist/knowledge/prompt.d.ts.map +1 -1
  319. package/dist/knowledge/prompt.js +17 -5
  320. package/dist/knowledge/prompt.js.map +1 -1
  321. package/dist/knowledge/query.d.ts +13 -0
  322. package/dist/knowledge/query.d.ts.map +1 -1
  323. package/dist/knowledge/query.js +107 -10
  324. package/dist/knowledge/query.js.map +1 -1
  325. package/dist/knowledge/repo-map.d.ts +11 -5
  326. package/dist/knowledge/repo-map.d.ts.map +1 -1
  327. package/dist/knowledge/repo-map.js +42 -3
  328. package/dist/knowledge/repo-map.js.map +1 -1
  329. package/dist/knowledge/validator.d.ts.map +1 -1
  330. package/dist/knowledge/validator.js +69 -2
  331. package/dist/knowledge/validator.js.map +1 -1
  332. package/dist/mcp/server.d.ts +64 -8
  333. package/dist/mcp/server.d.ts.map +1 -1
  334. package/dist/mcp/server.js +233 -18
  335. package/dist/mcp/server.js.map +1 -1
  336. package/dist/skills/distill/distiller.js +1 -1
  337. package/dist/skills/distill/distiller.js.map +1 -1
  338. package/dist/skills/distilled/distilled-api-design.md +4 -0
  339. package/dist/skills/distilled/distilled-brainstorming.md +79 -0
  340. package/dist/skills/distilled/distilled-brand-guidelines.md +86 -0
  341. package/dist/skills/distilled/distilled-canvas-design.md +128 -0
  342. package/dist/skills/distilled/distilled-claude-api.md +185 -0
  343. package/dist/skills/distilled/distilled-creator.md +5 -2
  344. package/dist/skills/distilled/distilled-dispatching-parallel-agents.md +136 -0
  345. package/dist/skills/distilled/distilled-doc-coauthoring.md +144 -0
  346. package/dist/skills/distilled/distilled-docx.md +231 -0
  347. package/dist/skills/distilled/distilled-executing-plans.md +85 -50
  348. package/dist/skills/distilled/distilled-finishing-a-development-branch.md +213 -0
  349. package/dist/skills/distilled/distilled-frontend-design.md +118 -0
  350. package/dist/skills/distilled/distilled-harness-engineering.md +1 -1
  351. package/dist/skills/distilled/distilled-receiving-code-review.md +185 -0
  352. package/dist/skills/distilled/distilled-subagent-driven-development.md +124 -0
  353. package/dist/skills/distilled/distilled-systematic-debugging.md +108 -260
  354. package/dist/skills/distilled/distilled-test-driven-development.md +432 -0
  355. package/dist/skills/distilled/distilled-using-superpowers.md +134 -0
  356. package/dist/skills/distilled/distilled-verification-before-completion.md +88 -78
  357. package/dist/skills/distilled/distilled-writing-skills.md +175 -0
  358. package/dist/skills/registry.d.ts +10 -50
  359. package/dist/skills/registry.d.ts.map +1 -1
  360. package/dist/skills/registry.js +7 -118
  361. package/dist/skills/registry.js.map +1 -1
  362. package/dist/skills/tools/pipeline-suggest.js +2 -2
  363. package/dist/skills/tools/pipeline-suggest.js.map +1 -1
  364. package/dist/skills/tools/skill-invoke.d.ts +2 -1
  365. package/dist/skills/tools/skill-invoke.d.ts.map +1 -1
  366. package/dist/skills/tools/skill-invoke.js +3 -1
  367. package/dist/skills/tools/skill-invoke.js.map +1 -1
  368. package/dist/web/analytics/anti-pattern-detector.d.ts.map +1 -1
  369. package/dist/web/analytics/anti-pattern-detector.js +6 -1
  370. package/dist/web/analytics/anti-pattern-detector.js.map +1 -1
  371. package/dist/web/analytics/drift-detector.d.ts +6 -0
  372. package/dist/web/analytics/drift-detector.d.ts.map +1 -1
  373. package/dist/web/analytics/drift-detector.js +15 -8
  374. package/dist/web/analytics/drift-detector.js.map +1 -1
  375. package/dist/web/analytics/weekly-report.d.ts +13 -0
  376. package/dist/web/analytics/weekly-report.d.ts.map +1 -1
  377. package/dist/web/analytics/weekly-report.js +17 -3
  378. package/dist/web/analytics/weekly-report.js.map +1 -1
  379. package/dist/web/routes/_helpers.d.ts +31 -0
  380. package/dist/web/routes/_helpers.d.ts.map +1 -1
  381. package/dist/web/routes/_helpers.js +33 -0
  382. package/dist/web/routes/_helpers.js.map +1 -1
  383. package/dist/web/routes/agent-distill.d.ts +49 -0
  384. package/dist/web/routes/agent-distill.d.ts.map +1 -0
  385. package/dist/web/routes/agent-distill.js +526 -0
  386. package/dist/web/routes/agent-distill.js.map +1 -0
  387. package/dist/web/routes/config.d.ts +56 -0
  388. package/dist/web/routes/config.d.ts.map +1 -0
  389. package/dist/web/routes/config.js +243 -0
  390. package/dist/web/routes/config.js.map +1 -0
  391. package/dist/web/routes/decisions.js +1 -1
  392. package/dist/web/routes/decisions.js.map +1 -1
  393. package/dist/web/routes/error-handler.d.ts +0 -4
  394. package/dist/web/routes/error-handler.d.ts.map +1 -1
  395. package/dist/web/routes/error-handler.js +0 -8
  396. package/dist/web/routes/error-handler.js.map +1 -1
  397. package/dist/web/routes/events.d.ts.map +1 -1
  398. package/dist/web/routes/events.js +2 -1
  399. package/dist/web/routes/events.js.map +1 -1
  400. package/dist/web/routes/insights.d.ts.map +1 -1
  401. package/dist/web/routes/insights.js +0 -0
  402. package/dist/web/routes/insights.js.map +1 -1
  403. package/dist/web/routes/knowledge.d.ts +43 -2
  404. package/dist/web/routes/knowledge.d.ts.map +1 -1
  405. package/dist/web/routes/knowledge.js +117 -6
  406. package/dist/web/routes/knowledge.js.map +1 -1
  407. package/dist/web/routes/pipeline.d.ts +0 -9
  408. package/dist/web/routes/pipeline.d.ts.map +1 -1
  409. package/dist/web/routes/pipeline.js +0 -4
  410. package/dist/web/routes/pipeline.js.map +1 -1
  411. package/dist/web/routes/rules.d.ts.map +1 -1
  412. package/dist/web/routes/rules.js +20 -6
  413. package/dist/web/routes/rules.js.map +1 -1
  414. package/dist/web/routes/sessions.d.ts.map +1 -1
  415. package/dist/web/routes/sessions.js +8 -7
  416. package/dist/web/routes/sessions.js.map +1 -1
  417. package/dist/web/routes/skill-stats.d.ts.map +1 -1
  418. package/dist/web/routes/skill-stats.js +153 -16
  419. package/dist/web/routes/skill-stats.js.map +1 -1
  420. package/dist/web/routes/skills-distill.js +1 -1
  421. package/dist/web/routes/skills-distill.js.map +1 -1
  422. package/dist/web/routes/stats.d.ts.map +1 -1
  423. package/dist/web/routes/stats.js +2 -1
  424. package/dist/web/routes/stats.js.map +1 -1
  425. package/dist/web/routes/task-timeline.d.ts +95 -19
  426. package/dist/web/routes/task-timeline.d.ts.map +1 -1
  427. package/dist/web/routes/task-timeline.js +344 -88
  428. package/dist/web/routes/task-timeline.js.map +1 -1
  429. package/dist/web/routes/tasks.d.ts.map +1 -1
  430. package/dist/web/routes/tasks.js +52 -30
  431. package/dist/web/routes/tasks.js.map +1 -1
  432. package/dist/web/routes/violations.d.ts +1 -1
  433. package/dist/web/routes/violations.d.ts.map +1 -1
  434. package/dist/web/routes/violations.js +3 -2
  435. package/dist/web/routes/violations.js.map +1 -1
  436. package/dist/web/server.d.ts.map +1 -1
  437. package/dist/web/server.js +20 -0
  438. package/dist/web/server.js.map +1 -1
  439. package/dist/web/services/agent-distill-manager.d.ts +122 -0
  440. package/dist/web/services/agent-distill-manager.d.ts.map +1 -0
  441. package/dist/web/services/agent-distill-manager.js +397 -0
  442. package/dist/web/services/agent-distill-manager.js.map +1 -0
  443. package/dist/web/services/distill-manager.d.ts +47 -0
  444. package/dist/web/services/distill-manager.d.ts.map +1 -1
  445. package/dist/web/services/distill-manager.js +103 -0
  446. package/dist/web/services/distill-manager.js.map +1 -1
  447. package/dist/web/static/assets/AgentDetailPage-DlUeA1sX.js +2 -0
  448. package/dist/web/static/assets/AgentDetailPage-DlUeA1sX.js.map +1 -0
  449. package/dist/web/static/assets/AgentDistillRunPage-Cybo4bii.js +3 -0
  450. package/dist/web/static/assets/AgentDistillRunPage-Cybo4bii.js.map +1 -0
  451. package/dist/web/static/assets/AgentsPage-Qd9FExLG.js +2 -0
  452. package/dist/web/static/assets/AgentsPage-Qd9FExLG.js.map +1 -0
  453. package/dist/web/static/assets/DaemonHealthPage-DTSVqtrI.js +2 -0
  454. package/dist/web/static/assets/DaemonHealthPage-DTSVqtrI.js.map +1 -0
  455. package/dist/web/static/assets/DecisionDetailPage-b4BA8dhc.js +2 -0
  456. package/dist/web/static/assets/DecisionDetailPage-b4BA8dhc.js.map +1 -0
  457. package/dist/web/static/assets/DecisionsPage-a3NRo_T7.js +2 -0
  458. package/dist/web/static/assets/DecisionsPage-a3NRo_T7.js.map +1 -0
  459. package/dist/web/static/assets/DiagnosticsPage-DIVdiIQG.js +2 -0
  460. package/dist/web/static/assets/DiagnosticsPage-DIVdiIQG.js.map +1 -0
  461. package/dist/web/static/assets/DistillDetailPage-U6a3l2iP.js +4 -0
  462. package/dist/web/static/assets/DistillDetailPage-U6a3l2iP.js.map +1 -0
  463. package/dist/web/static/assets/DistillPage-O7BHtRN8.js +2 -0
  464. package/dist/web/static/assets/DistillPage-O7BHtRN8.js.map +1 -0
  465. package/dist/web/static/assets/DistillRunPage-D1JuRWWr.js +2 -0
  466. package/dist/web/static/assets/DistillRunPage-D1JuRWWr.js.map +1 -0
  467. package/dist/web/static/assets/GlobalScopeHint-Q3wTJx3F.js +2 -0
  468. package/dist/web/static/assets/GlobalScopeHint-Q3wTJx3F.js.map +1 -0
  469. package/dist/web/static/assets/IssueDetailPage-BDfrtk2C.js +2 -0
  470. package/dist/web/static/assets/IssueDetailPage-BDfrtk2C.js.map +1 -0
  471. package/dist/web/static/assets/IssuesPage-SKmhlCrw.js +2 -0
  472. package/dist/web/static/assets/IssuesPage-SKmhlCrw.js.map +1 -0
  473. package/dist/web/static/assets/KbDetailPage-Yna86Na8.js +2 -0
  474. package/dist/web/static/assets/KbDetailPage-Yna86Na8.js.map +1 -0
  475. package/dist/web/static/assets/KbHitsPage-Cljl7H9p.js +2 -0
  476. package/dist/web/static/assets/KbHitsPage-Cljl7H9p.js.map +1 -0
  477. package/dist/web/static/assets/{MarkdownRenderer-DZmTl-8J.js → MarkdownRenderer-DlDQNihj.js} +2 -2
  478. package/dist/web/static/assets/{MarkdownRenderer-DZmTl-8J.js.map → MarkdownRenderer-DlDQNihj.js.map} +1 -1
  479. package/dist/web/static/assets/NotFound-LMzbP51V.js +2 -0
  480. package/dist/web/static/assets/{NotFound-BQPh0vaF.js.map → NotFound-LMzbP51V.js.map} +1 -1
  481. package/dist/web/static/assets/SettingsPage-DzoK4PKg.js +2 -0
  482. package/dist/web/static/assets/SettingsPage-DzoK4PKg.js.map +1 -0
  483. package/dist/web/static/assets/SkillDetailPage-BuBJJ_NX.js +2 -0
  484. package/dist/web/static/assets/SkillDetailPage-BuBJJ_NX.js.map +1 -0
  485. package/dist/web/static/assets/SkillsPage-aojkJpBc.js +2 -0
  486. package/dist/web/static/assets/SkillsPage-aojkJpBc.js.map +1 -0
  487. package/dist/web/static/assets/TaskDetailPage-1ckxnGhw.js +4 -0
  488. package/dist/web/static/assets/TaskDetailPage-1ckxnGhw.js.map +1 -0
  489. package/dist/web/static/assets/TasksHubPage-C2PLh3eg.js +6 -0
  490. package/dist/web/static/assets/TasksHubPage-C2PLh3eg.js.map +1 -0
  491. package/dist/web/static/assets/WorkplacePage-DHrp5VxS.js +2 -0
  492. package/dist/web/static/assets/WorkplacePage-DHrp5VxS.js.map +1 -0
  493. package/dist/web/static/assets/arco-DV6xCLhr.js +14 -0
  494. package/dist/web/static/assets/arco-DV6xCLhr.js.map +1 -0
  495. package/dist/web/static/assets/charts-BSV4cyC4.js +37 -0
  496. package/dist/web/static/assets/charts-BSV4cyC4.js.map +1 -0
  497. package/dist/web/static/assets/{index-7bl3kbcx.css → index-B_v_MKlb.css} +1 -1
  498. package/dist/web/static/assets/index-DileOOE4.js +4 -0
  499. package/dist/web/static/assets/index-DileOOE4.js.map +1 -0
  500. package/dist/web/static/assets/markdown-CA7ePUts.js +30 -0
  501. package/dist/web/static/assets/markdown-CA7ePUts.js.map +1 -0
  502. package/dist/web/static/assets/{outcome-DUn1NjlC.js → outcome-BKGy9azt.js} +2 -2
  503. package/dist/web/static/assets/{outcome-DUn1NjlC.js.map → outcome-BKGy9azt.js.map} +1 -1
  504. package/dist/web/static/assets/{query-S6X1S7K9.js → query-CgCOpYWf.js} +2 -2
  505. package/dist/web/static/assets/{query-S6X1S7K9.js.map → query-CgCOpYWf.js.map} +1 -1
  506. package/dist/web/static/assets/{react-router-JVUrkhdd.js → react-router-Cxmg8RuL.js} +3 -3
  507. package/dist/web/static/assets/{react-router-JVUrkhdd.js.map → react-router-Cxmg8RuL.js.map} +1 -1
  508. package/dist/web/static/assets/{syntax-highlighter-BkZfCDsz.js → syntax-highlighter-BDYycNja.js} +3 -3
  509. package/dist/web/static/assets/{syntax-highlighter-BkZfCDsz.js.map → syntax-highlighter-BDYycNja.js.map} +1 -1
  510. package/dist/web/static/assets/task-title-BhOcemuR.js +2 -0
  511. package/dist/web/static/assets/task-title-BhOcemuR.js.map +1 -0
  512. package/dist/web/static/assets/useAgentStats-B-uTgqBd.js +2 -0
  513. package/dist/web/static/assets/useAgentStats-B-uTgqBd.js.map +1 -0
  514. package/dist/web/static/assets/useDecisions-D-G2Ft5T.js +2 -0
  515. package/dist/web/static/assets/useDecisions-D-G2Ft5T.js.map +1 -0
  516. package/dist/web/static/assets/useDistill-21dZkXlT.js +3 -0
  517. package/dist/web/static/assets/useDistill-21dZkXlT.js.map +1 -0
  518. package/dist/web/static/assets/useEffectiveProject-DQiyX54y.js +2 -0
  519. package/dist/web/static/assets/useEffectiveProject-DQiyX54y.js.map +1 -0
  520. package/dist/web/static/assets/useIssuesFeed-CFiyQkAL.js +2 -0
  521. package/dist/web/static/assets/useIssuesFeed-CFiyQkAL.js.map +1 -0
  522. package/dist/web/static/assets/useKbHits-xKXWgqh9.js +2 -0
  523. package/dist/web/static/assets/useKbHits-xKXWgqh9.js.map +1 -0
  524. package/dist/web/static/assets/useSkillStats-B5hbIwdf.js +2 -0
  525. package/dist/web/static/assets/useSkillStats-B5hbIwdf.js.map +1 -0
  526. package/dist/web/static/assets/vendor-DS-q4Eyc.js +36 -0
  527. package/dist/web/static/assets/vendor-DS-q4Eyc.js.map +1 -0
  528. package/dist/web/static/index.html +6 -6
  529. package/package.json +5 -3
  530. package/dist/core/storage/workflow-recommendations.d.ts +0 -124
  531. package/dist/core/storage/workflow-recommendations.d.ts.map +0 -1
  532. package/dist/core/storage/workflow-recommendations.js +0 -274
  533. package/dist/core/storage/workflow-recommendations.js.map +0 -1
  534. package/dist/daemon/services/experience-extractor.d.ts.map +0 -1
  535. package/dist/daemon/services/experience-extractor.js.map +0 -1
  536. package/dist/daemon/services/violation-reporter.d.ts.map +0 -1
  537. package/dist/daemon/services/violation-reporter.js.map +0 -1
  538. package/dist/daemon/templates/agents/harness-hotfix.md +0 -99
  539. package/dist/daemon/templates/agents/hybrid-feature-with-safety.md +0 -104
  540. package/dist/daemon/templates/agents/refactor-specialist.md +0 -98
  541. package/dist/skills/distill/claude-cli-resolver.d.ts.map +0 -1
  542. package/dist/skills/distill/claude-cli-resolver.js.map +0 -1
  543. package/dist/skills/distilled/distilled-defi-amm-security.md +0 -293
  544. package/dist/skills/keyword-score.d.ts +0 -29
  545. package/dist/skills/keyword-score.d.ts.map +0 -1
  546. package/dist/skills/keyword-score.js +0 -54
  547. package/dist/skills/keyword-score.js.map +0 -1
  548. package/dist/web/static/assets/AgentContentPage-DkeRNxok.js +0 -2
  549. package/dist/web/static/assets/AgentContentPage-DkeRNxok.js.map +0 -1
  550. package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js +0 -2
  551. package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js.map +0 -1
  552. package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js +0 -3
  553. package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js.map +0 -1
  554. package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js +0 -2
  555. package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js.map +0 -1
  556. package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js +0 -2
  557. package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js.map +0 -1
  558. package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js +0 -2
  559. package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js.map +0 -1
  560. package/dist/web/static/assets/DriftTab-DqpepOhI.js +0 -2
  561. package/dist/web/static/assets/DriftTab-DqpepOhI.js.map +0 -1
  562. package/dist/web/static/assets/HealthHomePage-CN6zNIie.js +0 -3
  563. package/dist/web/static/assets/HealthHomePage-CN6zNIie.js.map +0 -1
  564. package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js +0 -2
  565. package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js.map +0 -1
  566. package/dist/web/static/assets/NotFound-BQPh0vaF.js +0 -2
  567. package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js +0 -2
  568. package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js.map +0 -1
  569. package/dist/web/static/assets/SettingsPage-oLJBNzQj.js +0 -2
  570. package/dist/web/static/assets/SettingsPage-oLJBNzQj.js.map +0 -1
  571. package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js +0 -2
  572. package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js.map +0 -1
  573. package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js +0 -2
  574. package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js.map +0 -1
  575. package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js +0 -2
  576. package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js.map +0 -1
  577. package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js +0 -6
  578. package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js.map +0 -1
  579. package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js +0 -3
  580. package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js.map +0 -1
  581. package/dist/web/static/assets/arco-Bhi3a6Qp.js +0 -14
  582. package/dist/web/static/assets/arco-Bhi3a6Qp.js.map +0 -1
  583. package/dist/web/static/assets/charts-BuHQWDbQ.js +0 -37
  584. package/dist/web/static/assets/charts-BuHQWDbQ.js.map +0 -1
  585. package/dist/web/static/assets/index-BIYnq1Dx.js +0 -4
  586. package/dist/web/static/assets/index-BIYnq1Dx.js.map +0 -1
  587. package/dist/web/static/assets/useTabsParam-k8qte_0C.js +0 -2
  588. package/dist/web/static/assets/useTabsParam-k8qte_0C.js.map +0 -1
  589. package/dist/web/static/assets/vendor-DWgdB1eY.js +0 -65
  590. package/dist/web/static/assets/vendor-DWgdB1eY.js.map +0 -1
  591. /package/dist/{skills/distill → core/utils}/claude-cli-resolver.d.ts +0 -0
@@ -0,0 +1,213 @@
1
+ ---
2
+ name: distilled-finishing-a-development-branch
3
+ version: 0.2.0-distilled
4
+ description: 'Distilled IT-universal skill: finishing-a-development-branch (score 4/5)'
5
+ keywords:
6
+ - finishing
7
+ - development
8
+ - branch
9
+ rubric_version: 2
10
+ distilled_from:
11
+ - upstream: https://github.com/obra/superpowers.git
12
+ license: MIT
13
+ commit: f2cbfbefebbfef77321e4c9abc9e949826bea9d7
14
+ paths:
15
+ - finishing-a-development-branch/SKILL.md
16
+ distilled_at: '2026-06-15T00:51:18.934Z'
17
+ distilled_by: claude-code skill-distiller agent
18
+ it_universal_score: 4
19
+ it_universal_dims:
20
+ d1: 1
21
+ d2: 0.5
22
+ d3: 0.5
23
+ d4: 1
24
+ d5: 1
25
+ it_universal_rationale: >-
26
+ Language-neutral git workflow with environment-detection and structured options; only minor
27
+ worktree-path conventions need adapting per harness.
28
+ ---
29
+
30
+ # Finishing a Development Branch
31
+
32
+ ## When to use
33
+ - Implementation is complete and you need to integrate or dispose of the work
34
+ - You are on a feature/fix branch and all tests pass
35
+ - You need to choose between merge, PR, keep, or discard in a structured way
36
+ - Working with git worktrees and must avoid phantom-state cleanup mistakes
37
+
38
+ ## Core idea
39
+
40
+ Before presenting any option to the user, always verify tests pass—broken code must not be merged or pushed. Next, detect the git workspace state (normal repo vs. named-branch worktree vs. detached HEAD) because this controls which options are valid and how cleanup works. Present exactly 4 options (or 3 for detached HEAD) so the conversation stays concrete. Execute in safe order: merge first, remove worktree second, delete branch last. Apply worktree cleanup only for merge/discard paths and only for worktrees your tooling created (provenance check), never for harness-owned workspaces.
41
+
42
+ ## Steps
43
+
44
+ ### 1 — Verify tests
45
+
46
+ Run the project's test suite before anything else:
47
+
48
+ ```bash
49
+ # Pick the right command for your stack:
50
+ npm test # Node/JS
51
+ cargo test # Rust
52
+ pytest # Python
53
+ go test ./... # Go
54
+ # etc.
55
+ ```
56
+
57
+ If tests fail, stop. Show the failures and do not proceed to menu.
58
+
59
+ ### 2 — Detect workspace state
60
+
61
+ ```bash
62
+ GIT_DIR=$(cd "$(git rev-parse --git-dir)" 2>/dev/null && pwd -P)
63
+ GIT_COMMON=$(cd "$(git rev-parse --git-common-dir)" 2>/dev/null && pwd -P)
64
+ ```
65
+
66
+ | State | Menu | Worktree cleanup? |
67
+ |---|---|---|
68
+ | `GIT_DIR == GIT_COMMON` (normal repo) | 4 options | No worktree exists |
69
+ | `GIT_DIR != GIT_COMMON`, named branch | 4 options | Provenance-based (Step 6) |
70
+ | `GIT_DIR != GIT_COMMON`, detached HEAD | 3 options | No (externally managed) |
71
+
72
+ ### 3 — Determine base branch
73
+
74
+ ```bash
75
+ git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null
76
+ ```
77
+
78
+ If ambiguous, ask: "This branch split from `main` — is that correct?"
79
+
80
+ ### 4 — Present options
81
+
82
+ **Normal repo / named-branch worktree → exactly 4 options:**
83
+
84
+ ```
85
+ Implementation complete. What would you like to do?
86
+
87
+ 1. Merge back to <base-branch> locally
88
+ 2. Push and create a Pull Request
89
+ 3. Keep the branch as-is (I'll handle it later)
90
+ 4. Discard this work
91
+
92
+ Which option?
93
+ ```
94
+
95
+ **Detached HEAD → exactly 3 options:**
96
+
97
+ ```
98
+ Implementation complete. You're on a detached HEAD (externally managed workspace).
99
+
100
+ 1. Push as new branch and create a Pull Request
101
+ 2. Keep as-is (I'll handle it later)
102
+ 3. Discard this work
103
+
104
+ Which option?
105
+ ```
106
+
107
+ Keep the menu concise — no extra explanation inline.
108
+
109
+ ### 5 — Execute the chosen option
110
+
111
+ #### Option 1 — Merge locally
112
+
113
+ ```bash
114
+ MAIN_ROOT=$(git -C "$(git rev-parse --git-common-dir)/.." rev-parse --show-toplevel)
115
+ cd "$MAIN_ROOT"
116
+ git checkout <base-branch>
117
+ git pull
118
+ git merge <feature-branch>
119
+ # Re-run tests on merged result; stop if they fail
120
+ ```
121
+
122
+ After tests pass on merged result → run Step 6 cleanup, then:
123
+
124
+ ```bash
125
+ git branch -d <feature-branch>
126
+ ```
127
+
128
+ #### Option 2 — Push and create PR
129
+
130
+ ```bash
131
+ git push -u origin <feature-branch>
132
+ gh pr create --title "<title>" --body "$(cat <<'EOF'
133
+ ## Summary
134
+ - <bullet 1>
135
+ - <bullet 2>
136
+
137
+ ## Test Plan
138
+ - [ ] <verification step>
139
+ EOF
140
+ )"
141
+ ```
142
+
143
+ **Do NOT clean up the worktree** — user needs it for PR iteration.
144
+
145
+ #### Option 3 — Keep as-is
146
+
147
+ Report: "Keeping branch `<name>`. Worktree preserved at `<path>`."
148
+ Do nothing else.
149
+
150
+ #### Option 4 — Discard
151
+
152
+ First confirm with the user:
153
+
154
+ ```
155
+ This will permanently delete:
156
+ - Branch <name>
157
+ - All commits: <list>
158
+ - Worktree at <path> (if applicable)
159
+
160
+ Type 'discard' to confirm.
161
+ ```
162
+
163
+ Wait for the exact word `discard`. Then:
164
+
165
+ ```bash
166
+ MAIN_ROOT=$(git -C "$(git rev-parse --git-common-dir)/.." rev-parse --show-toplevel)
167
+ cd "$MAIN_ROOT"
168
+ # Run Step 6 cleanup first, then:
169
+ git branch -D <feature-branch>
170
+ ```
171
+
172
+ ### 6 — Worktree cleanup (Options 1 and 4 only)
173
+
174
+ ```bash
175
+ GIT_DIR=$(cd "$(git rev-parse --git-dir)" 2>/dev/null && pwd -P)
176
+ GIT_COMMON=$(cd "$(git rev-parse --git-common-dir)" 2>/dev/null && pwd -P)
177
+ WORKTREE_PATH=$(git rev-parse --show-toplevel)
178
+ ```
179
+
180
+ - **`GIT_DIR == GIT_COMMON`**: Normal repo, no worktree. Done.
181
+ - **Worktree path is under your tooling's managed directories** (e.g. `.worktrees/`, `worktrees/`, or your harness's configured path): you own cleanup.
182
+
183
+ ```bash
184
+ MAIN_ROOT=$(git -C "$(git rev-parse --git-common-dir)/.." rev-parse --show-toplevel)
185
+ cd "$MAIN_ROOT"
186
+ git worktree remove "$WORKTREE_PATH"
187
+ git worktree prune # self-healing: remove stale registrations
188
+ ```
189
+
190
+ - **Otherwise**: The host harness owns this workspace. Do **not** remove it. Use the harness's workspace-exit mechanism if available; otherwise leave it in place.
191
+
192
+ ## Quick-reference matrix
193
+
194
+ | Option | Merge | Push | Keep worktree | Delete branch |
195
+ |---|---|---|---|---|
196
+ | 1 Merge locally | ✓ | — | no | yes (soft) |
197
+ | 2 Create PR | — | ✓ | **yes** | — |
198
+ | 3 Keep as-is | — | — | **yes** | — |
199
+ | 4 Discard | — | — | no | yes (force) |
200
+
201
+ ## Anti-patterns
202
+
203
+ - **Skipping test verification** — never offer the menu before tests pass
204
+ - **Open-ended "what next?"** — always present the numbered menu, not a free-form question
205
+ - **Cleaning up worktree for PR path** — user needs it alive for review feedback
206
+ - **Deleting branch before removing worktree** — `git branch -d` will fail; remove worktree first
207
+ - **Running `git worktree remove` from inside the worktree** — always `cd` to main repo root first
208
+ - **Removing harness-owned worktrees** — provenance check required; only remove what your tooling created
209
+ - **Merging without re-running tests** — always verify tests on the merged result, not just the feature branch
210
+ - **Skipping discard confirmation** — require the typed word `discard`; do not proceed on "yes"
211
+
212
+ ## References
213
+ - Upstream: https://github.com/obra/superpowers.git
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: distilled-frontend-design
3
+ version: 0.2.0-distilled
4
+ description: 'Distilled IT-universal skill: frontend-design (score 4.5/5)'
5
+ keywords:
6
+ - frontend
7
+ - design
8
+ rubric_version: 2
9
+ distilled_from:
10
+ - upstream: https://github.com/anthropics/skills.git
11
+ license: Apache-2.0
12
+ commit: 690f15cac7f7b4c055c5ab109c79ed9259934081
13
+ paths:
14
+ - frontend-design/SKILL.md
15
+ distilled_at: '2026-06-15T01:09:37.059Z'
16
+ distilled_by: claude-code skill-distiller agent
17
+ it_universal_score: 4.5
18
+ it_universal_dims:
19
+ d1: 0.5
20
+ d2: 1
21
+ d3: 1
22
+ d4: 1
23
+ d5: 1
24
+ it_universal_rationale: >-
25
+ Pure design-methodology skill covering HTML/CSS/JS/React/Vue with no repo-specific paths, no
26
+ IDE/CI lock-in, and transferable aesthetic doctrine applicable to any web UI project.
27
+ ---
28
+
29
+ # Production-Grade Frontend Design (Avoiding Generic AI Aesthetics)
30
+
31
+ ## When to use
32
+ - Building any web UI: components, pages, dashboards, landing pages, posters, or full apps
33
+ - Styling or beautifying an existing interface
34
+ - Generating HTML/CSS/JS, React, Vue, or other frontend artifacts
35
+ - When the goal is a memorable, polished result rather than "functional but forgettable"
36
+
37
+ ## Core idea
38
+ Before writing a single line of code, commit to a **bold, intentional aesthetic direction** and execute it with precision. The biggest failure mode in AI-generated UI is converging on the same generic choices (purple gradients, Inter font, evenly-distributed pastels, predictable card layouts). Instead, pick an extreme — brutally minimal, maximalist chaos, retro-futuristic, editorial, industrial — and pursue it without hedging. Production-quality comes from cohesion and intentionality, not complexity. A restrained minimal design is as valid as an elaborate maximalist one, provided every detail serves the chosen direction. The one rule: no two designs should look the same.
39
+
40
+ ## Steps
41
+
42
+ ### 1. Design Thinking (before coding)
43
+ Answer four questions explicitly:
44
+ - **Purpose**: What problem does this UI solve? Who are the users?
45
+ - **Tone**: Choose a specific aesthetic extreme (see palette below). Name it; commit to it.
46
+ - **Constraints**: Framework requirements, performance targets, accessibility needs.
47
+ - **Differentiator**: What is the single most memorable thing about this design?
48
+
49
+ **Aesthetic palette to choose from (non-exhaustive):**
50
+ Brutally minimal · Maximalist chaos · Retro-futuristic · Organic/natural · Luxury/refined · Playful/toy-like · Editorial/magazine · Brutalist/raw · Art deco/geometric · Soft/pastel · Industrial/utilitarian · Vaporwave · Swiss grid · Dark gothic · Cottagecore · Bauhaus
51
+
52
+ ### 2. Typography
53
+ - Select **two** fonts: a distinctive display font + a refined body font. Pair them with contrast (serif + grotesque, slab + geometric sans, etc.).
54
+ - Avoid: Arial, Roboto, Inter, system-ui, and any font that reads as "AI default".
55
+ - Use large, expressive type scales — big headings create hierarchy without extra elements.
56
+ - Letter-spacing, line-height, and font-weight are as important as font choice.
57
+
58
+ ### 3. Color & Theme
59
+ - Define a **dominant color** + one or two **sharp accent** colors via CSS custom properties (`--color-*`).
60
+ - Avoid timid, evenly-distributed palettes. High contrast between dominant and accent creates energy.
61
+ - Alternate between dark-background and light-background themes across generations — never default to white.
62
+ - All color decisions should flow from `var(--*)` tokens for easy theming.
63
+
64
+ ```css
65
+ :root {
66
+ --bg: #0c0c0c;
67
+ --surface: #1a1a1a;
68
+ --accent: #e8ff5a; /* sharp, single accent */
69
+ --text: #f0ede8;
70
+ --text-muted: #888;
71
+ }
72
+ ```
73
+
74
+ ### 4. Motion & Animation
75
+ - Prefer **CSS-only** animations for HTML artifacts; use Motion/Framer Motion for React when available.
76
+ - Focus effort on **one well-orchestrated moment**: a staggered page load with `animation-delay` creates more delight than many scattered micro-interactions.
77
+ - Use scroll-triggered reveals and hover states that **surprise** the user.
78
+ - Animations should reinforce the aesthetic (brutalist: snappy/hard cuts; luxury: slow eases; playful: bouncy springs).
79
+
80
+ ```css
81
+ /* Staggered reveal pattern */
82
+ .item { opacity: 0; transform: translateY(20px); animation: reveal 0.5s ease forwards; }
83
+ .item:nth-child(1) { animation-delay: 0.1s; }
84
+ .item:nth-child(2) { animation-delay: 0.2s; }
85
+ /* ... */
86
+ @keyframes reveal { to { opacity: 1; transform: none; } }
87
+ ```
88
+
89
+ ### 5. Spatial Composition
90
+ - Break grid monotony: use asymmetry, overlapping elements, diagonal flow, or grid-breaking accents.
91
+ - Alternate between generous negative space (minimalist) and controlled density (maximalist).
92
+ - Avoid equal-weight columns and predictable card grids unless the aesthetic calls for strict structure.
93
+
94
+ ### 6. Backgrounds & Visual Atmosphere
95
+ Go beyond solid colors. Choose contextually:
96
+ - **Gradient meshes** (radial-gradient composited at multiple positions)
97
+ - **Noise/grain textures** (SVG `feTurbulence` or CSS `backdrop-filter`)
98
+ - **Geometric patterns** (repeating SVG or CSS `background-image: repeating-linear-gradient(...)`)
99
+ - **Layered transparencies** with `rgba` + `backdrop-filter: blur()`
100
+ - **Dramatic shadows** as design elements, not just depth cues
101
+ - **Decorative borders / ruled lines** for editorial aesthetics
102
+
103
+ ### 7. Implementation discipline
104
+ - Match code complexity to aesthetic vision. Maximalist → elaborate animations and effects. Minimalist → restraint, precise spacing, subtle details.
105
+ - Ship working code, not wireframes. All interactive states (hover, focus, active, disabled) must be designed.
106
+ - Use semantic HTML; keep accessibility a baseline, not an afterthought (`aria-*`, focus rings, contrast ratios).
107
+
108
+ ## Anti-patterns
109
+ - ❌ Inter / Roboto / Arial / system-ui as the "default" font
110
+ - ❌ Purple-gradient-on-white-background as the "default" color scheme
111
+ - ❌ Predictable card-grid layouts with equal gutters everywhere
112
+ - ❌ Timid, evenly-distributed pastel palettes
113
+ - ❌ Space Grotesk or similar "popular AI pick" fonts repeated across designs
114
+ - ❌ Animations on every element rather than one orchestrated focal moment
115
+ - ❌ Generating the same aesthetic twice — vary theme (light/dark), font pairing, and spatial logic each time
116
+
117
+ ## References
118
+ - Upstream: https://github.com/anthropics/skills.git
@@ -2,7 +2,7 @@
2
2
  name: distilled-harness-engineering
3
3
  version: 0.1.0-distilled
4
4
  description: 'Distilled IT-universal skill: harness-engineering (score 5/5)'
5
- spawn_agent: refactor-specialist
5
+ spawn_agent: safety-net-implementer
6
6
  keywords:
7
7
  - harness
8
8
  - engineering
@@ -0,0 +1,185 @@
1
+ ---
2
+ name: distilled-receiving-code-review
3
+ version: 0.2.0-distilled
4
+ description: 'Distilled IT-universal skill: receiving-code-review (score 4/5)'
5
+ keywords:
6
+ - receiving
7
+ - code
8
+ - review
9
+ rubric_version: 2
10
+ distilled_from:
11
+ - upstream: https://github.com/obra/superpowers.git
12
+ license: MIT
13
+ commit: f2cbfbefebbfef77321e4c9abc9e949826bea9d7
14
+ paths:
15
+ - receiving-code-review/SKILL.md
16
+ - upstream: https://github.com/obra/superpowers.git
17
+ license: MIT
18
+ commit: f2cbfbefebbfef77321e4c9abc9e949826bea9d7
19
+ paths:
20
+ - requesting-code-review/SKILL.md
21
+ - upstream: https://github.com/affaan-m/ECC.git
22
+ license: MIT
23
+ commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
24
+ paths:
25
+ - flutter-dart-code-review/SKILL.md
26
+ - upstream: https://github.com/affaan-m/ECC.git
27
+ license: MIT
28
+ commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
29
+ paths:
30
+ - scientific-thinking-literature-review/SKILL.md
31
+ - upstream: https://github.com/affaan-m/ECC.git
32
+ license: MIT
33
+ commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
34
+ paths:
35
+ - flutter-dart-code-review/SKILL.md
36
+ - upstream: https://github.com/affaan-m/ECC.git
37
+ license: MIT
38
+ commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
39
+ paths:
40
+ - flutter-dart-code-review/SKILL.md
41
+ - upstream: https://github.com/affaan-m/ECC.git
42
+ license: MIT
43
+ commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
44
+ paths:
45
+ - prediction-market-risk-review/SKILL.md
46
+ - upstream: https://github.com/affaan-m/ECC.git
47
+ license: MIT
48
+ commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
49
+ paths:
50
+ - scientific-thinking-literature-review/SKILL.md
51
+ distilled_at: '2026-06-15T00:52:05.047Z'
52
+ distilled_by: claude-code skill-distiller agent
53
+ it_universal_score: 4
54
+ it_universal_dims:
55
+ d1: 1
56
+ d2: 0.5
57
+ d3: 1
58
+ d4: 0.5
59
+ d5: 1
60
+ it_universal_rationale: >-
61
+ Language-neutral code-review reception methodology (verify → evaluate → implement) applicable to
62
+ any codebase and review workflow; project-specific terms removed.
63
+ ---
64
+
65
+ # Receiving Code Review: Verify Before You Implement
66
+
67
+ ## When to use
68
+ - When receiving code review feedback (from teammates, CI bots, or external reviewers)
69
+ - Before implementing any review suggestion, especially if it seems unclear or technically questionable
70
+ - When you feel the urge to say "You're absolutely right!" and immediately start coding
71
+ - When feedback items are partially unclear and you're tempted to implement what you understand now
72
+
73
+ ## Core idea
74
+
75
+ Code review reception is a **technical evaluation exercise**, not a social performance. The only correct response to feedback is to verify it against codebase reality before acting. Performative agreement ("Great point!", "You're absolutely right!") is a red flag that you are about to implement something without understanding it. Clarity on all items must precede implementation of any item — partial understanding produces wrong implementations. External reviewers often lack full context; skepticism paired with careful checking is the right posture.
76
+
77
+ ## Steps
78
+
79
+ ### 1. Full read first
80
+ Read all feedback completely before reacting or touching any code.
81
+
82
+ ### 2. Clarify before acting
83
+ ```
84
+ IF any item is unclear:
85
+ STOP — do not implement anything yet
86
+ ASK for clarification on ALL unclear items
87
+
88
+ Rationale: Items may be interdependent. Partial understanding → wrong implementation.
89
+
90
+ Example:
91
+ Feedback: "Fix items 1–6"
92
+ You understand 1,2,3,6. Unclear on 4,5.
93
+ ✅ "I understand 1,2,3,6. Need clarification on 4 and 5 before proceeding."
94
+ ❌ Implement 1,2,3,6 now and ask about 4,5 later
95
+ ```
96
+
97
+ ### 3. Evaluate by feedback source
98
+
99
+ **From project lead / code owner (trusted)**
100
+ - Implement after understanding, no sycophancy
101
+ - Still ask if scope is unclear
102
+ - Skip to action or a brief technical acknowledgment
103
+
104
+ **From external reviewers (skeptical)**
105
+ ```
106
+ BEFORE implementing, check:
107
+ 1. Is this technically correct for THIS codebase?
108
+ 2. Does it break existing functionality?
109
+ 3. Is there a reason the current impl exists (legacy, compat)?
110
+ 4. Does it work across all required platforms/versions?
111
+ 5. Does the reviewer have full context?
112
+
113
+ IF suggestion seems wrong → push back with technical reasoning
114
+ IF you can't easily verify → say so: "I can't verify this without [X]. Should I [investigate/ask/proceed]?"
115
+ IF it conflicts with a prior architectural decision → discuss with project lead first
116
+ ```
117
+
118
+ ### 4. YAGNI check for "proper" feature suggestions
119
+ ```
120
+ IF reviewer suggests implementing a feature "properly":
121
+ Search codebase for actual usage
122
+
123
+ IF unused: "This endpoint/function isn't called anywhere. Remove it (YAGNI)?"
124
+ IF used: Then implement properly
125
+ ```
126
+
127
+ ### 5. Implement in priority order
128
+ ```
129
+ 1. Blocking issues (breaks, security)
130
+ 2. Simple fixes (typos, wrong imports)
131
+ 3. Complex fixes (refactoring, logic changes)
132
+
133
+ Test each fix individually. Verify no regressions before moving to next.
134
+ ```
135
+
136
+ ### 6. Acknowledge correctly
137
+ ```
138
+ ✅ "Fixed. [One-sentence description of what changed]"
139
+ ✅ "Good catch — [specific issue]. Fixed in [location]."
140
+ ✅ [Just fix it and show the diff]
141
+
142
+ ❌ "You're absolutely right!"
143
+ ❌ "Great point!"
144
+ ❌ "Thanks for catching that!" / any gratitude expression
145
+ ```
146
+ Actions speak. The code itself shows you heard the feedback.
147
+
148
+ ### 7. Gracefully correct a wrong pushback
149
+ ```
150
+ If you pushed back and were wrong:
151
+ ✅ "Checked [X] — you're right, it does [Y]. Implementing now."
152
+ ✅ "Verified this; my initial read was wrong because [reason]. Fixing."
153
+
154
+ ❌ Long apology
155
+ ❌ Defending the pushback
156
+ ❌ Over-explaining
157
+ ```
158
+ State the correction factually and move on.
159
+
160
+ ## When to push back
161
+
162
+ Push back when:
163
+ - The suggestion breaks existing functionality or tests
164
+ - The reviewer lacks full codebase context
165
+ - YAGNI: the feature/endpoint is not actually used
166
+ - It is technically incorrect for this stack/version
167
+ - Legacy or compatibility constraints exist that the reviewer missed
168
+ - It conflicts with a prior architectural decision by the project lead
169
+
170
+ **How to push back:** Use technical reasoning, not defensiveness. Ask specific questions. Reference working tests or existing code. Escalate to project lead if architectural.
171
+
172
+ ## Anti-patterns
173
+
174
+ | Anti-pattern | Correct alternative |
175
+ |---|---|
176
+ | Performative agreement ("Absolutely right!") | State the requirement or just act |
177
+ | Blind implementation without verification | Grep/read codebase first |
178
+ | Batching all fixes without testing each | One fix → test → next |
179
+ | Assuming reviewer is always right | Check whether it breaks things |
180
+ | Avoiding pushback to stay comfortable | Technical correctness > social comfort |
181
+ | Implementing understood items while skipping unclear ones | Clarify ALL items first |
182
+ | Can't verify → proceed anyway | State the limitation, ask for direction |
183
+
184
+ ## References
185
+ - Upstream: https://github.com/obra/superpowers.git
@@ -0,0 +1,124 @@
1
+ ---
2
+ name: distilled-subagent-driven-development
3
+ version: 0.2.0-distilled
4
+ description: 'Distilled IT-universal skill: subagent-driven-development (score 3.5/5)'
5
+ keywords:
6
+ - subagent
7
+ - driven
8
+ - development
9
+ rubric_version: 2
10
+ distilled_from:
11
+ - upstream: https://github.com/obra/superpowers.git
12
+ license: MIT
13
+ commit: f2cbfbefebbfef77321e4c9abc9e949826bea9d7
14
+ paths:
15
+ - subagent-driven-development/SKILL.md
16
+ distilled_at: '2026-06-15T00:53:29.788Z'
17
+ distilled_by: claude-code skill-distiller agent
18
+ it_universal_score: 3.5
19
+ it_universal_dims:
20
+ d1: 1
21
+ d2: 0.5
22
+ d3: 0.5
23
+ d4: 0.5
24
+ d5: 1
25
+ it_universal_rationale: >-
26
+ Language-neutral orchestration methodology with transferable status taxonomy, model-selection
27
+ heuristics, and two-stage review pattern; only minor framework-specific template filenames require
28
+ renaming in a new codebase.
29
+ ---
30
+
31
+ # Subagent-Driven Development
32
+
33
+ ## When to use
34
+ - You have a concrete implementation plan with multiple, mostly-independent tasks
35
+ - You want continuous execution without human check-ins between each task
36
+ - You need systematic quality gates (spec compliance + code quality) that self-loop until passing
37
+ - You want each implementer to have clean, unpolluted context rather than inheriting the coordinator's history
38
+
39
+ ## Core idea
40
+
41
+ Dispatch a **fresh subagent** for each task in your plan, giving it exactly the context it needs — no more, no less. After each task, run two sequential review subagents: first a **spec compliance reviewer** (did the implementer build precisely what was asked — nothing missing, nothing extra?), then a **code quality reviewer** (is it well-structured and maintainable?). Each review stage loops — reviewer finds issues → implementer fixes → reviewer re-reviews — until the stage is ✅ before advancing.
42
+
43
+ The coordinator reads the entire plan once upfront, extracts all task text, creates a task tracker, then executes sequentially without stopping to narrate progress. The only valid stops are: BLOCKED status that cannot be resolved, genuine ambiguity preventing progress, or all tasks complete.
44
+
45
+ ## Steps
46
+
47
+ ### 0 — Setup (once)
48
+ 1. Read the plan file once. Extract all tasks with their **full text** and any cross-task context notes.
49
+ 2. Create a task tracker (e.g., todo list) with every task marked pending.
50
+ 3. Do not re-read the plan during execution.
51
+
52
+ ### 1 — Dispatch implementer subagent (per task)
53
+ - Provide: full task text, scene-setting (where this task fits in the overall plan), any files or interfaces relevant to this task.
54
+ - **Never** let the subagent read the plan file itself — construct exactly what it needs.
55
+ - If the subagent asks questions before starting, answer completely before it proceeds.
56
+
57
+ ### 2 — Handle implementer status
58
+
59
+ | Status | Action |
60
+ |---|---|
61
+ | `DONE` | Proceed to spec compliance review |
62
+ | `DONE_WITH_CONCERNS` | Read concerns. Correctness/scope concerns → address before review. Observations ("file is getting large") → note and proceed |
63
+ | `NEEDS_CONTEXT` | Provide the missing information, re-dispatch same subagent |
64
+ | `BLOCKED` | Assess root cause: (a) provide more context + re-dispatch, (b) upgrade to a more capable model, (c) split the task into smaller pieces, (d) escalate to human. Never force retry without changing something. |
65
+
66
+ ### 3 — Spec compliance review
67
+ - Dispatch a spec reviewer subagent with: original task spec + committed code (provide git SHAs or diff).
68
+ - Question it answers: **Did the implementation match the spec exactly?** Nothing missing, nothing extra.
69
+ - If issues found → implementer subagent fixes → spec reviewer re-reviews. Loop until ✅.
70
+ - **Do not start code quality review until spec compliance is ✅.**
71
+
72
+ ### 4 — Code quality review
73
+ - Dispatch a code quality reviewer subagent with: the committed code.
74
+ - Question it answers: **Is this well-structured, tested, and maintainable?**
75
+ - If issues found → implementer subagent fixes → code quality reviewer re-reviews. Loop until ✅.
76
+
77
+ ### 5 — Mark complete, advance
78
+ - Mark the task complete in the task tracker.
79
+ - Move immediately to the next task. No progress summaries.
80
+
81
+ ### 6 — Final review (after all tasks)
82
+ - Dispatch a final code reviewer for the entire implementation holistically.
83
+ - Proceed to branch finalization (full test run, linting, PR preparation).
84
+
85
+ ## Model Selection
86
+
87
+ Choose the least powerful model that can handle each role — reduces cost and increases speed.
88
+
89
+ | Role / Task Type | Suggested model tier |
90
+ |---|---|
91
+ | Mechanical implementation: isolated function, clear spec, 1–2 files | Cheapest / fastest |
92
+ | Integration tasks: multi-file coordination, pattern matching, debugging | Standard |
93
+ | Architecture, design decisions, broad codebase understanding | Most capable |
94
+ | Spec compliance review | Standard (needs judgment, not brute force) |
95
+ | Code quality review | Most capable (architectural patterns, test adequacy) |
96
+
97
+ ## Anti-patterns
98
+
99
+ - **Never start on main/master** without explicit user consent — work on a feature branch
100
+ - **Never skip spec compliance review** before code quality review — wrong order wastes cycles
101
+ - **Never skip code quality review** even if spec passes — both gates are required
102
+ - **Never dispatch multiple implementer subagents in parallel** — they will conflict on shared files
103
+ - **Never make the subagent read the plan file** — provide the extracted task text directly
104
+ - **Never skip scene-setting context** — subagent needs to understand where the task fits
105
+ - **Never let implementer self-review substitute for reviewer subagents** — self-review is supplementary
106
+ - **Never accept "close enough" on spec compliance** — it is either ✅ or the fix loop runs
107
+ - **Never skip re-review after fixes** — reviewer found issues → implementer fixes → same reviewer reviews again
108
+ - **Never pause between tasks to ask "should I continue?"** — the human asked you to execute the plan; execute it
109
+ - **Never ignore BLOCKED status** — something must change before retry (model, context, or task scope)
110
+
111
+ ## Key Principles
112
+
113
+ **Fresh context = focused subagents.** Each implementer subagent is constructed from scratch by the coordinator. It inherits no session history, no tool call history, no side conversations. This keeps it on-task and prevents compounding confusion across tasks.
114
+
115
+ **Spec before quality.** Spec compliance first ensures the right thing was built. Code quality second ensures it was built well. Reversing the order wastes quality review effort on implementations that may be refactored or scrapped.
116
+
117
+ **Review loops are the mechanism, not optional.** A reviewer finding issues does not mean failure — it means the loop is working. The loop closes when the reviewer explicitly approves.
118
+
119
+ **Continuous execution is a contract.** The human asked you to execute the plan. Pausing to narrate progress or ask "shall I continue?" breaks the contract and wastes their time.
120
+
121
+ **Context curation is the coordinator's core job.** The coordinator's value is in extracting exactly the right text, interfaces, and background from the plan and codebase, and handing it to each subagent. Get this right and subagents succeed on the first attempt.
122
+
123
+ ## References
124
+ - Upstream: https://github.com/obra/superpowers.git