# Changelog

All notable changes to `mgf-standard` are documented here.

Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
Versioning: [SemVer](https://semver.org/) — 0.x MINOR may break; see
[`docs/standards/`](docs/standards/) AP-03.

---

## [Unreleased]

## [0.1.61] - 2026-07-04

### Added
- **LOCK v1 (2026-07-04)** — the standards corpus is **LOCKED at v3.0.0** and the
  federation contract at **v2.0**: `LOCK.md` lands at root (locked surfaces, the
  CLARIFY/EXTEND/BREAKING amendment classes, preconditions, the open-at-lock register,
  the shared-philosophy clause with sooth-standard, the pressure-point register);
  PR-01..07 marked GATED-at-lock; annotated tag `standards-lock-v1`. Founder-enacted;
  execution delegated to the Court/CTO seat. Zero rule changes (265/22 unchanged).
- **Headline/version-coherence gate** (`scripts/check_headline_coherence.py`,
  invoked by `gen_rules_index.py --check`; pinned by
  `tests/unit/test_check_headline_coherence.py`). Every drift the 2026-07-03
  Court review confirmed was a hand-maintained headline shadowing a machine
  source, so the headline surfaces are now gated against `rules.json`: the
  README Index-of-MUSTs footer count (reconciled 264 → **265** — the AP-16
  addition had missed the footer, F-M4), `SCOPE.md`'s MUST-count literal, and
  `FEDERATION.md`'s §4 family-table row count. Version coherence: the
  contract must carry **no literal corpus version** ("at time of writing" is
  banned; pointer form required; rule-amendment citations like "DOC-01
  v2.11" stay legal as history), and the contract Status line must match the
  script's single `CONTRACT_VERSION` constant. Rides CI through the same
  channel as the rules-index gate (the pytest steps) — `.woodpecker.yml` is
  a WF-13 generated artifact, so no hand-edited pipeline step.

### Changed
- **Woodpecker templates — the sooth family's field-proven CI fixes folded back
  (PAPER-108/113/114; EXTEND per LOCK §2, staged for enactment — corpus v3.1.0 at
  the founder's merge; no rule text changes, 265/22 unchanged).**
  (1) *PR/push double-run (PAPER-114/-108):* the `push` event is now
  branch-filtered to `main` in `base.yml` + `base-zig.yml`, so a feature-branch PR
  no longer races a redundant push pipeline on the same commit (the sooth-proven
  exit-126 workspace contention); tag/cron/manual triggers untouched.
  (2) *Zig determinism (PAPER-114/-108):* `base-zig.yml` gains an inline
  ziglang-pin↔`toolchain.lock` coherence gate (sooth `verify_ci` check-#10
  semantics — mismatch reds, no committed lock is noted) plus a commented opt-in
  `validate-bundle` lane; `verify_ci.py` tool adoption deferred (reasons in the
  paper resolutions).
  (3) *Endpoint indirection (PAPER-113):* every devpi index literal in
  `templates/woodpecker/` (base ×3 + four fragments) is replaced by the Woodpecker
  **server-level** `$DEVPI_URL` variable (live since 2026-07-04; name shared with
  sooth-standard) with a per-step fail-fast guard; `MGF_INFRA.md §2` documents the
  variable + host-move procedure. mgf-fed's generator constant + the cookiecutter
  remain as named companions. This repo's own `.woodpecker.yml` regenerated
  (WF-13); the fleet-wide re-render wave follows the enacting merge.
- **DOC-18 / AG-14 — cross-repo change-wave carve-out (standards v2.26.1;
  staged for enactment).** The literal "IN THE SAME COMMIT" propagation demand
  is now scoped to same-repo dependents; for cross-repo dependents (e.g. the
  `mgf-fed` CLI surfaces in `mgf-common`) propagation happens **in the same
  change-wave** — one commit per repo, cross-referenced in both commit
  messages, and the wave is not "done" until every repo's commit has landed.
  The old wording was unsatisfiable in git across repo boundaries (Court
  review 2026-07-03, F-M7): a central anti-drift rule that cannot be satisfied
  as written pressures agents into false "done" or silent skips. §10.4's prose
  already described the change-wave model; the Rules boxes now agree with it.
  Wording-only → PATCH per the versioning policy (v2.26 → v2.26.1); rule IDs
  and counts unchanged; README Index-of-MUSTs rows + §10.4 matrix header
  updated same-commit; `rules.json` regenerated (index gate GREEN).
- **Standards retargeted to the self-hosted devpi index (PAPER-112).** The
  publish/distribution corpus — `PACKAGE_DISTRIBUTION.md` (canonical, PKG-01..12),
  `WORKFLOWS.md` (WF-03/04/06/08), `RELEASING.md` (REL-04/05/06),
  `WORKFLOWS_PATTERNS.md` §4, `AGENTS.md` (AG-09), `NAMING.md`,
  `COMMON_COMPONENTS.md`, the README *Index of MUSTs*, and the recipes + ledger —
  now describes the running system: `mgf-*` publish + resolve via the devpi index
  `magogi/prod` (`devpi_password`, **anonymous** read, `verify-devpi`, non-volatile
  immutability, single index inheriting `root/pypi`), superseding the
  Codeberg-registry model. The package registry moved to devpi; **Codeberg remains
  the git forge**. Rule IDs unchanged (DOC-18 text-only). Three host-ops decisions
  flagged inline for confirmation (identity split, recovery procedure, explicit
  stage-pinning).

## [0.1.60] - 2026-06-29

### Changed
- **Registry refresh (REL-13).** `MGF_LIBRARIES.json` — shipped as `mgf.standard`
  package data (`mgf/standard/_libraries.json`) — now lists all **36** federation
  libraries: adds `mgf-fedres`, `mgf-fed-web`, `mgf-test-web`; renames
  `mgf-cloud-app` → `mgf-cloud-web`; currency bumps across the fleet. This lets the
  `mgf-fedres` Class-P projectors read a **current** registry hermetically from the
  installed package — so any fleet repo can project its federation graph in a
  single-repo CI checkout, with no sibling `mgf-standard` on disk.

## [0.1.59] - 2026-06-29

### Added
- **AG-20 — owned-infrastructure discipline + the `MGF_INFRA` registry (standards
  v2.26).** Before declaring an action blocked / human-gated / impossible, an agent
  MUST consult the new fleet **`MGF_INFRA.md`** registry (the inventory of what the
  Foundation runs + owns — Woodpecker CI, devpi, OpenObserve, Codeberg, Infomaniak —
  with each one's access + recovery path) and attempt the self-owned recovery path:
  an auth/access failure on Magogi-owned infra is a solvable sub-problem, not a
  terminal wall. Reason from capabilities, not stated state; state the blocking
  assumption out loud; recorded "blocked"/"gated" notes carry an unblock-path +
  as-of date. Origin: a session that treated our own (expired-token) Woodpecker as
  a human-gated wall when it was a one-command server-side token mint.
  - Propagated (DOC-18): `docs/standards/AGENTS.md` (AG-20 Rules box + glance row),
    README *Index of MUSTs* (→ **264 MUSTs across 22 families**) + version history, a
    regenerated `docs/standards/rules.json` (rules-index gate GREEN), the
    `test_rules_index` count, this repo's conformance ledger, and the new root
    `MGF_INFRA.md` fleet registry.
- **AG-19 — the runtime auto-memory store MUST be version-controlled + backed
  off-machine (standards v2.25).** The machine-local harness memory
  (`~/.claude/projects/<slug>/memory/` — the private store of AG-05/AG-08, distinct
  from AG-17's in-repo `docs/memory/`) MUST be a git repo pushed to a **private**
  Codeberg remote `<project>-memory`, so the agent's own memory survives disk loss
  and stays auditable across machines. **Safety is the crux:** git is scoped to the
  `memory/` directory only — never its parent, which holds the session `*.jsonl`
  transcripts that can contain secrets — enforced by an allowlist `.gitignore`
  (`*`, `!*.md`, `!.gitignore`). New `scripts/init_memory_vcs.py` bootstraps/refreshes
  it idempotently (init → private remote via `tea` → AG-03-trailered commit → push;
  `--check`/`--no-remote` modes). Server-side CI can't gate a machine-local store, so
  enforcement is the script + self-check, not a `.woodpecker` step.
  - Propagated (DOC-18): `docs/standards/AGENTS.md` (AG-19 Rules box + §9 enforcement
    table), README *Index of MUSTs* (→ **263 MUSTs across 22 families**) + the
    maintenance-note version history, a regenerated `docs/standards/rules.json`
    (rules-index gate GREEN), and the new bootstrap script.
- **`mgf-fed start` framed as the single onboarding front-door.** The four
  onboarding prompts (`federation-{sync,new-project,adopt,onboard}-prompt`) now
  carry a *Front door* note pointing at `mgf-fed start` (auto-detects a member →
  sync; otherwise prints a scenario menu; `--mode {new|onboard|sync|adopt}`
  forces, `--list` lists). `docs/recipes/README.md` gains an *Onboarding* intro
  + intent→mode table. The prompt bodies are unchanged in substance; `start`
  dispatches to them (the dispatcher itself ships in `mgf-fed` 0.6.0).

### Fixed
- **Corpus-wide CLI rename `mgf-common <verb>` → `mgf-fed <verb>`** (Wave-3 reorg:
  the CLI moved to `mgf-fed`; the `mgf-common` console script no longer exists).
  Swept every live doc — standards, recipes, FEDERATION/README/AGENTS/DEPS, the
  cookiecutter templates, design + memory notes (~210 invocations across 54
  files). Two verbs were **renamed** in the move, not just reprefixed:
  `mgf-common doctor` → **`mgf-fed app-doctor`** (mgf-fed `doctor` is the
  *federation* self-check) and `mgf-common feedback` → **`mgf-fed feedback-howto`**
  (mgf-fed `feedback` is the FB-05 relay). Only real CLI invocations (inline-code
  spans + fenced code) were touched — bare prose ("the mgf-common feedback file",
  "mgf-common federation refs", "which mgf-common version") and the
  `mgf-common[standards]` *package* extra are unchanged. History is preserved:
  `CHANGELOG.md`, `LESSON_LEARNED.md`, `FEEDBACK.md`, and `docs/archive/` keep the
  spellings that were accurate when written.

### Changed
- **Standards README slimmed 1601 → 603 lines (federation reorg, Wave 2).** The
  embedded per-version *"What's new in v2.x"* changelog (~1000 lines) duplicated
  this file and is removed — `CHANGELOG.md` is now the single home for standards
  history. The **DOC-18** propagation rule, the §10.4 Change-Propagation Matrix,
  and every per-file *Propagation header* drop the now-removed *README "What's
  new"* dependent, so a standards change updates ONE history, not two. No rule
  changes — the Index of MUSTs and all 270 rules are unchanged.

---

## [0.1.58] - 2026-06-16

### Changed
- **AG-18 tightened — AG-03 commit trailers are now CI-enforced (PAPER-102 ship,
  standards v2.24).** AG-18's existing MUST gains clause (c): every repo MUST commit
  the `.githooks/prepare-commit-msg` hook (wired via `core.hooksPath`) **and** run
  `scripts/check_commit_trailers.py` as the generated `.woodpecker.yml`'s
  authoritative `commit-trailers` CI gate (fails any branch whose non-merge commits
  lack either trailer, independent of local config). `mgf-common doctor`'s
  `prepare-commit-msg` check — inert by design until now (it self-gates on the
  corpus text referencing `prepare-commit-msg`) — flips to **enforcing** with this
  release. No new rule ID; the Index stays at 262 MUSTs / 22 families.
  - Propagated (DOC-18): `docs/standards/AGENTS.md` (AG-18 Rules box + §11 + the
    enforcement table), README *Index of MUSTs* + *What's new in v2.24*, and a
    regenerated `docs/standards/rules.json` (rules-index gate GREEN).
  - **Lands GREEN, not retro-failing:** the whole fleet's `.woodpecker.yml`s already
    carry the `commit-trailers` gate (the PAPER-102 wave distributed the mechanism
    first) — the DOC-19-style staging: ship the mechanism, *then* tighten the rule.

## [0.1.57] - 2026-06-15

### Added
- **`read_scaffold()` / `list_scaffold()` — canonical scaffold artifacts as wheel data.**
  The AG-03 `prepare-commit-msg` hook + the `check_commit_trailers.py` CI checker are now
  force-included as `mgf/standard/_scaffold/` and resolved through the new public accessors,
  so a consumer (`mgf-common catch-up`) writes the *canonical* text into a repo instead of a
  drift-prone parallel copy (single source of truth = mgf-standard's own `.githooks/` +
  `scripts/`). Part of mgf-common FEEDBACK **PAPER-102** (the AG-03 trailer enforcement).
  `PUBLIC_API.{md,json}` + `__all__` updated (the AP-10 sync test pins them).

## [0.1.56] - 2026-06-14

### Security
- **SC-15 — directory-traversal guard on the corpus readers.** `read_standard` /
  `read_recipe` / `read_design` resolve `<corpus-dir>/<name>.md` from a caller-supplied
  stem; before this fix a crafted `name` could escape the corpus directory
  (`read_standard("../../README")` returned the repo-root `README.md`). They now reject any
  non-bare stem (a path separator, `..`, or an absolute path) with the same `FileNotFoundError`
  raised for an unknown topic — a reader can only ever reach a file *inside* its corpus dir.
  Low real-world severity (the accessors are consumed by trusted federation code; `.md`-only;
  no privilege boundary), but a genuine SC-15 miss on a shipped public API. New
  `tests/unit/test_path_traversal.py`. Surfaced by the SECURITY depth-audit pass
  (`docs/inprogress/MGF_STANDARDS_CONFORMANCE.md` → Findings log).

## [0.1.55] - 2026-06-14

### Added
- **WF-13 (the CI pipeline is a generated artifact)** — one new WORKFLOWS MUST (Index 261→**262**/22 families).
  Each repo's `.woodpecker.yml` is rendered from the canonical template (`templates/woodpecker/`) by
  `mgf-fed scaffold` — never hand-edited; `mgf-fed drift-check` enforces generation-currency (on-disk ==
  fresh render). Legitimately-bespoke pipelines are listed in `templates/policy.toml [exempt].woodpecker`
  (now `mgf-hrb` + `mgf-test-supervisor`) and held to the step-name fallback instead. New recipe
  `docs/recipes/run-ci.md` (run CI locally via `mgf-fed local-ci`, the generated-pipeline rule, the two-mode
  release). WORKFLOWS.md §8.4 + Rules box + enforcement matrix + checklist; `rules.json` regenerated (gate GREEN).
  (Activating remote Woodpecker so the pipeline actually RUNS remains WF-11.)

## [0.1.54] - 2026-06-13

### Added
- **AG-17 (in-repo agent memory) + AG-18 (standardized git config)** — two new AGENTS MUSTs (Index 259→**261**/22 families).
  AG-17: every repo keeps committed `docs/memory/` (a `MEMORY.md` index + one-fact-per-file topic notes) so durable agent
  context travels with the repo. AG-18: the canonical `.gitignore` now includes `my_stuff/` (never-committed local secrets,
  PKG-03) + `.gitmessage`/`commit.template` wiring. New recipes `in-repo-memory.md` + `standardized-git-config.md`; the
  cookiecutter seeds `docs/memory/` and ignores `my_stuff/`. AGENTS.md §5.1 + §11; `rules.json` regenerated (gate GREEN).

## [0.1.50] - 2026-06-12

### Added
- **PAPER-100 — Index of MUSTs completed (218 → 258 MUSTs across 21 families).** Refilled the five
  omitted binding families (TM/PF/OB/NM/GUI) + REL-10..13 that `doctor --standards` (CFM-03) had been
  gating ledgers against an incomplete denominator. Added `scripts/gen_rules_index.py --check` anti-drift
  gate (CI lint + `tests/unit/test_rules_index.py`) + `docs/standards/rules.json`. All 21 federation §Z
  ledgers re-baselined to 258 (forward-compatible). Runbook: `docs/archive/2026/PAPER-100-rollout.md`.
- **PAPER-107 — shared-code / duplication discipline** (`docs/recipes/shared-code.md`) + **NM-05**
  (junk-drawer-module-name SHOULD), folded back from the Plasma project's Commons standard.

### Fixed
- **Plasma feedback cohort (PAPER-100..106):** NUL byte in TESTING.md (P-G) + control-byte CI gate; README
  nav ranges OB-01..11 / REL-01..13 (P-B); cookiecutter level 0,1,2→1,2,3 (P-C); REL-09 REJECTED→WONTFIX
  + sweep (P-D); architecture-review evidence_level →VERIFIED_BY_EXECUTION (P-E); bundle version stamp (P-F).

---

## [0.1.49] - 2026-06-11

- docs(recipes): add **local-release** + **remote-release** runbooks (the two-mode release model — `mgf-fed release-local` / `release-remote`).
- docs(standards): RELEASING.md gains a "Release modes — local-first, then remote promotion" section (no new MUSTs; names the model the tooling enforces via REL-01/02/05/06/08/13 + PKG-04/05).

---

## [0.1.48] - 2026-06-10

- chore(registry): regen — add **mgf-fed** (federation orchestrator); 29 libraries, REL-13 GREEN+CURRENT.
- feat(templates): add the canonical scaffolding **policy.toml** + byte-exact verify_codeberg.py (drives ).
- docs: add the federation automation & two-mode release plan (docs/inprogress/).

---

## [0.1.47] - 2026-06-09

- chore(registry): regenerate — cornerstone mgf-common 0.46.7 (which now resolves mgf-standard). REL-13 GREEN + CURRENT.

## [0.1.46] - 2026-06-09

### Changed
- **RENAME: `mgf-doc-standard` → `mgf-standard`** (distribution + Python module `mgf.doc_standard` → `mgf.standard`). Hard cut-over: `mgf-common`'s [standards] extra + agents/standards/catch-up CLI now resolve `mgf-standard`/`import mgf.standard`. Wheel data (standards corpus, recipes, registry, FEDERATION) re-homed under `mgf/standard/`. The registry generator now derives each slug from the pyproject `name` (robust to the repo-dir rename). Old name retired (no alias).


---

## [0.1.45] - 2026-06-09

- chore(registry): regenerate for mgf-tele-core 0.1.6 + mgf-tele-teltonika 0.1.6 + the mgf-hrb/[standards] catch-up. **Milestone: the entire Python federation (~22 libraries) is now evidence-audited + governed.** REL-13 GREEN + CURRENT.

---

## [0.1.44] - 2026-06-09

- chore(registry): regenerate — picks up the [standards] extra added to mgf-vm-libvirt during its close (the VM family is now fully audited+governed). REL-13 GREEN + CURRENT.

---

## [0.1.43] - 2026-06-09

- chore(registry): regenerate for mgf-vm-interchange 0.2.2 (AP-13 __version__ + full CI + audit close to 73%) + its [standards] extra. REL-13 GREEN + CURRENT.

---

## [0.1.42] - 2026-06-09

- chore(registry): regenerate for mgf-vm-forensics 0.1.6 (SC-15 hardening + full CI + audit close to 81%) + its [standards] extra. REL-13 GREEN + CURRENT.

---

## [0.1.41] - 2026-06-09

- chore(registry): regenerate — picks up the [standards] extra added to mgf-vm-firecracker during its hygiene close. REL-13 GREEN + CURRENT.

---

## [0.1.40] - 2026-06-09

- chore(registry): regenerate — picks up the [standards] extra added to mgf-vm-core (AG-16) during its close-out. REL-13 GREEN + CURRENT.

---

## [0.1.39] - 2026-06-09

- chore(registry): regenerate — picks up the [standards] extras added to mgf-vm-sdk (AG-16) during depth-audit close-out, + records mgf-vm-core/mgf-vm-sdk audit progress. REL-13 GREEN + CURRENT.

---

## [0.1.38] - 2026-06-08

- chore(registry): regenerate — **mgf-apiprobe 0.5.6->0.5.7** (depth-audit close: CI pipeline + SCOPE/docs + PR-01 UI-contract + AP-13 version-drift fix + public-API; ledger 137 OK / 30 open, 82%% of applicable; OP/LG/DP-09 feature tail documented). REL-13 GREEN + CURRENT.

---

## [0.1.37] - 2026-06-08

- chore(registry): regenerate — **mgf-logship 0.1.3->0.1.4** (depth-audit close: import-linter + CI pipeline + missing federation docs + SCOPE + tests + public-API; ledger 105 OK / 16 open / 1 declined, 86%% of applicable). REL-13 GREEN + CURRENT.

---

## [0.1.36] - 2026-06-08

- chore(registry): regenerate — **mgf-django 0.4.6->0.4.7** (depth-audit close: import-linter + CI pipeline + scope/docs/tests + typed errors [EH-01/08/09] + public-API; ledger 136 OK / 7 open / 1 declined, 95%% of applicable). REL-13 GREEN + CURRENT.

---

## [0.1.35] - 2026-06-08

- chore(registry): regenerate — **mgf-livepush 0.1.5->0.1.6** (depth-audit close: CI pipeline + scope/docs/tests + public-API + LG event fields; ledger 122 OK / 5 open / 1 declined, 95%% of applicable). REL-13 GREEN + CURRENT.

---

## [0.1.34] - 2026-06-08

- chore(registry): regenerate — **mgf-auth 0.1.5->0.1.6** (depth-audit close: DP-01 _svix extraction + CI pipeline + scope/docs/tests + public-API + EH-08/LG; ledger 124 OK / 7 open / 2 declined, 93%% of applicable). REL-13 GREEN + CURRENT.

---

## [0.1.33] - 2026-06-08

- chore(registry): regenerate — **mgf-alembic 0.4.7->0.4.8** (depth-audit close: CI pipeline + scope/docs + public-API + EH-01/SC-17/LG-11; ledger 129 OK / 1 open / 3 declined, 97%% of applicable). REL-13 GREEN + CURRENT.

---

## [0.1.32] - 2026-06-07

- chore(registry): regenerate — **mgf-http 0.4.7->0.4.9** (depth-audit close: CI pipeline + scope/docs + public-API + tests + EH; ledger 134 OK / 5 open / 1 declined, 96%% of applicable). REL-13 GREEN + CURRENT.

---

## [0.1.31] - 2026-06-07

- chore(registry): regenerate — **mgf-http 0.4.7->0.4.8** (depth-audit AP cluster: __version__ + PUBLIC_API surface + verb docstrings; ledger 115 OK / 24 open / 1 declined). REL-13 GREEN + CURRENT.

---

## [0.1.30] - 2026-06-07

- chore(registry): regenerate — **mgf-sqlalchemy 0.5.6->0.5.7** (depth-audit tail: EH-07 + REL-01 + AP-14 decline; ledger 115 OK / 2 open / 1 declined, 97%% of applicable). REL-13 GREEN + CURRENT.

---

## [0.1.29] - 2026-06-07

- chore(registry): regenerate — **mgf-sqlalchemy 0.5.5->0.5.6** (depth-audit AP cluster: __version__ + PUBLIC_API surface; ledger 113 OK / 5 open, 96%% of applicable). REL-13 GREEN + CURRENT.

---

## [0.1.28] - 2026-06-07

- chore(registry): regenerate — **mgf-test-supervisor 0.1.12->0.1.13** (OP-01 rich --version; close-out batch). REL-13 GREEN + CURRENT.

---

## [0.1.27] - 2026-06-07

- chore(registry): regenerate — **mgf-test-supervisor 0.1.11->0.1.12** (depth-audit AP cluster: __all__ + PUBLIC_API surface; ledger 98 OK / 14 open, 88%% of applicable). REL-13 GREEN + CURRENT.

---

## [0.1.26] - 2026-06-07

- chore(registry): regenerate — **mgf-fastapi 0.6.9->0.6.10** (depth-audit batch E logging hardening; ledger 143 OK / 7 open, 95%% of applicable). REL-13 GREEN + CURRENT.
- note: **0.1.25 skipped** — a Forgejo PR rate-limit stranded that cut + left a stray v0.1.25 tag at the 0.1.24 commit (no 0.1.25 wheel published); re-cut here.

---

## [0.1.24] - 2026-06-07

- chore(registry): regenerate — **mgf-fastapi 0.6.8→0.6.9** (depth-audit batch D: EH-08/EH-10/DP-11/SC-07; ledger 138 ✅ / 13 ⏳). REL-13 GREEN + CURRENT.

---

## [0.1.23] - 2026-06-07

- chore(registry): regenerate — **mgf-fastapi 0.6.7→0.6.8** (depth-audit gap closing batch A+B: CI publish pipeline + import-linter + public-API/version/corpus-pin; 86→108 ✅). REL-13 GREEN (28 libraries) + CURRENT.

---

## [0.1.22] - 2026-06-07

- chore(registry): regenerate — cornerstone **mgf-common 0.46.6** (depth-audit gap-closing: CF-02 behavior fix + 10 conformance fixes; 11/14 gaps closed) + self-version record. REL-13 GREEN (28 libraries) + CURRENT.

---

## [0.1.21] - 2026-06-07

- chore(registry): regenerate — cornerstone **mgf-common 0.46.5** (REL-13 after
  the `doctor --standards` LESSON_LEARNED.md presence gate, mgf-common
  PAPER-99 / Phase C of the DOC-19 promotion wave) + self-version record.
  REL-13 GREEN (28 libraries) + CURRENT. Closes the DOC-19 promotion wave
  (`docs/archive/2026/doc19-promotion-wave.md`): DOC-19 is a MUST (v2.21), seeded
  federation-wide, and presence-gated end-to-end.

---

## [0.1.20] - 2026-06-07

- **Standards v2.21 — DOC-19 (`LESSON_LEARNED.md`) promoted SHOULD → MUST.**
  Shipped v2.20 as a deliberately-staged SHOULD; now that the file is **seeded
  federation-wide** (the DOC-19 adoption wave — present on every repo's default
  branch), it is a MUST: added to the README **Index of MUSTs** (so the
  `doctor --standards` CFM-03 ledger-completeness gate requires a `DOC-19` row)
  and presence-gated (mgf-common PAPER-99). Presence is the bar — a seeded file
  with no lessons yet is conformant. Safe because conformance resolves from the
  pinned corpus (the flip is inert until a repo bumps) **and** the wave added a
  `DOC-19 ✅` row to every currently-complete ledger first, so the flip breaks
  no one. DOC-18 ripple: DOCUMENTATION.md rule + §2.0.1 matrix (SHOULD→✅) +
  README Index of MUSTs + What's-new v2.21 + FEDERATION.md baseline + the
  lesson-learned-md-template recipe. Promotes this repo's FEEDBACK PAPER-03 to
  shipped; unblocks mgf-common PAPER-99 (the presence gate, Phase C).
- chore(registry): regenerate at 0.1.20 — self-version record. REL-13 GREEN
  (28 libraries) + CURRENT.

---

## [0.1.19] - 2026-06-07

- **Standards v2.20 — new `DOC-19` (SHOULD): `LESSON_LEARNED.md`.** Every project
  SHOULD keep a root, append-only, dated lessons log (corrected assumptions,
  gotchas, reusable techniques, dead ends) so the federation stops re-learning
  the same thing; generalising lessons ALSO route to a `pending-feedback/<target>.md`
  paper (the federation-sync prompt's FEEDBACK-OUT step). Added to DOCUMENTATION.md
  + the §2.0.1 applicability matrix + README *What's new v2.20* + FEDERATION.md
  recommended-docs + the `lesson-learned-md-template` recipe. **Deliberately a
  SHOULD, staged — kept OUT of the Index of MUSTs** so it does NOT trip the
  `doctor --standards` ledger-completeness gate (CFM-03); promotion to a MUST
  (Index of MUSTs + a presence gate, mgf-common PAPER-99) is a future
  federation-sync wave once broadly adopted. Closes this repo's FEEDBACK PAPER-03.
- chore(registry): regenerate at 0.1.19 — picks up **cornerstone mgf-common
  0.46.4** (catch-up snapshot-provenance advisory, PAPER-98) + self-version
  record. REL-13 GREEN (28 libraries) + CURRENT.

---

## [0.1.18] - 2026-06-06

- **Federation-sync prompt hardening** (`docs/recipes/federation-sync-prompt.md`,
  resolved by `mgf-common sync-prompt` / `/sync`). Closes five gaps a red-team of
  the sync mechanism surfaced across three dimensions — resource access, value
  capture, resumable planning:
  - **STEP 0 ASSERT-LATEST** — verify installed corpus == latest *published* (the
    Codeberg registry, not just whatever the pin resolves to); flag a required
    pin-walk instead of silently syncing to a stale ceiling. Auth-correct: the
    private registry's unauth'd read returns a misleading 404/401 that means
    *authenticate*, not *absent*.
  - **STEP 0 sibling-read** — concrete authenticated raw/API/clone paths to read
    any sibling's current files (no guessing); split from API introspection.
  - **PHASE A** — `A4 PLAN` (`docs/inprogress/<sync>-plan.md`, separate from the
    conformance ledger) + a multi-session RESUME protocol; SCOPE CHECK → the
    `release_waves()` walk order for multi-project syncs.
  - **PHASE B** — an ASK gate (verify on ambiguous/irreversible calls), a durable
    `pending-feedback/<target>.md` FEEDBACK-OUT outbox (reconciles
    read-only-on-the-federation with never-lose-value; challenging the standard
    is first-class), and a LESSON-OUT step appending to `LESSON_LEARNED.md`.
- **New recipe** `docs/recipes/lesson-learned-md-template.md` (indexed in
  `docs/recipes/README.md`) — the append-only per-repo lessons log.
- **FEEDBACK.md** PAPER-03..07 record these evolutions (recipe surface shipped;
  the binding-rule / `mgf-common` CLI parts remain OPEN, staged in
  `pending-feedback/mgf-common.md`).
- chore(registry): regenerate at 0.1.18 — REL-13 GREEN (28 libraries) + CURRENT
  (self-version record).

---

## [0.1.17] - 2026-06-06

- **New recipe: `docs/recipes/federation-update-strategy.md`** — the umbrella
  procedure for updating more than one `mgf-*` project at once: the scope rings
  (R1 one-lib / R2 all-libraries / R3 +consumer-apps), the dependency-ordered
  walk order, how the two existing engines compose (cohort-release-wave +
  federation-sync-prompt), the three-checkpoint close-out proof, and the
  end-to-end runbook. Indexed in `docs/recipes/README.md`; ships as wheel data
  (resolvable via `read_recipe("federation-update-strategy")`).
- **Generated release waves.** `scripts/fed_waves.py` computes the
  dependency-ordered release waves (roots→leaves) from the live roster, dropping
  the two non-build-order edges (`mgf-test-supervisor` dev/test,
  `mgf-standard` `[standards]` extra) and failing loudly on any genuine
  runtime cycle. `scripts/gen_mgf_libraries.py` now embeds the waves as a
  **Release order (waves)** section in `MGF_LIBRARIES.md` and a `release_waves`
  field in `MGF_LIBRARIES.json`, so an agent reading the shipped registry gets
  the walk order, not just the roster. (PR #22.)
- chore(registry): regenerate at 0.1.17 — REL-13 GREEN (28 libraries) + CURRENT
  (self-version record).

---

## [0.1.16] - 2026-06-06

- **Rename: PlasmaMapper → TelePlasma** across the corpus (DOC-14/DOC-15 reference
  shapes, FEDERATION.md, templates, reference-consumers; the consumer profile
  file renamed). The historical extraction tracker keeps the old name as history.
- chore(registry): regenerate for mgf-common 0.46.3 (doctor flat/multi-package +
  deep-namespace layout support). REL-13 GREEN (28 libraries) + CURRENT.

---


---

## [0.1.15] - 2026-06-06

chore(registry): regenerate for mgf-common 0.46.2 (doctor deep-namespace fix). REL-13 GREEN (28 libraries) + CURRENT.

---


---

## [0.1.14] - 2026-06-06

chore(registry): regenerate after the mgf-common 0.46.1 PATCH (doctor --standards shape-detection fix). REL-13 GREEN (28 libraries) + CURRENT.

---


---

## [0.1.13] - 2026-06-06

Standards v2.19 — federation-sync hardening made **binding** (WU7):

- **AG-16 (new MUST):** every project MUST keep the standards corpus resolvable
  to its agents — depend on `mgf-common[standards]` (the Codeberg-only optional
  extra). A plain `mgf-common` install does not carry it and the federation CLI
  degrades loudly. Added to `docs/standards/AGENTS.md` + the README Index of
  MUSTs (216→217) + What's new v2.19.
- **CFM-03 amended:** the conformance ledger MUST account for **every current
  MUST** (✅/🚫/⏳/N/A; out-of-shape = N/A) — mechanically enforced by
  `mgf-common doctor --standards`. A partial ledger is a partial sync.
- **`FEDERATION.md`:** §2 adds the corpus-resolvable commitment (AG-16); the
  header + §2 enforcement note the `[standards]` install and
  `mgf-common doctor --standards`.

---

## [0.1.12] - 2026-06-06

Changed — the federation sync prompt is now an **enforced three-phase**
procedure (federation-sync hardening WU2), so an agent understands the whole
federation before acting and cannot ship a partial sync:

- `docs/recipes/federation-sync-prompt.md` rewritten to **STEP 0 install
  `mgf-common[standards]` + resolve** (with a loud-degrade GUARD — never proceed
  on a degraded CLI) → **PHASE A Comprehend** (no edits; enumerate every
  standard + the contract via `federation()` + the design paper via
  `read_design()` + the registry; emit a coverage map + read-receipt) →
  **PHASE B Conform** (per-rule, every MUST recorded ✅/🚫/⏳/N/A in
  `MGF_STANDARDS_CONFORMANCE.md` — no silent skips) → **PHASE C Verify**
  (`catch-up` + gates + a ledger accounting for every MUST).
- Routes through the new `federation()` / `read_design()` seams (0.1.11) so the
  contract + design are resolvable, and notes the `/sync` command-body lockstep.

---

## [0.1.11] - 2026-06-06

Added — the federation **contract** and **design** papers are now resolvable
through the package (federation-sync hardening WU1, closes discoverability
"Gap A"):

- `mgf.standard.federation()` — the full text of `FEDERATION.md` (the
  DOC-17 contract), shipped as wheel data so an agent resolves the canonical
  duties offline from the pinned version (no checkout / Codeberg URL needed).
- `mgf.standard.design_dir()` / `list_design()` / `read_design()` — the
  foundation design papers (`docs/design/`, the federation-pattern paper),
  shipped as wheel data. The whole picture (rules + contract + design) is now
  package-resolvable, not only the standards corpus.

Fixed:

- `__version__` was frozen at `0.1.6` while the packaged version had advanced
  to `0.1.10` — reconciled to track the packaged version (WF-05 coherence).

---

## [0.1.10] - 2026-06-04

Documentation: PKG-12 is now mechanically enforced (a clarification / PATCH).

### Changed

- **PKG-12 flipped from "(proposed; not yet wired)" to "Enforced."** The
  `no-pypi-publish-surface` grep gate is live: mgf-common ships
  `scripts/check_no_pypi_surface.py` + a `no-pypi-surface` CI step (after
  `lint`) that fails CI if any `mgf-*` publish / token / index / verify surface
  targets pypi.org (allowlisting third-party `--extra-index-url`, comments, and
  historical notes). Siblings copy the cornerstone. The "Mechanical
  enforcement" section drops its "(proposed)" qualifier.

---

## [0.1.9] - 2026-06-04

Registry regen (REL-13) after the mgf-common 0.45 Codeberg cutover + the
federation cohort walk. The shipped `MGF_LIBRARIES.json` / `MGF_LIBRARIES.md`
(the `libraries()` data) now record **mgf-common 0.45.1** and the walked cohort,
so `mgf-common catch-up` / `agents` reflect the current roster instead of the
pre-cutover 0.44.5.

### Changed

- **Registry regenerated** — mgf-common 0.45.1 + the cohort walk: test-supervisor
  0.1.10, http 0.4.6, sqlalchemy 0.5.4, django 0.4.5, apiprobe 0.5.5, hrb 0.1.1,
  alembic 0.4.6, auth 0.1.4, livepush 0.1.4, logship 0.1.2, tele-core 0.1.4,
  tele-teltonika 0.1.4, fastapi 0.6.6, and the vm-core 0.1.3 / firecracker 0.1.1
  / libvirt 0.1.2 / sdk 0.1.2 adapters.

### Known consistency gap (tracked, not a data error)

- The REL-13 gate flags **mgf-vm-forensics** + **mgf-vm-interchange**: they still
  pin `mgf-common<0.45` and cannot be walked yet because they runtime-depend on
  the retiring **mgf-vm** monolith (0.2.2), which exact-pins a broken
  `mgf-vm-core==0.1.0` (`mgf-common<0.44`, unsatisfiable on Codeberg) and is
  being deleted. They unblock once drained off `mgf-vm` (the vm-vmanager-app
  retirement work). (Also pruned the broken `mgf-vm-core 0.1.0` from the Codeberg
  registry — PKG-07/08.)

---

## [0.1.8] - 2026-06-04

Documentation: codify the consumer pattern surfaced by the `mgf-common` 0.45
cutover — no rule-semantic change (a clarification / PATCH).

### Changed

- **`PACKAGE_DISTRIBUTION.md` §6 gains "two rules" for consumers.** (1)
  `mgf-common`'s `mgf-standard` dependency is now OPTIONAL (the
  `mgf-common[standards]` extra, since mgf-common 0.45.1) — core consumers pull
  nothing from Codeberg transitively. (2) uv does NOT apply `[tool.uv.sources]`
  index-pinning to *transitive* dependencies, so a `mgf-*` reached only
  transitively falls back to public PyPI and the resolve breaks; map every
  `mgf-*` you need from Codeberg AND declare it as a **direct** dependency. A
  project running the federation CLI must depend on `mgf-standard` directly
  (dev extra) — not via `mgf-common[standards]`. This is the trap that made
  `mgf-common 0.45.0` unresolvable until 0.45.1.
- **Cookiecutter** `[tool.uv.sources]` comment teaches the same rule.

---

## [0.1.7] - 2026-06-04

Documentation polish on `docs/standards/PACKAGE_DISTRIBUTION.md` — no
rule-semantic change (a wording / PATCH release).

### Changed

- **`PACKAGE_DISTRIBUTION.md` de-chronicled + a PKG-12 consistency fix.**
  The header's "§11 wiring … *lands* in the same DOC-18 wave" → "*landed*"
  (it has — with the retargeted surfaces named). §13's "Still requires live
  confirmation" block → "**Confirmed live (2026-06-03 cutover …)**" now that
  the registry, token scopes, uv per-index env-var names, and quota are
  verified end-to-end. **PKG-12** no longer overclaims enforcement:
  "Enforced by a grep gate" → "To be enforced by a `no-pypi-publish-surface`
  grep gate (§ Mechanical enforcement — proposed; not yet wired into CI)",
  matching the "(proposed)" enforcement section. The grep gate itself
  remains unimplemented (a tracked follow-up).

---

## [0.1.6] - 2026-06-03

The **Codeberg package-distribution release** — the federation moves all `mgf-*`
package distribution off `pypi.org` and onto Codeberg's PyPI-compatible registry
(the `magogi-admin` account). Adds the new L1 standard
[`docs/standards/PACKAGE_DISTRIBUTION.md`](docs/standards/PACKAGE_DISTRIBUTION.md)
(rules **PKG-01..PKG-12**) and wires every coupled surface to it. Third-party
dependencies still resolve from public PyPI — only `mgf-*` publishing/resolution
moves (a channel switch, not a severance). Verified end-to-end against the live
registry: this package + 14 siblings published, REST-verified, clean-venv
installed from the Codeberg index.

### Added

- **`docs/standards/PACKAGE_DISTRIBUTION.md`** — the Codeberg PyPI registry
  standard: endpoints, `write:package` / `read:package` token auth, the ordered
  publish flow, the dependency-confusion-safe consumer config (uv named index +
  `[tool.uv.sources]`), REST verify-after-publish, immutability + retention, and
  a Woodpecker publish/verify sketch. Rules **PKG-01..PKG-12**.

### Changed

- **Dropped `pypi.org` as the `mgf-*` publish/distribution channel (hard
  cutover).** Retargeted the release corpus to Codeberg: RELEASING (REL-04/05/06),
  WORKFLOWS (WF-03/04/06/08), WORKFLOWS_PATTERNS §4.2/4.3, `.woodpecker.yml`
  (publish + verify-codeberg), AGENTS **AG-09**, NAMING **NM-01** package URL, the
  cohort-release / sibling-rename / federation-sync recipes, DEPLOYMENT **DEP-03**,
  SECURITY (delete/yank model), and the `mgf-*` links in COMMON_COMPONENTS /
  API_DESIGN / DOCUMENTATION. Removed all OIDC / PyPI Trusted-Publisher references
  (Forgejo has none). Third-party PyPI links kept.
- **Cookiecutter template** now scaffolds the Codeberg index + `[tool.uv.sources]`
  for new projects.
- README *Index of MUSTs* gains the **PKG-*** rows + a *What's new in v2.18* entry.

---

## [0.1.5] - 2026-06-03

The **standards meta-review completion release** — ships the v2.16
over-restriction pass (Tier 3) and the v2.17 single-source-of-truth pass
(Tier 4) as resolvable wheel data, so `mgf-common standards` / `agents` now
surface every mechanism-lock relaxation (TS-23 / PF-05 / DEP-06 + the four
single-mechanism bans), the per-rule applies-to scoping, the three
review-methodology recipes, and the full SSOT/dedup pass. With this release
the entire 24-update (U-01..U-24) standards meta-review is live in the
resolvable corpus. No `mgf.standard` Python API change — docs/data only.

### Changed

- **Standards v2.17 — the single-source-of-truth pass (Tier 4, final tier of
  the standards meta-review).** Backward-compat waived; zero new MUSTs; no rule
  weakened — removes drift surface, not obligations. **Evidence/confidence
  grammar (U-20)** given one canonical home (the Agent Empowerment Charter),
  referenced from AG-11 / `audit-outcomes` / the conformance template instead of
  restated. **Duplicated normative content collapsed (U-21):** the
  serialised-time / UI-render / pydantic-validator tables moved to **TIME.md
  §3.1** (DESIGN_PRINCIPLES §12 + DP-12 point there); the reserved-log-key set
  sourced from the `_RESERVED` frozenset in **LOGGING.md** (§5.4 imports it,
  §12.1 points at it); WORKFLOWS_PATTERNS §4.2 verify-PyPI block points at its §8
  copy. **Two CHANGELOG references corrected (U-22)** (API_DESIGN AP-12 + §13
  item); the proposed multi-encoding collapse was **declined as load-bearing**
  (each surface carries distinct weight) — the licensed "no change needed, with
  rationale." **Frozen chronicles → durable lessons (U-23):** the NAMING §4
  ~480-URL ledger, PRESENTATION_LAYER §8.1/§8.2 commit SHAs + dated snapshot,
  TESTING §13.10/§17/§19.6 counts + coverage-% + rollout history, and the
  DOCUMENTATION DOC-01 v2.8-amendment narrative now state the lesson and mark
  live numbers illustrative / non-binding. **Two implicit seams made explicit
  (U-24):** DOCUMENTATION §10.4 states propagation crosses repo boundaries (the
  `mgf-common` AGENTS-briefing / `standards` CLI surface, supervisor-applied per
  AG-13) + the `MGF_ADOPTION.md` coupling; COMMON_COMPONENTS §2 + CONFIGURATION
  §0b name the implicit `BaseAppSettings` footprint a partial adopter inherits
  (CF-02/03/06/08 discharged for free; `extra="forbid"` + `version` defaults).
- **Standards v2.16 — the over-restriction pass.** Applies the v2.14 §14.1
  "bind the outcome, name the mechanism" discipline to mechanism-locked rules
  (Tier 3 of the standards meta-review; backward-compat waived; zero new MUSTs;
  no outcome weakened, no mechanism guidance deleted). **TS-23** rebound to the
  four crash/hang/signal-capture outcomes (the stdlib-only subprocess supervisor
  stays the canonical reference; an equivalent that meets the outcomes is
  conformant — the case `mgf-standard`'s own cycle-avoidance decline needs).
  **PF-05** rebound to the result shape + corrected the stale "not-yet-shipped"
  status (`mgf-common bench` + its `tests/perf/` conftest ship today).
  **DEP-06** rebound to a documented/drill-measured/bounded rollback time
  (≤5 min as the SHOULD-target for instant-cutover; a justified higher bound for
  snapshot-restore). **Four single-mechanism bans relaxed (U-15):** the
  structlog/loguru ban → the LG-* output contract; `.ui`-only → a dynamic-form
  escape hatch; EH-13 breaker-on-any-call → the bounded-amplification outcome;
  PR-06 import-linter → a stdlib-allowlist AST meta-test (import-linter demoted
  to defense-in-depth). **DOC-09** gains behavioral-claim verification (SHOULD)
  + §10.3 generated-docs-fixed-at-source + an origin tag. **TESTING** states
  coverage-% is a floor and behavioral adequacy is the bar (new §9.5 +
  design-for-testability finding). Verified against live mgf-common/mgf-test-
  supervisor so the named mechanisms match what ships (the v2.15 HostError
  lesson). **Per-rule applies-to scoping (U-16):** new DESIGN_PRINCIPLES
  §14.2 makes a shape-specific rule declare its scope (via the existing
  `(service)` / level column, the `applies_to` per-kind matrix, or the audit
  `N/A` flag) instead of over-claiming a universal MUST; the Agent
  Empowerment Charter §3 adds the scope-over-universality license (propose a
  carve-out / new category at decision time rather than contort); and
  ERROR_HANDLING §2.2 names its seven categories the CLI/desktop/SDK baseline
  with the "add a domain set + propose upstream" path (the web HTTP set as
  the worked example).

---

## [0.1.4] - 2026-06-02

The **standards corpus correctness + empowerment release** — ships the
v2.14 empowerment layer and the v2.15 foundation correctness pass as
resolvable wheel data (so `mgf-common standards` / `agents` surface the
Agent Empowerment Charter, AG-15, the project-MODE axis, and every
v2.15 fix). No `mgf.standard` Python API change — docs/data only.

### Changed

- **Standards v2.15 — the foundation correctness pass.** Resolves verified
  self-contradictions so the cornerstone is internally consistent (Tier 2
  of the standards meta-review; backward compatibility waived; zero new
  MUSTs — each change resolves a contradiction, corrects a factual error,
  or rebinds a rule to its OUTCOME per §14.1). Highlights: one canonical Qt
  worker contract (GUI-02 rebound to the off-thread / one-terminal-signal /
  cancellation-is-not-failure invariant; COMMON_COMPONENTS §8 +
  DESIGN_PRINCIPLES §2.1 + ERROR_HANDLING §5 realigned to it; the disjoint
  `progress`/`finished_with_result`/`error` vocabulary removed); DOC-01
  doc-count reconciled to the uniform ten-doc baseline across every live
  surface + the stale lint description; TS-14 deferred to PF-01/PF-02 for
  perf-budget shape; OBSERVABILITY named owner of the canonical `LogRecord`
  wire (LOGGING §5.3 = its Python reference emitter); factual fixes (SC-05
  Fernet=CBC+HMAC not GCM-SIV; SC-15 `resolve()` vs `strict=True`;
  undefined `L0`→L1; SCOPE §5 closed-box definition; OB redaction cite;
  `mgf-common doctor --standards` spelling); and clarity/safety fixes
  (LOGGING/CONFIGURATION §16 renumber; error category
  `EnvironmentError`→`HostEnvironmentError` (matches the shipped mgf-common
  class, API-01; stops shadowing the OSError builtin); single `<100 ms`
  smoke budget; `SECURITY_STANDARD.md` link/marker fixes; SC-14
  "rotate"→checkable backoff/lockout contract). The error-category name now
  matches the already-shipped mgf-common `HostEnvironmentError` (alias
  removed in v0.33.0) — no mgf-common code change needed. Release-coupled
  (AG-13): the AG-15 briefing line + the standards-CLI corpus reflecting
  v2.14/v2.15 land at the next mgf-standard release + pin bump.
- **Standards v2.14 — the empowerment layer.** Makes the AI-agent
  empowerment posture explicit and agent-facing, fused with the corpus's
  existing consistency guarantee (adds license, removes no rule). New
  `docs/standards/principles/agent-empowerment-charter.md` — the agent's
  explicit license to push back / propose / refine scope / ask /
  decline-with-rationale / conclude "no change needed" — plus the binding
  hook `AGENTS.md` **AG-15**. The standards README gains the project-MODE
  axis (greenfield / unconstrained-brownfield / production-constrained,
  orthogonal to L1/L2/L3) and backfills the AG-01..AG-15 family into the
  Index of MUSTs. `DESIGN_PRINCIPLES.md` §14.1 adds the two-way
  concrete-cost / outcome-over-mechanism authoring discipline.
  `principles/audit-outcomes.md` and the shipped
  `docs/recipes/mgf-standards-conformance-md-template.md` gain the
  holistic "reviewed; no change needed" / could-not-verify /
  considered-and-rejected verdicts. Tier 1 (U-01..U-06) of the standards
  meta-review.

---

## [0.1.3] - 2026-06-02

The **recipes corpus becomes resolvable data** — the same *resolve, don't
copy* move applied to the federation-operations recipes, so the `mgf-common`
CLI can surface a governance recipe (notably the `/sync` federation sync
prompt) from the version a consumer pins instead of a hand-copied,
drift-prone command body.

### Added

- **`mgf.standard.recipes_dir()` / `list_recipes()` / `read_recipe(name)`**
  — a public seam over `docs/recipes/`, mirroring the standards trio. Shipped
  as wheel data (`mgf/standard/_recipes/`, force-included from
  `docs/recipes/`), with the editable-install fallback to the repo path.
  Enables a future `mgf-common sync-prompt` / `mgf-common recipes <name>`
  that prints `read_recipe("federation-sync-prompt")` — one source of truth
  for the `/sync` command body.

### Changed

- The federation **sync prompt** (`docs/recipes/federation-sync-prompt.md`)
  now leads with the CLI-resolve path (`mgf-common agents` / `standards` /
  `catch-up`) and classifies a project as NEW / IN-SYNC / OUT-OF-SYNC, so one
  prompt serves all three onboarding states.
- Internal: `standards_dir()` and `recipes_dir()` now share a
  `_docs_data_dir()` resolver (behaviour-preserving for `standards_dir`).

---

## [0.1.2] - 2026-06-01

The federation **registry becomes resolvable data** — the drift-proof way for
an AI agent to learn the *other* federation projects (the roster + dependency
graph), from the version it pins rather than a hand-copied list.

### Added

- **`mgf.standard.libraries()`** — a public seam returning the federation
  library registry: every `mgf-*` member with its version, `deps`, reverse-deps
  (`used_by`), `extras`, third-party footprint, and purpose.
- **`MGF_LIBRARIES.json`** — `scripts/gen_mgf_libraries.py` now also emits a
  deterministic machine-readable registry, force-included into the wheel
  (`mgf/standard/_libraries.json`). The REL-13 currency gate (`--check`)
  guards it alongside `MGF_LIBRARIES.md`. `mgf-common` 0.44.2 surfaces it as a
  live "Federation map / you are here" block under `mgf-common agents`.

---

## [0.1.1] - 2026-06-01

Second extraction wave — the remaining **federation-level artifacts**
(templates, reference evidence, conformance tooling, process recipes) join the
corpus, and the shipped standards corpus' cross-repo links are repaired.

### Added

- **Reference-consumer evidence profiles** (`docs/reference-consumers/`) — the
  per-consumer adoption profiles the standards cite as real-world evidence.
- **Federation new-project scaffold** (`templates/cookiecutter-mgf-project/`) —
  the cookiecutter that stamps a standards-conformant `mgf-*` repo.
- **PR-conformance auditor** (`scripts/audit_pr_conformance.py`) — cross-checks
  a project's PRESENTATION_LAYER (PR-*) conformance tracker against live
  `import-linter` output; a federation guard any sibling can wire into CI.
- **Five more process recipes/templates** (`docs/recipes/`):
  `deps-md-template.md`, `feedback-md-template.md`,
  `pr-standard-test-plan-template.md`, `library-app-separation.md`,
  `test-supervisor-adoption.md`.

### Fixed

- **Corpus cross-repo links (DOC-09)** — links in the shipped `docs/standards/`
  corpus that targeted content which stayed in `mgf-common` (tests, `docs/`
  subtrees, README, recipes, CHANGELOG) now resolve to the `mgf-common`
  Codeberg URL; links to content that moved here resolve locally. The wheel
  data is corrected accordingly.

### Changed

- The agent briefing's feedback-routing (mirrored in `mgf-common`'s test-pinned
  constant + `STARTHERE.md`) now routes standards / contract / registry
  feedback to **this** repo's `FEEDBACK.md`.

---

## [0.1.0] - 2026-06-01

### Added

- **Engineering-standards corpus** (`docs/standards/`) extracted from
  `mgf-common` — the AP / CF / EH / LG / SC / TS / DP / DOC / NM / OB /
  PF / AG / TM / … rule families, master index, and per-topic Rules boxes.
  `mgf-standard` is now the federation's single source of truth for
  every rule; `mgf-common` and every sibling reference this copy.
- **Federation contract** (`FEDERATION.md`) — the canonical contract every
  `mgf-*` repo ships a pointer stub (DOC-17) to. Previously lived in
  `mgf-common`; now has a stable home independent of the implementation.
- **Library registry** (`MGF_LIBRARIES.md`) + its generator
  (`scripts/gen_mgf_libraries.py`) + the companion test — extracted from
  `mgf-common`. The REL-13 consistency gate (`--check`) runs against this
  repo; every release of `mgf-common` or any sibling must pass it.
- **Federation-pattern design paper** (`docs/design/federation.md`) —
  the architecture paper explaining why `mgf-common` is a leaf with
  siblings rather than a monolith. The canonical reference for the ASPIRE-06
  closures and the dependency-graph invariants.
- **Federation-operations recipes and templates** (`docs/recipes/`) —
  `sibling_rename.md`, `cohort-release-wave.md`, `federation-sync-prompt.md`,
  `federation-pointer-stub-template.md`, `mgf-adoption-md-template.md`, and
  `mgf-standards-conformance-md-template.md`. These are governance and
  operations documents for the federation; library-usage how-tos remain in
  `mgf-common/docs/recipes/`.
- **Zero-dependency resolver package** `mgf.standard`
  (`src/mgf/standard/`) — ships the corpus as wheel data and exposes
  three typed helpers: `standards_dir()`, `list_standards()`,
  `read_standard(topic)`. `mgf-common`'s `standards`/`agents` CLI commands
  resolve the corpus through this package. Runtime dependencies: none.
  `mgf-standard` is the federation leaf-of-leaves; it sits *below*
  `mgf-common` in the dependency graph.

[Unreleased]: https://codeberg.org/magogi-admin/mgf-standard/compare/v0.1.6...HEAD
[0.1.6]: https://codeberg.org/magogi-admin/mgf-standard/compare/v0.1.5...v0.1.6
[0.1.5]: https://codeberg.org/magogi-admin/mgf-standard/compare/v0.1.4...v0.1.5
[0.1.0]: https://codeberg.org/magogi-admin/mgf-standard/releases/tag/v0.1.0
