Before you can appreciate inline comments, docstrings, README, and ADRs, you need to be fluent in a surprising number of tiny words and symbols the parent note throws around. Below we build every one of them from nothing, in an order where each rung of the ladder rests on the one below it.
Picture two readers standing in front of the same text file:
The machine (left) cares only about what to do. It never reads the English notes you sprinkle around; it strips them out.
The human (right) — a teammate, or you in six months — needs why it exists and how to use it.
Why the topic needs this: the whole subject exists because these two readers want different things. Documentation is text written exclusively for the human reader. If you forget the human exists, none of the four layers make sense.
One amber mark for writing; ten cyan marks for reading (running it, debugging it, extending it, reviewing it, copying from it).
Why this tool and not another? We use a ratio rather than an absolute count because the exact numbers don't matter — what matters is the imbalance. A ratio captures "reading dominates" in two symbols. This single fact is the economic engine of the whole topic: a small cost paid once (writing a note) is repaid on every future read.
Think of a camera zooming out. As the frame widens, two things change together: the audience gets broader and less familiar, and the question changes.
Zoom level
Scope
Question
Tightest
one line
Why this surprising line?
Wider
one function
How do I use this?
Wider still
whole project
What is this & how do I start?
A single big call
one decision
Why did we choose X over Y?
Why the topic needs this: the four documentation layers are exactly these four zoom levels. Understanding "scope" first means the four layers stop looking like a random list and become one continuous ladder.
Why the topic needs this: the golden rule of inline comments — "explain the why, never the what" — is meaningless until you can cleanly separate these two words. Every mistake in comment-writing is really a WHAT-vs-WHY confusion.
The picture is a handshake with a rulebook between two parties:
Why this tool and not another? We borrow the word contract from law because it captures the key idea: you can use the function without reading its insides, as long as both sides honour the agreement. A docstring is simply this contract written down. Later notes on API Design & Contracts lean on exactly this vocabulary.
The picture is a stack of dated cards you only ever place on top:
Why the topic needs this: ADRs are immutable, append-only records. When a decision changes, you do not edit ADR-007 — you write ADR-015 that supersedes it. Without the words "immutable" and "append-only" the phrase "we never edit an old ADR" sounds like a bug rather than the entire point.
Read it bottom-up: the machine-vs-human split feeds both the economics (why bother) and the scope ladder (the four layers); the contract idea feeds docstrings; the log idea feeds ADRs. All four streams pour into the Documentation topic itself.