# Critic round 1
Copy for the case-study exporter of the full-film critic round 1, `critic-09-r1.md`; the original stays the source.

Verdict: FIX P1 THEN SHIP. There are 7 P1 items and no confirmed P0. Item 7 becomes a P0 if the ear confirms that "مديونية" is the word said; in that case it must be fixed before release.

# Critic 09, round 1: mohawalat-fahm-france reel (9x16 master)

Read-only review of `ice/renders/final/mohawalat-fahm-france_reel_9x16_master.mp4` (65.96 s, 1080x1920, 25 fps, -14.0 LUFS, LRA 2.3). Rules: owner's four rules, `plan/FIDELITY.md` F1 to F5, `ice-qa/references/critic-loop.md` section 4 severities, full-film critic prompt.
Evidence, kept outside the project: `scratch/critic09/` (`sheets/` 4 fps contact sheets, `win/` 25 fps strips around text entries, `full/` and `sz/` full frames with the safe box drawn, `audio/seams.json` and `audio/src.json` faster-whisper large-v3-turbo re-transcriptions of the reel and the episode).
Times are reel seconds. "Lead" = frames a word is readable before its spoken start (word starts from `edit/retimed-transcript.json`, checked against the re-transcription).

## What passes (measured)
- Lip sync: reel frames matched against the episode at the plan offsets: 0 frames at 12.60, 19.60, 23.40, 26.90, 34.00, 49.60, 61.20; -1 frame at 58.60 (in tolerance). Audio offsets equal picture offsets on every row.
- Seams 10.56, 17.60, 22.40 and 64.56: every cut sits in a 40 to 120 ms dip under -50 dB; no word lost.
- F2: archive saturation 12 to 38 against studio 83 to 114; black level (2nd percentile) 21 to 99 against 7 to 12; red single frames only at 0.00 to 0.04 (missile) and 53.76 to 53.92 (war); no crimson on the students; the guest pre-laps the montage 10.60 to 11.80.
- F3 in part: the disc sits behind Macron only (0.50 to 2.70, 56.00 to 58.00); the guest's face luma holds mean 84 to 88 wherever he sits in frame; no darkening or silhouette on either speaker.
- F4: push and pull on phrase starts at 1.00 to 1.10 (1.12 for 0.36 s on the blurred entry at 11.80, negligible).
- F5: "محاولة" readable from 63.52, spoken from 63.54 (re-transcribed); the title rises in front of the held, defocused host as D-23 records.
- Archive honesty: every shot sits on its named subject with a plausible ledger date (missile and Macron 6 Oct 2026; lycées 29 Sep to 17 Oct 2026; convoy 24 Feb 2022 on "حرب أوكرانيا"; Macron 20 Jan 2023 on "الحكومة الفرنسية ... نفقات الجيش"). No injury images; no minor's face held over 0.5 s.
- Finishing layer (D-24): no grain, archive look only from desaturation and lifted blacks, blur-in on titles, glow only on the programme title and pins. Matches the reference measurements.
- Sound: "Vanes" (Kevin MacLeod, CC BY 4.0) and SFX from Sonniss GDC 2024 and Freesound, each with its source JSON; nothing code-made. The unused `openverse-freesound-ambience-protest.mp3` is in no cue and no stem.
- Arabic: spelling and joining correct on every element; every kashida bar sits between two joining letters (ماكـرون، باليـستي، مديـونيتها، عاجـزة، أطروحـة، حـرب، وجـدت، محـاولة، فـهم). Speaker share 78% (D-13 range 75 to 85%).

## Fix list
1. **P1, 5.46 to 61.94 (12 text elements). Words shown before they are spoken.**
   Captions wipe in over about 0.25 s from their first word and plates fade in whole, so later words lead their speech. T4 "الباليستي" 22 to 26 fr; T5 "الأول" 27; T7 "واحدة" 9; T8c "سد" 12; T9 "أموال" 20; T10 "لهم" 10; T11 "لقطاع" 39 and "التعليم" 68; T12 "أصلًا" 34 and "بفكرة" 38; T14 "تحصيل" 27 and "الموارد" 32; T17c "الجيش" 9; T18 "موارد" 37 to 42; T19 "ذلك" 11. Single-word titles are right (T1, T2, T8, T13, T16, T17b at +3 to +5 fr).
   Why: F1 ("zero words on screen" before they are said), D-15, critic-loop P1 (beat off its word by more than 0.3 s).
   Smallest fix: key the existing RTL wipe to word starts (each word revealed 3 to 5 frames after it starts); build plates line by line the same way. Take word starts from a fresh alignment of `audio/stems/dialogue.wav`: the retimed transcript is off by up to 0.26 s (it puts "محاولة" at 63.80, the audio has it at 63.54).
