pstack-claude-mirror 0.0.0-stage → 0.9.133

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 (664) hide show
  1. package/.claude-plugin/marketplace.json +16 -0
  2. package/CHANGES.md +1110 -0
  3. package/LICENSE +22 -0
  4. package/LICENSE-cursor-team-kit +21 -0
  5. package/LICENSE-mirror +27 -0
  6. package/LICENSE-thermos +21 -0
  7. package/NOTICE-skills.md +13 -0
  8. package/NOTICE.md +62 -0
  9. package/README.md +84 -2
  10. package/UPSTREAM-README.md +243 -0
  11. package/bin/pstack-claude.mjs +183 -0
  12. package/docs/reference.md +247 -0
  13. package/package.json +88 -4
  14. package/plugins/pstack/.antigravity-plugin/plugin.json +8 -0
  15. package/plugins/pstack/.claude-plugin/icon.png +0 -0
  16. package/plugins/pstack/.claude-plugin/plugin.json +31 -0
  17. package/plugins/pstack/.codex-plugin/plugin.json +52 -0
  18. package/plugins/pstack/.github/plugin/plugin.json +15 -0
  19. package/plugins/pstack/.grok-plugin/plugin.json +9 -0
  20. package/plugins/pstack/.muse-plugin/plugin.json +381 -0
  21. package/plugins/pstack/README.md +27 -0
  22. package/plugins/pstack/agents/comment-sicko.md +34 -0
  23. package/plugins/pstack/agents/poteto-agent.md +8 -0
  24. package/plugins/pstack/agents/thermo-nuclear-code-quality-review-subagent.md +23 -0
  25. package/plugins/pstack/agents/thermo-nuclear-review-subagent.md +28 -0
  26. package/plugins/pstack/assets/pstack-icon.png +0 -0
  27. package/plugins/pstack/assets/pstack-icon.prompt.txt +8 -0
  28. package/plugins/pstack/grok/skills/pstack-routing/SKILL.md +8 -0
  29. package/plugins/pstack/hooks/agy-context.awk +9 -0
  30. package/plugins/pstack/hooks/codex-hooks.json +17 -0
  31. package/plugins/pstack/hooks/copilot-context.awk +44 -0
  32. package/plugins/pstack/hooks/copilot-hooks.json +27 -0
  33. package/plugins/pstack/hooks/hooks.json +16 -0
  34. package/plugins/pstack/hooks/json.awk +164 -0
  35. package/plugins/pstack/hooks/kimi-instructions.md +17 -0
  36. package/plugins/pstack/hooks/muse-context.awk +31 -0
  37. package/plugins/pstack/hooks/pre-tool-use.awk +152 -0
  38. package/plugins/pstack/hooks/pre-tool-use.sh +16 -0
  39. package/plugins/pstack/hooks/script-contracts.awk +55 -0
  40. package/plugins/pstack/hooks/session-start-agy.md +17 -0
  41. package/plugins/pstack/hooks/session-start-context.md +15 -0
  42. package/plugins/pstack/hooks/session-start-copilot-setup.md +1 -0
  43. package/plugins/pstack/hooks/session-start-copilot-sheet.md +1 -0
  44. package/plugins/pstack/hooks/session-start-copilot.md +3 -0
  45. package/plugins/pstack/hooks/session-start-minimax.md +17 -0
  46. package/plugins/pstack/hooks/session-start-muse-sheet.md +1 -0
  47. package/plugins/pstack/hooks/session-start-muse.md +17 -0
  48. package/plugins/pstack/hooks/session-start-opencode.md +17 -0
  49. package/plugins/pstack/hooks/session-start.ps1 +105 -0
  50. package/plugins/pstack/hooks/session-start.sh +95 -0
  51. package/plugins/pstack/hooks.json +10 -0
  52. package/plugins/pstack/models.json +67 -0
  53. package/plugins/pstack/omp/index.mjs +34 -0
  54. package/plugins/pstack/opencode/index.js +49 -0
  55. package/plugins/pstack/package.json +8 -0
  56. package/plugins/pstack/pi/agent-files.ts +117 -0
  57. package/plugins/pstack/pi/agent-text.ts +99 -0
  58. package/plugins/pstack/pi/agent-tools.ts +148 -0
  59. package/plugins/pstack/pi/agents.ts +486 -0
  60. package/plugins/pstack/pi/ask.ts +87 -0
  61. package/plugins/pstack/pi/child.ts +310 -0
  62. package/plugins/pstack/pi/config.ts +178 -0
  63. package/plugins/pstack/pi/index.ts +44 -0
  64. package/plugins/pstack/pi/one-shot.ts +90 -0
  65. package/plugins/pstack/pi/path-skills.ts +54 -0
  66. package/plugins/pstack/pi/prompt.ts +39 -0
  67. package/plugins/pstack/pi/schedule.ts +254 -0
  68. package/plugins/pstack/pi/slash.ts +92 -0
  69. package/plugins/pstack/pi/sleep-wait.ts +76 -0
  70. package/plugins/pstack/pi/worktree.ts +74 -0
  71. package/plugins/pstack/skills/architect/SKILL.md +100 -0
  72. package/plugins/pstack/skills/architect/references/design-red-flags.md +57 -0
  73. package/plugins/pstack/skills/architect/references/rationale-template.md +39 -0
  74. package/plugins/pstack/skills/architect/references/runner-prompt.md +20 -0
  75. package/plugins/pstack/skills/arena/SKILL.md +66 -0
  76. package/plugins/pstack/skills/automate-me/SKILL.md +111 -0
  77. package/plugins/pstack/skills/babysit/SKILL.md +68 -0
  78. package/plugins/pstack/skills/benchmark-checklist/SKILL.md +38 -0
  79. package/plugins/pstack/skills/blast-radius/SKILL.md +49 -0
  80. package/plugins/pstack/skills/bro/SKILL.md +6 -0
  81. package/plugins/pstack/skills/correct/SKILL.md +31 -0
  82. package/plugins/pstack/skills/create-formal-verification-skill/SKILL.md +50 -0
  83. package/plugins/pstack/skills/create-verification-skill/SKILL.md +51 -0
  84. package/plugins/pstack/skills/create-verification-skill/references/feature-map-example/README.md +47 -0
  85. package/plugins/pstack/skills/create-verification-skill/references/feature-map-example/create-note.md +39 -0
  86. package/plugins/pstack/skills/create-verification-skill/references/feature-map-example/search.md +45 -0
  87. package/plugins/pstack/skills/deslop/SKILL.md +24 -0
  88. package/plugins/pstack/skills/figure-it-out/SKILL.md +51 -0
  89. package/plugins/pstack/skills/fix-ci/SKILL.md +29 -0
  90. package/plugins/pstack/skills/fix-merge-conflicts/SKILL.md +32 -0
  91. package/plugins/pstack/skills/get-pr-comments/SKILL.md +23 -0
  92. package/plugins/pstack/skills/how/SKILL.md +54 -0
  93. package/plugins/pstack/skills/how/references/explainer-prompt.md +55 -0
  94. package/plugins/pstack/skills/how/references/explorer-prompt.md +35 -0
  95. package/plugins/pstack/skills/in-your-own-words/SKILL.md +6 -0
  96. package/plugins/pstack/skills/interrogate/SKILL.md +48 -0
  97. package/plugins/pstack/skills/ketchup/SKILL.md +42 -0
  98. package/plugins/pstack/skills/ketchup-video/SKILL.md +28 -0
  99. package/plugins/pstack/skills/maintain-formal-verification-skill/SKILL.md +65 -0
  100. package/plugins/pstack/skills/maintain-verification-skill/SKILL.md +46 -0
  101. package/plugins/pstack/skills/make-pr-easy-to-review/SKILL.md +59 -0
  102. package/plugins/pstack/skills/no-comments/SKILL.md +45 -0
  103. package/plugins/pstack/skills/poteto-help/SKILL.md +149 -0
  104. package/plugins/pstack/skills/poteto-help/references/prompting.md +51 -0
  105. package/plugins/pstack/skills/poteto-help/references/recipes.md +51 -0
  106. package/plugins/pstack/skills/poteto-mode/SKILL.md +174 -0
  107. package/plugins/pstack/skills/poteto-mode/playbooks/authoring-a-skill.md +12 -0
  108. package/plugins/pstack/skills/poteto-mode/playbooks/autonomous-run.md +13 -0
  109. package/plugins/pstack/skills/poteto-mode/playbooks/autopilot-full.md +31 -0
  110. package/plugins/pstack/skills/poteto-mode/playbooks/autopilot-stack.md +8 -0
  111. package/plugins/pstack/skills/poteto-mode/playbooks/babysit.md +23 -0
  112. package/plugins/pstack/skills/poteto-mode/playbooks/bug-fix.md +15 -0
  113. package/plugins/pstack/skills/poteto-mode/playbooks/eval.md +25 -0
  114. package/plugins/pstack/skills/poteto-mode/playbooks/feature.md +21 -0
  115. package/plugins/pstack/skills/poteto-mode/playbooks/hillclimb.md +21 -0
  116. package/plugins/pstack/skills/poteto-mode/playbooks/investigation.md +14 -0
  117. package/plugins/pstack/skills/poteto-mode/playbooks/multi-phase-plan.md +158 -0
  118. package/plugins/pstack/skills/poteto-mode/playbooks/opening-a-pr.md +34 -0
  119. package/plugins/pstack/skills/poteto-mode/playbooks/orchestrate.md +27 -0
  120. package/plugins/pstack/skills/poteto-mode/playbooks/pause-safely.md +11 -0
  121. package/plugins/pstack/skills/poteto-mode/playbooks/perf-issue.md +25 -0
  122. package/plugins/pstack/skills/poteto-mode/playbooks/prototype.md +14 -0
  123. package/plugins/pstack/skills/poteto-mode/playbooks/refactoring.md +18 -0
  124. package/plugins/pstack/skills/poteto-mode/playbooks/runtime-forensics.md +11 -0
  125. package/plugins/pstack/skills/poteto-mode/playbooks/session-pickup.md +11 -0
  126. package/plugins/pstack/skills/poteto-mode/playbooks/shipping.md +16 -0
  127. package/plugins/pstack/skills/poteto-mode/playbooks/trace-forensics.md +14 -0
  128. package/plugins/pstack/skills/poteto-mode/playbooks/visual-parity.md +11 -0
  129. package/plugins/pstack/skills/poteto-mode/playbooks/worktree-cleanup.md +12 -0
  130. package/plugins/pstack/skills/poteto-mode/references/agents/comment-sicko.md +34 -0
  131. package/plugins/pstack/skills/poteto-mode/references/agy-tools.md +99 -0
  132. package/plugins/pstack/skills/poteto-mode/references/bugbot-triage.md +142 -0
  133. package/plugins/pstack/skills/poteto-mode/references/codex-tools.md +109 -0
  134. package/plugins/pstack/skills/poteto-mode/references/copilot-tools.md +143 -0
  135. package/plugins/pstack/skills/poteto-mode/references/grok.md +50 -0
  136. package/plugins/pstack/skills/poteto-mode/references/kimi-tools.md +40 -0
  137. package/plugins/pstack/skills/poteto-mode/references/licenses/LICENSE +22 -0
  138. package/plugins/pstack/skills/poteto-mode/references/licenses/LICENSE-cursor-team-kit +21 -0
  139. package/plugins/pstack/skills/poteto-mode/references/licenses/LICENSE-thermos +21 -0
  140. package/plugins/pstack/skills/poteto-mode/references/licenses/NOTICE.md +13 -0
  141. package/plugins/pstack/skills/poteto-mode/references/merge-safety.md +43 -0
  142. package/plugins/pstack/skills/poteto-mode/references/minimax-tools.md +93 -0
  143. package/plugins/pstack/skills/poteto-mode/references/muse-tools.md +105 -0
  144. package/plugins/pstack/skills/poteto-mode/references/omp-tools.md +39 -0
  145. package/plugins/pstack/skills/poteto-mode/references/opencode-tools.md +29 -0
  146. package/plugins/pstack/skills/poteto-mode/references/pi-tools.md +117 -0
  147. package/plugins/pstack/skills/poteto-mode/references/resume-storage.md +20 -0
  148. package/plugins/pstack/skills/poteto-mode/scripts/.prettierignore +23 -0
  149. package/plugins/pstack/skills/poteto-mode/scripts/.prettierrc.json +3 -0
  150. package/plugins/pstack/skills/poteto-mode/scripts/bootstrap.ts +71 -0
  151. package/plugins/pstack/skills/poteto-mode/scripts/bun.lock +67 -0
  152. package/plugins/pstack/skills/poteto-mode/scripts/check-plan.mjs +214 -0
  153. package/plugins/pstack/skills/poteto-mode/scripts/check-plan.test.ts +115 -0
  154. package/plugins/pstack/skills/poteto-mode/scripts/check-playbooks.mjs +71 -0
  155. package/plugins/pstack/skills/poteto-mode/scripts/codex-session-effort.mjs +66 -0
  156. package/plugins/pstack/skills/poteto-mode/scripts/package.json +16 -0
  157. package/plugins/pstack/skills/poteto-mode/scripts/resume.mjs +139 -0
  158. package/plugins/pstack/skills/poteto-mode/scripts/tsconfig.json +14 -0
  159. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/cli.test.ts +383 -0
  160. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/cli.ts +266 -0
  161. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/deadline.ts +20 -0
  162. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/fakes.test-helper.ts +157 -0
  163. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/fresh-install.test.ts +35 -0
  164. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/github.test.ts +902 -0
  165. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/github.ts +922 -0
  166. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/integrity.test.ts +887 -0
  167. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/landing.ts +92 -0
  168. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/live-merge-safety.mjs +142 -0
  169. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/policy.test.ts +1151 -0
  170. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/policy.ts +956 -0
  171. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/render.ts +200 -0
  172. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/ship-pr +6 -0
  173. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/shipping-cli.test.ts +159 -0
  174. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/shipping-cli.ts +65 -0
  175. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/shipping.test-helper.ts +48 -0
  176. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/shipping.test.ts +360 -0
  177. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/shipping.ts +235 -0
  178. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/transport.test.ts +211 -0
  179. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/tsconfig.json +13 -0
  180. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/types.compile.ts +108 -0
  181. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/types.ts +474 -0
  182. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/watch-pr +6 -0
  183. package/plugins/pstack/skills/poteto-mode/scripts/watch-pr/wrapper.test.ts +20 -0
  184. package/plugins/pstack/skills/poteto-mode/scripts/worktree-audit.mjs +434 -0
  185. package/plugins/pstack/skills/principle-attack-the-premise/SKILL.md +21 -0
  186. package/plugins/pstack/skills/principle-boundary-discipline/SKILL.md +34 -0
  187. package/plugins/pstack/skills/principle-build-the-lever/SKILL.md +24 -0
  188. package/plugins/pstack/skills/principle-encode-lessons-in-structure/SKILL.md +11 -0
  189. package/plugins/pstack/skills/principle-exhaust-the-design-space/SKILL.md +9 -0
  190. package/plugins/pstack/skills/principle-experience-first/SKILL.md +19 -0
  191. package/plugins/pstack/skills/principle-explain-the-number/SKILL.md +18 -0
  192. package/plugins/pstack/skills/principle-fix-root-causes/SKILL.md +21 -0
  193. package/plugins/pstack/skills/principle-foundational-thinking/SKILL.md +21 -0
  194. package/plugins/pstack/skills/principle-guard-the-context-window/SKILL.md +12 -0
  195. package/plugins/pstack/skills/principle-laziness-protocol/SKILL.md +10 -0
  196. package/plugins/pstack/skills/principle-make-operations-idempotent/SKILL.md +22 -0
  197. package/plugins/pstack/skills/principle-migrate-callers-then-delete-legacy-apis/SKILL.md +14 -0
  198. package/plugins/pstack/skills/principle-minimize-reader-load/SKILL.md +18 -0
  199. package/plugins/pstack/skills/principle-model-the-domain/SKILL.md +24 -0
  200. package/plugins/pstack/skills/principle-never-block-on-the-human/SKILL.md +15 -0
  201. package/plugins/pstack/skills/principle-outcome-oriented-execution/SKILL.md +21 -0
  202. package/plugins/pstack/skills/principle-prove-it-works/SKILL.md +27 -0
  203. package/plugins/pstack/skills/principle-redesign-from-first-principles/SKILL.md +16 -0
  204. package/plugins/pstack/skills/principle-separate-before-serializing-shared-state/SKILL.md +16 -0
  205. package/plugins/pstack/skills/principle-sequence-verifiable-units/SKILL.md +17 -0
  206. package/plugins/pstack/skills/principle-subtract-before-you-add/SKILL.md +18 -0
  207. package/plugins/pstack/skills/principle-test-behavior-not-implementation/SKILL.md +20 -0
  208. package/plugins/pstack/skills/principle-type-system-discipline/SKILL.md +13 -0
  209. package/plugins/pstack/skills/recall/SKILL.md +43 -0
  210. package/plugins/pstack/skills/reflect/SKILL.md +89 -0
  211. package/plugins/pstack/skills/reflect/references/divergent-reviewer.md +38 -0
  212. package/plugins/pstack/skills/reflect/references/judgment-reviewer.md +37 -0
  213. package/plugins/pstack/skills/reflect/references/synthesizer.md +56 -0
  214. package/plugins/pstack/skills/reflect/references/tooling-reviewer.md +48 -0
  215. package/plugins/pstack/skills/reflect/scripts/claude-project-dir.mjs +121 -0
  216. package/plugins/pstack/skills/reflect/scripts/find-transcript.mjs +218 -0
  217. package/plugins/pstack/skills/setup-pstack/SKILL.md +109 -0
  218. package/plugins/pstack/skills/setup-pstack/copilot.md +88 -0
  219. package/plugins/pstack/skills/setup-pstack/references/runtimes.md +75 -0
  220. package/plugins/pstack/skills/setup-pstack/scripts/check-sheet.awk +10 -0
  221. package/plugins/pstack/skills/setup-pstack/scripts/check-sheet.sh +20 -0
  222. package/plugins/pstack/skills/setup-pstack/scripts/read-sheet.sh +24 -0
  223. package/plugins/pstack/skills/setup-pstack/scripts/sheet.awk +160 -0
  224. package/plugins/pstack/skills/sharpen/SKILL.md +15 -0
  225. package/plugins/pstack/skills/show-me-your-work/SKILL.md +89 -0
  226. package/plugins/pstack/skills/show-me-your-work/references/decision-log-template.tsv +1 -0
  227. package/plugins/pstack/skills/show-me-your-work/scripts/log.sh +58 -0
  228. package/plugins/pstack/skills/statechart/SKILL.md +81 -0
  229. package/plugins/pstack/skills/statechart/references/render.md +93 -0
  230. package/plugins/pstack/skills/statechart/scripts/backends/cfg.ts +33 -0
  231. package/plugins/pstack/skills/statechart/scripts/backends/mermaid.ts +201 -0
  232. package/plugins/pstack/skills/statechart/scripts/backends/plain-text.ts +72 -0
  233. package/plugins/pstack/skills/statechart/scripts/backends/report.ts +177 -0
  234. package/plugins/pstack/skills/statechart/scripts/bun.lock +17 -0
  235. package/plugins/pstack/skills/statechart/scripts/frontends/config.ts +276 -0
  236. package/plugins/pstack/skills/statechart/scripts/frontends/dot.ts +74 -0
  237. package/plugins/pstack/skills/statechart/scripts/frontends/marks.ts +93 -0
  238. package/plugins/pstack/skills/statechart/scripts/frontends/messages.ts +52 -0
  239. package/plugins/pstack/skills/statechart/scripts/frontends/spec.ts +114 -0
  240. package/plugins/pstack/skills/statechart/scripts/frontends/trace.ts +24 -0
  241. package/plugins/pstack/skills/statechart/scripts/frontends/value.ts +166 -0
  242. package/plugins/pstack/skills/statechart/scripts/frontends/verdict.ts +40 -0
  243. package/plugins/pstack/skills/statechart/scripts/frontends/view.ts +119 -0
  244. package/plugins/pstack/skills/statechart/scripts/ir.ts +547 -0
  245. package/plugins/pstack/skills/statechart/scripts/janitor.ts +12 -0
  246. package/plugins/pstack/skills/statechart/scripts/package.json +11 -0
  247. package/plugins/pstack/skills/statechart/scripts/passes/annotate.ts +128 -0
  248. package/plugins/pstack/skills/statechart/scripts/passes/label.ts +269 -0
  249. package/plugins/pstack/skills/statechart/scripts/passes/lift.ts +85 -0
  250. package/plugins/pstack/skills/statechart/scripts/passes/loop-check.ts +68 -0
  251. package/plugins/pstack/skills/statechart/scripts/passes/paths.ts +60 -0
  252. package/plugins/pstack/skills/statechart/scripts/passes/reach.ts +135 -0
  253. package/plugins/pstack/skills/statechart/scripts/passes/region-check.ts +97 -0
  254. package/plugins/pstack/skills/statechart/scripts/passes/regions.ts +295 -0
  255. package/plugins/pstack/skills/statechart/scripts/pipeline.ts +76 -0
  256. package/plugins/pstack/skills/statechart/scripts/run.ts +526 -0
  257. package/plugins/pstack/skills/statechart/scripts/statechart +29 -0
  258. package/plugins/pstack/skills/statechart/scripts/statechart.ts +171 -0
  259. package/plugins/pstack/skills/statechart/scripts/test/ConfigOracle.java +63 -0
  260. package/plugins/pstack/skills/statechart/scripts/test/chart.test.ts +1210 -0
  261. package/plugins/pstack/skills/statechart/scripts/test/charts/Braces.mmd +7 -0
  262. package/plugins/pstack/skills/statechart/scripts/test/charts/Escapes.mmd +11 -0
  263. package/plugins/pstack/skills/statechart/scripts/test/charts/Phases.mmd +29 -0
  264. package/plugins/pstack/skills/statechart/scripts/test/child-env.test.ts +15 -0
  265. package/plugins/pstack/skills/statechart/scripts/test/cli.test.ts +1323 -0
  266. package/plugins/pstack/skills/statechart/scripts/test/config-fuzz.test.ts +263 -0
  267. package/plugins/pstack/skills/statechart/scripts/test/corpus/Counter/ChartRun.out +57 -0
  268. package/plugins/pstack/skills/statechart/scripts/test/corpus/Counter/Counter.cfg +3 -0
  269. package/plugins/pstack/skills/statechart/scripts/test/corpus/Counter/Counter.tla +10 -0
  270. package/plugins/pstack/skills/statechart/scripts/test/corpus/Counter/chart.mmd +9 -0
  271. package/plugins/pstack/skills/statechart/scripts/test/corpus/Counter/graph.dot +16 -0
  272. package/plugins/pstack/skills/statechart/scripts/test/corpus/Counter/report.md +7 -0
  273. package/plugins/pstack/skills/statechart/scripts/test/corpus/Counter/sany.out +2 -0
  274. package/plugins/pstack/skills/statechart/scripts/test/corpus/Counter/verdict-1.out +49 -0
  275. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterAction/ChartRun.out +60 -0
  276. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterAction/CounterAction.cfg +4 -0
  277. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterAction/CounterAction.tla +22 -0
  278. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterAction/chart.mmd +26 -0
  279. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterAction/graph.dot +19 -0
  280. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterAction/report.md +20 -0
  281. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterAction/sany.out +2 -0
  282. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterAction/verdict-1.exit +1 -0
  283. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterAction/verdict-1.out +56 -0
  284. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterAction/verdict-2.exit +1 -0
  285. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterAction/verdict-2.out +82 -0
  286. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterAction/verdict-3.out +57 -0
  287. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/ChartRun.out +59 -0
  288. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/CounterDeadlock.cfg +3 -0
  289. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/CounterDeadlock.tla +11 -0
  290. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/chart.mmd +22 -0
  291. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/graph.dot +16 -0
  292. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/report.md +17 -0
  293. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/sany.out +2 -0
  294. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-1.exit +1 -0
  295. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-1.out +56 -0
  296. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-2.exit +1 -0
  297. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterDeadlock/verdict-2.out +77 -0
  298. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterFan/ChartRun.out +69 -0
  299. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterFan/CounterFan.cfg +2 -0
  300. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterFan/CounterFan.tla +11 -0
  301. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterFan/chart.mmd +85 -0
  302. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterFan/graph.dot +70 -0
  303. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterFan/report.md +12 -0
  304. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterFan/sany.out +2 -0
  305. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterFan/verdict-1.exit +1 -0
  306. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterFan/verdict-1.out +67 -0
  307. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterFan/verdict-2.out +57 -0
  308. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterGuard/ChartRun.exit +1 -0
  309. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterGuard/ChartRun.out +85 -0
  310. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterGuard/CounterGuard.cfg +6 -0
  311. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterGuard/CounterGuard.tla +13 -0
  312. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterGuard/chart.mmd +5 -0
  313. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterGuard/graph.dot +10 -0
  314. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterGuard/report.md +31 -0
  315. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterGuard/sany.out +2 -0
  316. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterGuard/verdict-1.exit +1 -0
  317. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterGuard/verdict-1.out +64 -0
  318. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterGuard/verdict-2.exit +1 -0
  319. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterGuard/verdict-2.out +77 -0
  320. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/ChartRun.out +55 -0
  321. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/CounterInitPast.cfg +3 -0
  322. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/CounterInitPast.tla +10 -0
  323. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/chart.mmd +12 -0
  324. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/graph.dot +6 -0
  325. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/report.md +12 -0
  326. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/sany.out +2 -0
  327. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/verdict-1.exit +1 -0
  328. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/verdict-1.out +33 -0
  329. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPast/verdict-2.out +54 -0
  330. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/ChartRun.out +54 -0
  331. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/CounterInitPastHolds.cfg +3 -0
  332. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/CounterInitPastHolds.tla +10 -0
  333. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/chart.mmd +1 -0
  334. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/graph.dot +6 -0
  335. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/report.md +7 -0
  336. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/sany.out +2 -0
  337. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInitPastHolds/verdict-1.out +46 -0
  338. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInstance/ChartRun.out +59 -0
  339. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInstance/CounterInstance.cfg +2 -0
  340. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInstance/CounterInstance.tla +10 -0
  341. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInstance/CounterSteps.tla +6 -0
  342. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInstance/chart.mmd +17 -0
  343. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInstance/graph.dot +15 -0
  344. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInstance/report.md +14 -0
  345. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInstance/sany.out +3 -0
  346. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInstance/verdict-1.exit +1 -0
  347. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterInstance/verdict-1.out +78 -0
  348. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterJump/ChartRun.out +59 -0
  349. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterJump/CounterJump.cfg +3 -0
  350. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterJump/CounterJump.tla +19 -0
  351. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterJump/chart.mmd +26 -0
  352. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterJump/graph.dot +22 -0
  353. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterJump/report.md +12 -0
  354. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterJump/sany.out +2 -0
  355. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterJump/verdict-1.exit +1 -0
  356. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterJump/verdict-1.out +58 -0
  357. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterJump/verdict-2.out +57 -0
  358. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterLoop/ChartRun.out +57 -0
  359. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterLoop/CounterLoop.cfg +2 -0
  360. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterLoop/CounterLoop.tla +11 -0
  361. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterLoop/chart.mmd +17 -0
  362. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterLoop/graph.dot +15 -0
  363. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterLoop/report.md +14 -0
  364. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterLoop/sany.out +2 -0
  365. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterLoop/verdict-1.exit +1 -0
  366. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterLoop/verdict-1.out +76 -0
  367. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterOrder/ChartRun.out +59 -0
  368. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterOrder/CounterOrder.cfg +3 -0
  369. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterOrder/CounterOrder.tla +11 -0
  370. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterOrder/chart.mmd +19 -0
  371. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterOrder/graph.dot +10 -0
  372. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterOrder/report.md +15 -0
  373. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterOrder/sany.out +2 -0
  374. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterOrder/verdict-1.exit +1 -0
  375. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterOrder/verdict-1.out +56 -0
  376. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterOrder/verdict-2.exit +1 -0
  377. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterOrder/verdict-2.out +67 -0
  378. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterRules/ChartRun.out +62 -0
  379. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterRules/CounterRules.cfg +6 -0
  380. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterRules/CounterRules.tla +24 -0
  381. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterRules/Moves.tla +5 -0
  382. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterRules/chart.mmd +22 -0
  383. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterRules/graph.dot +10 -0
  384. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterRules/report.md +23 -0
  385. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterRules/sany.out +3 -0
  386. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterRules/verdict-1.exit +1 -0
  387. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterRules/verdict-1.out +58 -0
  388. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterRules/verdict-2.exit +1 -0
  389. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterRules/verdict-2.out +66 -0
  390. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterRules/verdict-3.exit +1 -0
  391. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterRules/verdict-3.out +74 -0
  392. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterRules/verdict-4.out +59 -0
  393. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStart/ChartRun.out +58 -0
  394. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStart/CounterStart.cfg +3 -0
  395. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStart/CounterStart.tla +15 -0
  396. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStart/chart.mmd +18 -0
  397. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStart/graph.dot +13 -0
  398. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStart/report.md +11 -0
  399. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStart/sany.out +2 -0
  400. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStart/verdict-1.exit +1 -0
  401. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStart/verdict-1.out +33 -0
  402. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStart/verdict-2.out +57 -0
  403. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStop/ChartRun.out +57 -0
  404. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStop/CounterStop.cfg +3 -0
  405. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStop/CounterStop.tla +15 -0
  406. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStop/chart.mmd +7 -0
  407. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStop/graph.dot +13 -0
  408. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStop/report.md +6 -0
  409. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStop/sany.out +2 -0
  410. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterStop/verdict-1.out +49 -0
  411. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTie/ChartRun.out +61 -0
  412. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTie/CounterTie.cfg +4 -0
  413. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTie/CounterTie.tla +14 -0
  414. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTie/chart.mmd +30 -0
  415. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTie/graph.dot +19 -0
  416. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTie/report.md +27 -0
  417. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTie/sany.out +2 -0
  418. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTie/verdict-1.exit +1 -0
  419. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTie/verdict-1.out +56 -0
  420. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTie/verdict-2.exit +1 -0
  421. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTie/verdict-2.out +64 -0
  422. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTie/verdict-3.exit +1 -0
  423. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTie/verdict-3.out +87 -0
  424. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTie/verdict-4.out +57 -0
  425. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/ChartRun.out +60 -0
  426. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/CounterTieInGraph.cfg +3 -0
  427. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/CounterTieInGraph.tla +12 -0
  428. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/chart.mmd +23 -0
  429. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/graph.dot +19 -0
  430. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/report.md +11 -0
  431. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/sany.out +2 -0
  432. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/verdict-1.exit +1 -0
  433. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/verdict-1.out +56 -0
  434. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterTieInGraph/verdict-2.out +57 -0
  435. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterView/ChartRun.out +61 -0
  436. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterView/CounterView.cfg +4 -0
  437. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterView/CounterView.tla +14 -0
  438. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterView/chart.mmd +23 -0
  439. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterView/graph.dot +19 -0
  440. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterView/report.md +27 -0
  441. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterView/sany.out +2 -0
  442. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterView/verdict-1.exit +1 -0
  443. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterView/verdict-1.out +56 -0
  444. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterView/verdict-2.exit +1 -0
  445. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterView/verdict-2.out +64 -0
  446. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterView/verdict-3.exit +1 -0
  447. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterView/verdict-3.out +87 -0
  448. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterView/verdict-4.out +57 -0
  449. package/plugins/pstack/skills/statechart/scripts/test/corpus/CounterView/view.mjs +1 -0
  450. package/plugins/pstack/skills/statechart/scripts/test/corpus/DieHard/ChartRun.out +59 -0
  451. package/plugins/pstack/skills/statechart/scripts/test/corpus/DieHard/DieHard.cfg +4 -0
  452. package/plugins/pstack/skills/statechart/scripts/test/corpus/DieHard/DieHard.tla +38 -0
  453. package/plugins/pstack/skills/statechart/scripts/test/corpus/DieHard/chart.mmd +92 -0
  454. package/plugins/pstack/skills/statechart/scripts/test/corpus/DieHard/graph.dot +126 -0
  455. package/plugins/pstack/skills/statechart/scripts/test/corpus/DieHard/report.md +17 -0
  456. package/plugins/pstack/skills/statechart/scripts/test/corpus/DieHard/sany.out +2 -0
  457. package/plugins/pstack/skills/statechart/scripts/test/corpus/DieHard/verdict-1.exit +1 -0
  458. package/plugins/pstack/skills/statechart/scripts/test/corpus/DieHard/verdict-1.out +91 -0
  459. package/plugins/pstack/skills/statechart/scripts/test/corpus/DieHard/verdict-2.out +57 -0
  460. package/plugins/pstack/skills/statechart/scripts/test/corpus/FirstRule/ChartRun.out +61 -0
  461. package/plugins/pstack/skills/statechart/scripts/test/corpus/FirstRule/FirstRule.cfg +6 -0
  462. package/plugins/pstack/skills/statechart/scripts/test/corpus/FirstRule/FirstRule.tla +11 -0
  463. package/plugins/pstack/skills/statechart/scripts/test/corpus/FirstRule/chart.mmd +22 -0
  464. package/plugins/pstack/skills/statechart/scripts/test/corpus/FirstRule/graph.dot +16 -0
  465. package/plugins/pstack/skills/statechart/scripts/test/corpus/FirstRule/report.md +25 -0
  466. package/plugins/pstack/skills/statechart/scripts/test/corpus/FirstRule/sany.out +2 -0
  467. package/plugins/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-1.exit +1 -0
  468. package/plugins/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-1.out +56 -0
  469. package/plugins/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-2.exit +1 -0
  470. package/plugins/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-2.out +64 -0
  471. package/plugins/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-3.exit +1 -0
  472. package/plugins/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-3.out +64 -0
  473. package/plugins/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-4.exit +1 -0
  474. package/plugins/pstack/skills/statechart/scripts/test/corpus/FirstRule/verdict-4.out +77 -0
  475. package/plugins/pstack/skills/statechart/scripts/test/corpus/HiddenClock/ChartRun.out +57 -0
  476. package/plugins/pstack/skills/statechart/scripts/test/corpus/HiddenClock/HiddenClock.cfg +4 -0
  477. package/plugins/pstack/skills/statechart/scripts/test/corpus/HiddenClock/HiddenClock.tla +11 -0
  478. package/plugins/pstack/skills/statechart/scripts/test/corpus/HiddenClock/chart.mmd +13 -0
  479. package/plugins/pstack/skills/statechart/scripts/test/corpus/HiddenClock/graph.dot +12 -0
  480. package/plugins/pstack/skills/statechart/scripts/test/corpus/HiddenClock/report.md +11 -0
  481. package/plugins/pstack/skills/statechart/scripts/test/corpus/HiddenClock/sany.out +2 -0
  482. package/plugins/pstack/skills/statechart/scripts/test/corpus/HiddenClock/verdict-1.exit +1 -0
  483. package/plugins/pstack/skills/statechart/scripts/test/corpus/HiddenClock/verdict-1.out +72 -0
  484. package/plugins/pstack/skills/statechart/scripts/test/corpus/Login/ChartRun.out +57 -0
  485. package/plugins/pstack/skills/statechart/scripts/test/corpus/Login/Login.cfg +3 -0
  486. package/plugins/pstack/skills/statechart/scripts/test/corpus/Login/Login.tla +62 -0
  487. package/plugins/pstack/skills/statechart/scripts/test/corpus/Login/chart.mmd +27 -0
  488. package/plugins/pstack/skills/statechart/scripts/test/corpus/Login/graph.dot +40 -0
  489. package/plugins/pstack/skills/statechart/scripts/test/corpus/Login/report.md +7 -0
  490. package/plugins/pstack/skills/statechart/scripts/test/corpus/Login/sany.out +1 -0
  491. package/plugins/pstack/skills/statechart/scripts/test/corpus/Login/verdict-1.out +47 -0
  492. package/plugins/pstack/skills/statechart/scripts/test/corpus/Login/view.mjs +1 -0
  493. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/ChartRun.out +57 -0
  494. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/LoginGuarded.cfg +2 -0
  495. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/LoginGuarded.tla +64 -0
  496. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/chart.mmd +28 -0
  497. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/graph.dot +37 -0
  498. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/report.md +8 -0
  499. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/sany.out +1 -0
  500. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/verdict-1.out +47 -0
  501. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginGuarded/view.mjs +1 -0
  502. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginParallel/ChartRun.out +60 -0
  503. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginParallel/LoginParallel.cfg +3 -0
  504. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginParallel/LoginParallel.tla +64 -0
  505. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginParallel/chart.mmd +44 -0
  506. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginParallel/graph.dot +58 -0
  507. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginParallel/report.md +17 -0
  508. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginParallel/sany.out +1 -0
  509. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginParallel/verdict-1.exit +1 -0
  510. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginParallel/verdict-1.out +83 -0
  511. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginParallel/verdict-2.out +57 -0
  512. package/plugins/pstack/skills/statechart/scripts/test/corpus/LoginParallel/view.mjs +1 -0
  513. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/ChartRun.out +60 -0
  514. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/MediaPlayer.cfg +3 -0
  515. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/MediaPlayer.tla +103 -0
  516. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/chart.mmd +43 -0
  517. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/graph.dot +93 -0
  518. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/report.md +14 -0
  519. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/sany.out +1 -0
  520. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/verdict-1.exit +1 -0
  521. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/verdict-1.out +59 -0
  522. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/verdict-2.out +72 -0
  523. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayer/view.mjs +3 -0
  524. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/ChartRun.out +57 -0
  525. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/MediaPlayerFixed.cfg +2 -0
  526. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/MediaPlayerFixed.tla +100 -0
  527. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/chart.mmd +31 -0
  528. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/graph.dot +85 -0
  529. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/report.md +9 -0
  530. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/sany.out +1 -0
  531. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/verdict-1.out +47 -0
  532. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerFixed/view.mjs +3 -0
  533. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/ChartRun.out +59 -0
  534. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/MediaPlayer.tla +103 -0
  535. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/MediaPlayerProps.cfg +3 -0
  536. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/MediaPlayerProps.tla +6 -0
  537. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/chart.mmd +42 -0
  538. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/graph.dot +93 -0
  539. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/report.md +19 -0
  540. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/sany.out +2 -0
  541. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-1.exit +1 -0
  542. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-1.out +61 -0
  543. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-2.out +59 -0
  544. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-3.out +61 -0
  545. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-4.exit +1 -0
  546. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-4.out +66 -0
  547. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-5.exit +1 -0
  548. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-5.out +58 -0
  549. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/verdict-6.out +49 -0
  550. package/plugins/pstack/skills/statechart/scripts/test/corpus/MediaPlayerProps/view.mjs +3 -0
  551. package/plugins/pstack/skills/statechart/scripts/test/corpus/PickWorker/ChartRun.out +57 -0
  552. package/plugins/pstack/skills/statechart/scripts/test/corpus/PickWorker/PickWorker.cfg +6 -0
  553. package/plugins/pstack/skills/statechart/scripts/test/corpus/PickWorker/PickWorker.tla +11 -0
  554. package/plugins/pstack/skills/statechart/scripts/test/corpus/PickWorker/chart.mmd +5 -0
  555. package/plugins/pstack/skills/statechart/scripts/test/corpus/PickWorker/graph.dot +11 -0
  556. package/plugins/pstack/skills/statechart/scripts/test/corpus/PickWorker/report.md +7 -0
  557. package/plugins/pstack/skills/statechart/scripts/test/corpus/PickWorker/sany.out +5 -0
  558. package/plugins/pstack/skills/statechart/scripts/test/corpus/PickWorker/verdict-1.out +70 -0
  559. package/plugins/pstack/skills/statechart/scripts/test/corpus/Shadow/ChartRun.out +61 -0
  560. package/plugins/pstack/skills/statechart/scripts/test/corpus/Shadow/Shadow.cfg +4 -0
  561. package/plugins/pstack/skills/statechart/scripts/test/corpus/Shadow/Shadow.tla +11 -0
  562. package/plugins/pstack/skills/statechart/scripts/test/corpus/Shadow/ShadowLib.tla +6 -0
  563. package/plugins/pstack/skills/statechart/scripts/test/corpus/Shadow/ShadowSub.tla +3 -0
  564. package/plugins/pstack/skills/statechart/scripts/test/corpus/Shadow/chart.mmd +9 -0
  565. package/plugins/pstack/skills/statechart/scripts/test/corpus/Shadow/graph.dot +16 -0
  566. package/plugins/pstack/skills/statechart/scripts/test/corpus/Shadow/report.md +8 -0
  567. package/plugins/pstack/skills/statechart/scripts/test/corpus/Shadow/sany.out +4 -0
  568. package/plugins/pstack/skills/statechart/scripts/test/corpus/Shadow/verdict-1.out +65 -0
  569. package/plugins/pstack/skills/statechart/scripts/test/corpus/SpacedNames/ChartRun.out +59 -0
  570. package/plugins/pstack/skills/statechart/scripts/test/corpus/SpacedNames/SpacedNames.cfg +2 -0
  571. package/plugins/pstack/skills/statechart/scripts/test/corpus/SpacedNames/SpacedNames.tla +9 -0
  572. package/plugins/pstack/skills/statechart/scripts/test/corpus/SpacedNames/chart.mmd +23 -0
  573. package/plugins/pstack/skills/statechart/scripts/test/corpus/SpacedNames/graph.dot +17 -0
  574. package/plugins/pstack/skills/statechart/scripts/test/corpus/SpacedNames/report.md +15 -0
  575. package/plugins/pstack/skills/statechart/scripts/test/corpus/SpacedNames/sany.out +1 -0
  576. package/plugins/pstack/skills/statechart/scripts/test/corpus/SpacedNames/verdict-1.exit +1 -0
  577. package/plugins/pstack/skills/statechart/scripts/test/corpus/SpacedNames/verdict-1.out +65 -0
  578. package/plugins/pstack/skills/statechart/scripts/test/corpus/SpacedNames/verdict-2.exit +1 -0
  579. package/plugins/pstack/skills/statechart/scripts/test/corpus/SpacedNames/verdict-2.out +75 -0
  580. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhase/ChartRun.out +69 -0
  581. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhase/TwoPhase.cfg +3 -0
  582. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhase/TwoPhase.tla +75 -0
  583. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhase/chart.mmd +60 -0
  584. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhase/graph.dot +297 -0
  585. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhase/report.md +20 -0
  586. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhase/sany.out +1 -0
  587. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhase/verdict-1.exit +1 -0
  588. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhase/verdict-1.out +95 -0
  589. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhase/verdict-2.out +57 -0
  590. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhase/view.mjs +1 -0
  591. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/ChartRun.out +57 -0
  592. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/TwoPhaseFixed.cfg +3 -0
  593. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/TwoPhaseFixed.tla +75 -0
  594. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/chart.mmd +37 -0
  595. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/graph.dot +223 -0
  596. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/report.md +11 -0
  597. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/sany.out +1 -0
  598. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/verdict-1.out +47 -0
  599. package/plugins/pstack/skills/statechart/scripts/test/corpus/TwoPhaseFixed/view.mjs +1 -0
  600. package/plugins/pstack/skills/statechart/scripts/test/corpus/TypeGuard/ChartRun.exit +1 -0
  601. package/plugins/pstack/skills/statechart/scripts/test/corpus/TypeGuard/ChartRun.out +75 -0
  602. package/plugins/pstack/skills/statechart/scripts/test/corpus/TypeGuard/TypeGuard.cfg +5 -0
  603. package/plugins/pstack/skills/statechart/scripts/test/corpus/TypeGuard/TypeGuard.tla +11 -0
  604. package/plugins/pstack/skills/statechart/scripts/test/corpus/TypeGuard/chart.mmd +18 -0
  605. package/plugins/pstack/skills/statechart/scripts/test/corpus/TypeGuard/graph.dot +14 -0
  606. package/plugins/pstack/skills/statechart/scripts/test/corpus/TypeGuard/report.md +29 -0
  607. package/plugins/pstack/skills/statechart/scripts/test/corpus/TypeGuard/sany.out +2 -0
  608. package/plugins/pstack/skills/statechart/scripts/test/corpus/TypeGuard/verdict-1.exit +1 -0
  609. package/plugins/pstack/skills/statechart/scripts/test/corpus/TypeGuard/verdict-1.out +64 -0
  610. package/plugins/pstack/skills/statechart/scripts/test/corpus/TypeGuard/verdict-2.exit +1 -0
  611. package/plugins/pstack/skills/statechart/scripts/test/corpus/TypeGuard/verdict-2.out +75 -0
  612. package/plugins/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/ChartRun.out +58 -0
  613. package/plugins/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/UserNoDeadlock.cfg +2 -0
  614. package/plugins/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/UserNoDeadlock.tla +8 -0
  615. package/plugins/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/chart.mmd +22 -0
  616. package/plugins/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/graph.dot +16 -0
  617. package/plugins/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/report.md +15 -0
  618. package/plugins/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/sany.out +2 -0
  619. package/plugins/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-1.exit +1 -0
  620. package/plugins/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-1.out +56 -0
  621. package/plugins/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-2.exit +1 -0
  622. package/plugins/pstack/skills/statechart/scripts/test/corpus/UserNoDeadlock/verdict-2.out +77 -0
  623. package/plugins/pstack/skills/statechart/scripts/test/corpus.test.ts +415 -0
  624. package/plugins/pstack/skills/statechart/scripts/test/differential.test.ts +565 -0
  625. package/plugins/pstack/skills/statechart/scripts/test/grid/Grid.cfg +2 -0
  626. package/plugins/pstack/skills/statechart/scripts/test/grid/Grid.tla +9 -0
  627. package/plugins/pstack/skills/statechart/scripts/test/grid/sany.out +2 -0
  628. package/plugins/pstack/skills/statechart/scripts/test/java.ts +63 -0
  629. package/plugins/pstack/skills/statechart/scripts/test/labels.ts +643 -0
  630. package/plugins/pstack/skills/statechart/scripts/test/messages.test.ts +227 -0
  631. package/plugins/pstack/skills/statechart/scripts/test/pipeline.test.ts +270 -0
  632. package/plugins/pstack/skills/statechart/scripts/test/plain-tlc.test.ts +255 -0
  633. package/plugins/pstack/skills/statechart/scripts/test/render.test.ts +81 -0
  634. package/plugins/pstack/skills/statechart/scripts/test/tlc-out.test.ts +90 -0
  635. package/plugins/pstack/skills/statechart/scripts/test/tlc.ts +158 -0
  636. package/plugins/pstack/skills/statechart/scripts/tsconfig.json +11 -0
  637. package/plugins/pstack/skills/statechart/scripts/worker.ts +35 -0
  638. package/plugins/pstack/skills/swarm/SKILL.md +58 -0
  639. package/plugins/pstack/skills/tdd/SKILL.md +41 -0
  640. package/plugins/pstack/skills/teach/SKILL.md +28 -0
  641. package/plugins/pstack/skills/technical-writing/SKILL.md +105 -0
  642. package/plugins/pstack/skills/thermo-nuclear-code-quality-review/SKILL.md +201 -0
  643. package/plugins/pstack/skills/thermo-nuclear-review/SKILL.md +50 -0
  644. package/plugins/pstack/skills/thermos/SKILL.md +40 -0
  645. package/plugins/pstack/skills/typescript-best-practices/SKILL.md +32 -0
  646. package/plugins/pstack/skills/typescript-best-practices/references/patterns.md +328 -0
  647. package/plugins/pstack/skills/unslop/SKILL.md +61 -0
  648. package/plugins/pstack/skills/what-did-i-get-done/SKILL.md +31 -0
  649. package/plugins/pstack/skills/why/SKILL.md +116 -0
  650. package/plugins/pstack/skills/why/references/epistemics.md +79 -0
  651. package/plugins/pstack/skills/why/references/investigator-prompt.md +86 -0
  652. package/plugins/pstack/skills/why/references/source-playbook.md +17 -0
  653. package/plugins/pstack/skills/why/references/sources/code-archaeology.md +51 -0
  654. package/plugins/pstack/skills/why/references/sources/databricks.md +70 -0
  655. package/plugins/pstack/skills/why/references/sources/datadog.md +97 -0
  656. package/plugins/pstack/skills/why/references/sources/incident-postmortem.md +5 -0
  657. package/plugins/pstack/skills/why/references/sources/linear.md +48 -0
  658. package/plugins/pstack/skills/why/references/sources/notion.md +55 -0
  659. package/plugins/pstack/skills/why/references/sources/sentry.md +66 -0
  660. package/plugins/pstack/skills/why/references/sources/slack.md +17 -0
  661. package/plugins/pstack/skills/why/references/synthesizer-prompt.md +130 -0
  662. package/tools/forks.json +398 -0
  663. package/tools/substitutions.json +646 -0
  664. package/tools/upstream.json +53 -0
