# Correctness status — worker side Audit of `plan.md` against the actual code (2026-07-18). Most of the plan is **implemented**; this file records only what's verified done and the remaining calibration work, so nobody re-does finished work. Orchestrator counterpart: `/mnt/server/home/kami/docker-apps/manga-infra/orchestrator/spec-correctness.md`. ### #5 region-grounded dialogue — code done, calibration ongoing Set-of-mark is now the **default path** (`SOM_ATTRIBUTION="1"`, `worker_vision.py:31`; the "off by default" comment at `:22` is stale — fix it). Residual is per-title threshold calibration on real chapters, not a code gap. Detector-failure vs zero-regions are already distinct (`_set_of_mark`). ## Verified done (was in plan/earlier drafts as TODO — do not redo) - #10 cross-window direction continuity: the grouping pass emits `continues_previous`; the first row carries it through `/direct/window`, and a true edge forces `new_scene=false`. The self-check covers both a continuing window and the chapter-start guard. - Script self-check (`python worker_script.py` passes). #2 confidence + `speaker_method` reach the scene graph (`worker_scene.py:80-81`). H3/#3 fail-loud: `/dialogue` and `/dialogue/window` return a status envelope (`_dialogue_envelope`) and skip dropped panels instead of manufacturing silent-empty. - #4 solo assignment is a 0.7-confidence prior with `speaker_method=solo_prior`, not unconditional. - #6 typed name claims emitted (`_normalize_claims`), roster is hints-only. - #7 Tier-2 `/vision/resolve` sends candidate **reference images** (≤3 each), judges face-first, returns open-set `state: known|new|unresolved`. - #8 webtoon fragments remain independent and retain source bboxes; `context_fragment_links` emits contextual links instead of the crop endpoints destructively stacking them.