63a99e8154
- R1 soft delete: add deleted_at to slabs; exclude deleted rows from GETs - R2 publish: terminal poll returns woo_product_id then the working row is discarded; the app never deletes from WooCommerce (reworks PUBLISH-25) - R3 prompts: SQLite is the point of record; file-based prompts superseded, compose prompt mount removed - R4 images: photo bytes are SQLite BLOBs; /images is a health probe + staging Details recorded in .audit/m3-build-plan.md.
Contract docs
Cross-cutting interface detail shared by capabilities.
Rules (docs/STRUCTURE.md): a contract doc cites requirement IDs from docs/REQUIREMENTS.md; it never defines or restates them.
Contract docs (migrated):
WOO-API.md— external WooCommerce REST API v3 surface (new; the dependency contract)API.md— FastAPI HTTP contract (from tagOPENAPI.md)DATA-MODEL.md— SQLite schema and status machine (from tagDATA-MODEL.md)UX.md— screens, field recovery, outcomes (from tagUX.md)PROMPTS.md— Call 1 / Call 2 prompt text and inputs (from tagPROMPTS.md)CONTENT-WOO.md— listing copy and Woo payload intent (fromdocs/CONTENT-WOO.md)TEST-SPEC.md— test pyramid, vectors, dishonest proxies (from tagTEST-SPEC.md) — pending
Template: docs/_templates/contract.md.