# AGENTS.md ## Agent context Read this file, `docs/CAPTURE.md`, `docs/PHOTOS.md`, and `docs/CREATE.md`. Implement **Milestone 3** only. Specification: `docs/CREATE.md`. PRD overview: `docs/PRODUCT.md` for destination and field names. **M3 scope SoT is `docs/CREATE.md` and the Ty conversations that produced it.** Milestone / task breakdowns on `main` are obsolete for M3. Do not cross-reference `main` for scope once coding on this branch. Do not implement work outside `docs/CREATE.md` unless Ty expands scope in chat. Do not touch deploy port `:10880`. UAT redeploy target is overnight Docker on ubudual5060 `:10881`. ## Milestone 3 Create — Woo attributes sync (WordPress application password), proper use of the synced taxonomy for the ready set and product create, plus OpenAI-compatible inference endpoint dependency in Settings. Acceptance: see Done when in `docs/CREATE.md`. Practice SKU `SLAB-UAT-*` exists in the store as draft; create works with inference off. ## Milestone 1–2 (shipped inputs) - Capture: `docs/CAPTURE.md` — calibration math and PNG contract. - Photos: `docs/PHOTOS.md` — batch inventory PNGs + dimension overlay. Base tip for this branch: shipped M2 on `:10881`. ## Invariants - Quantity per listing is one. - User enters length, thickness, and SKU. - App may propose 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. - **Woo attributes** = synced species + wood categories; Edge / Figure / Grade / Thickness / Moisture; `fig-*` / `feat-*`. Store is source of truth. - Woo auth is WordPress application password (server-side). `WOO_BASE_URL` is compose/env; inference URL is Settings. - 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.