Proof Guide¶
Guide Maps¶
graph LR
family["Python Programming"]
program["Python Meta-Programming"]
guide["Capstone docs"]
section["Docs"]
page["Proof Guide"]
proof["Proof route"]
family --> program --> guide --> section --> page
page -.checks against.-> proof
flowchart LR
orient["Read the guide boundary"] --> inspect["Inspect the named files, targets, or artifacts"]
inspect --> run["Run the confirm, demo, selftest, or proof command"]
run --> compare["Compare output with the stated contract"]
compare --> review["Return to the course claim with evidence"]
Use this guide when you need to connect a claim to the smallest repeatable proof route that actually defends it. The capstone becomes confusing when readers collect evidence without first deciding what they are trying to prove.
The first proof question to ask¶
Ask this before choosing any command or test:
Am I trying to prove public shape, runtime behavior, saved reviewability, or strongest executable confidence?
That question matters because different proof routes answer different kinds of claims.
Start by claim¶
| If the claim is... | Start with | Escalate only if needed |
|---|---|---|
| the runtime surface is observational | make manifest or make registry |
make inspect |
| descriptor fields own validation and coercion | make field |
tests/test_fields.py |
| descriptor lookup and storage ownership stay inspectable without construction | make field-ownership |
tests/test_fields.py and tests/test_cli.py |
| field-system power stays bounded and inspectable without construction | make field-system |
tests/test_fields.py and tests/test_cli.py |
| wrapper behavior stays visible | make action or make trace |
tests/test_runtime.py or tests/test_cli.py |
| wrapper ownership stays inspectable without execution | make action-wrapper |
tests/test_runtime.py and tests/test_cli.py |
| action arguments can be validated without execution | make bind-action |
tests/test_runtime.py and tests/test_cli.py |
| supported action hints can be checked without overstating the contract | make check-action |
tests/test_runtime.py and tests/test_cli.py |
| metaclass selection, hook ownership, and accepted or rejected class-creation powers remain observable without plugin construction | make class-creation |
tests/test_runtime.py and tests/test_cli.py |
| application-wide mechanism choices remain explicit and reviewable | make governance |
tests/test_governance.py and each decision's named mechanism tests |
| registration stays deterministic | make registry |
tests/test_registry.py |
| one realistic invocation story is still honest | make trace |
make tour or tests/test_runtime.py |
| saved review artifacts still match executable proof | make verify-report |
make proof |
What each proof size is good for¶
| Proof size | Best for | Not enough for |
|---|---|---|
| one observational command | one narrow claim about public shape | full runtime or test confidence |
| one runtime command | one realistic invocation story | broad regression confidence |
| one saved bundle | another reviewer reading later | proving every local regression route |
| one test file | one focused executable claim | teaching the public review route by itself |
make confirm |
strongest local executable confidence | a saved human-facing review route |
make proof |
the full published review package | a quick first answer |
Strongest local proof¶
Run:
This is the strongest local executable confirmation route. Use it when the question is "does the system still satisfy its core contracts?" Do not use it as a substitute for understanding which contract is under pressure.
Saved review routes¶
make inspectwrites the guided inspection bundle.make tourwrites the guided walkthrough bundle.make verify-reportwrites executable proof together with public-surface evidence.
Choose the saved bundle by review need¶
| If you need to review... | Choose this bundle | Do not start with |
|---|---|---|
| public runtime shape without invocation | inspect bundle | verify-report bundle |
| one saved guided story from manifest to trace | tour bundle | inspect bundle plus ad hoc commands |
| strongest saved executable confirmation | verify-report bundle | confirm output alone |
Each bundle also includes bundle-manifest.json, which records stable file paths, file
sizes, and SHA-256 hashes for the saved route.
Public-surface proof routes¶
Use these routes when you want evidence from the public surface before you open private internals.
make manifest
make registry
make plugin
make field
make field-ownership
make field-system
make action
make action-wrapper
make bind-action
make check-action
make class-creation
make governance
make signatures
make demo
make trace
These commands do not all answer the same question. They exist so you can prove one claim without dragging in unrelated proof weight.
Smallest honest routes¶
- Use
manifestbeforeinspectwhen one public schema question is enough. - Use
fieldbeforetests/test_fields.pywhen you still need to see the public contract first. - Use
field-ownershipwhen the question is descriptor mechanics rather than exported schema. - Use
field-systemwhen the question is system-wide field power rather than one descriptor's mechanics. - Use
tracebeforeverify-reportwhen one invocation story is enough. - Use
confirmbeforeproofwhen the question is executable confidence rather than published review output.
File to proof map¶
| Source file | Best public route | Best executable proof | Best saved review route |
|---|---|---|---|
src/incident_plugins/framework.py |
make manifest, make registry, make signatures, make bind-action, make check-action, and make class-creation |
tests/test_registry.py and tests/test_runtime.py |
make inspect or make verify-report |
src/incident_plugins/fields.py |
make field, make field-ownership, make field-system, and make plugin |
tests/test_fields.py |
make inspect |
src/incident_plugins/actions.py |
make action, make action-wrapper, make check-action, make trace, and make signatures |
tests/test_runtime.py and tests/test_cli.py |
make tour or make verify-report |
src/incident_plugins/governance.py |
make governance |
tests/test_governance.py and the named mechanism tests |
make inspect or make verify-report |
src/incident_plugins/plugins.py |
make plugin, make demo, and make trace |
tests/test_runtime.py |
make tour |
src/incident_plugins/cli.py |
make manifest, make registry, make governance, make trace, and make demo |
tests/test_cli.py |
make inspect, make tour, or make verify-report |
scripts/write_bundle_manifest.py |
make inspect, make tour, or make verify-report |
tests/test_bundle_manifest.py |
the matching bundle directory under artifacts/ |
Failure-first proof questions¶
Ask these when you are not sure which proof route is honest enough:
- Which test should fail first if registration starts doing hidden work during class creation?
- Which test should fail first if descriptor state leaks across instances?
- Which public route should change first if the manifest stops being observational?
- Which saved bundle should become less trustworthy first if the CLI stops exposing real runtime facts?
Those questions keep proof tied to ownership instead of to habit.
Review pressure to route¶
| If you need to review... | Start with | Then run or inspect | Escalate with |
|---|---|---|---|
| public shape without invocation | COMMAND_GUIDE.md | make manifest, make registry, or make inspect |
this guide |
| one concrete field or action contract | COMMAND_GUIDE.md | make field, make field-ownership, make field-system, make action, or make inspect |
TEST_GUIDE.md |
| one application-wide mechanism decision | DESIGN_BOUNDARIES.md | make governance, then the decision's named mechanism report |
tests/test_governance.py and the named mechanism tests |
| one realistic invocation story | INDEX.md or COMMAND_GUIDE.md | make demo, make trace, or make tour |
tests/test_runtime.py |
| source ownership for a change | PACKAGE_GUIDE.md or EXTENSION_GUIDE.md | the matching public route from the file map | TEST_GUIDE.md |
| which proof file should fail first | TEST_GUIDE.md | the matching test file | PACKAGE_GUIDE.md |
| a saved artifact bundle for another reviewer | this guide | make inspect, make tour, or make verify-report |
make proof |
Good stopping point¶
Stop when you can answer:
- what kind of claim you are trying to prove
- what the smallest honest route is for that claim
- what stronger route you would choose next if the first one were not enough
- which test file should fail first for the same claim