# STATE · KILLPAGES-I (28 Oct, end of session)

## Done and live
- **pistol REPLACE six** (58k_w_pistol_cine_i.js), all FINAL and badged: UNDERNEATH, PASSING SHOT, LOW ROAD, SLIDE LOCK, COLD SHOULDER, TAPED.
  - §9 ladders, own snd58 sound tables, continuity audits (`_tools/conv/cine_pistol.*_continuity.md`), ledger lines replaced.
  - Maps: 16/17 (UNDERNEATH 14/17); the rooftops ±120 compression was optional and is not done.
- **rpg PREDICT:** `_tools/coord/pred/rpg.md` (GOOD 1, OK BUT 22, REPLACE 19).
- **rpg FIX pass + finals pass**, live in 58k_w_rpg*.js:
  - FIX58 gates remove faces, bones, organs, painted marks and costumes.
  - RP.end58 gives every level its ending at the payoff (§9).
  - RP.walkUp58 / RP.swimUp58 (follow mode) / RP.walkTo58 / RP.twoShot58 give the walk-up two-shot finals.
  - RP.noRings58 silences rings; RP.blast's shock is now a soft bloom.
- **SMALL CHANGE:** re-homed pirate → saloon. The pirate map plate stalls 60-240 ms on any kill and should be flagged to A. Perf max 42 / 40 / 11 ms.
- **A-audit items:** TORPEDO g1 (follow swim) and CANNON MOUTH g5 (w 540, bias 0.6) are fixed.

## Waiting
- **19 rpg REPLACE builds:** all approved, then rewritten to STYLE 3 (sent 28 Oct). Build NOTHING until the user approves the STYLE 3 sample (N1's handcannon SHOULDER THROW, with A's 58k_cine3.js K58.REAL kit).
- **Build order:** THE QUIVER (half-mast), UP AND OVER (in-the-works), ONE ARM (the-tail), MINED (tilt), ON THE STRAP (brace-position), PIGGYBACK (say-cheese), JOUST (last-floor), WINDED (the-safest-place), TWO TUBES (headlights), the mids (HIT THE DECK from-above, THREE SECONDS skipping-stone, OFF THE BACK the-crate, BRAKES outrun, AROUND THE CORNER speck, THROWN AWAY fins), the skins (FLICK-UP camo, LIGHTS OUT neon, THE FIRST ROCKET classic, TOON cartoon).
- **Parked:** fists RUNDOWN polish and THREE ON ONE (`_tools/conv/cine_fists_STATE_I.md`).

## Tools (/Volumes/Workspace/Scratch/i/tools)
- **Swap + probe + render:** srp.sh (pistol) and srr.sh NAME (rpg; work copies in /Volumes/Workspace/Scratch/i/work/rpg_*.js, kept identical to live).
- **Sheets:** multi.mjs, scrub.mjs (0.1 s sheets), lvsheet.mjs (payoff + six finals), mapfinals.sh (18 maps), strips.sh / finals.sh.
- **Probes and perf:** mapcount.mjs, endprobe.mjs, posprobe.mjs, spike.mjs (per-frame render spikes, a map arg), profkill.mjs / profwin.mjs (CPU profile), layerprof.mjs.
- **Code helper:** lepatch.py swaps a kill's ladderEnd for the two-shot.

## COORD (28 Oct 12:30): on resume, (1) re-measure the pirate-map stall on the real page (A fixed drawPlate: worst 12.9 → 6.6 ms headless); (2) rpg THE SAFEST PLACE XT ends with white bone-like sticks with red tips on the victim (a kit bone leak), so remove them.

