docs: strip editorial language from PRODUCT.md

This commit is contained in:
Ty
2026-09-11 14:01:24 +00:00
parent 440fedc90f
commit 6f5ae7e724
+19 -31
View File
@@ -1,45 +1,33 @@
# Product # Product
## Problem Each slab is one unit and one listing.
This inventory is not sunglasses. There are no size/color variations of one SKU. Every slab is a unique unit and a unique listing: unique photos, categorization, title, short title, description, price, and tags. A listing is complete when it has:
Shooting photos is tedious. The work that makes the business run starts after the photos exist: produce a listing a buyer can find, filter, and want on the product page. - Inventory photo(s), uniform 3:4 transparent PNG
## What "done" means
A slab is ready to create on WooCommerce when all of this is present:
- One or more inventory photos (uniform appearance on the site)
- SKU, length, thickness, price - SKU, length, thickness, price
- Species, wood category, edge type, figure, grade - Species, wood category, edge type, figure, grade
- Thickness band, moisture - Thickness band, moisture
- At least one `fig-*` tag - One or more `fig-*` tags
- Title, short title, description - Title, short title, description
- `feat-*` tags optional - Zero or more `feat-*` tags
Species + one figure is not enough. The store taxonomy (categories, attributes, `fig-*` / `feat-*` tags) is the filter system. Copy sits on top of measured facts. Categories, attributes, and `fig-*` / `feat-*` tags are the store filters. Measured values feed title and description templates.
## Who decides ## Decision rights
| Field | Who | | Field | Source |
|---|---| |---|---|
| Length, thickness | User types | | Length, thickness | User |
| SKU | User types | | SKU | User |
| Mask / crop | App proposes, user approves on the photo | | Mask and crop | App proposal, user approve |
| Widths, sqft, bdft | App computes from the approved reference photo + length/thickness | | Widths, sqft, bdft | App, from approved reference photo + length + thickness |
| Species, wood category, edge, figure, grade, tags | App may propose; user reviews; all editable | | Species, wood category, edge, figure, grade, tags | App may propose; user may change |
| Price | App proposes `bdft × species $/bdft`; user may override | | Price | App proposal `bdft × species $/bdft`; user may replace |
| Title, short title, description | Templates from facts; optional Generate text later; user edits | | Title, short title, description | Templates from listing facts; user may edit |
Non-math decisions stay mutable until submit. Math follows `docs/CAPTURE.md`. ## Create
## After Slice 1 - FastAPI is the Woo client. Store credentials stay on the server.
- `SLAB-UAT-*` creates as draft.
- Templates always build title / short title / description from facts. LLM prose is optional and never required to publish. - Duplicate SKU blocks create.
- FastAPI is the only Woo caller. Browser never holds store secrets.
- Practice SKUs `SLAB-UAT-*` create as **draft** even if settings say publish.
- Duplicate SKU stops the create. No update path in this version.
- Vision / Call 1 / Call 2 only after a manual listing path works. Inference off must still produce a complete listing.
Depth that is no longer live: `docs/archive/CONTENT-WOO.md`, `docs/archive/DATA-MODEL.md`, `docs/archive/PROMPTS.md`.