@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,144 @@
1
+ ---
2
+ name: distilled-doc-coauthoring
3
+ version: 0.2.0-distilled
4
+ description: 'Distilled IT-universal skill: doc-coauthoring (score 4.5/5)'
5
+ keywords:
6
+ - doc
7
+ - coauthoring
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
+ - doc-coauthoring/SKILL.md
15
+ distilled_at: '2026-06-15T01:06:31.779Z'
16
+ distilled_by: claude-code skill-distiller agent
17
+ it_universal_score: 4.5
18
+ it_universal_dims:
19
+ d1: 1
20
+ d2: 0.5
21
+ d3: 1
22
+ d4: 1
23
+ d5: 1
24
+ it_universal_rationale: >-
25
+ Language-neutral 3-stage collaborative documentation methodology (context-gather →
26
+ brainstorm-curate-refine → reader-test) portable to any project or domain; minor D2 deduction for
27
+ optional AI-assistant-specific tooling hints that are abstracted away in this distillation.
28
+ ---
29
+
30
+ # Structured Doc Co-Authoring Workflow
31
+
32
+ ## When to use
33
+ - User wants to write documentation, proposals, technical specs, decision docs, RFCs, PRDs, or similar structured content
34
+ - User is starting a substantial writing task and says things like "write a doc", "draft a proposal", "create a spec", "write up"
35
+ - User wants to ensure the document works for readers who lack the author's context
36
+ - Doc type is identified: "design doc", "decision doc", "RFC", "PRD"
37
+
38
+ ## Core idea
39
+
40
+ Documentation fails not from lack of effort but from *context blindness* — authors assume readers share their mental model. This three-stage workflow (Context Gathering → Refinement & Structure → Reader Testing) systematically closes that gap. First, externalize all knowledge the author holds implicitly. Then build section-by-section using a brainstorm-curate-draft-refine loop that keeps the author in control of substance while the assistant handles structure and prose. Finally, test the finished document against a "fresh eyes" reader (no prior context) to catch blind spots before real readers hit them. The result is a document that stands on its own.
41
+
42
+ ## Steps
43
+
44
+ ### Offer the workflow first
45
+ Before starting, explain the three stages and ask whether the user wants the structured approach or prefers to work freeform. If they decline, work freeform. If they accept, begin Stage 1.
46
+
47
+ ---
48
+
49
+ ### Stage 1 — Context Gathering
50
+
51
+ **Goal:** Close the gap between what the user knows and what the assistant knows.
52
+
53
+ **1. Ask meta-context questions:**
54
+ - What type of document? (spec, decision doc, proposal, RFC, …)
55
+ - Who is the primary audience?
56
+ - What should happen when someone reads this — what's the desired impact?
57
+ - Is there a required template or format to follow?
58
+ - Any constraints, deadlines, or other context?
59
+
60
+ Tell the user they can answer in shorthand or bullet form.
61
+
62
+ **2. Encourage an unstructured info dump.** Ask them to brain-dump everything relevant without worrying about organization:
63
+ - Background on the project or problem
64
+ - Why alternative solutions aren't being used
65
+ - Organizational context: team dynamics, past incidents, relevant politics
66
+ - Timeline pressures, technical dependencies, stakeholder concerns
67
+ - Links to related discussions, prior documents, or existing decisions
68
+
69
+ Advise them not to organize it — just get it out.
70
+
71
+ **3. Pull in external context** if integrations or connectors are available (e.g., messaging apps, document storage). If not, ask the user to paste relevant excerpts directly.
72
+
73
+ **4. Ask clarifying questions.** Once the initial dump is done, generate 5–10 numbered questions based on remaining gaps. Tell the user they can answer in shorthand (e.g., `"1: yes, 2: no — backwards compat, 3: see linked doc"`). Continue until you can reason about edge cases and trade-offs without needing basics explained.
74
+
75
+ **5. Transition check:** Ask if there's more context to add, or if they're ready to move to drafting.
76
+
77
+ ---
78
+
79
+ ### Stage 2 — Refinement & Structure
80
+
81
+ **Goal:** Build the document section by section through brainstorming, curation, and iterative refinement.
82
+
83
+ **Set up a scaffold:**
84
+ - Agree on document sections. If the structure is unclear, suggest 3–5 sections appropriate to the doc type.
85
+ - Create a document scaffold with all section headers and placeholder text (e.g., `[To be written]`).
86
+ - Start with the section that has the most unknowns — usually the core proposal or decision. Leave summary/intro sections for last.
87
+
88
+ **Key instruction to give the user at the start of the first section:**
89
+ > "Rather than editing the doc directly, tell me what to change (e.g., 'Remove the X bullet — already covered by Y'). This helps me learn your style for future sections."
90
+
91
+ **For each section, run this loop:**
92
+
93
+ 1. **Clarify** — Ask 5–10 questions about what should go in this specific section.
94
+
95
+ 2. **Brainstorm** — Generate 5–20 candidate items to include (scale to section complexity). Surface things from the context dump the user may have forgotten.
96
+
97
+ 3. **Curate** — Ask the user which items to keep, remove, or combine, with brief justifications:
98
+ > "Keep 1, 4, 7 / Remove 3 (duplicates 1) / Remove 6 (audience already knows this) / Combine 11+12"
99
+ If the user gives freeform feedback instead of numbered selections, extract their intent and apply it.
100
+
101
+ 4. **Gap check** — Based on what they've selected, ask if anything important is missing.
102
+
103
+ 5. **Draft** — Replace the placeholder with actual content. Announce you're doing this.
104
+
105
+ 6. **Iterate** — Apply targeted edits in response to user feedback. Never reprint the whole document; only show the changed section.
106
+
107
+ **Quality check:** After 3 consecutive iterations with no substantial changes, ask whether anything can be cut without losing important information.
108
+
109
+ **Near completion (80%+ of sections done):** Re-read the entire document and check for:
110
+ - Flow and consistency across sections
111
+ - Redundancy or contradictions
112
+ - Generic filler that carries no weight — every sentence should earn its place
113
+
114
+ When all sections are complete, offer a final review pass then ask if the user is ready for Stage 3.
115
+
116
+ ---
117
+
118
+ ### Stage 3 — Reader Testing
119
+
120
+ **Goal:** Verify the document stands alone for readers who have zero prior context.
121
+
122
+ **1. Predict reader questions.** Generate 5–10 questions a realistic reader would ask when encountering this document cold — the kind of person who was linked to it or found it searching.
123
+
124
+ **2. Test with a fresh context.** Use a sub-agent or a new session with no conversation history. Feed it only the document text and ask each predicted question. Record the answers.
125
+
126
+ **3. Gap analysis.** Compare the answers to what the authors intended. Flag every place the document failed to provide sufficient context.
127
+
128
+ **4. Remediate.** Return to Stage 2 refinement for any section that produced confusing or incomplete answers, then re-test.
129
+
130
+ **5. Sign off.** When the document answers all predicted reader questions accurately using only its own text — no external context needed — it is reader-ready.
131
+
132
+ ---
133
+
134
+ ## Anti-patterns
135
+ - **Drafting before context gathering** — skips the step that prevents author blind spots; the resulting doc will feel thin or assume too much.
136
+ - **Reprinting the whole document on every edit** — apply targeted replacements; only surface the changed section.
137
+ - **Merging brainstorm and draft into one step** — brainstorming generates options the user can reject; drafting commits to them. Keep them separate so the user retains agency over what's included.
138
+ - **Skipping reader testing** — authors consistently underestimate how much implicit context they carry. The fresh-eyes test is the highest-leverage step.
139
+ - **Letting the user edit the doc directly during Stage 2** — you lose signal about their preferences; ask them to narrate changes instead.
140
+ - **Writing summary or intro sections first** — these depend on all other sections being settled; always write them last.
141
+ - **Asking all clarifying questions at once upfront** — spread them across stages; early questions are meta-context, later questions are section-specific.
142
+
143
+ ## References
144
+ - Upstream: https://github.com/anthropics/skills.git
@@ -0,0 +1,231 @@
1
+ ---
2
+ name: distilled-docx
3
+ version: 0.2.0-distilled
4
+ description: 'Distilled IT-universal skill: docx (score 3/5)'
5
+ keywords:
6
+ - docx
7
+ rubric_version: 2
8
+ distilled_from:
9
+ - upstream: https://github.com/anthropics/skills.git
10
+ license: Apache-2.0
11
+ commit: 690f15cac7f7b4c055c5ab109c79ed9259934081
12
+ paths:
13
+ - docx/SKILL.md
14
+ distilled_at: '2026-06-15T01:08:46.682Z'
15
+ distilled_by: claude-code skill-distiller agent
16
+ it_universal_score: 3
17
+ it_universal_dims:
18
+ d1: 0.5
19
+ d2: 0.5
20
+ d3: 0.5
21
+ d4: 0.5
22
+ d5: 1
23
+ it_universal_rationale: >-
24
+ Rich docx-js API methodology (DXA units, table dual-width, list numbering, page-size gotchas) is
25
+ directly reusable in any Node.js project; project-specific Python wrapper scripts replaced with
26
+ standard libreoffice/unzip CLI equivalents
27
+ ---
28
+
29
+ # .docx Creation, Editing & Analysis (docx-js)
30
+
31
+ ## When to use
32
+ - Creating Word documents (.docx) programmatically with Node.js
33
+ - Editing existing .docx files at the XML level
34
+ - Extracting text/content from Word documents with tracked-changes awareness
35
+ - Generating reports, memos, letters, or templated Word output with rich formatting
36
+ - Handling headings, tables, lists, images, headers/footers, TOC, footnotes, hyperlinks
37
+
38
+ ## Core idea
39
+ A `.docx` file is a ZIP archive of XML files — unpack with `unzip`, edit, repack for surgical changes, or generate from scratch via the `docx` npm package (`npm install docx`). The library defaults to **A4 paper**, so always set page size explicitly. All dimensions use **DXA units** (1440 DXA = 1 inch). Tables require **dual width declarations** on both the `Table` object and each `TableCell` — omitting either causes broken rendering. Use `WidthType.DXA` everywhere; percentage-based widths break in Google Docs.
40
+
41
+ ## Steps
42
+
43
+ ### 1. Read / Extract Content
44
+ ```bash
45
+ # Text extraction with tracked-changes support
46
+ pandoc --track-changes=all document.docx -o output.md
47
+
48
+ # Raw XML inspection — docx is just a ZIP
49
+ unzip document.docx -d unpacked/
50
+ ```
51
+
52
+ ### 2. Convert Legacy .doc → .docx
53
+ ```bash
54
+ libreoffice --headless --convert-to docx document.doc
55
+ ```
56
+
57
+ ### 3. Convert to PDF / Images
58
+ ```bash
59
+ libreoffice --headless --convert-to pdf document.docx
60
+ pdftoppm -jpeg -r 150 document.pdf page
61
+ ```
62
+
63
+ ### 4. Create a New Document (Node.js)
64
+ ```javascript
65
+ const { Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
66
+ ImageRun, Header, Footer, AlignmentType, PageOrientation, LevelFormat,
67
+ ExternalHyperlink, InternalHyperlink, Bookmark, FootnoteReferenceRun,
68
+ TabStopType, TabStopPosition, TableOfContents, HeadingLevel,
69
+ BorderStyle, WidthType, ShadingType, PageNumber, PageBreak } = require('docx');
70
+
71
+ // CRITICAL: Always set page size — docx defaults to A4, not US Letter
72
+ const doc = new Document({
73
+ sections: [{
74
+ properties: {
75
+ page: {
76
+ size: { width: 12240, height: 15840 }, // US Letter: 8.5"×11" in DXA
77
+ margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } // 1" margins
78
+ }
79
+ },
80
+ children: [ /* content nodes */ ]
81
+ }]
82
+ });
83
+ Packer.toBuffer(doc).then(buf => require('fs').writeFileSync('out.docx', buf));
84
+ ```
85
+
86
+ **Common page sizes (1440 DXA = 1 inch; content width = page − margins):**
87
+
88
+ | Paper | Width | Height | Content @ 1" margins |
89
+ |-----------|--------|--------|-----------------------|
90
+ | US Letter | 12,240 | 15,840 | 9,360 |
91
+ | A4 | 11,906 | 16,838 | 9,026 |
92
+
93
+ **Landscape:** Pass portrait dimensions + `orientation: PageOrientation.LANDSCAPE`; the library swaps width/height in the XML automatically.
94
+
95
+ ### 5. Override Built-in Heading Styles
96
+ ```javascript
97
+ const doc = new Document({
98
+ styles: {
99
+ default: { document: { run: { font: "Arial", size: 24 } } }, // 12pt default
100
+ paragraphStyles: [
101
+ { id: "Heading1", name: "Heading 1", basedOn: "Normal", next: "Normal",
102
+ quickFormat: true,
103
+ run: { size: 32, bold: true, font: "Arial" },
104
+ paragraph: { spacing: { before: 240, after: 240 },
105
+ outlineLevel: 0 } }, // outlineLevel required for TOC pickup
106
+ ]
107
+ },
108
+ sections: [{ children: [
109
+ new Paragraph({ heading: HeadingLevel.HEADING_1,
110
+ children: [new TextRun("Title")] })
111
+ ]}]
112
+ });
113
+ ```
114
+
115
+ ### 6. Lists — Use Numbering Config, Never Unicode Bullets
116
+ ```javascript
117
+ const doc = new Document({
118
+ numbering: { config: [
119
+ { reference: "bullets",
120
+ levels: [{ level: 0, format: LevelFormat.BULLET, text: "•",
121
+ alignment: AlignmentType.LEFT,
122
+ style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
123
+ { reference: "numbers",
124
+ levels: [{ level: 0, format: LevelFormat.DECIMAL, text: "%1.",
125
+ alignment: AlignmentType.LEFT,
126
+ style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
127
+ ]},
128
+ sections: [{ children: [
129
+ new Paragraph({ numbering: { reference: "bullets", level: 0 },
130
+ children: [new TextRun("Bullet item")] }),
131
+ new Paragraph({ numbering: { reference: "numbers", level: 0 },
132
+ children: [new TextRun("Numbered item")] }),
133
+ ]}]
134
+ });
135
+ // Same reference = numbering continues; different reference = restarts from 1
136
+ ```
137
+
138
+ ### 7. Tables — Dual Width + DXA Always
139
+ ```javascript
140
+ const border = { style: BorderStyle.SINGLE, size: 1, color: "CCCCCC" };
141
+ const borders = { top: border, bottom: border, left: border, right: border };
142
+
143
+ new Table({
144
+ width: { size: 9360, type: WidthType.DXA }, // Always DXA — % breaks Google Docs
145
+ columnWidths: [4680, 4680], // Must sum exactly to table width
146
+ rows: [new TableRow({ children: [
147
+ new TableCell({
148
+ borders,
149
+ width: { size: 4680, type: WidthType.DXA }, // ALSO required on each cell
150
+ shading: { fill: "D5E8F0", type: ShadingType.CLEAR }, // CLEAR not SOLID
151
+ margins: { top: 80, bottom: 80, left: 120, right: 120 }, // internal padding
152
+ children: [new Paragraph({ children: [new TextRun("Cell")] })]
153
+ })
154
+ ]})]
155
+ })
156
+ ```
157
+
158
+ ### 8. Images
159
+ ```javascript
160
+ new Paragraph({ children: [new ImageRun({
161
+ type: "png", // REQUIRED: png | jpg | jpeg | gif | bmp | svg
162
+ data: require('fs').readFileSync("image.png"),
163
+ transformation: { width: 200, height: 150 },
164
+ altText: { title: "T", description: "D", name: "N" } // all three fields required
165
+ })]})
166
+ ```
167
+
168
+ ### 9. Page Breaks
169
+ ```javascript
170
+ new Paragraph({ children: [new PageBreak()] }) // PageBreak must be in a Paragraph
171
+ new Paragraph({ pageBreakBefore: true, children: [new TextRun("New page")] }) // alternative
172
+ ```
173
+
174
+ ### 10. Headers, Footers & Page Numbers
175
+ ```javascript
176
+ sections: [{
177
+ headers: { default: new Header({ children: [
178
+ new Paragraph({ children: [new TextRun("Header text")] })
179
+ ]})},
180
+ footers: { default: new Footer({ children: [
181
+ new Paragraph({ children: [
182
+ new TextRun("Page "),
183
+ new TextRun({ children: [PageNumber.CURRENT] })
184
+ ]})
185
+ ]})},
186
+ children: [/* content */]
187
+ }]
188
+ ```
189
+
190
+ ### 11. Table of Contents
191
+ ```javascript
192
+ // Headings MUST use HeadingLevel enum — custom paragraph styles are NOT picked up by TOC
193
+ new TableOfContents("Table of Contents", { hyperlink: true, headingStyleRange: "1-3" })
194
+ ```
195
+
196
+ ### 12. Hyperlinks & Bookmarks
197
+ ```javascript
198
+ // External link
199
+ new ExternalHyperlink({ link: "https://example.com",
200
+ children: [new TextRun({ text: "Link text", style: "Hyperlink" })] })
201
+
202
+ // Internal: place bookmark at destination, reference by anchor elsewhere
203
+ new Bookmark({ id: "sec1", children: [new TextRun("Section 1")] })
204
+ new InternalHyperlink({ anchor: "sec1",
205
+ children: [new TextRun({ text: "Go to Section 1", style: "Hyperlink" })] })
206
+ ```
207
+
208
+ ### 13. Footnotes
209
+ ```javascript
210
+ const doc = new Document({
211
+ footnotes: {
212
+ 1: { children: [new Paragraph("Source: Annual Report 2024")] },
213
+ },
214
+ sections: [{ children: [new Paragraph({
215
+ children: [new TextRun("Revenue grew 15%"), new FootnoteReferenceRun(1)]
216
+ })]}]
217
+ });
218
+ ```
219
+
220
+ ## Anti-patterns
221
+ - ❌ **Never** insert unicode bullet characters (`•` / `\u2022`) directly in `TextRun` — use `LevelFormat.BULLET` in numbering config
222
+ - ❌ **Never** use `WidthType.PERCENTAGE` for tables — breaks in Google Docs; always use `WidthType.DXA`
223
+ - ❌ **Never** omit the `type` field on `ImageRun` — causes silent rendering failure
224
+ - ❌ **Never** use `ShadingType.SOLID` for colored cell backgrounds — produces solid black; use `ShadingType.CLEAR`
225
+ - ❌ **Never** place `PageBreak` outside a `Paragraph` wrapper
226
+ - ❌ **Never** rely on the docx-js default page size (A4) — always set `size` explicitly in section `properties.page`
227
+ - ❌ **Never** set `columnWidths` on `Table` without also setting matching `width` on each `TableCell`
228
+ - ❌ **Never** use custom paragraph styles for TOC headings — only `HeadingLevel` enum values are recognized by `TableOfContents`
229
+
230
+ ## References
231
+ - Upstream: https://github.com/anthropics/skills.git
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: distilled-executing-plans
3
3
  version: 0.2.0-distilled
