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/.
9.8 KiB
9.8 KiB
Migration TODOs — source docs
- Date: 2026-09-18
- Branch:
docs/clean-main - Purpose: edits deferred until Phase 2 step 3, when the capability and contract docs are
migrated into
docs/capabilities/anddocs/contracts/, made branch-neutral, and converted to cite requirement IDs. - Rule: these docs are not edited now.
REQUIREMENTS.mdis the only normative text and is already correct for everything below.
CAPTURE.md
- Line 16, "Length of the slab is aligned with the long side of the picture" — ruled dead. Remove.
- Lines 128–129, the
kind=inventoryrole label — discarded. The "first inventory photo is the measurement reference" half isCAPTURE-115; keep it as a citation, drop the label. - Line 140, editor/storefront alpha presentation — discarded.
- The sensitivity mapping (line 69) and display/source-pixels rule (lines 58–62) are now
CAPTURE-41andCAPTURE-141; cite them instead of restating. - Line 82 busy mark ("more than a fraction of a second"; as-built is 300 ms) — ruled a nit, not a requirement. Leave as design prose or drop.
CREATE.md
- Grade cardinality: change "1 or more" to 1 in all three places (attributes table, ready set, data shape). Ruling: Grade is exactly one.
fig-*cardinality: change "1 or more / required" to optional in the tags table and the ready set. Ruling: tags optional; the Figure attribute is at least one.- Ready-set images: change "at least one inventory PNG" to two (clean calibration plus its
dimension-overlay copy). Ruling:
REVIEW-5is the PoR. - Remove "cap at 5 images" from the create sequence.
- Remove "user typed widths/sqft/bdft wins"; the calculated fields are read-only.
- Fix the Call 2 line so the model writes the title/description and the deterministic template is the fallback, not the assembler.
CONTENT-WOO.md
- Em dash in the title template and example → hyphen.
- "Templates (always on)" and "templates inject those numbers after the prose comes back" → template is the fallback only; the model writes when Call 2 runs.
fig-*"1+ required" and the ready set includingfig-*tags → tags optional.- "≤5 inventory photos" → no cap; drop the "only
kind=inventory" clause. - The empty
attributeselement shape is the known deferred decision; keep the placeholder.
PHOTOS.md
No changes. Overlay legibility and arrow/text drawing detail were ruled design, not requirements.
TEST-SPEC.md (→ docs/contracts/TEST-SPEC.md)
- Migrate and cite requirement IDs; drop the pre-ID source-doc references.
- Purge superseded cases: UI-1, UIE-9, UIE-10 (four knobs); V-3, API-8 (validation module);
C2-2 (
previous_response_id/ thread); C1-1 (image source); C2-4 (prompt files); TV-6, TV-7, E2E-5 (80 percent / 1600 px); UIE-1, E2E-4 (computed override). - Add cases for the two new rows:
APP-60(keyboard, focus ring, 320 px reflow) andAPP-65(no secret material in logs).
IMPL-PLAN.md (retired)
- Retire
docs/IMPL-PLAN.md. Phases and Gates A/B/C are superseded byMILESTONES.mdplus the PoR; acceptance and test obligations are QUALITY rows. - Superseded: four knobs; "1–5 photos"; 80 percent / 1600 px; calculated-field override; portable context and the stateful probe; prompt files.
ARCHITECTURE.md
- §1, §2, §4 "four knobs" including Edge offset and Feather — controls are exactly Sheet and
Sensitivity (
CAPTURE-40). - §2 "1–5 photos" — one or more (
CAPTURE-25). - §6.3 ready set requires 1+
fig-*tag and 1+ grade — tags are optional and grade is exactly one (METADATA-30,METADATA-15). - §8/§9 shared validation module,
validation_hash, 412, stateful/stateless mode, and per-slab thread — ruled cut 2026-09-18; thread work is out of the MVP and test-inference no longer returns mode. - Retire
docs/ARCHITECTURE.md: its testable rules are APP/CAPTURE/SETTINGS rows, and the topology is covered by those plusdeploy/. - §3.4 Call 1 image input "all originals downscaled to 1024" → clean processed photos
(
METADATA-35).
UX.md (→ docs/contracts/UX.md) and UX-DESIGN.md (retired)
- Migrate
docs/UX.mdtodocs/contracts/UX.md: branch-neutral, cite requirement IDs, do not restate rules. - Retire
docs/UX-DESIGN.md(non-normative). Fold the "AI" badge, first-run card, separate Title/Description screen, and error-state copy into the UX contract. - Superseded in UX.md: four knobs → two; "1 to 5 photos" → no cap; "no calibration photos" → the
calibration photo exists; 80 percent / 1600 px → 90 percent / 800 px; calculated-field override
path → read-only; grade 1+ → exactly one;
fig-*1+ → optional; "templates always run" → template fallback; "title/short/description not required to reach ready" → required (REVIEW-10);short_title→short_description.
TECH-SPEC-PIPELINE.md (retired)
- Retire
docs/TECH-SPEC-PIPELINE.md. Its deterministic rules are CAPTURE; its ten vectors are QUALITY. Fold any wanted algorithm detail into the CAPTURE capability doc. - Superseded: 80 percent fill and the 1600 px floor → 90 percent and 800 px; four knobs → two; the auto-dimension overlay is no longer v1.5 (it shipped).
PROMPTS.md (→ docs/contracts/PROMPTS.md)
- Prompts move from server text files to the database with all revisions (
METADATA-105): drop the read-only mount, host-editing, and reset-to-default script. - Remove
previous_response_id, the portable-context machinery, and the shared-validation rules from the Call 2 inputs. - "1–5 inventory photos" → no cap (
CAPTURE-25). - Example title uses an em dash and a multiplication sign → hyphen separator; snap
short_titletoshort_description.
DEPLOYMENT.md (retired)
- Retire
docs/DEPLOYMENT.md. Its testable rules are OPS/SETTINGS; its operational facts live indeploy/(INVENTORY.md,docker-compose.yml,Caddyfile.fragment,RELEASE-PROCESS.md). - Fold any still-useful prose into
deploy/(the deploy README is the natural home). - Repoint the UAT-PRACTICE references from
docs/DEPLOYMENT.md§1/§3/§5/§8 todeploy/. - Superseded:
output_px_min 1600→ 800 px floor (CAPTURE-105); "prompt files live in git and need no backup" → prompts live in the DB with all revisions (GAP-8).
DATA-MODEL.md (→ docs/contracts/DATA-MODEL.md)
- Grade "1+" → exactly one;
fig_tag_ids"1+" → optional. output_px_min 1600andfill_target 0.80→ 800 px floor and 90 percent fill.- "Only inventory photos. Calibration photos do not exist." → the calibration photo exists; other
batch photos are visual inventory only (
CAPTURE-115). - "No hard deletes for slabs (audit)" → the local slab row is deleted on successful create
(
PUBLISH-25). - Remove
inference_thread_id; thread work is out of the MVP. - Prompt files: replace the bind-mounted text files with prompts stored in the DB, all revisions (PoR row pending the PROMPTS walk).
short_title→short_description(Woo canonical).
OPENAPI.md (→ docs/contracts/API.md)
- Field name
short_title→short_description(Woo canonical). Applies to the schema, read model, Call 2 result, and examples. fill_target 0.80andoutput_px_min 1600→ 90 percent fill and an 800 px floor (CAPTURE-100,CAPTURE-105).- Remove the validation module endpoint,
validation_hash, and the 412 path (ruled cut). - Remove
previous_response_id, the per-slab thread, andmodefrom test-inference; Call 2 is a fresh full-context call. - Grade cardinality "1+" → exactly one;
fig-*"1+" → optional. - The taxonomy-sync example key
synced_atshould betaxonomy_last_sync_at. - Call 1 image input for infer-taxon: original photos → clean processed photos (
METADATA-35).
PRODUCT.md
- Line 19, "One or more
fig-*tags" — tags are optional perMETADATA-30. Change to optional. - Line 23, "Measured values feed title and description templates" — template is the fallback;
the model writes when Call 2 runs. Cite
METADATA-60,METADATA-70,METADATA-80. Same conflict in the decision-rights table, line 37 ("Templates from listing facts"). - Line 20, "short title" — stale wording; the field is
short_description(REVIEW-10). - Branch-neutral: line 1 "Milestone status on
m3-ds", and line 66 "behavior ... taken frommain". Remove branch names. - Line 25, umbrella term "Woo attributes" → "Woo Slab Taxonomy" (see cross-cutting rename).
README.md
- Branch-neutral: line 1 title "Docs map (branch
m3-ds)" and line 44 "copied intodocs/CREATE.mdfrommain". Remove branch names. - Line 39, umbrella "Woo attributes" → "Woo Slab Taxonomy" (see cross-cutting rename).
UAT-PRACTICE.md
- Line 100, "four knobs: Sheet, Sensitivity, Edge offset, Feather" — controls are exactly Sheet
and Sensitivity; Edge offset and Feather are removed (
CAPTURE-40). - Line 97, "1 to 5 photos" — no cap;
CAPTURE-25is one or more. - Line 122, "at least one figure, at least one grade" — grade is exactly one (
METADATA-15). - Line 126, "
fig-*tags. Pick at least one." — tags are optional (METADATA-30). - Branch-neutral: line 14 "On branch
m3-ds". Stale refs todocs/DEPLOYMENT.md,docs/UX.md,docs/TECH-SPEC-PIPELINE.md,docs/IMPL-PLAN.mdin the "where each rule lives" table.
Cross-cutting: "Woo Slab Taxonomy" rename
Ruling 2026-09-18: the umbrella package term is Woo Slab Taxonomy; canonical Woo attributes (the five) keep the name.
- Rename umbrella occurrences:
AGENTS.md:48,PRODUCT.md:25,CREATE.md:7,CREATE.md:34,CREATE.md:50(heading),CREATE.md:261,CREATE.md:397,README.md:39. - Keep "Woo attributes" where it means the canonical five:
CREATE.md:61,CONTENT-WOO.md:121. - Give the term one glossary home in the step-3 contract docs; make PRODUCT/AGENTS reference it instead of redefining.