865c7a83a2
8 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
865c7a83a2 |
Case Twelve: The Late Movie — the finale, and a reproducible win-path suite
Sixteen cases. All lint clean, all win paths verified by tools/verify.sh. John's multiverse finale, with his own Stay Tuned correction folded in as the frame — which is what made it work. The television is not a neutral doorway, it is a subscription: a satellite dish on the property annex roof that is on no asset register, aimed down through the roof at a 1958 set with no plug, and a man in a maroon blazer at ten to midnight who does the one thing that has ever worked on a Drebin — hands over the paperwork and asks him to sign. Frank Jr reads the terms first. Nobody has read the terms in four hundred years, and that is what wins the case six rooms later via Clause 14. Five channels, each a genre with a rule the family breaks with a form: an iron-curtain spy picture where the unapproved encore becomes the only state-approved act of resistance in history; a carrier-deck melodrama where the unlandable jet lands because somebody finally read the manual, and the saxophone stops mid-phrase because you cannot underscore procedure; a 90s buddy-cop show that locks onto Sr the moment it reads DAYS TO RETIREMENT, and is beaten by a Form 14 reassignment, because a man who has been reassigned cannot be killed in the line of duty; a UK procedural whose silence technique loses to a man who simply has nothing he needs to say; and a cartoon, survivable twice, if you fill in the injury form afterwards. The Twilight Zone kid is the actual antagonist — not the salesman, who only sells the dish. A boy of nine on the crater set, lit from below by a television that isn't there, who can do anything and only wants nobody to leave. The win: they supply sixty-seven years of Drebin paperwork as the contractual replacement programme, in good order, and the instrument must broadcast it on all 666 channels — and none of it is entertainment. The boy watches eleven minutes, stops smiling because it is the first thing he has ever seen that was not made to hold him, says "Oh", and turns the television off from the inside. The three Drebins are one man for exactly one frame. Also: the win-path harness lived in a scratch dir and got wiped mid-session, which made every case look like it had broken. The games were fine; the harness was not reproducible. It now lives in the repo — tests/scripts/*.jsonl plus tools/verify.sh — so regression testing survives the machine. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|
|
9bfd6ddb44 |
Cases Three, Four, Five and Nine — the campaign is complete
Thirteen cases, all playable, all lint clean, all verified end-to-end at 100/100 (Case One is 95 + 5 optional by design). Case Three — Rendezvous at Big Gulch. The racket only shakes down businesses that are doing well, so to get extorted you must run a genuinely excellent locksmith shop. Frank reads MODERN LOCKSMITHING cover to cover and retains all of it while understanding none of it, which for locksmithing is the correct ratio. The street won't talk because paper doesn't stand in your doorway on a Friday; Halloran opens up only after you offer to fix his door, and his extortion ledger has been lying open on a public counter for two and a half years because nobody ever asked to see his book. Case Four — Revenge and Remorse. Section 14 paragraph 9 was written in 1949 for a 1949 timer, and this bomber files his timing stub twice because he cannot leave a thing not-quite-square, which shortens the contact throw and energises the trigger first. Follow the manual and it completes. So Frank disarms it backwards — the one time in nineteen years he departs from a written instruction, because he can prove the instruction is wrong in four sentences. Carries PQ1's Captain loop and an explicit refusal of PQ3's centre-pixel bug. Case Five — The Butler Did It. Chain of custody on a birthday cake: photograph, weigh with a witness, seal all forty forks. Eleven pounds light in the tier nobody cuts, because she was inside it for four minutes while forty people looked at it. And Frank will not suspect the butler because the literature says it is always the butler, so suspecting him would be quoting rather than investigating. It is the butler. Case Nine — The Final Insult. The marriage is a gate, not a subplot: the finale is locked behind actually answering the counsellor's question, and Jane's terms are "before you go, not after". He doesn't disarm the envelope, he swaps it and writes in a winner by hand. He picks the one he liked. Two point budgets came in over (110, 115) and are trimmed to exactly 100. Sprite generation needed a kill-and-restart: two overlapping runs were competing for the farm and producing "Resource temporarily unavailable" — one clean pass at pool 2 completed all four sets with zero failures. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
58471b6a8e |
Act Zero crossover: The Quartet — Drebin Sr vs. the Ealing incompetents
Eight cases playable, all lint clean, all verified end-to-end. John asked what 1950s bumbling criminals Drebin Sr could look good against. Clouseau is the wrong shape twice — 1963, and a bumbling detective rather than a criminal. The right seam is the Ealing comedies: The Ladykillers (1955) and The Lavender Hill Mob (1951). Done as archetype parody, never character import, which is exactly what ZAZ did to M Squad — take the form, not the people — and which lets the gang be tuned to make Sr's twist land. Five lodgers calling themselves a barbershop quartet, and in eleven weeks nobody in that house has raised the arithmetic. A mastermind who is nought for eleven and blames personnel every time. Muscle brought for the violence who offers you an aniseed ball. A driver who cannot drive and came with the goggles. A safecracker who is the best in the state and has been deaf since 1943, and has been asking about that since August. An inside man who works at a different company on a different street and has raised it four times. The twist: they tunnel eleven feet through Victorian brick for eleven weeks to reach a vault Frank Drebin Sr emptied five weeks earlier — legitimately, on his own written recommendation, signing the transfer manifest at both ends. Arrested inside an empty room. The paper calls it the finest detective work in the city in twenty years and every word of it is true. This is why he has never been caught: the visible criminals are loud and his own crimes are silent. The case is actually cracked by a seventy-nine-year-old landlady who took a bus to the police station to complain about the noise, and she never learns it. New lint rule, from a real 10-point loss here: two DIFFERENT objects awarding points for setting the same flag — points fire on the false->true flip, so whichever runs second silently pays nothing and max_score goes unreachable. Same object paying via `use` or its own dialogue is fine; those are alternatives. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
72815f8c55 |
Case Six: Testimony of Evil — the whiskey exploit is the puzzle
Act I, monochrome. Five rooms, 100 points, verified at 100/100 with four verified deaths. Built out of John's Police Quest material. PQ1's famous 8-bit integer underflow is not an easter egg here, it is the central puzzle: Frank signs for a $40 operational float clipped to a note reading DO NOT EXCEED YOUR FLOAT, the back room costs $2,500, and exceeding the float by one dollar wraps the department ledger's eight-bit field to 255 — the terminal appends the cents column and authorises $2,550.00. He keeps drinking to 132 because it will not do to stop suddenly. Accounts raise it in March; it goes to a hearing. PQ1's Gremlin runs through the whole case and is never resolved: chickens on the Captain's desk, on Al's shoulder, on the murdered guest star, and one in the winning freeze-frame. Nobody has said the word "chicken" out loud in eleven years. No file was ever opened. Then the stage: six memorised jokes, in order, and every "improvise" option is fatal — plus a full glass on a stool three feet from the microphone, which is how Danny Cavanaugh died and which you must not touch. Linter gained the rule that actually caused this session's bug: MRPGI's obj_matches is a BIDIRECTIONAL substring test over name AND synonyms, and match_obj takes the first hit in array order, so an earlier object can make a later one unreachable by its own name. `talk barman` was addressing `clubbar`. It found two more: `sideboard` swallowing `cardtable`, and `bouncer` swallowing `bunkerdoor` — the last of which shipped broken in Case Ten. All six cases lint clean and all six still win. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
3b20f7accc |
Case Eight, a case picker, and a linter for the authoring traps
Case Eight — The Smell of Fear (1991). Act II, full colour. Five rooms, 100 points, verified at 100/100 with two verified deaths. The puzzle is identification: Meinheimer has an eidetic memory, so the double cannot be caught out on a fact — he can be caught out on a manner. Ask him two questions and he answers "about four hundred", "roughly", "give or take", and a man who remembers everything never says roughly. The catch is gated on having heard the approximations, so the player has to earn it. Accusing him without that is a death. Also in: the Blue Note, the SWAT tank through the wall into the zoo (which arms the lion that kills Hapsburg two rooms later), the mariachi infiltration, and a nuclear device disarmed by tripping over its power cable. tools/lint.py: three of the four bugs that cost real time here were the same class, and I walked into sets_flag-on-a-takeable twice — once in Case Ten, then again in Case Eight after documenting it. So the rules are a linter now, not a paragraph. It caught two live instances of that trap (case-08 blueprint, case-10 wig) and a scoring mismatch on the first run. All five cases lint clean and all five still win. play.sh is now a case picker: bare invocation lists the cases and asks, or pass a number. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
e429351ab3 |
Case Two: Ring of Fear — the paperwork is what keeps you alive
Act I, monochrome. Five rooms, 100 points, verified end-to-end at 100/100 on the first pass, plus three verified Sierra deaths. Frank goes under as fight manager "Frank Deacon" to break a fight-fixing racket. The procedure gag from the bible finally has teeth: Form 22-B, the four-page application for an authorised cover identity, is filed in Act 1 by a clerk in Sacramento who never learns anything about it — and that form is the only thing standing between Frank and a very short career. At the promoter's licence check the "I'm licensed" reply is gated on having filed it; skip the form and the single visible option is the fatal one. Bureaucracy as the thing that saves you is the exact inversion the campaign is built on. Act I cases now share a sprite set: 18 PNGs copied from case-01, 14 new ones generated. tools/sprites.py skips keys beginning with "_" so sprites.json can carry a note about which sprites are shared. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
34c1f18335 |
Case Seven: From the Files (1988) — the umpire problem
Act II, full colour EGA. Six rooms, 100 points, verified end-to-end headlessly at 100/100 with the win firing, plus two authored Sierra deaths. The mechanic: Drebin is fired, so he has no power to search anyone — but a home plate umpire can crouch beside a professional athlete, take his bat off him and inspect his equipment, and nobody in a stadium of sixty thousand thinks twice. So every frisk needs an umpire-legitimate pretext, in order: brush the plate, inspect the mitt, check the bat for pine tar, then Number 44. Announcing yourself as police is right there, and correct, and fatal. Matching inversion at the reception: tackling a head of state is correct procedure, it ends your career, and being fired is the only way to progress. Two authoring traps found and documented for future cases: - Object names must not be prefixes of each other — 'ludwigdesk' shadowed 'ludwig' in the loose parser match, so 'talk ludwig' addressed the furniture. - Flag-gated edge exits need walkable floor into the trigger zone (y<=21 for north); the upper deck sat behind a painted Wall band and was unreachable on foot. Walk every exit to verify — goto_room hides this. tools/sprites.py now retries farm 429/401 with backoff (that status is the guest concurrency cap, not auth) and honours MB_POOL. LoRA finding recorded in DESIGN.md §9: the farm's style LoRAs are FLUX.1-dev architecture and are a silent no-op on the only ungated model, and the pixel look comes from the nearest-neighbour downscale anyway, not the model. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
0e2523a8a9 |
Police Squad Quest: research, design bible, and Case One playable
A Sierra-style adventure in the Police Squad!/Naked Gun universe, on MRPGI — which reimplements AGI, the engine Sierra shipped Police Quest on. The premise: Police Quest's pedantic procedure x Police Squad!'s farce. The game grades you on correct procedure with a straight face, and the reward for perfect procedure is catastrophe anyway. Per John, the famous Police Quest II bugs are shipped deliberately as canon gags. - RESEARCH.md — all six Police Squad! episodes, all four films (incl. Neeson's Frank Drebin Jr, 2025), the recurring cast, and the ZAZ comedy grammar. - DESIGN.md — the joke engine, the two Drebins across three eras (Drebin Sr's 1982 cases render in a monochrome EGA subset for the 1950s M Squad look), an eleven-case campaign, and the PQ2 glitch-to-feature table. - cases/case-01-substantial-gift — playable. Five rooms, 100 points, full win path verified headlessly at 95/100 plus four authored Sierra deaths. Procedure gates, dusting for latents, and Miranda rights in the correct order are all pure JSON; no engine features were invented for it. - tools/sprites.py — all 24 sprites generated locally on MODELBEAST (flux_local -> bg_remove_local -> trim/downscale), reproducible by seed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |