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

5.7 KiB
Raw Blame History

Coverage matrix — PRD-2026-08.txt

Source: docs/archive/PRD-2026-08.txt (frozen history). Method: every labeled atom dispositioned.

Findings

None new. The two potential holes from this doc are already covered: inference timeout/error → METADATA-115, and no app-level auth → OPS-55. The archive's own banner already flags FR17, FR19, FR40, FR42, and the NFR server timing as non-authoritative.

Archive banner

  • Flags FR17, FR19, FR40, FR42, NFR server timing, and "Known stale" → each of those lines is superseded by a current row (below).

Decisions log (2026-08-31)

  • Doc contradiction freeze → dropped (process).
  • bdft identity, secrets AES-GCM, online-only, woo_create_status default draft, SLAB-UAT-* force draft, hybrid happy path, inference off first → ported CAPTURE-90, SETTINGS-20/25, CAPTURE-15, SETTINGS-65, PUBLISH-10, CAPTURE-5, QUALITY-20.
  • Review package not in repo → dropped.

Decisions log (2026-08-27)

# Atom Disposition PoR
1 no calibration photos superseded CAPTURE-25, CAPTURE-30
1 manual SKU/length/thickness ported CAPTURE-70
2 first photo is the measurement photo, top-down ported CAPTURE-30, CAPTURE-20
3 all photos 80% crop superseded CAPTURE-100
4 transparent PNG min 1600, 3:4 superseded CAPTURE-95, CAPTURE-105
5 green/black auto-detect from borders ported CAPTURE-35
6 species 1 leaf, wood 1+ leaf ported METADATA-10
7 edge 1, figure 1+, thickness round-up ported METADATA-15
7 grade 1+ superseded METADATA-15
8 tags fig/feat 1+ superseded METADATA-30
9 two-call inference ported METADATA-35, METADATA-55
10 Call 1 auto only if enabled; review before Call 2 ported METADATA-35, METADATA-55
11 timeout/non-200 error + retry ported METADATA-115
12 create status default draft; SLAB-UAT force draft ported SETTINGS-65, PUBLISH-10
13 prompts as server text files superseded METADATA-105
14 brand voice + GEO into Call 2 ported METADATA-60, SETTINGS-30
15 Woo creds server-side AES-GCM ported SETTINGS-15, SETTINGS-20
16 inference endpoint configurable ported SETTINGS-30
17 test connection text + vision ported SETTINGS-45, SETTINGS-80
18 offline not required ported CAPTURE-15

Open items: none → dropped.

Functional requirements

  • FR1 (1–5 photos) superseded → CAPTURE-25; first top-down ported → CAPTURE-20
  • FR2 manual SKU/length/thickness → CAPTURE-70
  • FR3 border BG detect → CAPTURE-35
  • FR4 scale/sqft/bdft, old divide-by-12 wrong → CAPTURE-75, CAPTURE-85, CAPTURE-90
  • FR5 80% crop / 1600 / 3:4 → superseded CAPTURE-100, CAPTURE-105
  • FR6 retake/abort → CAPTURE-155
  • FR7 deterministic compute → CAPTURE-85, CAPTURE-90
  • FR8 thickness manual authoritative → CAPTURE-70, METADATA-50
  • FR9 deterministic unit-tested → QUALITY-5, QUALITY-15
  • FR10 sync categories/attributes/tags → SETTINGS-50
  • FR11 species 1 leaf → METADATA-10
  • FR12 wood 1+ leaf → METADATA-10
  • FR13 edge 1 → METADATA-15
  • FR14 figure 1+ → METADATA-15
  • FR15 grade 1+ → superseded METADATA-15
  • FR16 thickness round-up → METADATA-15
  • FR17 fig-* 1+ → superseded METADATA-30
  • FR18 auto-assign + manual override → METADATA-40, METADATA-45, METADATA-50
  • FR19 category-weighted pricing → superseded SETTINGS-35
  • FR20 bdft pricing → REVIEW-25
  • FR21 price editable, stored authoritative → REVIEW-25
  • FR22 Call 1 vision with confidences → METADATA-35, METADATA-40
  • FR22a threshold 0.7 → METADATA-45
  • FR22b species bias full list → METADATA-40
  • FR22c free-text → feat-* → METADATA-100
  • FR23 Call 2 user-triggered; prose only; server assembles templates → METADATA-55, METADATA-65; server-assembles superseded → METADATA-70, METADATA-80
  • FR24 prompts text files + reset script → superseded METADATA-105
  • FR25 progress indicator → dropped (presentation)
  • FR26 timeout/non-200 error + retry → METADATA-115
  • FR27 results editable, no auto publish → METADATA-50, METADATA-75
  • FR28 endpoint configurable + test text/vision → SETTINGS-30, SETTINGS-45, SETTINGS-80
  • FR29 chroma-key, U2Net fallback → CAPTURE-35, CAPTURE-165
  • FR30 80% / 3:4 / 1600 → superseded CAPTURE-100, CAPTURE-105
  • FR31 transparent PNG → CAPTURE-95
  • FR32 original + processed, purge after publish → PUBLISH-25, PUBLISH-40
  • FR33 consumer keys + app password → superseded SETTINGS-15
  • FR34 publish blocked on existing SKU → PUBLISH-15
  • FR35 create product fields → PUBLISH-55
  • FR36 default draft; SLAB-UAT draft → SETTINGS-65, PUBLISH-10
  • FR37 log sync, surface errors, store product id → PUBLISH-25, PUBLISH-30
  • FR38 draft slab state → APP-10
  • FR39 single review screen, all editable → REVIEW-40
  • FR40 server-side processing → superseded CAPTURE-135, APP-40
  • FR41 settings UI → SETTINGS-15, SETTINGS-20, SETTINGS-30, SETTINGS-35
  • FR42 compose on .201 Caddy → superseded OPS-5, OPS-15, OPS-40
  • FR43 secrets encrypted, HTTPS → SETTINGS-20, SETTINGS-25, OPS-5

Non-functional requirements

  • performance budgets (1–2s, 3–5s, 45s) → dropped (server timing non-authoritative)
  • reliability: unit-tested → QUALITY-5, QUALITY-15
  • security: encrypted/HTTPS → SETTINGS-20, SETTINGS-25, OPS-5
  • maintainability separation → dropped
  • usability one-hand → dropped

Acceptance criteria

  • E2E capture→publish on iPhone/Android → QUALITY-115
  • area accuracy +/- 0.25 in² → dropped (sqin banned)
  • normalization 80% / PNG / 1600 → superseded CAPTURE-100, CAPTURE-105
  • Woo product images/taxonomy/content → PUBLISH-40, PUBLISH-45, PUBLISH-55
  • deterministic unit tests + inference logged → QUALITY-5, METADATA-66