docs: strip editorial language from AGENTS.md
This commit is contained in:
@@ -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
|
|
||||||
|
|||||||
Reference in New Issue
Block a user