Record the script verifier failure on two-word names

The baseline run died in `script` at 87/116. Every lost beat cites
`unsupported-proper-noun: ['Choi', 'Haeseon']`, because verify_script puts the
full name in the allowed set and then tests single capitalized tokens against
it. No fix applied.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XD7cAy81MZrc7gCr6aZGWr
This commit is contained in:
2026-08-11 23:02:06 +04:00
parent 54c456801a
commit 36c7cc946f
4 changed files with 28 additions and 0 deletions
+6
View File
@@ -52,9 +52,15 @@ Job `778297bc-e7ce-439d-91b5-8a027060d17f`, chapter `7c944dd4-e972-42c7-ba60-9f6
## Open ## Open
- The `script` stage failed at 87/116 with `unsupported-proper-noun: ['Choi', 'Haeseon']` on 28 beats.
Not OOM, the worker stayed healthy. One-line fix named in
`caveats/speaker-attribution.md#multiword-name-verifier`. Not applied.
- The run stopped in `direct` at 113/116. `scene script tts layers render assemble` never ran. Resume: - The run stopped in `direct` at 113/116. `scene script tts layers render assemble` never ran. Resume:
Since then it reached `scene` 116/116 and failed in `script`. Fix the verifier, then:
```bash ```bash
ssh kami@192.168.1.104 "curl -s -X POST http://127.0.0.1:9090/stage/clear -H 'Content-Type: application/json' -d '{\"job_id\":\"778297bc-e7ce-439d-91b5-8a027060d17f\",\"stage\":\"script\"}'"
ssh kami@192.168.1.104 "curl -s -X POST 'http://127.0.0.1:9090/job/resume?job_id=778297bc-e7ce-439d-91b5-8a027060d17f'" ssh kami@192.168.1.104 "curl -s -X POST 'http://127.0.0.1:9090/job/resume?job_id=778297bc-e7ce-439d-91b5-8a027060d17f'"
``` ```
+4
View File
@@ -97,3 +97,7 @@ two-character panels attribute both speakers to the wrong person, always swapped
character, which is the Phase 1 headline metric at 30%, and the sample says that 30% is not character, which is the Phase 1 headline metric at 30%, and the sample says that 30% is not
trustworthy. 26 of 113 detected people got an identity, and 25 of those 26 went to one character that trustworthy. 26 of 113 detected people got an identity, and 25 of those 26 went to one character that
turns out to cover two different women. turns out to cover two different women.
The run then reached `scene` 116/116 and failed in `script` at 87/116, not on OOM: 28 beats were
rejected by the script verifier as `unsupported-proper-noun: ['Choi', 'Haeseon']`
(`caveats/speaker-attribution.md#multiword-name-verifier`). No two-word cast name can pass that check.
+1
View File
@@ -35,3 +35,4 @@ a complaint, so give it one or drop it.
| [`speaker_method="tail"` never reads a tail](speaker-attribution.md#tail-is-not-geometry) | 2026-08-11 run | | [`speaker_method="tail"` never reads a tail](speaker-attribution.md#tail-is-not-geometry) | 2026-08-11 run |
| [One character id covers two different women](speaker-attribution.md#identity-over-merge) | 2026-08-11 run | | [One character id covers two different women](speaker-attribution.md#identity-over-merge) | 2026-08-11 run |
| [The character registry carries five weeks of wrong names](speaker-attribution.md#registry-pollution) | 2026-08-11 run | | [The character registry carries five weeks of wrong names](speaker-attribution.md#registry-pollution) | 2026-08-11 run |
| [A multi-word character name always fails the script verifier](speaker-attribution.md#multiword-name-verifier) | 2026-08-11 run |
+17
View File
@@ -53,3 +53,20 @@ inherits the whole pile.
**Revisit trigger:** before any run that is meant to produce a clean baseline. Either scope the **Revisit trigger:** before any run that is meant to produce a clean baseline. Either scope the
registry to a chapter or add a reviewed reset. registry to a chapter or add a reviewed reset.
## A multi-word character name always fails the script verifier {#multiword-name-verifier}
`correctness.py:174` builds `allowed` from `cast_names` verbatim, so a two-word name enters the set as
one string, `"choi haeseon"`. `_capitalized_tokens` then yields the tokens `Choi` and `Haeseon`
separately, neither of which is in `allowed`. Every beat whose narration uses a two-word name fails
with `unsupported-proper-noun`. A one-word name such as `Seonho` passes, which is why this went unseen.
Measured on job `778297bc`: the `script` stage failed at 87/116. 28 of the 29 lost beats cite
`['Choi', 'Haeseon']`, one cites `['Blur']`, an onomatopoeia the model invented.
Fix: tokenize each cast name when building `allowed`, in `verify_script`
(`/mnt/server/home/kami/docker-apps/manga-infra/orchestrator/correctness.py:174`). One line. Existing
`test_script_verify.py` covers the function, so add the two-word case there.
**Revisit trigger:** immediately. It costs a quarter of the chapter's narration on any title whose
cast has a surname.