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/.
8.5 KiB
8.5 KiB
Coverage matrix — ARCHITECTURE.md
Source: docs/ARCHITECTURE.md at tag pre-simplification.
Method: subagent extracted every surface entry; PoR home assigned here.
Dispositions: ported, superseded, dropped, ui, missing.
SETTINGS KEYS
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| inference_enabled | SETTINGS-30, SETTINGS-90 | ported | default off added |
| Species $/bdft | SETTINGS-35 | ported | — |
| prompts (as settings) | METADATA-105 | superseded | prompts live in the DB, not settings |
| Inference endpoint base URL | SETTINGS-30 | ported | — |
| Inference API key | SETTINGS-30 | ported | — |
| Woo credentials | SETTINGS-15, SETTINGS-20 | ported | — |
| publish status | SETTINGS-65 | ported | — |
| Store URL env, read-only | SETTINGS-5 | ported | — |
| SLAB_AES_KEY | SETTINGS-25 | ported | — |
| WOO_BASE_URL | SETTINGS-5, SETTINGS-10 | ported | — |
| sheet mode | CAPTURE-40, CAPTURE-145 | ported | — |
| sensitivity | CAPTURE-41, CAPTURE-145 | ported | — |
| edge offset | CAPTURE-40 | superseded | removed control |
| feather | CAPTURE-40 | superseded | removed control |
| reset-to-default | CAPTURE-145 | ported | — |
| Species list with $/bdft | SETTINGS-35 | ported | — |
| Taxonomy snapshot | SETTINGS-50 | ported | — |
CONTROLS
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| New Wood 1–5 photos | CAPTURE-25 | superseded | no cap |
| Four mask knobs | CAPTURE-40 | superseded | two knobs |
| Mask edge OK | CAPTURE-50 | ported | — |
| Retune knobs / Retake | CAPTURE-50, CAPTURE-155 | ported | — |
| Length axis rotate/confirm | CAPTURE-60, CAPTURE-65 | ported | — |
| User length/thickness/SKU | CAPTURE-70 | ported | — |
| Call 1 pre-fill / manual taxonomy | METADATA-45, METADATA-50 | ported | — |
| Generate text button | METADATA-55, METADATA-110 | ported | availability added |
| Publish | PUBLISH-5 | ported | — |
| Settings "Refresh taxonomy" control | SETTINGS-60 | ui | optional; not required for POC |
| Inline nudges | REVIEW-20 | ported | — |
LISTING FIELDS
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| Photos 1–5 | CAPTURE-25 | superseded | no cap |
| SKU | REVIEW-45 | ported | — |
| length / thickness | CAPTURE-70 | ported | — |
| sqft / bdft / 6in widths | CAPTURE-80, CAPTURE-85, CAPTURE-90 | ported | — |
| 3:4 PNG | CAPTURE-95, CAPTURE-100 | ported | — |
| title / short_title / description | REVIEW-10 | ported | short_title naming migrated |
| species | METADATA-10 | ported | — |
| wood categories | METADATA-10 | ported | — |
| edge / figure | METADATA-15 | ported | — |
| grade | METADATA-15 | ported | cardinality superseded |
| feat-* | METADATA-30 | ported | — |
| fig-* | METADATA-30 | ported | cardinality superseded |
| price | REVIEW-25 | ported | — |
| moisture | METADATA-15 | ported | — |
| originals | PUBLISH-25, PUBLISH-40 | ported | purge after publish |
| woo_product_id | PUBLISH-25 | ported | — |
STATUSES
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| draft | APP-5 | ported | — |
| calibrated | APP-5 | ported | — |
| ready | APP-5, REVIEW-5 | ported | fig/grade cardinality superseded |
| publishing | APP-5 | ported | — |
| published | APP-5, PUBLISH-25 | ported | — |
| failed | APP-5, PUBLISH-30 | ported | — |
| transitions draft→...→published/failed | APP-5 | ported | — |
ENDPOINTS
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| /wp-json/wc/v3/ | SETTINGS-15 | ported | — |
| /api/v1/settings | SETTINGS-20, SETTINGS-30 | ported | — |
| /api/v1/admin/taxonomy | SETTINGS-50 | ported | — |
| POST /api/v1/settings/test-woo | SETTINGS-40, SETTINGS-80 | ported | — |
| GET /api/v1/validation/module | — | dropped | validation module ruled cut |
| POST /api/v1/settings/test-inference | SETTINGS-45 | ported | — |
ERROR CODES
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| 409 duplicate SKU only | PUBLISH-15 | ported | — |
| 422 stale value | PUBLISH-20 | ported | — |
| 412 validation hash | — | dropped | validation module ruled cut |
| "Never show 412" | PUBLISH-35 | dropped | moot after cut |
USER-FACING ERROR / EMPTY STATES
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| Call 1 runtime failure → retry or message | METADATA-115 | ported | recoverable retries, unrecoverable explains |
| Below 0.7 fields stay empty | METADATA-45 | ported | — |
| Duplicate SKU field error | PUBLISH-15 | ported | — |
| Stale value field error | PUBLISH-20 | ported | — |
| Review gate empty subset | REVIEW-5, REVIEW-20 | ported | — |
| Inline nudges, not submit-only | REVIEW-20 | ported | — |
| UI "Updating rules" | — | dropped | validation module cut |
| failed error detail stored, retry | PUBLISH-30 | ported | — |
INFERENCE
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| Call 1 auto-run only if inference_enabled | METADATA-35, SETTINGS-90 | ported | — |
| Call 1 skipped when disabled | METADATA-70 | ported | — |
| Call 1 input: all originals downscaled to 1024 | METADATA-35 | superseded | PoR sends the clean processed photos |
| Call 1 input: synced taxonomy only | METADATA-35, METADATA-40 | ported | — |
| Call 1 input: SKU/length/thickness | METADATA-35 | ported | — |
| Call 1 timeout 45s | METADATA-115 | ported | runtime failure triage |
| Threshold ≥0.7 pre-populate | METADATA-45 | ported | — |
| Below 0.7 empty | METADATA-45 | ported | — |
| Manual entry authoritative | METADATA-50 | ported | — |
| Call 2 no auto-fire | METADATA-55 | ported | — |
| Call 2 portable context / full resend | — | superseded | thread work out of MVP |
| previous_response_id | — | superseded | thread work out of MVP |
| Call 2 confirmed vs inferred | METADATA-60 | ported | — |
| per-slab thread, delete on submit/abandon | — | superseded | thread work out of MVP |
| test-inference mode stateful/stateless/fail | SETTINGS-45 | ported | — |
| fail blocks Call 2 only | SETTINGS-45 | ported | — |
| Call 1/2 assist-only, do not gate publish | METADATA-75 | ported | — |
| low-confidence does not auto-fill | METADATA-45 | ported | — |
PUBLISH PAYLOAD
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| Draft upload contents | CAPTURE-135 | ported | — |
| Originals needed for retry | PUBLISH-40 | ported | — |
| Post-publish deletion | PUBLISH-25 | ported | — |
| Duplicate SKU handling | PUBLISH-15 | ported | — |
| Stale value handling | PUBLISH-20 | ported | — |
| Product status per setting | SETTINGS-65, PUBLISH-10 | ported | — |
| Title/desc typed, generated, or templated | REVIEW-10, METADATA-70 | ported | templates are fallback |
| Publish poll | PUBLISH-5 | ported | — |
| woo_product_id stored | PUBLISH-25 | ported | — |
| Images purged | PUBLISH-25 | ported | — |
| Publish resync > 1 hour | SETTINGS-60 | ported | — |
| Submit carries validation_hash / 412 retry | — | dropped | validation module cut |
| Woo-shaped 422 store rejection | APP-50, PUBLISH-20 | ported | — |
| Taxonomy: categories/attributes/fig-* synced | SETTINGS-50, SETTINGS-51 | ported | scope narrowed to fig/feat |
CONSTANTS / NUMBERS
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| 1–5 photos | CAPTURE-25 | superseded | no cap |
| downscale 1024 | METADATA-35 | ported | source conflict noted |
| Call 1 timeout 45s | METADATA-115 | ported | runtime failure triage |
| confidence 0.7 | METADATA-45 | ported | — |
| 3:4 | CAPTURE-100 | ported | — |
| 80% fill | CAPTURE-100 | superseded | 90 percent |
| 6in widths | CAPTURE-80 | ported | — |
| SKU charset 3..24 | REVIEW-45 | ported | case widened |
| taxonomy staleness 1 hour | SETTINGS-60 | ported | — |
| ready cardinalities (PNG/species/wood/edge/figure/fig/grade/moisture/feat) | REVIEW-5 | ported | fig/grade superseded |
| five attributes | METADATA-15 | ported | — |
BROWSER / API SUPPORT
| Entry | PoR | Disposition | Note |
|---|---|---|---|
| Browser does not call Woo or vision | APP-25 | ported | — |
| no CORS to store | APP-25 | ported | — |
| localStorage persistence | CAPTURE-145 | ported | — |
| client BG removal APIs | CAPTURE-140, CAPTURE-35 | ported | — |
| camera | CAPTURE-25, CAPTURE-20 | ported | — |
| no U2Net control (POC) | CAPTURE-165 | ported | — |
| U2Net deferred, not deleted | CAPTURE-165 | ported | — |
| title/desc Woo maxLength | REVIEW-50 | ported | Woo v3 documents no max; caps in docs/contracts/WOO-API.md §11 |
Findings
None open. Runtime inference failure is METADATA-115; the Call 1 image source is
METADATA-35; title/description length caps are inherent Woo limits.