# Plasma → Magogi Standard — Feedback Papers v0.1

> **ARCHIVED 2026-06-13.** All seven papers (P-A..P-G) were filed as **PAPER-100..106** in
> [`../../FEEDBACK.md`](../../FEEDBACK.md) and are **resolved** — six shipped 2026-06-11; PAPER-100
> (the audit-spine gap) shipped in `mgf-standard 0.1.50` (the 218→258 re-baseline). Retained as the
> original Plasma court-intake submission record.

**What this is:** the Plasma project's feedback batch on the Magogi standards corpus, written in the corpus's own paper format (Concern / Why it matters / Concrete evidence / Suggested shape; metadata per FB-02/03) and filed per its own routing rule (standards friction → `mgf-standard/FEEDBACK.md`). Paper numbers are assigned by the target on filing (FB-01); entries below carry staging ids P-A..P-G.
**Reviewed artifact:** `magogi-standard-bundle.zip` — snapshot of mgf-standard **v0.1.48 / corpus v2.21**, captured 2026-06-10. Bundle-only review: no live repos, no CLI, no registry access. Evidence levels: VERIFIED_AGAINST_DOCS throughout, except where marked VERIFIED_BY_EXECUTION. All `file:line` cites are into the bundle.
**Submitter:** the Plasma project (Magogi Foundation) — court intake review, 2026-06-10.
**Posture:** per the corpus's own honest-output discipline — depth over breadth, no false balance, concrete cost named per finding, and the genuinely excellent named as such (§9–§11).

---

## Holistic verdict (audit-outcomes form)

