pi-pstack-native 0.0.0-stage → 1.0.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 (1318) hide show
  1. package/ACCEPTANCE.md +40 -0
  2. package/CHANGELOG.md +75 -0
  3. package/CONTRIBUTING.md +29 -0
  4. package/IMPLEMENTATION.md +38 -0
  5. package/INSTALLATION-CHECK.md +13 -0
  6. package/LICENSE +21 -0
  7. package/NOTICE.md +14 -0
  8. package/PARITY.json +133 -0
  9. package/PARITY.md +156 -0
  10. package/PRD.md +2131 -0
  11. package/README.md +103 -2
  12. package/README.zh-CN.md +137 -0
  13. package/REVIEW.md +24 -0
  14. package/SECURITY.md +17 -0
  15. package/SEMANTICS.json +2852 -0
  16. package/UPSTREAM.json +32 -0
  17. package/agents/architect.md +3 -0
  18. package/agents/comment-sicko.md +3 -0
  19. package/agents/integrator.md +6 -0
  20. package/agents/poteto-agent.md +3 -0
  21. package/agents/reviewer.md +3 -0
  22. package/agents/scout.md +3 -0
  23. package/agents/synthesizer.md +3 -0
  24. package/agents/verifier.md +3 -0
  25. package/agents/worker.md +3 -0
  26. package/benchmarks/cases.json +354 -0
  27. package/dist/agent/candidates.d.ts +13 -0
  28. package/dist/agent/candidates.js +50 -0
  29. package/dist/agent/grep-worker.mjs +46 -0
  30. package/dist/agent/host.d.ts +47 -0
  31. package/dist/agent/host.js +480 -0
  32. package/dist/agent/isolation.d.ts +3 -0
  33. package/dist/agent/isolation.js +12 -0
  34. package/dist/agent/outcome.d.ts +8 -0
  35. package/dist/agent/outcome.js +15 -0
  36. package/dist/agent/profiles.d.ts +5 -0
  37. package/dist/agent/profiles.js +128 -0
  38. package/dist/agent/read-only-tools.d.ts +1 -0
  39. package/dist/agent/read-only-tools.js +150 -0
  40. package/dist/agent/resources.d.ts +15 -0
  41. package/dist/agent/resources.js +77 -0
  42. package/dist/api.d.ts +18 -0
  43. package/dist/api.js +18 -0
  44. package/dist/artifacts/fingerprint.d.ts +29 -0
  45. package/dist/artifacts/fingerprint.js +75 -0
  46. package/dist/compatibility/adapter.d.ts +66 -0
  47. package/dist/compatibility/adapter.js +110 -0
  48. package/dist/compatibility/source.d.ts +2 -0
  49. package/dist/compatibility/source.js +38 -0
  50. package/dist/compatibility/tool.d.ts +2 -0
  51. package/dist/compatibility/tool.js +59 -0
  52. package/dist/context/snapshot.d.ts +37 -0
  53. package/dist/context/snapshot.js +12 -0
  54. package/dist/contracts/brief.d.ts +19 -0
  55. package/dist/contracts/brief.js +198 -0
  56. package/dist/contracts/types.d.ts +192 -0
  57. package/dist/contracts/types.js +1 -0
  58. package/dist/delivery/frontier.d.ts +61 -0
  59. package/dist/delivery/frontier.js +123 -0
  60. package/dist/delivery/git.d.ts +2 -0
  61. package/dist/delivery/git.js +12 -0
  62. package/dist/delivery/prepare.d.ts +18 -0
  63. package/dist/delivery/prepare.js +30 -0
  64. package/dist/delivery/provider.d.ts +31 -0
  65. package/dist/delivery/provider.js +42 -0
  66. package/dist/delivery/review-threads.d.ts +18 -0
  67. package/dist/delivery/review-threads.js +39 -0
  68. package/dist/delivery/stack.d.ts +32 -0
  69. package/dist/delivery/stack.js +91 -0
  70. package/dist/extension.d.ts +2 -0
  71. package/dist/extension.js +320 -0
  72. package/dist/loop/scheduler.d.ts +53 -0
  73. package/dist/loop/scheduler.js +334 -0
  74. package/dist/loop/store.d.ts +16 -0
  75. package/dist/loop/store.js +66 -0
  76. package/dist/models/router.d.ts +25 -0
  77. package/dist/models/router.js +183 -0
  78. package/dist/program/coordinator.d.ts +75 -0
  79. package/dist/program/coordinator.js +169 -0
  80. package/dist/program/dispatch.d.ts +20 -0
  81. package/dist/program/dispatch.js +82 -0
  82. package/dist/runner/cli.mjs +46 -0
  83. package/dist/runner/lease.d.ts +10 -0
  84. package/dist/runner/lease.js +24 -0
  85. package/dist/runner/service.d.ts +8 -0
  86. package/dist/runner/service.js +66 -0
  87. package/dist/runtime/checkout.d.ts +3 -0
  88. package/dist/runtime/checkout.js +20 -0
  89. package/dist/runtime/config.d.ts +7 -0
  90. package/dist/runtime/config.js +46 -0
  91. package/dist/runtime/errors.d.ts +2 -0
  92. package/dist/runtime/errors.js +10 -0
  93. package/dist/runtime/home.d.ts +11 -0
  94. package/dist/runtime/home.js +15 -0
  95. package/dist/runtime/lock.d.ts +12 -0
  96. package/dist/runtime/lock.js +123 -0
  97. package/dist/runtime/migrate.d.ts +9 -0
  98. package/dist/runtime/migrate.js +44 -0
  99. package/dist/runtime/ownership.d.ts +4 -0
  100. package/dist/runtime/ownership.js +6 -0
  101. package/dist/runtime/protocol.d.ts +24 -0
  102. package/dist/runtime/protocol.js +35 -0
  103. package/dist/runtime/redact.d.ts +3 -0
  104. package/dist/runtime/redact.js +32 -0
  105. package/dist/runtime/store.d.ts +6 -0
  106. package/dist/runtime/store.js +75 -0
  107. package/dist/runtime/transaction.d.ts +4 -0
  108. package/dist/runtime/transaction.js +44 -0
  109. package/dist/runtime/types.d.ts +202 -0
  110. package/dist/runtime/types.js +1 -0
  111. package/dist/runtime/upstream.d.ts +2 -0
  112. package/dist/runtime/upstream.js +8 -0
  113. package/dist/setup/command.d.ts +2 -0
  114. package/dist/setup/command.js +423 -0
  115. package/dist/statechart/backends/cfg.js +31 -0
  116. package/dist/statechart/backends/mermaid.js +223 -0
  117. package/dist/statechart/backends/plain-text.js +68 -0
  118. package/dist/statechart/backends/report.js +123 -0
  119. package/dist/statechart/frontends/config.js +258 -0
  120. package/dist/statechart/frontends/dot.js +68 -0
  121. package/dist/statechart/frontends/marks.js +102 -0
  122. package/dist/statechart/frontends/messages.js +53 -0
  123. package/dist/statechart/frontends/spec.js +89 -0
  124. package/dist/statechart/frontends/trace.js +24 -0
  125. package/dist/statechart/frontends/value.js +181 -0
  126. package/dist/statechart/frontends/verdict.js +38 -0
  127. package/dist/statechart/frontends/view.js +107 -0
  128. package/dist/statechart/ir.js +317 -0
  129. package/dist/statechart/passes/annotate.js +102 -0
  130. package/dist/statechart/passes/label.js +217 -0
  131. package/dist/statechart/passes/lift.js +89 -0
  132. package/dist/statechart/passes/loop-check.js +57 -0
  133. package/dist/statechart/passes/paths.js +50 -0
  134. package/dist/statechart/passes/reach.js +134 -0
  135. package/dist/statechart/passes/region-check.js +94 -0
  136. package/dist/statechart/passes/regions.js +296 -0
  137. package/dist/statechart/pipeline.js +63 -0
  138. package/dist/statechart/run.js +432 -0
  139. package/dist/statechart/statechart.js +149 -0
  140. package/dist/statechart/worker.js +40 -0
  141. package/dist/telemetry/metrics.d.ts +13 -0
  142. package/dist/telemetry/metrics.js +11 -0
  143. package/dist/templates/build.d.ts +35 -0
  144. package/dist/templates/build.js +172 -0
  145. package/dist/tools/agents.d.ts +3 -0
  146. package/dist/tools/agents.js +74 -0
  147. package/dist/tools/graph.d.ts +3 -0
  148. package/dist/tools/graph.js +35 -0
  149. package/dist/tools/protocol.d.ts +3 -0
  150. package/dist/tools/protocol.js +77 -0
  151. package/dist/tools/schema.d.ts +7 -0
  152. package/dist/tools/schema.js +6 -0
  153. package/dist/tools/workflow.d.ts +3 -0
  154. package/dist/tools/workflow.js +137 -0
  155. package/dist/tools/worktrees.d.ts +3 -0
  156. package/dist/tools/worktrees.js +35 -0
  157. package/dist/verification/process.mjs +9 -0
  158. package/dist/verification/runner.d.ts +23 -0
  159. package/dist/verification/runner.js +259 -0
  160. package/dist/workflow/artifacts.d.ts +10 -0
  161. package/dist/workflow/artifacts.js +102 -0
  162. package/dist/workflow/engine.d.ts +58 -0
  163. package/dist/workflow/engine.js +725 -0
  164. package/dist/workflow/graph.d.ts +10 -0
  165. package/dist/workflow/graph.js +60 -0
  166. package/dist/worktree/manager.d.ts +20 -0
  167. package/dist/worktree/manager.js +68 -0
  168. package/dist/worktree/snapshot.d.ts +2 -0
  169. package/dist/worktree/snapshot.js +43 -0
  170. package/docs/DEPENDENCIES.md +35 -0
  171. package/docs/LIVE-TEST-PLAN.zh-CN.md +161 -0
  172. package/docs/ML-WORKFLOWS.zh-CN.md +49 -0
  173. package/docs/PI-SEMANTIC-ADAPTER.md +34 -0
  174. package/docs/PR-41-ALIGNMENT-PLAN.zh-CN.md +30 -0
  175. package/docs/PR-PROTOCOL.md +48 -0
  176. package/docs/PUBLISHING.md +61 -0
  177. package/docs/README.md +30 -0
  178. package/docs/REFERENCE.md +357 -0
  179. package/docs/SEMANTIC-COMPATIBILITY.md +135 -0
  180. package/docs/STATECHART.md +13 -0
  181. package/docs/UPSTREAM-0.15.17.md +51 -0
  182. package/docs/VALIDATION.md +59 -0
  183. package/docs/WINDOWS-MODEL-TEST.zh-CN.md +27 -0
  184. package/docs/evidence/live-github-5deb723.json +44 -0
  185. package/docs/evidence/semantic-smoke-5deb723.json +49 -0
  186. package/docs/parity.test.mjs +84 -0
  187. package/docs/registry-records-0.15.32.json +2161 -0
  188. package/docs/registry-records-0.15.36.json +2161 -0
  189. package/docs/stacked-pr-body.md +23 -0
  190. package/docs/upstream-dispositions-0.15.36.json +2408 -0
  191. package/docs/upstream-inventory-0.15.36.json +15754 -0
  192. package/docs/upstream-provenance-0.15.17.json +62 -0
  193. package/docs/upstream-provenance-0.15.32.json +11 -0
  194. package/docs/upstream-provenance-0.15.36.json +11 -0
  195. package/docs/upstream-sync/IMPLEMENTATION.md +114 -0
  196. package/docs/upstream-sync/PORT-0.15.23.md +142 -0
  197. package/docs/upstream-sync/PR-PORT-0.15.23.md +28 -0
  198. package/docs/upstream-sync/VALIDATION.md +76 -0
  199. package/docs/upstream-sync/candidate-0.15.23.json +632 -0
  200. package/docs/upstream-sync/reports/978ca6e9c0e0_837067b75aa2-e928d281378110a3.json +2166 -0
  201. package/docs/upstream-sync/reports/978ca6e9c0e0_837067b75aa2-e928d281378110a3.md +440 -0
  202. package/docs/upstream-sync/reports/978ca6e9c0e0_837067b75aa2.json +2161 -0
  203. package/docs/upstream-sync/reports/978ca6e9c0e0_837067b75aa2.md +440 -0
  204. package/docs/upstream-sync/tasks/978ca6e9c0e0_837067b75aa2-e928d281378110a3.md +440 -0
  205. package/docs/upstream-sync/tasks/978ca6e9c0e0_837067b75aa2.md +440 -0
  206. package/docs/upstream-sync-0.15.17.json +521 -0
  207. package/docs/upstream-sync-0.15.32.json +106 -0
  208. package/docs/upstream-sync-0.15.36.json +106 -0
  209. package/docs/upstream-target-0.15.36.json +3456 -0
  210. package/docs/upstream-upgrade-0.15.32.json +12140 -0
  211. package/docs/upstream-upgrade-0.15.32.md +23 -0
  212. package/docs/upstream-upgrade-0.15.36.md +7 -0
  213. package/docs/validate-pr.mjs +74 -0
  214. package/examples/README.md +45 -0
  215. package/examples/strict-brief.json +14 -0
  216. package/examples/verification-policy.json +8 -0
  217. package/package.json +152 -4
  218. package/scripts/benchmark.mjs +39 -0
  219. package/scripts/build-statechart.mjs +30 -0
  220. package/scripts/build.mjs +11 -0
  221. package/scripts/check-benchmark.mjs +27 -0
  222. package/scripts/check-contracts.mjs +15 -0
  223. package/scripts/check-e2e.mjs +86 -0
  224. package/scripts/check-inventory.mjs +24 -0
  225. package/scripts/check-package.mjs +17 -0
  226. package/scripts/check-parity.mjs +4 -0
  227. package/scripts/check-plan.mjs +206 -0
  228. package/scripts/check-records.mjs +35 -0
  229. package/scripts/check-semantics.mjs +7 -0
  230. package/scripts/check-statechart.mjs +13 -0
  231. package/scripts/check-syntax.mjs +9 -0
  232. package/scripts/check-windows-build.mjs +12 -0
  233. package/scripts/e2e-live.mjs +58 -0
  234. package/scripts/e2e-reporter.mjs +17 -0
  235. package/scripts/review.mjs +26 -0
  236. package/scripts/semantics/core.mjs +101 -0
  237. package/scripts/semantics/generate.mjs +47 -0
  238. package/scripts/semantics/real-pi-smoke.mjs +46 -0
  239. package/scripts/smoke-host.mjs +10 -0
  240. package/scripts/smoke-install.mjs +37 -0
  241. package/scripts/sync-upstream.mjs +4 -0
  242. package/scripts/upstream/cli.mjs +140 -0
  243. package/scripts/upstream/core.mjs +178 -0
  244. package/scripts/upstream/core.test.mjs +137 -0
  245. package/scripts/upstream/inventory.mjs +229 -0
  246. package/scripts/upstream/inventory.test.mjs +417 -0
  247. package/scripts/upstream/notify.cjs +17 -0
  248. package/scripts/upstream/notify.test.mjs +12 -0
  249. package/scripts/upstream/parity.mjs +45 -0
  250. package/scripts/upstream/playbook-contract.test.mjs +80 -0
  251. package/scripts/upstream/playbooks.mjs +143 -0
  252. package/scripts/upstream/records.mjs +113 -0
  253. package/scripts/upstream/records.test.mjs +116 -0
  254. package/scripts/upstream/report.d.ts +30 -0
  255. package/skills/architect/SKILL.md +133 -0
  256. package/skills/architect/references/design-red-flags.md +57 -0
  257. package/skills/architect/references/rationale-template.md +35 -0
  258. package/skills/architect/references/runner-prompt.md +20 -0
  259. package/skills/arena/SKILL.md +102 -0
  260. package/skills/automate-me/SKILL.md +158 -0
  261. package/skills/benchmark-checklist/SKILL.md +89 -0
  262. package/skills/blast-radius/SKILL.md +100 -0
  263. package/skills/bro/SKILL.md +57 -0
  264. package/skills/correct/SKILL.md +82 -0
  265. package/skills/create-formal-verification-skill/SKILL.md +93 -0
  266. package/skills/create-verification-skill/SKILL.md +94 -0
  267. package/skills/create-verification-skill/references/feature-map-example/README.md +47 -0
  268. package/skills/create-verification-skill/references/feature-map-example/create-note.md +39 -0
  269. package/skills/create-verification-skill/references/feature-map-example/search.md +45 -0
  270. package/skills/figure-it-out/SKILL.md +102 -0
  271. package/skills/how/SKILL.md +86 -0
  272. package/skills/how/references/explainer-prompt.md +55 -0
  273. package/skills/how/references/explorer-prompt.md +35 -0
  274. package/skills/in-your-own-words/SKILL.md +57 -0
  275. package/skills/interrogate/SKILL.md +85 -0
  276. package/skills/ketchup/SKILL.md +93 -0
  277. package/skills/ketchup-video/SKILL.md +79 -0
  278. package/skills/maintain-formal-verification-skill/SKILL.md +108 -0
  279. package/skills/maintain-verification-skill/SKILL.md +89 -0
  280. package/skills/make-bot-ui/SKILL.md +8 -0
  281. package/skills/ml-development/SKILL.md +38 -0
  282. package/skills/ml-development/playbooks/01-scope.md +14 -0
  283. package/skills/ml-development/playbooks/02-data.md +14 -0
  284. package/skills/ml-development/playbooks/03-baseline.md +14 -0
  285. package/skills/ml-development/playbooks/04-experiments.md +14 -0
  286. package/skills/ml-development/playbooks/05-evaluation.md +14 -0
  287. package/skills/ml-development/playbooks/06-reproducibility.md +13 -0
  288. package/skills/ml-development/references/experiment-matrix.md +11 -0
  289. package/skills/ml-development/references/run-record.md +19 -0
  290. package/skills/no-comments/SKILL.md +74 -0
  291. package/skills/poteto-help/SKILL.md +217 -0
  292. package/skills/poteto-help/references/prompting.md +51 -0
  293. package/skills/poteto-help/references/recipes.md +51 -0
  294. package/skills/poteto-mode/SKILL.md +214 -0
  295. package/skills/poteto-mode/playbooks/authoring-a-skill.md +64 -0
  296. package/skills/poteto-mode/playbooks/autonomous-run.md +65 -0
  297. package/skills/poteto-mode/playbooks/autopilot-full.md +77 -0
  298. package/skills/poteto-mode/playbooks/autopilot-stack.md +60 -0
  299. package/skills/poteto-mode/playbooks/babysit.md +75 -0
  300. package/skills/poteto-mode/playbooks/bug-fix.md +67 -0
  301. package/skills/poteto-mode/playbooks/eval.md +77 -0
  302. package/skills/poteto-mode/playbooks/feature.md +73 -0
  303. package/skills/poteto-mode/playbooks/hillclimb.md +73 -0
  304. package/skills/poteto-mode/playbooks/investigation.md +66 -0
  305. package/skills/poteto-mode/playbooks/multi-phase-plan.md +207 -0
  306. package/skills/poteto-mode/playbooks/opening-a-pr.md +86 -0
  307. package/skills/poteto-mode/playbooks/orchestrate.md +77 -0
  308. package/skills/poteto-mode/playbooks/pause-safely.md +62 -0
  309. package/skills/poteto-mode/playbooks/perf-issue.md +77 -0
  310. package/skills/poteto-mode/playbooks/prototype.md +66 -0
  311. package/skills/poteto-mode/playbooks/refactoring.md +68 -0
  312. package/skills/poteto-mode/playbooks/runtime-forensics.md +63 -0
  313. package/skills/poteto-mode/playbooks/session-pickup.md +63 -0
  314. package/skills/poteto-mode/playbooks/shipping.md +64 -0
  315. package/skills/poteto-mode/playbooks/trace-forensics.md +66 -0
  316. package/skills/poteto-mode/playbooks/visual-parity.md +63 -0
  317. package/skills/poteto-mode/playbooks/worktree-cleanup.md +64 -0
  318. package/skills/poteto-mode/references/bugbot-triage.md +142 -0
  319. package/skills/poteto-mode/references/runtime-mapping.md +10 -0
  320. package/skills/principle-attack-the-premise/SKILL.md +71 -0
  321. package/skills/principle-boundary-discipline/SKILL.md +84 -0
  322. package/skills/principle-build-the-lever/SKILL.md +73 -0
  323. package/skills/principle-encode-lessons-in-structure/SKILL.md +61 -0
  324. package/skills/principle-exhaust-the-design-space/SKILL.md +59 -0
  325. package/skills/principle-experience-first/SKILL.md +69 -0
  326. package/skills/principle-explain-the-number/SKILL.md +68 -0
  327. package/skills/principle-fix-root-causes/SKILL.md +71 -0
  328. package/skills/principle-foundational-thinking/SKILL.md +71 -0
  329. package/skills/principle-guard-the-context-window/SKILL.md +62 -0
  330. package/skills/principle-laziness-protocol/SKILL.md +60 -0
  331. package/skills/principle-make-operations-idempotent/SKILL.md +72 -0
  332. package/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +64 -0
  333. package/skills/principle-minimize-reader-load/SKILL.md +68 -0
  334. package/skills/principle-model-the-domain/SKILL.md +74 -0
  335. package/skills/principle-never-block-on-the-human/SKILL.md +65 -0
  336. package/skills/principle-outcome-oriented-execution/SKILL.md +71 -0
  337. package/skills/principle-prove-it-works/SKILL.md +72 -0
  338. package/skills/principle-redesign-from-first-principles/SKILL.md +66 -0
  339. package/skills/principle-separate-before-serializing-shared-state/SKILL.md +66 -0
  340. package/skills/principle-sequence-verifiable-units/SKILL.md +67 -0
  341. package/skills/principle-subtract-before-you-add/SKILL.md +68 -0
  342. package/skills/principle-test-behavior-not-implementation/SKILL.md +70 -0
  343. package/skills/principle-type-system-discipline/SKILL.md +63 -0
  344. package/skills/pstack-runtime/SKILL.md +8 -0
  345. package/skills/recall/SKILL.md +85 -0
  346. package/skills/reflect/SKILL.md +119 -0
  347. package/skills/reflect/references/divergent-reviewer.md +38 -0
  348. package/skills/reflect/references/judgment-reviewer.md +37 -0
  349. package/skills/reflect/references/synthesizer.md +56 -0
  350. package/skills/reflect/references/tooling-reviewer.md +48 -0
  351. package/skills/setup-pstack/SKILL.md +132 -0
  352. package/skills/sharpen/SKILL.md +66 -0
  353. package/skills/show-me-your-work/SKILL.md +132 -0
  354. package/skills/statechart/SKILL.md +132 -0
  355. package/skills/statechart/references/render.md +93 -0
  356. package/skills/statechart/scripts/backends/cfg.ts +33 -0
  357. package/skills/statechart/scripts/backends/mermaid.ts +201 -0
  358. package/skills/statechart/scripts/backends/plain-text.ts +72 -0
  359. package/skills/statechart/scripts/backends/report.ts +177 -0
  360. package/skills/statechart/scripts/bug-states.mjs +81 -0
  361. package/skills/statechart/scripts/chart-edges.mjs +68 -0
  362. package/skills/statechart/scripts/chart-parts.mjs +21 -0
  363. package/skills/statechart/scripts/chart-to-tla.mjs +205 -0
  364. package/skills/statechart/scripts/compare-charts.mjs +74 -0
  365. package/skills/statechart/scripts/frontends/config.ts +276 -0
  366. package/skills/statechart/scripts/frontends/dot.ts +74 -0
  367. package/skills/statechart/scripts/frontends/marks.ts +93 -0
  368. package/skills/statechart/scripts/frontends/messages.ts +52 -0
  369. package/skills/statechart/scripts/frontends/spec.ts +114 -0
  370. package/skills/statechart/scripts/frontends/trace.ts +24 -0
  371. package/skills/statechart/scripts/frontends/value.ts +166 -0
  372. package/skills/statechart/scripts/frontends/verdict.ts +40 -0
  373. package/skills/statechart/scripts/frontends/view.ts +119 -0
  374. package/skills/statechart/scripts/ir.ts +547 -0
  375. package/skills/statechart/scripts/lib.mjs +970 -0
  376. package/skills/statechart/scripts/map-view.mjs +92 -0
  377. package/skills/statechart/scripts/package.json +11 -0
  378. package/skills/statechart/scripts/passes/annotate.ts +128 -0
  379. package/skills/statechart/scripts/passes/label.ts +269 -0
  380. package/skills/statechart/scripts/passes/lift.ts +85 -0
  381. package/skills/statechart/scripts/passes/loop-check.ts +68 -0
  382. package/skills/statechart/scripts/passes/paths.ts +60 -0
  383. package/skills/statechart/scripts/passes/reach.ts +135 -0
  384. package/skills/statechart/scripts/passes/region-check.ts +97 -0
  385. package/skills/statechart/scripts/passes/regions.ts +295 -0
  386. package/skills/statechart/scripts/pipeline.ts +76 -0
  387. package/skills/statechart/scripts/property-loop.mjs +60 -0
  388. package/skills/statechart/scripts/read-check.mjs +79 -0
  389. package/skills/statechart/scripts/regions-chart.mjs +307 -0
  390. package/skills/statechart/scripts/render.mjs +531 -0
  391. package/skills/statechart/scripts/rule-book.mjs +84 -0
  392. package/skills/statechart/scripts/run.ts +481 -0
  393. package/skills/statechart/scripts/second-replay.mjs +122 -0
  394. package/skills/statechart/scripts/snapshot.mjs +74 -0
  395. package/skills/statechart/scripts/spec-text.mjs +126 -0
  396. package/skills/statechart/scripts/statechart +29 -0
  397. package/skills/statechart/scripts/statechart-help.mjs +350 -0
  398. package/skills/statechart/scripts/statechart.mjs +903 -0
  399. package/skills/statechart/scripts/statechart.ts +164 -0
  400. package/skills/statechart/scripts/test/ConfigOracle.java +63 -0
  401. package/skills/statechart/scripts/test/band.mmd +15 -0
  402. package/skills/statechart/scripts/test/chart.test.ts +1210 -0
  403. package/skills/statechart/scripts/test/charts/Braces.mmd +7 -0
  404. package/skills/statechart/scripts/test/charts/Escapes.mmd +11 -0
  405. package/skills/statechart/scripts/test/charts/Phases.mmd +29 -0
  406. package/skills/statechart/scripts/test/cli.test.ts +1314 -0
  407. package/skills/statechart/scripts/test/config-fuzz.test.ts +263 -0
  408. package/skills/statechart/scripts/test/corpus/Counter/ChartRun.out +57 -0
  409. package/skills/statechart/scripts/test/corpus/Counter/Counter.cfg +3 -0
  410. package/skills/statechart/scripts/test/corpus/Counter/Counter.tla +10 -0
  411. package/skills/statechart/scripts/test/corpus/Counter/chart.mmd +9 -0
  412. package/skills/statechart/scripts/test/corpus/Counter/graph.dot +16 -0
  413. package/skills/statechart/scripts/test/corpus/Counter/report.md +7 -0
  414. package/skills/statechart/scripts/test/corpus/Counter/sany.out +2 -0
  415. package/skills/statechart/scripts/test/corpus/Counter/verdict-1.out +49 -0
  416. package/skills/statechart/scripts/test/corpus/CounterAction/ChartRun.out +60 -0
  417. package/skills/statechart/scripts/test/corpus/CounterAction/CounterAction.cfg +4 -0
  418. package/skills/statechart/scripts/test/corpus/CounterAction/CounterAction.tla +22 -0
  419. package/skills/statechart/scripts/test/corpus/CounterAction/chart.mmd +26 -0
  420. package/skills/statechart/scripts/test/corpus/CounterAction/graph.dot +19 -0
  421. package/skills/statechart/scripts/test/corpus/CounterAction/report.md +20 -0
  422. package/skills/statechart/scripts/test/corpus/CounterAction/sany.out +2 -0
  423. package/skills/statechart/scripts/test/corpus/CounterAction/verdict-1.exit +1 -0
  424. package/skills/statechart/scripts/test/corpus/CounterAction/verdict-1.out +56 -0
  425. package/skills/statechart/scripts/test/corpus/CounterAction/verdict-2.exit +1 -0
  426. package/skills/statechart/scripts/test/corpus/CounterAction/verdict-2.out +82 -0
  427. package/skills/statechart/scripts/test/corpus/CounterAction/verdict-3.out +57 -0
  428. package/skills/statechart/scripts/test/corpus/CounterDeadlock/ChartRun.out +59 -0
  429. package/skills/statechart/scripts/test/corpus/CounterDeadlock/CounterDeadlock.cfg +3 -0
  430. package/skills/statechart/scripts/test/corpus/CounterDeadlock/CounterDeadlock.tla +11 -0
  431. package/skills/statechart/scripts/test/corpus/CounterDeadlock/chart.mmd +22 -0
  432. package/skills/statechart/scripts/test/corpus/CounterDeadlock/graph.dot +16 -0
  433. package/skills/statechart/scripts/test/corpus/CounterDeadlock/report.md +17 -0
  434. package/skills/statechart/scripts/test/corpus/CounterDeadlock/sany.out +2 -0
  435. package/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-1.exit +1 -0
  436. package/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-1.out +56 -0
  437. package/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-2.exit +1 -0
  438. package/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-2.out +77 -0
  439. package/skills/statechart/scripts/test/corpus/CounterFan/ChartRun.out +69 -0
  440. package/skills/statechart/scripts/test/corpus/CounterFan/CounterFan.cfg +2 -0
  441. package/skills/statechart/scripts/test/corpus/CounterFan/CounterFan.tla +11 -0
  442. package/skills/statechart/scripts/test/corpus/CounterFan/chart.mmd +85 -0
  443. package/skills/statechart/scripts/test/corpus/CounterFan/graph.dot +70 -0
  444. package/skills/statechart/scripts/test/corpus/CounterFan/report.md +12 -0
  445. package/skills/statechart/scripts/test/corpus/CounterFan/sany.out +2 -0
  446. package/skills/statechart/scripts/test/corpus/CounterFan/verdict-1.exit +1 -0
  447. package/skills/statechart/scripts/test/corpus/CounterFan/verdict-1.out +67 -0
  448. package/skills/statechart/scripts/test/corpus/CounterFan/verdict-2.out +57 -0
  449. package/skills/statechart/scripts/test/corpus/CounterGuard/ChartRun.exit +1 -0
  450. package/skills/statechart/scripts/test/corpus/CounterGuard/ChartRun.out +85 -0
  451. package/skills/statechart/scripts/test/corpus/CounterGuard/CounterGuard.cfg +6 -0
  452. package/skills/statechart/scripts/test/corpus/CounterGuard/CounterGuard.tla +13 -0
  453. package/skills/statechart/scripts/test/corpus/CounterGuard/chart.mmd +5 -0
  454. package/skills/statechart/scripts/test/corpus/CounterGuard/graph.dot +10 -0
  455. package/skills/statechart/scripts/test/corpus/CounterGuard/report.md +31 -0
  456. package/skills/statechart/scripts/test/corpus/CounterGuard/sany.out +2 -0
  457. package/skills/statechart/scripts/test/corpus/CounterGuard/verdict-1.exit +1 -0
  458. package/skills/statechart/scripts/test/corpus/CounterGuard/verdict-1.out +64 -0
  459. package/skills/statechart/scripts/test/corpus/CounterGuard/verdict-2.exit +1 -0
  460. package/skills/statechart/scripts/test/corpus/CounterGuard/verdict-2.out +77 -0
  461. package/skills/statechart/scripts/test/corpus/CounterInitPast/ChartRun.out +55 -0
  462. package/skills/statechart/scripts/test/corpus/CounterInitPast/CounterInitPast.cfg +3 -0
  463. package/skills/statechart/scripts/test/corpus/CounterInitPast/CounterInitPast.tla +10 -0
  464. package/skills/statechart/scripts/test/corpus/CounterInitPast/chart.mmd +12 -0
  465. package/skills/statechart/scripts/test/corpus/CounterInitPast/graph.dot +6 -0
  466. package/skills/statechart/scripts/test/corpus/CounterInitPast/report.md +12 -0
  467. package/skills/statechart/scripts/test/corpus/CounterInitPast/sany.out +2 -0
  468. package/skills/statechart/scripts/test/corpus/CounterInitPast/verdict-1.exit +1 -0
  469. package/skills/statechart/scripts/test/corpus/CounterInitPast/verdict-1.out +33 -0
  470. package/skills/statechart/scripts/test/corpus/CounterInitPast/verdict-2.out +54 -0
  471. package/skills/statechart/scripts/test/corpus/CounterInitPastHolds/ChartRun.out +54 -0
  472. package/skills/statechart/scripts/test/corpus/CounterInitPastHolds/CounterInitPastHolds.cfg +3 -0
  473. package/skills/statechart/scripts/test/corpus/CounterInitPastHolds/CounterInitPastHolds.tla +10 -0
  474. package/skills/statechart/scripts/test/corpus/CounterInitPastHolds/chart.mmd +1 -0
  475. package/skills/statechart/scripts/test/corpus/CounterInitPastHolds/graph.dot +6 -0
  476. package/skills/statechart/scripts/test/corpus/CounterInitPastHolds/report.md +7 -0
  477. package/skills/statechart/scripts/test/corpus/CounterInitPastHolds/sany.out +2 -0
  478. package/skills/statechart/scripts/test/corpus/CounterInitPastHolds/verdict-1.out +46 -0
  479. package/skills/statechart/scripts/test/corpus/CounterInstance/ChartRun.out +59 -0
  480. package/skills/statechart/scripts/test/corpus/CounterInstance/CounterInstance.cfg +2 -0
  481. package/skills/statechart/scripts/test/corpus/CounterInstance/CounterInstance.tla +10 -0
  482. package/skills/statechart/scripts/test/corpus/CounterInstance/CounterSteps.tla +6 -0
  483. package/skills/statechart/scripts/test/corpus/CounterInstance/chart.mmd +17 -0
  484. package/skills/statechart/scripts/test/corpus/CounterInstance/graph.dot +15 -0
  485. package/skills/statechart/scripts/test/corpus/CounterInstance/report.md +14 -0
  486. package/skills/statechart/scripts/test/corpus/CounterInstance/sany.out +3 -0
  487. package/skills/statechart/scripts/test/corpus/CounterInstance/verdict-1.exit +1 -0
  488. package/skills/statechart/scripts/test/corpus/CounterInstance/verdict-1.out +78 -0
  489. package/skills/statechart/scripts/test/corpus/CounterJump/ChartRun.out +59 -0
  490. package/skills/statechart/scripts/test/corpus/CounterJump/CounterJump.cfg +3 -0
  491. package/skills/statechart/scripts/test/corpus/CounterJump/CounterJump.tla +19 -0
  492. package/skills/statechart/scripts/test/corpus/CounterJump/chart.mmd +26 -0
  493. package/skills/statechart/scripts/test/corpus/CounterJump/graph.dot +22 -0
  494. package/skills/statechart/scripts/test/corpus/CounterJump/report.md +12 -0
  495. package/skills/statechart/scripts/test/corpus/CounterJump/sany.out +2 -0
  496. package/skills/statechart/scripts/test/corpus/CounterJump/verdict-1.exit +1 -0
  497. package/skills/statechart/scripts/test/corpus/CounterJump/verdict-1.out +58 -0
  498. package/skills/statechart/scripts/test/corpus/CounterJump/verdict-2.out +57 -0
  499. package/skills/statechart/scripts/test/corpus/CounterLoop/ChartRun.out +57 -0
  500. package/skills/statechart/scripts/test/corpus/CounterLoop/CounterLoop.cfg +2 -0
  501. package/skills/statechart/scripts/test/corpus/CounterLoop/CounterLoop.tla +11 -0
  502. package/skills/statechart/scripts/test/corpus/CounterLoop/chart.mmd +17 -0
  503. package/skills/statechart/scripts/test/corpus/CounterLoop/graph.dot +15 -0
  504. package/skills/statechart/scripts/test/corpus/CounterLoop/report.md +14 -0
  505. package/skills/statechart/scripts/test/corpus/CounterLoop/sany.out +2 -0
  506. package/skills/statechart/scripts/test/corpus/CounterLoop/verdict-1.exit +1 -0
  507. package/skills/statechart/scripts/test/corpus/CounterLoop/verdict-1.out +76 -0
  508. package/skills/statechart/scripts/test/corpus/CounterOrder/ChartRun.out +59 -0
  509. package/skills/statechart/scripts/test/corpus/CounterOrder/CounterOrder.cfg +3 -0
  510. package/skills/statechart/scripts/test/corpus/CounterOrder/CounterOrder.tla +11 -0
  511. package/skills/statechart/scripts/test/corpus/CounterOrder/chart.mmd +19 -0
  512. package/skills/statechart/scripts/test/corpus/CounterOrder/graph.dot +10 -0
  513. package/skills/statechart/scripts/test/corpus/CounterOrder/report.md +15 -0
  514. package/skills/statechart/scripts/test/corpus/CounterOrder/sany.out +2 -0
  515. package/skills/statechart/scripts/test/corpus/CounterOrder/verdict-1.exit +1 -0
  516. package/skills/statechart/scripts/test/corpus/CounterOrder/verdict-1.out +56 -0
  517. package/skills/statechart/scripts/test/corpus/CounterOrder/verdict-2.exit +1 -0
  518. package/skills/statechart/scripts/test/corpus/CounterOrder/verdict-2.out +67 -0
  519. package/skills/statechart/scripts/test/corpus/CounterRules/ChartRun.out +62 -0
  520. package/skills/statechart/scripts/test/corpus/CounterRules/CounterRules.cfg +6 -0
  521. package/skills/statechart/scripts/test/corpus/CounterRules/CounterRules.tla +24 -0
  522. package/skills/statechart/scripts/test/corpus/CounterRules/Moves.tla +5 -0
  523. package/skills/statechart/scripts/test/corpus/CounterRules/chart.mmd +22 -0
  524. package/skills/statechart/scripts/test/corpus/CounterRules/graph.dot +10 -0
  525. package/skills/statechart/scripts/test/corpus/CounterRules/report.md +23 -0
  526. package/skills/statechart/scripts/test/corpus/CounterRules/sany.out +3 -0
  527. package/skills/statechart/scripts/test/corpus/CounterRules/verdict-1.exit +1 -0
  528. package/skills/statechart/scripts/test/corpus/CounterRules/verdict-1.out +58 -0
  529. package/skills/statechart/scripts/test/corpus/CounterRules/verdict-2.exit +1 -0
  530. package/skills/statechart/scripts/test/corpus/CounterRules/verdict-2.out +66 -0
  531. package/skills/statechart/scripts/test/corpus/CounterRules/verdict-3.exit +1 -0
  532. package/skills/statechart/scripts/test/corpus/CounterRules/verdict-3.out +74 -0
  533. package/skills/statechart/scripts/test/corpus/CounterRules/verdict-4.out +59 -0
  534. package/skills/statechart/scripts/test/corpus/CounterStart/ChartRun.out +58 -0
  535. package/skills/statechart/scripts/test/corpus/CounterStart/CounterStart.cfg +3 -0
  536. package/skills/statechart/scripts/test/corpus/CounterStart/CounterStart.tla +15 -0
  537. package/skills/statechart/scripts/test/corpus/CounterStart/chart.mmd +18 -0
  538. package/skills/statechart/scripts/test/corpus/CounterStart/graph.dot +13 -0
  539. package/skills/statechart/scripts/test/corpus/CounterStart/report.md +11 -0
  540. package/skills/statechart/scripts/test/corpus/CounterStart/sany.out +2 -0
  541. package/skills/statechart/scripts/test/corpus/CounterStart/verdict-1.exit +1 -0
  542. package/skills/statechart/scripts/test/corpus/CounterStart/verdict-1.out +33 -0
  543. package/skills/statechart/scripts/test/corpus/CounterStart/verdict-2.out +57 -0
  544. package/skills/statechart/scripts/test/corpus/CounterStop/ChartRun.out +57 -0
  545. package/skills/statechart/scripts/test/corpus/CounterStop/CounterStop.cfg +3 -0
  546. package/skills/statechart/scripts/test/corpus/CounterStop/CounterStop.tla +15 -0
  547. package/skills/statechart/scripts/test/corpus/CounterStop/chart.mmd +7 -0
  548. package/skills/statechart/scripts/test/corpus/CounterStop/graph.dot +13 -0
  549. package/skills/statechart/scripts/test/corpus/CounterStop/report.md +6 -0
  550. package/skills/statechart/scripts/test/corpus/CounterStop/sany.out +2 -0
  551. package/skills/statechart/scripts/test/corpus/CounterStop/verdict-1.out +49 -0
  552. package/skills/statechart/scripts/test/corpus/CounterTie/ChartRun.out +61 -0
  553. package/skills/statechart/scripts/test/corpus/CounterTie/CounterTie.cfg +4 -0
  554. package/skills/statechart/scripts/test/corpus/CounterTie/CounterTie.tla +14 -0
  555. package/skills/statechart/scripts/test/corpus/CounterTie/chart.mmd +30 -0
  556. package/skills/statechart/scripts/test/corpus/CounterTie/graph.dot +19 -0
  557. package/skills/statechart/scripts/test/corpus/CounterTie/report.md +27 -0
  558. package/skills/statechart/scripts/test/corpus/CounterTie/sany.out +2 -0
  559. package/skills/statechart/scripts/test/corpus/CounterTie/verdict-1.exit +1 -0
  560. package/skills/statechart/scripts/test/corpus/CounterTie/verdict-1.out +56 -0
  561. package/skills/statechart/scripts/test/corpus/CounterTie/verdict-2.exit +1 -0
  562. package/skills/statechart/scripts/test/corpus/CounterTie/verdict-2.out +64 -0
  563. package/skills/statechart/scripts/test/corpus/CounterTie/verdict-3.exit +1 -0
  564. package/skills/statechart/scripts/test/corpus/CounterTie/verdict-3.out +87 -0
  565. package/skills/statechart/scripts/test/corpus/CounterTie/verdict-4.out +57 -0
  566. package/skills/statechart/scripts/test/corpus/CounterTieInGraph/ChartRun.out +60 -0
  567. package/skills/statechart/scripts/test/corpus/CounterTieInGraph/CounterTieInGraph.cfg +3 -0
  568. package/skills/statechart/scripts/test/corpus/CounterTieInGraph/CounterTieInGraph.tla +12 -0
  569. package/skills/statechart/scripts/test/corpus/CounterTieInGraph/chart.mmd +23 -0
  570. package/skills/statechart/scripts/test/corpus/CounterTieInGraph/graph.dot +19 -0
  571. package/skills/statechart/scripts/test/corpus/CounterTieInGraph/report.md +11 -0
  572. package/skills/statechart/scripts/test/corpus/CounterTieInGraph/sany.out +2 -0
  573. package/skills/statechart/scripts/test/corpus/CounterTieInGraph/verdict-1.exit +1 -0
  574. package/skills/statechart/scripts/test/corpus/CounterTieInGraph/verdict-1.out +56 -0
  575. package/skills/statechart/scripts/test/corpus/CounterTieInGraph/verdict-2.out +57 -0
  576. package/skills/statechart/scripts/test/corpus/CounterView/ChartRun.out +61 -0
  577. package/skills/statechart/scripts/test/corpus/CounterView/CounterView.cfg +4 -0
  578. package/skills/statechart/scripts/test/corpus/CounterView/CounterView.tla +14 -0
  579. package/skills/statechart/scripts/test/corpus/CounterView/chart.mmd +23 -0
  580. package/skills/statechart/scripts/test/corpus/CounterView/graph.dot +19 -0
  581. package/skills/statechart/scripts/test/corpus/CounterView/report.md +27 -0
  582. package/skills/statechart/scripts/test/corpus/CounterView/sany.out +2 -0
  583. package/skills/statechart/scripts/test/corpus/CounterView/verdict-1.exit +1 -0
  584. package/skills/statechart/scripts/test/corpus/CounterView/verdict-1.out +56 -0
  585. package/skills/statechart/scripts/test/corpus/CounterView/verdict-2.exit +1 -0
  586. package/skills/statechart/scripts/test/corpus/CounterView/verdict-2.out +64 -0
  587. package/skills/statechart/scripts/test/corpus/CounterView/verdict-3.exit +1 -0
  588. package/skills/statechart/scripts/test/corpus/CounterView/verdict-3.out +87 -0
  589. package/skills/statechart/scripts/test/corpus/CounterView/verdict-4.out +57 -0
  590. package/skills/statechart/scripts/test/corpus/CounterView/view.mjs +1 -0
  591. package/skills/statechart/scripts/test/corpus/DieHard/ChartRun.out +59 -0
  592. package/skills/statechart/scripts/test/corpus/DieHard/DieHard.cfg +4 -0
  593. package/skills/statechart/scripts/test/corpus/DieHard/DieHard.tla +38 -0
  594. package/skills/statechart/scripts/test/corpus/DieHard/chart.mmd +92 -0
  595. package/skills/statechart/scripts/test/corpus/DieHard/graph.dot +126 -0
  596. package/skills/statechart/scripts/test/corpus/DieHard/report.md +17 -0
  597. package/skills/statechart/scripts/test/corpus/DieHard/sany.out +2 -0
  598. package/skills/statechart/scripts/test/corpus/DieHard/verdict-1.exit +1 -0
  599. package/skills/statechart/scripts/test/corpus/DieHard/verdict-1.out +91 -0
  600. package/skills/statechart/scripts/test/corpus/DieHard/verdict-2.out +57 -0
  601. package/skills/statechart/scripts/test/corpus/FirstRule/ChartRun.out +61 -0
  602. package/skills/statechart/scripts/test/corpus/FirstRule/FirstRule.cfg +6 -0
  603. package/skills/statechart/scripts/test/corpus/FirstRule/FirstRule.tla +11 -0
  604. package/skills/statechart/scripts/test/corpus/FirstRule/chart.mmd +22 -0
  605. package/skills/statechart/scripts/test/corpus/FirstRule/graph.dot +16 -0
  606. package/skills/statechart/scripts/test/corpus/FirstRule/report.md +25 -0
  607. package/skills/statechart/scripts/test/corpus/FirstRule/sany.out +2 -0
  608. package/skills/statechart/scripts/test/corpus/FirstRule/verdict-1.exit +1 -0
  609. package/skills/statechart/scripts/test/corpus/FirstRule/verdict-1.out +56 -0
  610. package/skills/statechart/scripts/test/corpus/FirstRule/verdict-2.exit +1 -0
  611. package/skills/statechart/scripts/test/corpus/FirstRule/verdict-2.out +64 -0
  612. package/skills/statechart/scripts/test/corpus/FirstRule/verdict-3.exit +1 -0
  613. package/skills/statechart/scripts/test/corpus/FirstRule/verdict-3.out +64 -0
  614. package/skills/statechart/scripts/test/corpus/FirstRule/verdict-4.exit +1 -0
  615. package/skills/statechart/scripts/test/corpus/FirstRule/verdict-4.out +77 -0
  616. package/skills/statechart/scripts/test/corpus/HiddenClock/ChartRun.out +57 -0
  617. package/skills/statechart/scripts/test/corpus/HiddenClock/HiddenClock.cfg +4 -0
  618. package/skills/statechart/scripts/test/corpus/HiddenClock/HiddenClock.tla +11 -0
  619. package/skills/statechart/scripts/test/corpus/HiddenClock/chart.mmd +13 -0
  620. package/skills/statechart/scripts/test/corpus/HiddenClock/graph.dot +12 -0
  621. package/skills/statechart/scripts/test/corpus/HiddenClock/report.md +11 -0
  622. package/skills/statechart/scripts/test/corpus/HiddenClock/sany.out +2 -0
  623. package/skills/statechart/scripts/test/corpus/HiddenClock/verdict-1.exit +1 -0
  624. package/skills/statechart/scripts/test/corpus/HiddenClock/verdict-1.out +72 -0
  625. package/skills/statechart/scripts/test/corpus/Login/ChartRun.out +57 -0
  626. package/skills/statechart/scripts/test/corpus/Login/Login.cfg +3 -0
  627. package/skills/statechart/scripts/test/corpus/Login/Login.tla +62 -0
  628. package/skills/statechart/scripts/test/corpus/Login/chart.mmd +27 -0
  629. package/skills/statechart/scripts/test/corpus/Login/graph.dot +40 -0
  630. package/skills/statechart/scripts/test/corpus/Login/report.md +7 -0
  631. package/skills/statechart/scripts/test/corpus/Login/sany.out +1 -0
  632. package/skills/statechart/scripts/test/corpus/Login/verdict-1.out +47 -0
  633. package/skills/statechart/scripts/test/corpus/Login/view.mjs +1 -0
  634. package/skills/statechart/scripts/test/corpus/LoginGuarded/ChartRun.out +57 -0
  635. package/skills/statechart/scripts/test/corpus/LoginGuarded/LoginGuarded.cfg +2 -0
  636. package/skills/statechart/scripts/test/corpus/LoginGuarded/LoginGuarded.tla +64 -0
  637. package/skills/statechart/scripts/test/corpus/LoginGuarded/chart.mmd +28 -0
  638. package/skills/statechart/scripts/test/corpus/LoginGuarded/graph.dot +37 -0
  639. package/skills/statechart/scripts/test/corpus/LoginGuarded/report.md +8 -0
  640. package/skills/statechart/scripts/test/corpus/LoginGuarded/sany.out +1 -0
  641. package/skills/statechart/scripts/test/corpus/LoginGuarded/verdict-1.out +47 -0
  642. package/skills/statechart/scripts/test/corpus/LoginGuarded/view.mjs +1 -0
  643. package/skills/statechart/scripts/test/corpus/LoginParallel/ChartRun.out +60 -0
  644. package/skills/statechart/scripts/test/corpus/LoginParallel/LoginParallel.cfg +3 -0
  645. package/skills/statechart/scripts/test/corpus/LoginParallel/LoginParallel.tla +64 -0
  646. package/skills/statechart/scripts/test/corpus/LoginParallel/chart.mmd +44 -0
  647. package/skills/statechart/scripts/test/corpus/LoginParallel/graph.dot +58 -0
  648. package/skills/statechart/scripts/test/corpus/LoginParallel/report.md +17 -0
  649. package/skills/statechart/scripts/test/corpus/LoginParallel/sany.out +1 -0
  650. package/skills/statechart/scripts/test/corpus/LoginParallel/verdict-1.exit +1 -0
  651. package/skills/statechart/scripts/test/corpus/LoginParallel/verdict-1.out +83 -0
  652. package/skills/statechart/scripts/test/corpus/LoginParallel/verdict-2.out +57 -0
  653. package/skills/statechart/scripts/test/corpus/LoginParallel/view.mjs +1 -0
  654. package/skills/statechart/scripts/test/corpus/MediaPlayer/ChartRun.out +60 -0
  655. package/skills/statechart/scripts/test/corpus/MediaPlayer/MediaPlayer.cfg +3 -0
  656. package/skills/statechart/scripts/test/corpus/MediaPlayer/MediaPlayer.tla +103 -0
  657. package/skills/statechart/scripts/test/corpus/MediaPlayer/chart.mmd +43 -0
  658. package/skills/statechart/scripts/test/corpus/MediaPlayer/graph.dot +93 -0
  659. package/skills/statechart/scripts/test/corpus/MediaPlayer/report.md +14 -0
  660. package/skills/statechart/scripts/test/corpus/MediaPlayer/sany.out +1 -0
  661. package/skills/statechart/scripts/test/corpus/MediaPlayer/verdict-1.exit +1 -0
  662. package/skills/statechart/scripts/test/corpus/MediaPlayer/verdict-1.out +59 -0
  663. package/skills/statechart/scripts/test/corpus/MediaPlayer/verdict-2.out +72 -0
  664. package/skills/statechart/scripts/test/corpus/MediaPlayer/view.mjs +3 -0
  665. package/skills/statechart/scripts/test/corpus/MediaPlayerFixed/ChartRun.out +57 -0
  666. package/skills/statechart/scripts/test/corpus/MediaPlayerFixed/MediaPlayerFixed.cfg +2 -0
  667. package/skills/statechart/scripts/test/corpus/MediaPlayerFixed/MediaPlayerFixed.tla +100 -0
  668. package/skills/statechart/scripts/test/corpus/MediaPlayerFixed/chart.mmd +31 -0
  669. package/skills/statechart/scripts/test/corpus/MediaPlayerFixed/graph.dot +85 -0
  670. package/skills/statechart/scripts/test/corpus/MediaPlayerFixed/report.md +9 -0
  671. package/skills/statechart/scripts/test/corpus/MediaPlayerFixed/sany.out +1 -0
  672. package/skills/statechart/scripts/test/corpus/MediaPlayerFixed/verdict-1.out +47 -0
  673. package/skills/statechart/scripts/test/corpus/MediaPlayerFixed/view.mjs +3 -0
  674. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/ChartRun.out +59 -0
  675. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/MediaPlayer.tla +103 -0
  676. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/MediaPlayerProps.cfg +3 -0
  677. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/MediaPlayerProps.tla +6 -0
  678. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/chart.mmd +42 -0
  679. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/graph.dot +93 -0
  680. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/report.md +19 -0
  681. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/sany.out +2 -0
  682. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-1.exit +1 -0
  683. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-1.out +61 -0
  684. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-2.out +59 -0
  685. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-3.out +61 -0
  686. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-4.exit +1 -0
  687. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-4.out +66 -0
  688. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-5.exit +1 -0
  689. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-5.out +58 -0
  690. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-6.out +49 -0
  691. package/skills/statechart/scripts/test/corpus/MediaPlayerProps/view.mjs +3 -0
  692. package/skills/statechart/scripts/test/corpus/PickWorker/ChartRun.out +57 -0
  693. package/skills/statechart/scripts/test/corpus/PickWorker/PickWorker.cfg +6 -0
  694. package/skills/statechart/scripts/test/corpus/PickWorker/PickWorker.tla +11 -0
  695. package/skills/statechart/scripts/test/corpus/PickWorker/chart.mmd +5 -0
  696. package/skills/statechart/scripts/test/corpus/PickWorker/graph.dot +11 -0
  697. package/skills/statechart/scripts/test/corpus/PickWorker/report.md +7 -0
  698. package/skills/statechart/scripts/test/corpus/PickWorker/sany.out +5 -0
  699. package/skills/statechart/scripts/test/corpus/PickWorker/verdict-1.out +70 -0
  700. package/skills/statechart/scripts/test/corpus/Shadow/ChartRun.out +61 -0
  701. package/skills/statechart/scripts/test/corpus/Shadow/Shadow.cfg +4 -0
  702. package/skills/statechart/scripts/test/corpus/Shadow/Shadow.tla +11 -0
  703. package/skills/statechart/scripts/test/corpus/Shadow/ShadowLib.tla +6 -0
  704. package/skills/statechart/scripts/test/corpus/Shadow/ShadowSub.tla +3 -0
  705. package/skills/statechart/scripts/test/corpus/Shadow/chart.mmd +9 -0
  706. package/skills/statechart/scripts/test/corpus/Shadow/graph.dot +16 -0
  707. package/skills/statechart/scripts/test/corpus/Shadow/report.md +8 -0
  708. package/skills/statechart/scripts/test/corpus/Shadow/sany.out +4 -0
  709. package/skills/statechart/scripts/test/corpus/Shadow/verdict-1.out +65 -0
  710. package/skills/statechart/scripts/test/corpus/SpacedNames/ChartRun.out +59 -0
  711. package/skills/statechart/scripts/test/corpus/SpacedNames/SpacedNames.cfg +2 -0
  712. package/skills/statechart/scripts/test/corpus/SpacedNames/SpacedNames.tla +9 -0
  713. package/skills/statechart/scripts/test/corpus/SpacedNames/chart.mmd +23 -0
  714. package/skills/statechart/scripts/test/corpus/SpacedNames/graph.dot +17 -0
  715. package/skills/statechart/scripts/test/corpus/SpacedNames/report.md +15 -0
  716. package/skills/statechart/scripts/test/corpus/SpacedNames/sany.out +1 -0
  717. package/skills/statechart/scripts/test/corpus/SpacedNames/verdict-1.exit +1 -0
  718. package/skills/statechart/scripts/test/corpus/SpacedNames/verdict-1.out +65 -0
  719. package/skills/statechart/scripts/test/corpus/SpacedNames/verdict-2.exit +1 -0
  720. package/skills/statechart/scripts/test/corpus/SpacedNames/verdict-2.out +75 -0
  721. package/skills/statechart/scripts/test/corpus/TwoPhase/ChartRun.out +69 -0
  722. package/skills/statechart/scripts/test/corpus/TwoPhase/TwoPhase.cfg +3 -0
  723. package/skills/statechart/scripts/test/corpus/TwoPhase/TwoPhase.tla +75 -0
  724. package/skills/statechart/scripts/test/corpus/TwoPhase/chart.mmd +60 -0
  725. package/skills/statechart/scripts/test/corpus/TwoPhase/graph.dot +297 -0
  726. package/skills/statechart/scripts/test/corpus/TwoPhase/report.md +20 -0
  727. package/skills/statechart/scripts/test/corpus/TwoPhase/sany.out +1 -0
  728. package/skills/statechart/scripts/test/corpus/TwoPhase/verdict-1.exit +1 -0
  729. package/skills/statechart/scripts/test/corpus/TwoPhase/verdict-1.out +95 -0
  730. package/skills/statechart/scripts/test/corpus/TwoPhase/verdict-2.out +57 -0
  731. package/skills/statechart/scripts/test/corpus/TwoPhase/view.mjs +1 -0
  732. package/skills/statechart/scripts/test/corpus/TwoPhaseFixed/ChartRun.out +57 -0
  733. package/skills/statechart/scripts/test/corpus/TwoPhaseFixed/TwoPhaseFixed.cfg +3 -0
  734. package/skills/statechart/scripts/test/corpus/TwoPhaseFixed/TwoPhaseFixed.tla +75 -0
  735. package/skills/statechart/scripts/test/corpus/TwoPhaseFixed/chart.mmd +37 -0
  736. package/skills/statechart/scripts/test/corpus/TwoPhaseFixed/graph.dot +223 -0
  737. package/skills/statechart/scripts/test/corpus/TwoPhaseFixed/report.md +11 -0
  738. package/skills/statechart/scripts/test/corpus/TwoPhaseFixed/sany.out +1 -0
  739. package/skills/statechart/scripts/test/corpus/TwoPhaseFixed/verdict-1.out +47 -0
  740. package/skills/statechart/scripts/test/corpus/TwoPhaseFixed/view.mjs +1 -0
  741. package/skills/statechart/scripts/test/corpus/TypeGuard/ChartRun.exit +1 -0
  742. package/skills/statechart/scripts/test/corpus/TypeGuard/ChartRun.out +75 -0
  743. package/skills/statechart/scripts/test/corpus/TypeGuard/TypeGuard.cfg +5 -0
  744. package/skills/statechart/scripts/test/corpus/TypeGuard/TypeGuard.tla +11 -0
  745. package/skills/statechart/scripts/test/corpus/TypeGuard/chart.mmd +18 -0
  746. package/skills/statechart/scripts/test/corpus/TypeGuard/graph.dot +14 -0
  747. package/skills/statechart/scripts/test/corpus/TypeGuard/report.md +29 -0
  748. package/skills/statechart/scripts/test/corpus/TypeGuard/sany.out +2 -0
  749. package/skills/statechart/scripts/test/corpus/TypeGuard/verdict-1.exit +1 -0
  750. package/skills/statechart/scripts/test/corpus/TypeGuard/verdict-1.out +64 -0
  751. package/skills/statechart/scripts/test/corpus/TypeGuard/verdict-2.exit +1 -0
  752. package/skills/statechart/scripts/test/corpus/TypeGuard/verdict-2.out +75 -0
  753. package/skills/statechart/scripts/test/corpus/UserNoDeadlock/ChartRun.out +58 -0
  754. package/skills/statechart/scripts/test/corpus/UserNoDeadlock/UserNoDeadlock.cfg +2 -0
  755. package/skills/statechart/scripts/test/corpus/UserNoDeadlock/UserNoDeadlock.tla +8 -0
  756. package/skills/statechart/scripts/test/corpus/UserNoDeadlock/chart.mmd +22 -0
  757. package/skills/statechart/scripts/test/corpus/UserNoDeadlock/graph.dot +16 -0
  758. package/skills/statechart/scripts/test/corpus/UserNoDeadlock/report.md +15 -0
  759. package/skills/statechart/scripts/test/corpus/UserNoDeadlock/sany.out +2 -0
  760. package/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-1.exit +1 -0
  761. package/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-1.out +56 -0
  762. package/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-2.exit +1 -0
  763. package/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-2.out +77 -0
  764. package/skills/statechart/scripts/test/corpus.test.ts +403 -0
  765. package/skills/statechart/scripts/test/differential.test.ts +565 -0
  766. package/skills/statechart/scripts/test/grid/Grid.cfg +2 -0
  767. package/skills/statechart/scripts/test/grid/Grid.tla +9 -0
  768. package/skills/statechart/scripts/test/grid/sany.out +2 -0
  769. package/skills/statechart/scripts/test/java.ts +63 -0
  770. package/skills/statechart/scripts/test/labels.ts +643 -0
  771. package/skills/statechart/scripts/test/messages.test.ts +212 -0
  772. package/skills/statechart/scripts/test/pipeline.test.ts +270 -0
  773. package/skills/statechart/scripts/test/plain-tlc.test.ts +255 -0
  774. package/skills/statechart/scripts/test/regions.mmd +62 -0
  775. package/skills/statechart/scripts/test/render.test.ts +81 -0
  776. package/skills/statechart/scripts/test/statechart.test.mjs +6854 -0
  777. package/skills/statechart/scripts/test/sync.mmd +19 -0
  778. package/skills/statechart/scripts/test/tlc-out.test.ts +90 -0
  779. package/skills/statechart/scripts/test/tlc.ts +158 -0
  780. package/skills/statechart/scripts/test/upload.mmd +16 -0
  781. package/skills/statechart/scripts/tlc-to-chart-args.mjs +52 -0
  782. package/skills/statechart/scripts/tlc-to-chart.mjs +802 -0
  783. package/skills/statechart/scripts/tlc-tools.mjs +69 -0
  784. package/skills/statechart/scripts/tsconfig.json +11 -0
  785. package/skills/statechart/scripts/ways-in.mjs +69 -0
  786. package/skills/statechart/scripts/worker.ts +35 -0
  787. package/skills/swarm/SKILL.md +91 -0
  788. package/skills/tdd/SKILL.md +92 -0
  789. package/skills/teach/SKILL.md +71 -0
  790. package/skills/technical-writing/SKILL.md +156 -0
  791. package/skills/typescript-best-practices/SKILL.md +81 -0
  792. package/skills/typescript-best-practices/references/patterns.md +328 -0
  793. package/skills/unslop/SKILL.md +112 -0
  794. package/skills/why/SKILL.md +148 -0
  795. package/skills/why/references/epistemics.md +71 -0
  796. package/skills/why/references/investigator-prompt.md +84 -0
  797. package/skills/why/references/source-playbook.md +17 -0
  798. package/skills/why/references/sources/analytics.md +5 -0
  799. package/skills/why/references/sources/code-archaeology.md +51 -0
  800. package/skills/why/references/sources/databricks.md +70 -0
  801. package/skills/why/references/sources/datadog.md +97 -0
  802. package/skills/why/references/sources/documents.md +5 -0
  803. package/skills/why/references/sources/errors.md +5 -0
  804. package/skills/why/references/sources/incident-postmortem.md +5 -0
  805. package/skills/why/references/sources/issues.md +5 -0
  806. package/skills/why/references/sources/linear.md +48 -0
  807. package/skills/why/references/sources/notion.md +55 -0
  808. package/skills/why/references/sources/observability.md +5 -0
  809. package/skills/why/references/sources/sentry.md +66 -0
  810. package/skills/why/references/sources/slack.md +17 -0
  811. package/skills/why/references/sources/source-control.md +5 -0
  812. package/skills/why/references/sources/team-chat.md +5 -0
  813. package/skills/why/references/synthesizer-prompt.md +129 -0
  814. package/src/agent/candidates.ts +60 -0
  815. package/src/agent/grep-worker.mjs +46 -0
  816. package/src/agent/host.ts +455 -0
  817. package/src/agent/isolation.ts +14 -0
  818. package/src/agent/outcome.ts +18 -0
  819. package/src/agent/profiles.ts +133 -0
  820. package/src/agent/read-only-tools.ts +129 -0
  821. package/src/agent/resources.ts +66 -0
  822. package/src/api.ts +19 -0
  823. package/src/artifacts/fingerprint.ts +58 -0
  824. package/src/compatibility/adapter.ts +94 -0
  825. package/src/compatibility/source.ts +30 -0
  826. package/src/compatibility/tool.ts +47 -0
  827. package/src/context/snapshot.ts +12 -0
  828. package/src/contracts/brief.ts +144 -0
  829. package/src/contracts/types.ts +57 -0
  830. package/src/delivery/frontier.ts +87 -0
  831. package/src/delivery/git.ts +9 -0
  832. package/src/delivery/prepare.ts +23 -0
  833. package/src/delivery/provider.ts +41 -0
  834. package/src/delivery/review-threads.ts +28 -0
  835. package/src/delivery/stack.ts +76 -0
  836. package/src/extension.ts +281 -0
  837. package/src/loop/scheduler.ts +334 -0
  838. package/src/loop/store.ts +66 -0
  839. package/src/models/router.ts +171 -0
  840. package/src/program/coordinator.ts +122 -0
  841. package/src/program/dispatch.ts +83 -0
  842. package/src/runner/cli.mjs +46 -0
  843. package/src/runner/lease.ts +17 -0
  844. package/src/runner/service.ts +37 -0
  845. package/src/runtime/checkout.ts +19 -0
  846. package/src/runtime/config.ts +49 -0
  847. package/src/runtime/errors.ts +12 -0
  848. package/src/runtime/home.ts +17 -0
  849. package/src/runtime/lock.ts +101 -0
  850. package/src/runtime/migrate.ts +29 -0
  851. package/src/runtime/ownership.ts +6 -0
  852. package/src/runtime/protocol.ts +35 -0
  853. package/src/runtime/redact.ts +34 -0
  854. package/src/runtime/store.ts +50 -0
  855. package/src/runtime/transaction.ts +41 -0
  856. package/src/runtime/types.ts +203 -0
  857. package/src/runtime/upstream.ts +7 -0
  858. package/src/setup/command.ts +331 -0
  859. package/src/telemetry/metrics.ts +11 -0
  860. package/src/templates/build.ts +172 -0
  861. package/src/tools/agents.ts +62 -0
  862. package/src/tools/graph.ts +37 -0
  863. package/src/tools/protocol.ts +53 -0
  864. package/src/tools/schema.ts +9 -0
  865. package/src/tools/workflow.ts +103 -0
  866. package/src/tools/worktrees.ts +39 -0
  867. package/src/verification/process.mjs +9 -0
  868. package/src/verification/runner.ts +148 -0
  869. package/src/workflow/artifacts.ts +97 -0
  870. package/src/workflow/engine.ts +631 -0
  871. package/src/workflow/graph.ts +53 -0
  872. package/src/worktree/manager.ts +60 -0
  873. package/src/worktree/snapshot.ts +35 -0
  874. package/test/baseline-owner.test.ts +122 -0
  875. package/test/benchmark.test.ts +81 -0
  876. package/test/cancellation.test.ts +92 -0
  877. package/test/candidate-port.test.ts +18 -0
  878. package/test/check-plan.test.ts +99 -0
  879. package/test/checkout.test.ts +19 -0
  880. package/test/delivery-stack.test.ts +106 -0
  881. package/test/dispatch.test.ts +171 -0
  882. package/test/e2e/fixture-child.mjs +33 -0
  883. package/test/e2e/harness.ts +282 -0
  884. package/test/e2e/offline.test.ts +153 -0
  885. package/test/e2e/parent-context.ts +66 -0
  886. package/test/e2e/reported-defects.test.ts +85 -0
  887. package/test/e2e/shipping.test.ts +204 -0
  888. package/test/e2e/workflow.test.ts +408 -0
  889. package/test/fixtures/loop-execution-lock-holder.mjs +38 -0
  890. package/test/fixtures/loop-lock-holder.mjs +31 -0
  891. package/test/fixtures/loop-scheduler-worker.mjs +95 -0
  892. package/test/fixtures/semantics/scenarios.json +18 -0
  893. package/test/fixtures/verification-crash-worker.mjs +5 -0
  894. package/test/graph.test.ts +23 -0
  895. package/test/isolation.test.ts +21 -0
  896. package/test/latest-upstream.test.ts +41 -0
  897. package/test/live/command-probe-child.mjs +22 -0
  898. package/test/live/command-probe-loader.mjs +8 -0
  899. package/test/live/command-probe-register.mjs +12 -0
  900. package/test/live/github-live.test.ts +107 -0
  901. package/test/live/guard.ts +70 -0
  902. package/test/lock.test.ts +76 -0
  903. package/test/loop-scheduler.test.ts +460 -0
  904. package/test/loop.test.ts +60 -0
  905. package/test/ml-development.test.ts +65 -0
  906. package/test/model-panels.test.ts +237 -0
  907. package/test/model-router.test.ts +124 -0
  908. package/test/outcome.test.ts +31 -0
  909. package/test/protocol.test.ts +350 -0
  910. package/test/read-only-tools.test.ts +86 -0
  911. package/test/real-sdk-integration.test.ts +183 -0
  912. package/test/redaction.test.ts +66 -0
  913. package/test/resources.test.ts +42 -0
  914. package/test/review-snapshot.test.ts +48 -0
  915. package/test/semantic-compatibility.test.ts +121 -0
  916. package/test/setup-command.test.ts +212 -0
  917. package/test/setup-rpc.test.ts +68 -0
  918. package/test/smoke-installed-package.mjs +119 -0
  919. package/test/statechart.test.ts +25 -0
  920. package/test/store.test.ts +35 -0
  921. package/test/swarm-race.test.ts +50 -0
  922. package/test/tool-ownership.test.ts +59 -0
  923. package/test/transaction.test.ts +89 -0
  924. package/test/verification.test.ts +295 -0
  925. package/test/workflow.test.ts +408 -0
  926. package/test/worktree.test.ts +39 -0
  927. package/tsconfig.build.json +12 -0
  928. package/tsconfig.json +17 -0
  929. package/vendor/upstream/0.15.17/pstack/LICENSE +21 -0
  930. package/vendor/upstream/0.15.17/pstack/skills/architect/SKILL.md +79 -0
  931. package/vendor/upstream/0.15.17/pstack/skills/architect/references/design-red-flags.md +57 -0
  932. package/vendor/upstream/0.15.17/pstack/skills/architect/references/rationale-template.md +35 -0
  933. package/vendor/upstream/0.15.17/pstack/skills/architect/references/runner-prompt.md +20 -0
  934. package/vendor/upstream/0.15.17/pstack/skills/arena/SKILL.md +48 -0
  935. package/vendor/upstream/0.15.17/pstack/skills/automate-me/SKILL.md +104 -0
  936. package/vendor/upstream/0.15.17/pstack/skills/benchmark-checklist/SKILL.md +39 -0
  937. package/vendor/upstream/0.15.17/pstack/skills/blast-radius/SKILL.md +50 -0
  938. package/vendor/upstream/0.15.17/pstack/skills/bro/SKILL.md +7 -0
  939. package/vendor/upstream/0.15.17/pstack/skills/correct/SKILL.md +32 -0
  940. package/vendor/upstream/0.15.17/pstack/skills/create-verification-skill/SKILL.md +44 -0
  941. package/vendor/upstream/0.15.17/pstack/skills/create-verification-skill/references/feature-map-example/README.md +47 -0
  942. package/vendor/upstream/0.15.17/pstack/skills/create-verification-skill/references/feature-map-example/create-note.md +39 -0
  943. package/vendor/upstream/0.15.17/pstack/skills/create-verification-skill/references/feature-map-example/search.md +45 -0
  944. package/vendor/upstream/0.15.17/pstack/skills/figure-it-out/SKILL.md +52 -0
  945. package/vendor/upstream/0.15.17/pstack/skills/how/SKILL.md +36 -0
  946. package/vendor/upstream/0.15.17/pstack/skills/how/references/explainer-prompt.md +55 -0
  947. package/vendor/upstream/0.15.17/pstack/skills/how/references/explorer-prompt.md +52 -0
  948. package/vendor/upstream/0.15.17/pstack/skills/interrogate/SKILL.md +74 -0
  949. package/vendor/upstream/0.15.17/pstack/skills/interrogate/references/code-quality-review.md +47 -0
  950. package/vendor/upstream/0.15.17/pstack/skills/interrogate/references/lead-judgment.md +58 -0
  951. package/vendor/upstream/0.15.17/pstack/skills/interrogate/references/reviewer-prompt.md +62 -0
  952. package/vendor/upstream/0.15.17/pstack/skills/interrogate/references/rubric.md +77 -0
  953. package/vendor/upstream/0.15.17/pstack/skills/ketchup/SKILL.md +23 -0
  954. package/vendor/upstream/0.15.17/pstack/skills/maintain-verification-skill/SKILL.md +39 -0
  955. package/vendor/upstream/0.15.17/pstack/skills/make-bot-ui/SKILL.md +115 -0
  956. package/vendor/upstream/0.15.17/pstack/skills/no-comments/SKILL.md +24 -0
  957. package/vendor/upstream/0.15.17/pstack/skills/poteto-help/SKILL.md +154 -0
  958. package/vendor/upstream/0.15.17/pstack/skills/poteto-help/references/prompting.md +51 -0
  959. package/vendor/upstream/0.15.17/pstack/skills/poteto-help/references/recipes.md +47 -0
  960. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/SKILL.md +147 -0
  961. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/authoring-a-skill.md +12 -0
  962. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/autonomous-run.md +13 -0
  963. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/autopilot-full.md +13 -0
  964. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/autopilot-stack.md +16 -0
  965. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/babysit.md +27 -0
  966. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/bug-fix.md +15 -0
  967. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/eval.md +25 -0
  968. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/feature.md +21 -0
  969. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/hillclimb.md +21 -0
  970. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/investigation.md +14 -0
  971. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/multi-phase-plan.md +155 -0
  972. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/opening-a-pr.md +34 -0
  973. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/orchestrate.md +111 -0
  974. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/pause-safely.md +10 -0
  975. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/perf-issue.md +25 -0
  976. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/prototype.md +14 -0
  977. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/refactoring.md +16 -0
  978. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/runtime-forensics.md +11 -0
  979. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/session-pickup.md +11 -0
  980. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/shipping.md +17 -0
  981. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/trace-forensics.md +14 -0
  982. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/visual-parity.md +11 -0
  983. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/playbooks/worktree-cleanup.md +14 -0
  984. package/vendor/upstream/0.15.17/pstack/skills/poteto-mode/references/bugbot-triage.md +142 -0
  985. package/vendor/upstream/0.15.17/pstack/skills/principle-attack-the-premise/SKILL.md +23 -0
  986. package/vendor/upstream/0.15.17/pstack/skills/principle-boundary-discipline/SKILL.md +34 -0
  987. package/vendor/upstream/0.15.17/pstack/skills/principle-build-the-lever/SKILL.md +23 -0
  988. package/vendor/upstream/0.15.17/pstack/skills/principle-encode-lessons-in-structure/SKILL.md +28 -0
  989. package/vendor/upstream/0.15.17/pstack/skills/principle-exhaust-the-design-space/SKILL.md +21 -0
  990. package/vendor/upstream/0.15.17/pstack/skills/principle-experience-first/SKILL.md +19 -0
  991. package/vendor/upstream/0.15.17/pstack/skills/principle-explain-the-number/SKILL.md +17 -0
  992. package/vendor/upstream/0.15.17/pstack/skills/principle-fix-root-causes/SKILL.md +23 -0
  993. package/vendor/upstream/0.15.17/pstack/skills/principle-foundational-thinking/SKILL.md +21 -0
  994. package/vendor/upstream/0.15.17/pstack/skills/principle-guard-the-context-window/SKILL.md +16 -0
  995. package/vendor/upstream/0.15.17/pstack/skills/principle-laziness-protocol/SKILL.md +18 -0
  996. package/vendor/upstream/0.15.17/pstack/skills/principle-make-operations-idempotent/SKILL.md +24 -0
  997. package/vendor/upstream/0.15.17/pstack/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +22 -0
  998. package/vendor/upstream/0.15.17/pstack/skills/principle-minimize-reader-load/SKILL.md +18 -0
  999. package/vendor/upstream/0.15.17/pstack/skills/principle-model-the-domain/SKILL.md +24 -0
  1000. package/vendor/upstream/0.15.17/pstack/skills/principle-never-block-on-the-human/SKILL.md +15 -0
  1001. package/vendor/upstream/0.15.17/pstack/skills/principle-outcome-oriented-execution/SKILL.md +21 -0
  1002. package/vendor/upstream/0.15.17/pstack/skills/principle-prove-it-works/SKILL.md +22 -0
  1003. package/vendor/upstream/0.15.17/pstack/skills/principle-redesign-from-first-principles/SKILL.md +16 -0
  1004. package/vendor/upstream/0.15.17/pstack/skills/principle-separate-before-serializing-shared-state/SKILL.md +16 -0
  1005. package/vendor/upstream/0.15.17/pstack/skills/principle-sequence-verifiable-units/SKILL.md +17 -0
  1006. package/vendor/upstream/0.15.17/pstack/skills/principle-subtract-before-you-add/SKILL.md +18 -0
  1007. package/vendor/upstream/0.15.17/pstack/skills/principle-test-behavior-not-implementation/SKILL.md +21 -0
  1008. package/vendor/upstream/0.15.17/pstack/skills/principle-type-system-discipline/SKILL.md +18 -0
  1009. package/vendor/upstream/0.15.17/pstack/skills/recall/SKILL.md +35 -0
  1010. package/vendor/upstream/0.15.17/pstack/skills/reflect/SKILL.md +67 -0
  1011. package/vendor/upstream/0.15.17/pstack/skills/reflect/references/divergent-reviewer.md +38 -0
  1012. package/vendor/upstream/0.15.17/pstack/skills/reflect/references/judgment-reviewer.md +37 -0
  1013. package/vendor/upstream/0.15.17/pstack/skills/reflect/references/synthesizer.md +56 -0
  1014. package/vendor/upstream/0.15.17/pstack/skills/reflect/references/tooling-reviewer.md +48 -0
  1015. package/vendor/upstream/0.15.17/pstack/skills/setup-pstack/SKILL.md +74 -0
  1016. package/vendor/upstream/0.15.17/pstack/skills/show-me-your-work/SKILL.md +82 -0
  1017. package/vendor/upstream/0.15.17/pstack/skills/swarm/SKILL.md +46 -0
  1018. package/vendor/upstream/0.15.17/pstack/skills/tdd/SKILL.md +42 -0
  1019. package/vendor/upstream/0.15.17/pstack/skills/teach/SKILL.md +21 -0
  1020. package/vendor/upstream/0.15.17/pstack/skills/technical-writing/SKILL.md +106 -0
  1021. package/vendor/upstream/0.15.17/pstack/skills/typescript-best-practices/SKILL.md +31 -0
  1022. package/vendor/upstream/0.15.17/pstack/skills/typescript-best-practices/references/patterns.md +324 -0
  1023. package/vendor/upstream/0.15.17/pstack/skills/unslop/SKILL.md +62 -0
  1024. package/vendor/upstream/0.15.17/pstack/skills/why/SKILL.md +98 -0
  1025. package/vendor/upstream/0.15.17/pstack/skills/why/references/epistemics.md +71 -0
  1026. package/vendor/upstream/0.15.17/pstack/skills/why/references/investigator-prompt.md +84 -0
  1027. package/vendor/upstream/0.15.17/pstack/skills/why/references/source-playbook.md +17 -0
  1028. package/vendor/upstream/0.15.17/pstack/skills/why/references/sources/code-archaeology.md +86 -0
  1029. package/vendor/upstream/0.15.17/pstack/skills/why/references/sources/databricks.md +70 -0
  1030. package/vendor/upstream/0.15.17/pstack/skills/why/references/sources/datadog.md +97 -0
  1031. package/vendor/upstream/0.15.17/pstack/skills/why/references/sources/incident-postmortem.md +15 -0
  1032. package/vendor/upstream/0.15.17/pstack/skills/why/references/sources/linear.md +48 -0
  1033. package/vendor/upstream/0.15.17/pstack/skills/why/references/sources/notion.md +55 -0
  1034. package/vendor/upstream/0.15.17/pstack/skills/why/references/sources/sentry.md +96 -0
  1035. package/vendor/upstream/0.15.17/pstack/skills/why/references/sources/slack.md +54 -0
  1036. package/vendor/upstream/0.15.17/pstack/skills/why/references/synthesizer-prompt.md +129 -0
  1037. package/vendor/upstream/0.15.32/pstack/.cursor-plugin/plugin.json +31 -0
  1038. package/vendor/upstream/0.15.32/pstack/LICENSE +21 -0
  1039. package/vendor/upstream/0.15.32/pstack/skills/architect/SKILL.md +79 -0
  1040. package/vendor/upstream/0.15.32/pstack/skills/architect/references/design-red-flags.md +57 -0
  1041. package/vendor/upstream/0.15.32/pstack/skills/architect/references/rationale-template.md +35 -0
  1042. package/vendor/upstream/0.15.32/pstack/skills/architect/references/runner-prompt.md +20 -0
  1043. package/vendor/upstream/0.15.32/pstack/skills/arena/SKILL.md +48 -0
  1044. package/vendor/upstream/0.15.32/pstack/skills/automate-me/SKILL.md +104 -0
  1045. package/vendor/upstream/0.15.32/pstack/skills/benchmark-checklist/SKILL.md +39 -0
  1046. package/vendor/upstream/0.15.32/pstack/skills/blast-radius/SKILL.md +50 -0
  1047. package/vendor/upstream/0.15.32/pstack/skills/bro/SKILL.md +7 -0
  1048. package/vendor/upstream/0.15.32/pstack/skills/correct/SKILL.md +32 -0
  1049. package/vendor/upstream/0.15.32/pstack/skills/create-formal-verification-skill/SKILL.md +43 -0
  1050. package/vendor/upstream/0.15.32/pstack/skills/create-verification-skill/SKILL.md +44 -0
  1051. package/vendor/upstream/0.15.32/pstack/skills/create-verification-skill/references/feature-map-example/README.md +47 -0
  1052. package/vendor/upstream/0.15.32/pstack/skills/create-verification-skill/references/feature-map-example/create-note.md +39 -0
  1053. package/vendor/upstream/0.15.32/pstack/skills/create-verification-skill/references/feature-map-example/search.md +45 -0
  1054. package/vendor/upstream/0.15.32/pstack/skills/figure-it-out/SKILL.md +52 -0
  1055. package/vendor/upstream/0.15.32/pstack/skills/how/SKILL.md +36 -0
  1056. package/vendor/upstream/0.15.32/pstack/skills/how/references/explainer-prompt.md +55 -0
  1057. package/vendor/upstream/0.15.32/pstack/skills/how/references/explorer-prompt.md +35 -0
  1058. package/vendor/upstream/0.15.32/pstack/skills/in-your-own-words/SKILL.md +7 -0
  1059. package/vendor/upstream/0.15.32/pstack/skills/interrogate/SKILL.md +74 -0
  1060. package/vendor/upstream/0.15.32/pstack/skills/interrogate/references/code-quality-review.md +47 -0
  1061. package/vendor/upstream/0.15.32/pstack/skills/interrogate/references/lead-judgment.md +39 -0
  1062. package/vendor/upstream/0.15.32/pstack/skills/interrogate/references/reviewer-prompt.md +62 -0
  1063. package/vendor/upstream/0.15.32/pstack/skills/interrogate/references/rubric.md +77 -0
  1064. package/vendor/upstream/0.15.32/pstack/skills/ketchup/SKILL.md +43 -0
  1065. package/vendor/upstream/0.15.32/pstack/skills/ketchup-video/SKILL.md +23 -0
  1066. package/vendor/upstream/0.15.32/pstack/skills/maintain-formal-verification-skill/SKILL.md +58 -0
  1067. package/vendor/upstream/0.15.32/pstack/skills/maintain-verification-skill/SKILL.md +39 -0
  1068. package/vendor/upstream/0.15.32/pstack/skills/make-bot-ui/SKILL.md +115 -0
  1069. package/vendor/upstream/0.15.32/pstack/skills/no-comments/SKILL.md +24 -0
  1070. package/vendor/upstream/0.15.32/pstack/skills/poteto-help/SKILL.md +163 -0
  1071. package/vendor/upstream/0.15.32/pstack/skills/poteto-help/references/prompting.md +51 -0
  1072. package/vendor/upstream/0.15.32/pstack/skills/poteto-help/references/recipes.md +51 -0
  1073. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/SKILL.md +149 -0
  1074. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/authoring-a-skill.md +12 -0
  1075. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/autonomous-run.md +13 -0
  1076. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/autopilot-full.md +25 -0
  1077. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/autopilot-stack.md +12 -0
  1078. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/babysit.md +23 -0
  1079. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/bug-fix.md +15 -0
  1080. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/eval.md +25 -0
  1081. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/feature.md +21 -0
  1082. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/hillclimb.md +21 -0
  1083. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/investigation.md +14 -0
  1084. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/multi-phase-plan.md +155 -0
  1085. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/opening-a-pr.md +34 -0
  1086. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/orchestrate.md +112 -0
  1087. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/pause-safely.md +10 -0
  1088. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/perf-issue.md +25 -0
  1089. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/prototype.md +14 -0
  1090. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/refactoring.md +16 -0
  1091. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/runtime-forensics.md +11 -0
  1092. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/session-pickup.md +11 -0
  1093. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/shipping.md +12 -0
  1094. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/trace-forensics.md +14 -0
  1095. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/visual-parity.md +11 -0
  1096. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/playbooks/worktree-cleanup.md +12 -0
  1097. package/vendor/upstream/0.15.32/pstack/skills/poteto-mode/references/bugbot-triage.md +142 -0
  1098. package/vendor/upstream/0.15.32/pstack/skills/principle-attack-the-premise/SKILL.md +21 -0
  1099. package/vendor/upstream/0.15.32/pstack/skills/principle-boundary-discipline/SKILL.md +34 -0
  1100. package/vendor/upstream/0.15.32/pstack/skills/principle-build-the-lever/SKILL.md +23 -0
  1101. package/vendor/upstream/0.15.32/pstack/skills/principle-encode-lessons-in-structure/SKILL.md +11 -0
  1102. package/vendor/upstream/0.15.32/pstack/skills/principle-exhaust-the-design-space/SKILL.md +9 -0
  1103. package/vendor/upstream/0.15.32/pstack/skills/principle-experience-first/SKILL.md +19 -0
  1104. package/vendor/upstream/0.15.32/pstack/skills/principle-explain-the-number/SKILL.md +17 -0
  1105. package/vendor/upstream/0.15.32/pstack/skills/principle-fix-root-causes/SKILL.md +21 -0
  1106. package/vendor/upstream/0.15.32/pstack/skills/principle-foundational-thinking/SKILL.md +21 -0
  1107. package/vendor/upstream/0.15.32/pstack/skills/principle-guard-the-context-window/SKILL.md +12 -0
  1108. package/vendor/upstream/0.15.32/pstack/skills/principle-laziness-protocol/SKILL.md +10 -0
  1109. package/vendor/upstream/0.15.32/pstack/skills/principle-make-operations-idempotent/SKILL.md +22 -0
  1110. package/vendor/upstream/0.15.32/pstack/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +14 -0
  1111. package/vendor/upstream/0.15.32/pstack/skills/principle-minimize-reader-load/SKILL.md +18 -0
  1112. package/vendor/upstream/0.15.32/pstack/skills/principle-model-the-domain/SKILL.md +24 -0
  1113. package/vendor/upstream/0.15.32/pstack/skills/principle-never-block-on-the-human/SKILL.md +15 -0
  1114. package/vendor/upstream/0.15.32/pstack/skills/principle-outcome-oriented-execution/SKILL.md +21 -0
  1115. package/vendor/upstream/0.15.32/pstack/skills/principle-prove-it-works/SKILL.md +22 -0
  1116. package/vendor/upstream/0.15.32/pstack/skills/principle-redesign-from-first-principles/SKILL.md +16 -0
  1117. package/vendor/upstream/0.15.32/pstack/skills/principle-separate-before-serializing-shared-state/SKILL.md +16 -0
  1118. package/vendor/upstream/0.15.32/pstack/skills/principle-sequence-verifiable-units/SKILL.md +17 -0
  1119. package/vendor/upstream/0.15.32/pstack/skills/principle-subtract-before-you-add/SKILL.md +18 -0
  1120. package/vendor/upstream/0.15.32/pstack/skills/principle-test-behavior-not-implementation/SKILL.md +20 -0
  1121. package/vendor/upstream/0.15.32/pstack/skills/principle-type-system-discipline/SKILL.md +13 -0
  1122. package/vendor/upstream/0.15.32/pstack/skills/recall/SKILL.md +35 -0
  1123. package/vendor/upstream/0.15.32/pstack/skills/reflect/SKILL.md +69 -0
  1124. package/vendor/upstream/0.15.32/pstack/skills/reflect/references/divergent-reviewer.md +38 -0
  1125. package/vendor/upstream/0.15.32/pstack/skills/reflect/references/judgment-reviewer.md +37 -0
  1126. package/vendor/upstream/0.15.32/pstack/skills/reflect/references/synthesizer.md +56 -0
  1127. package/vendor/upstream/0.15.32/pstack/skills/reflect/references/tooling-reviewer.md +48 -0
  1128. package/vendor/upstream/0.15.32/pstack/skills/setup-pstack/SKILL.md +78 -0
  1129. package/vendor/upstream/0.15.32/pstack/skills/sharpen/SKILL.md +16 -0
  1130. package/vendor/upstream/0.15.32/pstack/skills/show-me-your-work/SKILL.md +82 -0
  1131. package/vendor/upstream/0.15.32/pstack/skills/statechart/SKILL.md +36 -0
  1132. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/bug-states.mjs +81 -0
  1133. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/chart-edges.mjs +68 -0
  1134. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/chart-parts.mjs +21 -0
  1135. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/chart-to-tla.mjs +205 -0
  1136. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/compare-charts.mjs +74 -0
  1137. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/lib.mjs +970 -0
  1138. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/map-view.mjs +92 -0
  1139. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/property-loop.mjs +60 -0
  1140. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/read-check.mjs +79 -0
  1141. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/regions-chart.mjs +307 -0
  1142. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/render.mjs +531 -0
  1143. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/rule-book.mjs +84 -0
  1144. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/second-replay.mjs +122 -0
  1145. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/snapshot.mjs +74 -0
  1146. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/spec-text.mjs +126 -0
  1147. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/statechart-help.mjs +350 -0
  1148. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/statechart.mjs +903 -0
  1149. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/test/band.mmd +15 -0
  1150. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/test/regions.mmd +62 -0
  1151. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/test/statechart.test.mjs +6854 -0
  1152. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/test/sync.mmd +19 -0
  1153. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/test/upload.mmd +16 -0
  1154. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/tlc-to-chart-args.mjs +52 -0
  1155. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/tlc-to-chart.mjs +802 -0
  1156. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/tlc-tools.mjs +69 -0
  1157. package/vendor/upstream/0.15.32/pstack/skills/statechart/scripts/ways-in.mjs +69 -0
  1158. package/vendor/upstream/0.15.32/pstack/skills/swarm/SKILL.md +41 -0
  1159. package/vendor/upstream/0.15.32/pstack/skills/tdd/SKILL.md +42 -0
  1160. package/vendor/upstream/0.15.32/pstack/skills/teach/SKILL.md +21 -0
  1161. package/vendor/upstream/0.15.32/pstack/skills/technical-writing/SKILL.md +106 -0
  1162. package/vendor/upstream/0.15.32/pstack/skills/typescript-best-practices/SKILL.md +31 -0
  1163. package/vendor/upstream/0.15.32/pstack/skills/typescript-best-practices/references/patterns.md +328 -0
  1164. package/vendor/upstream/0.15.32/pstack/skills/unslop/SKILL.md +62 -0
  1165. package/vendor/upstream/0.15.32/pstack/skills/why/SKILL.md +98 -0
  1166. package/vendor/upstream/0.15.32/pstack/skills/why/references/epistemics.md +71 -0
  1167. package/vendor/upstream/0.15.32/pstack/skills/why/references/investigator-prompt.md +84 -0
  1168. package/vendor/upstream/0.15.32/pstack/skills/why/references/source-playbook.md +17 -0
  1169. package/vendor/upstream/0.15.32/pstack/skills/why/references/sources/code-archaeology.md +51 -0
  1170. package/vendor/upstream/0.15.32/pstack/skills/why/references/sources/databricks.md +70 -0
  1171. package/vendor/upstream/0.15.32/pstack/skills/why/references/sources/datadog.md +97 -0
  1172. package/vendor/upstream/0.15.32/pstack/skills/why/references/sources/incident-postmortem.md +5 -0
  1173. package/vendor/upstream/0.15.32/pstack/skills/why/references/sources/linear.md +48 -0
  1174. package/vendor/upstream/0.15.32/pstack/skills/why/references/sources/notion.md +55 -0
  1175. package/vendor/upstream/0.15.32/pstack/skills/why/references/sources/sentry.md +66 -0
  1176. package/vendor/upstream/0.15.32/pstack/skills/why/references/sources/slack.md +17 -0
  1177. package/vendor/upstream/0.15.32/pstack/skills/why/references/synthesizer-prompt.md +129 -0
  1178. package/vendor/upstream/0.15.36/pstack/.cursor-plugin/plugin.json +31 -0
  1179. package/vendor/upstream/0.15.36/pstack/LICENSE +21 -0
  1180. package/vendor/upstream/0.15.36/pstack/skills/architect/SKILL.md +79 -0
  1181. package/vendor/upstream/0.15.36/pstack/skills/architect/references/design-red-flags.md +57 -0
  1182. package/vendor/upstream/0.15.36/pstack/skills/architect/references/rationale-template.md +35 -0
  1183. package/vendor/upstream/0.15.36/pstack/skills/architect/references/runner-prompt.md +20 -0
  1184. package/vendor/upstream/0.15.36/pstack/skills/arena/SKILL.md +48 -0
  1185. package/vendor/upstream/0.15.36/pstack/skills/automate-me/SKILL.md +104 -0
  1186. package/vendor/upstream/0.15.36/pstack/skills/benchmark-checklist/SKILL.md +39 -0
  1187. package/vendor/upstream/0.15.36/pstack/skills/blast-radius/SKILL.md +50 -0
  1188. package/vendor/upstream/0.15.36/pstack/skills/bro/SKILL.md +7 -0
  1189. package/vendor/upstream/0.15.36/pstack/skills/correct/SKILL.md +32 -0
  1190. package/vendor/upstream/0.15.36/pstack/skills/create-formal-verification-skill/SKILL.md +43 -0
  1191. package/vendor/upstream/0.15.36/pstack/skills/create-verification-skill/SKILL.md +44 -0
  1192. package/vendor/upstream/0.15.36/pstack/skills/create-verification-skill/references/feature-map-example/README.md +47 -0
  1193. package/vendor/upstream/0.15.36/pstack/skills/create-verification-skill/references/feature-map-example/create-note.md +39 -0
  1194. package/vendor/upstream/0.15.36/pstack/skills/create-verification-skill/references/feature-map-example/search.md +45 -0
  1195. package/vendor/upstream/0.15.36/pstack/skills/figure-it-out/SKILL.md +52 -0
  1196. package/vendor/upstream/0.15.36/pstack/skills/how/SKILL.md +36 -0
  1197. package/vendor/upstream/0.15.36/pstack/skills/how/references/explainer-prompt.md +55 -0
  1198. package/vendor/upstream/0.15.36/pstack/skills/how/references/explorer-prompt.md +35 -0
  1199. package/vendor/upstream/0.15.36/pstack/skills/in-your-own-words/SKILL.md +7 -0
  1200. package/vendor/upstream/0.15.36/pstack/skills/interrogate/SKILL.md +31 -0
  1201. package/vendor/upstream/0.15.36/pstack/skills/ketchup/SKILL.md +43 -0
  1202. package/vendor/upstream/0.15.36/pstack/skills/ketchup-video/SKILL.md +29 -0
  1203. package/vendor/upstream/0.15.36/pstack/skills/maintain-formal-verification-skill/SKILL.md +58 -0
  1204. package/vendor/upstream/0.15.36/pstack/skills/maintain-verification-skill/SKILL.md +39 -0
  1205. package/vendor/upstream/0.15.36/pstack/skills/make-bot-ui/SKILL.md +115 -0
  1206. package/vendor/upstream/0.15.36/pstack/skills/no-comments/SKILL.md +24 -0
  1207. package/vendor/upstream/0.15.36/pstack/skills/poteto-help/SKILL.md +163 -0
  1208. package/vendor/upstream/0.15.36/pstack/skills/poteto-help/references/prompting.md +51 -0
  1209. package/vendor/upstream/0.15.36/pstack/skills/poteto-help/references/recipes.md +51 -0
  1210. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/SKILL.md +150 -0
  1211. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/authoring-a-skill.md +12 -0
  1212. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/autonomous-run.md +13 -0
  1213. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/autopilot-full.md +25 -0
  1214. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/autopilot-stack.md +8 -0
  1215. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/babysit.md +23 -0
  1216. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/bug-fix.md +15 -0
  1217. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/eval.md +25 -0
  1218. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/feature.md +21 -0
  1219. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/hillclimb.md +21 -0
  1220. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/investigation.md +14 -0
  1221. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/multi-phase-plan.md +155 -0
  1222. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/opening-a-pr.md +34 -0
  1223. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/orchestrate.md +25 -0
  1224. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/pause-safely.md +10 -0
  1225. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/perf-issue.md +25 -0
  1226. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/prototype.md +14 -0
  1227. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/refactoring.md +16 -0
  1228. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/runtime-forensics.md +11 -0
  1229. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/session-pickup.md +11 -0
  1230. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/shipping.md +12 -0
  1231. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/trace-forensics.md +14 -0
  1232. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/visual-parity.md +11 -0
  1233. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/playbooks/worktree-cleanup.md +12 -0
  1234. package/vendor/upstream/0.15.36/pstack/skills/poteto-mode/references/bugbot-triage.md +142 -0
  1235. package/vendor/upstream/0.15.36/pstack/skills/principle-attack-the-premise/SKILL.md +21 -0
  1236. package/vendor/upstream/0.15.36/pstack/skills/principle-boundary-discipline/SKILL.md +34 -0
  1237. package/vendor/upstream/0.15.36/pstack/skills/principle-build-the-lever/SKILL.md +23 -0
  1238. package/vendor/upstream/0.15.36/pstack/skills/principle-encode-lessons-in-structure/SKILL.md +11 -0
  1239. package/vendor/upstream/0.15.36/pstack/skills/principle-exhaust-the-design-space/SKILL.md +9 -0
  1240. package/vendor/upstream/0.15.36/pstack/skills/principle-experience-first/SKILL.md +19 -0
  1241. package/vendor/upstream/0.15.36/pstack/skills/principle-explain-the-number/SKILL.md +18 -0
  1242. package/vendor/upstream/0.15.36/pstack/skills/principle-fix-root-causes/SKILL.md +21 -0
  1243. package/vendor/upstream/0.15.36/pstack/skills/principle-foundational-thinking/SKILL.md +21 -0
  1244. package/vendor/upstream/0.15.36/pstack/skills/principle-guard-the-context-window/SKILL.md +12 -0
  1245. package/vendor/upstream/0.15.36/pstack/skills/principle-laziness-protocol/SKILL.md +10 -0
  1246. package/vendor/upstream/0.15.36/pstack/skills/principle-make-operations-idempotent/SKILL.md +22 -0
  1247. package/vendor/upstream/0.15.36/pstack/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +14 -0
  1248. package/vendor/upstream/0.15.36/pstack/skills/principle-minimize-reader-load/SKILL.md +18 -0
  1249. package/vendor/upstream/0.15.36/pstack/skills/principle-model-the-domain/SKILL.md +24 -0
  1250. package/vendor/upstream/0.15.36/pstack/skills/principle-never-block-on-the-human/SKILL.md +15 -0
  1251. package/vendor/upstream/0.15.36/pstack/skills/principle-outcome-oriented-execution/SKILL.md +21 -0
  1252. package/vendor/upstream/0.15.36/pstack/skills/principle-prove-it-works/SKILL.md +22 -0
  1253. package/vendor/upstream/0.15.36/pstack/skills/principle-redesign-from-first-principles/SKILL.md +16 -0
  1254. package/vendor/upstream/0.15.36/pstack/skills/principle-separate-before-serializing-shared-state/SKILL.md +16 -0
  1255. package/vendor/upstream/0.15.36/pstack/skills/principle-sequence-verifiable-units/SKILL.md +17 -0
  1256. package/vendor/upstream/0.15.36/pstack/skills/principle-subtract-before-you-add/SKILL.md +18 -0
  1257. package/vendor/upstream/0.15.36/pstack/skills/principle-test-behavior-not-implementation/SKILL.md +20 -0
  1258. package/vendor/upstream/0.15.36/pstack/skills/principle-type-system-discipline/SKILL.md +13 -0
  1259. package/vendor/upstream/0.15.36/pstack/skills/recall/SKILL.md +35 -0
  1260. package/vendor/upstream/0.15.36/pstack/skills/reflect/SKILL.md +69 -0
  1261. package/vendor/upstream/0.15.36/pstack/skills/reflect/references/divergent-reviewer.md +38 -0
  1262. package/vendor/upstream/0.15.36/pstack/skills/reflect/references/judgment-reviewer.md +37 -0
  1263. package/vendor/upstream/0.15.36/pstack/skills/reflect/references/synthesizer.md +56 -0
  1264. package/vendor/upstream/0.15.36/pstack/skills/reflect/references/tooling-reviewer.md +48 -0
  1265. package/vendor/upstream/0.15.36/pstack/skills/setup-pstack/SKILL.md +78 -0
  1266. package/vendor/upstream/0.15.36/pstack/skills/sharpen/SKILL.md +16 -0
  1267. package/vendor/upstream/0.15.36/pstack/skills/show-me-your-work/SKILL.md +82 -0
  1268. package/vendor/upstream/0.15.36/pstack/skills/statechart/SKILL.md +82 -0
  1269. package/vendor/upstream/0.15.36/pstack/skills/statechart/references/render.md +93 -0
  1270. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/backends/cfg.ts +33 -0
  1271. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/backends/mermaid.ts +201 -0
  1272. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/backends/plain-text.ts +72 -0
  1273. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/backends/report.ts +177 -0
  1274. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/frontends/config.ts +276 -0
  1275. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/frontends/dot.ts +74 -0
  1276. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/frontends/marks.ts +93 -0
  1277. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/frontends/messages.ts +52 -0
  1278. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/frontends/spec.ts +114 -0
  1279. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/frontends/trace.ts +24 -0
  1280. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/frontends/value.ts +166 -0
  1281. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/frontends/verdict.ts +40 -0
  1282. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/frontends/view.ts +119 -0
  1283. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/ir.ts +547 -0
  1284. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/package.json +11 -0
  1285. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/passes/annotate.ts +128 -0
  1286. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/passes/label.ts +269 -0
  1287. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/passes/lift.ts +85 -0
  1288. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/passes/loop-check.ts +68 -0
  1289. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/passes/paths.ts +60 -0
  1290. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/passes/reach.ts +135 -0
  1291. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/passes/region-check.ts +97 -0
  1292. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/passes/regions.ts +295 -0
  1293. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/pipeline.ts +76 -0
  1294. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/run.ts +481 -0
  1295. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/statechart +29 -0
  1296. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/statechart.ts +164 -0
  1297. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/tsconfig.json +11 -0
  1298. package/vendor/upstream/0.15.36/pstack/skills/statechart/scripts/worker.ts +35 -0
  1299. package/vendor/upstream/0.15.36/pstack/skills/swarm/SKILL.md +41 -0
  1300. package/vendor/upstream/0.15.36/pstack/skills/tdd/SKILL.md +42 -0
  1301. package/vendor/upstream/0.15.36/pstack/skills/teach/SKILL.md +21 -0
  1302. package/vendor/upstream/0.15.36/pstack/skills/technical-writing/SKILL.md +106 -0
  1303. package/vendor/upstream/0.15.36/pstack/skills/typescript-best-practices/SKILL.md +31 -0
  1304. package/vendor/upstream/0.15.36/pstack/skills/typescript-best-practices/references/patterns.md +328 -0
  1305. package/vendor/upstream/0.15.36/pstack/skills/unslop/SKILL.md +62 -0
  1306. package/vendor/upstream/0.15.36/pstack/skills/why/SKILL.md +98 -0
  1307. package/vendor/upstream/0.15.36/pstack/skills/why/references/epistemics.md +71 -0
  1308. package/vendor/upstream/0.15.36/pstack/skills/why/references/investigator-prompt.md +84 -0
  1309. package/vendor/upstream/0.15.36/pstack/skills/why/references/source-playbook.md +17 -0
  1310. package/vendor/upstream/0.15.36/pstack/skills/why/references/sources/code-archaeology.md +51 -0
  1311. package/vendor/upstream/0.15.36/pstack/skills/why/references/sources/databricks.md +70 -0
  1312. package/vendor/upstream/0.15.36/pstack/skills/why/references/sources/datadog.md +97 -0
  1313. package/vendor/upstream/0.15.36/pstack/skills/why/references/sources/incident-postmortem.md +5 -0
  1314. package/vendor/upstream/0.15.36/pstack/skills/why/references/sources/linear.md +48 -0
  1315. package/vendor/upstream/0.15.36/pstack/skills/why/references/sources/notion.md +55 -0
  1316. package/vendor/upstream/0.15.36/pstack/skills/why/references/sources/sentry.md +66 -0
  1317. package/vendor/upstream/0.15.36/pstack/skills/why/references/sources/slack.md +17 -0
  1318. package/vendor/upstream/0.15.36/pstack/skills/why/references/synthesizer-prompt.md +129 -0
