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/.
186 lines
8.5 KiB
Markdown
186 lines
8.5 KiB
Markdown
# 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.
|