The Honest Machine · Lesson 1
What you'll be able to do: look at any software project on GitHub and name the five moving parts — Repo, Branch, PR, CI, Merge — say what each one protects, and follow a real change from "idea" to "safely part of the product" without touching a terminal.
A repo is like a classroom master binder: the one official copy of every lesson plan, and it remembers every version that ever existed.
Where the analogy ends: a binder holds paper — the master binder can't test itself. In software, CI actually runs the product against dozens of checks every single time, and a locked main branch physically refuses the merge if any check fails. The principal in our world literally cannot sign a proposal the clerk has stamped red. Also: photocopies drift from the binder, but a branch can be refreshed from the master at any time — the copy machine runs backward.
| Primitive | What it is | What it protects |
|---|---|---|
| Repo | The one official home of the project + its full history | Truth: "where does this project actually live?" |
| Branch | A parallel copy where change happens safely | The working product, from your experiments |
| PR | A proposed change, visible and reviewable before it lands | Everyone's right to see what's changing and why |
| CI | Automatic checks that run on every proposal | The product, from broken or self-graded work |
| Merge | The human decision that a checked change becomes real | The human's place as the final gate |
One sentence to keep: change happens on a branch, gets proposed in a PR, gets tested by CI, and only a human merge makes it real.
idea → [Branch] → work happens → [PR opened] → [CI runs checks]
│
red ──────┤────── green
│ │
fix & push again [Human merges]
│
main (the product)
The design insight: every arrow is a narrowing. Anyone can branch; only a PR makes change visible; only green CI makes it mergeable; only a human makes it real. Main stays trustworthy because nothing reaches it without passing every gate. This is the same shape the honest reporting in a tool I built follows: a number + the assumption behind it + a cited basis — a claim only counts when it carries its evidence, exactly like a PR only counts when it carries green checks.
Pass each gate before moving on. These are permission to advance, not hazing.
Lesson complete — you can now read any GitHub project like a floor plan. Next: Lesson 2, where the machine learns to say "I don't know."