agent-doc-discipline
Writing-time discipline for documents agents consume (the five surfaces, specs, tickets, .omc/skills/) — every rule checkable and…
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.
Claude Code
$ npx -y skills add Yeachan-Heo/oh-my-claudecode --skill create-formal-verification-skill --agent claude-code
Codex
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill create-formal-verification-skill -a codex -y
Cursor
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill create-formal-verification-skill -a cursor -y
Gemini CLI
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill create-formal-verification-skill -a gemini-cli -y
GitHub Copilot
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill create-formal-verification-skill -a github-copilot -y
OpenCode
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill create-formal-verification-skill -a opencode -y
Windsurf
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill create-formal-verification-skill -a windsurf -y
name: create-formal-verification-skill
description: "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."
aliases: []
metadata:
credits:
formal-verification-method: pstack
author: Lauren Tan
url: "https://github.com/cursor/plugins/tree/main/pstack"
port: pstack-claude
port-author: Michael Denyer
port-url: "https://github.com/michael-denyer/pstack-claude"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.
quorum math, budget accounting)
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:**
protocols. Model each atomic step; check safety (nothing bad) and liveness (something good eventually) with TLC.
computation as a function over naturals; prove the theorem.
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.
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.
to make it pass.
For Codex users: Check out oh-my-codex — the same orchestration experience for OpenAI Codex CLI. Liked OmC but found it a bit overkill? Try gajae-code.
Writing-time discipline for documents agents consume (the five surfaces, specs, tickets, .omc/skills/) — every rule checkable and…
Clean AI-generated code slop with a regression-safe, deletion-first workflow and optional reviewer-only mode
Settle types and module shape before cross-boundary code — competing designs explored in parallel, compared on API surface and…
Periodic architecture survey — walks the module graph and reports ranked deepening candidates (shallow modules, hypothetical…
Run N parallel candidates at one brief and synthesize: rubric-first framing, isolated fan-out, a cross-judge on a different…
Shipyard's navigator — chart a foggy effort (destination unclear, questions not yet stateable) into a map of decision tickets on…
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…
Create a new Architecture Decision Record with sequential numbering and AgentDB registration