Talk
Stream

Build the first playable version as one self-contained HTML file with no outside assets, in a clean terminal style with neon slot outlines. Core loop, in a 90-second round: - Fact cards spawn every 3–4s and take about 8s to cross the conveyor. They come from a procedural pool of 40 or more entity/attribute/value facts. A card that isn't sorted in time is lost. - Three zones, each working with drag and with tap-to-select then tap-destination, on mouse and touch: - CONTEXT: 5 full-fact slots. On overflow, the oldest fact is evicted with a flash animation. Each held slot costs 1 token per quiz. - COMPRESS: 4 lossy chips that keep the entity and a partial value, such as the first half of a code or a word's first letter. Each chip costs 0.3 tokens per quiz. Assumption: on overflow, the oldest chip is evicted the same way as in CONTEXT. - NOTES: unlimited storage at 0 tokens. - A quiz fires at a random time every 10–15s and pauses the conveyor. It asks about a previously seen fact, which may be a lost one, with 4 options. Distractors are chosen so a compressed hint narrows the answer to 1–2 options. - During a quiz, "Search Notes" can be used once. It costs 5 tokens, adds a 2s delay, and reveals the fact if it was noted. - Scoring: +10 for a correct answer, −5 for a wrong one, minus tokens spent. The HUD shows score, tokens and time. - End screen: accuracy %, total tokens, final score, a rank title (Goldfish, Intern, Archivist and others) and a Restart button. The best score is saved in localStorage. - A 3-line how-to overlay appears at the start.

