# The adoption-posture section — *"why nothing here fails today"*

> **Audience:** whoever authors or amends a `docs/standards/` family in this
> corpus — which today is one repo (`mgf-standard`) and one seat (the designer,
> [SEAT-07](../standards/SEATS.md#SEAT-07), since a corpus amendment is
> gate-opening by definition).
> **What this is NOT:** a rule. It is an **authoring convention with a gate**.
> §5 states plainly why it is not a MUST, and names the trigger that would
> promote it.

---

## 1. The convention, in one paragraph

**Any standards doc that enacts an obligation whose mechanism has not shipped
carries a section headed `## N. Adoption posture (why nothing here fails
today)`.** The section answers exactly one question, for a reader who is about
to be held to the family: *which of these rules bind me right now, and which
are staged — and if they are staged, what has to land before they don't?*

Without it, enacting a family reads as declaring the whole fleet
non-conformant on the day of the merge. With it, the family is **gateable on
day one**, because the text says which repos are conformant by construction and
which obligation is waiting on which named mechanism.

## 2. The four things the section must answer

Copy this order; it is the order the reader needs.

| # | Question | Worked answer |
|---|---|---|
| 1 | **Which rules bind on enactment?** | *"`SEAT-01` through `SEAT-07` and `SEAT-09` bind behaviour. They are in force for every session the moment they are enacted and need no file to exist anywhere — a repo cannot be non-conformant against them by omission, only by conduct."* ([`SEATS.md`](../standards/SEATS.md) §3) |
| 2 | **Which are staged, and is a repo conformant while pending?** | *"A repo with no session hook wired is conformant; so is a repo that has one wired in `observe`."* ([`SESSION_HOOKS.md`](../standards/SESSION_HOOKS.md) §4) |
| 3 | **What must land, in what order, and whose act is each step?** | An enumerated list. `SESSION_HOOKS.md` §4 names two (the kit merges + a repo runs `hooks install`) and then names the `observe → enforce` flip as *a **third**, separate founder act*. Naming the actor is the load-bearing half: cross-repo mechanisms are **supervisor-applied per [AG-13](../standards/AGENTS.md#AG-13)**, and the corpus can define an obligation it cannot ship. |
| 4 | **Which precedent is this staging?** | The federation's standing warn-then-enforce order — the same staging the `PR-*` DRAFT marker uses and the same *GATED* class [`LOCK.md`](../../LOCK.md) §1 defines. Citing it stops the posture reading as a special favour to this family. |

**Do not** use the section to argue the rules are good. It is a conformance
statement, not advocacy.

## 3. Where the fact actually lives (DP-14)

The staged set is **derived, never restated**. This repo's
[`MGF_STANDARDS_CONFORMANCE.md`](../inprogress/MGF_STANDARDS_CONFORMANCE.md)
already owns "which MUSTs are not in force here" — that is what a `⏳` row *is*
(CFM-03). So:

- The **ledger** owns the per-rule fact.
- The **posture section** owns the *reader-facing* explanation and the
  landing order.
- `scripts/check_adoption_posture.py` joins them: it reads the `⏳` rule ids
  out of the ledger, maps each to its owning doc through the generated
  `docs/standards/rules.json`, and requires that doc to carry the section.
  It rides `gen_rules_index.py --check`, the same channel
  `check_headline_coherence.py` and `check_testing_doc.py` use.

Consequence worth stating: **the section appears and disappears on its own.**
The day a family's last `⏳` flips to `✅`, the gate stops requiring the
section — the convention self-expires per family, the same shape `mgf-fed`'s
`_PENDING_CORPUS` and its vocabulary gate's `_ENACTING` table use.

Per TS-29 the gate ships its own seeded self-test
(`tests/unit/test_check_adoption_posture.py`): a synthetic corpus with a `⏳`
row and no posture section goes **red** with the doc named, adding the section
turns it **green**, and a doc with no `⏳` rows is not required to carry one.

## 4. The instances

Four in this corpus, plus the machine analogue. Each was written before the
convention was named, which is why it is a convention and not an invention:

| Instance | What it stages |
|---|---|
| [`SEATS.md`](../standards/SEATS.md) **§3** | `SEAT-08`'s per-repo dispatch block — two named landings (`catch-up` learns to emit it; a presence check follows), both cross-repo, both AG-13. |
| [`SESSION_HOOKS.md`](../standards/SESSION_HOOKS.md) **§4** | The whole hook layer: the kit merging, a repo running `hooks install`, and the founder's separate `observe → enforce` flip. |
| [`REVIEW.md`](../standards/REVIEW.md) **§9** | `CRT-05`'s `could_not_verify` block — required by the schema, with no committed per-round artifact convention in this repo yet. *(Added by adoption wave S5 — it was the gate's first catch, on its first run.)* |
| [`TESTING.md`](../standards/TESTING.md) **§21** | `TS-29`'s **retroactivity**, which is a different staging from the others: not an unshipped mechanism but an existing **backlog**. New and changed gates bind on day one; gates that predate the rule are conformant while the repo's close-out sweep is named. *(Added by wave S5 in the same commit as the rule — a rule that binds existing artifacts owes this section, or it declares 44 repos non-conformant on merge day.)* |
| [`../inprogress/SOOTH_ADOPTION.md`](../inprogress/SOOTH_ADOPTION.md) **§0** | The tracker's own *"honest floor — what this initiative closes and what it cannot."* Same convention at initiative scale rather than family scale: four named things the waves cannot close, written before the first wave landed. |
| `mgf-fed`'s `_PENDING_CORPUS` / the vocabulary gate's `_ENACTING` table | The **machine** form of the same idea — a staged allowance that carries a test asserting it is still needed, so it deletes its own reason to exist. Prose stages the obligation; these stage the *check*. |

## 5. Why this is a recipe and not a MUST

Recorded because the question is the obvious one, and because this initiative's
own founding argument (*"a discipline with no rule ID cannot be cited, cannot
appear in the Index of MUSTs, and cannot be checked by a gate"*) cuts the other
way and deserves an answer rather than a silence.

1. **The bindable population is one.** Only `mgf-standard` authors standards
   families. A DOC-* MUST binds all 44 registry members, and **CFM-03's
   completeness gate would force each of them to add a row** to answer `N/A` —
   43 repos paying ledger cost for an obligation they structurally cannot hold.
2. **It is layout, and the corpus just ruled on layout.** [CRT-12](../standards/REVIEW.md#CRT-12)
   and the [`README.md`](README.md) carve-out — ratified as DB-S1-2 on
   2026-07-30 — draw the line at *protocol binds; id scheme, report layout, and
   attack lists do not*. A named section heading is on the layout side of that
   line, and the ink is a day old.
3. **The source does not rule it either.** Verified at `sooth-standard`
   `af95611`: the phrase *"Adoption posture (why nothing here fails today)"*
   heads two docs in full (`SEATS.md`, `HANDOFF.md`) with the short form
   `## Adoption posture` in `AGENT_GAPS.md`, and appears in **no rule
   anywhere** in that corpus (closing court F6 corrected the original
   "three docs verbatim" count). Porting it as a
   MUST would make mgf's version *stronger than the family it was copied from*
   — something this initiative has done exactly once (**SHP-13**), and said so
   in the rule's own text.
4. **The citability gap it would close is already closed by the gate.** The
   argument for `SEAT`/`CRT`/`SHP` was that a convention with no ID drifts
   invisibly and cannot be checked. This one **can** be checked, today, in the
   only repo that can violate it — so it gets the mechanism without the fleet
   tax. *A gate is a citation.*

**Promotion trigger.** Promote to a DOC-family MUST as a normal EXTEND
([`../../LOCK.md`](../../LOCK.md) §2) on the day a **second repo authors a
standards family** — a sibling corpus, a delegated family owner, or a
consumer that ships binding rules of its own. At that point the population
stops being one, the gate here stops covering it, and the ledger cost becomes
worth paying. The same shape as [AG-23](../standards/AGENTS.md#AG-23) and
[SEAT-09](../standards/SEATS.md#SEAT-09): a SHOULD-tier obligation with a
written trigger beats an unenforceable MUST.

## 6. Template

Paste into the owning `docs/standards/*.md`, below the family's prose and above
its self-review checklist (the position [`SEATS.md`](../standards/SEATS.md) §3
and [`SESSION_HOOKS.md`](../standards/SESSION_HOOKS.md) §4 both use). **The
links inside the block are written relative to that destination**, not to this
recipe — `AGENTS.md#AG-13` resolves once the block is in `docs/standards/`.

```markdown
## N. Adoption posture (why nothing here fails today)

**<IDS>** bind *<behaviour | the layer's behaviour | …>*. They are in force
the moment they are enacted and need no file to exist anywhere — a repo cannot
be non-conformant against them by omission, only by <conduct | construction>.

**<ID>'s <thing> is staged**, and a repo that has not yet received it is
conformant while propagation is pending. <N> things must land before a repo can
be held to it, and <all|both> land in federation libraries, so <all|both> are
**supervisor-applied per [AG-13](AGENTS.md#AG-13)**:

1. <the mechanism> — <what it needs first>.
2. <the check that follows> — <the shape it copies>.

<If a founder act is separate, say so and say it is separate.>

This is the federation's standing warn-then-enforce order — the same staging
the **PR-\*** DRAFT marker uses and the same *GATED* class
[`LOCK.md`](../../LOCK.md) §1 defines — and it keeps the family gateable on day
one instead of declaring 44 repos non-conformant for a mechanism that has not
shipped yet.
```

---

**Provenance.** The heading and its parenthetical are copied from the
Sooth family's house convention (`sooth-standard` `af95611`: the full phrase
heads `SEATS.md` and `HANDOFF.md`; `AGENT_GAPS.md` carries the short form —
a convention there too, not a rule). A **copy with attribution, never a dependency** — the
Sooth family's **XF-03**; mgf takes on no import edge and no resolution path,
and this text is authoritative here. Adopted by wave **S5** of
[`../inprogress/SOOTH_ADOPTION.md`](../inprogress/SOOTH_ADOPTION.md); the
mechanical check and the `REVIEW.md` §9 instance were added by that wave.