**Findings recorded — all hygiene-class.** The corpus was examined family-by-family (every rule text read verbatim; read-depth disclosed in Plasma's intake map). The conceptual core — the principles layer, the outcome-over-mechanism doctrine, the audit taxonomy, the empirically-grounded rules — is **sound; no significant conceptual change needed**. Every finding below is index/propagation/template hygiene or a structural-growth proposal; none challenges a rule's substance. Severity histogram: 1×🔴, 3×🟡, 3×🟢.

---

### `P-A` — Index of MUSTs silently omits five rule families plus REL-10..13 (~40 MUST-level rules), and the headline count propagates the blindspot

| Field | Value |
|---|---|
| Status | OPEN (number on filing) |
| Severity | 🔴 Critical |
| Submitter | Plasma court intake (bundle v0.1.48) |
| Submitted | 2026-06-10 |

**Concern.** `standards/README.md`'s *Index of MUSTs* contains 218 rows across 16 families, but the corpus ships **21** binding families. TM-*, PF-*, OB-*, NM-*, GUI-* have **zero** index rows, and REL-10..13 are defined yet unindexed. The root README's headline repeats the gap.

**Why it matters.** The Index is not documentation — it is the **audit spine**: CFM-03 requires every ledger to account for "EVERY current MUST in the Index of MUSTs," and `doctor --standards` mechanically gates ledger completeness against it. Today a project can pass that gate with a "complete" ledger that never audited ~40 MUST-level rules — including L1-binding time, naming, and perf discipline. The gate certifies completeness against an incomplete denominator; that is the most expensive kind of false green. The index's own maintenance note shows this is a **recurring** failure (gaps refilled 2026-05-15 for WF/REL/DOC/TS-19+/LG-15+), i.e., manual same-commit discipline has already lost this race once.

**Concrete evidence.** Index rows = 218; `grep -cE '^\| (TM|PF|OB|NM|GUI)-'` over the index section = **0** for each family. The families exist and are binding: `TIME.md:32` (TM-01 anchor), `PERFORMANCE.md:26` (PF-01), `OBSERVABILITY.md:36` (OB-11), `NAMING.md:25` (NM-01), `GUI_CONSUMERS.md:48` (GUI-01); `standards/README.md:73/78/81` call NM/AG/TM "L1-binding." REL-10..13 are full anchored rules at `RELEASING.md:42–45`, absent from the index. Headline: `README.md:20` — "the 218 MUSTs across 16 families." Recurrence: `standards/README.md:321` (maintenance note + 2026-05-15 refill). Count basis: TM 6 + PF 7 + OB 10 + NM 3 + GUI 10 + REL 4 ≈ **40** MUST-level rules (SHOULD rows excluded), real total ≈ 258 across 21 families.

**Suggested shape.** Apply the corpus's own REL-13 medicine to itself: **generate the Index** (and the headline counts) from the per-doc Rules boxes — a `gen_rules_index.py` emitting the table + a machine companion (`rules.json`: id, family, level, applies_to, enforcement, anchor), with `--check` as a CI staleness gate so "added a rule but not the index" becomes a hard error, not drift. This also gives PAPER-47's `--kind` filter its data for free. The generator should carry an explicit SHOULD policy — today `standards/README.md:436` (LG-17, a SHOULD) sits inside the Index *of MUSTs* while other SHOULDs are excluded. Interim: manual refill of the five families + REL-10..13 + headline fix in one DOC-18 commit.

---

### `P-B` — README's own navigation text is stale against the docs it indexes

| Field | Value |
|---|---|
| Status | OPEN | Severity | 🟡 High | Submitter | Plasma court intake | Submitted | 2026-06-10 |

**Concern.** Two self-pointers inside `standards/README.md` lag the corpus: the directory tree says OBSERVABILITY is "OB-01..OB-04 L1, OB-05..OB-08 L2" (`:89`) while the doc ships OB-01..**11** — including OB-10, the corpus's flagship cross-language wire rule; the reading-order table says "RELEASING.md Rules box (REL-01..REL-08)" (`:147`) while the rules box holds thirteen.

**Why it matters.** These are the first lines a newcomer or agent reads to decide *what to read*; both under-advertise exactly the rules the corpus is proudest of. It is a DOC-18 propagation miss inside the document that defines DOC-18.

**Concrete evidence.** `standards/README.md:89`, `:147`; `OBSERVABILITY.md:35–36` (OB-10/11 anchors); `RELEASING.md:42–45`.

**Suggested shape.** One-commit fix now; permanently subsumed by P-A's generation (the tree/reading-order ranges become rendered, not hand-typed).

---

### `P-C` — Scaffolding template instructs new projects to declare a conformance level that doesn't exist

| Field | Value |
|---|---|
| Status | OPEN | Severity | 🟡 High | Submitter | Plasma court intake | Submitted | 2026-06-10 |

**Concern.** The cookiecutter's `PROJECT_OVERLAY.md` says: "(Replace `<n>` with `0`, `1`, or `2`. L1 is the default for new projects.)" — but the conformance ladder is **L1/L2/L3** (CFM-02; README "Conformance levels"). The generator's own output invites every new project to declare **L0** or to mean "L2-strict" by writing "L2".

**Why it matters.** This is the first conformance declaration a scaffolded project ever makes, feeding its README line and its CFM-01 ledger header. An off-by-one at the source of truth for *how strictly we follow the rules* is the kind of identity drift NAMING.md calls "a long-tail tax."

**Concrete evidence.** `templates/cookiecutter-mgf-project/{{cookiecutter.project_slug}}/docs/standards/PROJECT_OVERLAY.md:16`; ladder definition at `standards/DOCUMENTATION.md:75` (CFM-02) and `standards/README.md` §Conformance levels.

**Suggested shape.** Fix the line to `1`/`2`/`3`; add a `doctor --standards` lint that any declared level ∈ {L1, L2, L3} — cheap, closes the class.

---

### `P-D` — Paper-closure status vocabulary drifts between REL-09 and the FEEDBACK template

| Field | Value |
|---|---|
| Status | OPEN | Severity | 🟢 Low | Submitter | Plasma court intake | Submitted | 2026-06-10 |

**Concern.** REL-09 flips papers to "`✅ SHIPPED` / `DEFERRED` / `❌ REJECTED`"; the canonical FEEDBACK template's status set is `OPEN/SHIPPED/DEFERRED/WONTFIX/MOVED` — no REJECTED, and REL-09 lacks WONTFIX/MOVED.

**Why it matters.** Two sanctioned vocabularies for the same lifecycle field means greps, dashboards, and the eventual `--kind`-style tooling must special-case synonyms; downstream adopters (Plasma included) must guess which set is canonical.

**Concrete evidence.** `standards/README.md:467` (REL-09 text); `recipes/feedback-md-template.md:63` and `:133` (the five-status set, marked mandatory per FB-02/03).

**Suggested shape.** Declare the template's set canonical (FB-01..04 own the lifecycle); reword REL-09 `REJECTED → WONTFIX`, DOC-18 sweep for stragglers.

---

### `P-E` — `evidence_level` term drifts between the principle and the recipe built on it

| Field | Value |
|---|---|
| Status | OPEN | Severity | 🟢 Low | Submitter | Plasma court intake | Submitted | 2026-06-10 |

**Concern.** `audit-outcomes` defines `VERIFIED_BY_EXECUTION / CODE_READ / INFERRED`; `architecture-review` instructs recording `evidence_level: CONFIRMED_BY_EXECUTION`.

**Why it matters.** The enrichment's whole value is grep-able consistency across reviews; synonym drift makes "show me everything execution-verified" a two-pattern query forever.

**Concrete evidence.** `standards/principles/audit-outcomes.md:52` vs `recipes/architecture-review.md:46`.

**Suggested shape.** The principles doc owns the vocabulary; align the recipe to `VERIFIED_*` (one word), DOC-18 sweep.

---

### `P-F` — The bundle's agent briefing self-identifies as a different version than the bundle's provenance

| Field | Value |
|---|---|
| Status | OPEN | Severity | 🟢 Low | Submitter | Plasma court intake | Submitted | 2026-06-10 |

**Concern.** `README.md:8` says the bundle was "captured from mgf-standard **v0.1.48** on 2026-06-10"; the embedded canonical briefing's federation map says "You are here: mgf-standard **0.1.46**" (`AGENT_BRIEFING.md:163`).

**Why it matters.** The bundle's stated purpose is making an isolated agent "fully aware of the standard"; its single most important file (per `README.md`'s own ordering) carries a version two patches behind the snapshot's claim — OP-04's headline-facts rule, applied to the export artifact.

