agentleFS
Yeachan-HeoYeachan-Heo/oh-my-claude-sisyphus/skills/create-formal-verification-skill/SKILL.md

create-formal-verification-skill

Skill41k starsChanged 4 days agoMITView on GitHub

Verify the project's riskiest invariant with TLA+, Lean, or Kani — chosen by property shape — and leave a project-local skill the next agent reruns; assumptions are part of the deliverable. For properties tests cannot reach.

27 other projects use a version of this, 1 of them edited.

Trending

Quiet since January.thin dataabout the whole repository

Dec 2025: 0 mentionsJan 2026: 3 mentionsFeb 2026: 0 mentionsMar 2026: 0 mentionsApr 2026: 0 mentionsMay 2026: 0 mentionsJun 2026: 0 mentionsJul 2026: 0 mentionsAug 2026: 0 mentionsSep 2026: 0 mentionsOct 2026: 0 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the Yeachan-Heo/oh-my-claude-sisyphus repository that our weekly crawl found: only 3 in all, so this is a hint, not a trend. There is no adoption data for this file yet.

Most recently taken up by

Used with

Projects with it also use show-me and deslop.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • AnasX7Skill

    show-me

    Help the user understand the current topic visually with concise diagrams, code-shape sketches, and focused HTML artifacts.

    Also in 4 projects that use this

  • SentrySkill

    deslop

    Strip AI-generated noise from the diff before pushing — extra comments a human wouldn't write, defensive try/catch in trusted code paths, casts to any, inline imports in Python, and other style inconsistencies with the surrounding file. Use this immediately before commit so the diff stays clean.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 3 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 27 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Survey candidates: Ask the user (or infer from recent incidents) for the invariants whose violation would hurt most.

    line 36
  2. Distinctive:

    If none fits, say so and stop rather than forcing one.

    line 48
  3. Distinctive:

    Model honestly: Write the spec next to the code it models, citing file and line.

    line 49
  4. Very specific:

    Verify: Run the tool (apalache/TLC, lake build, cargo kani).

    line 56
  5. Very specific:

    When the modeled code changes shape (lines move, protocol steps change), hand to the maintain-formal-verification-skill skill: it re-checks …

    line 77

“Common” is measured: kept by at least 6 in 10 of the 27 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Create Formal Verification Skill

Generate a project-local skill that formally verifies one high-risk property and can be rerun by any later agent. Formal methods pay off only on properties tests cannot reach; this skill exists to find that one property, verify it, and leave the verification behind as structure.

When to use

  • a concurrency or locking protocol where interleavings defeat tests
  • exact arithmetic a test can sample but not exhaust (backoff schedules, quorum math, budget accounting)
  • a Rust invariant you want checked over all executions of a function

When not to use

  • ordinary business logic — verify and the test suite are the right tools
  • more than one property at a time; pick the riskiest, ship it, come back

Workflow

  1. Survey candidates. Ask the user (or infer from recent incidents) for the invariants whose violation would hurt most. Rank by risk times likelihood-of-undetected-breakage. Name the top three and pick one with the user when reachable; otherwise pick the riskiest and say so.
  2. Choose the tool by shape, not fashion:
    • TLA+ — concurrent processes, locks, retries, distributed-ish protocols. Model each atomic step; check safety (nothing bad) and liveness (something good eventually) with TLC.
    • Lean — exact arithmetic and algorithmic properties. Transcribe the computation as a function over naturals; prove the theorem.
    • Kani — Rust; harnesses check panics, overflows, and invariants over all inputs a function can receive. If none fits, say so and stop rather than forcing one.
  3. Model honestly. Write the spec next to the code it models, citing file and line. Open the spec with an "Assumptions the model makes" register: every assumption numbered, each citing the source lines it abstracts, and each marked (!) when the code does not actually guarantee it (pid reuse, atomic filesystem steps, integer widths, an honest clock). The register is part of the deliverable — an unlisted assumption is an unearned theorem, and a (!) the code later starts guaranteeing is a model owed an update.
  4. Verify. Run the tool (apalache/TLC, lake build, cargo kani). A violated property is a finding: minimize the counterexample, check whether the code shares the flaw, and report before adjusting the model.
  5. Generate the project skill at .claude/skills/verify-formal-<property>/SKILL.md containing: the property in one sentence, the spec file path, the exact run command, the pass criteria, the assumption list, and the source lines the model tracks. The next agent reruns the command; it never re-derives the model.
  6. Record the verification through the ledger's locked writer — import appendLedgerEntry and defaultLedgerPath from the installed package's dist/features/verification-ledger/index.js (resolve the package root the figure-it-out way; babysit's ledger step demonstrates the exact invocation). Never append raw rows to .omc/state/verification-ledger.tsv; the writer owns header creation, locking, and cell sanitization. Write formally-verified only after a green rerun with the run command as evidence; a counterexample records verifier-failed with the counterexample as evidence, and no positive row is written until the finding is resolved.

Maintenance

When the modeled code changes shape (lines move, protocol steps change), hand to the maintain-formal-verification-skill skill: it re-checks each assumption against current code, updates cited lines, and reruns. A spec that cites lines that no longer exist is stale, and a stale spec's green is worthless — say so out loud in the session.

Rules

  • One property per generated skill.
  • The model's assumptions are written down, or the verification does not ship.
  • A counterexample is reported, never papered over by weakening the property to make it pass.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

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.