4
- description: 'Distilled IT-universal skill: executing-plans (score 4/5)'
4
+ description: 'Distilled IT-universal skill: executing-plans (score 3/5)'
5
5
  keywords:
6
6
  - executing
7
7
  - plans
@@ -9,105 +9,140 @@ rubric_version: 2
9
9
  distilled_from:
10
10
  - upstream: https://github.com/obra/superpowers.git
11
11
  license: MIT
12
- commit: unknown
12
+ commit: f2cbfbefebbfef77321e4c9abc9e949826bea9d7
13
13
  paths:
14
14
  - executing-plans/SKILL.md
15
15
  - upstream: https://github.com/obra/superpowers.git
16
16
  license: MIT
17
- commit: unknown
17
+ commit: f2cbfbefebbfef77321e4c9abc9e949826bea9d7
18
18
  paths:
19
19
  - writing-plans/SKILL.md
20
20
  - upstream: https://github.com/affaan-m/ECC.git
21
21
  license: MIT
22
- commit: unknown
22
+ commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
23
23
  paths:
24
24
  - inventory-demand-planning/SKILL.md
25
25
  - upstream: https://github.com/affaan-m/ECC.git
26
26
  license: MIT
27
- commit: unknown
27
+ commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
28
28
  paths:
29
29
  - plan-orchestrate/SKILL.md
