Files
Ty 63b8879720 docs(design): add approved #99 tape-line overlay wireframe
Owner-approved design proposal for #99 (tape-line overlay replaces the axis
rectangle). Wireframe only - no production code.

Settles: the black ~2pt line is a fixed entity in the middle of the 3:4
rectangle; the slab alone pans/zooms/tilts so its long axis lands on the line;
the ticks belong to the line and L = tick to tick; crop % moves only the
overlay's ends ((1 - fill)/2 of the long axis in from the top and the bottom)
and never changes the aspect ratio.

The file header lists the wireframe scaffolding to scrub before this reaches the
production workflow (viewport switcher, coverage board, was/now pair, PROPOSAL
markers, in-stage tutorial labels, sample values, window.__wf debug hook).
2026-09-24 11:30:13 -07:00
..

Docs map

Read this file first. It tells you what SlabUploader is for, what already ships, and what Milestone 3 must build.

Who this is for. Mill owner (Ty), humans reviewing scope, and agents implementing.

Source of truth for Milestone 3. docs/REQUIREMENTS.md plus the M3 ID subset in docs/MILESTONES.md. Behavior is in docs/capabilities/CREATE.md and the docs/contracts/ set.

High-level project goal

SlabUploader lists one-of-a-kind wood slabs on Whidbey Wood Store (WooCommerce).

One slab is one unit and one listing. Photos and metadata are the inventory record. The mill owner photographs a slab on a green or black sheet, gets store-ready transparent PNGs and measurements on the phone, fills the store's taxonomy and price, then creates a WooCommerce product.

Store: https://www.whidbeywoodstore.com/

What is already implemented (pre-M3)

Milestone Spec Status on this branch
1 Capture docs/capabilities/CAPTURE.md Shipped. Browser-only mask, length axis, measure, inventory PNG, device draft.
2 Photos docs/capabilities/PHOTOS.md Shipped. Batch photos, pick calibration, apply mask/crop to the batch, dimension overlay, Photos-ready lineup. UAT on :10881.

There is no Woo create yet. There is no Complete-listing taxonomy UI yet. There is no FastAPI Woo client (backend/ is a stub). Inference is not wired.

What Milestone 3 builds

Spec: docs/capabilities/CREATE.md.

Exit criteria. A Photos-ready slab becomes submission-ready for WooCommerce, and a practice SLAB-UAT-* draft exists in the store that matches the reviewed ready set. Create must still work with inference off.

In plain terms, M3 connects the Photos-ready device draft to the real store:

  1. Talk to WooCommerce with a WordPress application password (server-side only).
  2. Sync and use the Woo Slab Taxonomy (categories, five locked attributes, fig-* / feat-* tags) per the requirements.
  3. Pricing from species $/bdft rules, with user override.
  4. Inference Settings (OpenAI-compatible URL, key, model) and Call 1 / Call 2 rules when enabled.
  5. Review to the full ready set, then create the Woo product (force draft for SLAB-UAT-*).

Technical detail for Woo sync, metadata, pricing, and inference is in docs/capabilities/CREATE.md and docs/contracts/.

How to read the folder

File Role
README.md (this file) Map: goals, shipped, M3.
PRODUCT.md Product overview: complete listing, decision rights, seams.
capabilities/CAPTURE.md Milestone 1 Capture (shipped).
capabilities/PHOTOS.md Milestone 2 Photos (shipped).
capabilities/CREATE.md Milestone 3 Create. Read this before task breakdown or coding.
contracts/CONTENT-WOO.md Listing copy and payload intent; the deterministic title and short-description patterns.
DEPLOYMENT.md Ops runbook: hosts, build, smoke checks, rollback.
UAT-PRACTICE.md Human practice walk for a SLAB-UAT-* listing. Defers to capabilities/CREATE.md on conflict.
archive/ Historical only. Not M3 scope.

Deployment

Hosts, ports, build and rollback steps, and the dev-test port block live in docs/DEPLOYMENT.md; deploy/INVENTORY.md is the only source for what runs where. This map does not repeat them.