2. **P1, 47.08 to 53.74 and 58.02 to 60.08. A red glow behind the guest, plus a red dot over his head at 46.92 to 47.30.**
   The background beside his shoulders goes from #1E1C11 to #341C1B and #491A1E. It is the episode's own quote-card graphic (D-26), cut off from its card by the crop. On screen it reads as red attention on the speaker, triggered by no spoken word. It also puts the crimson titles "أطروحة كاذبة" and the payoff "وجدت موارد" on a crimson ground. The dot flies at y 100 to 150, above the safe zone.
   Why: owner's rule (the red belongs to the people talked about); F3 proof (every red element with the word that triggers it). D-26 rejected a whole-frame selective desaturation because it graded the face; the person matte the build already makes (rembg isnet) removes that objection.
   Smallest fix: desaturate or hue-shift the reds of the background only, under an inverted guest matte, for source 1681.6 to 1694.6; paint out the dot for its 10 frames.
3. **P1, 32.90 to 34.60 and 39.30 to 41.50 (milder at 47.75 to 49.00 on the left). The guest's face runs to the frame edge.**
   S21 keeps one crop (x 519) for 21.1 s while the guest leans. His face box reaches x 1060 to 1076 against the 1080 edge, well past the 888 safe margin, and the push-ins anchor on the frame centre, not on the face.
   Why: house framing (ref-b: zoom anchored on the face); D-22 safe zone; on Reels and TikTok the right rail sits there.
   Smallest fix: keyframe the S21 crop x from `plan/shots_faces.json` (eased, at most 150 px/s, moves between phrases) and anchor the zoom on the face.
4. **P1, 0.64 to 2.68. The label "ماكرون" breaks the safe zone and touches Macron's face.**
   Its left edge is at about x 25 (the safe zone starts at 65), and its first letter touches his nose.
   Why: D-22 union safe zone; no text over faces.
   Smallest fix: set it at its planned `under_subject` place (below his chin, inside x 65 to 888), or shrink it 10% and start it at x 70 with a clear gap to the face.
5. **P1, 3.92 seam. The hook's key noun is cut inside its last syllable.**
   The row 1 out point (source 1703.64) drops about 0.10 s of "ـتي". Whisper hears "باليست" on both the master and the dialogue stem. It hears "باليستي" (ending 1703.74) when the same source runs to 1703.76, before the guest's "نعم".
   Why: no cut inside a word (script rule, seam gate).
   Smallest fix: move the row 1 out to 1703.76 and take the 0.12 s from the 2.00 s montage pause, so every later time stays.
6. **P1, 25.70 to 26.62 (S18). A Palestinian flag dominates the shot of "students in front of their lycée".**
   The flag is the one coloured, central object, and no line names it. For a pan-Arab audience it reframes the movement the guest describes (money for schools against the army).
   Why: owner's rule (every element ties to its line); archive honesty (no shot says what the speech does not).
   Smallest fix: move the crop about 240 px right (the flag sits at about source x 870 to 930), or use another second of T0KHYCHlk2U without it.
7. **P1 (P0 if confirmed), 17.32 to 18.40. "مديونيتها" may not be the word said.**
   Whisper on the reel and on the source hears "مديونة", and YouTube's captions write "مديونه". The word's envelope (17.12 to 17.54) shows three syllable nuclei and no stop closure where the "ت" of "ـتها" would be.
   Why: F1 and RC1 (no words on screen that were not said).
   Smallest fix: listen at 17.10 to 17.60. If he says "مديونية", set T8 to "مديونية" (kashida "مديـونية").
