Repro Guide¶
Guide Maps¶
graph LR
family["Reproducible Research"]
program["Deep Dive Make"]
guide["Capstone docs"]
section["REPRO_GUIDE"]
page["Repro 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"]
The repro pack exists to turn build failures into reviewable teaching surfaces. Use it
when you want to study one failure class at a time instead of treating concurrency and
graph defects as random incidents.
When you want one curated executed example instead of choosing a repro by hand, use
make incident-audit and read INCIDENT_REVIEW_GUIDE.md.
Repro Files By Failure Class¶
| File | Failure class | What it teaches |
|---|---|---|
repro/01-shared-log.mk |
shared mutable output | concurrent writers need isolated or atomic publication |
repro/01-shared-append.mk |
legacy alias for shared logging failure | older material still maps to the same defect class |
repro/02-temp-collision.mk |
unsafe temp naming | temp files need unique ownership before publish |
repro/03-stamp-clobber.mk |
dishonest stamp boundary | stamps cannot hide meaningful inputs |
repro/04-generated-header.mk |
generated dependency modeling | generated headers must be declared as real edges |
repro/05-mkdir-race.mk |
directory creation race | directory setup must be idempotent and correctly scoped |
repro/06-order-only-misuse.mk |
order-only misuse | ordering constraints do not replace semantic dependencies |
repro/07-pattern-ambiguity.mk |
ambiguous rule selection | pattern rules must remain legible under growth |
Best First Route¶
Use this route when the repro pack is new:
repro/01-shared-log.mkfor obvious concurrent corruptionrepro/05-mkdir-race.mkfor setup races that often hide in "small" buildsrepro/06-order-only-misuse.mkfor graph lies that still look tidyrepro/04-generated-header.mkfor generated-file truthfulness
That route moves from visible failure into subtler graph-modeling mistakes.
Incident Bundle Route¶
Use this when you want a saved executed incident review:
- Run
make incident-audit. - Read
INCIDENT_REVIEW_GUIDE.md. - Read
command.txt,run.txt, andexit-status.txt. - Read the copied repro makefile.
- Return to
PROOF_GUIDE.mdto match the repair to the real capstone.
Review Questions¶
Ask these while using a repro:
- which output is being shared dishonestly
- which dependency is missing or misclassified
- whether the failure changes under
-j - which repair pattern belongs in the real capstone