Claude playtests and fixes Crossword Dungeon features
Jeff Schomay reports Claude Code implementing five special encounters, playing through fixtures and fixing a cage escape bug that the existing tests missed.
Original prompt
Shared by the source author. See source notes for context.
Time for milestone 13. Do them one at a time, playtesting happy path and different scenarios each time to confirm it works completely
Reach people exploring AI agents
See placements →Evidence at a glance
Sourced account- Source author
- Jeff Schomay
- Original account
- Read the source ↗
- Published
- 28 Apr 2026
- Source link checked
- 15 Oct 2026
- Reported result
- Schomay reports five special encounters implemented and playtested, including a cage-state bug caught through gameplay despite passing existing tests.
- Human involvement
- Schomay follows the session and manually playtests afterward, finding further bugs and feel issues that he sends back for correction.
A linked account supports attribution. It does not mean we independently reproduced its result.
Report an issue with this case
Open correction emailOpens your email app with the case link included. Nothing is sent automatically.
How the agent did it
- Wrap the existing game with text snapshots and synthetic input events.
- Give Claude a milestone and require fixture-based playtesting after each feature.
- Observe movement remain blocked after escaping the cage and trace the uncleared state flag.
Jeff Schomay wanted an agent to experience his browser game rather than only reason about its code. Crossword Dungeon combines crossword answers with rooms, monsters and traps. Because it is text heavy and turn based, he had the agent create a Node.js wrapper that exposed the unchanged game logic through textual state snapshots and synthetic input events.
With that interface, Claude Code could read the current state, choose a move, send an HTTP request and inspect what happened next. Schomay then gave it a development milestone and required it to playtest each feature before proceeding. The published session covers five special encounters, including a thieving monster and a cage trap.
The cage example shows why interaction mattered. Existing automated tests passed, but after solving the room the player still could not move. Claude traced the problem to a cage flag that had not been cleared, edited the implementation and repeated the sequence until movement worked. The author reports completing the five encounters in that session. He still spent time manually playing afterward and found further bugs and feel issues, so this was a useful development feedback loop with continued human review.
Prompt
Original prompt
Source: Blog · Jeff Schomay
Frequently asked questions
Why use a text interface?
The game is turn based and text heavy, making readable state snapshots practical without a large screenshot sequence.
What bug did playtesting reveal?
Solving a cage room did not clear the caged state, so the player remained unable to move.
Did this remove manual playtesting?
No. Schomay still found additional bugs and game-feel problems in his own later play session.
More details
Remaining steps
- Fix the flag, repeat the interaction and complete the other special encounters.
About this account
Claude reads game state, chooses interactions, creates fixtures, edits code and repeats real gameplay sequences to check fixes.
Firsthand account opened and read. Original page article:published_time and JSON-LD datePublished are 2026-04-28T12:48:31.603Z. Outcomes are author-reported and were not independently reproduced. The author still found bugs and feel issues during subsequent manual playtesting. Original prompt box contains a short excerpt of the author's published instructions.
Credit: Jeff Schomay
Source published 28 Apr 2026
Source checked 15 Oct 2026
Tools and topics
Node.js playtesting server · HTTP game controls · ASCII state renderer · Claude Sonnet 4.6
Games · Claude Code
Editorial completeness: 100/100. Measures documented fields, not agent performance or verified outcomes.