docs(m3): lock Create requirements on m3-ds

Add docs/CREATE.md as M3 SoT from Ty conversation (Woo attributes sync,
ready-set use, create, OpenAI Settings dependency). Point AGENTS/PRODUCT
here; mark main milestone splits obsolete for this branch.
This commit is contained in:
2026-09-16 20:32:03 +00:00
parent 03d3fcf460
commit df40c4269f
4 changed files with 144 additions and 29 deletions
+17 -11
View File
@@ -2,31 +2,37 @@
## Agent context
Read this file, `docs/CAPTURE.md`, and `docs/PHOTOS.md`.
Implement Milestone 2 only. Specification: `docs/PHOTOS.md`.
PRD: `docs/PRODUCT.md` for destination and field names. Do not implement Milestone 3 or 4.
Do not widen Milestone 2 into Complete-listing taxonomy, SKU, price, copy, or Woo create.
Read this file, `docs/CAPTURE.md`, `docs/PHOTOS.md`, and `docs/CREATE.md`.
Implement **Milestone 3** only. Specification: `docs/CREATE.md`.
PRD overview: `docs/PRODUCT.md` for destination and field names.
## Milestone 2
**M3 scope SoT is `docs/CREATE.md` and the Ty conversations that produced it.**
Milestone / task breakdowns on `main` are obsolete for M3. Do not cross-reference `main` for scope once coding on this branch.
Photos.
Acceptance: on a phone, batch of 1–N photos, user-picked calibration photo through Milestone 1 mask/axis/measure, every successful shot as a 3:4 transparent inventory PNG lined up, Milestone 1 numbers on screen, dimension-overlay copy of the calibration PNG present.
Do not implement work outside `docs/CREATE.md` unless Ty expands scope in chat.
Do not touch deploy port `:10880`. UAT redeploy target is overnight Docker on ubudual5060 `:10881`.
Milestone 2 is inference-free. Batch mask/crop reuse and dimension overlays run in the browser as ordinary code. There is no inference URL and no model call in this milestone.
## Milestone 3
## Milestone 1 (historical)
Create — Woo attributes sync (WordPress application password), proper use of the synced taxonomy for the ready set and product create, plus OpenAI-compatible inference endpoint dependency in Settings.
Acceptance: see Done when in `docs/CREATE.md`. Practice SKU `SLAB-UAT-*` exists in the store as draft; create works with inference off.
Capture. Spec: `docs/CAPTURE.md`. Remains the calibration math and PNG contract Milestone 2 reuses.
## Milestone 1–2 (shipped inputs)
- Capture: `docs/CAPTURE.md` — calibration math and PNG contract.
- Photos: `docs/PHOTOS.md` — batch inventory PNGs + dimension overlay. Base tip for this branch: shipped M2 on `:10881`.
## Invariants
- Quantity per listing is one.
- User enters length, thickness, and SKU.
- App proposes remaining listing fields. User reviews before create.
- App may propose remaining listing fields. User reviews before create.
- Non-math fields remain editable until create.
- `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** = synced species + wood categories; Edge / Figure / Grade / Thickness / Moisture; `fig-*` / `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.
- Source below the PNG size floor requires a new photo.