@@ -0,0 +1,142 @@
1
+ # Bugbot triage
2
+
3
+ Use this reference when the Babysit playbook (`../playbooks/babysit.md`) handles Bugbot or review-automation comments. The goal is not to ignore Bugbot by default. The goal is to stop treating every comment as a required code change.
4
+
5
+ ## Decision rubric
6
+
7
+ Classify each Bugbot thread before acting:
8
+
9
+ - `fix`: The comment identifies a plausible correctness, security, privacy, data loss, auth, billing, migration, idempotency, race, or shipped-behavior issue. Fix it in the lowest owning PR, then reply with the commit SHA and resolve the thread.
10
+ - `dismiss`: The comment matches a documented low-risk noisy pattern, and the current code/context proves the concern does not need a code change. Reply with a short reason and resolve the thread.
11
+ - `ask`: The comment is novel, high-severity, security/privacy/data-related, or ambiguous. Ask the user instead of guessing.
12
+
13
+ When in doubt, ask. Skipping a noisy code-quality comment is cheap; skipping a real data or security bug is not.
14
+
15
+ ## Learned pattern format
16
+
17
+ Add future patterns in this shape:
18
+
19
+ ```markdown
20
+ ### <short pattern name>
21
+
22
+ - Confidence: candidate | recurring | strong
23
+ - Skip when: <conditions that must be true>
24
+ - Do not skip when: <risk boundaries>
25
+ - Example signal: <phrases or code context that identify the pattern>
26
+ - Source: <PR/comment URL or short historical note>
27
+ ```
28
+
29
+ Use `candidate` for one or two examples. Use `recurring` after multiple real dismissals. Use `strong` only when the pattern is narrow, repeatedly verified, and low-risk.
30
+
31
+ ## Recurring skip candidates
32
+
33
+ ### Intentional UI or design-system visual changes
34
+
35
+ - Confidence: candidate
36
+ - Skip when: The PR description, screenshots, design review, or nearby code makes the visual change explicit, and the Bugbot comment is only restating that a shared visual default changed.
37
+ - Do not skip when: The comment points to accessibility, focus visibility, keyboard navigation, color contrast, or a component API contract that the PR did not intentionally change.
38
+ - Example signal: Comments about focus outlines, button sizes, spacing, or shared component visual defaults where the owner replies "intentional" or "intended".
39
+
40
+ ### Upstack or stack-local usage Bugbot cannot see
41
+
42
+ - Confidence: candidate
43
+ - Skip when: Bugbot flags an export, component, helper, or file as unused, and the active forge's PR list and diffs, upper-stack diffs, or PR context show it is used by a later PR in the stack.
44
+ - Do not skip when: The current PR is not part of a stack, the symbol is public API, or the supposed upstack use cannot be verified.
45
+ - Example signal: "Exported component is never used" with a human reply like "used upstack".
46
+
47
+ ### Temporary duplication during parallel implementation
48
+
49
+ - Confidence: candidate
50
+ - Skip when: The PR intentionally duplicates a small amount of code to keep a new path parallel to an old path that is being deleted, replaced, or proven out.
51
+ - Do not skip when: The duplicated code changes security, billing, data access, API behavior, or a long-lived shared abstraction would clearly reduce risk.
52
+ - Example signal: "Significant duplication" or "duplicated validation logic" where the owner explains the old path will be deleted or the duplicate logic is intentionally local.
53
+
54
+ ### Existing framework or component invariant covers the warning
55
+
56
+ - Confidence: candidate
57
+ - Skip when: The concern is already guaranteed by a shared component, framework contract, type invariant, or single source of truth visible in the current diff or nearby code.
58
+ - Do not skip when: The invariant is assumed but not enforced, depends on timing, or crosses async/state boundaries where values can diverge.
59
+ - Example signal: Comments about missing max-height on an inner popover when the shared popover enforces viewport bounds, or nullable values where the local checked value and passed value share the same source.
60
+
61
+ ### Owner-declared follow-up or deferred cleanup
62
+
63
+ - Confidence: candidate
64
+ - Skip when: The PR owner explicitly says the issue is a known follow-up, the behavior is not made worse by the current PR, and the comment is not about a high-risk area.
65
+ - Do not skip when: The agent is acting without owner input, the issue is medium/high severity product behavior, or deferring would merge a new regression.
66
+ - Example signal: "I'll worry about that later" or "we'll delete this eventually".
67
+
68
+ ### Self-withdrawn or explicit false-positive rule comments
69
+
70
+ - Confidence: recurring
71
+ - Skip when: The comment body or a later Bugbot reply explicitly says the finding is withdrawn, compliant, or a false positive, and the agent can verify the relevant rule locally.
72
+ - Do not skip when: The only evidence is a human saying "false positive" on a high-risk issue without explanation.
73
+ - Example signal: A file-naming rule comment whose body says the file is already compliant.
74
+
75
+ ## Ask by default
76
+
77
+ Do not auto-skip these categories, even if a previous PR dismissed something similar:
78
+
79
+ - Security, privacy, auth, billing, data retention, training-data, and permission-boundary findings.
80
+ - High-severity findings.
81
+ - Migration, schema, idempotency, concurrency, and cross-system behavior findings.
82
+ - Comments where the suggested fix is small and clearly reduces risk without changing product intent.
83
+
84
+ Historical data showed humans sometimes dismiss security/data-flow comments. Treat those as owner judgment calls, not team-wide skip rules.
85
+
86
+ ## Candidate learnings from recent babysits
87
+
88
+ Append new candidate learnings here during or after babysitting when they look team-useful but not yet mature. Prefer promoting recurring candidates into the section above once several PRs confirm the pattern.
89
+
90
+ ### Manual reimplementations of native browser behavior
91
+
92
+ - Confidence: candidate
93
+ - Skip when: Practically never. When a diff replaces native browser behavior with a manual equivalent (native sticky → JS-positioned clones, native scroll targeting → forwarded wheel/touch events, paint-order occlusion → masks/clip-path), Bugbot's logic-bug findings against that code have been consistently legitimate.
94
+ - Do not skip when: The finding concerns event-forwarding gaps (wheel deltaMode, touch pans, scroll-chaining at edges, tap slop), mask/clip hit-testing divergence, or observer-vs-React state timing races in such code. Default to fix.
95
+ - Example signal: "masks do not affect hit-testing", "overlay blocks wheel scroll", "ignores deltaMode", "runs in the IntersectionObserver callback before React applies state".
96
+ - Source: one sticky-occlusion PR: six Bugbot passes, roughly eighteen findings, every one fixed rather than dismissed.
97
+
98
+ ### Contract-test drift claims are cheaply verifiable — run the test first
99
+
100
+ - Confidence: candidate
101
+ - Skip when: Never skip the verification itself; it costs one command. When a PR
102
+ ships a contract test that pins protocol or documentation prose (regexes over
103
+ a SKILL.md, snapshot of doc wording), and Bugbot claims "the test no longer
104
+ matches the doc" (or vice versa), run that test on the PR tip before
105
+ classifying. A red run confirms the claim empirically; a green run is a
106
+ concrete disproof for the dismissal reply.
107
+ - Do not skip when: n/a — this is a verification shortcut, not a dismissal
108
+ pattern. Note that repeat-pass lean-dismiss heuristics would misfire here:
109
+ prose-pinning tests drift precisely BECAUSE earlier fix rounds edit the prose.
110
+ - Example signal: "Contract test omits the pre-fix wait" on a PR whose earlier
111
+ fix commits reworded the pinned passage; the test run on the tip failed on
112
+ exactly the cited assertion.
113
+ - Source: one prose-pinning PR with eight Bugbot passes; the claim was real on
114
+ pass 7 despite every earlier pass being fixed-and-resolved.
115
+
116
+ ### Stale security-review finding already fixed later in the same PR
117
+
118
+ - Confidence: candidate
119
+ - Skip when: An agentic security review (or similar) claims a missing authz/validation call, and the current PR tip clearly includes that exact gate (with tests), typically added in a later hardening commit after the review ran.
120
+ - Do not skip when: The cited helper is a no-op for the principal under discussion, the check runs after the side effect it guards, or coverage for the claimed principal is missing.
121
+ - Example signal: A HIGH "missing authorization check" finding while the exact guard is already called before the side effect on the tip.
122
+ - Source: one webhook-endpoint PR whose hardening commit postdated the review run.
123
+
124
+ ### Widening a deliberately narrow error condition would mask the real error
125
+
126
+ - Confidence: candidate
127
+ - Skip when: The finding asks to broaden a narrow error condition (a specific
128
+ `errno`, error code, or status class) into a catch-all, and that narrowness
129
+ encodes a real distinction. The canonical shape is a dependency fallback
130
+ gated on `ENOENT`: "binary is not installed" is a different situation from
131
+ "the command ran and failed". Retrying on any non-zero exit would re-run a
132
+ legitimate failure (not found, expired auth, network) against the fallback
133
+ and then report the fallback's error, hiding the true one.
134
+ - Do not skip when: The narrow condition misses a case in the SAME category
135
+ (another "binary unusable" errno such as `EACCES`, another transport-level
136
+ failure), the unhandled path loses data or leaves partial state, or the retry
137
+ is idempotent AND the original error is still surfaced.
138
+ - Example signal: "only retries when X fails with ENOENT … never tries the
139
+ fallback even when a working Y exists", pointing at code whose fallback
140
+ exists for a missing dependency rather than a failed operation.
141
+ - Source: one CLI-rename PR whose fallback existed for a missing binary rather
142
+ than a failed command.
@@ -0,0 +1,109 @@
1
+ # Codex tool mapping for pstack
2
+
3
+ pstack skills are written in Claude Code tool language (the `Skill` tool, the `Agent` tool, `AskUserQuestion`, Claude model names). On Codex the skills are the same files; only the tool names resolve differently. Read this when a pstack skill names a Claude tool, a driver or bundled skill, or a Claude model. This file is Codex-specific. Gemini CLI, opencode, Prime Agent, and other runtimes must use their own concrete tools, model names, and configuration paths.
4
+
5
+ ## Tool actions
6
+
7
+ | pstack / Claude action | Codex equivalent |
8
+ |------------------------|------------------|
9
+ | Read a file | `shell` (`cat`, `head`, `tail`) |
10
+ | Create / edit / delete a file | `apply_patch` |
11
+ | Run a shell command | `shell` |
12
+ | Search file contents / find files | `shell` (`rg`, `grep`, `find`, `ls`) |
13
+ | Fetch a URL | `shell` with `curl` / `wget` |
14
+ | Search the web | `web_search` |
15
+ | Invoke a skill (the `Skill` tool, `/command`) | Skills load natively. Follow the instructions presented. |
16
+ | Dispatch a subagent (the `Agent`/`Task` tool) | `spawn_agent` |
17
+ | Dispatch N parallel subagents in one turn | N `spawn_agent` calls in one response |
18
+ | Wait for a subagent result | `wait_agent` |
19
+ | Free a finished subagent slot | `close_agent`, when the session exposes it. Some Codex hosts don't. |
20
+ | Track tasks (the todolist; `TaskCreate` / `TaskUpdate`, or `TodoWrite` on Claude Code) | `update_plan` |
21
+ | Ask the human a fixed-choice question (`AskUserQuestion`) | Ask in plain text and let the user answer. Codex has no structured-choice tool. |
22
+ | Read this workspace's session transcripts (Claude Code's `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/projects/<encoded-cwd>/`) | Codex sessions live in `${CODEX_HOME:-~/.codex}/sessions/YYYY/MM/DD/rollout-<timestamp>-<id>.jsonl`. Archived sessions are in `${CODEX_HOME:-~/.codex}/archived_sessions/`. Older rollouts in both directories are zstd-compressed `rollout-<timestamp>-<id>.jsonl.zst` files. Read those with `zstd -dc`. The first line of each rollout is a `session_meta` record. Keep only rollouts whose `payload.cwd` is the workspace or one of its worktrees. Never read other projects' sessions. |
23
+
24
+ Subagent dispatch needs `multi_agent` enabled. Add to `~/.codex/config.toml`:
25
+
26
+ ```toml
27
+ [features]
28
+ multi_agent = true
29
+ ```
30
+
31
+ Without it, `spawn_agent` is unavailable and the fan-out skills (`interrogate`, `why`, `how`, `arena`, `reflect`) degrade to a single sequential pass. A required independent review does not degrade. It stays blocked, as poteto-mode's [Subagents](../SKILL.md#subagents) section says.
32
+
33
+ Enabling `multi_agent` does not lift the host's thread limit. A thread-limit error from `spawn_agent` is a capacity error, not a rejected model slug, so the skills' fallback to another model does not apply. After the first capacity rejection, stop spawning. Close a finished agent with `close_agent` before you try again, and where the session has no `close_agent`, do not assume a finished agent's slot is free.
34
+
35
+ ## Subagent policy
36
+
37
+ poteto-mode's Subagents section sets Claude-specific defaults (`subagent_type: "pstack:poteto-agent"`, `run_in_background: true`). On Codex:
38
+
39
+ - There is no `poteto-agent` subagent type. Route an ad-hoc subagent through poteto-mode's style by dispatching a `spawn_agent` whose instructions tell it to read the `poteto-mode` skill in full first.
40
+ - `spawn_agent` calls already run concurrently with your turn, so `run_in_background: true` has no separate flag. Issue the dispatch and continue.
41
+ - For `session`, run `node <poteto-mode-dir>/scripts/codex-session-effort.mjs` before dispatching, with `<poteto-mode-dir>` resolved to this skill's directory. The [helper](../scripts/codex-session-effort.mjs) reads the active turn's effort from the exact runtime log identified by `CODEX_THREAD_ID`, under `$CODEX_HOME/sessions` (default `~/.codex/sessions`). It prints only the effort. Run it again on each turn; a UI effort change must not reuse the previous turn's value.
42
+ - Apply poteto-mode's task adjustment to that starting level, or to the explicit role/default effort, then pass the final level as `reasoning_effort` on `spawn_agent`, including when a model is selected explicitly. An omitted effort can use a configured subagent effort or, when a model is selected, that model's default instead of the parent's level.
43
+ - Do not guess the session's effort from the model, a config default, or a previous turn. If the helper cannot identify the active turn's effort, ask for an explicit role or `default effort` level before dispatching. Do not substitute an omitted `reasoning_effort` for the missing starting level. Automatic `session` resolution depends on the host exposing the current thread's runtime log; it is not available on every Codex host.
44
+ - There is no `comment-sicko` subagent type either. The **no-comments** skill spawns it on Claude Code; on Codex dispatch a `spawn_agent` whose instructions tell it to read `poteto-mode/references/agents/comment-sicko.md` in full first.
45
+ - There are no `thermo-nuclear-review-subagent` or `thermo-nuclear-code-quality-review-subagent` types. The **thermos** skill spawns both on Claude Code; on Codex dispatch two `spawn_agent` calls whose instructions tell each to read the `thermo-nuclear-review` or `thermo-nuclear-code-quality-review` skill in full first and review only the diff and file contents in its prompt.
46
+ - Claude Code runs every subagent on this machine, so the **swarm** skill's workers and the fan-out playbooks (`orchestrate`, `autopilot-full`, `autopilot-stack`) isolate writers with worktrees. The same holds on Codex.
47
+ - Keep the rest of the policy unchanged. Pass file pointers not inlined context, give each worker its own worktree or branch when they write, review every subagent's diff yourself.
48
+
49
+ ## Model names
50
+
51
+ Skills name Claude defaults (a single-role default for code/prose/judgment, a worker model for feature and refactoring code, plus a diverse-model panel for diverse-model panels; each model-consuming skill lists its own in a Models section). These slugs do not resolve on Codex. Substitute your configured Codex models:
52
+
53
+ - Single-model roles: your primary Codex model (for example `gpt-6.1-sol`).
54
+ - Roles that default to the Claude worker model (`feature, refactoring`): your fast Codex code model (for example `gpt-6.1-sol`).
55
+ - Roles that default to the strongest Claude model (`strongest judgment`): your strongest Codex model (for example `gpt-6-astra`).
56
+ - Diverse-model panels (`arena`, `architect`, `interrogate`): the adversarial signal comes from model diversity, so use the distinct Codex models available to you. A good default panel on ChatGPT is `gpt-6-astra`, `gpt-6.1-sol`, `gpt-6.1-terra`, `gpt-6-luna`. If only one model family is reachable, vary reasoning effort and note in the verdict that diversity was reduced.
57
+
58
+ `/setup-pstack` writes the configured model list. On Codex, set it to your Codex model slugs.
59
+
60
+ ## Session routing hook
61
+
62
+ The native pstack plugin bundles the same `SessionStart` routing instruction as the Claude Code plugin, through `session-start.sh` on macOS and Linux and `session-start.ps1` on Windows. Codex runs the hook on startup, resume, clear, and compact after the user trusts the hook through `/hooks`. The hook reads `session hook` from the Codex sheet, at the path in [setup-pstack's runtime table](../../setup-pstack/references/runtimes.md); `session hook: off` disables injection.
63
+
64
+ A skills-only installation does not include plugin hooks. Request `poteto-mode` explicitly or add a standing instruction to `AGENTS.md` in that case.
65
+
66
+ ## Driver and bundled skills pstack references
67
+
68
+ The [driver policy](../SKILL.md#non-negotiables) selects the app driver. For skills and drivers named by these workflows, use these Codex equivalents:
69
+
70
+ | Skill or driver named in pstack | On Codex |
71
+ |---------------------------------|----------|
72
+ | `run` (drive a CLI/TUI to see a change work) | Run the app yourself via `shell` and observe the real output. |
73
+ | Project UI driver | Drive the UI with whatever automation you have, or hand the user a concrete manual check. Do not claim done without observing the artifact. |
74
+ | `plugin-dev:skill-development` (Claude's SKILL.md authoring guidance) | Follow your platform's skill-authoring guidance; the `writing-skills` skill if present. Keep `name` + `description` frontmatter and progressive disclosure. |
75
+ | `loop` (recurring/self-paced re-invocation, used by `babysit`) | Codex has no `loop` skill. Re-run the step yourself on a cadence, or use a Codex scheduled task if available. |
76
+
77
+ ## Per-skill notes
78
+
79
+ Affected skill entry points point here. Most skills need only the tables above. These need one more mapping:
80
+
81
+ | Skill | On Codex |
82
+ |-------|----------|
83
+ | `interrogate` | The `subagent_type`/`model` dispatch fields map to `spawn_agent`; substitute your configured Codex models and keep the adversary panel model-diverse. |
84
+ | `setup-pstack` | The skill's [Other runtimes](../../setup-pstack/references/runtimes.md) table names the Codex sheet path and how it loads; the slugs are your Codex models (see Model names above). The role rows are identical. |
85
+ | `no-comments` | There is no `comment-sicko` subagent type; see Subagent policy above. |
86
+ | `thermos` | There are no thermo-nuclear subagent types; see Subagent policy above. |
87
+ | `teach` | Running `how` and `why` in parallel maps to `spawn_agent` fan-out; image generation uses the configured Codex equivalent. |
88
+ | `create-verification-skill` | The generated skill lands under `.claude/skills/verify/` on Claude Code; write it to Codex's project-skill location instead. The app-driving harness is platform-neutral. |
89
+ | `maintain-verification-skill` | The parallel per-feature source readers map to `spawn_agent` fan-out; the project-local skill lives under Codex's skills location, not `.claude/skills/`. |
90
+ | `create-formal-verification-skill` | Write the generated skill to Codex's project-skill location, named for the area it verifies. The verifier and its run command are platform-neutral. |
91
+ | `maintain-formal-verification-skill` | Project skills, the formal verification skill among them, live under Codex's project-skill location. |
92
+ | `babysit` | `loop` and `AskUserQuestion` resolve through the tables above. |
93
+ | `automate-me` | `plugin-dev:skill-development` resolves through the skills table above. |
94
+ | `architect` | The runner panel goes through the **arena** skill, so its `spawn_agent` fan-out and model substitution apply here too. |
95
+ | `arena` | The parallel candidates and the cross-judge map to `spawn_agent`; substitute your configured Codex models for the runners and the cross-judge pool (see Model names above). |
96
+ | `how` | The parallel explorers and the explainer map to `spawn_agent` fan-out; substitute your configured Codex models. |
97
+ | `reflect` | The three reviewers and the synthesizer map to `spawn_agent`; substitute your configured Codex models. The transcript finder reads Claude Code's layout under `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/projects/`, so pass the session digest step 1 allows instead. |
98
+ | `recall` | Search this workspace's Codex rollouts (see Tool actions). Do not list or read `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/projects/`. It holds Claude Code transcripts, not this session's history. In a rollout, chat messages are the `response_item` records whose `payload.type` is `message`, with the speaker in `payload.role`. Skip `developer` records, which are injected instructions. |
99
+ | `show-me-your-work` | Check the log against this run's Codex rollout (see Tool actions). This run's rollout is the one whose name ends in `-$CODEX_THREAD_ID.jsonl`. If `CODEX_THREAD_ID` is unset, report that the audit could not run instead of guessing a rollout. Do not read Claude Code's projects directory. |
100
+ | `swarm` | Each worker is a `spawn_agent` call on your configured Codex model, and those calls already run concurrently; give each writing worker its own worktree or output directory (see Subagent policy above). |
101
+ | `why` | The parallel investigators and the synthesizer map to `spawn_agent`; substitute your configured Codex models. List MCP servers from the tools Codex exposes to the session, not from `.mcp.json` or `claude mcp list`. |
102
+
103
+ ## Vendored scripts
104
+
105
+ `skills/poteto-mode/scripts/` ships the `watch-pr` PR watcher and `worktree-audit.mjs`. The `watch-pr/ship-pr` command owns pending-merge inspection and cancellation; `resume.mjs` owns the shared checkpoint locator described in [Resume storage](resume-storage.md). These scripts use bun and Node.js and run the same on Codex; invoke them through `shell`. They need `bun` and `gh`, or `origin` when the forge is Origin. Run `worktree-audit.mjs` with `node`, as its shebang does. The audit follows each link in a worktree's ancestor directories with `stat` and matches it by the directory it lands on, under bun and node alike. A worktree whose own path bun cannot resolve loses its last chat and lands in `review`. A dangling or looping link is ignored. Any other link that `stat` cannot follow puts every worktree under the link's directory in `review`, with a warning that names the link. `worktree-audit.mjs` scans Codex sessions under `$CODEX_HOME/sessions` and `$CODEX_HOME/archived_sessions` (default `~/.codex`), along with any Claude Code or Pi transcript directory that exists. It imports the transcript walker from `skills/reflect/scripts/find-transcript.mjs`, so keep the `reflect` skill installed beside `poteto-mode`.
106
+
107
+ ## Instructions file
108
+
109
+ Where a pstack skill says "your instructions file", on Codex that is `AGENTS.md` (project root, plus `~/.codex/AGENTS.md` global). On Claude Code it is `CLAUDE.md`.
@@ -0,0 +1,143 @@
1
+ # GitHub Copilot tool mapping for pstack
2
+
3
+ pstack skills are written in Claude Code tool language (the `Skill` tool, the `Agent` tool, `AskUserQuestion`, Claude model names, `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/` and `~/.claude/orchestrate/` paths). On GitHub Copilot the skills are the same files; only the tool names, model IDs, and paths resolve differently. Read this when a pstack skill names a Claude tool, a driver or bundled skill, a Claude model, or a Claude Code path. It covers both the Copilot CLI and the Copilot app, which load the same plugin. This file is Copilot-specific; other runtimes use their own equivalents.
4
+
5
+ ## Tool actions
6
+
7
+ | pstack / Claude action | GitHub Copilot equivalent |
8
+ |------------------------|---------------------------|
9
+ | Read a file (`Read`) | `view` |
10
+ | Create a file | `create` |
11
+ | Edit a file | `edit` |
12
+ | Run a shell command | `bash` |
13
+ | Search file contents / find files | `grep` / `glob` |
14
+ | Fetch a URL | `web_fetch` |
15
+ | Search the web | `web_search` |
16
+ | Invoke a skill (the `Skill` tool, `/command`, `pstack:<skill>`) | The `skill` tool with the bare skill name (`poteto-mode`, not `pstack:poteto-mode`). A user types `/pstack:<skill>` in the CLI prompt; on CLI 1.0.89 a bare `/<skill>` reports an unknown command for a plugin skill. Copilot's prompt lists only part of a large plugin's skills (a character budget cuts the alphabetical tail); a skill missing from that list still loads by name. |
17
+ | Dispatch a subagent (the `Agent`/`Task` tool) | The `task` tool: `agent_type`, `model`, `mode`, `name`, `prompt`. |
18
+ | Dispatch N parallel subagents in one turn | N `task` calls in one response. |
19
+ | Background subagent (`run_in_background: true`) | `task` with `mode: "background"`; you are notified when it finishes. |
20
+ | Read a subagent's result / message a running one | `read_agent` / `write_agent`; `list_agents` finds IDs you lost. |
21
+ | Track tasks (the todolist; `TaskCreate` / `TaskUpdate`, or `TodoWrite` on Claude Code) | The `sql` tool against the session database's built-in `todos` table (plus `todo_deps` for ordering). |
22
+ | Ask the human a fixed-choice question (`AskUserQuestion`) | `ask_user` with a `choices` list, one question per call. Where `ask_user` takes an elicitation form instead (`message` and a `requestedSchema`, as on Copilot CLI 1.0.89), one `oneOf` string property is the choice list. Treat it as single-select only, because the Copilot app's `ask_user` has no multi-select, and the UI adds a free-text option on its own. Emulate multi-select with sequential questions. |
23
+ | Search Claude Code transcripts under `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/projects/` | Copilot session state, scoped to the current workspace; see Transcripts below. |
24
+
25
+ ## Subagent policy
26
+
27
+ poteto-mode's Subagents section sets Claude-specific defaults (`subagent_type: "pstack:poteto-agent"`, `run_in_background: true`). On GitHub Copilot:
28
+
29
+ - The plugin's agents load as `task` agent types under their namespaced names, `pstack:poteto-agent`, `pstack:comment-sicko`, `pstack:thermo-nuclear-review-subagent`, and `pstack:thermo-nuclear-code-quality-review-subagent`. Pass the skill's `subagent_type` as `agent_type` unchanged.
30
+ - `subagent_type: "general-purpose"` maps to `agent_type: "general-purpose"`. Where a skill leaves the type unset, use `pstack:poteto-agent`.
31
+ - `readonly: true` (reviewers, explorers, critics) maps to a read-only agent type: `explore` for code reading, `code-review` for diff review. When a read-only role must run commands or reach MCP tools, use `general-purpose` and tell it in the prompt not to write files; review its diff anyway.
32
+ - `readonly: false`, or a role that needs MCP tools, maps to `general-purpose` or `pstack:poteto-agent`.
33
+ - Reasoning effort maps to `task`'s `reasoning_effort`. Pass a role value's `@<level>` suffix, or else the sheet's `default effort` level, as `reasoning_effort`; `session` omits it.
34
+ - `run_in_background: true` maps to `mode: "background"`. `mode: "sync"` blocks your turn; use it only when the next step needs the result.
35
+ - A model a skill states for a role (its Models section, an `Agent` call's `model`, or the user's sheet line) is an explicit model instruction, so pass it as `task`'s `model`. A role with no configured model omits `model`. See Model names below for how a Claude default resolves.
36
+ - Workers that write share this machine on the CLI, so the **swarm** skill's workers and the fan-out playbooks (`orchestrate`, `autopilot-full`, `autopilot-stack`) isolate writers with worktrees, as on Claude Code. In the Copilot app, `create_session` gives each writer its own worktree session instead; see App and CLI below.
37
+ - Keep the rest of the policy unchanged. Pass file pointers not inlined context, give each worker its own worktree or branch when they write, review every subagent's diff yourself.
38
+
39
+ ## Model names
40
+
41
+ Skills name Claude Code model aliases in their Models sections. Those aliases are not Copilot model IDs, and the Copilot build ships no default model IDs: the models an account can reach depend on its plan and policy, so the user picks them once.
42
+
43
+ - The model sheet is `${COPILOT_HOME:-~/.copilot}/pstack-models.md`. It sits outside the workspace, so reading it asks for path access. The plugin's SessionStart hook reads it, checks it, and adds its role lines to the session context as the user's saved pstack model choices. Take role models from that block and do not `view` the sheet. A role line names the model for that role.
44
+ - Read the sheet only when that block and the hook's `sheet invalid` or no-sheet note are all missing, as in a skills-only install with no hook. `view`, `create`, and `edit` take literal paths and expand neither `~` nor `$COPILOT_HOME`, so print the sheet's absolute path with `bash` first (`echo "${COPILOT_HOME:-$HOME/.copilot}/pstack-models.md"`) and read and write exactly that path; do not append `.copilot` or any other segment to it. A session with its own `COPILOT_HOME` then never touches `~/.copilot`.
45
+ - No sheet, or the hook reports `sheet invalid`: before a skill that needs a role model (`architect`, `arena`, `how`, `interrogate`, `no-comments`, `poteto-mode`, `reflect`, `swarm`, `thermos`, `why`), stop, load `setup-pstack` with the `skill` tool, and finish it first. In that same session, use the values it just wrote; later sessions get them from the hook. Do not ask again on later runs.
46
+ - A role line in the sheet is the user's explicit model instruction, so pass it as the `task` tool's `model` parameter. `inherit-parent` or `auto` omits `model`.
47
+ - The plugin's `PreToolUse` hook enforces this for pstack agents. While the sheet is valid, it denies a `task` call whose `agent_type` starts with `pstack:` and whose `model` is not one of the sheet's values, and its reason lists the saved IDs. Retry with the role's saved model; never retry on another unsaved model. It leaves calls with no `model` and other agent types alone.
48
+ - Roles that default to the worker model (`feature, refactoring`): the worker model the user chose.
49
+ - Roles that default to the strongest model (`strongest judgment`): the strongest model the user chose.
50
+ - Diverse-model panels (`arena`, `architect`, `interrogate`): the adversarial signal comes from model diversity, so fill a panel from distinct vendors in the `task` tool's `model` list (Claude, GPT, Gemini, Grok, and so on). pstack ships no default Copilot panel. If only one vendor is reachable, vary reasoning effort and note in the verdict that diversity was reduced.
51
+
52
+ `setup-pstack` lists the models from the `model` enum of the `task` tool and writes only IDs it saw there. After it writes the sheet, it runs its `check-sheet.sh` script, which applies the hook's checks.
53
+
54
+ Run `setup-pstack`, and the parent session that orchestrates a panel, on a model at least as strong as gpt-5.4-mini or a Sonnet-class Claude model. On a Haiku-class model, setup picked models the user never chose in about half of the smoke runs.
55
+
56
+ ## Session routing hook
57
+
58
+ The plugin's `SessionStart` hook runs on the Copilot CLI and in the Copilot app. Copilot loads the plugin through its own Copilot manifest and hook file, not the Claude Code ones. The hook prints the routing mandate as the `additionalContext` JSON Copilot injects. It reads `${COPILOT_HOME:-~/.copilot}/pstack-models.md`, which the session itself cannot read without a path-access prompt. `session hook: off` disables injection. When the sheet passes the checks `check-sheet.sh` applies, the injected context ends with one line per role, rebuilt from the checked values; no other sheet text reaches the context. When it fails them, the context says `sheet invalid` and names each problem. With no sheet, it says so. Either way it tells the session to run `setup-pstack` before the first skill that dispatches on role models. The mandate names skills as `pstack:<skill>`; on Copilot load them by bare name.
59
+
60
+ If the mandate is missing from a session (a skills-only install, a Copilot version that drops plugin hook context, or another plugin's hook replacing it), add the standing instruction `setup-pstack` describes to `~/.copilot/copilot-instructions.md`, or request `poteto-mode` explicitly.
61
+
62
+ ## Plugin file access
63
+
64
+ Copilot limits file access to the workspace and the system temporary directory, so reading a playbook, reference, or script from the installed plugin would ask for path access on every session, and a `-p` run without `--allow-all-paths` would deny it. The plugin's `PreToolUse` hook approves two kinds of call.
65
+
66
+ - `view` of a path inside `COPILOT_PLUGIN_ROOT` that has no `.` or `..` segment.
67
+ - `bash` that runs a registered script by its absolute path under `COPILOT_PLUGIN_ROOT/skills/`, using its documented arguments. The registered scripts are `log.sh` (run with `bash`), `check-sheet.sh` (run with `sh` or `bash`), and `find-transcript.mjs`, `resume.mjs`, `check-plan.mjs`, `check-playbooks.mjs`, and `worktree-audit.mjs` (run with `node`). Direct execution is also accepted. The hook checks each script's argument contract: for example, only the first of `log.sh`'s six arguments is a filename; the others are prose. Resume accepts its operation first, then `--project`, `--note`, and repeated `--artifact` paths as applicable, using either `--option=value` or `--option value`.
68
+
69
+ Each argument is a plain word of letters, digits, and `_ . / : = @ % + , -`, or a single-quoted string with no quote inside. Path operands may not climb with `..` and must resolve inside the workspace after following directory symlinks; a path in the plugin takes the normal permission flow, so no approved script can rewrite the context every session loads. File and dangling symlinks take the normal permission flow. The command holds none of `; | & $`, a backtick, `< > ( ) \`, a double quote, or a newline. Run one command per call, with no pipe or redirect. Unknown scripts, unrecognized argument forms, and mismatched interpreters take the normal permission flow.
70
+
71
+ Every other call, including a script run in any other form and `grep` or `glob` in the plugin's tree, takes the normal permission flow. So does a command that asks to bypass the sandbox, because Copilot prompts for a bypass whatever a hook answers. The hook does not approve scripts when the plugin sits inside the workspace or the workspace inside the plugin, since a session could edit a script and then run it. Where that hook does not run (a skills-only install, or hooks disabled), start the CLI with `--add-dir <plugin directory>` or run `/add-dir <plugin directory>` in the session; a GitHub marketplace install lives under `${COPILOT_HOME:-~/.copilot}/installed-plugins/<marketplace>/pstack`.
72
+
73
+ ## App and CLI
74
+
75
+ The Copilot app loads the same plugin as the CLI and adds session-level tools. Use the app primitive when it is present in your tool list; otherwise use the CLI fallback.
76
+
77
+ | pstack need | Copilot app | Copilot CLI |
78
+ |-------------|-------------|-------------|
79
+ | Isolated writer (swarm worker, stack layer, orchestrate worker) | `create_session`, one worktree session per writer | `git worktree add` per writer, then `task` workers pointed at it |
80
+ | Recurring wake-up (`loop`, the `/loop` audit tick, babysit's cadence) | `save_session_automation` on this session | Re-run the step yourself each turn, or ask the user to re-invoke; state the cadence in the decision trail |
81
+ | Coordinate several sessions or repos (`orchestrate`, `autopilot-full`) | The app's `orchestrate` skill plus `send_session_message` | `task` fan-out with worktrees; `/fleet` for parallel subagents |
82
+ | Stacked PRs (`autopilot-stack`, shipping a stack) | The app's `pr-stack` skill, one child session per layer | `gh` or `origin`, one worktree per layer |
83
+ | Watch a PR to merge (`babysit`, `watch-pr`) | Agent merge on the session, or `babysit` with `save_session_automation` | `babysit` with the vendored `watch-pr` script and `gh` |
84
+ | Drive a UI | The `browser` canvas, or your browser automation | Your browser automation, or a concrete manual check for the user |
85
+
86
+ ## Transcripts
87
+
88
+ Claude Code keeps one directory per project under `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/projects/<encoded-cwd>/`. Copilot keeps one directory per session under `${COPILOT_HOME:-~/.copilot}/session-state/<session-id>/`, for every project together:
89
+
90
+ - `events.jsonl` is the transcript. The first record is `session.start` with `data.context.cwd`; user turns are `{"type":"user.message","data":{"content":...}}`.
91
+ - `workspace.yaml` names the session's `cwd`. Scope every transcript search to the current workspace: keep only session directories whose `cwd` is the workspace path (or a worktree of it), then read their `events.jsonl`. Never read other projects' sessions.
92
+ - When a skill says "this session's transcript", it is the newest matching session directory whose `events.jsonl` contains the opening prompt.
93
+
94
+ In poteto-mode's playbooks, the Eval playbook reads candidate transcripts from Copilot session state, and `session-pickup` and `worktree-cleanup` search it scoped to the workspace. `orchestrate` and `multi-phase-plan` keep their store under `${COPILOT_HOME:-~/.copilot}/orchestrate/` instead of `~/.claude/orchestrate/`.
95
+
96
+ ## Driver and bundled skills pstack references
97
+
98
+ The [driver policy](../SKILL.md#non-negotiables) selects the app driver. For skills and drivers named by these workflows, use these Copilot equivalents:
99
+
100
+ | Skill or driver named in pstack | On GitHub Copilot |
101
+ |---------------------------------|-------------------|
102
+ | `run` (drive a CLI/TUI to see a change work) | Run the app yourself via `bash` and observe the real output. |
103
+ | Project UI driver | Drive the UI with whatever automation you have (the app's `browser` canvas, a browser skill), or hand the user a concrete manual check. Do not claim done without observing the artifact. |
104
+ | `plugin-dev:skill-development` (Claude's SKILL.md authoring guidance) | Follow the Agent Skills conventions: a `SKILL.md` with `name` + `description` frontmatter, progressive disclosure into `references/`, and poteto-mode's [authoring-a-skill playbook](../playbooks/authoring-a-skill.md). |
105
+ | `loop` (recurring/self-paced re-invocation, used by `babysit`) | Copilot has no `loop` skill. In the app use `save_session_automation`; on the CLI re-run the step yourself on a cadence. |
106
+
107
+ ## Per-skill notes
108
+
109
+ Affected skill entry points point here. Most skills need only the tables above. These need one more mapping:
110
+
111
+ | Skill | On GitHub Copilot |
112
+ |-------|-------------------|
113
+ | `interrogate` | Each adversary is a `task` call: `subagent_type` becomes `agent_type`, and `model` comes from the sheet. Keep the panel's vendors distinct. |
114
+ | `setup-pstack` | The skill's [Other runtimes](../../setup-pstack/references/runtimes.md) table names the Copilot sheet path and how it loads. Its [Copilot setup questions](../../setup-pstack/copilot.md) list models from the `task` tool's `model` enum and ask one `ask_user` question per tier and panel slot, grouped by vendor, with no recommended model; a first question lets a plan with one model, or anyone who wants no per-role choices, run every role on the session's model. The role rows are identical; the `session hook` line also controls the Copilot hook. |
115
+ | `architect` | The runner panel goes through the **arena** skill: one `task` per runner, each with a model from the sheet's `architect runners` line. |
116
+ | `how` | The explorers and the explainer are `task` calls with the sheet's `how` role models; critics use a read-only agent type (see Subagent policy). |
117
+ | `arena` | Runners and the cross-judge pool come from the sheet's panel lines; pick the cross-judge from a different vendor than the candidate it grades. |
118
+ | `no-comments` | Dispatch `task` with `agent_type: "pstack:comment-sicko"`. |
119
+ | `thermos` | Dispatch two `task` calls with `mode: "background"`, `agent_type: "pstack:thermo-nuclear-review-subagent"` and `agent_type: "pstack:thermo-nuclear-code-quality-review-subagent"`, each with the same diff and file contents in its prompt. |
120
+ | `swarm` | Workers are `task` calls with `mode: "background"`, each on its own worktree; in the app, `create_session` per worker. |
121
+ | `teach` | Running `how` and `why` in parallel maps to `task` fan-out; image generation uses whatever image tool you have, or skip it and say so. |
122
+ | `why` | Available MCP servers appear in your tool list; there is no `mcp__` prefix convention to scan for. |
123
+ | `reflect` | Run `find-transcript.mjs <session-state directory> '<opening prompt fragment>' <workspace directory>` with the absolute session-state path under `${COPILOT_HOME:-~/.copilot}`. The workspace defaults to the current directory when omitted. The finder checks the session header's `cwd` against that workspace before reading Copilot's `user.message` records, so matching prompts in other projects are skipped. For a conversation in a related worktree, pass that worktree's directory explicitly. Reviewer references that name `.claude/skills/` and `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/` paths mean the Copilot skill locations below. |
124
+ | `recall` | Search Copilot session state scoped to the current workspace (Transcripts above), not `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/projects/`. |
125
+ | `show-me-your-work` | The end-of-run check reads this session's `events.jsonl` (Transcripts above). |
126
+ | `automate-me` | Mode skills live in the Copilot skill locations below; transcripts come from Transcripts above; `plugin-dev:skill-development` resolves through the skills table. |
127
+ | `create-verification-skill` | The generated skill lands under `.claude/skills/verify/` on Claude Code; on Copilot write it to `.github/skills/verify/`. The app-driving harness is platform-neutral. |
128
+ | `maintain-verification-skill` | The parallel per-feature source readers map to `task` fan-out; the project-local skill lives under `.github/skills/`, not `.claude/skills/`. |
129
+ | `create-formal-verification-skill` | On Copilot write the generated skill to `.github/skills/<area>/`, named for the area it verifies. The verifier and its run command are platform-neutral. |
130
+ | `maintain-formal-verification-skill` | Project skills, the formal verification skill among them, live under `.github/skills/`. |
131
+ | `babysit` | `loop` and `AskUserQuestion` resolve through the tables above; in the app, `save_session_automation` is the cadence. |
132
+
133
+ ## Vendored scripts
134
+
135
+ `skills/poteto-mode/scripts/` ships the `watch-pr` PR watcher, `resume.mjs`, and `worktree-audit.mjs`. They use bun and Node.js and run the same on Copilot; invoke them through `bash` in the form Plugin file access above describes. They need `bun` and `gh`, or `origin` when the forge is Origin. `worktree-audit.mjs` finds each worktree's last chat in Claude Code transcripts under `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/projects/`, in Codex and Pi sessions, and in Copilot sessions under `${COPILOT_HOME:-~/.copilot}/session-state`. Pass transcript directories after the repo path to scan others instead. It imports the transcript walker from `skills/reflect/scripts/find-transcript.mjs`, so keep the `reflect` skill installed beside `poteto-mode`.
136
+
137
+ ## Instructions file
138
+
139
+ Where a pstack skill says "your instructions file" or `CLAUDE.md`, on Copilot that is `AGENTS.md` or `.github/copilot-instructions.md` in the repository, and `~/.copilot/copilot-instructions.md` for every repository. Copilot also reads a repository's `CLAUDE.md`. Copilot does not expand `@~/` includes in user-level instructions, so the plugin hook injects the model sheet's role lines instead, as Model names above describes.
140
+
141
+ ## Skill locations
142
+
143
+ Where a pstack skill names `.claude/skills/`, on Copilot project skills live under `.github/skills/` (Copilot also reads `.claude/skills/` and `.agents/skills/`), and personal skills under `~/.copilot/skills/` or `~/.agents/skills/`.
@@ -0,0 +1,50 @@
1
+ # Grok Build tool mapping for pstack
2
+
3
+ Grok Build loads the pstack plugin's skills. It does not translate Claude Code tool names in those skills. Use the tools the session exposes; availability and permissions can differ.
4
+
5
+ ## Tool actions
6
+
7
+ | pstack / Claude action | Grok Build equivalent |
8
+ | --- | --- |
9
+ | Read (`Read`) | `read_file` with `target_file` set to the path in the session's skills list |
10
+ | Write (`Write`) / edit (`Edit`) | `write` / `search_replace` |
11
+ | Shell (`Bash`) | `run_terminal_command` |
12
+ | Search (`Grep` / `Glob`) | `grep` / `list_dir` |
13
+ | Web (`WebSearch` / `WebFetch`) | `web_search` / `run_terminal_command` with `curl` |
14
+ | Skill (`Skill`) | Read the path from the session's skills list with `read_file`; `/poteto-mode` also expands the skill |
15
+ | Subagent (`Agent` / `Task`) | `spawn_subagent` with `prompt` and `description`; `run_in_background` defaults to `true`; use `isolation: "worktree"` where needed |
16
+ | Wait for a subagent (`TaskOutput`) | `get_command_or_subagent_output` with its task ID |
17
+ | Send to a subagent (`SendMessage`) | `send_subagent_message`, off by default; `GROK_ACTIVE_AGENT_MESSAGES` or `[features] active_agent_messages` enables it. Without the tool, do not claim to have sent an update |
18
+ | Stop a subagent (`TaskStop`) | `kill_command_or_subagent` |
19
+ | Tasks (`TaskCreate` / `TaskUpdate` / `TodoWrite`) | `todo_write` |
20
+ | Questions (`AskUserQuestion`) | `ask_user_question` |
21
+ | MCP (`mcp__<server>__<tool>`) | `search_tool`, then `use_tool` |
22
+ | Wake-up (`ScheduleWakeup`) | For user-authorized recurring work, `scheduler_create` schedules a background subagent while the session is open; `scheduler_list` and `scheduler_delete` inspect or remove it. It is not a one-shot wake-up. |
23
+ | Claude transcript search | Grok stores sessions under `${GROK_HOME:-~/.grok}/sessions`; inspect the relevant session there rather than Claude's projects directory |
24
+
25
+ Grok does not inject the Claude SessionStart hook output. The Grok-only routing skill asks the model to read poteto-mode through its description; this is a model-followed hint, not guaranteed injection. The pstack `session hook: off` setting does not suppress it. Disable the plugin to remove the hint and its other skills.
26
+
27
+ ## Subagent policy
28
+
29
+ poteto-mode's Subagents section dispatches `subagent_type: "pstack:poteto-agent"`, and other skills name `general-purpose`. The Grok build ships skills and no agent definitions.
30
+
31
+ - For `pstack:poteto-agent` or `general-purpose`, omit `subagent_type`. Grok cannot select a built-in type by name and runs an omitted type as `general-purpose`.
32
+ - Put the absolute path of `poteto-mode`'s `SKILL.md` in every brief that stands in for `pstack:poteto-agent`, as poteto-mode asks.
33
+
34
+ ## Model names
35
+
36
+ Skills name Claude Code model aliases in their Models sections. Grok Build's available models depend on the user's configuration; do not pass a Claude alias as a Grok model.
37
+
38
+ - The model sheet is `${GROK_HOME:-~/.grok}/pstack-models.md`. Before a skill that needs a role model (`architect`, `arena`, `how`, `interrogate`, `no-comments`, `poteto-mode`, `reflect`, `swarm`, `thermos`, `why`), read it. With no sheet, use the runtime default; run `setup-pstack` only when the user asks to configure roles.
39
+ - The `spawn_subagent` tool says to omit `model` unless the user explicitly requests one. It has no effort parameter; when it cannot apply a sheet choice, report that limitation instead of claiming model diversity.
40
+ - Roles that default to the worker model (`feature, refactoring`): the worker model the user chose.
41
+ - Roles that default to the strongest model (`strongest judgment`): the strongest model the user chose.
42
+ - Diverse-model panels (`arena`, `architect`, `interrogate`) require distinct models. Report when the available dispatch cannot provide that diversity.
43
+
44
+ `/setup-pstack` writes the sheet. Choose only models the session exposes.
45
+
46
+ ## Per-skill notes
47
+
48
+ | Skill | On Grok Build |
49
+ | --- | --- |
50
+ | `why` | The parallel investigators and the synthesizer map to `spawn_subagent` fan-out. List MCP servers with `search_tool`, not from Claude Code's MCP files. |
@@ -0,0 +1,40 @@
1
+ # Kimi Code CLI tool mapping for pstack
2
+
3
+ Kimi Code CLI loads pstack as a native plugin. Its tools differ from Claude Code's. Use the tools and parameters available in the current session if they differ from this guide.
4
+
5
+ | Claude Code action | Kimi Code CLI action |
6
+ | --- | --- |
7
+ | Read, write, edit, and search files | `Read`, `Write`, `Edit`, `Grep`, and `Glob` |
8
+ | Run a shell command | `Bash` |
9
+ | Fetch a URL or search the web | `FetchURL` or `WebSearch`, when available |
10
+ | Invoke a skill with the `Skill` tool | `Skill` with the qualified name, for example `pstack:poteto-mode` |
11
+ | Dispatch a subagent with the `Agent`/`Task` tool and `subagent_type` | `Agent` with `prompt`, `description`, and `subagent_type`. `general-purpose` maps to `coder`, and `readonly: true` maps to `explore`, which never modifies files. Use `plan` for planning. |
12
+ | `run_in_background: true` | `Agent` with `run_in_background: true`. Read progress with `TaskOutput` and wait for the result with `WaitFor`. |
13
+ | Track tasks with `TaskCreate` / `TaskUpdate`, or `TodoWrite` | `TodoList` with `todos`, each with a `title` and `status` |
14
+ | `AskUserQuestion` | `AskUserQuestion`, or ask in the reply when the host cannot show questions |
15
+ | `SendMessage` | Kimi has no tool to message a running agent. Wait for it with `WaitFor`, or stop it with `TaskStop` and continue it with `Agent`, setting `resume` to its ID. |
16
+ | `ScheduleWakeup` and the `loop` skill | `CronCreate` with `cron`, `prompt`, and `recurring: false` for a one-time wake-up. When `KIMI_DISABLE_CRON=1` turns scheduled tasks off, say that scheduling is unavailable. |
17
+ | `CLAUDE.md` | Follow Kimi's `AGENTS.md` instructions and any project instructions the user supplies. |
18
+ | Search Claude Code transcripts under `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/projects/` | `<KIMI_CODE_HOME>/session_index.jsonl` lists each session's `sessionDir` and `workDir`, and the session's transcript is `agents/main/wire.jsonl` in that `sessionDir`. Do not read Claude Code's projects directory, which holds Claude Code history, not this session's. |
19
+ | `plugin-dev:skill-development` | Kimi ships no skill-authoring skill. Write a `SKILL.md` with the `name` and `description` frontmatter Kimi requires. |
20
+ | Project skills under `.claude/skills/` | Kimi loads project skills from `.kimi-code/skills/` and `.agents/skills/`. |
21
+
22
+ Kimi's built-in subagents do not themselves spawn children. When a pstack skill names a plugin agent such as `pstack:poteto-agent`, which Kimi does not load, give the matching built-in agent its instructions in the prompt. `isolation: "worktree"` has no `Agent` parameter, so create a separate worktree for each concurrent writer.
23
+
24
+ Kimi's `AgentSwarm` runs only while the user has enabled swarm mode. When it is off, use separate `Agent` calls where the current tool contract permits them. The `Skill` tool has a maximum nesting depth of three; if a workflow exceeds it, read the next skill file directly and follow it.
25
+
26
+ The plugin contributes routing instructions to the system prompt while enabled. A custom agent prompt must include `${plugin_sections}` or the effective default prompt to receive them. Disable the plugin with `/plugins disable pstack` to stop both routing and its skills, then reload or start a new session. Unlike pstack's shell hooks, this static contribution does not read the `session hook` setting. A resumed session can retain its previous prompt until Kimi rebuilds it.
27
+
28
+ Kimi does not load Claude Code plugin agent definitions through this package. Kimi's skill parser does not document Claude Code's `user-invocable` flag, so principle skills may appear in its picker; this has not been tested in a session. These limitations and any unverified tool behavior must be reported rather than treated as equivalent to Claude Code.
29
+
30
+ ## Model names
31
+
32
+ Skills name Claude model aliases; do not assume they are available on Kimi. Use only models advertised by the current `Agent` tool; if it has no `model` parameter, omit `model`. Omitting it uses the configured subagent default when present, otherwise the parent's model. Kimi does not expose a per-call effort parameter.
33
+
34
+ Read `<KIMI_CODE_HOME>/pstack-models.md` before a skill that needs a role model (`architect`, `arena`, `how`, `interrogate`, `no-comments`, `poteto-mode`, `reflect`, `swarm`, `thermos`, `why`). KIMI_CODE_HOME defaults to `~/.kimi-code`. If the sheet is absent, omit `model`. For diverse-model panels, use available distinct models and report if diversity is unavailable. `setup-pstack` writes the model choices; `inherit-parent` and `auto` both omit `model`.
35
+
36
+ ## Per-skill notes
37
+
38
+ | Skill | On Kimi Code CLI |
39
+ | --- | --- |
40
+ | `why` | Run independent investigators with `Agent` where permitted and wait for their results. |
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Lauren Tan
4
+ Copyright (c) 2026 Michael Denyer
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Cursor
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Cursor
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,13 @@
1
+ # NOTICE for the skills-only distribution
2
+
3
+ This distribution contains MIT-licensed work from three upstream sources. The copyright notices and license terms travel beside this file.
4
+
5
+ ## Upstream sources
6
+
7
+ | Included work | Upstream | Copyright | License |
8
+ | --- | --- | --- | --- |
9
+ | pstack-derived skills, principles, scripts, and the `comment-sicko` definition | [cursor/plugins/pstack](https://github.com/cursor/plugins/tree/e46364b8be46000b7df0f260550cd712afbb8d36/pstack), with later additions from [3fe2823](https://github.com/cursor/plugins/tree/3fe2823ce17c1656c222d4b7c59d3f82fbf20143/pstack) , [4612556](https://github.com/cursor/plugins/tree/4612556/pstack), and [7314f72](https://github.com/cursor/plugins/tree/7314f72/pstack) | (c) 2026 Lauren Tan | [MIT](LICENSE) |
10
+ | `deslop`, `make-pr-easy-to-review`, `fix-ci`, `fix-merge-conflicts`, `get-pr-comments`, and `what-did-i-get-done` | [cursor/plugins/cursor-team-kit](https://github.com/cursor/plugins/tree/e46364b8be46000b7df0f260550cd712afbb8d36/cursor-team-kit) | (c) 2026 Cursor | [MIT](LICENSE-cursor-team-kit) |
11
+ | `thermos`, `thermo-nuclear-review`, `thermo-nuclear-code-quality-review`, and the `thermo-nuclear-review-subagent` and `thermo-nuclear-code-quality-review-subagent` definitions | [cursor/plugins/thermos](https://github.com/cursor/plugins/tree/118e73b0e196e4d49d5aade7ce6dd8985a621f68/thermos) | (c) 2026 Cursor | [MIT](LICENSE-thermos) |
12
+
13
+ The pstack-claude port changes runtime names, tool calls, model defaults, and supporting prose. The port's modifications and additions are (c) 2026 Michael Denyer under the same [MIT license](LICENSE). The [repository notice](https://github.com/michael-denyer/pstack-claude/blob/main/NOTICE.md) records full provenance. The [change log](https://github.com/michael-denyer/pstack-claude/blob/main/CHANGES.md) records each release, and [`tools/forks.json`](https://github.com/michael-denyer/pstack-claude/blob/main/tools/forks.json) names each file the port forks and why.