Repository navigation
pstack: add maintain-formal-verification-skill - #716
Merged
cursor[bot] merged 7 commits intoOct 19, 2026
Merged
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 3 potential issues.
❌ 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 4078be5. Configure here.
create-formal-verification-skill now writes, into the generated verify skill, which files and functions each check covers and the commit at which the verification was last confirmed to describe them, so a later agent can see when covered code has changed since. Co-authored-by: lauren <poteto@users.noreply.github.com>
Upkeep loop for a formal verify skill: read the commits that touched covered code since the recorded sync commit, update the model, harness, or properties from the code, rerun, prove each updated check can still fail, and report each check as in sync, updated, bug, or blocked. Listed in the README and in the poteto-help routing table. Co-authored-by: lauren <poteto@users.noreply.github.com>
create-formal-verification-skill gives the generated skill no fixed name, and setup finds it by its description. The maintain skill now does the same. Co-authored-by: lauren <poteto@users.noreply.github.com>
Adds the skill to the spots that already cover formal verification: the verify-and-ship section, the special-cases sentence on guide page 9, and the poteto-help state check and recipe. Co-authored-by: lauren <poteto@users.noreply.github.com>
Co-authored-by: lauren <poteto@users.noreply.github.com>
cursor
Bot
force-pushed
the
lauren/maintain-formal-verification-skill-d5ef
branch
from
October 18, 2026 22:01
4078be5 to
c50858d
Compare
cursor
Bot
changed the base branch from
lauren/setup-pstack-formal-verification-docs-3e39
to
main
October 18, 2026 22:01
maintain-formal-verification-skill set the sync commit to the checked commit for every check, including a blocked one. A blocked check was not confirmed to describe the code, so moving its sync commit hides the drift from the next pass. Step 6 now leaves it in place and says so in the report. Step 2 now points at step 5, where a failure is judged. Co-authored-by: lauren <poteto@users.noreply.github.com>
…l-verification-skill-d5ef Co-authored-by: lauren <poteto@users.noreply.github.com>
poteto
marked this pull request as ready for review
October 19, 2026 05:06
This was referenced Oct 19, 2026
caelaxie
added a commit
to pstack-ports/devin-pstack
that referenced
this pull request
Oct 20, 2026
<!-- CURSOR_AGENT_PR_BODY_BEGIN --> synced to [`d457567`](cursor/plugins@d457567). later commits on upstream `main` through [`ddf824a`](cursor/plugins@ddf824a) do not touch `pstack/`. version is `0.15.28` in `plugin.json`, `.devin-plugin/plugin.json`, and the readme marker. ported: - [`6b78e9f`](cursor/plugins@6b78e9f) ([#721](cursor/plugins#721)) create-formal-verification-skill: tla+ is the default for event-order questions in any language, and when no verifier runs on the language the agent says so and tests the real code with generated inputs. - [`7b353f7`](cursor/plugins@7b353f7) ([#716](cursor/plugins#716)) add maintain-formal-verification-skill. create-formal-verification-skill records covered code and the sync commit. poteto-help routing table, guide pages 6 and 9, and recipes mention it. slash commands keep the `/pstack:` prefix. `disable-model-invocation: true` stays `triggers: [user]`. - [`d457567`](cursor/plugins@d457567) ([#724](cursor/plugins#724)) guide page 6 matches the create-formal-verification-skill tool choice, and the version bumps to `0.15.28`. the same bump is in `.devin-plugin/plugin.json` and the readme marker, which is where this repo records the version. skipped: - `harness/pstack/claude-code/` copies in [#721](cursor/plugins#721), [#716](cursor/plugins#716), and [#724](cursor/plugins#724). this port does not carry the generated claude code tree. - [#724](cursor/plugins#724) `pstack/.cursor-plugin/plugin.json`. cursor packaging. the version bump lands in `.devin-plugin/plugin.json` instead. - [#716](cursor/plugins#716) upstream readme skill-table row for `/maintain-formal-verification-skill`. this port's readme is a pointer, not a copy of the upstream catalog. the version marker is bumped. the skill is indexed in poteto-help, the guide, and recipes. <!-- CURSOR_AGENT_PR_BODY_END --> <div><a href="https://cursor.com/agents/bc-d0ddf2c8-7c38-5482-a7c0-b374846fcae6?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-d0ddf2c8-7c38-5482-a7c0-b374846fcae6&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.

What
Adds
/maintain-formal-verification-skill, the companion to/create-formal-verification-skill. The create skill writes a project-local formal verify skill one time. The maintain skill keeps that verify skill in line with the code after changes that did not recheck it, such as merges, refactors, and edits made without the verify skill.One pass:
/setup-pstack(from pstack: offer formal verification in setup, sync help and guide #715) finds it in the same way.Each check ends as
in sync,updated,bug, orblocked. The skill does not edit product code, and it does not weaken a property to make a check pass.Change to create-formal-verification-skill
The generated skill now records which files and functions each check covers, and the commit where the verification last matched them. The maintain skill reads that record to know what to diff. The naming does not change.
Docs
node scripts/check-pstack-docs.mjsreports 0 problems,node scripts/validate-plugins.mjspasses, andnode scripts/generate-pstack-harness-trees.mjs --checkreports the harness tree up to date.Eval
The eval was preregistered. It had 54 sealed offline runs: 3 cases × 3 arms × 3 models (Claude Opus 5.5, GPT-5.6 Sol, Grok 4.7, all at xhigh) × 2 replicates. A blind Gemini 4 Argon High judge scored each run.
x/sync/semaphorewith TLA+, where the stale model still passes.cachetoolswith a Python model check, where the stale check fails on an intended change.Results:
.gitignore. With those two corrections, all three arms score 18 of 18. On these cases, the models already keep the verification in sync without the skill.NoStrandedWaiterviolation, or called the intendedcachetoolschange a bug. One M run edited.gitignore, and one made its breaks in the product file and then restored the file.Follow-up: blocked check. Bugbot found that step 6 moved the sync commit even for a blocked check, which the runs above never produced. The fix adds one sentence to step 6 and corrects a step number in step 2. A second preregistered test (one case where one check cannot run, old text against new text, the same three models, 3 runs each, 18 sealed runs, blind judge) gave: new text 9/9 runs kept the blocked check's sync commit and reported it as blocked, and old text 0/9. With the old text, 7 runs moved the shared sync commit to HEAD.
This PR does not bump the pstack version.
Note
Low Risk
Documentation and agent skill definitions only; no runtime product code, auth, or data paths change.
Reviewed by Cursor Bugbot for commit 011ef53. Bugbot is set up for automated code reviews on this repo. Configure here.