dsh-pstack 0.1.0 → 0.2.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +92 -117
  3. package/assets/agents/comment-sicko.md +1 -1
  4. package/assets/agents/poteto-agent.md +2 -2
  5. package/assets/docs/guide/01-setup.md +9 -9
  6. package/assets/docs/guide/02-poteto-mode.md +4 -4
  7. package/assets/docs/guide/05-build-and-clean.md +3 -3
  8. package/assets/docs/guide/06-verify-and-ship.md +2 -2
  9. package/assets/docs/guide/07-overnight.md +10 -12
  10. package/assets/docs/guide/09-make-it-yours.md +2 -6
  11. package/assets/docs/guide/10-recipes-and-pitfalls.md +3 -3
  12. package/assets/docs/guide/README.md +1 -1
  13. package/assets/docs/guide/images/design.jpg +0 -0
  14. package/assets/docs/guide/images/overnight.jpg +0 -0
  15. package/assets/docs/guide/images/recipes.jpg +0 -0
  16. package/assets/docs/guide/images/router.jpg +0 -0
  17. package/assets/docs/guide/images/understanding.jpg +0 -0
  18. package/assets/docs/guide/images/verification.jpg +0 -0
  19. package/assets/docs/harness/dsh.md +60 -65
  20. package/assets/docs/pstack-models.example.md +40 -9
  21. package/assets/skills/architect/SKILL.md +12 -12
  22. package/assets/skills/arena/SKILL.md +11 -11
  23. package/assets/skills/automate-me/SKILL.md +15 -14
  24. package/assets/skills/benchmark-checklist/SKILL.md +0 -2
  25. package/assets/skills/blast-radius/SKILL.md +5 -5
  26. package/assets/skills/bro/SKILL.md +0 -2
  27. package/assets/skills/correct/SKILL.md +0 -2
  28. package/assets/skills/create-formal-verification-skill/SKILL.md +2 -2
  29. package/assets/skills/create-verification-skill/SKILL.md +2 -2
  30. package/assets/skills/figure-it-out/SKILL.md +13 -13
  31. package/assets/skills/how/SKILL.md +6 -6
  32. package/assets/skills/how/references/explainer-prompt.md +1 -1
  33. package/assets/skills/in-your-own-words/SKILL.md +0 -2
  34. package/assets/skills/interrogate/SKILL.md +9 -7
  35. package/assets/skills/interrogate/references/rubric.md +1 -1
  36. package/assets/skills/ketchup/SKILL.md +4 -4
  37. package/assets/skills/maintain-formal-verification-skill/SKILL.md +2 -2
  38. package/assets/skills/maintain-verification-skill/SKILL.md +3 -3
  39. package/assets/skills/no-comments/SKILL.md +7 -7
  40. package/assets/skills/poteto-help/SKILL.md +32 -31
  41. package/assets/skills/poteto-help/references/prompting.md +1 -1
  42. package/assets/skills/poteto-help/references/recipes.md +1 -1
  43. package/assets/skills/poteto-mode/SKILL.md +17 -19
  44. package/assets/skills/poteto-mode/playbooks/authoring-a-skill.md +3 -3
  45. package/assets/skills/poteto-mode/playbooks/autonomous-run.md +6 -4
  46. package/assets/skills/poteto-mode/playbooks/autopilot-full.md +6 -6
  47. package/assets/skills/poteto-mode/playbooks/autopilot-stack.md +2 -2
  48. package/assets/skills/poteto-mode/playbooks/babysit.md +3 -3
  49. package/assets/skills/poteto-mode/playbooks/bug-fix.md +7 -7
  50. package/assets/skills/poteto-mode/playbooks/eval.md +3 -3
  51. package/assets/skills/poteto-mode/playbooks/feature.md +8 -8
  52. package/assets/skills/poteto-mode/playbooks/hillclimb.md +3 -3
  53. package/assets/skills/poteto-mode/playbooks/investigation.md +2 -2
  54. package/assets/skills/poteto-mode/playbooks/multi-phase-plan.md +21 -21
  55. package/assets/skills/poteto-mode/playbooks/opening-a-pr.md +6 -6
  56. package/assets/skills/poteto-mode/playbooks/orchestrate.md +13 -13
  57. package/assets/skills/poteto-mode/playbooks/pause-safely.md +2 -2
  58. package/assets/skills/poteto-mode/playbooks/perf-issue.md +6 -6
  59. package/assets/skills/poteto-mode/playbooks/prototype.md +4 -4
  60. package/assets/skills/poteto-mode/playbooks/refactoring.md +9 -9
  61. package/assets/skills/poteto-mode/playbooks/runtime-forensics.md +3 -3
  62. package/assets/skills/poteto-mode/playbooks/session-pickup.md +2 -2
  63. package/assets/skills/poteto-mode/playbooks/shipping.md +2 -2
  64. package/assets/skills/poteto-mode/playbooks/trace-forensics.md +2 -2
  65. package/assets/skills/poteto-mode/playbooks/visual-parity.md +5 -5
  66. package/assets/skills/poteto-mode/playbooks/worktree-cleanup.md +14 -6
  67. package/assets/skills/poteto-mode/scripts/check-plan.mjs +85 -70
  68. package/assets/skills/poteto-mode/scripts/check-plan.test.mjs +343 -0
  69. package/assets/skills/poteto-mode/scripts/orch/orch.mjs +4282 -0
  70. package/assets/skills/poteto-mode/scripts/orch/orch.test.mjs +2042 -0
  71. package/assets/skills/poteto-mode/scripts/watch-pr/cli.test.mjs +5101 -0
  72. package/assets/skills/poteto-mode/scripts/watch-pr/github.test.mjs +1177 -0
  73. package/assets/skills/poteto-mode/scripts/watch-pr/policy.test.mjs +1441 -0
  74. package/assets/skills/poteto-mode/scripts/watch-pr/watch-pr.mjs +4601 -0
  75. package/assets/skills/poteto-mode/scripts/worktree-audit.mjs +675 -0
  76. package/assets/skills/principle-attack-the-premise/SKILL.md +0 -2
  77. package/assets/skills/principle-boundary-discipline/SKILL.md +0 -2
  78. package/assets/skills/principle-build-the-lever/SKILL.md +0 -3
  79. package/assets/skills/principle-encode-lessons-in-structure/SKILL.md +0 -2
  80. package/assets/skills/principle-exhaust-the-design-space/SKILL.md +0 -2
  81. package/assets/skills/principle-experience-first/SKILL.md +0 -2
  82. package/assets/skills/principle-explain-the-number/SKILL.md +0 -2
  83. package/assets/skills/principle-fix-root-causes/SKILL.md +0 -2
  84. package/assets/skills/principle-foundational-thinking/SKILL.md +0 -2
  85. package/assets/skills/principle-guard-the-context-window/SKILL.md +0 -2
  86. package/assets/skills/principle-laziness-protocol/SKILL.md +0 -2
  87. package/assets/skills/principle-make-operations-idempotent/SKILL.md +0 -2
  88. package/assets/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +0 -2
  89. package/assets/skills/principle-minimize-reader-load/SKILL.md +0 -2
  90. package/assets/skills/principle-model-the-domain/SKILL.md +0 -2
  91. package/assets/skills/principle-never-block-on-the-human/SKILL.md +0 -2
  92. package/assets/skills/principle-outcome-oriented-execution/SKILL.md +0 -2
  93. package/assets/skills/principle-prove-it-works/SKILL.md +2 -2
  94. package/assets/skills/principle-redesign-from-first-principles/SKILL.md +0 -2
  95. package/assets/skills/principle-separate-before-serializing-shared-state/SKILL.md +0 -2
  96. package/assets/skills/principle-sequence-verifiable-units/SKILL.md +0 -2
  97. package/assets/skills/principle-subtract-before-you-add/SKILL.md +0 -2
  98. package/assets/skills/principle-test-behavior-not-implementation/SKILL.md +0 -2
  99. package/assets/skills/principle-type-system-discipline/SKILL.md +0 -2
  100. package/assets/skills/recall/SKILL.md +9 -9
  101. package/assets/skills/reflect/SKILL.md +20 -21
  102. package/assets/skills/reflect/references/divergent-reviewer.md +4 -4
  103. package/assets/skills/reflect/references/judgment-reviewer.md +2 -2
  104. package/assets/skills/reflect/references/synthesizer.md +6 -6
  105. package/assets/skills/reflect/references/tooling-reviewer.md +2 -2
  106. package/assets/skills/setup-pstack/SKILL.md +28 -37
  107. package/assets/skills/sharpen/SKILL.md +0 -2
  108. package/assets/skills/show-me-your-work/SKILL.md +9 -9
  109. package/assets/skills/show-me-your-work/scripts/log.mjs +108 -0
  110. package/assets/skills/swarm/SKILL.md +8 -6
  111. package/assets/skills/tdd/SKILL.md +0 -2
  112. package/assets/skills/teach/SKILL.md +2 -2
  113. package/assets/skills/technical-writing/SKILL.md +2 -2
  114. package/assets/skills/typescript-best-practices/SKILL.md +6 -4
  115. package/assets/skills/unslop/SKILL.md +0 -2
  116. package/assets/skills/why/SKILL.md +9 -9
  117. package/cordis.patch.yml +33 -14
  118. package/dist/frontmatter-BQX3ekwP.mjs +229 -0
  119. package/dist/frontmatter-BQX3ekwP.mjs.map +1 -0
  120. package/dist/history.d.mts +429 -0
  121. package/dist/history.mjs +1129 -0
  122. package/dist/history.mjs.map +1 -0
  123. package/dist/host-contract-o47JH_r8.d.mts +527 -0
  124. package/dist/index.d.mts +273 -11
  125. package/dist/index.mjs +248 -148
  126. package/dist/index.mjs.map +1 -1
  127. package/dist/paths-D_JlVmBk.mjs +42 -0
  128. package/dist/paths-D_JlVmBk.mjs.map +1 -0
  129. package/dist/script.d.mts +193 -0
  130. package/dist/script.mjs +782 -0
  131. package/dist/script.mjs.map +1 -0
  132. package/dist/subagent.d.mts +306 -100
  133. package/dist/subagent.mjs +1309 -343
  134. package/dist/subagent.mjs.map +1 -1
  135. package/locale/en.json +6 -0
  136. package/locale/zh.json +6 -0
  137. package/package.json +55 -41
  138. package/static/icon.png +0 -0
  139. package/assets/skills/poteto-mode/scripts/bootstrap.ts +0 -62
  140. package/assets/skills/poteto-mode/scripts/bun.lock +0 -67
  141. package/assets/skills/poteto-mode/scripts/check-plan.test.ts +0 -96
  142. package/assets/skills/poteto-mode/scripts/orch/orch.test.ts +0 -761
  143. package/assets/skills/poteto-mode/scripts/orch/orch.ts +0 -590
  144. package/assets/skills/poteto-mode/scripts/orch/store.ts +0 -1677
  145. package/assets/skills/poteto-mode/scripts/package.json +0 -16
  146. package/assets/skills/poteto-mode/scripts/watch-pr/cli.test.ts +0 -224
  147. package/assets/skills/poteto-mode/scripts/watch-pr/cli.ts +0 -223
  148. package/assets/skills/poteto-mode/scripts/watch-pr/fakes.test-helper.ts +0 -129
  149. package/assets/skills/poteto-mode/scripts/watch-pr/github.test.ts +0 -436
  150. package/assets/skills/poteto-mode/scripts/watch-pr/github.ts +0 -718
  151. package/assets/skills/poteto-mode/scripts/watch-pr/policy.test.ts +0 -420
  152. package/assets/skills/poteto-mode/scripts/watch-pr/policy.ts +0 -836
  153. package/assets/skills/poteto-mode/scripts/watch-pr/render.ts +0 -169
  154. package/assets/skills/poteto-mode/scripts/watch-pr/tsconfig.json +0 -13
  155. package/assets/skills/poteto-mode/scripts/watch-pr/types.compile.ts +0 -93
  156. package/assets/skills/poteto-mode/scripts/watch-pr/types.ts +0 -413
  157. package/assets/skills/poteto-mode/scripts/watch-pr/watch-pr +0 -6
  158. package/assets/skills/poteto-mode/scripts/worktree-audit.sh +0 -127
  159. package/assets/skills/show-me-your-work/scripts/log.sh +0 -42
  160. package/dist/LICENSE +0 -22
  161. package/dist/README.md +0 -159
  162. package/dist/assets/agents/comment-sicko.md +0 -32
  163. package/dist/assets/agents/poteto-agent.md +0 -8
  164. package/dist/assets/docs/guide/01-setup.md +0 -64
  165. package/dist/assets/docs/guide/02-poteto-mode.md +0 -139
  166. package/dist/assets/docs/guide/03-understand.md +0 -79
  167. package/dist/assets/docs/guide/04-design.md +0 -133
  168. package/dist/assets/docs/guide/05-build-and-clean.md +0 -83
  169. package/dist/assets/docs/guide/06-verify-and-ship.md +0 -152
  170. package/dist/assets/docs/guide/07-overnight.md +0 -122
  171. package/dist/assets/docs/guide/08-principles.md +0 -72
  172. package/dist/assets/docs/guide/09-make-it-yours.md +0 -100
  173. package/dist/assets/docs/guide/10-recipes-and-pitfalls.md +0 -180
  174. package/dist/assets/docs/guide/README.md +0 -38
  175. package/dist/assets/docs/harness/dsh.md +0 -65
  176. package/dist/assets/docs/pstack-models.example.md +0 -23
  177. package/dist/assets/skills/architect/SKILL.md +0 -81
  178. package/dist/assets/skills/architect/references/design-red-flags.md +0 -57
  179. package/dist/assets/skills/architect/references/rationale-template.md +0 -35
  180. package/dist/assets/skills/architect/references/runner-prompt.md +0 -20
  181. package/dist/assets/skills/arena/SKILL.md +0 -50
  182. package/dist/assets/skills/automate-me/SKILL.md +0 -105
  183. package/dist/assets/skills/benchmark-checklist/SKILL.md +0 -41
  184. package/dist/assets/skills/blast-radius/SKILL.md +0 -52
  185. package/dist/assets/skills/bro/SKILL.md +0 -9
  186. package/dist/assets/skills/correct/SKILL.md +0 -34
  187. package/dist/assets/skills/create-formal-verification-skill/SKILL.md +0 -43
  188. package/dist/assets/skills/create-verification-skill/SKILL.md +0 -46
  189. package/dist/assets/skills/create-verification-skill/references/feature-map-example/README.md +0 -47
  190. package/dist/assets/skills/create-verification-skill/references/feature-map-example/create-note.md +0 -39
  191. package/dist/assets/skills/create-verification-skill/references/feature-map-example/search.md +0 -45
  192. package/dist/assets/skills/figure-it-out/SKILL.md +0 -54
  193. package/dist/assets/skills/how/SKILL.md +0 -38
  194. package/dist/assets/skills/how/references/explainer-prompt.md +0 -55
  195. package/dist/assets/skills/how/references/explorer-prompt.md +0 -35
  196. package/dist/assets/skills/in-your-own-words/SKILL.md +0 -9
  197. package/dist/assets/skills/interrogate/SKILL.md +0 -69
  198. package/dist/assets/skills/interrogate/references/code-quality-review.md +0 -47
  199. package/dist/assets/skills/interrogate/references/lead-judgment.md +0 -39
  200. package/dist/assets/skills/interrogate/references/reviewer-prompt.md +0 -62
  201. package/dist/assets/skills/interrogate/references/rubric.md +0 -77
  202. package/dist/assets/skills/ketchup/SKILL.md +0 -45
  203. package/dist/assets/skills/maintain-formal-verification-skill/SKILL.md +0 -60
  204. package/dist/assets/skills/maintain-verification-skill/SKILL.md +0 -41
  205. package/dist/assets/skills/no-comments/SKILL.md +0 -26
  206. package/dist/assets/skills/poteto-help/SKILL.md +0 -161
  207. package/dist/assets/skills/poteto-help/references/prompting.md +0 -51
  208. package/dist/assets/skills/poteto-help/references/recipes.md +0 -51
  209. package/dist/assets/skills/poteto-mode/SKILL.md +0 -153
  210. package/dist/assets/skills/poteto-mode/playbooks/authoring-a-skill.md +0 -12
  211. package/dist/assets/skills/poteto-mode/playbooks/autonomous-run.md +0 -13
  212. package/dist/assets/skills/poteto-mode/playbooks/autopilot-full.md +0 -25
  213. package/dist/assets/skills/poteto-mode/playbooks/autopilot-stack.md +0 -12
  214. package/dist/assets/skills/poteto-mode/playbooks/babysit.md +0 -23
  215. package/dist/assets/skills/poteto-mode/playbooks/bug-fix.md +0 -15
  216. package/dist/assets/skills/poteto-mode/playbooks/eval.md +0 -25
  217. package/dist/assets/skills/poteto-mode/playbooks/feature.md +0 -21
  218. package/dist/assets/skills/poteto-mode/playbooks/hillclimb.md +0 -21
  219. package/dist/assets/skills/poteto-mode/playbooks/investigation.md +0 -14
  220. package/dist/assets/skills/poteto-mode/playbooks/multi-phase-plan.md +0 -155
  221. package/dist/assets/skills/poteto-mode/playbooks/opening-a-pr.md +0 -34
  222. package/dist/assets/skills/poteto-mode/playbooks/orchestrate.md +0 -112
  223. package/dist/assets/skills/poteto-mode/playbooks/pause-safely.md +0 -10
  224. package/dist/assets/skills/poteto-mode/playbooks/perf-issue.md +0 -25
  225. package/dist/assets/skills/poteto-mode/playbooks/prototype.md +0 -14
  226. package/dist/assets/skills/poteto-mode/playbooks/refactoring.md +0 -16
  227. package/dist/assets/skills/poteto-mode/playbooks/runtime-forensics.md +0 -11
  228. package/dist/assets/skills/poteto-mode/playbooks/session-pickup.md +0 -11
  229. package/dist/assets/skills/poteto-mode/playbooks/shipping.md +0 -12
  230. package/dist/assets/skills/poteto-mode/playbooks/trace-forensics.md +0 -14
  231. package/dist/assets/skills/poteto-mode/playbooks/visual-parity.md +0 -11
  232. package/dist/assets/skills/poteto-mode/playbooks/worktree-cleanup.md +0 -12
  233. package/dist/assets/skills/poteto-mode/references/bugbot-triage.md +0 -142
  234. package/dist/assets/skills/poteto-mode/scripts/bootstrap.ts +0 -62
  235. package/dist/assets/skills/poteto-mode/scripts/bun.lock +0 -67
  236. package/dist/assets/skills/poteto-mode/scripts/check-plan.mjs +0 -205
  237. package/dist/assets/skills/poteto-mode/scripts/check-plan.test.ts +0 -96
  238. package/dist/assets/skills/poteto-mode/scripts/orch/orch.test.ts +0 -761
  239. package/dist/assets/skills/poteto-mode/scripts/orch/orch.ts +0 -590
  240. package/dist/assets/skills/poteto-mode/scripts/orch/store.ts +0 -1677
  241. package/dist/assets/skills/poteto-mode/scripts/package.json +0 -16
  242. package/dist/assets/skills/poteto-mode/scripts/watch-pr/cli.test.ts +0 -224
  243. package/dist/assets/skills/poteto-mode/scripts/watch-pr/cli.ts +0 -223
  244. package/dist/assets/skills/poteto-mode/scripts/watch-pr/fakes.test-helper.ts +0 -129
  245. package/dist/assets/skills/poteto-mode/scripts/watch-pr/github.test.ts +0 -436
  246. package/dist/assets/skills/poteto-mode/scripts/watch-pr/github.ts +0 -718
  247. package/dist/assets/skills/poteto-mode/scripts/watch-pr/policy.test.ts +0 -420
  248. package/dist/assets/skills/poteto-mode/scripts/watch-pr/policy.ts +0 -836
  249. package/dist/assets/skills/poteto-mode/scripts/watch-pr/render.ts +0 -169
  250. package/dist/assets/skills/poteto-mode/scripts/watch-pr/tsconfig.json +0 -13
  251. package/dist/assets/skills/poteto-mode/scripts/watch-pr/types.compile.ts +0 -93
  252. package/dist/assets/skills/poteto-mode/scripts/watch-pr/types.ts +0 -413
  253. package/dist/assets/skills/poteto-mode/scripts/watch-pr/watch-pr +0 -6
  254. package/dist/assets/skills/poteto-mode/scripts/worktree-audit.sh +0 -127
  255. package/dist/assets/skills/principle-attack-the-premise/SKILL.md +0 -23
  256. package/dist/assets/skills/principle-boundary-discipline/SKILL.md +0 -36
  257. package/dist/assets/skills/principle-build-the-lever/SKILL.md +0 -26
  258. package/dist/assets/skills/principle-encode-lessons-in-structure/SKILL.md +0 -13
  259. package/dist/assets/skills/principle-exhaust-the-design-space/SKILL.md +0 -11
  260. package/dist/assets/skills/principle-experience-first/SKILL.md +0 -21
  261. package/dist/assets/skills/principle-explain-the-number/SKILL.md +0 -19
  262. package/dist/assets/skills/principle-fix-root-causes/SKILL.md +0 -23
  263. package/dist/assets/skills/principle-foundational-thinking/SKILL.md +0 -23
  264. package/dist/assets/skills/principle-guard-the-context-window/SKILL.md +0 -14
  265. package/dist/assets/skills/principle-laziness-protocol/SKILL.md +0 -12
  266. package/dist/assets/skills/principle-make-operations-idempotent/SKILL.md +0 -24
  267. package/dist/assets/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +0 -16
  268. package/dist/assets/skills/principle-minimize-reader-load/SKILL.md +0 -20
  269. package/dist/assets/skills/principle-model-the-domain/SKILL.md +0 -26
  270. package/dist/assets/skills/principle-never-block-on-the-human/SKILL.md +0 -17
  271. package/dist/assets/skills/principle-outcome-oriented-execution/SKILL.md +0 -23
  272. package/dist/assets/skills/principle-prove-it-works/SKILL.md +0 -24
  273. package/dist/assets/skills/principle-redesign-from-first-principles/SKILL.md +0 -18
  274. package/dist/assets/skills/principle-separate-before-serializing-shared-state/SKILL.md +0 -18
  275. package/dist/assets/skills/principle-sequence-verifiable-units/SKILL.md +0 -19
  276. package/dist/assets/skills/principle-subtract-before-you-add/SKILL.md +0 -20
  277. package/dist/assets/skills/principle-test-behavior-not-implementation/SKILL.md +0 -22
  278. package/dist/assets/skills/principle-type-system-discipline/SKILL.md +0 -15
  279. package/dist/assets/skills/recall/SKILL.md +0 -37
  280. package/dist/assets/skills/reflect/SKILL.md +0 -70
  281. package/dist/assets/skills/reflect/references/divergent-reviewer.md +0 -38
  282. package/dist/assets/skills/reflect/references/judgment-reviewer.md +0 -37
  283. package/dist/assets/skills/reflect/references/synthesizer.md +0 -56
  284. package/dist/assets/skills/reflect/references/tooling-reviewer.md +0 -48
  285. package/dist/assets/skills/setup-pstack/SKILL.md +0 -76
  286. package/dist/assets/skills/sharpen/SKILL.md +0 -18
  287. package/dist/assets/skills/show-me-your-work/SKILL.md +0 -84
  288. package/dist/assets/skills/show-me-your-work/references/decision-log-template.tsv +0 -1
  289. package/dist/assets/skills/show-me-your-work/scripts/log.sh +0 -42
  290. package/dist/assets/skills/swarm/SKILL.md +0 -41
  291. package/dist/assets/skills/tdd/SKILL.md +0 -44
  292. package/dist/assets/skills/teach/SKILL.md +0 -23
  293. package/dist/assets/skills/technical-writing/SKILL.md +0 -108
  294. package/dist/assets/skills/typescript-best-practices/SKILL.md +0 -32
  295. package/dist/assets/skills/typescript-best-practices/references/patterns.md +0 -328
  296. package/dist/assets/skills/unslop/SKILL.md +0 -64
  297. package/dist/assets/skills/why/SKILL.md +0 -100
  298. package/dist/assets/skills/why/references/epistemics.md +0 -71
  299. package/dist/assets/skills/why/references/investigator-prompt.md +0 -84
  300. package/dist/assets/skills/why/references/source-playbook.md +0 -17
  301. package/dist/assets/skills/why/references/sources/code-archaeology.md +0 -51
  302. package/dist/assets/skills/why/references/sources/databricks.md +0 -70
  303. package/dist/assets/skills/why/references/sources/datadog.md +0 -97
  304. package/dist/assets/skills/why/references/sources/incident-postmortem.md +0 -5
  305. package/dist/assets/skills/why/references/sources/linear.md +0 -48
  306. package/dist/assets/skills/why/references/sources/notion.md +0 -55
  307. package/dist/assets/skills/why/references/sources/sentry.md +0 -66
  308. package/dist/assets/skills/why/references/sources/slack.md +0 -17
  309. package/dist/assets/skills/why/references/synthesizer-prompt.md +0 -129
  310. package/dist/cordis.patch.yml +0 -20
  311. package/dist/paths-Bbai4CaT.mjs +0 -16
  312. package/dist/paths-Bbai4CaT.mjs.map +0 -1
