Repository navigation
feat(pstack): bring the statechart skill up to date, with the Pele renderer - #791
Merged
Merged
Conversation
…nderer Port 49 changes from the source copy of the skill. PNGs come from Pele and resvg in place of the Mermaid CLI, TLC installs with mise when TLA2TOOLS is not set, and the OutputFolder model is removed. SKILL.md keeps the wording from #741 for where a spec lives.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit f0956ad. Configure here.
…en the overview does productOf now records combined self-loops, but the flat graph that the regions proof compares against leaves them out unless --loops is set. A region with a stay-or-leave loop on one label then gave a false difference, and from-spec declined parallel regions. Pass the loops setting through productOf, compareCharts, and regionsChart. The proof chart marks "%% self-loops left out" so that compare-charts.mjs compares it the same way. Co-authored-by: lauren <poteto@users.noreply.github.com>
caelaxie
added a commit
to pstack-ports/devin-pstack
that referenced
this pull request
Oct 24, 2026
<!-- CURSOR_AGENT_PR_BODY_BEGIN --> synced to [`e73df47`](cursor/plugins@e73df47). compared `4ec7ffa..e73df47` for `pstack/`. `origin/main` is that commit. version is `0.15.32` in `plugin.json`, `.devin-plugin/plugin.json`, and the readme marker. ported: - [`076f4b2`](cursor/plugins@076f4b2) ([#791](cursor/plugins#791)) statechart skill update and the pele renderer. scripts copied verbatim, including the removal of the outputfolder model. `SKILL.md` keeps `/pstack:statechart` and `triggers: [user]`. - [`642289e`](cursor/plugins@642289e) ([#792](cursor/plugins#792)) bump to 0.15.31, folded into the 0.15.32 bump in `plugin.json` and `.devin-plugin/plugin.json`. - [`00d5dec`](cursor/plugins@00d5dec) ([#794](cursor/plugins#794)) generated verify skills read each model-check result with `/pstack:statechart`. - [`3c0fdb4`](cursor/plugins@3c0fdb4) ([#797](cursor/plugins#797)) add the ketchup-video skill. poteto-help, the readme skill table, and guide page 10 match. slash commands keep the `/pstack:` prefix. `disable-model-invocation: true` stays `triggers: [user]`. - [`b1a1298`](cursor/plugins@b1a1298) ([#798](cursor/plugins#798)) bump to 0.15.32, in `plugin.json`, `.devin-plugin/plugin.json`, and the readme marker. - [`7054003`](cursor/plugins@7054003) ([#800](cursor/plugins#800)) reflect edits leave `plugins/cache/` (devin's checkout is `~/.local/share/devin/cli/plugins/cache`). the destination is `.devin/skills/<skill>/` or `~/.config/devin/skills/<skill>/`. no pr and no push. - [`96dec8e`](cursor/plugins@96dec8e) ([#801](cursor/plugins#801)) watch-pr distinguishes fork heads. the pstack scripts were copied verbatim. - [`fe096ef`](cursor/plugins@fe096ef) ([#802](cursor/plugins#802)) watch-pr caps polling sleeps at the deadline. scripts copied verbatim. - [`86c2448`](cursor/plugins@86c2448) ([#803](cursor/plugins#803)) check-plan recognizes matching inline code delimiters. scripts copied verbatim. - [`3c596e7`](cursor/plugins@3c596e7) ([#804](cursor/plugins#804)) orch prefers the active pr. the changed files are under `pstack/skills/poteto-mode/scripts/orch/` and were copied verbatim. - [`f83fbe6`](cursor/plugins@f83fbe6) ([#805](cursor/plugins#805)) worktree-audit reads transcript mtimes with gnu stat and date. kept `rg -a` and the devin `sessions.db` directory. - [`e73df47`](cursor/plugins@e73df47) ([#807](cursor/plugins#807)) swarm phase a is numbered 1 to 4, phase b points at step 3, and phase d asks for a result table. skipped: - [`a0b0ad9`](cursor/plugins@a0b0ad9) ([#806](cursor/plugins#806)) claude code auto-update note. it sits in the claude code install section, and this readme has no such section. - `harness/pstack/claude-code/` copies in every commit above. this port does not carry the generated claude code tree. - [#792](cursor/plugins#792) and [#798](cursor/plugins#798) `pstack/.cursor-plugin/plugin.json`. cursor packaging. the version bump lands in `.devin-plugin/plugin.json` instead. harness proof (`devin plugins install`, `devin plugins list`, `/pstack:statechart`, `/pstack:ketchup-video`, `/pstack:poteto-mode`) will follow as a comment. the devin cli can't log in from this cloud environment. <!-- CURSOR_AGENT_PR_BODY_END --> <div><a href="https://cursor.com/agents/bc-1991bcdf-ceba-5d68-8535-0ec4d1228e4e?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a> <a href="https://cursor.com/background-agent?bcId=bc-1991bcdf-ceba-5d68-8535-0ec4d1228e4e&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a> </div> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Kaitian Xie <caelaxie@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Why
The pstack statechart skill is 49 changes behind the source copy that it is ported from. This port makes it match that copy again, with the same path mapping as #741, #776, and #779.
What changed
--pngrun installs both packages into a cache folder.TLA2TOOLSis not set, the skill installs TLC 1.7.4 with mise, pinned by checksum.TLA2TOOLSandJAVAstill take priority.tlc-to-chart.mjsis split into modules, the help text moves intostatechart-help.mjs, and thescripts/model/OutputFolderTLA+ model is removed.Scope
Blast Radius
Only the statechart skill and its generated Claude Code harness copy change. Agents that use the skill get the new charts and fixes on the next pstack release.
Verification
node --test pstack/skills/*/scripts/test/*.test.mjson Node 20 with TLC 1.7.4: 148 pass, 0 fail, 1 skip. The skip is the test that needs a mise-installed TLC.node scripts/generate-pstack-harness-trees.mjs --checkandnode scripts/validate-plugins.mjspass.