test/docs(ownership): attach-ceiling journey + M2 status
The apply_ownership journey gains an attach-ceiling case: a group node below the attach point applies; the attach point itself and a sibling subtree are both refused (422, message names the attach point). Design doc §7 + CLAUDE.md record M2 shipped and re-point 'Next' at M3. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -775,10 +775,16 @@ requires `GroupAdmin` — ownership ⟂ RBAC), no-project-into-a-claimed-subtree
|
||||
`owner_project`; an app inherits ownership from its **nearest claimed ancestor group** (the ancestor walk
|
||||
is the boundary), and an unclaimed subtree stays open (backward-compatible — nothing changes until a repo
|
||||
first declares `[project]`). Visibility: `pic groups ls` shows an `owner` column; `--takeover` on `pic
|
||||
apply`. Pinned by `apply_service` unit tests + the `apply_ownership` journey. **Deferred:** point 2's
|
||||
attach-point *ceiling* (M2 — `[project] parent_group`), and the plan-time cross-repo blast-radius preview +
|
||||
`pic projects ls` (M3). The **structural-divergence** detection of §6 and declarative group create/reparent
|
||||
(lifting "groups pre-exist") remain later work.
|
||||
apply`. Pinned by `apply_service` unit tests + the `apply_ownership` journey.
|
||||
|
||||
**Status — M2 shipped (the attach-point ceiling, point 2).** A `[project] parent_group = "<slug>"` binds the
|
||||
repo UNDER a pre-existing group; applies are refused (422 `OutsideAttachPoint`) for any node not strictly
|
||||
within that subtree. `check_within_attach` requires the attach group be a **proper** ancestor of a group node
|
||||
(so you can't apply the attach point itself, only its descendants) or an ancestor (inclusive) of an app node's
|
||||
group — resolved via `groups.ancestors`, enforced read-only before the claim in both `apply_owner` and
|
||||
`apply_tree`. Absent = instance root = no ceiling (default). Pinned by the `apply_ownership` journey's
|
||||
attach-ceiling case. **Deferred:** the plan-time cross-repo blast-radius preview + `pic projects ls` (M3); the
|
||||
**structural-divergence** detection of §6; declarative group create/reparent (lifting "groups pre-exist").
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user