30
30
  - upstream: https://github.com/affaan-m/ECC.git
31
31
  license: MIT
32
- commit: unknown
32
+ commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
33
33
  paths:
34
34
  - inventory-demand-planning/SKILL.md
35
35
  - upstream: https://github.com/affaan-m/ECC.git
36
36
  license: MIT
37
- commit: unknown
37
+ commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
38
38
  paths:
39
39
  - inventory-demand-planning/SKILL.md
40
40
  - upstream: https://github.com/affaan-m/ECC.git
41
41
  license: MIT
42
- commit: unknown
42
+ commit: 928076cc08cbb31e8549cea2883b4f51811de1c8
43
43
  paths:
44
44
  - plan-orchestrate/SKILL.md
45
- distilled_at: '2026-05-29T08:10:47.754Z'
45
+ distilled_at: '2026-06-15T00:50:22.691Z'
46
46
  distilled_by: claude-code skill-distiller agent
47
- it_universal_score: 4
47
+ it_universal_score: 3
48
48
  it_universal_dims:
49
49
  d1: 1
50
50
  d2: 0.5
51
- d3: 1
51
+ d3: 0.5
52
52
  d4: 0.5
53
- d5: 1
53
+ d5: 0.5
54
54
  it_universal_rationale: >-
55
- Language-neutral plan-execution methodology with strong stop/verify discipline; only mild
56
- deduction for cross-referencing a platform-specific skill framework (abstracted away in
57
- distillation).
55
+ Language-neutral plan-execution methodology with transferable stop-when-blocked discipline and
56
+ critical-review-before-coding phase separation, portable to any codebase with minor tool
57
+ substitution.
58
58
  ---
