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

84 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.