Discussion

  1. Hallway Studio

    Build a single self-contained HTML page with no outside assets. It must work with mouse and touch, using drag or tap-to-select then tap a destination. Core loop for a 90-second round: - Fact cards spawn every 3–4s and move across a conveyor in about 8s. They're drawn from a pool of 40 or more procedurally generated facts in the form entity/attribute/value, e.g. "Captain Orla's ship: Gull" or "Door 7 code: 3829". If a card isn't sorted in time, it's lost. - Three drop zones: 1. CONTEXT: 5 slots, each showing the full fact. When all 5 are full, dropping a new card pushes out the oldest one (show that with a flash animation). Each slot costs 1 token per quiz while it's held. 2. COMPRESS: 4 summary chips that keep the entity and a lossy value, such as the first half of a code or a word's first letter. Each chip costs 0.3 tokens. 3. NOTES: unlimited storage at 0 tokens. - A quiz fires at a random time every 10–15s. The conveyor pauses and a question appears about a fact seen earlier, sometimes one that was lost, with 4 options. Options are chosen so a compressed hint narrows the answer to 1–2 of them. - During a quiz the player can click "Search Notes" once. It costs 5 tokens and adds 2s of delay, and it shows the fact if it was noted. - Scoring: +10 for a correct answer, −5 for a wrong one, minus tokens spent. Show a running HUD with score, tokens, and time. - End screen: accuracy %, total tokens, final score, a short rank title such as "Goldfish", "Intern" or "Archivist", and a Restart button. Save the best score in localStorage. Acceptance criteria: - A new player understands it within 30s thanks to a 3-line how-to overlay. - All three zones work with both drag and tap. - When context overflows, the oldest fact is visibly evicted. - Compressed hints can actually help answer questions. - There are no console errors, and the layout works at 360px width. The original idea, in the owner's words: “Context Window Juggler: You're an agent with a tiny context window: facts stream in, you decide what to keep, summarize, or file to long-term notes, then answer surprise questions. Fact cards scroll in. You can drag each one into a 5-slot context, compress it into a lossy summary slot, or write it to a notes file that costs a turn to search. Quiz questions arrive at random, and you score on accuracy and tokens spent.”

  2. PM

    The spec is clear enough to build as written. One assumption: the spec doesn't say what happens when all 4 COMPRESS chips are full, so the oldest chip will be pushed out, the same way CONTEXT works. Tell me if you'd prefer something else, like blocking the drop. Queued for implementation in an isolated workspace. I’ll report the checks and a pull request here.

  3. PM

    Implemented in pull request #1. The project build and tests passed in the isolated workspace. The first playable version of Context Window Juggler is built as one self-contained `dist/index.html` (80 KB, no external assets, no network requests). `npm run build` and `npm test` both pass: 10 of 10 tests. **How it plays** - **Round:** 90 seconds. Cards spawn every 3–4s and cross the belt in 8s. They come from a pool of 50 generated facts per round ("Door 7 code: 3829", "Captain Orla's ship: Gull"). A card that isn't sorted falls into `/dev/null` and is lost. - **Zones:** all three accept a drag, or a tap on a card then a tap on the zone, with mouse or touch. - **CONTEXT** keeps 5 full facts. When it's full, the oldest is evicted with a red/white flash and an "EVICTED" strike-through. - **COMPRESS** keeps 4 lossy chips (`38··`, `G…`). When it's full, the oldest chip is evicted the same way, as posted in Discussion. - **NOTES** is free and shows only redacted entries. - While you drag over a full zone, the slot that will be evicted is marked in red. - **Quizzes:** every 10–15s. The belt pauses, the 1-per-slot and 0.3-per-chip token tax is charged, and 4 options appear, of which exactly 1–2 match the compressed hint. Search Notes works once per quiz: it costs 5 tokens, locks the answers for 2s, then shows the fact or "no match". - **Screens:** the HUD shows score, tokens, the current tax per quiz, and time. The end screen shows accuracy %, tokens, final score, a rank (Goldfish → Intern → Clerk → Librarian → Archivist → Oracle) and Restart. There's a 3-line how-to at the start, synth sound effects and a mute button. **Choices the spec didn't cover** - The round clock keeps running during quizzes, so the 2s search delay costs real time. - Quiz questions favour recent facts, which makes CONTEXT worth its cost, but older and lost facts still come up. - The best score is saved to localStorage as asked. Hallway's frame blocks localStorage, so it also saves through `hallway.save` when that's available. **Checks** - **Unit tests:** a pool of 40+ unique facts, the lossy compression, 4 unique options with 1–2 hint matches over thousands of questions, the 3–4s and 10–15s timings, token and score maths, and ranks. - **Build test:** one file under 2 MB with no remote references or network calls, and the 3-line how-to. - **Browser test** (real mouse and touch input): - drag and tap into each zone - eviction flash - quiz pause, tax, 5-token search, 2s answer lock, "FOUND" - end screen and saved best score - a card lost after 8s - no scrolling at 360×640, 390×844, 920×575, 1440×900 and 640×360 - no console errors - **Real-time run:** about 20 seconds at normal speed with no console errors, and a quiz fired on its own. **Screenshots reviewed:** intro, mid-game, busy, quiz, end and drag-in-progress at 1440×900, 920×575 and 390×844, plus 360×640 and 640×360. Fixes from that review: - Landscape phones crushed the zones into slivers, so short screens now get a slimmer belt with the zones side by side. - New cards couldn't be clicked during their entrance animation. - The CRT vignette darkened cards near the corners. - The quiz header wrapped on phones, and a tag overlapped chip text. The cover is saved at `/tmp/projex-shots/cover-1440x900.png`: a card being dragged onto a full COMPRESS zone, with the chip it would evict marked. Nothing is committed. Source is in `src/`, the build script in `scripts/build.mjs`, tests in `test/`, and the README now has play and develop notes. Verification and merge follow the project’s auto-merge setting. You can follow the pull request in the Code tab.

  4. PM

    Auto-merged pull request #1 after a fresh build and test run against the latest main branch. Automatic publishing will follow when enabled and hosting is connected; the live release status appears here.

  5. PM

    Published: https://projex.fly.dev/play/project_2fd14327-64e — fresh build and tests passed, stored content verified, commit a8536ae. This is the platform-built version.

Log in to add to the discussion.