59
59
 
60
- # Executing Plans
60
+ # Executing Plans: Structured Plan-to-Code Workflow
61
61
 
62
62
  ## When to use
63
- - You have a written implementation plan (file or structured checklist) and are about to start a separate implementation session
64
- - You want to ensure critical review, progress tracking, and verification gates before shipping
65
- - Any codebase, any language the skill governs *how* you work through a plan, not *what* the plan contains
63
+ - You have a written implementation plan (file, doc, or spec) to execute
64
+ - You want disciplined, reviewable task completion with a visible audit trail
65
+ - You need clear stopping criteria so you never guess through blockers
66
+ - You want an explicit separation between "plan critique" and "plan execution"
66
67
 
67
68
  ## Core idea
68
69
 
69
- Before writing a single line of code, load the plan and review it critically. Raise any concerns with your collaborator; resolve ambiguity before execution, not during. Then execute task-by-task, marking each item `in_progress` → `completed` and running the verifications the plan specifies. If you hit a genuine blocker, stop and ask — never guess your way through an unclear or broken instruction. After all tasks pass verification, hand off to a finishing/review phase before merging.
70
+ Before touching any code, read the plan critically and surface concerns to your
71
+ partner first. Only after the plan is understood and accepted do you begin
72
+ execution. Track each task's state (pending → in_progress → completed) so
73
+ progress is always visible. Execute tasks exactly as written — do not improvise.
74
+ When you hit a blocker (failing verification, unclear instruction, missing
75
+ dependency), **stop and ask** rather than guessing your way through. The goal is
76
+ predictable, reviewable execution — not autonomous problem-solving that hides
77
+ risk inside implementation.
70
78
 
