diff --git a/docs/contracts/u5_booth_manifest.contract.md b/docs/contracts/u5_booth_manifest.contract.md index 5f53f19..ca4bb3d 100644 --- a/docs/contracts/u5_booth_manifest.contract.md +++ b/docs/contracts/u5_booth_manifest.contract.md @@ -224,6 +224,26 @@ guarded with an explicit `{% if %}` rather than relying on `b.manifest.handle` rendering as Undefined, because the two lanes' cards differ and a silent Undefined in one of them is how the kept lane would quietly keep the old defect. +## Out of scope + +Deliberately deferred or never. Divergence here is not drift. + +- **A second index ordering keyed on `created`** — a "what landed" feed. Operator + decision, 2026-09-22: parked for v1.1. It is a new ordered collection needing + its own stated rule, it competes with the existing order for what "the third + one" means, and it has nothing to sort the 26 manifest-less booths by. +- **`why` in the zip manifest, or a `booth ls` column.** One-liners over the + same record, neither on the v1 path. +- **Enforcing that a booth MUST announce itself.** `rsync` is the documented + path for every host that is not nh3-dev and never runs the CLI, so a refusal + would break the documented workflow. The marker is the whole mechanism. +- **Deleting, expiring or migrating anything based on the manifest.** U4 owns + lifetime; this unit only describes. +- **Any change to how items, marks, blur, keep or the link board work.** The + manifest is a dotfile and every existing listing already skips it. +- **Auth, or treating a manifest as trusted.** Standing non-goal; the Booth is + LAN-internal and a hand-written `.booth.json` is a supported input. + ## Invariants **INV-1 — one resolver for the manifest.** `read_manifest(booth)` is the only