01aa4c52c3
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/.
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
|
||
- Optional `fig-*` tags
|
||
- Title, short_description, description
|
||
- Zero or more `feat-*` tags
|
||
|
||
Store categories, attributes, and `fig-*` / `feat-*` tags are the filters shoppers use. When content generation runs, the model writes the prose; deterministic templates are the fallback and inject the measured values.
|
||
|
||
The locked name for that synced taxonomy package is **Woo Slab Taxonomy**. Details live in `docs/capabilities/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_description, description | Model or template 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/capabilities/CREATE.md`.
|
||
|
||
## Create rules (summary)
|
||
|
||
Full behavior is in `docs/capabilities/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
|
||
|
||
| Milestone | Spec | Status |
|
||
|---|---|---|
|
||
| 1 Capture | `docs/capabilities/CAPTURE.md` | Shipped |
|
||
| 2 Photos | `docs/capabilities/PHOTOS.md` | Shipped (UAT `:10881`) |
|
||
| 3 Create | `docs/capabilities/CREATE.md` | Scope is the M3 ID set in `docs/MILESTONES.md`. Exit: submission-ready for WooCommerce. |
|
||
|
||
Scope is the M3 requirement subset in `docs/MILESTONES.md`; `docs/REQUIREMENTS.md` is normative.
|