71
79
  ## Steps
72
80
 
73
- 1. **Announce intent** Tell your collaborator which plan file you are executing, so they have the same mental model.
81
+ ### Phase 1: Load and Review
82
+ 1. Read the plan document **fully** before writing any code
83
+ 2. Identify concerns: ambiguities, missing context, risky assumptions,
84
+ dependency gaps, contradictions between steps
85
+ 3. If concerns exist → raise them with your partner before starting;
86
+ wait for resolution or plan update
87
+ 4. If no concerns → proceed to Phase 2
74
88
 
75
- 2. **Load & review the plan critically**
76
- - Read the entire plan before touching any code.
77
- - Flag ambiguities, missing dependencies, or risky assumptions.
78
- - If concerns exist raise them with your collaborator and wait for resolution.
79
- - If no concerns proceed to step 3.
89
+ ### Phase 2: Set Up Task Tracking
90
+ 1. Create a task list (checklist, todo list, or tracking note) from the
91
+ plan's tasks one entry per discrete unit of work
92
+ 2. Confirm the list matches the plan's intent before starting
93
+ 3. Each item should be independently executable and independently verifiable
80
94
 
81
- 3. **Create a task list** — Derive a checklist (e.g., TodoWrite or any tracking mechanism) directly from the plan's task list. Do not reinterpret task scope at this stage.
95
+ ### Phase 3: Execute Tasks
96
+ For each task in order:
97
+ 1. Mark the task as **in_progress**
98
+ 2. Follow the plan's steps exactly — no improvisation, no shortcuts
99
+ 3. Run any verification steps specified in the plan (tests, lint, smoke checks,
100
+ manual checks)
101
+ 4. If verification passes → mark task **completed**, move to next task
102
+ 5. If verification fails → see "When to Stop" below
82
103
 
