Skip to content

Port upstream pstack 0.15.28 - #19

Merged
caelaxie merged 1 commit into
mainfrom
cursor/port-pstack-0.15.28-c4f0
Oct 20, 2026
Merged

caelaxie merged 1 commit into
mainfrom
cursor/port-pstack-0.15.28-c4f0

Conversation

@caelaxie

@caelaxie caelaxie commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

summary

ports upstream cursor/plugins pstack after f9be7aa00 (#715, pstack 0.15.27) through 0.15.28. cursor-team-kit stays 1.2.0. git log f9be7aa00..origin/main -- pstack/ cursor-team-kit/ is exactly the three commits below.

ported

  • #721 6b78e9f4e tla+ default and no-verifier fallback in /create-formal-verification-skill
  • #716 7b353f78f add /maintain-formal-verification-skill
  • #724 d45756733 bump to 0.15.28, sync the guide with create-formal-verification-skill

guide and skill text is copied verbatim. the new skill has no cursor-only paths, so it is unchanged. files this port already adapts keep those adaptations (install paths, model tiers, invoke_subagent workspaces, bundled /deslop, /goal instead of /loop). the verify-skill path stays .agents/skills/.

skipped

  • upstream pstack/README.md skill-table row for /maintain-formal-verification-skill. this readme is the antigravity install page and does not carry that table. the version pin here is 0.15.28.

harness proof

agy 1.4.2, installed from the antigravity cli installer. commands ran against this branch checkout with a clean HOME.

$ agy --version
1.4.2

$ agy plugin validate .
Validating pstack (.antigravity-plugin/plugin.json)

  ⚠ plugin.json: ignored: .antigravity-plugin/plugin.json takes precedence

  skills 59 · agents 2 · rules 0 · hooks 0 · mcpServers 0 · sidecars 0

✔ Validation passed with 1 warning

$ agy plugin install /workspace
  [ok]    pstack
          ✔ skills      : 59 processed
          ✔ agents      : 2 processed
          - commands    : skipped (not found)
          - mcpServers  : skipped (not found)
          - hooks       : skipped (not found)

$ agy plugin validate "$AGY_HOME/.gemini/config/plugins/pstack"
Validating pstack (.../.antigravity-plugin/plugin.json)

  ⚠ plugin.json: ignored: .antigravity-plugin/plugin.json takes precedence

  skills 59 · agents 2 · rules 0 · hooks 0 · mcpServers 0 · sidecars 0

✔ Validation passed with 1 warning

$ agy plugin list
Installed plugins:
- pstack (enabled, 0.15.28)
    Source:     antigravity
    Components: 59 skills, 2 agents

agy plugin list --json lists maintain-formal-verification-skill and create-formal-verification-skill. all 59 installed skills have frontmatter name equal to the directory. the installed create-formal-verification-skill contains "TLA+ is the default for that in any language", "test the real code with generated inputs, not a hand model of the function", and "point the user at /maintain-formal-verification-skill". the installed maintain-formal-verification-skill is that folder name and contains "whether each failure is drift in the verification or a bug in the code".

$ bun run test   # skills/poteto-mode/scripts, bun 1.4.3
69 pass
0 fail
247 expect() calls
Ran 69 tests across 5 files.

$ bun run typecheck
tsc --project watch-pr/tsconfig.json --noEmit --strict
(exit 0)

$ bash -n skills/poteto-mode/scripts/worktree-audit.sh
$ bash -n skills/show-me-your-work/scripts/log.sh
(exit 0)

the ci workflow on this pr passed: validate plugin, 59 skills, script typecheck, and tests.

Open in Web Open in Cursor 

Bring in #721, #716, and #724: TLA+ default and no-verifier fallback,
maintain-formal-verification-skill, and the 0.15.28 version bump.

Co-authored-by: Kaitian Xie <caelaxie@users.noreply.github.com>

@caelaxie caelaxie left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

verdict: changes requested (comment review, same account as author).

diff is clean. every +/- line matches upstream f9be7aa00..d45756733 for pstack/ (#721, #716, #724): guide 06/09, create-formal-verification-skill, the new maintain-formal-verification-skill (verbatim, frontmatter kept), poteto-help + recipes. both manifests and the readme pin say 0.15.28, cursor-team-kit stays 1.2.0. skipping the upstream readme skill-table row is fine, this readme doesn't carry that table. no issue to link.

blocking on one thing: harness proof. please add, in the body or a comment, real output on head 8e8a339 of:

  • agy plugin install from this branch
  • agy plugin list showing pstack 0.15.28
  • the changed skills exercised: /maintain-formal-verification-skill registered and loadable, plus /create-formal-verification-skill and /poteto-help showing the new text from the installed copy

if a live model turn is blocked only by cli auth, install + list on the exact head plus the installed copy showing the changed skills is enough for these text-only changes. ci (Validate plugin) was still running when i looked; it needs to be green too.

@cursor

cursor Bot commented Oct 20, 2026

Copy link
Copy Markdown

Harness proof on head 8e8a33940e230e0fe4694efd1a01bce0f35d5b48 (cursor/port-pstack-0.15.28-c4f0). Real agy 1.4.2 from https://antigravity.google/cli/install.sh. Install used a clean HOME so the list is only this plugin.

$ agy --version
1.4.2

$ agy plugin install https://github.com/pstack-ports/agy-pstack/tree/cursor/port-pstack-0.15.28-c4f0
Cloning plugin from https://github.com/pstack-ports/agy-pstack.git...
  [ok]    pstack
          ✔ skills      : 59 processed
          ✔ agents      : 2 processed
          - commands    : skipped (not found)
          - mcpServers  : skipped (not found)
          - hooks       : skipped (not found)

$ agy plugin list
Installed plugins:
- pstack (enabled, 0.15.28)
    Source:     antigravity
    Components: 59 skills, 2 agents

Installed copy is that commit, not the workspace tree:

$ git -C "$HOME/.gemini/config/plugins/pstack" rev-parse HEAD
8e8a33940e230e0fe4694efd1a01bce0f35d5b48

$ git -C "$HOME/.gemini/config/plugins/pstack" status -sb
## cursor/port-pstack-0.15.28-c4f0...origin/cursor/port-pstack-0.15.28-c4f0

agy plugin list --json on that install: name=pstack, version=0.15.28, enabled=true, 59 skills. These names are in the skills array:

  • maintain-formal-verification-skill
  • create-formal-verification-skill
  • poteto-help

/maintain-formal-verification-skill is registered from the installed SKILL.md frontmatter ($HOME/.gemini/config/plugins/pstack/skills/maintain-formal-verification-skill/SKILL.md):

2  name: maintain-formal-verification-skill
3  description: "Bring a project's formal verification back in line with the code after the code changes: find the commits that touched verified code, update the model, harness, or properties to describe the code as it is now, rerun, and say whether each failure is drift in the verification or a bug in the code. Use for /maintain-formal-verification-skill, \"is the model still true to the code\", or after merges and refactors that touched verified code without rechecking it."

/create-formal-verification-skill new text, from the installed copy:

19  ...and TLA+ is the default for that in any language. Whether the code itself behaves for every input, as with memory safety, overflow, or a data-structure invariant, usually suits a verifier that runs on the code. If no verifier runs on this language, say so, and test the real code with generated inputs, not a hand model of the function.
29  - **Kept in step with the code.** Record which files and functions each check covers, and the commit at which you last confirmed that the verification describes them. When the covered code changes after that commit, the next agent can see that the verification needs another look.
41  ...Point the user at `/maintain-formal-verification-skill` for bringing the verification back in line after changes that did not recheck it.

/poteto-help was changed in this upstream range. git diff origin/main...HEAD touches skills/poteto-help/SKILL.md and skills/poteto-help/references/recipes.md. Installed lines:

skills/poteto-help/SKILL.md:29
- No formal verification skill in the project means no property is checked past what tests reach. Mention `/create-formal-verification-skill` when the question is about a race, an invariant, or another case tests rarely hit. When one exists and the code it covers changed after the commit it records as last in sync, mention `/maintain-formal-verification-skill` if the question touches that code.

skills/poteto-help/SKILL.md:83
| Bring a formal verification back in line after the code it covers changed, and learn whether a failure is drift or a bug | [`/maintain-formal-verification-skill`](../maintain-formal-verification-skill/SKILL.md) |

skills/poteto-help/references/recipes.md:37
- `/create-formal-verification-skill prove <property> holds in <module>, even when <steps> interleave or retry.` After merges or refactors in that code: `/maintain-formal-verification-skill`.

CI on 8e8a33940e230e0fe4694efd1a01bce0f35d5b48: Validate plugin completed, conclusion success. https://github.com/pstack-ports/agy-pstack/actions/runs/39354120359/job/118404876041

No code changes. Not merged.

@caelaxie caelaxie left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

verdict: changes requested (comment review, same account as author). not merging yet.

re-reviewed on head 8e8a33940e230e0fe4694efd1a01bce0f35d5b48 (unchanged). most of the proof in #19 (comment) holds:

  • real agy 1.4.2 output: agy plugin install from the branch url, then agy plugin list shows pstack (enabled, 0.15.28), 59 skills, 2 agents.
  • git rev-parse HEAD in the installed copy is 8e8a33940e230e0fe4694efd1a01bce0f35d5b48, so the install is the exact head.
  • maintain-formal-verification-skill, create-formal-verification-skill, and poteto-help are in agy plugin list --json, and the installed copy shows the new text in all three (plus recipes.md).
  • ci Validate plugin is green on the head.

one gap: no live model turn was run against any changed skill, and the proof doesn't say why. the installed-copy fallback is only for when a live turn is blocked by cli auth. please do one of these:

  • run a live agy turn on this install that uses a changed skill (for example /poteto-help asked about keeping a formal verification in sync, so it points at /maintain-formal-verification-skill, or /maintain-formal-verification-skill loading and stopping at "no verify skill" in an empty repo), and paste the real output; or
  • if a live turn is blocked only by cli auth, paste the actual auth error output from the attempt.

either one on head 8e8a339 and this is approved.

@cursor

cursor Bot commented Oct 20, 2026

Copy link
Copy Markdown

Live agy turn on the installed head 8e8a33940e230e0fe4694efd1a01bce0f35d5b48 did not run. CLI auth blocked it.

The plugin from the earlier install is still that commit (git rev-parse HEAD in $HOME/.gemini/config/plugins/pstack is 8e8a33940e230e0fe4694efd1a01bce0f35d5b48). agy plugin list still shows pstack (enabled, 0.15.28).

Tiny fixture: a new git repo with one file, inc.go (func Inc(n int) int { return n + 1 }). Working directory /tmp/agy-fv-fixture.z7K6. agy 1.4.2. Clean HOME is the install home (/tmp/tmp.VggNkDJ6Op).

$ HOME=/tmp/tmp.VggNkDJ6Op agy --print-timeout 45s --dangerously-skip-permissions --print '/maintain-formal-verification-skill'
Authentication required. Please visit the URL to log in:
  https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com&code_challenge=o5KFLgtexH0EZYjrs-Mb5ApAvSKLLGUanUaHjW_wcgE&code_challenge_method=S256&prompt=consent&redirect_uri=https%3A%2F%2Fantigravity.google%2Foauth-callback&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcclog+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fexperimentsandconfigs+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Faicode+openid&state=LMsZRYwssiSKHiyLpML8GA

Waiting for authentication (timeout 60s)...
Or, paste the authorization code here and press Enter:
Error: authentication timed out.
error: authentication failed or timed out

Exit code: 1. Stdout was empty.

That is why there is no live turn: agy --print stopped at Google OAuth and never invoked /maintain-formal-verification-skill. No code changes. Not merged.

@caelaxie caelaxie left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

approved under the auth-block precedent.

this closes the gap from pullrequestreview-5579801175 (no live turn, no reason given). #issuecomment-6281321938 shows a live turn attempt on the installed head 8e8a33940e230e0fe4694efd1a01bce0f35d5b48. the installed plugin's git rev-parse HEAD is that sha, and agy plugin list shows pstack (enabled, 0.15.28). it ran the real command agy --print-timeout 45s --dangerously-skip-permissions --print '/maintain-formal-verification-skill' against a tiny fixture with the install HOME. that is a skill this pr adds. the turn stopped at google oauth with the verbatim Error: authentication timed out. / error: authentication failed or timed out, exit 1, empty stdout, before the skill was invoked.

the rest is already verified on this head: the diff matches upstream, versions are 0.15.28, install + list show 0.15.28 at this rev, the installed copy has the changed text for maintain-/create-formal-verification-skill and poteto-help, and ci (validate plugin) is green. this pr only changes skill text, so install+list on the exact head plus the installed changed skills is accepted when cli auth is the only thing blocking the live turn. squash-merging pinned to 8e8a339.

@caelaxie
caelaxie merged commit 5810e75 into main Oct 20, 2026
1 check passed
@caelaxie
caelaxie deleted the cursor/port-pstack-0.15.28-c4f0 branch October 20, 2026 01:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants