# Magogi Foundation Standards — Conformance Tracker (mgf-secrets)

> **Status (2026-07-18).** Initial conformance audit at **0.1.0** (pre-alpha).
> `mgf-secrets` is the **Foundation credential plane, Phase 1** — the committed
> `SECRETS.toml` registry (declared truth, zero values, fails closed), a
> **read-only doctor** proving *declared == deployed == consumed* across the
> Woodpecker / forge / local / host surfaces, per-kind liveness probes, and the
> `mgf-secrets` CLI. **Stdlib-only**, headless, and strictly read-only against the
> world. That shape makes most service / GUI / observability / perf / config
> rules N/A; what applies is code-quality (DP/EH/AP/NM/TM), docs (DOC/AG/FB/SP),
> security-input-validation + leakage (SC), testing (TS), and — being wired in
> this change — the CI/packaging/release stack (WF/PKG/REL/OP/DEP, ⏳).
> **Scope.** mgf-secrets's conformance to the standards at
> [mgf-standard/docs/standards/](https://codeberg.org/magogi-admin/mgf-standard/src/branch/main/docs/standards/).
> **Audience.** Maintainer-tomorrow, AI coding agents, future contributors.

---

## §1 You are here

**Project shape:** a **headless governance library + CLI** (`mgf.secrets`) — the
registry schema/loader/validator, the read-only doctor (checks C1–C8), per-kind
probes, and the `list`/`show`/`doctor`/`probe` verbs. **No runtime dependency**
(Python ≥3.11 stdlib); no web framework, no service, no daemon. It reads committed
data (`SECRETS.toml`, the library registries) and probes owned surfaces read-only.
That shape makes most runtime / service / GUI / observability / perf / config
rules N/A.

**Current version:** **0.1.0** (Development Status :: 2 — Pre-Alpha). Phase 1 (the
registry + the read-only doctor) is implemented and tested; the store, sync, and
rotation phases are out of scope here (recorded in the program proposal). This
ledger audits the current state honestly: code-quality + docs + agent-convention
families land ✅; the CI/publish/release stack is **being wired in this same
change** and is tracked ⏳; service/GUI/observability/perf/config rules are N/A.

**Declared conformance level: L1 (structural baseline). Target: L2.** The four
local gates (ruff, `mypy --strict`, the pytest/supervisor suite at the coverage
floor, `ruff format --check`) pass, the doc baseline is in place, and the CI
pipeline is generated (WF-13). This is an honest pre-alpha L1 — a family-level
audit, not a seeded-from-sibling all-green facade.

**Per-MUST tally (§Z).** Of the **268 MUSTs**: **149 ✅** ·
**63 ⏳** · **56 N/A** · **0 🚫**. Applicable
(non-N/A) = **212**. The **⏳** cluster is the not-yet-wired CI /
release / publish surface + the P2 store's encryption-at-rest.

| Marker | Meaning here |
|---|---|
| ✅ | conformant against the shipped P1 code / docs (family-level evidence in §2, per-MUST in §Z) |
| ⏳ | applicable MUST not yet met — CI/publish/release being wired, or a later-phase deliverable |
| N/A | the rule's premise is service / GUI / observability / perf / config-framework-shaped; mgf-secrets is a headless stdlib CLI |
| 🚫 | declined-with-rationale (CFM-04) — none |

## §2 Per-standard audit

| Family | MUSTs | Verdict | Notes (evidence: §Z) |
|---|---|---|---|
| AG | 20 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AP | 16 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| CF | 12 | N/A | No MgfSettings/config-framework surface — a small argparse CLI reading committed TOML + env fallbacks; not a configured service. |
| DEP | 11 | ⏳ | Stdlib-only runtime, single index pin; encrypted-at-rest dependency (pyrage) arrives with the P2 store. |
| DOC | 19 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DP | 14 | ✅ | Clean layering enforced by import-linter (engine core forbids importing the CLI); small typed modules, single responsibility. |
| EH | 13 | ✅ | Typed exception hierarchy (SecretsError → CredentialError/UsageError/RegistryError); fail-closed loader; no bare excepts on the happy path. |
| FB | 1 | ✅ | FEEDBACK.md present with the routing convention. |
| GUI | 10 | N/A | Headless CLI + library — no GUI. |
| LG | 17 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| NM | 3 | ✅ | mgf.secrets namespace sibling of mgf.common; house naming for modules/verbs/kinds. |
| OB | 10 | N/A | No runtime observability surface (metrics/tracing/spans) — a stdlib CLI; the estate cron consumes doctor --json exit codes instead. |
| OP | 12 | ⏳ | --version + doctor operability verbs present; the full OP-* operability surface (bundle/logs/config) deepens as the tool grows. |
| PF | 7 | N/A | No performance-critical or high-throughput surface — a read-only on-demand CLI. |
| PKG | 12 | ⏳ | devpi publish via the standard tag pipeline once AC passes; registered in MGF_LIBRARIES at release time. |
| PR | 5 | ✅ | PR discipline per house rules: distinct titles, merge-on-green, queue budget; commit-trailer gate. |
| REL | 14 | ⏳ | Release/tag/publish deferred — the v0.1.0 tag fires after court verification (no tag in P1). |
| SC | 18 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SP | 6 | ✅ | SCOPE.md defines the in/out boundary + the SP-03 scope-creep gate (no values, no ungoverned growth, read-only). |
| TM | 6 | ✅ | Time handled via epoch time.time() only; no naive datetime.utcnow()/now() (DP-12 clean). |
| TS | 28 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| WF | 14 | ⏳ | CI is a generated .woodpecker.yml (WF-13) being activated in this same change; drift-check-governed. Green-on-main is the P1 acceptance gate. |

## §3 Decline-with-rationale ledger (CFM-04)

None. No MUST is declined; the ⏳ items are scheduled, not declined.

## §4 Open gaps — tracked with a plan (⏳)

- **CI / WF-*** — the generated `.woodpecker.yml` is activated in this change;
  green-on-main is the P1 acceptance gate.
- **Release / PKG / REL / OP-*** — the `v0.1.0` tag → devpi publish →
  `MGF_LIBRARIES` row fire after court verification (no tag in P1).
- **DEP-04 / SC-01 encryption-at-rest** — the age-encrypted store is Phase 2.

## §5 Audit log

| Date | Auditor | Trigger | Findings |
|---|---|---|---|
| 2026-07-18 | Opus implementation seat | P1 initial audit | family-level L1 baseline; §Z complete for all 268 MUSTs |

## §6 Cross-references

[README.md](../../README.md), [SCOPE.md](../../SCOPE.md), [DEPS.md](../../DEPS.md),
[CHANGELOG.md](../../CHANGELOG.md), and the program proposal in the mgf workspace.

## §Z Per-MUST evidenced audit — all 268 MUSTs

Tally: 149 ✅ · 63 ⏳ · 56 N/A · 0 🚫

| Rule | Verdict | Evidence |
|---|---|---|
| AG-01 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-02 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-03 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-04 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-05 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-06 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-07 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-08 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-09 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-10 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-11 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-12 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-13 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-14 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-15 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-16 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-17 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-18 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-19 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AG-20 | ✅ | AGENTS.md thin-pointer, .githooks/prepare-commit-msg (AG-03), my_stuff/ gitignored (AG-18), docs/memory/MEMORY.md; no secret value ever enters output (AG-18 redaction property test). |
| AP-01 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| AP-02 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| AP-03 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| AP-04 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| AP-05 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| AP-06 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| AP-07 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| AP-08 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| AP-09 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| AP-10 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| AP-11 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| AP-12 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| AP-13 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| AP-14 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| AP-15 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| AP-16 | ✅ | PEP 561 py.typed, explicit __all__, PUBLIC_API.json, stable CLI exit codes (0/1/2) and --json on every verb. |
| CF-01 | N/A | No MgfSettings/config-framework surface — a small argparse CLI reading committed TOML + env fallbacks; not a configured service. |
| CF-02 | N/A | No MgfSettings/config-framework surface — a small argparse CLI reading committed TOML + env fallbacks; not a configured service. |
| CF-03 | N/A | No MgfSettings/config-framework surface — a small argparse CLI reading committed TOML + env fallbacks; not a configured service. |
| CF-04 | N/A | No MgfSettings/config-framework surface — a small argparse CLI reading committed TOML + env fallbacks; not a configured service. |
| CF-05 | N/A | No MgfSettings/config-framework surface — a small argparse CLI reading committed TOML + env fallbacks; not a configured service. |
| CF-06 | N/A | No MgfSettings/config-framework surface — a small argparse CLI reading committed TOML + env fallbacks; not a configured service. |
| CF-07 | N/A | No MgfSettings/config-framework surface — a small argparse CLI reading committed TOML + env fallbacks; not a configured service. |
| CF-08 | N/A | No MgfSettings/config-framework surface — a small argparse CLI reading committed TOML + env fallbacks; not a configured service. |
| CF-09 | N/A | No MgfSettings/config-framework surface — a small argparse CLI reading committed TOML + env fallbacks; not a configured service. |
| CF-10 | N/A | No MgfSettings/config-framework surface — a small argparse CLI reading committed TOML + env fallbacks; not a configured service. |
| CF-11 | N/A | No MgfSettings/config-framework surface — a small argparse CLI reading committed TOML + env fallbacks; not a configured service. |
| CF-12 | N/A | No MgfSettings/config-framework surface — a small argparse CLI reading committed TOML + env fallbacks; not a configured service. |
| DEP-01 | ⏳ | Stdlib-only runtime, single index pin; encrypted-at-rest dependency (pyrage) arrives with the P2 store. |
| DEP-02 | ⏳ | Stdlib-only runtime, single index pin; encrypted-at-rest dependency (pyrage) arrives with the P2 store. |
| DEP-03 | ⏳ | Stdlib-only runtime, single index pin; encrypted-at-rest dependency (pyrage) arrives with the P2 store. |
| DEP-04 | ⏳ | Stdlib-only runtime, single index pin; encrypted-at-rest dependency (pyrage) arrives with the P2 store. |
| DEP-05 | ⏳ | Stdlib-only runtime, single index pin; encrypted-at-rest dependency (pyrage) arrives with the P2 store. |
| DEP-06 | ⏳ | Stdlib-only runtime, single index pin; encrypted-at-rest dependency (pyrage) arrives with the P2 store. |
| DEP-07 | ⏳ | Stdlib-only runtime, single index pin; encrypted-at-rest dependency (pyrage) arrives with the P2 store. |
| DEP-08 | ⏳ | Stdlib-only runtime, single index pin; encrypted-at-rest dependency (pyrage) arrives with the P2 store. |
| DEP-09 | ⏳ | Stdlib-only runtime, single index pin; encrypted-at-rest dependency (pyrage) arrives with the P2 store. |
| DEP-10 | ⏳ | Stdlib-only runtime, single index pin; encrypted-at-rest dependency (pyrage) arrives with the P2 store. |
| DEP-11 | ⏳ | Stdlib-only runtime, single index pin; encrypted-at-rest dependency (pyrage) arrives with the P2 store. |
| DOC-01 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-02 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-03 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-04 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-05 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-06 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-07 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-08 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-09 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-10 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-11 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-12 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-13 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-14 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-15 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-16 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-17 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-18 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DOC-19 | ✅ | README, SCOPE.md, DEPS.md, CONTRIBUTING, STARTHERE, SECURITY, CHANGELOG, LESSON_LEARNED, docs/ tree, and this ledger shipped. |
| DP-01 | ✅ | Clean layering enforced by import-linter (engine core forbids importing the CLI); small typed modules, single responsibility. |
| DP-02 | ✅ | Clean layering enforced by import-linter (engine core forbids importing the CLI); small typed modules, single responsibility. |
| DP-03 | ✅ | Clean layering enforced by import-linter (engine core forbids importing the CLI); small typed modules, single responsibility. |
| DP-04 | ✅ | Clean layering enforced by import-linter (engine core forbids importing the CLI); small typed modules, single responsibility. |
| DP-05 | ✅ | Clean layering enforced by import-linter (engine core forbids importing the CLI); small typed modules, single responsibility. |
| DP-06 | ✅ | Clean layering enforced by import-linter (engine core forbids importing the CLI); small typed modules, single responsibility. |
| DP-07 | ✅ | Clean layering enforced by import-linter (engine core forbids importing the CLI); small typed modules, single responsibility. |
| DP-08 | ✅ | Clean layering enforced by import-linter (engine core forbids importing the CLI); small typed modules, single responsibility. |
| DP-09 | ✅ | Clean layering enforced by import-linter (engine core forbids importing the CLI); small typed modules, single responsibility. |
| DP-10 | ✅ | Clean layering enforced by import-linter (engine core forbids importing the CLI); small typed modules, single responsibility. |
| DP-11 | ✅ | Clean layering enforced by import-linter (engine core forbids importing the CLI); small typed modules, single responsibility. |
| DP-12 | ✅ | Clean layering enforced by import-linter (engine core forbids importing the CLI); small typed modules, single responsibility. |
| DP-13 | ✅ | Clean layering enforced by import-linter (engine core forbids importing the CLI); small typed modules, single responsibility. |
| DP-14 | ✅ | Clean layering enforced by import-linter (engine core forbids importing the CLI); small typed modules, single responsibility. |
| EH-01 | ✅ | Typed exception hierarchy (SecretsError → CredentialError/UsageError/RegistryError); fail-closed loader; no bare excepts on the happy path. |
| EH-02 | ✅ | Typed exception hierarchy (SecretsError → CredentialError/UsageError/RegistryError); fail-closed loader; no bare excepts on the happy path. |
| EH-03 | ✅ | Typed exception hierarchy (SecretsError → CredentialError/UsageError/RegistryError); fail-closed loader; no bare excepts on the happy path. |
| EH-04 | ✅ | Typed exception hierarchy (SecretsError → CredentialError/UsageError/RegistryError); fail-closed loader; no bare excepts on the happy path. |
| EH-05 | ✅ | Typed exception hierarchy (SecretsError → CredentialError/UsageError/RegistryError); fail-closed loader; no bare excepts on the happy path. |
| EH-06 | ✅ | Typed exception hierarchy (SecretsError → CredentialError/UsageError/RegistryError); fail-closed loader; no bare excepts on the happy path. |
| EH-07 | ✅ | Typed exception hierarchy (SecretsError → CredentialError/UsageError/RegistryError); fail-closed loader; no bare excepts on the happy path. |
| EH-08 | ✅ | Typed exception hierarchy (SecretsError → CredentialError/UsageError/RegistryError); fail-closed loader; no bare excepts on the happy path. |
| EH-09 | ✅ | Typed exception hierarchy (SecretsError → CredentialError/UsageError/RegistryError); fail-closed loader; no bare excepts on the happy path. |
| EH-10 | ✅ | Typed exception hierarchy (SecretsError → CredentialError/UsageError/RegistryError); fail-closed loader; no bare excepts on the happy path. |
| EH-11 | ✅ | Typed exception hierarchy (SecretsError → CredentialError/UsageError/RegistryError); fail-closed loader; no bare excepts on the happy path. |
| EH-12 | ✅ | Typed exception hierarchy (SecretsError → CredentialError/UsageError/RegistryError); fail-closed loader; no bare excepts on the happy path. |
| EH-13 | ✅ | Typed exception hierarchy (SecretsError → CredentialError/UsageError/RegistryError); fail-closed loader; no bare excepts on the happy path. |
| FB-05 | ✅ | FEEDBACK.md present with the routing convention. |
| GUI-01 | N/A | Headless CLI + library — no GUI. |
| GUI-02 | N/A | Headless CLI + library — no GUI. |
| GUI-03 | N/A | Headless CLI + library — no GUI. |
| GUI-04 | N/A | Headless CLI + library — no GUI. |
| GUI-05 | N/A | Headless CLI + library — no GUI. |
| GUI-06 | N/A | Headless CLI + library — no GUI. |
| GUI-07 | N/A | Headless CLI + library — no GUI. |
| GUI-08 | N/A | Headless CLI + library — no GUI. |
| GUI-09 | N/A | Headless CLI + library — no GUI. |
| GUI-10 | N/A | Headless CLI + library — no GUI. |
| LG-01 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-02 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-03 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-04 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-05 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-06 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-07 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-08 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-09 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-10 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-11 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-12 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-13 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-14 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-15 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-16 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| LG-17 | N/A | No structured-logging runtime — deliberately value-free, minimal stdout/stderr (AG-18); no logging framework wired. |
| NM-01 | ✅ | mgf.secrets namespace sibling of mgf.common; house naming for modules/verbs/kinds. |
| NM-02 | ✅ | mgf.secrets namespace sibling of mgf.common; house naming for modules/verbs/kinds. |
| NM-03 | ✅ | mgf.secrets namespace sibling of mgf.common; house naming for modules/verbs/kinds. |
| OB-01 | N/A | No runtime observability surface (metrics/tracing/spans) — a stdlib CLI; the estate cron consumes doctor --json exit codes instead. |
| OB-02 | N/A | No runtime observability surface (metrics/tracing/spans) — a stdlib CLI; the estate cron consumes doctor --json exit codes instead. |
| OB-03 | N/A | No runtime observability surface (metrics/tracing/spans) — a stdlib CLI; the estate cron consumes doctor --json exit codes instead. |
| OB-04 | N/A | No runtime observability surface (metrics/tracing/spans) — a stdlib CLI; the estate cron consumes doctor --json exit codes instead. |
| OB-05 | N/A | No runtime observability surface (metrics/tracing/spans) — a stdlib CLI; the estate cron consumes doctor --json exit codes instead. |
| OB-07 | N/A | No runtime observability surface (metrics/tracing/spans) — a stdlib CLI; the estate cron consumes doctor --json exit codes instead. |
| OB-08 | N/A | No runtime observability surface (metrics/tracing/spans) — a stdlib CLI; the estate cron consumes doctor --json exit codes instead. |
| OB-09 | N/A | No runtime observability surface (metrics/tracing/spans) — a stdlib CLI; the estate cron consumes doctor --json exit codes instead. |
| OB-10 | N/A | No runtime observability surface (metrics/tracing/spans) — a stdlib CLI; the estate cron consumes doctor --json exit codes instead. |
| OB-11 | N/A | No runtime observability surface (metrics/tracing/spans) — a stdlib CLI; the estate cron consumes doctor --json exit codes instead. |
| OP-01 | ⏳ | --version + doctor operability verbs present; the full OP-* operability surface (bundle/logs/config) deepens as the tool grows. |
| OP-02 | ⏳ | --version + doctor operability verbs present; the full OP-* operability surface (bundle/logs/config) deepens as the tool grows. |
| OP-03 | ⏳ | --version + doctor operability verbs present; the full OP-* operability surface (bundle/logs/config) deepens as the tool grows. |
| OP-04 | ⏳ | --version + doctor operability verbs present; the full OP-* operability surface (bundle/logs/config) deepens as the tool grows. |
| OP-05 | ⏳ | --version + doctor operability verbs present; the full OP-* operability surface (bundle/logs/config) deepens as the tool grows. |
| OP-06 | ⏳ | --version + doctor operability verbs present; the full OP-* operability surface (bundle/logs/config) deepens as the tool grows. |
| OP-07 | ⏳ | --version + doctor operability verbs present; the full OP-* operability surface (bundle/logs/config) deepens as the tool grows. |
| OP-08 | ⏳ | --version + doctor operability verbs present; the full OP-* operability surface (bundle/logs/config) deepens as the tool grows. |
| OP-09 | ⏳ | --version + doctor operability verbs present; the full OP-* operability surface (bundle/logs/config) deepens as the tool grows. |
| OP-10 | ⏳ | --version + doctor operability verbs present; the full OP-* operability surface (bundle/logs/config) deepens as the tool grows. |
| OP-11 | ⏳ | --version + doctor operability verbs present; the full OP-* operability surface (bundle/logs/config) deepens as the tool grows. |
| OP-12 | ⏳ | --version + doctor operability verbs present; the full OP-* operability surface (bundle/logs/config) deepens as the tool grows. |
| PF-01 | N/A | No performance-critical or high-throughput surface — a read-only on-demand CLI. |
| PF-02 | N/A | No performance-critical or high-throughput surface — a read-only on-demand CLI. |
| PF-03 | N/A | No performance-critical or high-throughput surface — a read-only on-demand CLI. |
| PF-04 | N/A | No performance-critical or high-throughput surface — a read-only on-demand CLI. |
| PF-05 | N/A | No performance-critical or high-throughput surface — a read-only on-demand CLI. |
| PF-07 | N/A | No performance-critical or high-throughput surface — a read-only on-demand CLI. |
| PF-08 | N/A | No performance-critical or high-throughput surface — a read-only on-demand CLI. |
| PKG-01 | ⏳ | devpi publish via the standard tag pipeline once AC passes; registered in MGF_LIBRARIES at release time. |
| PKG-02 | ⏳ | devpi publish via the standard tag pipeline once AC passes; registered in MGF_LIBRARIES at release time. |
| PKG-03 | ⏳ | devpi publish via the standard tag pipeline once AC passes; registered in MGF_LIBRARIES at release time. |
| PKG-04 | ⏳ | devpi publish via the standard tag pipeline once AC passes; registered in MGF_LIBRARIES at release time. |
| PKG-05 | ⏳ | devpi publish via the standard tag pipeline once AC passes; registered in MGF_LIBRARIES at release time. |
| PKG-06 | ⏳ | devpi publish via the standard tag pipeline once AC passes; registered in MGF_LIBRARIES at release time. |
| PKG-07 | ⏳ | devpi publish via the standard tag pipeline once AC passes; registered in MGF_LIBRARIES at release time. |
| PKG-08 | ⏳ | devpi publish via the standard tag pipeline once AC passes; registered in MGF_LIBRARIES at release time. |
| PKG-09 | ⏳ | devpi publish via the standard tag pipeline once AC passes; registered in MGF_LIBRARIES at release time. |
| PKG-10 | ⏳ | devpi publish via the standard tag pipeline once AC passes; registered in MGF_LIBRARIES at release time. |
| PKG-11 | ⏳ | devpi publish via the standard tag pipeline once AC passes; registered in MGF_LIBRARIES at release time. |
| PKG-12 | ⏳ | devpi publish via the standard tag pipeline once AC passes; registered in MGF_LIBRARIES at release time. |
| PR-01 | ✅ | PR discipline per house rules: distinct titles, merge-on-green, queue budget; commit-trailer gate. |
| PR-03 | ✅ | PR discipline per house rules: distinct titles, merge-on-green, queue budget; commit-trailer gate. |
| PR-04 | ✅ | PR discipline per house rules: distinct titles, merge-on-green, queue budget; commit-trailer gate. |
| PR-05 | ✅ | PR discipline per house rules: distinct titles, merge-on-green, queue budget; commit-trailer gate. |
| PR-07 | ✅ | PR discipline per house rules: distinct titles, merge-on-green, queue budget; commit-trailer gate. |
| REL-01 | ⏳ | Release/tag/publish deferred — the v0.1.0 tag fires after court verification (no tag in P1). |
| REL-02 | ⏳ | Release/tag/publish deferred — the v0.1.0 tag fires after court verification (no tag in P1). |
| REL-03 | ⏳ | Release/tag/publish deferred — the v0.1.0 tag fires after court verification (no tag in P1). |
| REL-04 | ⏳ | Release/tag/publish deferred — the v0.1.0 tag fires after court verification (no tag in P1). |
| REL-05 | ⏳ | Release/tag/publish deferred — the v0.1.0 tag fires after court verification (no tag in P1). |
| REL-06 | ⏳ | Release/tag/publish deferred — the v0.1.0 tag fires after court verification (no tag in P1). |
| REL-07 | ⏳ | Release/tag/publish deferred — the v0.1.0 tag fires after court verification (no tag in P1). |
| REL-08 | ⏳ | Release/tag/publish deferred — the v0.1.0 tag fires after court verification (no tag in P1). |
| REL-09 | ⏳ | Release/tag/publish deferred — the v0.1.0 tag fires after court verification (no tag in P1). |
| REL-10 | ⏳ | Release/tag/publish deferred — the v0.1.0 tag fires after court verification (no tag in P1). |
| REL-11 | ⏳ | Release/tag/publish deferred — the v0.1.0 tag fires after court verification (no tag in P1). |
| REL-12 | ⏳ | Release/tag/publish deferred — the v0.1.0 tag fires after court verification (no tag in P1). |
| REL-13 | ⏳ | Release/tag/publish deferred — the v0.1.0 tag fires after court verification (no tag in P1). |
| REL-14 | ⏳ | Release/tag/publish deferred — the v0.1.0 tag fires after court verification (no tag in P1). |
| SC-01 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-02 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-03 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-04 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-05 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-06 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-07 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-08 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-09 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-10 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-11 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-12 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-13 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-14 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-15 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-16 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-17 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SC-18 | ✅ | Fail-closed registry validation, secret values never read into output (AG-18), gitleaks gate, single devpi index (no confusion). Encryption-at-rest (SC-01/DEP-04) is the P2 store — tracked ⏳ there. |
| SP-01 | ✅ | SCOPE.md defines the in/out boundary + the SP-03 scope-creep gate (no values, no ungoverned growth, read-only). |
| SP-02 | ✅ | SCOPE.md defines the in/out boundary + the SP-03 scope-creep gate (no values, no ungoverned growth, read-only). |
| SP-03 | ✅ | SCOPE.md defines the in/out boundary + the SP-03 scope-creep gate (no values, no ungoverned growth, read-only). |
| SP-04 | ✅ | SCOPE.md defines the in/out boundary + the SP-03 scope-creep gate (no values, no ungoverned growth, read-only). |
| SP-05 | ✅ | SCOPE.md defines the in/out boundary + the SP-03 scope-creep gate (no values, no ungoverned growth, read-only). |
| SP-06 | ✅ | SCOPE.md defines the in/out boundary + the SP-03 scope-creep gate (no values, no ungoverned growth, read-only). |
| TM-01 | ✅ | Time handled via epoch time.time() only; no naive datetime.utcnow()/now() (DP-12 clean). |
| TM-02 | ✅ | Time handled via epoch time.time() only; no naive datetime.utcnow()/now() (DP-12 clean). |
| TM-03 | ✅ | Time handled via epoch time.time() only; no naive datetime.utcnow()/now() (DP-12 clean). |
| TM-04 | ✅ | Time handled via epoch time.time() only; no naive datetime.utcnow()/now() (DP-12 clean). |
| TM-07 | ✅ | Time handled via epoch time.time() only; no naive datetime.utcnow()/now() (DP-12 clean). |
| TM-08 | ✅ | Time handled via epoch time.time() only; no naive datetime.utcnow()/now() (DP-12 clean). |
| TS-01 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-02 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-03 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-04 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-05 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-06 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-07 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-08 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-09 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-10 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-11 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-12 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-13 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-14 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-15 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-16 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-17 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-18 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-19 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-20 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-21 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-22 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-23 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-24 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-25 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-26 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-27 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| TS-28 | ✅ | Real pytest suite driven by mgf.test_supervisor (tiered), coverage floor 80, filterwarnings=error, incident-replay fixtures, redaction property test, kind-extension meta-test. Perf/mutation/fuzz tiers N/A at P1. |
| WF-01 | ⏳ | CI is a generated .woodpecker.yml (WF-13) being activated in this same change; drift-check-governed. Green-on-main is the P1 acceptance gate. |
| WF-02 | ⏳ | CI is a generated .woodpecker.yml (WF-13) being activated in this same change; drift-check-governed. Green-on-main is the P1 acceptance gate. |
| WF-03 | ⏳ | CI is a generated .woodpecker.yml (WF-13) being activated in this same change; drift-check-governed. Green-on-main is the P1 acceptance gate. |
| WF-04 | ⏳ | CI is a generated .woodpecker.yml (WF-13) being activated in this same change; drift-check-governed. Green-on-main is the P1 acceptance gate. |
| WF-05 | ⏳ | CI is a generated .woodpecker.yml (WF-13) being activated in this same change; drift-check-governed. Green-on-main is the P1 acceptance gate. |
| WF-06 | ⏳ | CI is a generated .woodpecker.yml (WF-13) being activated in this same change; drift-check-governed. Green-on-main is the P1 acceptance gate. |
| WF-07 | ⏳ | CI is a generated .woodpecker.yml (WF-13) being activated in this same change; drift-check-governed. Green-on-main is the P1 acceptance gate. |
| WF-08 | ⏳ | CI is a generated .woodpecker.yml (WF-13) being activated in this same change; drift-check-governed. Green-on-main is the P1 acceptance gate. |
| WF-09 | ⏳ | CI is a generated .woodpecker.yml (WF-13) being activated in this same change; drift-check-governed. Green-on-main is the P1 acceptance gate. |
| WF-10 | ⏳ | CI is a generated .woodpecker.yml (WF-13) being activated in this same change; drift-check-governed. Green-on-main is the P1 acceptance gate. |
| WF-11 | ⏳ | CI is a generated .woodpecker.yml (WF-13) being activated in this same change; drift-check-governed. Green-on-main is the P1 acceptance gate. |
| WF-12 | ⏳ | CI is a generated .woodpecker.yml (WF-13) being activated in this same change; drift-check-governed. Green-on-main is the P1 acceptance gate. |
| WF-13 | ⏳ | CI is a generated .woodpecker.yml (WF-13) being activated in this same change; drift-check-governed. Green-on-main is the P1 acceptance gate. |
| WF-14 | ⏳ | CI is a generated .woodpecker.yml (WF-13) being activated in this same change; drift-check-governed. Green-on-main is the P1 acceptance gate. |

> AG-20: a recorded "blocked"/"N/A" is re-derived against current capabilities
> each phase, never inherited as settled fact.