83
- 4. **Execute tasks one at a time**
84
- - Mark the task `in_progress`.
85
- - Follow every sub-step exactly as written; bite-sized steps exist for a reason.
86
- - Run each verification the plan specifies (tests, lint, manual checks, etc.).
87
- - Mark the task `completed` only after verification passes.
88
- - Repeat for the next task.
104
+ ### Phase 4: Wrap Up
105
+ After all tasks complete and all verifications pass:
106
+ 1. Run any final integration or end-to-end checks
107
+ 2. Summarise what was implemented versus what the plan specified
108
+ 3. Surface any deviations (intended or forced) to your partner before closing
89
109
 
90
- 5. **Stop-and-ask triggers** Immediately halt execution and ask your collaborator when:
91
- - A dependency is missing or unavailable.
92
- - A verification fails repeatedly and the cause is unclear.
93
- - An instruction is ambiguous or contradictory.
94
- - The plan has a critical gap that prevents starting the next task.
110
+ ## When to Stop and Ask
95
111
 
96
- 6. **Do not skip to a later task** to work around a blocker in an earlier one — partial execution can leave the codebase in an inconsistent state.
112
+ **Stop executing immediately when any of these occur:**
113
+ - A test or verification fails and the fix is not specified in the plan
114
+ - An instruction is unclear or contradicts an earlier step
115
+ - A required dependency, credential, or context is missing
116
+ - The plan has a gap that would require guessing to bridge
117
+ - You are about to make an architectural or scope decision the plan does not
118
+ authorise
97
119
 