@@ -1,590 +0,0 @@
1
- #!/usr/bin/env bun
2
-
3
- import { ensureDependenciesInstalled } from "../bootstrap.ts";
4
- import {
5
- NotFoundError,
6
- UsageError,
7
- openStore,
8
- parseVerdict,
9
- type Counts,
10
- type Forge,
11
- type Frontier,
12
- type InboxPointer,
13
- type OpenGate,
14
- type StandingLine,
15
- type StatusReport,
16
- type Store,
17
- type Unit,
18
- type Verdict,
19
- } from "./store.ts";
20
-
21
- ensureDependenciesInstalled();
22
- const {
23
- Command: CommanderCommand,
24
- CommanderError,
25
- InvalidArgumentError,
26
- Option,
27
- } = await import("commander");
28
- type Command = InstanceType<typeof CommanderCommand>;
29
-
30
- const DISPLAY_LIMIT = 4;
31
-
32
- interface Io {
33
- readonly stdout: (value: string) => void;
34
- readonly stderr: (value: string) => void;
35
- }
36
-
37
- interface GlobalOptions {
38
- readonly store?: string;
39
- readonly json: boolean;
40
- readonly force: boolean;
41
- }
42
-
43
- interface UnitAddOptions {
44
- readonly track: string;
45
- readonly brief?: string;
46
- }
47
-
48
- interface UnitSetOptions {
49
- readonly state: string;
50
- readonly branch?: string;
51
- readonly pr?: number;
52
- readonly sha?: string;
53
- }
54
-
55
- interface UnitListOptions {
56
- readonly state?: string;
57
- readonly track?: string;
58
- }
59
-
60
- interface LedgerRecordOptions {
61
- readonly evidence: string;
62
- readonly verifier?: string;
63
- }
64
-
65
- interface InboxPushOptions {
66
- readonly report?: string;
67
- }
68
-
69
- interface InboxDrainOptions {
70
- readonly peek: boolean;
71
- }
72
-
73
- interface GateParkOptions {
74
- readonly question: string;
75
- readonly options: string;
76
- readonly default: string;
77
- }
78
-
79
- interface GateResolveOptions {
80
- readonly answer: string;
81
- }
82
-
83
- interface FrontierSetOptions {
84
- readonly repo?: string;
85
- readonly forge: Forge;
86
- readonly prs?: readonly number[];
87
- }
88
-
89
- function message(error: unknown): string {
90
- return error instanceof Error ? error.message : String(error);
91
- }
92
-
93
- function positiveInteger(value: string): number {
94
- const parsed = Number(value);
95
- if (!/^[1-9]\d*$/.test(value) || !Number.isSafeInteger(parsed)) {
96
- throw new InvalidArgumentError("must be a positive integer");
97
- }
98
- return parsed;
99
- }
100
-
101
- function prList(value: string): readonly number[] {
102
- const parts = value.split(",");
103
- if (parts.some((part) => part.length === 0)) {
104
- throw new InvalidArgumentError("requires a comma-separated PR list");
105
- }
106
- return parts.map(positiveInteger);
107
- }
108
-
109
- function countLine(value: Counts): string {
110
- const entries = Object.entries(value);
111
- return entries.length === 0
112
- ? "none"
113
- : entries.map(([name, count]) => `${name}=${count}`).join(", ");
114
- }
115
-
116
- function unitLine(unit: Unit): string {
117
- return [
118
- unit.id,
119
- unit.track,
120
- unit.state,
121
- unit.branch,
122
- unit.pr,
123
- unit.sha,
124
- unit.brief,
125
- ].join("\t");
126
- }
127
-
128
- function pointerLine(pointer: InboxPointer): string {
129
- return [
130
- pointer.ts,
131
- pointer.agent,
132
- pointer.unit,
133
- pointer.status,
134
- pointer.report,
135
- ].join("\t");
136
- }
137
-
138
- function gateLine(gate: OpenGate): string {
139
- return [
140
- gate.id,
141
- gate.question,
142
- gate.options,
143
- gate.defaultAnswer,
144
- ].join("\t");
145
- }
146
-
147
- function compactRows<T>(
148
- rows: readonly T[],
149
- format: (row: T) => string,
150
- empty: string,
151
- limit: number | null = DISPLAY_LIMIT
152
- ): string {
153
- if (rows.length === 0) {
154
- return empty;
155
- }
156
- const visible = limit === null ? rows : rows.slice(0, limit);
157
- const lines = visible.map(format);
158
- if (limit !== null && rows.length > limit) {
159
- lines.push(`... ${rows.length - limit} more; use --json`);
160
- }
161
- return lines.join("\n");
162
- }
163
-
164
- function frontierLine(value: Frontier): string {
165
- const prs =
166
- value.prs.length === 0
167
- ? "none"
168
- : value.prs
169
- .map(
170
- (row) =>
171
- `${row.branches}#${row.pr}@${row.sha}:${row.state}`
172
- )
173
- .join(",");
174
- return `generation=${value.generation} prs=${prs} lowest-unmerged=${value.lowestUnmerged ?? "none"}`;
175
- }
176
-
177
- function statusLines(report: StatusReport): string {
178
- const visible = report.summary.openGateIds.slice(0, DISPLAY_LIMIT);
179
- const more =
180
- report.summary.openGateIds.length > DISPLAY_LIMIT
181
- ? `,+${report.summary.openGateIds.length - DISPLAY_LIMIT} more`
182
- : "";
183
- return [
184
- `counts: units=${report.units.length}; states=${countLine(report.summary.unitStates)}; ledger=${countLine(report.summary.ledgerVerdicts)}`,
185
- `changed: ${report.changed}`,
186
- `gates open: ${report.summary.openGateIds.length}${
187
- visible.length > 0 ? `; ids=${visible.join(",")}${more}` : ""
188
- }`,
189
- ].join("\n");
190
- }
191
-
192
- function emit<T>(
193
- io: Io,
194
- json: boolean,
195
- value: T,
196
- compact: (result: T) => string,
197
- jsonValue: (result: T) => unknown = (result) => result
198
- ): void {
199
- const rendered = json
200
- ? JSON.stringify(jsonValue(value), null, 2)
201
- : compact(value);
202
- io.stdout(rendered.endsWith("\n") ? rendered : `${rendered}\n`);
203
- }
204
-
205
- function storeDirectory(program: Command): string {
206
- const value = program.opts<GlobalOptions>().store;
207
- if (value === undefined || value.trim().length === 0) {
208
- throw new UsageError("set --store <dir> or ORCH_STORE");
209
- }
210
- return value;
211
- }
212
-
213
- function frontierRepo(options: FrontierSetOptions): string {
214
- const value = options.repo;
215
- if (value === undefined || value.trim().length === 0) {
216
- throw new UsageError("set --repo <dir> or ORCH_REPO");
217
- }
218
- return value;
219
- }
220
-
221
- async function runStore<T>(
222
- program: Command,
223
- io: Io,
224
- operation: (store: Store) => Promise<T>,
225
- compact: (result: T) => string,
226
- jsonValue?: (result: T) => unknown
227
- ): Promise<void> {
228
- const options = program.opts<GlobalOptions>();
229
- const store = openStore(storeDirectory(program), {
230
- force: options.force,
231
- onLockStolen: (holder) =>
232
- io.stderr(`stealing store lock held by pid ${holder}\n`),
233
- onStaleLock: (holder) =>
234
- io.stderr(`replacing stale store lock (pid ${holder} is dead)\n`),
235
- });
236
- try {
237
- const result = await operation(store);
238
- emit(io, options.json, result, compact, jsonValue);
239
- } finally {
240
- await store.close();
241
- }
242
- }
243
-
244
- function leaf(parent: Command, name: string, description: string): Command {
245
- return parent
246
- .command(name)
247
- .description(description)
248
- .allowExcessArguments(false);
249
- }
250
-
251
- function requireSubcommand(program: Command): never {
252
- storeDirectory(program);
253
- throw new UsageError("a valid command is required");
254
- }
255
-
256
- function createProgram(io: Io): Command {
257
- const program = new CommanderCommand("orch")
258
- .description("Plain-file orchestrate bookkeeping")
259
- .usage("[--store <dir>] [--json] [--force] <command>")
260
- .configureOutput({ writeOut: io.stdout, writeErr: io.stderr })
261
- .exitOverride()
262
- .showHelpAfterError()
263
- .allowExcessArguments(false)
264
- .addOption(
265
- new Option("--store <dir>", "store directory (or ORCH_STORE)").env(
266
- "ORCH_STORE"
267
- )
268
- )
269
- .option("--json", "print complete rows as JSON", false)
270
- .option("--force", "steal an existing store lock", false);
271
-
272
- leaf(program, "init", "initialize the store").action(() =>
273
- runStore(
274
- program,
275
- io,
276
- (store) => store.init(),
277
- (result) => `initialized ${result.store}`
278
- )
279
- );
280
-
281
- const unit = program
282
- .command("unit")
283
- .description("manage work units")
284
- .action(() => requireSubcommand(program));
285
- leaf(unit, "add <id>", "add a unit")
286
- .requiredOption("--track <track>", "unit track")
287
- .option("--brief <path>", "brief path")
288
- .action((id: string, options: UnitAddOptions) =>
289
- runStore(
290
- program,
291
- io,
292
- (store) =>
293
- store.units.add({
294
- id,
295
- track: options.track,
296
- brief: options.brief,
297
- }),
298
- unitLine
299
- )
300
- );
301
- leaf(unit, "set <id>", "update a unit")
302
- .requiredOption("--state <state>", "unit state")
303
- .option("--branch <branch>", "branch name")
304
- .option("--pr <number>", "pull request number", positiveInteger)
305
- .option("--sha <sha>", "commit SHA")
306
- .action((id: string, options: UnitSetOptions) =>
307
- runStore(
308
- program,
309
- io,
310
- (store) =>
311
- store.units.set({
312
- id,
313
- state: options.state,
314
- branch: options.branch,
315
- pr: options.pr,
316
- sha: options.sha,
317
- }),
318
- unitLine
319
- )
320
- );
321
- leaf(unit, "get <id>", "get a unit").action((id: string) =>
322
- runStore(program, io, (store) => store.units.get(id), unitLine)
323
- );
324
- leaf(unit, "list", "list units")
325
- .option("--state <state>", "filter by state")
326
- .option("--track <track>", "filter by track")
327
- .action((options: UnitListOptions) =>
328
- runStore(
329
- program,
330
- io,
331
- (store) => store.units.list(options),
332
- (rows) => compactRows(rows, unitLine, "(no units)")
333
- )
334
- );
335
- leaf(unit, "counts", "count units by state").action(() =>
336
- runStore(program, io, (store) => store.units.counts(), countLine)
337
- );
338
-
339
- const ledger = program
340
- .command("ledger")
341
- .description("manage verification records")
342
- .action(() => requireSubcommand(program));
343
- leaf(ledger, "record", "record a verification verdict")
344
- .argument("<pr>", "pull request number", positiveInteger)
345
- .argument("<sha>", "commit SHA")
346
- .argument("<verdict>", "verification verdict", parseVerdict)
347
- .requiredOption("--evidence <path>", "evidence path")
348
- .option("--verifier <name>", "verifier name")
349
- .action(
350
- (
351
- pr: number,
352
- sha: string,
353
- verdict: Verdict,
354
- options: LedgerRecordOptions
355
- ) =>
356
- runStore(
357
- program,
358
- io,
359
- (store) =>
360
- store.ledger.record({
361
- pr,
362
- sha,
363
- verdict,
364
- evidence: options.evidence,
365
- verifier: options.verifier,
366
- }),
367
- (row) => `${row.pr}\t${row.sha}\t${row.verdict}`
368
- )
369
- );
370
- leaf(ledger, "check", "check a verification verdict")
371
- .argument("<pr>", "pull request number", positiveInteger)
372
- .argument("<sha>", "commit SHA")
373
- .action((pr: number, sha: string) =>
374
- runStore(
375
- program,
376
- io,
377
- (store) => store.ledger.check({ pr, sha }),
378
- (row) => row.verdict
379
- )
380
- );
381
- leaf(ledger, "summary", "count verification verdicts").action(() =>
382
- runStore(program, io, (store) => store.ledger.summary(), countLine)
383
- );
384
-
385
- const inbox = program
386
- .command("inbox")
387
- .description("manage agent pointers")
388
- .action(() => requireSubcommand(program));
389
- leaf(inbox, "push <agent> <unit> <status>", "push an inbox pointer")
390
- .option("--report <path>", "report path")
391
- .action(
392
- (
393
- agent: string,
394
- unitId: string,
395
- status: string,
396
- options: InboxPushOptions
397
- ) =>
398
- runStore(
399
- program,
400
- io,
401
- (store) =>
402
- store.inbox.push({
403
- agent,
404
- unit: unitId,
405
- status,
406
- report: options.report,
407
- }),
408
- (result) =>
409
- `${result.pointer.unit}\t${result.pointer.status}\t${result.filename}`,
410
- (result) => result.pointer
411
- )
412
- );
413
- leaf(inbox, "drain", "drain inbox pointers")
414
- .option("--peek", "read without draining", false)
415
- .action((options: InboxDrainOptions) =>
416
- runStore(
417
- program,
418
- io,
419
- (store) =>
420
- options.peek ? store.inbox.peek() : store.inbox.drain(),
421
- (rows) => compactRows(rows, pointerLine, "(empty)", null)
422
- )
423
- );
424
- leaf(inbox, "count", "count inbox pointers").action(() =>
425
- runStore(
426
- program,
427
- io,
428
- (store) => store.inbox.count(),
429
- String,
430
- (count) => ({ count })
431
- )
432
- );
433
-
434
- const gate = program
435
- .command("gate")
436
- .description("manage decision gates")
437
- .action(() => requireSubcommand(program));
438
- leaf(gate, "park <id>", "park a decision gate")
439
- .requiredOption("--question <question>", "gate question")
440
- .requiredOption("--options <options>", "gate options")
441
- .requiredOption("--default <answer>", "default answer")
442
- .action((id: string, options: GateParkOptions) =>
443
- runStore(
444
- program,
445
- io,
446
- (store) =>
447
- store.gates.park({
448
- id,
449
- question: options.question,
450
- options: options.options,
451
- defaultAnswer: options.default,
452
- }),
453
- (result) => `${result.id}\topen`
454
- )
455
- );
456
- leaf(gate, "list", "list open decision gates").action(() =>
457
- runStore(
458
- program,
459
- io,
460
- (store) => store.gates.list(),
461
- (rows) => compactRows(rows, gateLine, "(no open gates)")
462
- )
463
- );
464
- leaf(gate, "resolve <id>", "resolve a decision gate")
465
- .requiredOption("--answer <answer>", "chosen answer")
466
- .action((id: string, options: GateResolveOptions) =>
467
- runStore(
468
- program,
469
- io,
470
- (store) => store.gates.resolve({ id, answer: options.answer }),
471
- (result) => `${result.id}\tresolved\t${result.answer}`
472
- )
473
- );
474
-
475
- const frontier = program
476
- .command("frontier")
477
- .description("manage the stack frontier")
478
- .action(() => requireSubcommand(program));
479
- leaf(
480
- frontier,
481
- "set",
482
- "resolve the pull request base chain and set the frontier"
483
- )
484
- .addOption(
485
- new Option(
486
- "--repo <dir>",
487
- "repository directory (or ORCH_REPO)"
488
- ).env("ORCH_REPO")
489
- )
490
- .addOption(
491
- new Option("--forge <forge>", "pull request forge")
492
- .choices(["gh", "origin"])
493
- .default("gh")
494
- )
495
- .option(
496
- "--prs <n,...>",
497
- "optional expected pull request order pin",
498
- prList
499
- )
500
- .action((options: FrontierSetOptions) =>
501
- runStore(
502
- program,
503
- io,
504
- (store) =>
505
- store.frontier.set({
506
- repo: frontierRepo(options),
507
- forge: options.forge,
508
- prs: options.prs,
509
- }),
510
- frontierLine
511
- )
512
- );
513
- leaf(frontier, "show", "show the frontier").action(() =>
514
- runStore(program, io, (store) => store.frontier.show(), frontierLine)
515
- );
516
-
517
- leaf(program, "status", "render status.md and print a summary").action(() =>
518
- runStore(program, io, (store) => store.status.render(), statusLines)
519
- );
520
-
521
- const standing = program
522
- .command("standing")
523
- .description("manage standing orders")
524
- .action(() => requireSubcommand(program));
525
- leaf(standing, "show", "show standing orders").action(() =>
526
- runStore(
527
- program,
528
- io,
529
- (store) => store.standing.show(),
530
- (rows) =>
531
- compactRows(
532
- rows,
533
- (item: StandingLine) => `${item.number}. ${item.line}`,
534
- "(no standing orders)"
535
- )
536
- )
537
- );
538
- leaf(standing, "add <line>", "add a standing order").action((line: string) =>
539
- runStore(
540
- program,
541
- io,
542
- (store) => store.standing.add({ line }),
543
- (item) => `${item.number}. ${item.line}`
544
- )
545
- );
546
-
547
- program.action(() => requireSubcommand(program));
548
- return program;
549
- }
550
-
551
- function handleError(error: unknown, program: Command, io: Io): number {
552
- if (error instanceof CommanderError) {
553
- return error.exitCode === 0 ? 0 : 1;
554
- }
555
- const json = program.opts<GlobalOptions>().json;
556
- if (error instanceof NotFoundError) {
557
- const output = error.output;
558
- if (output === undefined) {
559
- io.stderr(`error: ${error.message}\n`);
560
- } else {
561
- emit(io, json, output.json, () => output.compact);
562
- }
563
- return 2;
564
- }
565
- io.stderr(`error: ${message(error)}\n`);
566
- if (error instanceof UsageError) {
567
- io.stderr(program.helpInformation());
568
- }
569
- return 1;
570
- }
571
-
572
- export async function main(
573
- argv: readonly string[],
574
- io: Io = {
575
- stdout: (value) => process.stdout.write(value),
576
- stderr: (value) => process.stderr.write(value),
577
- }
578
- ): Promise<number> {
579
- const program = createProgram(io);
580
- try {
581
- await program.parseAsync(argv, { from: "user" });
582
- return 0;
583
- } catch (error) {
584
- return handleError(error, program, io);
585
- }
586
- }
587
-
588
- if (import.meta.main) {
589
- process.exitCode = await main(process.argv.slice(2));
590
- }