{
 "project": "spotify-concept-ad",
 "film": "EN master, 16:9 (D-28: the only delivered version)",
 "ledger": [
  {
   "id": "F-01",
   "found_by": "owner (Omar), 2026-10-20, after watching draft-3-en.mp4 (relayed by the run coordinator)",
   "time": "10.4 to 12.2 s",
   "severity": "P1",
   "problem": "the Top result card is a grey placeholder (grey square and two grey bars); it reads as unfinished",
   "root_cause": "third-party content in the capture was replaced by Spotify's loading-state grammar only",
   "change": "the card shows the film's own playlist in Spotify's playlist state: title = the typed answer, cut by Spotify's ellipsis before the play circle; the exact type label 'Playlist' (new capture webplayer-results-playlist-en); a cover drawn by code from the four lane colours with their step marks; no owner name",
   "files": [
    "film/js/ui.js",
    "film/js/config.js",
    "ice/assets/TRUTH.md",
    "ice/assets/manifest.json"
   ],
   "recheck": "UI fidelity critic round 5: 1.0 (ice/review/ui-fidelity/sheet-en-v2.png); G5 lint PASS",
   "before": "ice/review/fixes/before-draft3-10.95.png",
   "after": "ice/review/fixes/after-draft5-10.95.png",
   "preserve": "card position, size, timing and the press at 12.0 unchanged"
  },
  {
   "id": "F-02",
   "found_by": "owner (Omar), 2026-10-20; also the gates on draft-4 (look.py end hold 7.43 s, frame unchanged for 223 frames)",
   "time": "41.0 to 49.0 s",
   "severity": "P1",
   "problem": "the last 8 s are static and empty: logo and field on near-black, nothing moves",
   "root_cause": "the street under the end card was dimmed to about 92 percent and the surround to 86 percent black, so the playing street vanished",
   "change": "under the end card the street shows again around the pure black logo zone (dim lifted to about 32 percent, surround 60 percent black): the lit lanes, the lamps and the playhead keep playing softly; the out-of-focus lane lights drift and breathe on the resting groove (v2 score end hold); the logo zone stays #000000 (D-24) and the logo lands exactly on the official file",
   "files": [
    "film/js/world.js",
    "film/js/lockup.js"
   ],
   "recheck": "look.py on draft-5: G3 PASS, end hold 0.93 s, a region moves in 79 percent of the end-hold frames; film_gate longest_still 0.58 s; Final Frame Contract 0 differing pixels (ice/review/final-frame/result.json)",
   "before": "ice/review/fixes/before-draft3-45.0.png",
   "after": "ice/review/fixes/after-draft5-45.0.png",
   "motion_proof": "ice/review/fixes/after-draft5-end-card-motion-12fps-like.png (44.0 to 46.5 s every 0.5 s)",
   "preserve": "end-card layout, timing, unofficial line and logo zone unchanged"
  },
  {
   "id": "R1-01",
   "found_by": "round 1 critics (ice/review/round-1/critic-A.md, critic-B.md, critic-C.md)",
   "time": "5.6 to 12.2",
   "severity": "P0",
   "problem": "question and answer too small for a phone",
   "change": "field 1600 x 162 (85 percent width), type 54 px (5 percent of the height); card 820 px",
   "recheck": "gates on ice/renders/draft-6-en-av.mp4 (ice/review/gates-draft6/); round 2 verification critics",
   "before": "ice/review/fixes/r1/before-7.0.png (draft-5)",
   "after": "ice/review/fixes/r1/after-7.0.png (draft-6)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R1-02",
   "found_by": "round 1 critics (ice/review/round-1/critic-A.md, critic-B.md, critic-C.md)",
   "time": "41.0 to 49.0",
   "severity": "P0",
   "problem": "end card static and mostly empty; playhead hidden; music a fading loop",
   "change": "black zone = logo plus clear space only; the street keeps playing around it; score v3: groove to a final hit at 46.0, chord rings out; playhead stops on the hit",
   "recheck": "gates on ice/renders/draft-6-en-av.mp4 (ice/review/gates-draft6/); round 2 verification critics",
   "before": "ice/review/fixes/r1/before-45.0.png (draft-5)",
   "after": "ice/review/fixes/r1/after-45.0.png (draft-6)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R1-03",
   "found_by": "round 1 critics (ice/review/round-1/critic-A.md, critic-B.md, critic-C.md)",
   "time": "12.0 to 22.0",
   "severity": "P1",
   "problem": "the grid does not play the music",
   "change": "every hit flashes its cell (full opacity, lane-colour glow, 6 percent scale); lamps and pools pulse on every hit",
   "recheck": "gates on ice/renders/draft-6-en-av.mp4 (ice/review/gates-draft6/); round 2 verification critics",
   "before": "ice/review/fixes/r1/before-16.05.png (draft-5)",
   "after": "ice/review/fixes/r1/after-16.05.png (draft-6)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R1-04",
   "found_by": "round 1 critics (ice/review/round-1/critic-A.md, critic-B.md, critic-C.md)",
   "time": "14.0 to 17.0",
   "severity": "P1",
   "problem": "lock words leave the frame",
   "change": "words lock into their pattern cell nearest the grid's middle; the horn hands over to its cells under the card",
   "recheck": "gates on ice/renders/draft-6-en-av.mp4 (ice/review/gates-draft6/); round 2 verification critics",
   "before": "ice/review/fixes/r1/before-16.05.png (draft-5)",
   "after": "ice/review/fixes/r1/after-16.05.png (draft-6)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R1-05",
   "found_by": "round 1 critics (ice/review/round-1/critic-A.md, critic-B.md, critic-C.md)",
   "time": "22.0 to 24.0",
   "severity": "P1",
   "problem": "the breath looks like the groove",
   "change": "lanes hold dim and stop pulsing during the breath",
   "recheck": "gates on ice/renders/draft-6-en-av.mp4 (ice/review/gates-draft6/); round 2 verification critics",
   "before": "ice/review/fixes/r1/before-23.0.png (draft-5)",
   "after": "ice/review/fixes/r1/after-23.0.png (draft-6)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R1-06",
   "found_by": "round 1 critics (ice/review/round-1/critic-A.md, critic-B.md, critic-C.md)",
   "time": "24.0",
   "severity": "P1",
   "problem": "the drop has no picture",
   "change": "every lit cell and lamp flashes on the drop",
   "recheck": "gates on ice/renders/draft-6-en-av.mp4 (ice/review/gates-draft6/); round 2 verification critics",
   "before": "ice/review/fixes/r1/before-24.05.png (draft-5)",
   "after": "ice/review/fixes/r1/after-24.05.png (draft-6)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R1-07",
   "found_by": "round 1 critics (ice/review/round-1/critic-A.md, critic-B.md, critic-C.md)",
   "time": "5.9 to 12.0",
   "severity": "P1",
   "problem": "near frozen question hold",
   "change": "the street words keep drifting slowly",
   "recheck": "gates on ice/renders/draft-6-en-av.mp4 (ice/review/gates-draft6/); round 2 verification critics",
   "before": "ice/review/fixes/r1/before-7.0.png (draft-5)",
   "after": "ice/review/fixes/r1/after-7.0.png (draft-6)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R1-09",
   "found_by": "round 1 critics (ice/review/round-1/critic-A.md, critic-B.md, critic-C.md)",
   "time": "0.0",
   "severity": "P1",
   "problem": "the hook is silent at first",
   "change": "score v3 without a fade-in, and the master no longer fades the music in (master_audio.py --sfx path); 0.00 s RMS -20.0 dBFS on the encoded file",
   "recheck": "gates on ice/renders/draft-6-en-av.mp4 (ice/review/gates-draft6/); round 2 verification critics",
   "before": "ice/review/round-1/critic-A.md (audio measured)",
   "after": "ice/audio/master_draft6_en_av.json; encoded file RMS -20.0 dBFS at 0.00 s",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R1-11",
   "found_by": "round 1 critics (ice/review/round-1/critic-A.md, critic-B.md, critic-C.md)",
   "time": "10.4 to 12.2",
   "severity": "P1",
   "problem": "Top result title truncated",
   "change": "title fitted whole, never larger than Spotify's size",
   "recheck": "gates on ice/renders/draft-6-en-av.mp4 (ice/review/gates-draft6/); round 2 verification critics",
   "before": "ice/review/fixes/r1/before-11.0.png (draft-5)",
   "after": "ice/review/fixes/r1/after-11.0.png (draft-6)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R1-12",
   "found_by": "round 1 critics (ice/review/round-1/critic-A.md, critic-B.md, critic-C.md)",
   "time": "12.0 to 12.6",
   "severity": "P1",
   "problem": "weak press seam",
   "change": "interface sinks into the street over 0.6 s; the circle dips into the street; the ring 14 px with a glow",
   "recheck": "gates on ice/renders/draft-6-en-av.mp4 (ice/review/gates-draft6/); round 2 verification critics",
   "before": "ice/review/fixes/r1/before-12.3.png (draft-5)",
   "after": "ice/review/fixes/r1/after-12.3.png (draft-6)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R1-13",
   "found_by": "round 1 critics (ice/review/round-1/critic-A.md, critic-B.md, critic-C.md)",
   "time": "41.0 to 49.0",
   "severity": "P1",
   "problem": "the music does not close",
   "change": "score v3 ending (end hit at 46.0, natural ring-out)",
   "recheck": "gates on ice/renders/draft-6-en-av.mp4 (ice/review/gates-draft6/); round 2 verification critics",
   "before": "ice/review/fixes/r1/before-47.5.png (draft-5)",
   "after": "ice/review/fixes/r1/after-47.5.png (draft-6)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R1-15",
   "found_by": "round 1 critics (ice/review/round-1/critic-A.md, critic-B.md, critic-C.md)",
   "time": "34.0 to 37.0",
   "severity": "P1",
   "problem": "fold late and dark",
   "change": "tiles land on their sounds; the street dims after the last lane; the second row slides from under its tile",
   "recheck": "gates on ice/renders/draft-6-en-av.mp4 (ice/review/gates-draft6/); round 2 verification critics",
   "before": "ice/review/fixes/r1/before-35.0.png (draft-5)",
   "after": "ice/review/fixes/r1/after-35.0.png (draft-6)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R1-16",
   "found_by": "round 1 critics (ice/review/round-1/critic-A.md, critic-B.md, critic-C.md)",
   "time": "40.7 to 41.5",
   "severity": "P1",
   "problem": "logo arrival through near-black, field across titles",
   "change": "tiles gone before 41.0, black up by 41.0, logo fades up 41.0 to 41.45, field moves after the tiles",
   "recheck": "gates on ice/renders/draft-6-en-av.mp4 (ice/review/gates-draft6/); round 2 verification critics",
   "before": "ice/review/fixes/r1/before-41.2.png (draft-5)",
   "after": "ice/review/fixes/r1/after-41.2.png (draft-6)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R1-18",
   "found_by": "round 1 critics (ice/review/round-1/critic-A.md, critic-B.md, critic-C.md)",
   "time": "28.0 to 29.5",
   "severity": "P1",
   "problem": "mixed tilt in the painted line",
   "change": "the crane is near top-down by 28.0 (rx 9), top-down at 30.0",
   "recheck": "gates on ice/renders/draft-6-en-av.mp4 (ice/review/gates-draft6/); round 2 verification critics",
   "before": "ice/review/fixes/r1/before-28.6.png (draft-5)",
   "after": "ice/review/fixes/r1/after-28.6.png (draft-6)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R2-01",
   "found_by": "round 2 verifiers (ice/review/round-2/verify-1.md, verify-2.md)",
   "time": "41.0 to 49.0",
   "severity": "P0",
   "problem": "end card still reads static and empty (street luma about 10/255, 8 percent of pixels change per bar, playhead mostly hidden, picture frozen after 46.0)",
   "change": "the veil around the black logo zone halved (0.42 to 0.22) and the street under it brighter (dim 0.32 to 0.15); the last hit glows longest; after 46.0 lanes, lamps and the playhead fade with the ring-out instead of stopping",
   "recheck": "gates on ice/renders/draft-7-en-av.mp4 (ice/review/gates-draft7/); round 3 verification",
   "before": "ice/review/fixes/r2/before-45.0.png (draft-6)",
   "after": "ice/review/fixes/r2/after-45.0.png (draft-7)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R2-02",
   "found_by": "round 2 verifiers (ice/review/round-2/verify-1.md, verify-2.md)",
   "time": "41.10 to 41.25",
   "severity": "P1",
   "problem": "the field slides across the logo as it appears",
   "change": "the field passes the logo zone between 40.95 and 41.3, and the logo fades up from 41.25 to 41.65, after it has passed",
   "recheck": "gates on ice/renders/draft-7-en-av.mp4 (ice/review/gates-draft7/); round 3 verification",
   "before": "ice/review/fixes/r2/before-41.2.png (draft-6)",
   "after": "ice/review/fixes/r2/after-41.2.png (draft-7)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R2-03",
   "found_by": "round 2 verifiers (ice/review/round-2/verify-1.md, verify-2.md)",
   "time": "35.10 to 35.80",
   "severity": "P1",
   "problem": "flying lane strips cover landed tiles",
   "change": "a landed tile stays above the strips still in flight",
   "recheck": "gates on ice/renders/draft-7-en-av.mp4 (ice/review/gates-draft7/); round 3 verification",
   "before": "ice/review/fixes/r2/before-35.15.png (draft-6)",
   "after": "ice/review/fixes/r2/after-35.15.png (draft-7)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R2-04",
   "found_by": "round 2 verifiers (ice/review/round-2/verify-1.md, verify-2.md)",
   "time": "28.0 to 34.0",
   "severity": "P1",
   "problem": "the band under the line hides a lane",
   "change": "band at 60 percent (was 78)",
   "recheck": "gates on ice/renders/draft-7-en-av.mp4 (ice/review/gates-draft7/); round 3 verification",
   "before": "ice/review/round-2/verify-2.md",
   "after": "ice/renders/draft-7-en-av.mp4 at 29.0",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R2-05",
   "found_by": "round 2 verifiers (ice/review/round-2/verify-1.md, verify-2.md)",
   "time": "18.0 to 19.2",
   "severity": "P2",
   "problem": "burst hits barely visible",
   "change": "every lit cell takes a smaller flash on each burst hit",
   "recheck": "gates on ice/renders/draft-7-en-av.mp4 (ice/review/gates-draft7/); round 3 verification",
   "before": "ice/review/fixes/r2/before-18.4.png (draft-6)",
   "after": "ice/review/fixes/r2/after-18.4.png (draft-7)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R2-06",
   "found_by": "round 2 verifiers (ice/review/round-2/verify-1.md, verify-2.md)",
   "time": "23.93",
   "severity": "P2",
   "problem": "lanes relight two frames before the drop",
   "change": "the breath releases exactly on the drop",
   "recheck": "gates on ice/renders/draft-7-en-av.mp4 (ice/review/gates-draft7/); round 3 verification",
   "before": "ice/review/fixes/r2/before-23.95.png (draft-6)",
   "after": "ice/review/fixes/r2/after-23.95.png (draft-7)",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R3-01",
   "found_by": "round 3 verifier (ice/review/round-3/verify-3.md)",
   "time": "41.0 to 49.0",
   "severity": "P1",
   "problem": "end card: the playhead hidden behind the logo zone, under 15 percent of pixels change per bar",
   "change": "behind the rising black at 41.0 the street settles 160 px lower, so its lanes and playhead run below the logo zone across the whole frame; the zone's soft edge is tighter; the unofficial line moves to y 975 below the lanes",
   "recheck": "gates on ice/renders/draft-8-en-av.mp4 (ice/review/gates-draft8/); verification pending the owner's notes",
   "after": "ice/renders/draft-8-en-av.mp4",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R3-02",
   "found_by": "round 3 verifier (ice/review/round-3/verify-3.md)",
   "time": "41.4 to 49.0",
   "severity": "P1",
   "problem": "a grey empty cell cut by the zone's edge (looks like the rejected grey card)",
   "change": "the answer lane's cells leave with its words at the fold, so no grey pill remains at the end",
   "recheck": "gates on ice/renders/draft-8-en-av.mp4 (ice/review/gates-draft8/); verification pending the owner's notes",
   "after": "ice/renders/draft-8-en-av.mp4",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "R3-03",
   "found_by": "round 3 verifier (ice/review/round-3/verify-3.md)",
   "time": "46.0 to 49.0",
   "severity": "P1",
   "problem": "the end hit has no picture; the card freezes after it",
   "change": "the last hit lights every lane once, then lanes, lamps, the playhead and its dot all rest out with the ring-out",
   "recheck": "gates on ice/renders/draft-8-en-av.mp4 (ice/review/gates-draft8/); verification pending the owner's notes",
   "after": "ice/renders/draft-8-en-av.mp4",
   "preserve": "story, scene order, look and pacing of draft-3 (D-28)"
  },
  {
   "id": "RW-01",
   "found_by": "rework critic (ice/review/rework-04-05-critic.md)",
   "time": "23.5 to 27.5",
   "severity": "P0",
   "problem": "the line \"The street plays along.\" does not explain the idea (the owner said so)",
   "change": "three lines offered to the owner in D-34; A (\"Pick a song. The street keeps the beat.\") shown in frame 5 until he chooses",
   "recheck": "stills of the real build re-rendered (temp/v2j/v2-en-16x9/) and checked; storyboard lint YELLOW (pass)",
   "after": "ice/plan/style-frames/v2/, ice/plan/storyboard-strip-v2.png, ice/plan/storyboard.md revision 5",
   "preserve": "the owner decisions of D-30: the same story, the Top result card as it is, the end card idea, no faces, no photos, no AI media"
  },
  {
   "id": "RW-02",
   "found_by": "rework critic",
   "time": "whole film",
   "severity": "P0",
   "problem": "machines small (2 to 4 percent of the frame), clipped cars and wheels, the windows dominate the drop",
   "change": "machines drawn 1.6 times the building scale and set close together; each playing machine whole in frame from its entry; extra parked cars removed; windows equalizer lowered",
   "recheck": "stills of the real build re-rendered (temp/v2j/v2-en-16x9/) and checked; storyboard lint YELLOW (pass)",
   "after": "ice/plan/style-frames/v2/, ice/plan/storyboard-strip-v2.png, ice/plan/storyboard.md revision 5",
   "preserve": "the owner decisions of D-30: the same story, the Top result card as it is, the end card idea, no faces, no photos, no AI media"
  },
  {
   "id": "RW-03",
   "found_by": "rework critic",
   "time": "0.0 to 29.5",
   "severity": "P1",
   "problem": "the pile driver reads as a radio tower with impact lines in the air; thin scaffold bars recall the rejected grid",
   "change": "pile rig redrawn: solid leader, the ram lifted above the pile cap and landing on it, a flash at the contact, dust where the pile goes in; site closed by solid hoarding over a bare concrete frame",
   "recheck": "stills of the real build re-rendered (temp/v2j/v2-en-16x9/) and checked; storyboard lint YELLOW (pass)",
   "after": "ice/plan/style-frames/v2/, ice/plan/storyboard-strip-v2.png, ice/plan/storyboard.md revision 5",
   "preserve": "the owner decisions of D-30: the same story, the Top result card as it is, the end card idea, no faces, no photos, no AI media"
  },
  {
   "id": "RW-04",
   "found_by": "rework critic",
   "time": "0.0 to 23.5",
   "severity": "P1",
   "problem": "words on a shop sign and a lamp, clipped words, low contrast coloured words",
   "change": "every word outlined in black next to its own source, inside a 5 percent margin (fades before an edge); coloured words at least 4.6 to 1 against the outline; after the press a word shows for its first bar and one bar from the drop",
   "recheck": "stills of the real build re-rendered (temp/v2j/v2-en-16x9/) and checked; storyboard lint YELLOW (pass)",
   "after": "ice/plan/style-frames/v2/, ice/plan/storyboard-strip-v2.png, ice/plan/storyboard.md revision 5",
   "preserve": "the owner decisions of D-30: the same story, the Top result card as it is, the end card idea, no faces, no photos, no AI media"
  },
  {
   "id": "RW-05",
   "found_by": "rework critic",
   "time": "29.5 to 36.0",
   "severity": "P1",
   "problem": "the end card black zone is a floating soft box; light blobs without a source; the field cuts the rider and the breaker arm",
   "change": "the sky above the rooftops turns pure black and holds the logo, the field and the required line; the whole street plays below; panel, veil and blobs removed",
   "recheck": "stills of the real build re-rendered (temp/v2j/v2-en-16x9/) and checked; storyboard lint YELLOW (pass)",
   "after": "ice/plan/style-frames/v2/, ice/plan/storyboard-strip-v2.png, ice/plan/storyboard.md revision 5",
   "preserve": "the owner decisions of D-30: the same story, the Top result card as it is, the end card idea, no faces, no photos, no AI media"
  },
  {
   "id": "RV-01",
   "found_by": "verify round (ice/review/rework-04-05-verify.md)",
   "time": "11.4 to 13.4",
   "severity": "P2",
   "problem": "the pile rig mast cut by the top edge in its own joining bar",
   "change": "camera key 11.4 at scale 0.72 with dy 60: the mast whole in frame",
   "recheck": "stills of the real build re-rendered (temp/v2j/v2-en-16x9/) and checked; storyboard lint YELLOW (pass)",
   "after": "ice/plan/style-frames/v2/, ice/plan/storyboard-strip-v2.png, ice/plan/storyboard.md revision 5",
   "preserve": "the owner decisions of D-30: the same story, the Top result card as it is, the end card idea, no faces, no photos, no AI media"
  },
  {
   "id": "RV-02",
   "found_by": "verify round",
   "time": "2.6, 9.75",
   "severity": "P2",
   "problem": "words closer than 5 percent of the width to the side edges",
   "change": "the word guard uses 5 percent of the width at the sides and 5 percent of the height at top and bottom; VRRRM and BRRRRT moved in",
   "recheck": "stills of the real build re-rendered (temp/v2j/v2-en-16x9/) and checked; storyboard lint YELLOW (pass)",
   "after": "ice/plan/style-frames/v2/, ice/plan/storyboard-strip-v2.png, ice/plan/storyboard.md revision 5",
   "preserve": "the owner decisions of D-30: the same story, the Top result card as it is, the end card idea, no faces, no photos, no AI media"
  },
  {
   "id": "RV-03",
   "found_by": "verify round",
   "time": "12.0",
   "severity": "P2",
   "problem": "no still shows the pile rig hitting; the ram drop too small to read",
   "change": "the ram drop lengthened to 66 units; a still at 12.03 s added to the strip",
   "recheck": "stills of the real build re-rendered (temp/v2j/v2-en-16x9/) and checked; storyboard lint YELLOW (pass)",
   "after": "ice/plan/style-frames/v2/, ice/plan/storyboard-strip-v2.png, ice/plan/storyboard.md revision 5",
   "preserve": "the owner decisions of D-30: the same story, the Top result card as it is, the end card idea, no faces, no photos, no AI media"
  },
  {
   "id": "RV-04",
   "found_by": "verify round",
   "time": "7.9 to 8.1",
   "severity": "P2",
   "problem": "HONK touches the landing circle; the pointer lingers over the excavator",
   "change": "the circle lands centred on the head lamp, HONK raised; the pointer fades with the card by 7.9",
   "recheck": "stills of the real build re-rendered (temp/v2j/v2-en-16x9/) and checked; storyboard lint YELLOW (pass)",
   "after": "ice/plan/style-frames/v2/, ice/plan/storyboard-strip-v2.png, ice/plan/storyboard.md revision 5",
   "preserve": "the owner decisions of D-30: the same story, the Top result card as it is, the end card idea, no faces, no photos, no AI media"
  },
  {
   "id": "RV-05",
   "found_by": "verify round",
   "time": "17.5 to 19.5",
   "severity": "P3",
   "problem": "the storyboard says the breath dims but the build did not; the shot 1 lint yellow had no written reason",
   "change": "the breath dims the street (0.35) and the drop lights it at once; lint notes added to storyboard.md",
   "recheck": "stills of the real build re-rendered (temp/v2j/v2-en-16x9/) and checked; storyboard lint YELLOW (pass)",
   "after": "ice/plan/style-frames/v2/, ice/plan/storyboard-strip-v2.png, ice/plan/storyboard.md revision 5",
   "preserve": "the owner decisions of D-30: the same story, the Top result card as it is, the end card idea, no faces, no photos, no AI media"
  },
  {
   "id": "AP-01",
   "found_by": "approver return 1 (ice/review/stages/04-05-rework-approver.md)",
   "time": "plan",
   "severity": "P2",
   "problem": "shot-plan.md held the 13 lane-grid contracts",
   "change": "shot-plan.md revision 5: 15 contracts with start, decisive and handoff states, camera reasons, measured richness, rigs and the end card note (revision 3 kept as shot-plan-rev3.md)",
   "recheck": "storyboard lint YELLOW (pass); stills re-rendered (temp/v2l/v2-en-16x9/)",
   "after": "ice/plan/, ice/DIRECTION.md, ice/review/template-distance-v2.md",
   "preserve": "the owner decisions of D-30"
  },
  {
   "id": "AP-02",
   "found_by": "approver return 1 (ice/review/stages/04-05-rework-approver.md)",
   "time": "plan",
   "severity": "P2",
   "problem": "BRIEF ledger L2 and versions.md still named D-14 and 49.0 s",
   "change": "L2 covered by D-33 at 36.0 s; versions.md EN master at 36.0 s with the D-30 opening",
   "recheck": "storyboard lint YELLOW (pass); stills re-rendered (temp/v2l/v2-en-16x9/)",
   "after": "ice/plan/, ice/DIRECTION.md, ice/review/template-distance-v2.md",
   "preserve": "the owner decisions of D-30"
  },
  {
   "id": "AP-03",
   "found_by": "approver return 1 (ice/review/stages/04-05-rework-approver.md)",
   "time": "plan",
   "severity": "P2",
   "problem": "script word budget of 20 exceeded; \"Words unchanged\" and the Illustrative line out of date",
   "change": "budget restated from reading time per unit (24 distinct words with line B), claim test for the new line, Illustrative line matches TRUTH.md",
   "recheck": "storyboard lint YELLOW (pass); stills re-rendered (temp/v2l/v2-en-16x9/)",
   "after": "ice/plan/, ice/DIRECTION.md, ice/review/template-distance-v2.md",
   "preserve": "the owner decisions of D-30"
  },
  {
   "id": "AP-04",
   "found_by": "approver return 1 (ice/review/stages/04-05-rework-approver.md)",
   "time": "plan",
   "severity": "P2",
   "problem": "D-31 gates without results",
   "change": "template-distance-v2.md: default look pass (0.00 percent blue-purple), 4 of 6 against 01-flat-vector and 16_2026, fingerprint absent, default kit 2 with reasons; D-22 amended",
   "recheck": "storyboard lint YELLOW (pass); stills re-rendered (temp/v2l/v2-en-16x9/)",
   "after": "ice/plan/, ice/DIRECTION.md, ice/review/template-distance-v2.md",
   "preserve": "the owner decisions of D-30"
  },
  {
   "id": "AP-05",
   "found_by": "approver return 1 (ice/review/stages/04-05-rework-approver.md)",
   "time": "plan",
   "severity": "P2",
   "problem": "line A says song over a Playlist card; reading time stated wrong",
   "change": "the frames show line B \"Press play. The noise becomes the beat.\"; reading times 3.6, 3.5 and 3.1 s written in D-34; lamp cones hidden while their lamp is out of frame",
   "recheck": "storyboard lint YELLOW (pass); stills re-rendered (temp/v2l/v2-en-16x9/)",
   "after": "ice/plan/, ice/DIRECTION.md, ice/review/template-distance-v2.md",
   "preserve": "the owner decisions of D-30"
  },
  {
   "id": "R4-01",
   "found_by": "round 4 critic A (ice/review/round-4/critic-A.md, P2 item 5)",
   "time": "whole file",
   "severity": "P2",
   "problem": "the review file had no colour tags for primaries and transfer, so players may show the logo green differently",
   "change": "the final picture encoded with bt709 matrix, primaries and transfer, and the mastered file remuxed with the bt709 tags in the h264 stream and the container (stream copy, no re-encode of picture or sound)",
   "recheck": "ffprobe: color_space bt709, color_transfer bt709, color_primaries bt709 on ice/renders/spotify-concept-ad_street_16x9_35s_v1.mp4",
   "after": "ice/renders/final/spotify-concept-ad_street_16x9_35s.mp4",
   "preserve": "the approved film (D-47), unchanged"
  }
 ],
 "reverted": "builder self-pass edits made before the owner's note (a drifting street under the question, camera bumps on locks, lock flashes, a burst column flash): reverted on 2026-10-20 because the owner approved draft-3's look and pacing and allowed only F-01 and F-02",
 "round_1_record": "ice/review/round-1/summary.md"
}