98
- 7. **Finishing phase** After all tasks complete and all verifications pass:
99
- - Summarise what was done and which tests were run.
100
- - Present the diff / change summary to your collaborator.
101
- - Get explicit sign-off before merging to the main branch.
120
+ **Ask for clarification rather than guessing.** Guessing through blockers causes
121
+ cascading errors that are much harder to debug than a clean, early stop.
102
122
 
103
- ## Anti-patterns
123
+ ## When to Return to Phase 1
124
+
125
+ Return to the Load and Review phase when:
126
+ - Your partner updates or revises the plan based on your feedback
127
+ - Mid-execution discovery reveals that the fundamental approach is wrong
128
+ - A blocker exposes a design issue the plan did not anticipate
104
129
 
105
- - **Guessing through blockers** If an instruction is unclear, guessing introduces silent bugs. Stop and ask.
106
- - **Skipping verifications** — "I'll run the tests later" defeats the purpose of checkpoints.
107
- - **Starting on the main branch without consent** — Always confirm the branch policy with your collaborator; default to a feature branch.
108
- - **Re-interpreting plan scope mid-execution** — If the plan seems wrong, surface it (step 2 or stop-and-ask), don't silently change what you're building.
109
- - **Marking completed before verification** Status should reflect reality, not optimism.
110
- - **Merging multiple tasks into one batch** Granular tracking makes rollback and review far easier.
130
+ Do not continue executing against a plan that has been invalidated by new
131
+ information.
132
+
133
+ ## Anti-patterns
134
+ - **Skipping the critical review**: Starting to code before critiquing the plan
135
+ produces avoidable rework; the review is not optional ceremony
136
+ - **Improvising around blockers**: If the plan does not say what to do, stop —
137
+ do not invent a solution and proceed silently
138
+ - **Marking tasks complete before verification**: A task is not done until the
139
+ specified verification passes
140
+ - **Batching or parallelising tasks**: Execute one task at a time; concurrent
141
+ execution makes rollback, bisection, and blame tracking harder
142
+ - **Working on the default/main branch without consent**: Always confirm you are
143
+ on a feature or working branch before any commit
144
+ - **Continuing on a stale plan**: If your partner has revised the plan, re-read
145
+ it fully before continuing — don't assume the delta is small
111
146
 
112
147
  ## References
113
148
  - Upstream: https://github.com/obra/superpowers.git