docs(m4): record #99 as-built and sweep stale draggable-tick refs (#99)

This commit is contained in:
Ty
2026-09-25 09:17:23 -07:00
parent a756cf58bb
commit 8673ae0ecd
3 changed files with 79 additions and 28 deletions
+16 -10
View File
@@ -20,13 +20,18 @@ Raw runner evidence recorded; Ty owns gate exit (QUALITY-25/30).
## Goals (accepted direction)
1. **Stabilize + polish the M3 experience (A) — includes the #99 tape-line calibration (B).**
- **Tape-line calibration (#99):** replace the axis-rectangle calibration with a draggable
tape-line (black line + two rifle-scope end ticks). Declared length = distance between
ticks (owner-declared); scale = tick-pixel distance / declared length, no
`maskSpanAlong` check. New
requirement row(s); supersedes the projected-span length model in CAPTURE-60/75. The `m4`
branch already carries `crop_fill` + `TapePrototype.svelte` (`?tape-prototype`); M4
promotes it from prototype to shipped.
- **Tape-line calibration (#99) — SHIPPED (as-built 2026-09-25, UAT signed off):** the
axis-rectangle calibration is replaced by a **fixed** black centre line with two end
ticks. The line is a stage fixture and is **never an owner input** (not draggable, not
focusable, not keyboard-nudgeable). The **source photo/slab is the only thing that
moves** — pan/zoom/tilt it until it lines up with the fixed line at the place the tape
measurement was taken. Declared Length = the real inches read off the tape, and the
fixed line represents that same length; scale = fixed-line pixel span / declared
Length, no `maskSpanAlong` check. The crop slider alone sets the line ends
(`crop_fill=90` ⇒ each end 5% from its edge). The earlier `?tape-prototype` sandbox,
`TapePrototype.svelte`, `frontend/src/png/crop.ts` and the `sveltedrag` dependency are
all superseded/removed. Requirement rows CAPTURE-170/175/75 carry the as-built; see
`tasks.md` T2 for detail.
- **UX polish:** photo-picker look/feel (#91), photo filenames on submit (#92), capture
gated on a tested Woo connection (#93), review UI is always the human-pick flow (#94),
debug mode (#95), required-photo lock glyph (#100). (#96 Call 1/2 prompt viewer drops
@@ -125,9 +130,10 @@ Raw runner evidence recorded; Ty owns gate exit (QUALITY-25/30).
## Acceptance criteria (draft)
1. **Tape-line calibration + M3 polish ship together (Goal 1):** the `?tape-prototype`
sandbox is replaced by the shipped calibration path (owner drags both ticks; declared
length = tick distance; no `maskSpanAlong` check), and the
1. **Tape-line calibration + M3 polish ship together (Goal 1):** the tape-line calibration
ships as a **fixed** centre line the owner pans/zooms/tilts the slab onto (line is never
an owner input; crop slider sets its ends; declared length = the real tape inches, and
the fixed line represents that same length; no `maskSpanAlong` check), and the
M3 polish issues (#91–#100, excluding #96 which drops with Call 1) are closed with
passing tests and raw runner evidence.
2. **The review flow is human-driven, thumb-first, and Call 1-free:** the owner can pick