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`,