Files
Ty 01aa4c52c3 docs(phase2): reconcile requirements and migrate capabilities/contracts
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/.
2026-09-18 21:02:06 -07:00

2.7 KiB
Raw Permalink Blame History

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.