mcpbeat

Reasoning Semiformally

oaustegard/reasoning-semiformally

Apply semi-formal certificate reasoning to code analysis — patch verification, fault localization, patch equivalence. Use when reviewing patches, hunting bugs across scopes, comparing fixes, or when code reasoning requires tracing execution across files/modules. Triggers on code review, bug localization, patch comparison, name shadowing, scope analysis, regression checking.

4k tokens
context cost
the whole folder, loaded on every use
4
files
instructions only
0
copies elsewhere
how many repositories repackaged it
137
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/oaustegard/claude-skills --skill reasoning-semiformally

The instruction itself

4 sections, as written by the author

Semi-Formal Code Reasoning

Structured certificate templates that force mandatory checkpoints before conclusions.

Skip Conditions

Do NOT apply semi-formal reasoning when:

  • The change is trivial: docs, formatting, version bumps, config changes
  • The bug is locally obvious: typo, off-by-one in the same function, missing comma
  • No execution paths cross scope boundaries
  • The task is not code analysis (text editing, data extraction, summarization)

If any skip condition is met, proceed with standard reasoning.

Model-Specific Instructions

If you are Haiku-class (Haiku 4.5 or similar):

Read haiku.md in this skill directory. It contains full procedural templates with worked examples.

If you are Sonnet-class or above (Sonnet 4.6, Opus):

Read sonnet.md in this skill directory. It contains compact verification checkpoints.

Composing Tasks

For complex tasks, apply templates sequentially:

  • Fault localization to find the bug
  • Patch verification to validate a proposed fix
  • Patch equivalence to compare alternative fixes

Each output feeds the next as premises.

How to use it

Copy the folder

Take oaustegard/reasoning-semiformally from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.