From 8eee907893d88b0366d2d74bf4e6444ccd5514fd Mon Sep 17 00:00:00 2001 From: Ben Stull Date: Sun, 7 Jun 2026 20:52:48 -0700 Subject: [PATCH] =?UTF-8?q?docs(slice5):=20record=20SLICE-5=20bulk=20edit?= =?UTF-8?q?=20shipped=20in=20SPEC=20=C2=A722.4a=20status?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- SPEC.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/SPEC.md b/SPEC.md index 7d145aa..d86e0a8 100644 --- a/SPEC.md +++ b/SPEC.md @@ -5160,8 +5160,14 @@ never used for routing or lookup. New entries are never assigned one. > `POST …/rfcs/{slug}/meta` editor (contributor+, validated at the write > boundary), the schema-driven detail panel, all entry **write paths made > sidecar-aware** (a migrated body-only `.md` never re-grows frontmatter), and -> the Owner-gated `POST …/collections/{cid}/migrate` endpoint. Bulk edit -> (SLICE-5) follows. See §9.5 for the edit-metadata write-through this reuses. +> the Owner-gated `POST …/collections/{cid}/migrate` endpoint. **Bulk +> tag/untag (SLICE-5, v0.51.0)** completes the design: the +> `POST …/collections/{cid}/meta/bulk` endpoint (`{slugs, op: set|add|remove, +> field, value}`) applies one field change to many entries' sidecars in a +> **single commit** (D7), validated per entry at the write boundary with +> partial-rejection reporting (`{applied, rejected}`), plus the catalog's +> row multi-select + sticky bulk action bar. See §9.5 for the edit-metadata +> write-through this reuses. Every collection declares a `type` in its `.collection.yaml` manifest (§22.2), chosen at creation and **immutable**: one of `document`,