22599c924f
Reorganize docs for humans: README map (goals / shipped / M3), PRODUCT overview, and a specific CREATE.md that pulls Woo sync, metadata, pricing, and inference requirements from main. Exit criteria is a slab submission- ready for WooCommerce, proven with a SLAB-UAT-* draft. Add UAT-PRACTICE.
69 lines
2.7 KiB
Markdown
69 lines
2.7 KiB
Markdown
# Product overview
|
||
|
||
SlabUploader creates one WooCommerce listing per wood slab for Whidbey Wood Store.
|
||
|
||
Each slab is one unit and one listing. Photos and metadata are the inventory record.
|
||
|
||
Photographs are taken of the slab on a green or black sheet. That is the capture starting state.
|
||
|
||
Owner: Ty. Store: https://www.whidbeywoodstore.com/
|
||
|
||
## Complete listing
|
||
|
||
A finished listing has:
|
||
|
||
- Inventory photo(s), uniform 3:4 transparent PNG
|
||
- SKU, length, thickness, price
|
||
- Species, wood category, edge type, figure, grade
|
||
- Thickness band, moisture
|
||
- One or more `fig-*` tags
|
||
- Title, short title, description
|
||
- Zero or more `feat-*` tags
|
||
|
||
Store categories, attributes, and `fig-*` / `feat-*` tags are the filters shoppers use. Measured values feed title and description templates.
|
||
|
||
The locked name for that synced taxonomy package is **Woo attributes**. Details live in `docs/CREATE.md`.
|
||
|
||
## Decision rights
|
||
|
||
| Field | Source |
|
||
|---|---|
|
||
| Length, thickness | User |
|
||
| SKU | User |
|
||
| Mask and crop | App proposal, user approve |
|
||
| Widths, sqft, bdft | App, from approved reference photo + length + thickness |
|
||
| Species, wood category, edge, figure, grade, tags | App may propose; user may change |
|
||
| Price | App proposal `bdft × species $/bdft`; user may replace |
|
||
| Title, short title, description | Templates from listing facts; user may edit |
|
||
|
||
User-entered length, thickness, SKU, price, and taxonomy override computed or inferred values.
|
||
|
||
## System seams
|
||
|
||
Milestones 1 and 2 run in the browser. No backend and no inference URL on the shipped path.
|
||
|
||
Milestone 1 handoff is the device draft: source photo, approved mask, inventory PNG, length, thickness, widths, sqft, bdft.
|
||
|
||
Milestone 2 extends the draft with the photo batch, calibration choice, per-photo inventory PNGs, and the dimension-overlay calibration copy.
|
||
|
||
Milestone 3 introduces FastAPI as the Woo client and inference proxy. Store credentials and inference secrets stay on the server. Spec: `docs/CREATE.md`.
|
||
|
||
## Create rules (summary)
|
||
|
||
Full behavior is in `docs/CREATE.md`.
|
||
|
||
- `SLAB-UAT-*` creates as a WooCommerce draft (store status).
|
||
- Duplicate SKU blocks create.
|
||
- A listing can be created with inference off.
|
||
- A device draft in the app is separate from a WooCommerce draft.
|
||
|
||
## Milestone status on `m3-ds`
|
||
|
||
| Milestone | Spec | Status |
|
||
|---|---|---|
|
||
| 1 Capture | `docs/CAPTURE.md` | Shipped |
|
||
| 2 Photos | `docs/PHOTOS.md` | Shipped (UAT `:10881`) |
|
||
| 3 Create | `docs/CREATE.md` | Current work. Exit: submission-ready for WooCommerce (`CREATE.md` Done when). Scope from Ty conversations; behavior for sync/metadata/pricing/inference taken from `main` into `CREATE.md`. |
|
||
|
||
Anything beyond `docs/CREATE.md` is out of M3 unless Ty expands scope in chat.
|