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/.
This commit is contained in:
2026-09-18 21:02:06 -07:00
parent a8cc2f7596
commit 01aa4c52c3
53 changed files with 3186 additions and 817 deletions
+109
View File
@@ -0,0 +1,109 @@
# Coverage matrix — TEST-SPEC.md
Source: `docs/TEST-SPEC.md` at tag `pre-simplification` (107 cases). Reconciled last, against the
finished PoR.
## Findings
Two behaviors were tested but not required; both are now PoR rows:
- FUND-3, FUND-5, FUND-6, FUND-7 (keyboard tab order, visible focus ring, 320 px reflow) → `APP-60`
- FUND-24 (no secret material in logs) → `APP-65`
## Superseded cases to purge on migration
- UI-1, UIE-9, UIE-10 — four knobs (edge offset, feather) → two controls
- V-3, API-8 — shared validation module, version hash, 412
- C2-2 — `previous_response_id` / per-slab thread
- C1-1 — "inventory photos at 1024" → clean processed photos
- C2-4 — prompt file edits without restart → prompts live in the DB
- TV-6, TV-7, E2E-5 — 80 percent fill / 1600 px → 90 percent / 800 px
- UIE-1, E2E-4 — manual override of computed fields → read-only
## Case map
FUND
- FUND-1..4, 8..11 — test conventions → dropped (test practice, not requirements)
- FUND-3, 5, 6, 7 — accessibility → APP-60
- FUND-12, 13, 16 — SQLite constraints/migrations → dropped (engineering practice)
- FUND-14 — WAL stale reads → dropped (engineering practice)
- FUND-15 — illegal status transitions rejected → APP-5
- FUND-17 — fresh nonce, tamper fails → SETTINGS-25
- FUND-18 — ciphertext absent from GET → SETTINGS-75
- FUND-19 — missing key refuses startup → SETTINGS-25
- FUND-20 — Basic auth app passwords, HTTPS → SETTINGS-15
- FUND-21 — 401/400/404 mapped → APP-50
- FUND-22 — pre-create SKU lookup, race → PUBLISH-15
- FUND-23 — timeouts/network errors graceful, no stack → PUBLISH-30, PUBLISH-35
- FUND-24 — secrets redacted in logs → APP-65
- FUND-25 — HTTPS, health via proxy, port collision → OPS-5, OPS-15, OPS-20
TV
- TV-1..TV-10 → QUALITY-55..QUALITY-100 (TV-6/TV-7 numeric values superseded)
Validation
- V-1 — SKU charset → REVIEW-45
- V-2 — title/description limits → REVIEW-50
- V-3 — module hash / 412 → dropped
AES / health / draft
- AES-1 → QUALITY-125, SETTINGS-75
- AES-2 → SETTINGS-25
- H-1 → APP-45
- D-1 → API contract, APP-5
Gate C / Woo
- GC-1 → PUBLISH-10; GC-2 → PUBLISH-15; GC-3 → SETTINGS-40; GC-4 → SETTINGS-85; GC-5 → SETTINGS-10
- W-1 → PUBLISH-25; W-2 → PUBLISH-15; W-3 → SETTINGS-55; W-4 → SETTINGS-40; W-5 → PUBLISH-30
Inference
- INF-1 → METADATA-75, QUALITY-20
- INF-2, INF-3 → SETTINGS-45 (mode is kept)
- INF-4 → SETTINGS-45
UI (capture)
- UI-1 → superseded CAPTURE-40
- UI-2 → CAPTURE-50, CAPTURE-55, CAPTURE-165
- UI-3 → CAPTURE-60, CAPTURE-65
- UI-4 → CAPTURE-70, CAPTURE-80, CAPTURE-85, CAPTURE-90
- UI-5 → REVIEW-5, REVIEW-20
Ops
- OPS-1 → APP-45; OPS-2 → OPS-15; OPS-3 → SETTINGS-40, SETTINGS-65, APP-45; OPS-4 → OPS-30;
OPS-5 → OPS-35
API
- API-1 → APP-20; API-2 → APP-40; API-3 → SETTINGS-75; API-4 → METADATA-35, METADATA-115;
API-5 → METADATA-45; API-6 → REVIEW-5; API-7 → SETTINGS-50, SETTINGS-55; API-8 → dropped;
API-9 → API contract; API-10 → SETTINGS-80
- TAX-1 → SETTINGS-60; TAX-2 → METADATA-5; TAX-3 → SETTINGS-60
UI end-to-end
- UIE-1 → superseded REVIEW-30, REVIEW-40
- UIE-2 → METADATA-45, REVIEW-20
- UIE-3 → PUBLISH-15; UIE-4 → PUBLISH-20; UIE-5 → PUBLISH-25; UIE-6 → PUBLISH-30
- UIE-7 → METADATA-70, METADATA-110
- UIE-8 → SETTINGS-5, SETTINGS-15, SETTINGS-20, SETTINGS-30, SETTINGS-35, SETTINGS-65
- UIE-9, UIE-10 → superseded CAPTURE-40, CAPTURE-45, CAPTURE-145
Calls
- C1-1 → superseded METADATA-35 (clean processed photos)
- C1-2, C1-3 → METADATA-45, REVIEW-5
- C2-1 → METADATA-55, METADATA-60
- C2-2 → superseded (thread work out)
- C2-3 → METADATA-65
- C2-4 → METADATA-66, METADATA-105
- OFF-1 → QUALITY-20; OFF-2 → SETTINGS-45
Instrumentation
- INS-1 → APP-45; INS-2 → APP-55; INS-3 → METADATA-66; INS-4 → PUBLISH-30
E2E
- E2E-1..3 → QUALITY-115
- E2E-4 → superseded REVIEW-30, REVIEW-40
- E2E-5 → superseded CAPTURE-100, CAPTURE-105
## Test harness (contract detail)
Harness layout, allowed result values, evidence rules, and the Gitea-issue bug log are engineering
practice. They belong in `docs/contracts/TEST-SPEC.md`, not the PoR.