Files
SlabUploader/docs/PRODUCT.md
grokbot_ty 4ab68d6b68 docs(m2): lock Photos milestone — batch, calibrate, overlays
Record Ty's narrowed M2 scope on m2-ds: multi-photo batch, pick
calibration, reuse M1 mask/crop, lined-up inventory PNGs, and
axis-oriented dimension overlay copy. Not taxonomy or Woo create.
2026-09-15 20:37:46 +00:00

3.0 KiB
Raw Permalink Blame History

Product requirements

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.

Complete listing

  • 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. Measured values feed title and description templates.

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

System seams

Milestones 1 and 2 run in the browser. No backend and no inference URL. 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 uses FastAPI as the Woo client. Store credentials stay on the server.

Create

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.

Milestones

Work is split into four milestones. Each milestone is done when its acceptance can be demonstrated.

Milestone 1 — Capture

Spec: docs/CAPTURE.md. Done historically; handoff into Milestone 2.

User stories:

  • Photograph a slab on a green or black sheet and remove the background.
  • Set length from the bounding rectangle and get widths, sqft, and bdft.
  • Leave and later Continue or Start fresh.

Acceptance: inventory PNG and measurements visible on a phone. No Woo create.

Milestone 2 — Photos

Spec: docs/PHOTOS.md. Current work.

Batch photos of one slab, pick calibration, run Milestone 1 on that reference, apply the same mask params and crop to the rest, preview all inventory PNGs lined up, plus a dimension-overlay copy of the calibration PNG. Acceptance: on a phone, 1–N store-ready inventory PNGs for the slab (including dimension overlay on the calibration copy) with Milestone 1 measures visible. No Woo create. No Complete-listing taxonomy in this milestone.

Milestone 3 — Create

WooCommerce draft for a practice SKU. Then clear the device draft. Acceptance: SLAB-UAT-* exists in the store as draft.

Milestone 4 — Assist

Optional vision and generated copy on the manual path from Milestones 1–3. Acceptance: create still works with inference off.