docs: strip editorial language from AGENTS.md

This commit is contained in:
Ty
2026-09-11 14:01:19 +00:00
parent b9028ec1bd
commit 440fedc90f
+24 -54
View File
@@ -1,65 +1,35 @@
# AGENTS.md — SlabUploader
# AGENTS.md
Working contract. Read this before writing code or more docs.
Read before writing code.
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: `README.md`, this file, `docs/PRODUCT.md`, `docs/CAPTURE.md`, `deploy/`.
## Live files
## Slice 1
| 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 |
Client-side, phone and PC:
Do not add a new live markdown file without Ty saying so.
1. Open the app and choose one slab photo.
2. Isolate the slab with one live sensitivity slider. Sheet mode is Auto, Green, or Black. Overlay updates on the source photo as the slider moves.
3. User approves the edge.
4. App produces the inventory PNG and the measurements from that photo.
5. Both are visible on screen.
## Slice 1 (build this, nothing else)
Slice 1 scope: capture through on-screen PNG and measurements.
Client-side capture on phone and PC:
## Acceptance
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.
A real slab on a phone: approved edge, inventory PNG on screen, widths and board feet on screen.
## 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
- Quantity per listing is one.
- User enters length, thickness, and SKU.
- App proposes remaining listing fields. User reviews before create.
- Non-math fields remain editable until create.
- `bdft = sqft × thickness_in`
- Price proposal is `bdft × species $/bdft`. User may replace it. Missing rate leaves price empty.
- User-entered length, thickness, SKU, price, and taxonomy override computed or inferred values.
- SKUs matching `SLAB-UAT-*` create as Woo draft.
- Create works with inference off.
- Source below the PNG size floor requires a new photo.
- Existing store SKU blocks create.