**Concrete evidence.** `README.md:8`; `AGENT_BRIEFING.md:163`.

**Suggested shape.** The export script regenerates the briefing at capture time and stamps both files from one source; a one-line consistency check in the export flow.

---

### `P-G` — A raw NUL byte is embedded in TESTING.md, flipping the corpus's largest rules doc to "binary" for every text tool

| Field | Value |
|---|---|
| Status | OPEN | Severity | 🟡 High | Submitter | Plasma court intake | Submitted | 2026-06-10 (**VERIFIED_BY_EXECUTION**) |

**Concern.** `standards/TESTING.md` contains exactly one raw control byte: a literal NUL at **offset 26561, line 355**, inside a Hypothesis example that was meant to read `@example(value="\x00")  # null byte` — the *actual* byte was embedded instead of the four-character escape text.

**Why it matters.** The file decodes as valid UTF-8, so it hides from encoding checks — but `file(1)` reports `data` and GNU grep's binary heuristic suppresses matches (`Binary file ... matches`), so line-numbered grep, many diff/pager defaults, and any agent's text tooling degrade on the 86 KB document holding TS-01..TS-28. That is a direct, daily DOC-12 (AI-navigability) cost on the testing standard itself — Plasma's own intake hit it (header maps came back "binary file matches").

**Concrete evidence.** Executed: `python3` scan → one control byte `0x00`, offset 26561, line 355, context `b'@example(value="\x00") # null byte'`; `file standards/TESTING.md` → `data`; full UTF-8 decode succeeds (which is why it survived).

**Suggested shape.** Replace the byte with the literal text `\x00` (a four-character edit; the example then renders as intended). Add a cheap CI gate over `docs/standards/`: reject control bytes outside `\t\n\r` — catches the class, costs milliseconds.

---

## §9 What is genuinely excellent — keep, and keep loudly

Named per the holistic-verdict discipline, because non-pain reading is also evidence: the **principles trio** (empowerment charter / non-adoption-is-valid / audit-outcomes) is the best statement of agent-era engineering judgment this reviewer has ingested — Plasma adopted it nearly verbatim. The **concrete-cost authoring test** with real incidents attached (PAPER-50 in PF-01, the Forgejo non-redirect in NAMING §4, LG-06's relaxation history) keeps rules falsifiable. **OB-10's one-wire-one-golden-every-language-byte-for-byte** is exactly right and already proven with a Zig client. **PR-06's stdlib-allowlist meta-test** mechanizes what layer-linters provably can't — Plasma stole it for its commons. The **worked non-adoption examples** (LOG-01, BOOTSTRAP-01, small-consumer) make the decline path real rather than theoretical.

## §10 Considered and rejected (examined; deliberately not raised)

- *"The corpus is MUST-heavy / reads as compliance-first"* — rejected: the charter exists precisely to answer this, and does.
- *The `ruff>=0.4,<0.16` exact pin tightness* — rejected: rationale is stated inline in `policy.toml` (fleet-format protection); concrete cost of the alternative is named.
- *Recipe count/size* — rejected: indexed, chartered (DOC-03), and the review-vs-rules boundary is explicitly policed.
- *Index rows lack clickable anchors* — rejected: cosmetic; PAPER-48's anchor convention already covers citation needs; no concrete cost nameable.
- *"218" arithmetic* — rejected as a separate finding: the index is internally consistent at 218; the defect is **coverage**, already P-A.

## §11 Could not verify (bundle-only review)

Live behavior of `doctor --standards` / `catch-up` gates; current registry and federation state; whether any of P-A..P-G is already filed in the live `mgf-standard/FEEDBACK.md` (the bundle excludes it by design — if so, cross-reference on filing rather than duplicating); the briefing-vs-bundle version question's root cause (export-flow access needed). All other claims above are pinned to bundle `file:line` or executed reproductions.
