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 | Client-side, phone and PC:
|---|---|
| `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. 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. A real slab on a phone: approved edge, inventory PNG on screen, widths and board feet on screen.
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 ## Locks
- Every slab is quantity one. Photos + metadata are the listing. - Quantity per listing is one.
- User types **length**, **thickness**, and **SKU**. - User enters length, thickness, and SKU.
- App proposes everything else. User reviews before submit. - App proposes remaining listing fields. User reviews before create.
- Non-math fields stay editable until submit. - Non-math fields remain editable until create.
- Board feet is `sqft × thickness_in`. User does not invent the math. - `bdft = sqft × thickness_in`
- Price is proposed as `bdft × species $/bdft`. User may override. No rate → empty price, user types it. - Price proposal is `bdft × species $/bdft`. User may replace it. Missing rate leaves price empty.
- Manual length, thickness, SKU, price, and taxonomy always win over a model. - User-entered length, thickness, SKU, price, and taxonomy override computed or inferred values.
- `SLAB-UAT-*` is always a Woo draft. - SKUs matching `SLAB-UAT-*` create as Woo draft.
- Vision does not gate publish. Full path must work with inference off. - Create works with inference off.
- Undersized source → retake, not a soft publish. - Source below the PNG size floor requires a new photo.
- Duplicate SKU → stop. This version does not update the other product. - Existing store SKU blocks create.
## 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