create-formal-verification-skill
Skill2.7k starsChanged 11 days agoMITView on GitHub
Generate a project-local skill that formally verifies the code where a bug costs the most and tests reach the least, in any language, with whichever verification tool fits. Use for /create-formal-verification-skill, \"model-check this race\", \"prove this invariant\", or when concurrency, retries, state machines, parsers, or unsafe code need more than tests.
We split this skill into the rules it gives an agent
2 rules. 2 are common, 0 are distinctive, and 0 are very specific to this project.
2
Common
Most of the 3 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Common: line 23
True to the code: Every part of the model or proof points to code that a reviewer can open.
- Common: line 25
Findings stay findings: When the current code breaks the property, report it with the counterexample in the code's terms.
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Create a formal verification skill
A test checks the cases that someone thought to write. Formal verification checks every case in a stated scope: every order of steps in a model, every input up to a bound, or every input. This skill finds the part of the repo where that matters most, verifies one property of it, and leaves a project-local skill that lets the next agent check a change against that property. Write that skill for an agent who reads it cold, mid-change, and has never seen your work. The user must be able to trust the result and act on it without learning the verification language.
Choose the target from the code
Answer from the codebase, and ask the user only what you cannot observe. If the user named an area or a bug, start there.
A good target is a promise the code makes, where a break harms users and tests rarely reach the case that breaks it. Choose the strongest such target in the repo, not the one that is easiest to verify.
Let the question choose the tool
Pick the tool that answers the question at the lowest cost: a model checker, a proof assistant, an SMT-backed verifier, or another tool. Whether events can happen in a bad order usually suits a model checker over a small model of the design, 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. A property that must hold at every size, where a bound is not enough, can need a proof. Prefer a tool that the repo's developers can install and run, and tell the user why you chose it.
What makes it good
- True to the code. Every part of the model or proof points to code that a reviewer can open. What the verification treats as one indivisible step is one indivisible step in the code. Names come from this repo.
- Able to fail. A check that you have never seen fail proves nothing. Show each property failing on a broken variant of the code it guards, such as a removed check or a reordered step.
- Findings stay findings. When the current code breaks the property, report it with the counterexample in the code's terms. Do not weaken the property or the model until it passes, and do not change product code unless the user asks.
- Honest about scope. Say what is verified, under which bounds and assumptions, and what is left out. A pass covers the model or the bound, not the whole system.
- Readable without the tool. State the property and the harm in one plain sentence each. Tell a counterexample as a short sequence of steps in the code's words.
- Cheap to rerun. One command, a reproducible tool version, and a run short enough that the next agent will use it on every relevant change.
- 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.
Generate the verify skill
Write a project-local skill with frontmatter that names the area and says when to use it. Without frontmatter, the skill never registers. From the skill alone, the next agent must be able to tell whether a change touches the verified code, run the check, tell a real bug from a modeling error, and update the verification when a change is intended. Put the coverage record and the sync commit in the skill, and tell the next agent to move the sync commit forward only after it confirms that the verification describes the code at the new commit. Use this repo's real commands, paths, and nouns, and leave no placeholders.
If the check is a TLA+ model, tell the next agent to read every result with the pstack /statechart skill. It shows each invariant violation the checker finds as its shortest path in plain words, and which of those violations a change fixes. When the check passes, /statechart draws a chart of how the system moves between states. Refer to /statechart by name. Its commands, options, and file paths change between releases and machines, so copy none of them into the generated skill or its scripts.
Prove it before you hand off
Follow the generated skill once, as the next agent would, on a scratch change that breaks the property in the real code. It must catch the break. Then drop the scratch change and confirm that the check is back where it started: passing, or failing only on the findings you will report. A verify skill that was never run is a draft. If the skill misses the break or a step does not run, fix the skill or the verification, not the scratch change.
Hand off
Tell the user what you verified, which tool you used and why, the bounds, what the check found in plain words, how to run it, and what it does not cover. Suggest a second target only if you found a close one. Point the user at /maintain-formal-verification-skill for bringing the verification back in line after changes that did not recheck it.
Trending
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Who's talking about backnotprop/pstack
- minhnhatnguyen6297-a11y/systemdocs“feat(skills): added pstack interrogate and tdd as omp project skills”GitHub · Oct 30, 2026
- sudosubin/agents.nix“agent-plugins.github.backnotprop.pstack: 23707a3 → 25abb38”GitHub · Oct 29, 2026
- sudosubin/agents.nix“agent-plugins.github.backnotprop.pstack: 0-unstable-2026-10-27 → 0-unstable-2026-10-28”GitHub · Oct 28, 2026
- sudosubin/agents.nix“agent-skills.github.backnotprop.pstack: 0-unstable-2026-10-27 → 0-unstable-2026-10-28”GitHub · Oct 28, 2026
- Djordje-Stojanovic/Sigmaskills“improve: review every pstack skill with the owner for possible Sigma adaptations”GitHub · Oct 27, 2026
The biggest 5 of 49 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 49
Talked about on GitHub and the web (49 times).
On GitHub · 45
- Oct 30, 2026feat(skills): added pstack interrogate and tdd as omp project skills — minhnhatnguyen6297-a11y/systemdocs0 reactions
- Oct 29, 2026agent-plugins.github.backnotprop.pstack: 23707a3 → 25abb38 — sudosubin/agents.nix0 reactions
- Oct 28, 2026agent-plugins.github.backnotprop.pstack: 0-unstable-2026-10-27 → 0-unstable-2026-10-28 — sudosubin/agents.nix0 reactions
- Oct 28, 2026agent-skills.github.backnotprop.pstack: 0-unstable-2026-10-27 → 0-unstable-2026-10-28 — sudosubin/agents.nix0 reactions
- Oct 27, 2026improve: review every pstack skill with the owner for possible Sigma adaptations — Djordje-Stojanovic/Sigmaskills0 reactions
40 more on GitHub
- Oct 27, 2026agent-plugins.github.backnotprop.pstack: 0-unstable-2026-10-26 → 0-unstable-2026-10-27 — sudosubin/agents.nix0 reactions
- Oct 27, 2026agent-skills.github.backnotprop.pstack: 0-unstable-2026-10-25 → 0-unstable-2026-10-27 — sudosubin/agents.nix0 reactions
- Oct 26, 2026agent-plugins.github.backnotprop.pstack: 0-unstable-2026-10-25 → 0-unstable-2026-10-26 — sudosubin/agents.nix0 reactions
- Oct 26, 2026audit: Frontend maintainability, skills and documentation before growth — BlinovDev/rc-setup-hub-fe0 reactions
- Oct 26, 2026audit: Backend architecture, code simplification, skills and docs before growth — BlinovDev/rc-setup-hub0 reactions
- Oct 26, 2026explore: TLA+ checks for task claiming and the merge gate with pstack's create-formal-verification-skill — xiechimon/cairn0 reactions · 1 comment
- Oct 26, 2026agent-plugins.github.backnotprop.pstack: 02b59d7 → fad8d01 — sudosubin/agents.nix0 reactions
- Oct 25, 2026agent-plugins.github.backnotprop.pstack: 0-unstable-2026-10-24 → 0-unstable-2026-10-25 — sudosubin/agents.nix0 reactions
- Oct 25, 2026agent-skills.github.backnotprop.pstack: 0-unstable-2026-10-24 → 0-unstable-2026-10-25 — sudosubin/agents.nix0 reactions
- Oct 25, 2026[Candidate] backnotprop/pstack - large collection (61 SKILL.md files) — ProSkillsMD/proskills0 reactions · 1 comment
- Oct 24, 2026agent-plugins.github.backnotprop.pstack: 0-unstable-2026-10-20 → 0-unstable-2026-10-24 — sudosubin/agents.nix0 reactions
- Oct 24, 2026agent-skills.github.backnotprop.pstack: 0-unstable-2026-10-20 → 0-unstable-2026-10-24 — sudosubin/agents.nix0 reactions
- Oct 23, 2026Can afk-loop pin only pstack's two verification skills, and what do they lack for the loop? — knn90/afk-loop0 reactions · 1 comment
- Oct 23, 2026What verification terms and roles does pstack use? — knn90/afk-loop0 reactions · 1 comment
- Oct 21, 2026Notes: analyse backnotprop/pstack (11 notes) — zelengeo/ai-knowledge0 reactions
- Oct 20, 2026agent-skills.github.backnotprop.pstack: 0-unstable-2026-10-19 → 0-unstable-2026-10-20 — sudosubin/agents.nix0 reactions
- Oct 20, 2026agent-plugins.github.backnotprop.pstack: 0-unstable-2026-10-19 → 0-unstable-2026-10-20 — sudosubin/agents.nix0 reactions
- Oct 19, 2026agent-plugins.github.backnotprop.pstack: 0-unstable-2026-10-15 → 0-unstable-2026-10-19 — sudosubin/agents.nix0 reactions
- Oct 19, 2026agent-skills.github.backnotprop.pstack: 0-unstable-2026-10-15 → 0-unstable-2026-10-19 — sudosubin/agents.nix0 reactions
- Oct 17, 2026[P01-general-tech] 調研 pstack — FATESAIKOU/LearnGhAgent0 reactions · 9 comments
- Oct 17, 2026調研 pstack — FATESAIKOU/LearnGhAgent0 reactions
- Oct 15, 2026agent-plugins.github.backnotprop.pstack: 0-unstable-2026-10-14 → 0-unstable-2026-10-15 — sudosubin/agents.nix0 reactions
- Oct 15, 2026agent-skills.github.backnotprop.pstack: 0-unstable-2026-10-14 → 0-unstable-2026-10-15 — sudosubin/agents.nix0 reactions
- Oct 14, 2026FinishUP 0.3 relaunch: handoff and remaining work (2026-10-14) — TheGaySupreme123/finishup0 reactions · 3 comments
- Oct 14, 2026agent-plugins.github.backnotprop.pstack: 0-unstable-2026-10-12 → 0-unstable-2026-10-14 — sudosubin/agents.nix0 reactions
- Oct 14, 2026agent-skills.github.backnotprop.pstack: 0-unstable-2026-10-04 → 0-unstable-2026-10-14 — sudosubin/agents.nix0 reactions
- Oct 13, 2026agent-plugins.github.backnotprop.pstack: init at 0-unstable-2026-10-12 — sudosubin/agents.nix0 reactions
- Oct 9, 2026idea-loop:docs/design/ 分 tmp / prod,维护产品状态图(页面 / 组件 / 状态 / flow / 动效),设计与验证共用 — guohaonan-shy/harold-skills0 reactions · 2 comments
- Oct 9, 2026Add unslop skill (credit: backnotprop/pstack) — Reybolt/reys-skills0 reactions
- Oct 8, 2026Integrate pstack as a rigor mode for tersio sessions — KurutoDenzeru/tersio0 reactions · 1 comment
- Oct 5, 2026Vendor pstack and run agent work in poteto-mode — 0xboris/invox0 reactions
- Oct 5, 2026Adopt pstack and run agent work in poteto-mode — 0xboris/invox0 reactions
- Oct 5, 2026agent-skills.github.backnotprop.pstack: 0-unstable-2026-09-14 → 0-unstable-2026-10-04 — sudosubin/agents.nix0 reactions
- Oct 2, 2026Add unslop skill from pstack. — seanjennings960/dotfiles0 reactions
- Sep 26, 2026SPEC: Dani-Dex product quality, full-duplex voice, prompt-driven skills and WhatsApp remote control — somdipto/dani-dex0 reactions
- Sep 26, 2026fix(verification): preserve targets across workflow checkpoints — kevinle128/Archon0 reactions
- Sep 25, 2026agent-skills.github.backnotprop.pstack: init at 0-unstable-2026-09-14 — sudosubin/agents.nix0 reactions
- Sep 19, 2026RFC: Agentic Runtime Verification Plane — FAB 5.1 + Wayfinder + CI Fabric — PanagiotisDrakatos/HCE_v33_final_allinone_ready0 reactions · 3 comments
- Aug 31, 2026Write-up: building a toy project with p-stack — dylanferguson/envp0 reactions · 8 comments
- Aug 24, 2026Review unslop: decide invocation mode and trim pattern list — francisko-rezende/skills0 reactions
On the web · 4
- Oct 18, 2026Poteto-Mode คืออะไร ใส่ระเบียบวิศวกรอาวุโสให้ AI เขียนโค้ดได้จริงไหม? — dev.to
- Oct 15, 2026backnotprop/pstack: +595 stars this week | Upstar — upstar.dev
- Sep 22, 2026AI로 구현 속도가 빨라져도 팀은 5배가 되지 않는다. '1인 1PBI' 개발 표준을 진지하게 설계했다|りょう|AI駆動開発 — note.com
- Sep 17, 2026Suhelmangera — linkedin.com
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 2
- conscientiousness/herdr-pstack-orchestrator★ 1100% same
- lengjingxu/pstack-for-codex★ 196% same
Wrote their own version · 1
- fullerzz/agent-skills★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository57 other files it gives its agents.
- architectSkill
- arenaSkill
- automate-meSkill
- benchmark-checklistSkill
- blast-radiusSkill
- broSkill
- correctSkill
- create-verification-skillSkill
- figure-it-outSkill
- howSkill
- interrogateSkill
- in-your-own-wordsSkill
- ketchupSkill
- ketchup-videoSkill
- maintain-formal-verification-skillSkill
- maintain-verification-skillSkill
- make-bot-uiSkill
- no-commentsSkill
- poteto-helpSkill
- poteto-modeSkill
- principle-attack-the-premiseSkill
- principle-boundary-disciplineSkill
- principle-build-the-leverSkill
- principle-encode-lessons-in-structureSkill
- principle-exhaust-the-design-spaceSkill
- principle-experience-firstSkill
- principle-explain-the-numberSkill
- principle-fix-root-causesSkill
- principle-foundational-thinkingSkill
- principle-guard-the-context-windowSkill
- principle-laziness-protocolSkill
- principle-make-operations-idempotentSkill
- principle-migrate-callers-then-delete-legacy-apisSkill
- principle-minimize-reader-loadSkill
- principle-model-the-domainSkill
- principle-never-block-on-the-humanSkill
- principle-outcome-oriented-executionSkill
- principle-prove-it-worksSkill
- principle-redesign-from-first-principlesSkill
- principle-separate-before-serializing-shared-stateSkill
- principle-sequence-verifiable-unitsSkill
- principle-subtract-before-you-addSkill
- principle-test-behavior-not-implementationSkill
- principle-type-system-disciplineSkill
- recallSkill
- reflectSkill
- setup-pstackSkill
- sharpenSkill
- show-me-your-workSkill
- statechartSkill
- swarmSkill
- tddSkill
- teachSkill
- technical-writingSkill
- typescript-best-practicesSkill
- unslopSkill
- whySkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

