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/.
3.1 KiB
3.1 KiB
Coverage gaps — serial worklist
- Date: 2026-09-18
- Branch:
docs/clean-main - Status: open worklist. Companion to
.audit/coverage/andtools/check_coverage.py. - Rule: work one entry at a time, top to bottom. Each decision is a ruling; record it, then
update the matching
gaprows in the ledger to their resolution and re-run the gate.
The pilot slice (settings / auth / health) produced 12 gap atoms that collapse into the
seven distinct holes below. Each is a requirement the source material carries and
docs/REQUIREMENTS.md does not.
GAP-1 — test-woo failure semantics
- Atoms:
tag:TEST-SPEC API-10,tag:OPENAPI test-woo-shape,prd decision-17,tag:TEST-SPEC GC-3(partial). - Hole: the PoR says
test-wooverifies the connection and resyncs (SETTINGS-40), but nothing defines its result shape (ok,detail), that it fails closed on missing credentials or non-HTTPS, or how an auth rejection differs from an unreachable store. - Proposed home:
SETTINGS. - Status: open.
GAP-2 — health endpoint semantics
- Atoms:
tag:TEST-SPEC H-1,tag:TEST-SPEC INS-1,tag:OPENAPI health,issue:#6. - Hole:
APP-30names/api/health; nothing defines the body (status,version,woo_reachable) or that health goes non-200 on DB/volume failure. - Proposed home:
APP. - Status: open.
GAP-3 — PUT /settings rejects a WOO_BASE_URL write
- Atoms:
tag:TEST-SPEC GC-4,tag:OPENAPI settings-PUT-reject. - Hole:
SETTINGS-5makes the URL env-only and read-only, but nothing requires the settings API to refuse an attempt to write it. - Proposed home:
SETTINGS. - Status: open.
GAP-4 — AES credential round-trip
- Atom:
tag:TEST-SPEC AES-1(round-trip half). - Hole:
SETTINGS-75covers redaction; nothing asserts that an encrypted credential decrypts back to its value. - Proposed home:
QUALITY(test obligation) overSETTINGS-20/30. - Status: open.
GAP-5 — upstream HTTP errors mapped to the envelope
- Atom:
tag:TEST-SPEC FUND-21. - Hole: publish field errors are mapped; there is no general rule that a 401/400/404 from Woo is turned into the uniform envelope rather than passed through.
- Proposed home:
APP(alongsideAPP-35). - Status: open.
GAP-6 — no app-level auth
- Atom:
prd no-app-auth. - Hole: no row states that the app has no login of its own and relies on network plus HTTPS.
- Proposed home:
OPS. - Status: open.
GAP-7 — httpx timeout values
- Atom:
cur:CONTENT-WOO httpx-timeouts. - Hole: connect 10s / read 60s exist only in the contract draft.
- Proposed home: contract detail, not a requirement: record in
docs/contracts/in step 3 and mark the ledger atomdroppedwith rationale. - Status: open.
GAP-8 — prompt storage
- Atom:
tag:DATA-MODEL prompt-files(PROMPTS source still to walk). - Hole: the source docs put prompts in
backend/app/prompts/, bind-mounted read-only, read fresh per call. Ruling 2026-09-18: prompts live in the DB with all revisions. No PoR row yet. - Proposed home:
METADATA(prompt management) orSETTINGS; resolve during the PROMPTS walk. - Status: resolved 2026-09-18 —
METADATA-105(prompts stored in the DB with all revisions).