01aa4c52c3
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/.
218 lines
10 KiB
Markdown
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 | — |
|