Files
SlabUploader/.audit/coverage/matrix/ux-design.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

218 lines
10 KiB
Markdown

# Coverage matrix — UX-DESIGN.md (pilot)
Purpose: prove every entry on a reference surface in the source doc has a home in the PoR.
Source: `docs/UX-DESIGN.md` at tag `pre-simplification` (non-normative wireframes).
Method: subagent extracted every entry mechanically; this file assigns the PoR home and disposition.
Dispositions: `ported`, `superseded`, `dropped`, `ui` (presentation-only, not a requirement),
`missing` (a finding).
Pilot proof: the three entries fixed in SETTINGS-45 / SETTINGS-90 / METADATA-110 are marked
`ported` below. Before that fix they had no home, which is exactly what this matrix surfaces.
## SETTINGS KEYS
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| Store URL field | SETTINGS-5 | ported | env, read-only |
| WP Username field | SETTINGS-20 | ported | — |
| Application Password field | SETTINGS-20 | ported | — |
| Inference Endpoint field | SETTINGS-30 | ported | — |
| Inference API Key field | SETTINGS-30 | ported | — |
| Enable Vision toggle, default off | SETTINGS-90 | ported | fixed |
| Enable Content toggle, default off | SETTINGS-90 | ported | fixed |
| Pricing Rules | SETTINGS-35 | ported | — |
| Publish Status dropdown, default Draft | SETTINGS-65 | ported | — |
| Brand Voice field | SETTINGS-30 | ported | — |
| GEO Context field | SETTINGS-30 | ported | — |
| Sheet dropdown | CAPTURE-40 | ported | — |
| Edge Offset control | CAPTURE-40 | superseded | removed |
| Feather control | CAPTURE-40 | superseded | removed |
| Knob persistence localStorage | CAPTURE-145 | ported | — |
## CONTROLS
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| Test Connection (WP) | SETTINGS-40, SETTINGS-80 | ported | resync and failure |
| Test Connection (Inference) two-turn probe, stateful/stateless/fail | SETTINGS-45 | ported | fixed |
| Enable Vision / Enable Content buttons | SETTINGS-90 | ported | — |
| Add Rule / Edit (pricing) | SETTINGS-35 | ported | — |
| Reset Capture Knobs | CAPTURE-145 | ported | — |
| Refresh Store Lists | SETTINGS-60 | ported | — |
| Got it (first-run card) | — | ui | presentation |
| R retake shortcut | CAPTURE-50 | ported | — |
| Sheet dropdown | CAPTURE-40 | ported | — |
| Sensitivity slider | CAPTURE-41, CAPTURE-45 | ported | — |
| Edge Offset slider | CAPTURE-40 | superseded | removed |
| Feather slider | CAPTURE-40 | superseded | removed |
| Retake (capture) | CAPTURE-50, CAPTURE-155 | ported | — |
| Confirm (capture) | CAPTURE-50 | ported | — |
| Rotate (axis) | CAPTURE-60, CAPTURE-65 | ported | — |
| Confirm (axis) | CAPTURE-60 | ported | — |
| SKU input | REVIEW-45 | ported | — |
| Length input | CAPTURE-70 | ported | — |
| Thickness input | CAPTURE-70 | ported | — |
| Done (type values) | APP-5 | ported | status calibrated |
| X exit review | APP-10 | ported | — |
| Species dropdown | METADATA-10 | ported | — |
| Wood Cat dropdown | METADATA-10 | ported | — |
| Edge Type dropdown | METADATA-15 | ported | — |
| Figure dropdown | METADATA-15 | ported | — |
| Grade dropdown | METADATA-15 | ported | cardinality superseded |
| Fig Tags dropdown | METADATA-30 | ported | cardinality superseded |
| Feat Tags dropdown | METADATA-30 | ported | — |
| Thickness Band dropdown | METADATA-15 | ported | — |
| Moisture dropdown | METADATA-15 | ported | — |
| Price input | REVIEW-25 | ported | — |
| Review Title / Desc button | REVIEW-10 | ported | — |
| Publish button disabled until ready | REVIEW-20 | ported | — |
| Title input | REVIEW-10 | ported | — |
| Short Title input | REVIEW-10 | ported | naming migrated |
| Description input | REVIEW-10 | ported | — |
| Generate Text button, availability | METADATA-110 | ported | fixed |
| Done (title/desc) | REVIEW-40 | ported | — |
| Open in Store | — | ui | candidate: store link is presentation |
| Done (publish success) | PUBLISH-25 | ported | — |
| Retry (publish failed) | PUBLISH-30, PUBLISH-37 | ported | — |
| Back to Review | PUBLISH-30 | ported | retry from same screen |
| Retake (mask failure) | CAPTURE-50, CAPTURE-55 | ported | — |
| Rotate (axis check) | CAPTURE-60 | ported | — |
| Retake (source too small) | CAPTURE-105 | ported | — |
| Edit SKU | PUBLISH-15 | ported | — |
| Open Existing | PUBLISH-15 | ported | — |
| Refresh Store Lists (stale) | PUBLISH-20 | ported | — |
| Retry / Open Settings (unreachable) | PUBLISH-30, PUBLISH-36, PUBLISH-38 | ported | — |
| Update Browser | CAPTURE-10 | ported | — |
## LISTING FIELDS
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| SKU | REVIEW-45, PUBLISH-15 | ported | — |
| Length | CAPTURE-70 | ported | — |
| Thickness | CAPTURE-70 | ported | — |
| sqft (computed) | CAPTURE-85 | ported | — |
| bdft (computed) | CAPTURE-90 | ported | — |
| widths (computed) | CAPTURE-80 | ported | — |
| Photos, "at least one inventory PNG" | REVIEW-5 | superseded | ready set is two images |
| Species exactly one | METADATA-10 | ported | — |
| Wood category 1+ | METADATA-10 | ported | — |
| Edge type one | METADATA-15 | ported | — |
| Figure 1+ | METADATA-15 | ported | — |
| Fig tags 1+ | METADATA-30 | superseded | tags optional |
| Feat tags 0+ | METADATA-30 | ported | — |
| Grade 1+ | METADATA-15 | superseded | grade exactly one |
| Thickness Band | METADATA-15 | ported | — |
| Moisture | METADATA-15 | ported | — |
| Price | REVIEW-25 | ported | — |
| Title | REVIEW-10 | ported | — |
| Short Title | REVIEW-10 | ported | naming migrated |
| Description | REVIEW-10 | ported | — |
| Store product ID | PUBLISH-25 | ported | display is presentation |
## STATUSES
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| Publish Status Draft | SETTINGS-65 | ported | — |
| calibrated | APP-5 | ported | — |
| publishing | APP-5 | ported | — |
| published | APP-5, PUBLISH-50 | ported | — |
| failed | APP-5 | ported | — |
| Woo product draft | PUBLISH-10 | ported | — |
| SKU "any status" | PUBLISH-15 | ported | — |
| probe stateful/stateless/fail | SETTINGS-45 | ported | fixed |
## ENDPOINTS
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| WP REST v3 auth | SETTINGS-15, SETTINGS-80 | ported | — |
| Inference endpoint | SETTINGS-30 | ported | — |
| Inference endpoint reachability | METADATA-110, METADATA-75 | ported | fixed |
## ERROR CODES
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| green check / red error | SETTINGS-80 | ported | — |
| stateful/stateless/fail | SETTINGS-45 | ported | fixed |
## USER-FACING ERROR / EMPTY STATES
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| Mask failure "Cannot isolate the slab edge..." | CAPTURE-55 | ported | — |
| Axis misalignment "Rotate the axis..." | CAPTURE-60 | ported | — |
| Source too small "Photo will be too small..." | CAPTURE-105 | ported | — |
| SKU duplicate "This SKU already exists..." | PUBLISH-15 | ported | — |
| Stale taxonomy "This value is no longer valid..." | PUBLISH-20, REVIEW-35 | ported | — |
| Store unreachable "Cannot reach the store..." | PUBLISH-30, PUBLISH-36 | ported | — |
| Publish failed "The store rejected the listing..." | PUBLISH-30, PUBLISH-35 | ported | — |
| Publishing in progress | PUBLISH-5 | ported | — |
| Publish success | PUBLISH-25 | ported | — |
| Browser gate "update Safari or Chrome" | CAPTURE-10 | superseded | matrix includes PC |
| Species/Figure/Wood/Edge nudges | REVIEW-20, METADATA-10, METADATA-15 | ported | — |
| Generic inline nudge | REVIEW-20 | ported | — |
| First-run guidance text | — | ui | presentation |
| Vision-off empty taxonomy | METADATA-45, METADATA-70 | ported | — |
## INFERENCE
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| Call 1 flag default off | SETTINGS-90, METADATA-35 | ported | fixed |
| Call 2 flag default off | SETTINGS-90, METADATA-55 | ported | fixed |
| Generate Text triggers Call 2 | METADATA-55 | ported | — |
| Pre-populate threshold 0.7 | METADATA-45 | ported | — |
| Below-threshold leaves empty | METADATA-45 | ported | — |
| Below-threshold manual fill to ready | REVIEW-5, REVIEW-20 | ported | — |
| Two-turn probe stateful/stateless/fail | SETTINGS-45 | ported | fixed |
| AI badge on Call 1 fields | — | ui | presentation |
| Generate Text availability | METADATA-110 | ported | fixed |
| Call 2 prose only, templates numbers | METADATA-65, METADATA-70 | ported | — |
| Vision off state | METADATA-70 | ported | — |
## PUBLISH PAYLOAD / FLOW
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| Publish action, poll | PUBLISH-5 | ported | — |
| Draft creation | PUBLISH-10 | ported | — |
| SLAB-UAT-* always draft | PUBLISH-10 | ported | — |
| Publish Status default draft | SETTINGS-65 | ported | — |
| Duplicate SKU behavior | PUBLISH-15 | ported | — |
| Stale taxonomy behavior | PUBLISH-20 | ported | — |
| Success result, open in store | PUBLISH-25 | ported | link is presentation |
| Failure behavior, keep draft, retry | PUBLISH-30 | ported | — |
| Product ID stored, images purged | PUBLISH-25 | ported | — |
| Publish button gating | REVIEW-20 | ported | — |
| Submit-time validation after all fields | REVIEW-20 | superseded | per-field nudges, no submit list |
| Taxonomy freshness on test | SETTINGS-40 | ported | — |
## CONSTANTS / NUMBERS
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| SKU pattern `[A-Z0-9-]{3,24}` | REVIEW-45 | ported | case widened |
| Length / thickness 1/8 step | CAPTURE-70 | ported | — |
| Confidence threshold 0.7 | METADATA-45 | ported | — |
| Width sample every 6 inches | CAPTURE-80 | ported | — |
| Wireframe width 375px | — | ui | sketch detail |
| Sample values (sqft 0.64, bdft 0.96, widths, price, id) | — | ui | examples |
| Mandatory counts list | REVIEW-5 | ported | grade/fig superseded |
| Optional feat-* zero fine | METADATA-30 | ported | — |
| Photo thumbnail count 5 | CAPTURE-25 | superseded | no cap |
| SLAB-UAT-* pattern | PUBLISH-10 | ported | — |
## BROWSER / API SUPPORT
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| Gate on missing APIs | CAPTURE-10 | ported | — |
| Supported browsers | CAPTURE-10 | ported | matrix worded phone-only, superseded |
| Hard-stop screen | CAPTURE-10 | ported | — |
| Client-side mask re-run | CAPTURE-140, CAPTURE-150 | ported | — |
| Camera capture | CAPTURE-20, CAPTURE-25 | ported | — |
| localStorage | CAPTURE-145 | ported | — |