P2.1: record flow-step <-> subplan-slice scope mapping

Document the already-decided decomposition of subplan-02 Slice 1 so the
P2.1 boundary is verifiable from the repo:
- P2.1 = Core Structs + boundary validation (validation portion of Slice 1)
- P2.3 = in-memory repository + db.json (rest of Slice 1)
- Token = Slice 5 (Token Security), out of both

Planning-doc record only; no domain or test code changed.
This commit is contained in:
agra
2026-06-06 00:16:17 +03:00
parent 85f9c7c487
commit fd0ebd64f4
2 changed files with 26 additions and 0 deletions

21
PLAN.md
View File

@@ -271,6 +271,27 @@ Milestone 1 is complete when:
- The admin UI can inspect apps, releases, validations, tokens, and audit logs.
- A Docker image can run on a UGREEN NAS with a persistent data volume.
## Milestone 1 — Flow Step ↔ Subplan Slice Mapping
The flow decomposes subplan 02 (`.agents/subplans/02-domain-and-storage.md`)
Slice 1 into two steps. This records that decomposition so each step's scope is
verifiable from the repo:
- **P2.1 — domain structs + boundary validation.** Delivers subplan-02 *Core
Structs* (App, Platform, Release, Artifact, Channel, AuditEvent) and the
*boundary validation* portion of Slice 1 — slug, version, channel name,
platform id, and required-field presence, each with a distinct typed error.
Per the PO ruling this includes `Release.published_at` and `Artifact.metadata`.
Code lives under `src/domain/`; the acceptance test is
`tests/domain_validate.sx`.
- **P2.3 — in-memory repository + persistence.** Delivers the rest of Slice 1:
the in-memory repository (create/list/get/update, find-by-slug,
find-artifact-by-digest) plus `db.json` persistence.
- **Token is in neither P2.1 nor P2.3.** Subplan 02 lists Token under *Core
Structs*, but its delivery slice is **Slice 5 — Token Security** (generation,
hashing at rest, scopes, expiration/revocation). It is out of the Slice-1
steps above.
## Non-goals For Version 1
- Public marketplace payments.