Repository navigation
chore: sync with cursor/plugins — feat(pstack): add the statechart skill to draw TLA+ models as charts (#741) - #64
Merged
SmailG merged 22 commits intoOct 22, 2026
Conversation
[databricks-genie-one] Add Databricks Genie One plugin
…logo [databricks-genie-one] Use the Genie icon as the logo
Co-authored-by: Cursor <[email protected]>
feat(quickbooks-online): add Intuit QuickBooks skills
…s-skills Revert "feat(quickbooks-online): add Intuit QuickBooks skills"
Co-authored-by: Cursor <[email protected]>
Co-authored-by: Cursor <[email protected]>
Co-authored-by: Cursor <[email protected]>
…client-d351 google-cloud-bigquery: add team OAuth client variables
Co-authored-by: Cursor <[email protected]>
Add Lark and Feishu official remote MCP plugins
[framer] Add Framer plugin
Co-authored-by: Cursor <[email protected]>
Co-authored-by: Cursor <[email protected]>
Add Vanta plugin
…ursor#741) * Add the statechart skill to pstack Draws what a user sees as a Mermaid statechart generated from a TLA+ model. TLC checks the reader's rules as invariants. Each state is marked works, still wrong, or fixed by an open change, and each counterexample class is drawn as a numbered path. The skill also turns an agreed chart into a TLA+ skeleton and compares the drawn chart with the agreed one. Bumps pstack to 0.15.30 and regenerates the Claude Code harness tree. * Fix the review findings in the statechart skill - Check each rule in its own TLC run. The generated cfg names no rule, and a comment in it lists the rules. - Refuse TLC output from a run that failed or stopped early, and read counterexamples that a start state breaks. - Count steps that change nothing when a state is settled, number bugs that only the fixed model has after the current bugs, and escape quotes in captions. - Compare parallel regions as one machine, and refuse charts that were not drawn for comparison. - Refuse final states and duplicate captions, read class shorthand and states first named inside a composite, and match a never line to an exact state. - Rewrite SKILL.md to match, and run the skill script tests in CI. * Refuse a -- outside a composite in statechart charts A -- at the top level of a chart opened a second root part that the parser never read, so every region after it was dropped. chart-to-tla wrote a one-region skeleton, and compare-charts could print "same". parseMermaid now refuses the chart. A unit test covers parseMermaid, chart-to-tla, and compare-charts. Co-authored-by: lauren <[email protected]> * Exit 2 when compare-charts cannot read a chart compare-charts let a read or parse error escape, so a chart it could not read exited 1, the code for charts that differ. It now prints the file and the reason to stderr and exits 2, as SKILL.md says for a refused chart. Exit 1 now means only that the charts differ. Co-authored-by: lauren <[email protected]> * Update the statechart skill to its current version Replace the skill, its scripts, and its tests with the current version. statechart.mjs runs the whole flow with from-spec and from-chart, and its --help replaces the old Setup section. New features are a code-against-spec audit (--against), nested state boxes, parallel regions, guards, scoped charts, timer labels, and legend groups and colors chosen in the mapping. TLC comes from TLA2TOOLS and JAVA only. Without TLA2TOOLS, the scripts point to the TLA+ releases page and exit 2. Co-authored-by: lauren <[email protected]> * Exit 2 when --png cannot render a chart A failed mermaid-cli render printed "could not render" but still exited 0, or 0 with --expect-broken, so callers reported PNGs that did not exist. finish() now exits 2 whenever --png renders fewer PNGs than charts, and keeps the files it wrote. The --help exit codes say so, and a new test covers it with an npx that cannot launch a browser. Co-authored-by: lauren <[email protected]> * Update the statechart skill to its latest version Rendered charts keep their full width. An edge label writes the opening words that its choices share once, instead of cutting the label with "…". --full-labels replaces --all-labels, and compare-charts refuses a chart drawn without it. The fix replay matches each bug step by the screens and step words that the reader sees, and two states get at most one arrow. Each rule also runs as a TLC CONSTRAINT, so a rule that stays broken stops at its first bad state instead of flooding TLC with counterexamples. statechart.mjs passes its arguments and models through functions instead of module globals. The --png exit code from the previous commit is now part of the source. Co-authored-by: lauren <[email protected]> * Update the statechart skill: safe output folder, its TLA+ model, and the comment and assignment cleanups Co-authored-by: lauren <[email protected]> * Drop a comment in the public findTlc that only describes the code Co-authored-by: lauren <[email protected]> --------- Co-authored-by: Cursor Agent <[email protected]>
…d-the-statechart-skill-to-draw-tla-models-as-c-21-commits # Conflicts: # README.md
SmailG
deleted the
sync/feat-pstack-add-the-statechart-skill-to-draw-tla-models-as-c-21-commits
branch
October 22, 2026 11:09
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
⛔ Files ignored due to path filters: 50
📒 Files selected for processing: 21
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
Upstream changes
eb4db2b feat(pstack): add the statechart skill to draw TLA+ models as charts (cursor#741)
d1453c1 Merge pull request cursor#766 from cursor/djiang/vanta-mcp
e78ec96 feat(vanta): add EU and AUS regional MCP servers
25ae447 feat(third_party): add Vanta remote MCP plugin
f2bad52 Merge pull request cursor#764 from cursor/liam-ilan/framer
6b5df0c feat(third_party): add Framer plugin
13f7ad1 Merge pull request cursor#763 from cursor/djiang/lark-mcp
fa7facd feat(feishu): add Feishu remote MCP plugin
a3a6c05 Merge pull request cursor#761 from cursor/cursor/bigquery-team-oauth-client-d351
d27bff4 feat(lark): add Lark remote MCP plugin
23bc01d google-cloud-bigquery: require the team OAuth client variables
017da53 google-cloud-bigquery: add optional team OAuth client variables
699e1e7 Merge pull request cursor#758 from cursor/revert-757-djiang/quickbooks-skills
82b7afa Revert "feat(quickbooks-online): add Intuit QuickBooks skills"
5dba0b8 Merge pull request cursor#757 from djiang-jq/djiang/quickbooks-skills
1b5e36c feat(quickbooks-online): add Intuit QuickBooks skills
1541ad7 Merge pull request cursor#756 from cursor/liam-ilan/databricks-genie-logo
36f6c1e chore(databricks-genie-one): use the Genie icon as the logo
adeec11 Merge pull request cursor#754 from cursor/liam-ilan/databricks-genie
fb4f183 fix(databricks-genie-one): default CLIENT_SECRET to empty for public clients
436a95b feat(third_party): add Databricks Genie One plugin
Automated sync via sync-upstream workflow