8. **P2, 32.22 to 32.24. The turn clips the tail of "التعليم".** It cuts at source 1159.60 (still -27 dB), while the dip is at 1159.62 to 1159.64. The master re-transcribes the word as "التعليق" in two windows.
   Fix: start the turn one frame later (32.28), or add a 10 ms fade at 32.24.
9. **P2, 8.18 to 8.40. The riser buries "الأول", the hook's punch word.** The riser is at -29.6 dB, 6 dB under the word. Whisper misses "الأول" on the master but hears it on the dialogue stem.
   Fix: duck the riser 6 dB until 8.40, or start its swell after the word.
10. **P2, 61.06 to 61.16. The payoff gets no breath.**
    "وجدت موارد" has 0.10 s before the host's sign-off, the guest's last word is cut at -32 dB, and T18 stays crimson to the cut (F1: it should cool within 5 frames of the word's end).
    Fix: add a 0.40 s held beat after 61.06 (the title cools, the music lifts) with a 2-frame audio fade. The reel stays under 70 s.
11. **P2, 42.59 to 47.62. The attention dip.**
    For 5.0 s there is no text while the guest says fillers ("بكل بساطة، بعض، يعني، بعض الهيئات أو بعض، يعني") on a static shot that drifts.
    Fix, option A: cut 43.32 to 46.82 (both points in dips under -55 dB) with a punch-in. The line becomes "... بكل بساطة. أجزاء من المجتمع الفرنسي تقول: هذه أطروحة كاذبة", which keeps the meaning.
    Fix, option B: caption "بعض الهيئات" at 44.64.
12. **P2, 32.64 to 36.19. The line that frames the payoff has no text.** A muted viewer meets "لا يقبل أصلًا بفكرة" without its subject.
    Fix: caption "قسمًا من الشارع الفرنسي" at 33.42, keyed per word.
13. **P2, 4.70 to 8.56. The hook's attribution is too short.** The RC4 attribution "فيه ناس تقول لك" shows for only 0.56 s, then the two plates hold 3 s without it, so a muted viewer can take the contrast as the host's view.
    Fix: keep T3 as a small header over the plate stack until 8.56.
14. **P2, 64.00 to 65.96. The end title and the freeze frame.** "فهم" is readable from 64.00 but spoken from 64.26 (6 frames early; F5 allows 0 to +4), and the held host is frozen with his eyes closed and his mouth open.
    Fix: delay "فهم" 7 frames, and freeze on the last open-eyed frame (about 64.40).
15. **P2. Text over hands.** Hands pass under T4/T5 (7.00 to 8.50), T6 (12.40 to 13.90), T8 (17.40 to 18.20) and T10 (27.50 to 28.80). Readable, but not clean.
    Fix: lift T6 and T8 by 60 to 80 px while the hands are raised.
16. **P2, 22.40 to 24.60. The wide-shot crop is soft and 40% table.** It is 523x930, upscaled 2.06x. It hides the join between rows 4 and 5, so accept it and note it in the delivery report.
17. **P2. Paperwork and small layout.**
    - FIDELITY "no text over archive except the hook" does not cover T17b and T17c. Record their RD2 exception.
    - `plan.json` and `storyboard.md` still say `behind_head` and "kashida bar passing behind the guest's head" for T8, T16, T18 and T20, while D-23 puts them in front. Align the text with the render.
    - The T6 sub-line breaks "معهد / الدوحة". Break it after "الدولية،" instead.
    - The hook carries 1.1 s of a drawn-out "يعني" (1.40 to 2.52). Levels stay at -26 to -36 dB, so there is no clean cut: accept it.

## Status against the contract and the owner's rules
- F1 FAIL (items 1, 7, 10). F2 PASS. F3 FAIL (item 2). F4 PASS. F5 PASS with item 14.
- The speaker stays lit: PASS on luma; FAIL on red (item 2).
- Every element ties to its line: FAIL on items 2 and 6; every added title, disc, pulse and plate otherwise has its word.
- Finishing layer measured from the reference and applied for a reason: PASS.
- Music and SFX are real library recordings: PASS.

Round verdict: FIX P1 THEN SHIP. There are 7 P1 items and no confirmed P0. Item 7 becomes a P0 if the ear confirms that "مديونية" is the word said; in that case it must be fixed before release.
