diff --git a/sandbox/CLAUDE.md b/sandbox/CLAUDE.md
index 9839ef0ac098..545b02b73762 100644
--- a/sandbox/CLAUDE.md
+++ b/sandbox/CLAUDE.md
@@ -26,8 +26,9 @@ second condition), as a deliberate call relying on git history for rollback.
([`docs/design-share-states.md`](docs/design-share-states.md))
rather than dead-flag carrying. See
[`docs/FOLLOWUPS.md`](docs/FOLLOWUPS.md) for the narrative.
-- [`STATUS-phase-N.md`](.) — the authoritative landing notes for each
- phase. **Always check the latest STATUS file before assuming
+- [`status/`](status/) — per-phase (`STATUS-phase-N.md`) and per-plan
+ (`STATUS-plan-*.md`) landing notes, the authoritative record of what each
+ phase/plan shipped. **Always check the relevant STATUS file before assuming
something is wired up the way the plan describes** — phases
deliberately defer or simplify items and note exactly what
changed.
diff --git a/sandbox/OVERVIEW.md b/sandbox/OVERVIEW.md
index b5ed4bcba8ab..5cbc80a7c19a 100644
--- a/sandbox/OVERVIEW.md
+++ b/sandbox/OVERVIEW.md
@@ -17,8 +17,9 @@
> (Phase 20). v1 (`../sandbox/`) was removed 2026-05-28 — recover from
> git history if needed. See [`plan.md`](plan.md) for
> the phase-by-phase task list, [`docs/FOLLOWUPS.md`](docs/FOLLOWUPS.md)
-> for the narrative history of Phases 12+, and the per-phase
-> `STATUS-phase-N.md` files for what each phase shipped, what it
+> for the narrative history of Phases 12+, and the
+> [`status/`](status/) landing notes (`STATUS-phase-N.md` +
+> `STATUS-plan-*.md`) for what each phase/plan shipped, what it
> deferred, and what it flagged forward.
## Goal
@@ -594,9 +595,9 @@ the phase that resolved each one.
## Where to look in the code
-The per-phase `STATUS-phase-N.md` files in this directory are the
-authoritative record of what each phase actually built, what it
-deferred, and what it flagged for the next phase. For a quick map:
+The landing notes under [`status/`](status/) (`STATUS-phase-N.md` +
+`STATUS-plan-*.md`) are the authoritative record of what each phase/plan
+actually built, what it deferred, and what it flagged forward. For a quick map:
| Concern | HA Core side | Sandbox side |
|---|---|---|
diff --git a/sandbox/README.md b/sandbox/README.md
index f1f35ea85ca9..ab966e315178 100644
--- a/sandbox/README.md
+++ b/sandbox/README.md
@@ -23,8 +23,9 @@ numbers and shipped at least one stable release. See
enforces it (Phase 7).
- `plan.md` — the implementation plan that drives this work.
- `OVERVIEW.md` — architecture document.
-- `STATUS-phase-N.md` — per-phase landing notes: what each phase
- built, what it deferred, what it flagged forward.
+- `status/` — per-phase (`STATUS-phase-N.md`) and per-plan
+ (`STATUS-plan-*.md`) landing notes: what each phase/plan built, what it
+ deferred, what it flagged forward.
- `run_compat.py` + `COMPAT.md` — compat-lane runner and report.
The HA Core side of the integration lives at
@@ -122,8 +123,8 @@ Phases 0–17 landed:
pass rate from 98.07 % to **99.67 %** (above the 99.5 %
v1-removal threshold).
-The per-phase `STATUS-phase-N.md` files are the authoritative record
-of what each phase actually built, what it deferred, and what it
-flagged forward; [`docs/FOLLOWUPS.md`](docs/FOLLOWUPS.md) tells the
+The `status/` landing notes (`STATUS-phase-N.md` + `STATUS-plan-*.md`) are
+the authoritative record of what each phase/plan actually built, what it
+deferred, and what it flagged forward; [`docs/FOLLOWUPS.md`](docs/FOLLOWUPS.md) tells the
narrative story of Phases 12–17 (what each one's predecessor
flagged, what landed, the outcome).
diff --git a/sandbox/architecture.html b/sandbox/architecture.html
index 5e37bf4f4352..e217727b85de 100644
--- a/sandbox/architecture.html
+++ b/sandbox/architecture.html
@@ -2309,9 +2309,9 @@
The bridge landed in 17 phases over several months. Each phase had a
single concrete deliverable, a status doc
- (STATUS-phase-N.md) explaining what it actually shipped,
- and explicit notes on what it deferred forward. The status files are the
- authoritative record — this is the abridged tour.
+ (status/STATUS-phase-N.md) explaining what it actually
+ shipped, and explicit notes on what it deferred forward. The status
+ files are the authoritative record — this is the abridged tour.
@@ -2632,9 +2632,9 @@
14. Where to look in the code
- Per-phase STATUS-phase-N.md files are the authoritative
- record of what each phase actually built. For a quick map of the
- codebase:
+ Per-phase status/STATUS-phase-N.md files are the
+ authoritative record of what each phase actually built. For a quick map
+ of the codebase:
@@ -2772,7 +2772,7 @@ cd sandbox && python run_compat.py
0–17 landed · Source of truth:
sandbox/OVERVIEW.md,
sandbox/plan.md,
- sandbox/STATUS-phase-N.md,
+ sandbox/status/STATUS-phase-N.md,
sandbox/docs/*.md.
diff --git a/sandbox/docs/FOLLOWUPS.md b/sandbox/docs/FOLLOWUPS.md
index c652cb2283b0..41f33edc6189 100644
--- a/sandbox/docs/FOLLOWUPS.md
+++ b/sandbox/docs/FOLLOWUPS.md
@@ -8,9 +8,9 @@ follow-ups that closed those forward-flags in turn. This file is the
phase's landing.
Per-failure remediation entries live in [`BACKLOG.md`](../BACKLOG.md);
-deep landing notes live in the per-phase `STATUS-phase-N.md` files in
-the parent directory. FOLLOWUPS.md is the connective tissue between
-them.
+deep landing notes live in the [`status/`](../status/) files
+(`STATUS-phase-N.md` + `STATUS-plan-*.md`). FOLLOWUPS.md is the connective
+tissue between them.
---
diff --git a/sandbox/hass_client/docker-compose.test.yml b/sandbox/hass_client/docker-compose.test.yml
index 8bc6fb5d067b..af7a02bf109d 100644
--- a/sandbox/hass_client/docker-compose.test.yml
+++ b/sandbox/hass_client/docker-compose.test.yml
@@ -5,7 +5,7 @@
# │ INTENDED two-container shape so it is ready when the manager grows the │
# │ capabilities below. It is valid YAML (`docker compose config` parses │
# │ it), but `docker compose up` will not produce a working sandbox today. │
-# │ See docs/docker.md → "Compose harness gap" and STATUS-plan-docker.md. │
+# │ See docs/docker.md "Compose harness gap" + status/STATUS-plan-docker.md │
# └───────────────────────────────────────────────────────────────────────┘
#
# Why it can't run yet (two manager gaps, neither hacked here):
diff --git a/sandbox/STATUS-phase-10.md b/sandbox/status/STATUS-phase-10.md
similarity index 100%
rename from sandbox/STATUS-phase-10.md
rename to sandbox/status/STATUS-phase-10.md
diff --git a/sandbox/STATUS-phase-11.md b/sandbox/status/STATUS-phase-11.md
similarity index 100%
rename from sandbox/STATUS-phase-11.md
rename to sandbox/status/STATUS-phase-11.md
diff --git a/sandbox/STATUS-phase-12.md b/sandbox/status/STATUS-phase-12.md
similarity index 100%
rename from sandbox/STATUS-phase-12.md
rename to sandbox/status/STATUS-phase-12.md
diff --git a/sandbox/STATUS-phase-13.md b/sandbox/status/STATUS-phase-13.md
similarity index 100%
rename from sandbox/STATUS-phase-13.md
rename to sandbox/status/STATUS-phase-13.md
diff --git a/sandbox/STATUS-phase-14.md b/sandbox/status/STATUS-phase-14.md
similarity index 100%
rename from sandbox/STATUS-phase-14.md
rename to sandbox/status/STATUS-phase-14.md
diff --git a/sandbox/STATUS-phase-15.md b/sandbox/status/STATUS-phase-15.md
similarity index 100%
rename from sandbox/STATUS-phase-15.md
rename to sandbox/status/STATUS-phase-15.md
diff --git a/sandbox/STATUS-phase-16.md b/sandbox/status/STATUS-phase-16.md
similarity index 100%
rename from sandbox/STATUS-phase-16.md
rename to sandbox/status/STATUS-phase-16.md
diff --git a/sandbox/STATUS-phase-17.md b/sandbox/status/STATUS-phase-17.md
similarity index 100%
rename from sandbox/STATUS-phase-17.md
rename to sandbox/status/STATUS-phase-17.md
diff --git a/sandbox/STATUS-phase-18.md b/sandbox/status/STATUS-phase-18.md
similarity index 100%
rename from sandbox/STATUS-phase-18.md
rename to sandbox/status/STATUS-phase-18.md
diff --git a/sandbox/STATUS-phase-19.md b/sandbox/status/STATUS-phase-19.md
similarity index 100%
rename from sandbox/STATUS-phase-19.md
rename to sandbox/status/STATUS-phase-19.md
diff --git a/sandbox/STATUS-phase-20.md b/sandbox/status/STATUS-phase-20.md
similarity index 100%
rename from sandbox/STATUS-phase-20.md
rename to sandbox/status/STATUS-phase-20.md
diff --git a/sandbox/STATUS-phase-3.md b/sandbox/status/STATUS-phase-3.md
similarity index 100%
rename from sandbox/STATUS-phase-3.md
rename to sandbox/status/STATUS-phase-3.md
diff --git a/sandbox/STATUS-phase-4.md b/sandbox/status/STATUS-phase-4.md
similarity index 100%
rename from sandbox/STATUS-phase-4.md
rename to sandbox/status/STATUS-phase-4.md
diff --git a/sandbox/STATUS-phase-5.md b/sandbox/status/STATUS-phase-5.md
similarity index 100%
rename from sandbox/STATUS-phase-5.md
rename to sandbox/status/STATUS-phase-5.md
diff --git a/sandbox/STATUS-phase-6.md b/sandbox/status/STATUS-phase-6.md
similarity index 100%
rename from sandbox/STATUS-phase-6.md
rename to sandbox/status/STATUS-phase-6.md
diff --git a/sandbox/STATUS-phase-7.md b/sandbox/status/STATUS-phase-7.md
similarity index 100%
rename from sandbox/STATUS-phase-7.md
rename to sandbox/status/STATUS-phase-7.md
diff --git a/sandbox/STATUS-phase-8.md b/sandbox/status/STATUS-phase-8.md
similarity index 100%
rename from sandbox/STATUS-phase-8.md
rename to sandbox/status/STATUS-phase-8.md
diff --git a/sandbox/STATUS-phase-9.md b/sandbox/status/STATUS-phase-9.md
similarity index 100%
rename from sandbox/STATUS-phase-9.md
rename to sandbox/status/STATUS-phase-9.md
diff --git a/sandbox/STATUS-plan-auth-context.md b/sandbox/status/STATUS-plan-auth-context.md
similarity index 100%
rename from sandbox/STATUS-plan-auth-context.md
rename to sandbox/status/STATUS-plan-auth-context.md
diff --git a/sandbox/STATUS-plan-docker.md b/sandbox/status/STATUS-plan-docker.md
similarity index 100%
rename from sandbox/STATUS-plan-docker.md
rename to sandbox/status/STATUS-plan-docker.md
diff --git a/sandbox/STATUS-plan-ephemeral-sources.md b/sandbox/status/STATUS-plan-ephemeral-sources.md
similarity index 100%
rename from sandbox/STATUS-plan-ephemeral-sources.md
rename to sandbox/status/STATUS-plan-ephemeral-sources.md
diff --git a/sandbox/STATUS-plan-fidelity-batch.md b/sandbox/status/STATUS-plan-fidelity-batch.md
similarity index 100%
rename from sandbox/STATUS-plan-fidelity-batch.md
rename to sandbox/status/STATUS-plan-fidelity-batch.md
diff --git a/sandbox/STATUS-plan-rename-sandbox.md b/sandbox/status/STATUS-plan-rename-sandbox.md
similarity index 100%
rename from sandbox/STATUS-plan-rename-sandbox.md
rename to sandbox/status/STATUS-plan-rename-sandbox.md
diff --git a/sandbox/STATUS-plan-sandbox-context-A1.md b/sandbox/status/STATUS-plan-sandbox-context-A1.md
similarity index 100%
rename from sandbox/STATUS-plan-sandbox-context-A1.md
rename to sandbox/status/STATUS-plan-sandbox-context-A1.md
diff --git a/sandbox/STATUS-plan-sandbox-context-A2.md b/sandbox/status/STATUS-plan-sandbox-context-A2.md
similarity index 100%
rename from sandbox/STATUS-plan-sandbox-context-A2.md
rename to sandbox/status/STATUS-plan-sandbox-context-A2.md
diff --git a/sandbox/STATUS-plan-strip-auth-scopes.md b/sandbox/status/STATUS-plan-strip-auth-scopes.md
similarity index 100%
rename from sandbox/STATUS-plan-strip-auth-scopes.md
rename to sandbox/status/STATUS-plan-strip-auth-scopes.md
diff --git a/sandbox/STATUS-plan-transport-T2.md b/sandbox/status/STATUS-plan-transport-T2.md
similarity index 100%
rename from sandbox/STATUS-plan-transport-T2.md
rename to sandbox/status/STATUS-plan-transport-T2.md
diff --git a/sandbox/STATUS-plan-transport-T3-T5.md b/sandbox/status/STATUS-plan-transport-T3-T5.md
similarity index 100%
rename from sandbox/STATUS-plan-transport-T3-T5.md
rename to sandbox/status/STATUS-plan-transport-T3-T5.md
diff --git a/sandbox/STATUS-plan-transport.md b/sandbox/status/STATUS-plan-transport.md
similarity index 100%
rename from sandbox/STATUS-plan-transport.md
rename to sandbox/status/STATUS-plan-transport.md