|
|
@@ -134,7 +134,7 @@ The audiences differ, and so do their documents:
|
|
|
| Decides whether to run it | `README.md` | Observable behaviour, configuration, capability limits |
|
|
|
| Installs it | `after-install.md` | First steps, stated as they can be followed |
|
|
|
| Changes it | `AGENTS.md` | The rules, written as rules |
|
|
|
-| Understands it | `CONCEPTS.md` | Why a rule looks the way it does — the derivation, the trade-offs, the wrong turns |
|
|
|
+| Changes it, and wants the reasoning | `CONCEPTS.md` | Why a rule looks the way it does — derivation, costs, rejected approaches. Developers only |
|
|
|
|
|
|
The failure mode is not a missing paragraph, it is a README that reads like the
|
|
|
design document: paragraphs nobody acts on, internals bleeding into user docs,
|
|
|
@@ -142,9 +142,25 @@ and every mechanism needing an update in three places at once. When a README
|
|
|
sentence starts explaining *how* rather than *what a user sees*, that is the
|
|
|
signal to move it — and to keep the user-facing half, plus a pointer.
|
|
|
|
|
|
-`CONCEPTS.md` earns its place only under that split. It must not restate
|
|
|
-`AGENTS.md` (three copies of one rule drift, and AGENTS.md is the one that
|
|
|
-binds), and it must not document behaviour no user can observe.
|
|
|
+### CONCEPTS.md is for developers
|
|
|
+
|
|
|
+**`CONCEPTS.md` holds developer information, and nothing else. Its reader is
|
|
|
+whoever changes the plugin next and wants to know why a rule looks the way it
|
|
|
+does — the derivation, the cost of each part, the approach that was tried and
|
|
|
+rejected.** Nobody reads it while deciding whether to install the plugin, so
|
|
|
+nothing goes there that answers that question.
|
|
|
+
|
|
|
+Two consequences, and the second is the one that gets forgotten:
|
|
|
+
|
|
|
+- **A README sentence must not carry content that belongs there.** Write the
|
|
|
+ user-visible behaviour in `README.md` and link to `CONCEPTS.md` for the
|
|
|
+ reasoning — do not summarise the reasoning into the user document, not even a
|
|
|
+ sentence of it. A paraphrase is the same content with a worse update path: it
|
|
|
+ goes stale silently, because the summary is not what anyone goes looking for
|
|
|
+ when `CONCEPTS.md` changes.
|
|
|
+- **It must not restate `AGENTS.md`.** Three copies of one rule drift, and
|
|
|
+ `AGENTS.md` is the one that binds. Where the two overlap, `AGENTS.md` states
|
|
|
+ the rule and `CONCEPTS.md` explains why.
|
|
|
|
|
|
### after-install.md
|
|
|
|