## 28 Oct ~15:20 · STYLE 3 builds (unblocked: the user approved SHOULDER THROW)
- Lane file **58k_w_rpg_s3.js** (work copy /Volumes/Workspace/Scratch/i/work/rpg_s3.js; swap with `srr.sh rpg_s3`), registered in 58k_rpg.html after rpg_mid; N1's performer library copied in (perform, keysOf, stepK, mocapSeg, gunSpring, floorLock, fwdKnife, trail) + my liveRocket (live muzzle, kit flight law, homing, back-blast) + MC14 (N1's CMU 14_02 block).
- **THE QUIVER (rpg.half-mast) built, sent to COORD for review.** motionQA PASS gore 0-5; perf p95 2.9 ms; 15/17 maps; ledger line replaced; MP4 /Volumes/Workspace/Scratch/i/vid/quiver/the_quiver.mp4 (beats /Volumes/Workspace/Scratch/i/r/q2/).
- Lessons: s.camProg dur is FILM seconds (use 99 with slow runs); at gore 0 a dead body fades unless keep58 (set it for an alive VL); hand targets must stay continuous across prop hand-offs (the rip seam); the hips ride between the feet on back steps (an over-reached rear leg pops the knee).
- Next: UP AND OVER (rpg.in-the-works), then ONE ARM (recast Chotu), MINED, ON THE STRAP, PIGGYBACK, JOUST, WINDED, TWO TUBES, the mids, the skins.
- 28 Oct ~16:00 COORD fix pass on THE QUIVER: RPG GRIP RULE (applies to every rpg STYLE 3 kill): rear hand on the pistol grip (F ['sh',11,4]: the tube resting on the shoulder, cheek on it), front hand under the forestock = hF + tube dir x 18 px + 2.5 px below (frontGrip()); never both fists mid-tube. C3 block (blk/blockPt), less XT scatter. QA g0-5 PASS; v2 MP4 /Volumes/Workspace/Scratch/i/vid/quiver2/the_quiver_v2.mp4, beats /Volumes/Workspace/Scratch/i/r/q4/.
- 28 Oct ~17:30: THE QUIVER v2 APPROVED (REPLACED_LIVE + DONE). UP AND OVER (rpg.in-the-works) built + sent: performTube (Faris: keyed params + air angle layer + world-angle tube spring + hands solved on the final pose), smgBurst (short tracers), crate prop, R128 (CMU 128_10 dive roll, X3's lo bake). QA g0-5 PASS; MP4 /Volumes/Workspace/Scratch/i/vid/upandover/up_and_over.mp4; beats /Volumes/Workspace/Scratch/i/r/uo2/.
  Lessons: perform calls post twice per step (t and t-0.07): never step a spring there unless t advances; a facing flip needs straight arms (elbow offset < 4.7 px) and hand targets that never pass through the shoulder; clip knees folded past 165 wrap into a 'backwards knee'.
- 28 Oct ~18:xx: UP AND OVER v2 APPROVED (empty bore; tubeState + rpgEmpty, spares tail-first). ONE ARM (rpg.the-tail, Amjad) built + sent: pistolShot, limp-arm pendulum (handB), muzzle-on-the-dirt clamp, lying pose via params (t -86, drop 56, feet out). QA g0-5 PASS; MP4 /Volumes/Workspace/Scratch/i/vid/onearm/one_arm.mp4; beats /Volumes/Workspace/Scratch/i/r/oa2/.
  Lesson: the solver grounds the LOWEST point: any hand target below the body (a dead arm, a bracing hand) lifts a lying body off the floor: clamp hand targets to the body's own level when down.
  Next: MINED (rpg.tilt).
- ONE ARM v2 sent (faceless fixes). FACELESS RULE for every rpg kill from now on: backpack58 (never RP.backpack), shoulder hold F ['sh', 11, 15] (not 11,4), a one-handed / sagging tube uses jawGrip, wounds below the head line, nothing flying over a head. headcrop.mjs (tools) for 4x head checks.

## PARKED 28 Oct (coord: render slots go to A's verify sweep of the 254 unbadged live kills)
- LIVE 58k_w_rpg_s3.js = /Volumes/Workspace/Scratch/i/work/rpg_s3.pre_mn.js (QUIVER + UP AND OVER + ONE ARM, all approved, REPLACED_LIVE + DONE, backpack58 + hold [11,15]); work copy rpg_s3.js == live. No MINED live (rpg.tilt still the old TILT). No renders / Chrome of mine running.
- MINED WIP: /Volumes/Workspace/Scratch/i/work/rpg_s3_wip_mn.js (= live + the MINED block + the QUIVER sidearm-throw fix).
  - QUIVER fix (coord/A: her front arm across her chin at film 8.33-8.45): the spare is drawn back low past her hip and thrown sidearm at chest height (keys THROW-0.22 [-12,12], THROW-0.1 [-20,2], THROW+0.02 [32,4]). NOT yet QA'd: re-run motionqa half-mast g0-5 + a beat at 3.3-3.65 before it goes live.
  - MINED status: blocking works (lean under R1, weave, crouch-stab with the mine clipped at the floor line, backing off, the bait, CMU 127_03 charge placed so the last full-stride plant (either foot, STEPF) lands on the mine, blast ladder). Hiba's run start V(819) at 4.61, mine XM 700, Faris XB 608.
- EXACT NEXT STEP on resume: cp rpg_s3_wip_mn.js rpg_s3.js; srr.sh rpg_s3; scrub rpg.tilt 0-9 at 0.2 s; check (a) the crouch: muzzle on the dirt (aimW floor clamp added), the spare in his hand turning nose-down, the stab at XM; (b) her lean under R1 clears the rocket; (c) her foot lands on the mine at T.STEP (headcrop / full beats at STEP-0.1..STEP); (d) the multicam inserts (noseCam XM, bootCam 'f'+STEPF). Then motionQA g0-5 (fix fails), perf, mapcount, beats + 6 finals, video.cjs MP4, ledger line for rpg.tilt, send to coord. Then the queue: ON THE STRAP, PIGGYBACK, JOUST, WINDED, TWO TUBES, mids, skins (unless coord switches to the 'best set' plan).

## WRAPPED 28 Oct night (coord: the user moves us to porting kills into the game in batches)
- LIVE 58k_w_rpg_s3.js (== /Volumes/Workspace/Scratch/i/work/rpg_s3.js): THE QUIVER (rpg.half-mast), UP AND OVER (rpg.in-the-works), ONE ARM (rpg.the-tail), all approved, REPLACED_LIVE + DONE; THE QUIVER chin fix (sidearm throw) + strict-faceless bundle fix (flat spare arc, bundle low on the chest) installed, motionqa strict PASS g5/g0 (chin fix g0-5).
- MINED (rpg.tilt): BEHIND THE TEST FLAG (registers only with ?i58test in the page URL or K58I_MINED()); the live slot stays TILT. NOT approved. Pack sent (/Volumes/Workspace/Scratch/i/vid/mined/mined.mp4, beats r/mn2/). Coordinator fix list (not started):
  1. DISTANCE: Faris backs off well past the mine (4-5 body widths; blast centre >= ~2.5 body heights from him, ~170 px); she steps on it in the open; nothing (his tube) over her head in the charge frames; he flinches / turns a shoulder / raises the tube against the shockwave, a dust push reaches him, never inside the fireball. (Plan: ~10 back steps 3.45-5.2, T.BAIT 5.25, T.CLUB 5.15, T.CHARGE 5.45, len ~9.8; bait aimed at her chest.)
  2. CROWN/PLATE: in the zoomed charge / slow-mo shots his crown sits over the FARIS BASHA name plate: keep crown above plate at every zoom (plateLayout in 58k_cine.js ~2272: k clamps 0.46-1.4 while the crown scales with the camera) or set sc.plateOff58 during the zoomed shots/insets.
  3. GORE LADDER: XT / VH / H distinct: XT nothing recognisable (red mist, crater, small pieces); VH torso + one arm; H torso + both arms, legs gone; the remains lie AWAY from Faris.
  4. FINAL: wide at roll 0, both in frame, Faris clear of the remains with the empty tube lowered.
  Then motionqa g0-5 (strict default), maps, perf, MP4 + beats (3 across the step/blast + 6 finals).
- Other open items: the rpg REFLEX and handcannon FIXABLEs (_tools/coord/verify/handcannon.md) were not started. The rest of the STYLE 3 rpg queue (ON THE STRAP onward) is on hold per the best-set / porting plan.
- No flocks held, no renders running.
