Files
SlabUploader/AGENTS.md
T

2.4 KiB
Raw Blame History

AGENTS.md — SlabUploader

Working contract. Read this before writing code or more docs.

Branch intent: doc-simplification replaces the live doc pile with a small production set. Old files live under docs/archive/ and are not sources for new work.

Live files

File Owns
README.md What this is
AGENTS.md Locks, slice scope, proof
docs/PRODUCT.md Listing factory, fields, who decides, Woo outcome
docs/CAPTURE.md Photo, mask slider, crop, numbers
deploy/ How it is hosted

Do not add a new live markdown file without Ty saying so.

Slice 1 (build this, nothing else)

Client-side capture on phone and PC:

  1. Open the app.
  2. Take or pick one slab photo.
  3. Isolate the slab with one live sensitivity slider (plus Auto / Green / Black if the sheet is not obvious). Instant overlay. No Apply. No server trip for the slider.
  4. User approves the edge.
  5. App then produces the uniform inventory PNG and sizes / board feet from that reference photo.
  6. User sees both on screen.

Out of Slice 1: Woo, vision, titles, extra sliders, U2Net, offline, OCR, bulk.

Add a second slider only after real slabs prove one cannot put the edge on the wood.

Proof

A passing test suite is not proof.

Proof is Ty on a phone, real slab, approved edge, visible uniform PNG, visible length-derived widths and board feet. If step 5 does not run after approve, the build failed.

Locks

  • Every slab is quantity one. Photos + metadata are the listing.
  • User types length, thickness, and SKU.
  • App proposes everything else. User reviews before submit.
  • Non-math fields stay editable until submit.
  • Board feet is sqft × thickness_in. User does not invent the math.
  • Price is proposed as bdft × species $/bdft. User may override. No rate → empty price, user types it.
  • Manual length, thickness, SKU, price, and taxonomy always win over a model.
  • SLAB-UAT-* is always a Woo draft.
  • Vision does not gate publish. Full path must work with inference off.
  • Undersized source → retake, not a soft publish.
  • Duplicate SKU → stop. This version does not update the other product.

Conflict order

  1. These locks
  2. docs/PRODUCT.md and docs/CAPTURE.md
  3. docs/archive/ (history only)

Do not

  • Restate these locks in a fourth file
  • Treat docs/archive/ as the spec
  • Ship four sliders because an older spec listed four
  • Call the slice done because unit tests passed