feat(cli): pic projects ls + §7 M3/track-complete docs
§7 M3 (part 3) — the ownership track becomes inspectable, completing M1–M3. - server: GET /api/v1/admin/projects (projects_api) lists every project + its owned-group count (projects repo list_with_counts, one GROUP BY); behind the /admin middleware, like the groups list. - CLI: pic projects ls (cmds/projects.rs + client projects_list); the apply_ownership plan-preview journey now also asserts projects ls (plat owns exactly 1 group; teamb listed). - docs: design §7 + CLAUDE.md record M3 shipped and the whole §7 multi-repo ownership track (M1 claim · M2 attach ceiling · M3 preview + projects ls) COMPLETE; deferred = structural-divergence + declarative tree shape + per-env approval gating. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -783,8 +783,18 @@ within that subtree. `check_within_attach` requires the attach group be a **prop
|
||||
(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").
|
||||
attach-ceiling case.
|
||||
|
||||
**Status — M3 shipped (plan preview + `pic projects ls`).** `pic plan` now carries the declaring `[project]`
|
||||
and returns an `ownership` preview per node — `claim` / `owned` / `conflict` (owner named) / `unclaimed`
|
||||
(pure `preview_ownership`, unit-tested) — plus, for a group node, the cross-repo **blast radius**: descendant
|
||||
apps owned by OTHER projects the change fans out to (`group_blast_radius`, a subtree CTE with per-group
|
||||
memoized nearest-claimed resolution). The attach ceiling is previewed at plan too (consistent with apply).
|
||||
Read-only `pic projects ls` lists every project + its owned-group count (`GET /api/v1/admin/projects`,
|
||||
`list_with_counts`). Pinned by the `apply_ownership` journey's plan-preview case. **With M3, the multi-repo
|
||||
ownership track (§7 M1–M3) is complete. Deferred (separate later work):** §6 structural-divergence detection
|
||||
(`--adopt-server-structure` / `--force-local-structure`); declarative group create/reparent (lifting "groups
|
||||
pre-exist"); per-env approval gating (`[project.environments]`).
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user