docs(phase2): reconcile requirements and migrate capabilities/contracts

Surface-matrix sweep of every source doc; added nine missed behaviors (METADATA-115, REVIEW-50, APP-55/60/65, SETTINGS-45 mode, Generate-text availability, defaults-off). 153 requirements, 0 coverage gaps.

Migrated capabilities to docs/capabilities/ and contracts to docs/contracts/; added WOO-API, API, DATA-MODEL, PROMPTS, UX, TEST-SPEC. Populated MILESTONES; branch-neutral trunk docs; renamed umbrella term to Woo Slab Taxonomy. Archived reconciliation working records under .audit/archive/.
This commit is contained in:
2026-09-18 21:02:06 -07:00
parent a8cc2f7596
commit 01aa4c52c3
53 changed files with 3186 additions and 817 deletions
+18 -13
View File
@@ -1,11 +1,11 @@
# AGENTS.md
## STOP — coding paused (Phase 2: requirements reconciliation)
## Status — Phase 2 reconciliation complete
Do not implement Milestone 3 or any feature right now. Trunk docs are being consolidated.
Scope authority is `docs/REQUIREMENTS.md` + `docs/MILESTONES.md`. M3 will be re-derived as a subset of requirement IDs.
**Current state, locked rulings, and next steps: read `.audit/2026-09-18-session-handoff.md` first.**
The Milestone 3 text below is the pre-reconciliation state and is not authoritative until Phase 2 completes. The "Agent context" and "Milestone 3" sections below describe paused intent, not the current task.
`docs/REQUIREMENTS.md` (153 rows) is the only normative text; scope is the M3 ID subset in `docs/MILESTONES.md`.
Capability and contract docs live in `docs/capabilities/` and `docs/contracts/`.
Reconciliation evidence is archived under `.audit/archive/`; the coverage ledger and matrices are in `.audit/coverage/`.
Starting implementation is Ty's call; when it starts, implement only the M3 ID subset.
## Structure contract (read before creating any doc)
@@ -14,17 +14,22 @@ Before creating or moving any doc, look up its home in `docs/STRUCTURE.md` (arti
If no home exists, stop and ask Ty — do not create a new artifact.
Run `python tools/check_requirements.py` after any docs change; it must pass.
## Agent runtime rules
- Subagents (`explore`, `general`) run on a single local GPU and cannot handle concurrency. Invoke only one subagent at a time; never issue parallel subagent calls.
- Subagents are for mechanical extraction only (read and list). They never write and never set a disposition; rulings stay with Ty.
## Agent context
Read `docs/README.md` first, then this file, `docs/CAPTURE.md`, `docs/PHOTOS.md`, and `docs/CREATE.md`.
Read `docs/README.md` first, then this file, `docs/capabilities/CAPTURE.md`, `docs/capabilities/PHOTOS.md`, and `docs/capabilities/CREATE.md`.
Implement **Milestone 3** only. Specification: `docs/CREATE.md`.
Implement **Milestone 3** only. Specification: `docs/capabilities/CREATE.md`.
Product overview: `docs/PRODUCT.md`.
**M3 scope** (what is in vs out) comes from Ty conversations and `docs/CREATE.md`.
**Behavior** for Woo sync, metadata, pricing, and inference is written into `docs/CREATE.md` from the technical requirements on `main`. Do not treat older milestone splits on `main` as scope authority. Do not code against `main` docs by cross-reference. Use `docs/CREATE.md` on this branch.
**M3 scope** (what is in vs out) comes from Ty conversations and the reconciled `docs/MILESTONES.md` + `docs/REQUIREMENTS.md`.
**Behavior** for Woo sync, metadata, pricing, and inference is in `docs/capabilities/CREATE.md` and the `docs/contracts/` set. `docs/REQUIREMENTS.md` is the only normative text.
Do not implement work outside `docs/CREATE.md` unless Ty expands scope in chat.
Do not implement work outside the M3 requirement subset unless Ty expands scope in chat.
Do not touch deploy port `:10880`. UAT redeploy target is overnight Docker on ubudual5060 `:10881`.
## Milestone 3
@@ -33,8 +38,8 @@ Create. Exit criteria: a Photos-ready slab is **submission-ready for WooCommerce
## Milestone 1 and 2 (shipped inputs)
- Capture: `docs/CAPTURE.md`
- Photos: `docs/PHOTOS.md` (UAT on `:10881`)
- Capture: `docs/capabilities/CAPTURE.md`
- Photos: `docs/capabilities/PHOTOS.md` (UAT on `:10881`)
## Invariants
@@ -45,7 +50,7 @@ Create. Exit criteria: a Photos-ready slab is **submission-ready for WooCommerce
- `bdft = sqft × thickness_in`
- Price proposal is `bdft × species $/bdft`. User may replace it. Missing rate leaves price empty.
- User-entered length, thickness, SKU, price, and taxonomy override computed or inferred values.
- **Woo attributes** means synced species and wood categories; Edge, Figure, Grade, Thickness, Moisture; `fig-*` and `feat-*`. Store is source of truth.
- **Woo Slab Taxonomy** means synced species and wood categories; Edge, Figure, Grade, Thickness, Moisture; `fig-*` and `feat-*`. Store is source of truth.
- Woo auth is WordPress application password (server-side). `WOO_BASE_URL` is compose/env. Inference URL is Settings.
- SKUs matching `SLAB-UAT-*` create as Woo draft.
- Create works with inference off.