# AGENTS.md ## Agent context Read this file, `docs/CAPTURE.md`, and `docs/PHOTOS.md`. Implement Milestone 2 only. Specification: `docs/PHOTOS.md`. PRD: `docs/PRODUCT.md` for destination and field names. Do not implement Milestone 3 or 4. Do not widen Milestone 2 into Complete-listing taxonomy, SKU, price, copy, or Woo create. ## Milestone 2 Photos. Acceptance: on a phone, batch of 1–N photos, user-picked calibration photo through Milestone 1 mask/axis/measure, every successful shot as a 3:4 transparent inventory PNG lined up, Milestone 1 numbers on screen, dimension-overlay copy of the calibration PNG present. Milestone 2 is inference-free. Batch mask/crop reuse and dimension overlays run in the browser as ordinary code. There is no inference URL and no model call in this milestone. ## Milestone 1 (historical) Capture. Spec: `docs/CAPTURE.md`. Remains the calibration math and PNG contract Milestone 2 reuses. ## Invariants - 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. - Dimension overlay orientation follows the user-approved length axis from Milestone 1.