Files
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

4.1 KiB
Raw Permalink Blame History

Coverage matrix — CONTENT-WOO, CAPTURE, PHOTOS (current branch)

Sources: docs/CONTENT-WOO.md, docs/CAPTURE.md, docs/PHOTOS.md (current working tree).

Findings

None new. Two notes: the copy-template storage location ("templates live in Settings") is contract detail for docs/contracts/CONTENT-WOO.md, and the case-insensitive name-matching rule is legacy — the review flow selects from pickers, so it is superseded by METADATA-5.

CONTENT-WOO.md

Superseded: short_title → REVIEW-10; fig-* 1+ required → METADATA-30; "≤5 inventory photos" → PUBLISH-40; "Only kind=inventory photos / calibration photos do not exist" → calibration exists (CAPTURE-25, CAPTURE-30); "check against the shared rules (current copy)" → validation module cut (REVIEW-5); case-insensitive name matching → METADATA-5.

Ported:

  • content_llm_enabled, content_source → SETTINGS-30, METADATA-66
  • geo_sentence from Settings, default none → SETTINGS-30
  • woo_create_status default draft → SETTINGS-65
  • WOO_BASE_URL env HTTPS; SLAB_AES_KEY → SETTINGS-5, SETTINGS-10, SETTINGS-25
  • templates title/short/description and {character} → contract detail docs/contracts/CONTENT-WOO.md
  • categories species 1 + wood 1+, tags fig/feat, five attributes → METADATA-10, METADATA-15, METADATA-30
  • ready set → REVIEW-5 (fig/grade cardinality superseded)
  • payload fields → docs/contracts/WOO-API.md, PUBLISH-55
  • type simple, virtual false, downloadable false, catalog_visibility visible → PUBLISH-55
  • image bytes keep alpha, POST /media → PUBLISH-40, WOO-API §5
  • SLAB-UAT-* force draft → PUBLISH-10
  • status draft/publish, published meaning → SETTINGS-65, PUBLISH-50
  • create sequence steps 1–7 → PUBLISH-5
  • dedupe every time → PUBLISH-15
  • post-create delete originals + processed → PUBLISH-25
  • failure: field message, mark failed, keep photos → PUBLISH-30, PUBLISH-35
  • partial-failure orphaned media manual cleanup → PUBLISH-31
  • taxonomy sync order, per_page=100, 1-hour reconcile, anchor → SETTINGS-50, SETTINGS-55, SETTINGS-60
  • vision 0.7 fills; vision off typed; typed wins → METADATA-45, METADATA-50, METADATA-70
  • model writes prose only, synced choices only, no invented dimensions → METADATA-40, METADATA-65
  • httpx timeouts 10s/60s → contract detail
  • wire {field, code, message, actions[]}, codes never shown → PUBLISH-35, API contract

CAPTURE.md

Ported:

  • Sheet control, Sensitivity 0–100 → CAPTURE-40, CAPTURE-41
  • immediate value update, 2.0 s recompute, last good overlay → CAPTURE-45
  • approve blocked with no slab pixels → CAPTURE-50
  • length axis rotate/approve → CAPTURE-60
  • length/thickness 1/8, Calculate → CAPTURE-70
  • scale longest_axis_px / L → CAPTURE-75
  • widths every 6 in, drop first/last 6, L ≤ 12 all zero → CAPTURE-80
  • sqft = mask_pixels / scale² / 144, 2 dp → CAPTURE-85
  • bdft = sqft × thickness_in, 2 dp → CAPTURE-90
  • 3:4, 90% fill, shorter side ≥ 800, no upscale → CAPTURE-100, CAPTURE-105
  • PNG 8-bit RGBA, alpha kept → CAPTURE-95
  • browsers and hard stop → CAPTURE-10
  • client APIs and no OpenCV/ONNX/U2Net → CAPTURE-140
  • preview display-only, source pixels → CAPTURE-141
  • device draft, Resume/Continue/Start fresh → APP-10
  • 1/8 steps → CAPTURE-70; sensitivity maps green/black → CAPTURE-41

Dropped: busy-mark "fraction of a second" (nit, migration TODO); "other backgrounds out of M1" (scope); M1 single reference photo superseded by batch (CAPTURE-25).

PHOTOS.md

Ported:

  • batch one or more, continue at least one → CAPTURE-25
  • pick calibration photo → CAPTURE-25
  • M1 states on the calibration photo only → CAPTURE-30
  • Photos ready lineup order → CAPTURE-130
  • per-photo empty mask / size floor excluded, rest proceed → CAPTURE-110
  • single-photo batch works → CAPTURE-25
  • crop rules reuse (3:4, 90%, PNG, floor) → CAPTURE-100, CAPTURE-105
  • overlay black; stations every 12 in from 6 in, while ≤ L−6; EXIF bottom → CAPTURE-120, CAPTURE-125
  • 1–N photos → CAPTURE-25
  • no inference / Woo create on this path → APP-25

No findings.