66 lines
2.4 KiB
Markdown
66 lines
2.4 KiB
Markdown
# 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
|