package/PRD.md ADDED
@@ -0,0 +1,2131 @@
1
+ # pi-pstack-native PRD
2
+
3
+ > Package name: `2333`
4
+ > Project name: `pi-pstack-native`
5
+ > Target release: `0.3.0`
6
+ > Document type: Product Requirements Document / Engineering Specification
7
+ > Status: Draft for implementation
8
+ > Baseline date: 2026-10-10
9
+
10
+ ---
11
+
12
+ ## 1. Executive summary
13
+
14
+ `pi-pstack-native` is a Pi-native implementation of the pstack workflow model.
15
+
16
+ The project does **not** attempt to emulate Cursor internals or mechanically translate every Cursor API call. Instead, it preserves the **behavioral semantics** of pstack while rebuilding the execution runtime directly on top of official Pi packages.
17
+
18
+ The target architecture removes all non-official runtime dependencies.
19
+
20
+ The only allowed runtime dependencies are packages from the official Pi namespace, primarily:
21
+
22
+ - `@earendil-works/pi-coding-agent`
23
+ - `@earendil-works/pi-durable`
24
+ - `@earendil-works/pi-ai` when direct model/runtime access is required
25
+ - `@earendil-works/pi-tui` when custom TUI surfaces are required
26
+
27
+ The following existing dependencies are removed from the runtime:
28
+
29
+ - `@whamp/pi-pstack`
30
+ - `pi-subagents`
31
+ - `pi-durable-subagents`
32
+ - `pi-agents`
33
+ - any third-party workflow, orchestration, graph, scheduler, or worktree runtime
34
+
35
+ The project still treats the official Cursor pstack implementation as an **upstream product specification and content source**, subject to its license and attribution requirements.
36
+
37
+ The goal is:
38
+
39
+ > Reproduce the useful semantics of pstack using native Pi primitives, with stronger durability, explicit runtime state, reproducible upstream synchronization, and no third-party runtime dependency chain.
40
+
41
+ ---
42
+
43
+ # 2. Product vision
44
+
45
+ ## 2.1 Problem
46
+
47
+ pstack is designed around Cursor-specific features such as:
48
+
49
+ - Cursor Task/subagent execution
50
+ - model rule files
51
+ - Custom Modes
52
+ - Cursor session/transcript conventions
53
+ - cloud agents
54
+ - `/loop`
55
+ - Cursor-specific automation facilities
56
+ - Cursor-specific slash command behavior
57
+
58
+ Directly copying pstack into Pi therefore creates several problems:
59
+
60
+ 1. Some instructions point at APIs Pi does not expose.
61
+ 2. Some workflows silently degrade.
62
+ 3. Third-party ports introduce additional abstractions and version drift.
63
+ 4. Package version numbers do not clearly communicate upstream pstack compatibility.
64
+ 5. Long-running workflows need explicit crash recovery and durable state.
65
+ 6. Parallel agents require isolation and dependency-aware scheduling.
66
+ 7. Upstream synchronization becomes manual and difficult to audit.
67
+
68
+ `pi-pstack-native` solves these by separating:
69
+
70
+ - **pstack semantics**
71
+ - **Pi-native execution**
72
+ - **upstream content synchronization**
73
+
74
+ ---
75
+
76
+ ## 2.2 Product statement
77
+
78
+ `pi-pstack-native` is:
79
+
80
+ > A durable, Pi-native execution environment for pstack workflows, implemented directly on official Pi APIs.
81
+
82
+ It should feel like pstack to the operator:
83
+
84
+ - `/poteto-mode`
85
+ - playbook routing
86
+ - engineering principles
87
+ - parallel workers
88
+ - review panels
89
+ - orchestrated execution
90
+ - durable unattended work
91
+ - model-role routing
92
+ - verification-first behavior
93
+
94
+ But internally it should behave like a native Pi system.
95
+
96
+ ---
97
+
98
+ # 3. Goals
99
+
100
+ ## 3.1 Primary goals
101
+
102
+ ### G1. Semantic pstack parity
103
+
104
+ Implement the behavior of upstream pstack workflows as faithfully as practical.
105
+
106
+ Parity is defined by behavior, not implementation details.
107
+
108
+ Example:
109
+
110
+ ```text
111
+ Cursor Task(...)
112
+ ```
113
+
114
+ does not need to exist in Pi.
115
+
116
+ The required semantic behavior is:
117
+
118
+ ```text
119
+ spawn one isolated worker using the selected role/model,
120
+ track it,
121
+ collect the result,
122
+ and use that result in the parent workflow.
123
+ ```
124
+
125
+ ### G2. Official-Pi-only runtime
126
+
127
+ No third-party runtime dependency may be required to:
128
+
129
+ - spawn agents
130
+ - run graphs
131
+ - persist workflow state
132
+ - manage worktrees
133
+ - route models
134
+ - schedule loops
135
+ - resume interrupted work
136
+ - manage child-agent communication
137
+
138
+ ### G3. Durable execution
139
+
140
+ A workflow must survive:
141
+
142
+ - Pi restart
143
+ - terminal closure
144
+ - process crash
145
+ - temporary provider errors
146
+ - parent session suspension
147
+ - machine restart, when the underlying persisted state remains available
148
+
149
+ Completed work must not be repeated unless explicitly requested.
150
+
151
+ ### G4. Explicit workflow state
152
+
153
+ Every non-trivial pstack workflow should have inspectable state.
154
+
155
+ The system must know:
156
+
157
+ - what workflow is running
158
+ - what calls exist
159
+ - which calls are pending/running/completed/failed
160
+ - which results are dependencies
161
+ - which agent session owns each call
162
+ - which worktree belongs to each call
163
+ - which model was selected
164
+ - what remains to be done
165
+
166
+ ### G5. Reproducible upstream synchronization
167
+
168
+ Every upstream pstack file must be classified as one of:
169
+
170
+ - `IDENTICAL`
171
+ - `ADAPTED`
172
+ - `PI_ONLY`
173
+ - `CURSOR_ONLY`
174
+ - `UNSUPPORTED`
175
+ - `PENDING_PORT`
176
+
177
+ The package must never claim full parity while files remain `PENDING_PORT`.
178
+
179
+ ### G6. Maintainability
180
+
181
+ A future upstream pstack release should be synchronizable through a repeatable process:
182
+
183
+ ```text
184
+ fetch upstream
185
+ → diff against pinned upstream
186
+ → classify changed files
187
+ → apply safe transforms
188
+ → surface semantic conflicts
189
+ → run parity tests
190
+ → update pin
191
+ ```
192
+
193
+ ---
194
+
195
+ # 4. Non-goals
196
+
197
+ ## NG1. Exact Cursor internal behavior
198
+
199
+ The project will not reproduce Cursor implementation details when a Pi-native equivalent exists.
200
+
201
+ ## NG2. Operating-system-level background daemon
202
+
203
+ `0.3.0` will not install a permanent OS daemon or launch agent.
204
+
205
+ A scheduled workflow runs while Pi is active.
206
+
207
+ If Pi is closed, the schedule is persisted and can be resumed when the relevant session/runtime starts again.
208
+
209
+ An OS-level scheduler may be considered later as an optional integration.
210
+
211
+ ## NG3. Perfect byte-for-byte pstack source parity
212
+
213
+ pstack content can be adapted when Cursor-specific instructions would be incorrect on Pi.
214
+
215
+ ## NG4. Reimplementing official Pi primitives
216
+
217
+ The project should not recreate model provider clients, conversation persistence primitives, core session machinery, or durable storage engines when official Pi packages already provide them.
218
+
219
+ ---
220
+
221
+ # 5. Target users
222
+
223
+ ## 5.1 Primary user
224
+
225
+ A developer using Pi as their main coding-agent environment who wants:
226
+
227
+ - pstack-style rigor
228
+ - long-running autonomous work
229
+ - parallel agents
230
+ - review workflows
231
+ - crash recovery
232
+ - controllable model routing
233
+
234
+ without depending on several independent third-party extensions.
235
+
236
+ ## 5.2 Secondary user
237
+
238
+ A pstack user moving from Cursor to Pi who wants familiar semantics.
239
+
240
+ ## 5.3 Maintainer
241
+
242
+ A package maintainer who needs to keep Pi behavior aligned with new upstream pstack releases.
243
+
244
+ ---
245
+
246
+ # 6. Product principles
247
+
248
+ ## P1. Semantics over syntax
249
+
250
+ Port the intended behavior, not Cursor syntax.
251
+
252
+ ## P2. State must be inspectable
253
+
254
+ Anything durable must expose enough state to understand why it is running, blocked, failed, or complete.
255
+
256
+ ## P3. No silent degradation
257
+
258
+ If a Cursor feature has no Pi-native equivalent, the port must either implement an explicit substitute, mark the capability unsupported, or stop with a clear error. It must not silently ignore the behavior.
259
+
260
+ ## P4. Exactly-once intent, at-least-once reality
261
+
262
+ Workflow orchestration should avoid repeating completed logical steps. External side effects cannot always be exactly-once. Therefore every tool/action that can produce an external side effect must support idempotency where possible, precondition checks, durable receipts, and human confirmation when required.
263
+
264
+ ## P5. Safe parallelism
265
+
266
+ Parallel execution must isolate writers by default.
267
+
268
+ ## P6. User control beats autonomy
269
+
270
+ Durability and scheduling must never make a workflow impossible to stop.
271
+
272
+ ---
273
+
274
+ # 7. Dependency policy
275
+
276
+ ## 7.1 Allowed runtime dependencies
277
+
278
+ Required:
279
+
280
+ ```json
281
+ {
282
+ "@earendil-works/pi-coding-agent": "^1.1.0",
283
+ "@earendil-works/pi-durable": "^1.1.0"
284
+ }
285
+ ```
286
+
287
+ Optional if implementation requires them directly:
288
+
289
+ ```json
290
+ {
291
+ "@earendil-works/pi-ai": "^1.1.0",
292
+ "@earendil-works/pi-tui": "^1.1.0"
293
+ }
294
+ ```
295
+
296
+ Node built-ins are allowed.
297
+
298
+ ## 7.2 Forbidden runtime dependencies
299
+
300
+ The runtime must not depend on:
301
+
302
+ ```text
303
+ @whamp/pi-pstack
304
+ pi-subagents
305
+ pi-durable-subagents
306
+ pi-agents
307
+ external DAG frameworks
308
+ external scheduler frameworks
309
+ external worktree managers
310
+ ```
311
+
312
+ Development-only utilities may be considered separately, but core behavior must remain self-contained.
313
+
314
+ ---
315
+
316
+ # 8. High-level architecture
317
+
318
+ ```text
319
+ ┌──────────────────────────┐
320
+ │ pstack upstream │
321
+ │ cursor/plugins/pstack │
322
+ └─────────────┬────────────┘
323
+ │
324
+ ▼
325
+ ┌──────────────────────────┐
326
+ │ Upstream Sync Compiler │
327
+ │ classify / adapt / verify │
328
+ └─────────────┬────────────┘
329
+ │
330
+ ▼
331
+ ┌─────────────────────────────────────────────────────────────────┐
332
+ │ pi-pstack-native │
333
+ │ │
334
+ │ ┌──────────────────┐ ┌────────────────────────────────┐ │
335
+ │ │ pstack content │ │ Native Runtime │ │
336
+ │ │ skills/playbooks │ │ │ │
337
+ │ │ principles │ │ AgentHost │ │
338
+ │ │ agents │ │ WorkflowEngine │ │
339
+ │ └────────┬─────────┘ │ GraphScheduler │ │
340
+ │ │ │ WorktreeManager │ │
341
+ │ │ │ ModelRouter │ │
342
+ │ │ │ DurableStore │ │
343
+ │ │ │ LoopScheduler │ │
344
+ │ │ │ Mailbox/EventBus │ │
345
+ │ │ └───────────────┬────────────────┘ │
346
+ │ └──────────────────────────────────┘ │
347
+ └──────────────────────────────────────────────┬───────────────────┘
348
+ │
349
+ ▼
350
+ ┌────────────────────────────┐
351
+ │ Official Pi packages │
352
+ │ │
353
+ │ pi-coding-agent │
354
+ │ pi-durable │
355
+ │ pi-ai │
356
+ │ pi-tui │
357
+ └────────────────────────────┘
358
+ ```
359
+
360
+ ---
361
+
362
+ # 9. Runtime modules
363
+
364
+ ## 9.1 AgentHost
365
+
366
+ `AgentHost` owns child agent lifecycle.
367
+
368
+ Responsibilities:
369
+
370
+ - create agent sessions
371
+ - assign role/profile
372
+ - assign model
373
+ - assign tools
374
+ - assign cwd/worktree
375
+ - persist agent identity
376
+ - resume existing agent session
377
+ - stop/cancel agent
378
+ - collect final result
379
+ - stream state changes into workflow state
380
+
381
+ Conceptual interface:
382
+
383
+ ```ts
384
+ interface AgentHost {
385
+ spawn(spec: AgentSpawnSpec): Promise<AgentHandle>;
386
+ resume(agentId: string): Promise<AgentHandle>;
387
+ send(agentId: string, message: string): Promise<void>;
388
+ stop(agentId: string, reason?: string): Promise<void>;
389
+ status(agentId: string): Promise<AgentStatus>;
390
+ }
391
+ ```
392
+
393
+ ## 9.2 Agent profiles
394
+
395
+ Built-in initial profiles:
396
+
397
+ ```text
398
+ worker
399
+ reviewer
400
+ scout
401
+ architect
402
+ verifier
403
+ integrator
404
+ synthesizer
405
+ poteto-agent
406
+ comment-sicko
407
+ ```
408
+
409
+ Profile definition:
410
+
411
+ ```ts
412
+ interface AgentProfile {
413
+ name: string;
414
+ description: string;
415
+ tools: string[];
416
+ writable: boolean;
417
+ defaultIsolation: "shared" | "worktree" | "readonly";
418
+ defaultRole: string;
419
+ systemPrompt?: string;
420
+ }
421
+ ```
422
+
423
+ ## 9.3 ModelRouter
424
+
425
+ Model routing replaces Cursor pstack model rules.
426
+
427
+ Config location:
428
+
429
+ ```text
430
+ ~/.pi/agent/pstack-native/models.json
431
+ ```
432
+
433
+ Example:
434
+
435
+ ```json
436
+ {
437
+ "version": 1,
438
+ "thinkingLevel": "inherit-parent",
439
+ "roles": {
440
+ "worker": "inherit-parent",
441
+ "reviewer": "inherit-parent",
442
+ "architect": "inherit-parent",
443
+ "verifier": "inherit-parent"
444
+ }
445
+ }
446
+ ```
447
+
448
+ Supported selectors:
449
+
450
+ ```text
451
+ inherit-parent
452
+ auto
453
+ provider/model selector
454
+ ```
455
+
456
+ Requirements:
457
+
458
+ - validate configured models against Pi's available model registry
459
+ - preserve parent model when `inherit-parent`
460
+ - provide fallback behavior only when explicitly defined
461
+ - record actual selected model in workflow state
462
+
463
+ Commands:
464
+
465
+ ```text
466
+ /setup-pstack
467
+ /pstack-models
468
+ ```
469
+
470
+ ---
471
+
472
+ # 10. Durable state model
473
+
474
+ ## 10.1 Storage
475
+
476
+ Default runtime state root:
477
+
478
+ ```text
479
+ ~/.pi/agent/pstack-native/
480
+ ```
481
+
482
+ Suggested layout:
483
+
484
+ ```text
485
+ ~/.pi/agent/pstack-native/
486
+ ├── config.json
487
+ ├── models.json
488
+ ├── workflows/
489
+ │ ├── wf_<id>.json
490
+ │ └── ...
491
+ ├── agents/
492
+ │ ├── ag_<id>.json
493
+ │ └── ...
494
+ ├── journals/
495
+ │ ├── wf_<id>.jsonl
496
+ │ └── ...
497
+ ├── loops/
498
+ │ └── loops.json
499
+ ├── locks/
500
+ ├── receipts/
501
+ └── runtime/
502
+ ```
503
+
504
+ Where practical, persistence should use official `pi-durable` storage primitives rather than bespoke storage code.
505
+
506
+ ## 10.2 Workflow entity
507
+
508
+ ```ts
509
+ interface WorkflowRecord {
510
+ id: string;
511
+ name?: string;
512
+
513
+ type:
514
+ | "single"
515
+ | "parallel"
516
+ | "chain"
517
+ | "graph"
518
+ | "swarm"
519
+ | "arena"
520
+ | "orchestrate"
521
+ | "review"
522
+ | "loop";
523
+
524
+ state:
525
+ | "created"
526
+ | "running"
527
+ | "blocked"
528
+ | "paused"
529
+ | "completed"
530
+ | "failed"
531
+ | "cancelled";
532
+
533
+ createdAt: string;
534
+ updatedAt: string;
535
+ parentSessionId?: string;
536
+ calls: Record<string, WorkflowCall>;
537
+ edges: WorkflowEdge[];
538
+ result?: unknown;
539
+ error?: DurableError;
540
+
541
+ upstreamContext?: {
542
+ pstackVersion: string;
543
+ playbook?: string;
544
+ skill?: string;
545
+ };
546
+ }
547
+ ```
548
+
549
+ ## 10.3 Workflow call
550
+
551
+ ```ts
552
+ interface WorkflowCall {
553
+ key: string;
554
+ agentId?: string;
555
+ profile: string;
556
+ task: string;
557
+
558
+ state:
559
+ | "pending"
560
+ | "ready"
561
+ | "running"
562
+ | "waiting"
563
+ | "completed"
564
+ | "failed"
565
+ | "cancelled"
566
+ | "skipped";
567
+
568
+ attempt: number;
569
+ dependsOn: string[];
570
+ model?: string;
571
+ cwd?: string;
572
+ worktree?: string;
573
+ startedAt?: string;
574
+ finishedAt?: string;
575
+ result?: unknown;
576
+ error?: DurableError;
577
+ }
578
+ ```
579
+
580
+ ---
581
+
582
+ # 11. WorkflowEngine
583
+
584
+ `WorkflowEngine` executes workflow graphs.
585
+
586
+ Core operations:
587
+
588
+ ```ts
589
+ workflow.run();
590
+ workflow.pause();
591
+ workflow.resume();
592
+ workflow.cancel();
593
+ workflow.status();
594
+ workflow.retry();
595
+ ```
596
+
597
+ ## 11.1 Supported graph patterns
598
+
599
+ ### Single
600
+
601
+ ```text
602
+ A
603
+ ```
604
+
605
+ ### Parallel fan-out
606
+
607
+ ```text
608
+ A
609
+ B
610
+ C
611
+ ```
612
+
613
+ ### Chain
614
+
615
+ ```text
616
+ A → B → C
617
+ ```
618
+
619
+ ### Fan-out / merge
620
+
621
+ ```text
622
+ A ─┐
623
+ B ─┼→ D
624
+ C ─┘
625
+ ```
626
+
627
+ ### Diamond
628
+
629
+ ```text
630
+ B
631
+ ↗ ↘
632
+ A D
633
+ ↘ ↗
634
+ C
635
+ ```
636
+
637
+ ### Worker/verifier pair
638
+
639
+ ```text
640
+ worker → verifier
641
+ ```
642
+
643
+ ### Refillable worker pool
644
+
645
+ ```text
646
+ queue
647
+ │
648
+ ├→ W1 → V1
649
+ ├→ W2 → V2
650
+ ├→ W3 → V3
651
+ └→ next job as capacity becomes available
652
+ ```
653
+
654
+ ## 11.2 Graph rules
655
+
656
+ The graph engine must:
657
+
658
+ - reject cycles
659
+ - reject duplicate call keys
660
+ - start a call only when all dependencies succeed
661
+ - support dependency failure policies
662
+ - persist transition before irreversible work when possible
663
+ - restore the graph after process restart
664
+ - not rerun completed nodes automatically
665
+ - expose deterministic status
666
+
667
+ ---
668
+
669
+ # 12. Agent lifecycle
670
+
671
+ ## 12.1 Spawn
672
+
673
+ ```text
674
+ resolve profile
675
+ → resolve model
676
+ → resolve isolation
677
+ → create workspace
678
+ → create durable agent record
679
+ → create AgentSession
680
+ → execute
681
+ → checkpoint progress
682
+ → finalize result
683
+ ```
684
+
685
+ ## 12.2 Resume
686
+
687
+ When recovering:
688
+
689
+ ```text
690
+ load agent record
691
+ → locate persisted session
692
+ → inspect workflow state
693
+ → resume only unfinished call
694
+ ```
695
+
696
+ ## 12.3 Cancellation
697
+
698
+ Cancellation must:
699
+
700
+ 1. mark the workflow/call as cancellation-requested
701
+ 2. attempt to stop the active session
702
+ 3. record final cancellation state
703
+ 4. preserve worktree unless cleanup policy says otherwise
704
+
705
+ ---
706
+
707
+ # 13. WorktreeManager
708
+
709
+ ## 13.1 Purpose
710
+
711
+ Independent parallel write-capable agents must not modify the same checkout by default. A single writer may use the target checkout; writable chains continue in one lane; multi-writer convergence requires an explicit integrator.
712
+
713
+ ## 13.2 Modes
714
+
715
+ ```text
716
+ shared
717
+ readonly
718
+ worktree
719
+ ```
720
+
721
+ Default policies:
722
+
723
+ | Profile | Default |
724
+ |---|---|
725
+ | worker | shared for a single lane; workflow isolates independent parallel roots |
726
+ | architect | shared for a single lane; workflow isolates independent parallel roots |
727
+ | verifier | readonly on the directly dependent artifact |
728
+ | reviewer | readonly on the directly dependent artifact |
729
+ | scout | readonly |
730
+ | integrator | shared target checkout; explicit multi-writer convergence owner |
731
+ | synthesizer | readonly |
732
+ | comment-sicko | readonly |
733
+
734
+ ## 13.3 Worktree record
735
+
736
+ ```ts
737
+ interface WorktreeRecord {
738
+ id: string;
739
+ path: string;
740
+ branch: string;
741
+ baseRef: string;
742
+ ownerAgentId: string;
743
+ createdAt: string;
744
+ }
745
+ ```
746
+
747
+ ## 13.4 Safety requirements
748
+
749
+ The runtime must not:
750
+
751
+ - delete a worktree with uncommitted user work without confirmation
752
+ - force-delete unknown worktrees
753
+ - overwrite an existing branch
754
+ - assume `main` is the default branch
755
+
756
+ ---
757
+
758
+ # 14. Mailbox and agent communication
759
+
760
+ Support:
761
+
762
+ ```text
763
+ parent → child steer
764
+ parent → child follow-up
765
+ child → parent question
766
+ child → parent result
767
+ parent → child stop
768
+ ```
769
+
770
+ Conceptual API:
771
+
772
+ ```ts
773
+ agent.send(agentId, message);
774
+ agent.answer(questionId, answer);
775
+ agent.stop(agentId);
776
+ ```
777
+
778
+ Messages must be durably recorded where they affect workflow behavior.
779
+
780
+ ---
781
+
782
+ # 15. Native tools exposed to the model
783
+
784
+ ## `pstack_agents`
785
+
786
+ Actions:
787
+
788
+ ```text
789
+ spawn
790
+ send
791
+ stop
792
+ status
793
+ list
794
+ ```
795
+
796
+ ## `pstack_workflow`
797
+
798
+ Actions:
799
+
800
+ ```text
801
+ run
802
+ status
803
+ pause
804
+ resume
805
+ cancel
806
+ retry
807
+ ```
808
+
809
+ ## `pstack_graph`
810
+
811
+ Convenience API for graph execution.
812
+
813
+ Supported specs:
814
+
815
+ ```text
816
+ parallel
817
+ chain
818
+ graph
819
+ worker-verifier
820
+ ```
821
+
822
+ Tool policy: the model should prefer pstack-native tools over shelling out to Pi subprocesses.
823
+
824
+ ---
825
+
826
+ # 16. Poteto Mode
827
+
828
+ ## 16.1 Command
829
+
830
+ ```text
831
+ /poteto-mode
832
+ /poteto-mode <task>
833
+ /poteto-mode off
834
+ ```
835
+
836
+ Behavior:
837
+
838
+ - sticky within the Pi session
839
+ - stored in session custom entries
840
+ - restored when resuming the same session
841
+ - injects only a lightweight system prompt
842
+ - loads full skills only when required
843
+
844
+ ## 16.2 Routing
845
+
846
+ Poteto Mode must:
847
+
848
+ 1. classify request
849
+ 2. choose a playbook
850
+ 3. materialize playbook steps
851
+ 4. mark skipped steps explicitly
852
+ 5. invoke other skills when required
853
+ 6. use native agent/workflow tools for delegation
854
+ 7. cite applicable principles in the final response when the upstream playbook requires it
855
+
856
+ ---
857
+
858
+ # 17. pstack playbook compatibility
859
+
860
+ Target categories:
861
+
862
+ - bug fix
863
+ - feature
864
+ - refactor
865
+ - performance
866
+ - hillclimb
867
+ - investigation
868
+ - architecture
869
+ - review
870
+ - opening a PR
871
+ - babysit
872
+ - shipping
873
+ - session pickup
874
+ - pause safely
875
+ - multi-phase plan
876
+ - autonomous run
877
+ - autopilot
878
+ - orchestrate
879
+ - eval
880
+ - skill authoring
881
+ - verification workflows
882
+
883
+ Each playbook receives a parity record.
884
+
885
+ Example:
886
+
887
+ ```yaml
888
+ name: orchestrate
889
+ status: ADAPTED
890
+ upstream_version: 0.15.15
891
+ runtime:
892
+ cursor: Task + cloud agents
893
+ pi: pstack_workflow + worktree isolation
894
+ tests:
895
+ - parallel workers refill on completion
896
+ - verifier depends on worker result
897
+ - completed unit never reruns after resume
898
+ ```
899
+
900
+ ---
901
+
902
+ # 18. Scheduler and `/pstack-loop`
903
+
904
+ ## 18.1 Commands
905
+
906
+ ```text
907
+ /pstack-loop 20m <task>
908
+ /pstack-loop 1h <task>
909
+ /pstack-loop 1d <task>
910
+
911
+ /pstack-loop list
912
+ /pstack-loop status <id>
913
+ /pstack-loop run <id>
914
+ /pstack-loop pause <id>
915
+ /pstack-loop resume <id>
916
+ /pstack-loop stop <id>
917
+ ```
918
+
919
+ ## 18.2 Semantics
920
+
921
+ While Pi is active:
922
+
923
+ ```text
924
+ timer
925
+ → trigger durable workflow
926
+ → record result
927
+ → calculate next run
928
+ ```
929
+
930
+ When Pi is closed:
931
+
932
+ - no claim is made that work continues
933
+ - next run time remains persisted
934
+
935
+ When Pi resumes:
936
+
937
+ - if one or more runs were missed, execute at most one catch-up run
938
+ - do not replay every missed interval
939
+ - compute next run from current time unless the schedule explicitly requires wall-clock anchoring
940
+
941
+ ## 18.3 Scheduler state
942
+
943
+ ```ts
944
+ interface LoopRecord {
945
+ id: string;
946
+ sessionId: string;
947
+ intervalMs: number;
948
+ task: string;
949
+ enabled: boolean;
950
+ runningWorkflowId?: string;
951
+ createdAt: string;
952
+ lastRunAt?: string;
953
+ nextRunAt: string;
954
+ missedPolicy: "run-once" | "skip";
955
+ }
956
+ ```
957
+
958
+ Default:
959
+
960
+ ```text
961
+ missedPolicy = run-once
962
+ ```
963
+
964
+ ---
965
+
966
+ # 19. `/setup-pstack`
967
+
968
+ The setup experience must be native to Pi.
969
+
970
+ It should configure:
971
+
972
+ - default execution budget
973
+ - worker model
974
+ - reviewer model
975
+ - architect model
976
+ - verifier model
977
+ - synthesizer model
978
+ - optional panel models
979
+ - default concurrency
980
+ - default isolation mode
981
+
982
+ Example output:
983
+
984
+ ```json
985
+ {
986
+ "version": 1,
987
+ "budget": "high",
988
+ "concurrency": 4,
989
+ "roles": {
990
+ "worker": "inherit-parent",
991
+ "reviewer": "inherit-parent",
992
+ "architect": "inherit-parent",
993
+ "verifier": "inherit-parent",
994
+ "synthesizer": "inherit-parent"
995
+ }
996
+ }
997
+ ```
998
+
999
+ ---
1000
+
1001
+ # 20. Runtime commands
1002
+
1003
+ Required commands:
1004
+
1005
+ ```text
1006
+ /poteto-mode
1007
+ /setup-pstack
1008
+ /pstack status
1009
+ /pstack on
1010
+ /pstack off
1011
+ /pstack-runtime
1012
+ /pstack-upstream
1013
+ /pstack-parity
1014
+ /pstack-agents
1015
+ /pstack-workflows
1016
+ /pstack-loop
1017
+ ```
1018
+
1019
+ ---
1020
+
1021
+ # 21. `/pstack-runtime`
1022
+
1023
+ Example:
1024
+
1025
+ ```text
1026
+ pi-pstack-native 0.3.0
1027
+
1028
+ Package
1029
+ npm name: 2333
1030
+ project: pi-pstack-native
1031
+
1032
+ Upstream
1033
+ pstack: 0.15.15
1034
+ commit: <sha>
1035
+
1036
+ Runtime
1037
+ Pi Coding Agent: 1.1.x
1038
+ Pi Durable: 1.1.x
1039
+
1040
+ Dependencies
1041
+ third-party runtime dependencies: none
1042
+
1043
+ Agent runtime
1044
+ native AgentSession
1045
+
1046
+ Workflow engine
1047
+ native durable DAG
1048
+
1049
+ Scheduler
1050
+ native session scheduler
1051
+
1052
+ Worktree isolation
1053
+ native git worktrees
1054
+ ```
1055
+
1056
+ ---
1057
+
1058
+ # 22. Upstream sync compiler
1059
+
1060
+ ## 22.1 Inputs
1061
+
1062
+ ```text
1063
+ cursor/plugins
1064
+ path: pstack/
1065
+ pinned commit: <sha>
1066
+ pinned version: <version>
1067
+ ```
1068
+
1069
+ ## 22.2 File classes
1070
+
1071
+ Every upstream file must map to exactly one class.
1072
+
1073
+ ### `IDENTICAL`
1074
+
1075
+ Copied byte-for-byte.
1076
+
1077
+ ### `ADAPTED`
1078
+
1079
+ Semantic content retained, runtime-specific parts translated.
1080
+
1081
+ ### `PI_ONLY`
1082
+
1083
+ Exists only in `pi-pstack-native`.
1084
+
1085
+ ### `CURSOR_ONLY`
1086
+
1087
+ Cannot or should not exist in Pi.
1088
+
1089
+ ### `UNSUPPORTED`
1090
+
1091
+ Known upstream capability with no implementation. Must include reason.
1092
+
1093
+ ### `PENDING_PORT`
1094
+
1095
+ Changed upstream content that has not yet been reviewed.
1096
+
1097
+ A release cannot claim full parity while this count is nonzero.
1098
+
1099
+ ## 22.3 Sync process
1100
+
1101
+ ```text
1102
+ fetch pinned upstream
1103
+ ↓
1104
+ fetch new upstream
1105
+ ↓
1106
+ calculate changed paths
1107
+ ↓
1108
+ classify each path
1109
+ ↓
1110
+ safe automatic transforms
1111
+ ↓
1112
+ semantic conflict detection
1113
+ ↓
1114
+ manual adaptation where required
1115
+ ↓
1116
+ run parity suite
1117
+ ↓
1118
+ update UPSTREAM.json
1119
+ ↓
1120
+ generate PARITY.md
1121
+ ```
1122
+
1123
+ ---
1124
+
1125
+ # 23. Upstream metadata
1126
+
1127
+ `UPSTREAM.json`:
1128
+
1129
+ ```json
1130
+ {
1131
+ "source": "cursor/plugins",
1132
+ "path": "pstack",
1133
+ "version": "0.15.15",
1134
+ "commit": "<sha>",
1135
+ "syncedAt": "2026-10-10T00:00:00Z"
1136
+ }
1137
+ ```
1138
+
1139
+ The npm package version is independent.
1140
+
1141
+ Example:
1142
+
1143
+ ```text
1144
+ 2333@0.3.0
1145
+ upstream pstack 0.15.15
1146
+ ```
1147
+
1148
+ ---
1149
+
1150
+ # 24. Parity manifest
1151
+
1152
+ `PARITY.json` should be machine-readable.
1153
+
1154
+ Example:
1155
+
1156
+ ```json
1157
+ {
1158
+ "upstream": "0.15.15",
1159
+ "skills": {
1160
+ "poteto-mode": "ADAPTED",
1161
+ "correct": "IDENTICAL",
1162
+ "poteto-help": "ADAPTED"
1163
+ },
1164
+ "playbooks": {
1165
+ "orchestrate": "ADAPTED"
1166
+ },
1167
+ "cursorOnly": [
1168
+ "make-bot-ui"
1169
+ ],
1170
+ "pending": []
1171
+ }
1172
+ ```
1173
+
1174
+ Generate human-readable `PARITY.md` from it.
1175
+
1176
+ ---
1177
+
1178
+ # 25. pstack semantic mapping
1179
+
1180
+ | Cursor pstack concept | Pi-native implementation |
1181
+ |---|---|
1182
+ | Task subagent | AgentHost + AgentSession |
1183
+ | parallel Tasks | WorkflowEngine parallel graph |
1184
+ | cloud agent | worktree-isolated AgentSession |
1185
+ | model role rule | ModelRouter config |
1186
+ | Custom Mode | sticky Poteto Mode |
1187
+ | agent transcript | Pi session + durable agent record |
1188
+ | Task result | durable WorkflowCall result |
1189
+ | fresh subagent | new AgentSession |
1190
+ | swarm | fan-out workflow |
1191
+ | arena | parallel candidates + judge |
1192
+ | interrogate | reviewer panel |
1193
+ | orchestrate | durable refillable graph |
1194
+ | autopilot | durable workflow state machine |
1195
+ | `/loop` | pstack native scheduler |
1196
+ | crash recovery | persistent Pi child sessions + pstack-native atomic workflow journal |
1197
+
1198
+ ---
1199
+
1200
+ # 26. Swarm
1201
+
1202
+ Required behavior:
1203
+
1204
+ ```text
1205
+ input slices
1206
+ → parallel workers
1207
+ → collect all results
1208
+ → synthesizer
1209
+ ```
1210
+
1211
+ Properties:
1212
+
1213
+ - bounded concurrency
1214
+ - isolated write workers
1215
+ - no duplicate slice execution after resume
1216
+ - failed slices visible individually
1217
+ - optional fail-fast or best-effort policy
1218
+
1219
+ ---
1220
+
1221
+ # 27. Arena
1222
+
1223
+ Required behavior:
1224
+
1225
+ ```text
1226
+ same brief
1227
+ → candidate A
1228
+ → candidate B
1229
+ → candidate C
1230
+ → judge
1231
+ → merged/final result
1232
+ ```
1233
+
1234
+ Judge must not share mutable write state with candidates.
1235
+
1236
+ ---
1237
+
1238
+ # 28. Interrogate / review panels
1239
+
1240
+ Panel execution:
1241
+
1242
+ ```text
1243
+ diff/spec
1244
+ ├→ reviewer model A
1245
+ ├→ reviewer model B
1246
+ └→ reviewer model C
1247
+ ↓
1248
+ synthesizer
1249
+ ```
1250
+
1251
+ Requirements:
1252
+
1253
+ - reviewer sessions read-only by default
1254
+ - preserve model identity with each finding
1255
+ - synthesizer must not erase disagreement
1256
+ - support one or multiple configured reviewers
1257
+
1258
+ ---
1259
+
1260
+ # 29. Orchestrate
1261
+
1262
+ This is the most important parity workflow.
1263
+
1264
+ ## 29.1 Required behavior
1265
+
1266
+ - break program into units
1267
+ - run up to configured concurrency
1268
+ - pair completed units with verification
1269
+ - refill capacity as calls finish
1270
+ - persist program state
1271
+ - survive restart
1272
+ - never rerun completed units without explicit reset
1273
+ - keep evidence associated with each unit
1274
+
1275
+ ## 29.2 State machine
1276
+
1277
+ ```text
1278
+ planned
1279
+ ↓
1280
+ worker-ready
1281
+ ↓
1282
+ worker-running
1283
+ ↓
1284
+ worker-complete
1285
+ ↓
1286
+ verifier-ready
1287
+ ↓
1288
+ verifier-running
1289
+ ↓
1290
+ verified / rejected
1291
+ ```
1292
+
1293
+ Rejected work can produce:
1294
+
1295
+ ```text
1296
+ retry
1297
+ rework
1298
+ blocked
1299
+ human-required
1300
+ ```
1301
+
1302
+ ---
1303
+
1304
+ # 30. Autopilot
1305
+
1306
+ Autopilot is implemented as a durable state machine, not a long prompt.
1307
+
1308
+ Example states:
1309
+
1310
+ ```text
1311
+ inspect
1312
+ plan
1313
+ execute
1314
+ verify
1315
+ review
1316
+ fix
1317
+ reverify
1318
+ prepare-pr
1319
+ wait-ci
1320
+ respond-review
1321
+ complete
1322
+ ```
1323
+
1324
+ Every transition must be persisted.
1325
+
1326
+ ---
1327
+
1328
+ # 31. External side effects
1329
+
1330
+ Durability cannot guarantee that an external action did not happen before a crash.
1331
+
1332
+ Examples:
1333
+
1334
+ - pushing git commits
1335
+ - posting PR comments
1336
+ - merging
1337
+ - creating an issue
1338
+ - calling a remote API
1339
+
1340
+ Therefore, before retrying an external side effect, the runtime must attempt to determine whether the effect already occurred.
1341
+
1342
+ Each effect should store a receipt:
1343
+
1344
+ ```ts
1345
+ interface EffectReceipt {
1346
+ id: string;
1347
+ kind: string;
1348
+ requestFingerprint: string;
1349
+ attemptedAt: string;
1350
+ confirmedAt?: string;
1351
+ externalId?: string;
1352
+ result?: unknown;
1353
+ }
1354
+ ```
1355
+
1356
+ ---
1357
+
1358
+ # 32. Safety
1359
+
1360
+ ## 32.1 Destructive operations
1361
+
1362
+ Require confirmation for:
1363
+
1364
+ - force push
1365
+ - deleting unmerged branches
1366
+ - deleting worktrees with unknown changes
1367
+ - merging when workflow does not already contain user approval
1368
+ - destructive filesystem operations outside owned workspaces
1369
+
1370
+ ## 32.2 Tool boundaries
1371
+
1372
+ Reviewer profiles should not have write tools.
1373
+
1374
+ ## 32.3 Workspace ownership
1375
+
1376
+ Every runtime-created directory must have an ownership marker.
1377
+
1378
+ Never clean up unknown directories.
1379
+
1380
+ ---
1381
+
1382
+ # 33. Observability
1383
+
1384
+ ## 33.1 `/pstack-workflows`
1385
+
1386
+ Example:
1387
+
1388
+ ```text
1389
+ wf_123 orchestrate running
1390
+
1391
+ worker-api completed
1392
+ worker-ui running
1393
+ worker-tests completed
1394
+ verify-api completed
1395
+ verify-tests ready
1396
+ merge-review blocked
1397
+
1398
+ 2 active / 6 total
1399
+ ```
1400
+
1401
+ ## 33.2 `/pstack-agents`
1402
+
1403
+ Example:
1404
+
1405
+ ```text
1406
+ ag_1 worker opus-xhigh completed
1407
+ ag_2 worker grok-fast running
1408
+ ag_3 reviewer opus-xhigh waiting
1409
+ ```
1410
+
1411
+ ## 33.3 TUI
1412
+
1413
+ Optional later stage:
1414
+
1415
+ - status footer
1416
+ - workflow panel
1417
+ - agent panel
1418
+
1419
+ `0.3.0` does not require a sophisticated TUI if commands provide full observability.
1420
+
1421
+ ---
1422
+
1423
+ # 34. Error model
1424
+
1425
+ All durable errors should contain:
1426
+
1427
+ ```ts
1428
+ interface DurableError {
1429
+ code: string;
1430
+ message: string;
1431
+ retryable: boolean;
1432
+ cause?: string;
1433
+ occurredAt: string;
1434
+ }
1435
+ ```
1436
+
1437
+ Categories:
1438
+
1439
+ ```text
1440
+ MODEL_UNAVAILABLE
1441
+ PROVIDER_ERROR
1442
+ SESSION_ERROR
1443
+ WORKTREE_ERROR
1444
+ TOOL_ERROR
1445
+ DEPENDENCY_FAILED
1446
+ CANCELLED
1447
+ TIMEOUT
1448
+ INVALID_GRAPH
1449
+ STATE_CORRUPTION
1450
+ UPSTREAM_PARITY_ERROR
1451
+ ```
1452
+
1453
+ ---
1454
+
1455
+ # 35. Retry policy
1456
+
1457
+ Default automatic retry:
1458
+
1459
+ - transient model/provider failure: yes, bounded
1460
+ - invalid task/schema: no
1461
+ - failed verification: no automatic retry unless playbook says rework
1462
+ - external side effect uncertainty: inspect first
1463
+ - worktree conflict: no silent force
1464
+
1465
+ ---
1466
+
1467
+ # 36. Concurrency
1468
+
1469
+ Default global concurrency:
1470
+
1471
+ ```text
1472
+ 4
1473
+ ```
1474
+
1475
+ Configurable.
1476
+
1477
+ The runtime must distinguish:
1478
+
1479
+ - active model calls
1480
+ - active write worktrees
1481
+ - workflow queue length
1482
+
1483
+ Concurrency limits must apply across a workflow, not separately to every branch.
1484
+
1485
+ ---
1486
+
1487
+ # 37. Resource budgets
1488
+
1489
+ Future-compatible structure:
1490
+
1491
+ ```ts
1492
+ interface WorkflowBudget {
1493
+ maxCalls?: number;
1494
+ maxTokens?: number;
1495
+ maxCostUsd?: number;
1496
+ maxWallTimeMs?: number;
1497
+ }
1498
+ ```
1499
+
1500
+ `0.3.0` should at minimum support:
1501
+
1502
+ ```text
1503
+ maxCalls
1504
+ maxConcurrency
1505
+ ```
1506
+
1507
+ Token/cost integration may follow if official Pi runtime exposes reliable usage information at the required boundary.
1508
+
1509
+ ---
1510
+
1511
+ # 38. Session ownership
1512
+
1513
+ A workflow belongs to its origin Pi session but can survive the current agent turn.
1514
+
1515
+ Rules:
1516
+
1517
+ - resuming the originating Pi session surfaces pending workflow state
1518
+ - an explicit workflow ID can be resumed where supported
1519
+ - multiple parents must not concurrently own the same writable workflow
1520
+ - use durable locks to prevent split-brain execution
1521
+
1522
+ ---
1523
+
1524
+ # 39. Locking
1525
+
1526
+ Required locks:
1527
+
1528
+ ```text
1529
+ workflow execution lock
1530
+ agent execution lock
1531
+ worktree mutation lock
1532
+ scheduler loop lock
1533
+ ```
1534
+
1535
+ Lock acquisition must be bounded and observable.
1536
+
1537
+ ---
1538
+
1539
+ # 40. Configuration
1540
+
1541
+ Global config:
1542
+
1543
+ ```text
1544
+ ~/.pi/agent/pstack-native/config.json
1545
+ ```
1546
+
1547
+ Example:
1548
+
1549
+ ```json
1550
+ {
1551
+ "version": 1,
1552
+ "skillsEnabled": true,
1553
+ "defaultConcurrency": 4,
1554
+ "loopMissedPolicy": "run-once"
1555
+ }
1556
+ ```
1557
+
1558
+ ---
1559
+
1560
+ # 41. Package layout
1561
+
1562
+ ```text
1563
+ pi-pstack-native/
1564
+ ├── package.json
1565
+ ├── README.md
1566
+ ├── LICENSE
1567
+ ├── NOTICE.md
1568
+ ├── PRD.md
1569
+ ├── UPSTREAM.json
1570
+ ├── PARITY.json
1571
+ ├── PARITY.md
1572
+ │
1573
+ ├── src/
1574
+ │ ├── extension.ts
1575
+ │ │
1576
+ │ ├── agent/
1577
+ │ │ ├── host.ts
1578
+ │ │ ├── profiles.ts
1579
+ │ │ ├── session.ts
1580
+ │ │ └── mailbox.ts
1581
+ │ │
1582
+ │ ├── workflow/
1583
+ │ │ ├── engine.ts
1584
+ │ │ ├── graph.ts
1585
+ │ │ ├── scheduler.ts
1586
+ │ │ ├── state.ts
1587
+ │ │ └── recovery.ts
1588
+ │ │
1589
+ │ ├── durable/
1590
+ │ │ ├── store.ts
1591
+ │ │ ├── locks.ts
1592
+ │ │ ├── journal.ts
1593
+ │ │ └── receipts.ts
1594
+ │ │
1595
+ │ ├── worktree/
1596
+ │ │ ├── manager.ts
1597
+ │ │ └── git.ts
1598
+ │ │
1599
+ │ ├── models/
1600
+ │ │ ├── router.ts
1601
+ │ │ └── config.ts
1602
+ │ │
1603
+ │ ├── loop/
1604
+ │ │ ├── store.ts
1605
+ │ │ └── runner.ts
1606
+ │ │
1607
+ │ ├── commands/
1608
+ │ │ ├── poteto-mode.ts
1609
+ │ │ ├── setup-pstack.ts
1610
+ │ │ ├── pstack-runtime.ts
1611
+ │ │ ├── pstack-upstream.ts
1612
+ │ │ ├── pstack-workflows.ts
1613
+ │ │ └── pstack-loop.ts
1614
+ │ │
1615
+ │ └── tools/
1616
+ │ ├── agents.ts
1617
+ │ ├── workflow.ts
1618
+ │ └── graph.ts
1619
+ │
1620
+ ├── agents/
1621
+ │ ├── worker.md
1622
+ │ ├── reviewer.md
1623
+ │ ├── verifier.md
1624
+ │ ├── architect.md
1625
+ │ ├── poteto-agent.md
1626
+ │ └── comment-sicko.md
1627
+ │
1628
+ ├── skills/
1629
+ │ └── ...
1630
+ │
1631
+ ├── scripts/
1632
+ │ ├── sync-upstream.mjs
1633
+ │ ├── classify-upstream.mjs
1634
+ │ ├── generate-parity.mjs
1635
+ │ └── verify-parity.mjs
1636
+ │
1637
+ └── test/
1638
+ ├── agent/
1639
+ ├── workflow/
1640
+ ├── durable/
1641
+ ├── worktree/
1642
+ ├── loop/
1643
+ ├── parity/
1644
+ └── integration/
1645
+ ```
1646
+
1647
+ ---
1648
+
1649
+ # 42. Package manifest
1650
+
1651
+ Target:
1652
+
1653
+ ```json
1654
+ {
1655
+ "name": "2333",
1656
+ "version": "0.3.0",
1657
+ "type": "module",
1658
+ "engines": {
1659
+ "node": ">=22.19.0"
1660
+ },
1661
+ "dependencies": {
1662
+ "@earendil-works/pi-coding-agent": "^1.1.0",
1663
+ "@earendil-works/pi-durable": "^1.1.0"
1664
+ },
1665
+ "pi": {
1666
+ "extensions": [
1667
+ "./src/extension.ts"
1668
+ ],
1669
+ "skills": [
1670
+ "./skills"
1671
+ ]
1672
+ }
1673
+ }
1674
+ ```
1675
+
1676
+ If direct imports are needed, `@earendil-works/pi-ai` and `@earendil-works/pi-tui` must be explicitly declared rather than relying on transitive dependencies.
1677
+
1678
+ ---
1679
+
1680
+ # 43. Migration from 0.2.0
1681
+
1682
+ `0.2.0` used external runtime packages.
1683
+
1684
+ `0.3.0` removes them.
1685
+
1686
+ Migration rules:
1687
+
1688
+ 1. Existing pstack model config should be imported when possible.
1689
+ 2. Existing `/pstack-loop` entries should be migrated to the new loop schema.
1690
+ 3. Running third-party workflows cannot be transparently resumed.
1691
+ 4. Migration must clearly state that in-flight 0.2 workflows are not portable.
1692
+ 5. Existing user source worktrees must not be deleted.
1693
+
1694
+ ---
1695
+
1696
+ # 44. Compatibility with existing Whamp configuration
1697
+
1698
+ Read-only migration support may detect:
1699
+
1700
+ ```text
1701
+ ~/.pi/agent/pstack/models.json
1702
+ ```
1703
+
1704
+ and offer to import it.
1705
+
1706
+ The runtime must not keep Whamp as a dependency.
1707
+
1708
+ ---
1709
+
1710
+ # 45. Licensing and attribution
1711
+
1712
+ Requirements:
1713
+
1714
+ - preserve upstream pstack MIT license obligations
1715
+ - retain Lauren Tan attribution for copied/substantially derived pstack content
1716
+ - clearly distinguish new `pi-pstack-native` code from upstream content
1717
+ - include `NOTICE.md`
1718
+ - include upstream repository and pinned revision
1719
+
1720
+ ---
1721
+
1722
+ # 46. Testing strategy
1723
+
1724
+ ## 46.1 Unit tests
1725
+
1726
+ Agent runtime:
1727
+
1728
+ - role resolution
1729
+ - model resolution
1730
+ - tool restriction
1731
+ - agent record serialization
1732
+
1733
+ Workflow:
1734
+
1735
+ - cycle rejection
1736
+ - dependency execution
1737
+ - fan-out
1738
+ - merge
1739
+ - retry
1740
+ - cancellation
1741
+
1742
+ Scheduler:
1743
+
1744
+ - interval parsing
1745
+ - next-run calculation
1746
+ - catch-up policy
1747
+ - pause/resume
1748
+
1749
+ Worktrees:
1750
+
1751
+ - create
1752
+ - branch collision
1753
+ - dirty cleanup protection
1754
+
1755
+ ## 46.2 Durable recovery tests
1756
+
1757
+ Test:
1758
+
1759
+ ```text
1760
+ start workflow
1761
+ complete A
1762
+ start B
1763
+ simulate process death
1764
+ reload state
1765
+ assert A not rerun
1766
+ assert B resumes/retries according to state
1767
+ assert C remains blocked until dependencies complete
1768
+ ```
1769
+
1770
+ ## 46.3 Crash boundary tests
1771
+
1772
+ Simulate failure:
1773
+
1774
+ - before agent spawn
1775
+ - after agent spawn before state update
1776
+ - after completion before result acknowledgement
1777
+ - before external side effect
1778
+ - after external side effect but before receipt commit
1779
+
1780
+ ## 46.4 Integration tests
1781
+
1782
+ Use real Pi session SDK with deterministic/mock model where possible.
1783
+
1784
+ Validate:
1785
+
1786
+ - child session creation
1787
+ - child tool boundaries
1788
+ - result propagation
1789
+ - parent wake-up
1790
+ - resume
1791
+
1792
+ ## 46.5 Parity tests
1793
+
1794
+ For each adapted upstream skill/playbook:
1795
+
1796
+ - assert required semantics exist
1797
+ - assert Cursor-only terminology does not instruct impossible actions
1798
+ - assert native runtime mappings are present
1799
+
1800
+ ---
1801
+
1802
+ # 47. Acceptance criteria for 0.3.0
1803
+
1804
+ `0.3.0` is complete when all of the following are true.
1805
+
1806
+ ## Runtime
1807
+
1808
+ - [ ] No runtime dependency outside official `@earendil-works/*`
1809
+ - [ ] Native child-agent spawn works
1810
+ - [ ] Native agent status works
1811
+ - [ ] Native send/stop works
1812
+ - [ ] Agent roles enforce tool permissions
1813
+
1814
+ ## Workflow
1815
+
1816
+ - [ ] Parallel graph works
1817
+ - [ ] Chain works
1818
+ - [ ] Fan-out/merge works
1819
+ - [ ] Worker/verifier graph works
1820
+ - [ ] Workflow state persists
1821
+ - [ ] Completed graph nodes do not rerun after restart
1822
+
1823
+ ## Isolation
1824
+
1825
+ - [x] Independent parallel writers use worktrees; single-writer work lands in the target checkout; multi-writer delivery requires an integrator
1826
+ - [ ] Read-only agents cannot write
1827
+ - [ ] Worktree cleanup is safe
1828
+
1829
+ ## Scheduler
1830
+
1831
+ - [ ] `/pstack-loop` persists
1832
+ - [ ] Catch-up policy works
1833
+ - [ ] Loop can be listed/paused/resumed/stopped
1834
+
1835
+ ## pstack UX
1836
+
1837
+ - [ ] `/poteto-mode`
1838
+ - [ ] `/setup-pstack`
1839
+ - [ ] `/pstack-runtime`
1840
+ - [ ] `/pstack-upstream`
1841
+ - [ ] `/pstack-parity`
1842
+
1843
+ ## Upstream
1844
+
1845
+ - [ ] Every upstream file classified
1846
+ - [ ] No unknown changed files
1847
+ - [ ] `PENDING_PORT = 0` for features claimed as supported
1848
+ - [ ] package displays exact upstream pstack version and commit
1849
+
1850
+ ---
1851
+
1852
+ # 48. Full semantic parity criteria
1853
+
1854
+ The project may claim:
1855
+
1856
+ ```text
1857
+ Full semantic parity with pstack <version>
1858
+ ```
1859
+
1860
+ only if:
1861
+
1862
+ 1. every upstream skill is classified,
1863
+ 2. every playbook is classified,
1864
+ 3. every supported workflow has parity tests,
1865
+ 4. every Cursor-only behavior has an explicit Pi equivalent or explicit unsupported classification,
1866
+ 5. there are no `PENDING_PORT` entries,
1867
+ 6. no known critical behavior silently degrades.
1868
+
1869
+ ---
1870
+
1871
+ # 49. Release phases
1872
+
1873
+ ## Phase 1 — Native runtime foundation
1874
+
1875
+ Deliver:
1876
+
1877
+ - AgentHost
1878
+ - ModelRouter
1879
+ - role profiles
1880
+ - durable records
1881
+ - basic tools
1882
+
1883
+ ## Phase 2 — Workflow engine
1884
+
1885
+ Deliver:
1886
+
1887
+ - graph model
1888
+ - parallel/chain/merge
1889
+ - recovery
1890
+ - cancellation
1891
+ - status
1892
+
1893
+ ## Phase 3 — Isolation and verification
1894
+
1895
+ Deliver:
1896
+
1897
+ - WorktreeManager
1898
+ - reviewer permissions
1899
+ - verifier workflow
1900
+
1901
+ ## Phase 4 — Scheduler
1902
+
1903
+ Deliver:
1904
+
1905
+ - `/pstack-loop`
1906
+ - persisted schedules
1907
+ - resume semantics
1908
+
1909
+ ## Phase 5 — pstack skill migration
1910
+
1911
+ Move from existing bridge content to:
1912
+
1913
+ ```text
1914
+ upstream content
1915
+ +
1916
+ native runtime adaptation
1917
+ ```
1918
+
1919
+ without Whamp runtime dependency.
1920
+
1921
+ ## Phase 6 — 0.15.15 parity pass
1922
+
1923
+ Audit every upstream pstack path at the pinned version.
1924
+
1925
+ Generate final `PARITY.md`.
1926
+
1927
+ ## Phase 7 — hardening
1928
+
1929
+ - crash tests
1930
+ - provider failures
1931
+ - worktree conflicts
1932
+ - state corruption
1933
+ - concurrency stress
1934
+ - migration tests
1935
+
1936
+ ---
1937
+
1938
+ # 50. Future roadmap
1939
+
1940
+ Possible later features:
1941
+
1942
+ - OS-level scheduler integration
1943
+ - richer TUI workflow graph
1944
+ - cross-session workflow takeover
1945
+ - remote durable storage
1946
+ - remote workers
1947
+ - workflow export/import
1948
+ - cost budgets
1949
+ - replay debugger
1950
+ - workflow timeline viewer
1951
+ - automatic upstream parity pull requests
1952
+
1953
+ ---
1954
+
1955
+ # 51. Open engineering questions
1956
+
1957
+ ## Q1. Durable session persistence boundary
1958
+
1959
+ Determine the cleanest supported combination of Pi `AgentSession`, `SessionManager`, and Pi Durable records for child-session restoration.
1960
+
1961
+ ## Q2. Parent wake-up
1962
+
1963
+ Determine whether completed child workflows should trigger a Pi custom message, wait until next user turn, or use a configurable behavior.
1964
+
1965
+ Default recommendation:
1966
+
1967
+ ```text
1968
+ wake parent on workflow completion or blocking human question
1969
+ ```
1970
+
1971
+ ## Q3. Agent continuation
1972
+
1973
+ Determine whether follow-up instructions should reuse the same child session by default.
1974
+
1975
+ Recommendation:
1976
+
1977
+ ```text
1978
+ same logical call → reuse session
1979
+ fresh worker step → new session
1980
+ ```
1981
+
1982
+ ## Q4. Git integration
1983
+
1984
+ Decide whether initial 0.3.0 needs branch creation automatically or only worktree isolation.
1985
+
1986
+ Recommendation: implement both together because writable worktrees need a clear branch owner.
1987
+
1988
+ ## Q5. Scheduler ownership
1989
+
1990
+ Loops should remain attached to the creating Pi session initially.
1991
+
1992
+ Cross-session/global loops can come later.
1993
+
1994
+ ---
1995
+
1996
+ # 52. Definition of done
1997
+
1998
+ The project is considered successfully redesigned when the following statement is true:
1999
+
2000
+ > `2333` can execute pstack-style multi-agent workflows, resume them after interruption, isolate concurrent writers, route models by role, run scheduled pstack checks, and report exact upstream compatibility while depending only on official Pi runtime packages.
2001
+
2002
+ The implementation should no longer require a user to understand or install:
2003
+
2004
+ ```text
2005
+ Whamp pstack
2006
+ pi-subagents
2007
+ pi-durable-subagents
2008
+ pi-agents
2009
+ ```
2010
+
2011
+ The user installs one package:
2012
+
2013
+ ```bash
2014
+ pi install npm:2333
2015
+ ```
2016
+
2017
+ and receives one coherent Pi-native pstack runtime.
2018
+
2019
+ ---
2020
+
2021
+ # 53. Recommended release identity
2022
+
2023
+ Package:
2024
+
2025
+ ```text
2026
+ 2333
2027
+ ```
2028
+
2029
+ Project:
2030
+
2031
+ ```text
2032
+ pi-pstack-native
2033
+ ```
2034
+
2035
+ Release:
2036
+
2037
+ ```text
2038
+ 0.3.0
2039
+ ```
2040
+
2041
+ Positioning:
2042
+
2043
+ > pstack semantics, rebuilt natively for Pi.
2044
+
2045
+ Upstream display:
2046
+
2047
+ ```text
2048
+ pi-pstack-native 0.3.0
2049
+ upstream pstack 0.15.15
2050
+ Pi-native runtime
2051
+ third-party runtime dependencies: none
2052
+ ```
2053
+
2054
+ ---
2055
+
2056
+ # 54. Final architectural decision
2057
+
2058
+ The project should proceed with the following rule:
2059
+
2060
+ > Official Pi packages provide the platform. `pi-pstack-native` owns everything pstack-specific above that platform.
2061
+
2062
+ That includes:
2063
+
2064
+ ```text
2065
+ agent lifecycle
2066
+ agent profiles
2067
+ workflow graphs
2068
+ orchestration
2069
+ durability policy
2070
+ recovery
2071
+ model roles
2072
+ worktree isolation
2073
+ scheduler
2074
+ Poteto runtime
2075
+ upstream compatibility
2076
+ parity verification
2077
+ ```
2078
+
2079
+ This gives the project a stable boundary:
2080
+
2081
+ ```text
2082
+ pstack semantics
2083
+ ↓
2084
+ pi-pstack-native
2085
+ ↓
2086
+ official Pi APIs
2087
+ ```
2088
+
2089
+ instead of a stack of independently versioned third-party runtimes.
2090
+
2091
+ ---
2092
+
2093
+ ## Implementation decision for 0.3.0
2094
+
2095
+ During implementation, the official Pi APIs exposed two separate conversation runtimes: `@earendil-works/pi-coding-agent` `AgentSession` (which already owns Pi auth, model registry, extensions, tools, skills, and session files) and the lower-level `@earendil-works/pi-durable` Harness (which expects its own model/provider registry and conversation host).
2096
+
2097
+ `0.3.0` therefore does **not** open a second Durable Harness inside the extension. Child agents use official persistent Pi `AgentSession` + `SessionManager`, while pstack-specific workflow state uses an atomic native journal under `~/.pi/agent/pstack-native/`. This avoids duplicating model/auth/tool state and avoids split ownership of one child conversation. The workflow storage boundary is isolated behind `src/runtime/store.ts`, so a future official bridge between Coding Agent sessions and Pi Durable can replace it without changing pstack workflow semantics.
2098
+
2099
+ This is an intentional implementation refinement of the earlier dependency sketch: the release still has no non-official runtime dependencies, but it does not claim that its workflow journal is `@earendil-works/pi-durable` storage.
2100
+
2101
+
2102
+ ---
2103
+
2104
+ # 55. 0.3.0 implementation status (authoritative)
2105
+
2106
+ This section records the final implementation choices and overrides stale planning examples above where they differ.
2107
+
2108
+ ## Implemented
2109
+
2110
+ - Native child sessions use official Pi `createAgentSession()` + persistent `SessionManager`.
2111
+ - Workflow DAG state uses pstack-native atomic JSON records plus append-only journals. Completed calls do not rerun after process recovery; interrupted child sessions reopen and resume.
2112
+ - Process/file locks verify owner PIDs. A fresh lock from a dead process is recovered immediately; a live owner is never stolen.
2113
+ - One simple writer may edit the target checkout. Independent parallel root writers use separate worktrees. Writable chains continue in the predecessor workspace.
2114
+ - A workflow with several writable artifacts must converge through profile `integrator` before combined verification. Reviewer/verifier nodes with several writer dependencies are rejected until an integrator exists.
2115
+ - Standalone background writable child starts default to worktree isolation.
2116
+ - Reviewer is read-only. Verifier has read/search/bash but no edit/write. Pi-native `grep`, `find`, and `ls` are path-confined read-only tools because Pi 1.1's default built-ins are `read`, `bash`, `edit`, and `write`.
2117
+ - `/setup-pstack` configures role models plus one global child reasoning level. Unsupported explicit reasoning levels fail closed for the resolved model.
2118
+ - `/pstack-loop` persists schedules, uses a cross-process update lock, runs only while Pi is active, and catches up at most one missed run on session resume.
2119
+ - The semantic port contains all 51 upstream top-level skill names and all 23 Poteto playbooks at pstack 0.15.15; `make-bot-ui` is explicit Cursor-only.
2120
+
2121
+ ## Dependency refinement
2122
+
2123
+ The original architecture allowed direct use of `@earendil-works/pi-durable`. The shipped 0.3.0 extension does not instantiate a second Durable Harness. Pi Coding Agent already owns model/auth/tool/session lifecycle for `AgentSession`; opening an independent Harness would split conversation ownership. The orchestration storage boundary is therefore implemented locally and remains replaceable if Pi later exposes an official Coding-Agent/Durable bridge. Runtime dependencies remain official-Pi-only: the host supplies `@earendil-works/pi-coding-agent`; there are no third-party runtime packages.
2124
+
2125
+ ## Parity claim boundary
2126
+
2127
+ `full semantic parity` in this release means the **listed top-level skill/playbook semantics**, not a byte-for-byte mirror of every upstream file. Auxiliary upstream references, scripts, assets, docs, and automations are not individually claimed as vendored or file-level audited. `PARITY.json` marks `fileLevelAudit` as `not-claimed` so this cannot be mistaken for a 128-file source mirror.
2128
+
2129
+ ## Validation status
2130
+
2131
+ The package test suite exercises graph validation, concurrency, recovery, lock recovery, writer/worktree placement, explicit integration, verifier placement, loop locking, model/reasoning routing, path confinement, atomic stores, and dirty-worktree cleanup. A real model/provider child-agent smoke test still requires a consumer Pi installation with Node 22.19+ and configured provider credentials and is therefore recorded as residual risk in `REVIEW.md`.