Files
SlabUploader/.audit/coverage/uat-practice.md
T
Ty 01aa4c52c3 docs(phase2): reconcile requirements and migrate capabilities/contracts
Surface-matrix sweep of every source doc; added nine missed behaviors (METADATA-115, REVIEW-50, APP-55/60/65, SETTINGS-45 mode, Generate-text availability, defaults-off). 153 requirements, 0 coverage gaps.

Migrated capabilities to docs/capabilities/ and contracts to docs/contracts/; added WOO-API, API, DATA-MODEL, PROMPTS, UX, TEST-SPEC. Populated MILESTONES; branch-neutral trunk docs; renamed umbrella term to Woo Slab Taxonomy. Archived reconciliation working records under .audit/archive/.
2026-09-18 21:02:06 -07:00

6.4 KiB

Coverage ledger — UAT-PRACTICE.md

Source cur:UAT-PRACTICE (docs/UAT-PRACTICE.md, role: practice). Walked 2026-09-18. Four conflicts were ruled superseded; the rest port to the PoR.

Source Atom Requirement Disposition PoR ID Rationale
cur:UAT-PRACTICE inventory-filled deploy/INVENTORY filled before deploy ported OPS-15 —
cur:UAT-PRACTICE lan-tailscale reachable over LAN/Tailscale ported OPS-5 —
cur:UAT-PRACTICE https-only HTTPS only, valid cert ported OPS-5 —
cur:UAT-PRACTICE health-passes health endpoint returns ok ported APP-30 —
cur:UAT-PRACTICE store-url-set WOO_BASE_URL in host .env, https ported SETTINGS-5 —
cur:UAT-PRACTICE wp-store-https WordPress store must already be on HTTPS ported SETTINGS-10, SETTINGS-15 —
cur:UAT-PRACTICE dedicated-low-priv-user dedicated low-privilege WP user ported SETTINGS-15 —
cur:UAT-PRACTICE generate-password generate application password in WP profile dropped — procedure, not a requirement
cur:UAT-PRACTICE enter-creds-encrypted username + application password in Settings, server-encrypted ported SETTINGS-20 —
cur:UAT-PRACTICE test-woo-resync test-woo reports ok and resyncs taxonomy ported SETTINGS-40 —
cur:UAT-PRACTICE fastapi-sole-caller FastAPI is the only store caller ported APP-25 —
cur:UAT-PRACTICE rotate-creds rotate application password then test-woo duplicate SETTINGS-40 rotation is procedure; the verification is test-woo
cur:UAT-PRACTICE sku-prefix practice SKU starts with SLAB-UAT- ported PUBLISH-10 —
cur:UAT-PRACTICE always-draft SLAB-UAT-* always creates a Woo draft ported PUBLISH-10 —
cur:UAT-PRACTICE create-status-default-draft woo_create_status defaults to draft ported SETTINGS-65 —
cur:UAT-PRACTICE customers-never-see a draft is hidden from the storefront ported PUBLISH-10, PUBLISH-50 —
cur:UAT-PRACTICE supported-browsers iOS Safari, Android Chrome, desktop Chrome/Edge/Firefox; hard stop ported CAPTURE-10 —
cur:UAT-PRACTICE matrix-issue-refs signed matrix and issue #4 provenance dropped — stale provenance, not a requirement
cur:UAT-PRACTICE photo-count-1-to-5 take 1 to 5 photos superseded CAPTURE-25 PoR is one or more; no cap in code
cur:UAT-PRACTICE first-photo-topdown first photo top-down, lens parallel ported CAPTURE-20 —
cur:UAT-PRACTICE four-knobs Sheet, Sensitivity, Edge offset, Feather superseded CAPTURE-40 controls are exactly Sheet and Sensitivity
cur:UAT-PRACTICE confirm-mask confirm the mask ported CAPTURE-50 —
cur:UAT-PRACTICE length-axis bounding rectangle, rotate, nearly square choice ported CAPTURE-60, CAPTURE-65 —
cur:UAT-PRACTICE enter-length-thickness-sku length/thickness 1/8 inch, SKU typed ported CAPTURE-70 —
cur:UAT-PRACTICE computed-numbers sqft, bdft, widths, bdft identity ported CAPTURE-80, CAPTURE-85, CAPTURE-90 —
cur:UAT-PRACTICE continue-upload-status Continue uploads originals, PNGs, numbers; status calibrated ported APP-5, CAPTURE-135 —
cur:UAT-PRACTICE species-exactly-one pick exactly one species ported METADATA-10 —
cur:UAT-PRACTICE wood-categories pick at least one wood category ported METADATA-10 —
cur:UAT-PRACTICE grade-at-least-one at least one grade superseded METADATA-15 grade is exactly one
cur:UAT-PRACTICE figure-at-least-one at least one figure ported METADATA-15 —
cur:UAT-PRACTICE thickness-band-roundup thickness band rounds up ported METADATA-15 —
cur:UAT-PRACTICE moisture-default moisture default kiln-dried ported METADATA-15 —
cur:UAT-PRACTICE fig-tags-at-least-one pick at least one fig-* tag superseded METADATA-30 tags are optional
cur:UAT-PRACTICE feat-tags-zero-or-more zero or more feat-* tags ported METADATA-30 —
cur:UAT-PRACTICE price-reco-override recommendation from species $/bdft, override sticks ported REVIEW-25 —
cur:UAT-PRACTICE price-missing-rate no rate starts empty, type it, publish allowed ported REVIEW-25 price required before create; manual entry when no rate
cur:UAT-PRACTICE title-description-templates type or leave for templates; templates inject numbers ported METADATA-70, REVIEW-10 —
cur:UAT-PRACTICE inline-nudges-ready inline nudge; cannot reach ready until filled ported REVIEW-20 —
cur:UAT-PRACTICE sku-check-create server checks SKU, creates if new ported PUBLISH-5 —
cur:UAT-PRACTICE success-cleanup success message, local draft and photos gone, status published ported PUBLISH-25, PUBLISH-50 —
cur:UAT-PRACTICE published-not-live published means store create succeeded, not live ported PUBLISH-50 —
cur:UAT-PRACTICE store-draft-fields confirm draft status and fields in the store ported PUBLISH-10, PUBLISH-40, PUBLISH-45, PUBLISH-55, METADATA-15 —
cur:UAT-PRACTICE storefront-hidden not visible on the live storefront ported PUBLISH-10, PUBLISH-50 —
cur:UAT-PRACTICE repeat-pc repeat the walk on a desktop browser ported CAPTURE-10 —
cur:UAT-PRACTICE pass-fail-checklist pass/fail checks table duplicate REVIEW-5, PUBLISH-10, CAPTURE-90 restates rows above
cur:UAT-PRACTICE duplicate-sku-recovery duplicate SKU recovery, edit or open existing ported PUBLISH-15 —
cur:UAT-PRACTICE fail-no-success no success message, plain error, server log, retry ported PUBLISH-30, PUBLISH-35, PUBLISH-37 —
cur:UAT-PRACTICE fail-stale-value value no longer valid, pick from current list ported PUBLISH-20, REVIEW-35 —
cur:UAT-PRACTICE fail-store-unreachable store unreachable, plain message, retry ported PUBLISH-30, PUBLISH-36, PUBLISH-38 —
cur:UAT-PRACTICE cleanup-draft leave or delete the UAT draft; app does not delete store products dropped — procedure
cur:UAT-PRACTICE final-poc-publish final POC publish is a separate gated step dropped — scope/procedure
cur:UAT-PRACTICE where-rules-live "where each rule lives" table dropped — stale doc refs; migration