Repository navigation
chore(upstream): merge cursor/plugins - #35
Merged
Merged
Conversation
…nderer (cursor#791) * feat(pstack): bring the statechart skill up to date, with the Pele renderer 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 cursor#741 for where a spec lives. * fix(pstack): let the statechart regions proof leave out self-loops when 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 <[email protected]> --------- Co-authored-by: Cursor Agent <[email protected]>
Co-authored-by: Cursor Agent <[email protected]>
…esult with /statechart (cursor#794) * feat(pstack): tell generated verify skills to read each model-check result with /statechart * fix(pstack): match the /statechart paragraph to what statechart does now Statechart draws how any system moves between states, not only what a user sees, and it draws no path for a broken PROPERTY. Co-authored-by: lauren <[email protected]> --------- Co-authored-by: Lauren (agent) <[email protected]> Co-authored-by: Cursor Agent <[email protected]>
The listing now covers financial insights, invoicing actions, payroll, and QuickBooks Capital. Co-authored-by: Cursor <[email protected]>
Update the QuickBooks Online plugin description
Connect agents to PitchBook's hosted MCP server at https://premium.mcp.pitchbook.com/mcp. Auth is OAuth with dynamic client registration, so there is nothing to configure. Co-authored-by: Cursor <[email protected]>
Add PitchBook third-party MCP plugin
* feat(pstack): add the ketchup-video skill Port /ketchup-video: the /ketchup catch-up shown as a short silent video of slides, with the calls waiting on the user as text under it. Lists it in poteto-help, the README skills table, and the recipes guide, and regenerates the Claude Code harness tree. * fix(pstack): start the ketchup-video catch-up window at /ketchup-video Co-authored-by: lauren <[email protected]> --------- Co-authored-by: Cursor Agent <[email protected]>
Co-authored-by: Cursor Agent <[email protected]>
* fix(pstack): route reflect edits out of the plugin cache Reflect wrote approved skill edits into the installed plugin cache. A plugin update moved to a new hash and dropped them. Apply refuses a plugins/cache path. For a third-party skill, the edit is a PR against the repo named by plugin.json repository. Apply writes any other skill under .cursor/skills or ~/.cursor/skills. The summary names the PR URL or the destination path. Co-authored-by: Jhonny <[email protected]> * fix(pstack): keep reflect edits local and show destinations before approval The first commit sent a third-party skill edit to a PR on the plugin's repository. Every plugin manifest has a repository field, so an approved local edit could become a public PR the user never saw. Step 5 now copies a plugins/cache/ skill folder to .cursor/skills/ or ~/.cursor/skills/, shows that destination before approval, and edits the copy. It never opens a PR or pushes. Regenerate the Claude Code harness copy. Co-authored-by: lauren <[email protected]> --------- Co-authored-by: Cursor Agent <[email protected]> Co-authored-by: Jhonny <[email protected]>
) Signed-off-by: Rudy Celekli <[email protected]> Co-authored-by: Rudy Celekli <[email protected]>
Signed-off-by: Rudy Celekli <[email protected]> Co-authored-by: Rudy Celekli <[email protected]>
Signed-off-by: Rudy Celekli <[email protected]> Co-authored-by: Rudy Celekli <[email protected]>
Signed-off-by: Rudy Celekli <[email protected]> Co-authored-by: Rudy Celekli <[email protected]>
…e-audit (cursor#805) Co-authored-by: Chao Chen <[email protected]>
…ketplaces (cursor#806) Claude Code only auto-updates plugins from Anthropic's official marketplaces by default, so a pstack install from cursor-plugins stays pinned to its install version. Say so in the Claude Code install section and give the steps to turn auto-update on. Co-authored-by: Jaxon Wright <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]>
…rence (cursor#807) * fix(pstack): renumber swarm's Phase A and fix its dangling table reference cursor#634 cut Phase A item 3 and left the list numbered 1, 2, 4, 5 so that Phase B's "the step 4 model" kept pointing at the model step. Rendered Markdown renumbers the list, so readers see the model step as 3 while Phase B says 4. Number the list 1 to 4 and point Phase B at step 3. cursor#634 also cut the Phase C sentence that introduced the result table, which left Phase D's "the table" with nothing to refer to. Phase D now asks for "a result table". * fix(pstack): regenerate the Claude Code harness copy of swarm The validate workflow runs generate-pstack-harness-trees.mjs with --check, which fails while harness/pstack/claude-code/skills/swarm still holds the old numbering. Regenerate it from the source skill. --------- Co-authored-by: Michael Holland <[email protected]>
…one-variables-copy [databricks-genie-one] Update setup form copy
…icks-genie-one-variables-copy Revert "[databricks-genie-one] Update setup form copy"
[power-bi] Add Power BI plugin
Resolved pstack/skills/poteto-mode/scripts/worktree-audit.sh by keeping the port's transcript list, which also scans Claude Code and Codex session logs, and taking upstream's stat_fmt and fmt_day for GNU and BSD stat and date. They replace the port's own mtime array and date fallback, so the port's change to this file is now only the transcript list.
It follows ketchup, which is already ported, and ends with a video embedded in the reply, which a terminal cannot show. It gets the pstack-harness pointer, and the harness now says to give an embedded image or video by its absolute path. check.py requires that mapping for any skill that embeds a video. It is user-only, so it also gets the Codex policy file. The README lists it under ketchup.
…cache Upstream's reflect now refuses to edit a skill under plugins/cache/, since a plugin update moves to a new folder and drops the edit. The port has the same trap in two places: Claude Code keeps upstream's plugin in ~/.claude/plugins/cache/ with one folder per version, and pstack's own skills link into the clone behind ~/.agents/pstack/, which pstack update moves to each new release. pstack-harness now names both and says to copy the skill to the project or personal skill folder and edit the copy, unless the clone is the repo being worked in. check.py requires that mapping for any skill that mentions plugins/cache.
mstephenholl
added a commit
that referenced
this pull request
Oct 27, 2026
Upstream: cursor/plugins@519d36aa9895, which brings 5 pstack commits. The daily sync opened this pull request after #35 merged. `merge-upstream.py` resolved everything and found nothing to port. ## What changes - **Merge (`323d97f`)**: drops 441 upstream paths outside the port, including the new ServiceNow and RingCentral plugins, the Tailscale skill updates, and upstream's version bumps to 0.15.33 and 0.15.34. In the port: - `statechart` (upstream cursor#977) is now a TypeScript compiler. A `scripts/statechart` launcher runs `statechart.ts` and replaces the `.mjs` scripts. It only goes from a TLA+ model to a chart. `from-chart`, `--against`, and `--fixed` are gone. It renders charts with Pele, a public npm package. cursor#982 keeps qualified action names in property traces, and cursor#981 fixes a test. - `create-formal-verification-skill` drops one clause: `/statechart` no longer shows which violations a change fixes. - **`docs(pstack): describe the statechart rewrite in the README` (`2991dba`)**: `merge-upstream.py` keeps the port's own README, so the merge couldn't update it. - The skill table no longer offers a TLA+ skeleton from a chart. - Requirements now lists what `statechart` runs on: Bun 1.1.5 or later, Node 22.18 to 22.x, Node 23.6 or later, or Deno 2.0 or later, plus `mise` for TLC and Java unless `TLA2TOOLS` is set. - **Not ported**: `statechart` has no Cursor terms and still needs no `pstack-harness` pointer. The port's copy matches upstream's except for its Codex policy file. "Give the user the SVG" is covered by the harness's Tools row from #35, which says to give an image by its absolute path. ## Risk - **Runtime**: before, `statechart` ran on any `node`. Now a machine with Node older than 22.18 and no Bun or Deno gets exit 127, and the launcher names the versions it needs. `pstack doctor` already warns when `bun` is missing, so I didn't add a separate check. - **Tests**: this repository's CI doesn't run `statechart`'s own suite. It needs Node 22.18 or later and `fast-check`. ## Proof - `check.py`: 0 problems, 0 warnings across 56 pstack skills. - Port unit tests: 257 pass. - `statechart` through the launcher on this machine: Node 18.19.1 is too old, so it ran on Bun 1.4.2, with `TLA2TOOLS` set to tla2tools 1.7.4. For all 33 specs in upstream's `test/corpus`, its `report.md` and `chart.mmd` match upstream's expected files byte for byte. The specs include ones with broken rules, deadlocks, VIEW, and parallel regions. - `statechart`'s own suite: not run. It needs Node 22.18 or later, which this machine doesn't have. - Smoke test: no scenario covers `statechart`, which is user-only. The other skills' text didn't change. - macOS: #35's run on `main` never got a runner and was cancelled after 15 minutes. It's re-running. This pull request doesn't touch `worktree-audit.sh`.
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.
Closes #34.
Upstream: cursor/plugins@9580c23696ac, which brings 13 pstack commits. The daily sync stopped on one conflict and opened #34, so this is the manual merge from
pstack/port/merge-upstream.py, plus the ports that #34 lists.What changes
Merge (
914da34):merge-upstream.pyresolved everything exceptpoteto-mode/scripts/worktree-audit.sh.stat/datewith newstat_fmtandfmt_dayhelpers. The port had fixed the same problem its own way (anmtimearray and adate -r || date -dfallback).feat(pstack): port ketchup-video(732c804): upstream feat(pstack): add the ketchup-video skill cursor/plugins#797's new skill followsketchupand ends with "the embedded video", which a terminal can't show.pstack-harnesspointer, its Codex policy file (it's user-only), aSKILLSentry, and a README row.pstack-harnessgets a Tools row: give an embedded image or video by its absolute path.check.pyrequires that mapping for any skill that embeds a video.fix(pstack): keep reflect's edits out of the pstack clone and plugin cache(76b5790): upstream fix(pstack): route reflect edits out of the plugin cache cursor/plugins#800 madereflectrefuse to edit a skill underplugins/cache/, because an update moves to a new folder and drops the edit. The port has the same trap in two places:~/.claude/plugins/cache/, one folder per version.~/.agents/pstack/, whichpstack updatemoves to each new release.pstack-harnessnow names both. It says to copy the skill to the project or personal skill folder and edit the copy, unless the clone is the repo being worked in.check.pyrequires that mapping.Not ported: Upstream cursor/plugins needs a manual merge #34 also flags two
swarmlines. They're the lines upstream fix(pstack): renumber swarm's Phase A and fix its dangling table reference cursor/plugins#807 renumbered (the fix from fix(pstack): renumber swarm's Phase A and fix its dangling table reference cursor/plugins#751), and every Cursor term in them is already mapped.Risk
worktree-audit.shchange is the only hand-written code. On macOS it now goes through upstream's BSD branch (stat -f '%m %N',date -r) in place of the port's. Thepstack macOSworkflow covers that after merge.statechartchanged a lot upstream (+7k/−2k lines). The port doesn't modify it, and this repository's CI doesn't run its tests. On first run it can now install TLC and Java withmise, about 305 MB.TLA2TOOLSstill takes precedence.Proof
check.py: 0 problems, 0 warnings across 56 pstack skills, on each commit.ketchup-video's pointer, makescheck.pyname the problem.install_test.shpasses with 59 skills.test_worktree_audit.pypasses with both GNU and system tools.poteto-modebun tests (orch,watch-pr,check-plan): 82 pass.statecharton Node 18.19.1: its test file can't load, because it importszlib.crc32, which only Node 20.15+ has. The skill's scripts don't use it. A realfrom-chartrun on upstream'stest/sync.mmdwrote the spec, ran TLC, and drew one bug path.statechart's full suite: not run. Upstream feat(pstack): port the statechart compiler cursor/plugins#977, which the next sync brings in (cursor/plugins@519d36a), rewrites these scripts in TypeScript and replaces this suite. The next sync's pull request runs the new suite.smoke.pyruns the installed clone behind~/.agents/pstack, not this branch, so it can't test this branch before merge. Afterpstack update, runsmoke.py --only reflect,swarm, the scenarios for the changed skills.