docs(structure): govern .planning/ and register the ops runbook

- docs/STRUCTURE.md: add a .planning/ registry (vision/roadmap/history/breakdown
  roles), broaden the roadmap role, add enforcement items 8-10.
- tools/check_requirements.py: scan .planning/ too - every .planning/**.md must be
  registered, registered files must exist, requirement rows rejected there.
- .planning/: PROJECT.md, ROADMAP.md, MILESTONES.md, and milestones/v0.5/M3/
  {roadmap.md,task_breakdown.md}. M3 breakdown holds only the tasks; decisions live
  in the contracts.
- docs/DEPLOYMENT.md: add the ops runbook (registered as ops).
This commit is contained in:
2026-09-19 10:12:32 -07:00
parent 90e862cfb0
commit 6435199f08
8 changed files with 234 additions and 7 deletions
+5
View File
@@ -0,0 +1,5 @@
# Shipped milestones
Role: history. Historical log of shipped milestones. Cites requirement IDs; defines none.
Not yet written.
+5
View File
@@ -0,0 +1,5 @@
# Project
Role: vision. Overall project vision and current state. Cites requirement IDs; defines none.
Not yet written.
+5
View File
@@ -0,0 +1,5 @@
# Roadmap
Role: roadmap. Phases across all milestones. Cites requirement IDs; defines none.
Not yet written.
+30
View File
@@ -0,0 +1,30 @@
# M3 — roadmap
Role: roadmap. Objectives for v0.5 / M3. Cites requirement IDs; defines none.
## Objective
A Photos-ready slab becomes submission-ready for WooCommerce, and a practice `SLAB-UAT-*` draft
matching the reviewed ready set exists in the store. Create works with inference off.
## Capabilities in scope
- Woo connection (WordPress application password) and taxonomy sync.
- Review to the full ready set, with per-slab pricing and override.
- Inference assist (Call 1 / Call 2), optional and never blocking create.
- Publish: create the Woo product; `SLAB-UAT-*` always a draft.
## Sources of truth
- Behavior and acceptance: `docs/capabilities/CREATE.md`.
- Scope and the M3 ID subset: `docs/MILESTONES.md`.
- Interfaces: `docs/contracts/` (`API.md`, `WOO-API.md`, `DATA-MODEL.md`, `PROMPTS.md`, `UX.md`,
`CONTENT-WOO.md`, `TEST-SPEC.md`).
## Exit
Per `docs/MILESTONES.md` and `docs/capabilities/CREATE.md` (QUALITY-110).
## Note
M3 implementation has not started. Decisions already ruled live in the contracts, not here.
@@ -0,0 +1,36 @@
# M3 — task breakdown
Role: breakdown. Ordered task list for v0.5 / M3. Cites requirement IDs; defines none.
Objectives: `roadmap.md` in this folder. Behavior and acceptance: `docs/capabilities/CREATE.md`.
Scope and IDs: `docs/MILESTONES.md`. Decisions live in `docs/contracts/`, not here.
TDD every slice: the failing test precedes its implementation; never parallelize RED and GREEN of
the same scenario.
| Slice | Delivers | M3 IDs |
|---|---|---|
| S0 | factory, config/startup guards, health/meta, JSON logs, Dockerfile | APP-30, APP-45, APP-55, APP-65, SETTINGS-10, SETTINGS-25, OPS-25 |
| S1 | AES-GCM crypto + Settings (masked, write-only secrets) | SETTINGS-5/15/20/25/30/35/75/85/90, QUALITY-125 |
| S2 | slabs CRUD, optimistic concurrency, soft delete | APP-5/15/20/35/40, REVIEW-45 |
| S3 | photos (multipart → BLOBs, original/processed, 410 after purge) | CAPTURE-95/105/130, PUBLISH-40 |
| S4 | Woo client (application-password Basic) + taxonomy sync + test-woo | METADATA-5/10/15/20/30, SETTINGS-40/50/51/55/60/80, QUALITY-35 |
| S5 | pricing, deterministic templates, server-derived ready | REVIEW-5/10/15/20/25/30/35/40/50, METADATA-70/80/85/90, QUALITY-90/95 |
| S6 | publish (sequence, UAT draft, duplicate/stale/partial failure) | PUBLISH-5/10/15/20/25/30/31/35/36/37/38/40/45/50/55/60 |
| S7 | inference last (Call 1 / Call 2, prompt revisions, template fallback) | METADATA-35/40/45/50/55/60/65/66/75/95/100/105/110/115, SETTINGS-45/70 |
| Cross | frontend API client; Review / Settings / Publish screens | UI for the slices above |
| Exit | inference-off suite, Woo-mock integration, Compose UI E2E, real UAT draft | QUALITY-20/35/50/105/110/120 |
## Frontend layout
New code stays outside the Capture union: `frontend/src/api/*`, `frontend/src/create/*`.
## Verification
Slice bar: `docs/contracts/TEST-SPEC.md`. Docs gate: `python tools/check_requirements.py`.
Exit bar: `docs/MILESTONES.md` and `docs/capabilities/CREATE.md`.
## Not yet validated
- Long-horizon multi-step agentic loops (more than one or two tool round-trips).
- M3 implementation has not started.