Guide · Agent skill
How to use the Soak Test Protocol agent skill (soak-test)
Updated · written with AI from the project's own documentation and checked against our catalogue data
The soak-test skill is a Claude agent skill for game projects. When you ask it to run, it builds a timed protocol for a long play session, from 30 minutes to several hours, listing what to watch for slow memory growth, frame rate drift, crashes, audio and input problems, and player fatigue. This guide explains what the skill does, how to install it, how to trigger it, what it needs, and what to check before you trust its output.
Quick start
- 1Install the skill. Download the ZIP from this page and unzip it into .claude/skills/ in your project, or into ~/.claude/skills/ for all projects. You can also upload it under Settings, then Capabilities, then Skills in the Claude apps.
- 2Confirm project files. Make sure project.yaml or .claude/docs/technical-preferences.md exists, with the engine and any performance budgets. Also check that automation-modes.md and yaml-helper.sh are present.
- 3Pick duration and focus. Choose 30m, 1h, 2h or 4h, and memory, stability, balance or all. Use 2h for a first full Polish soak.
- 4Run the skill. Call /soak-test with your chosen arguments, for example /soak-test 2h memory, or ask for it in plain language.
- 5Check memory tool names. At T+0, open the memory tool for your engine and confirm the panel or command names, since the skill marks them as unverified. Write the displayed unit down.
- 6Play and record. Start from a fresh launch and play the session, filling in the observations at each checkpoint in the generated markdown file.
- 7Review the report. Compare each checkpoint against T+0 and note crashes, drift, and fatigue causes in the protocol file for the release gate.
What the soak-test skill does
A soak test is an extended play session run with specific observation goals. The skill is designed for runs of 30 minutes to several hours, aimed at problems that only appear over time: gradual memory growth after scene transitions, frame time that worsens across a session, bugs that appear after a mechanic has been repeated many times, mechanics that feel fun at first but get repetitive, and the point where players run out of new content.
The skill does not play the game. It prepares the protocol and the analysis structure, and a human tester does the playing and fills in the observations. Its output is a markdown report file written to production/qa/soak-test-[date]-[duration].md.
- Memory focus: heap size, object count and leak patterns
- Stability focus: crash, freeze and hang detection
- Balance focus: fun fatigue, content exhaustion and difficulty perception
- All: every observation area above
Install the soak-test skill
Download the ZIP for the skill from this page. You can install it in one of three places.
For a single project, unzip it into the project's .claude/skills/ folder so the skill is available only there. To make it available across your own projects, unzip it into ~/.claude/skills/. You can also upload the skill in the Claude apps under Settings, then Capabilities, then Skills.
- Project only: place the soak-test folder inside .claude/skills/ in your project
- All projects: place the soak-test folder inside ~/.claude/skills/
- Claude apps: Settings → Capabilities → Skills, then upload the ZIP
How to trigger the skill with a request
The skill is user-invocable, so you can call it directly as /soak-test. It accepts two optional arguments: a duration (30m, 1h, 2h or 4h) and a focus (memory, stability, balance or all). If you leave them out, the defaults are a 1h run covering all focus areas.
You can also ask in plain language, for example asking the agent to prepare a 2-hour soak test focused on memory before the release gate. The skill's argument format is what the agent works from, so including a duration and focus in your request keeps the result predictable.
- /soak-test 2h memory
- /soak-test 4h all
- /soak-test 30m stability
/soak-test 2h memoryChoose a duration and focus
Duration sets how many timed checkpoints the protocol contains. A 30-minute soak has checkpoints at T+0, T+10, T+20 and T+30. A 1-hour soak uses T+0, T+15, T+30, T+45 and T+60. A 2-hour soak uses seven checkpoints from T+0 to T+120 at roughly 20-minute intervals. A 4-hour soak uses seven checkpoints from T+0 to T+240.
The skill's own guidance is that 2h is recommended for a first full Polish soak, and 4h is required for games with long session design such as RPGs or simulations. Use 30m for testing a single mechanic or scene.
- 30m: a single mechanic or scene
- 1h: standard run covering most common leak categories
- 2h: recommended for a first full Polish soak
- 4h: deep run for long-session games such as RPGs or sims
What the protocol asks the tester to record
For memory work, the protocol gives engine-specific pointers. In Godot 4 it points to the Debugger Monitors tab, with Static Memory, Object Count and Orphan Nodes. In Unity it points to the Memory Profiler, with Total Reserved Memory, GC Allocated and Object Count. In Unreal it points to the stat memory console command. The skill says these tool, panel and counter names are not confirmed in its reference material, so confirm them in your own editor at T+0 before you start.
The skill uses ratios and changes against the session's own T+0 baseline rather than fixed numbers. The alert for Godot is memory growth above 20% from T+0 after the first 15 minutes. Orphan Nodes should return to its T+0 value after a scene unload. Write down the unit the editor displays at T+0 and keep using it for the whole run.
- Stability: crashes, frame rate against the target budget, audio, HUD rendering and input lag at each checkpoint
- Balance: whether the core mechanic still feels rewarding, perceived difficulty, 'I've seen this before' moments, frustration and peak engagement with causes noted
- Memory: engine counters recorded at each checkpoint, compared to T+0
Read your project and design files first
The skill reads your project settings to find the engine name and any performance budgets such as a memory ceiling, target FPS and frame budget. If those are missing, it falls back to .claude/docs/technical-preferences.md. It also reads design/gdd/game-concept.md for the intended session length and core loop, or design/game-brief.md if the project uses the minimal rigor setting.
It checks the most recent file in production/qa/playtests/ so it does not repeat known issues, and the most recent production/qa/qa-plan-*.md file to see what has already been formally tested.
- Keep performance budgets in project.yaml or technical-preferences.md, or the protocol will show them as not set
- Keep the session length in game-concept.md so the soak can be compared with it
Safety notes: scripts and network access
The skill runs one script. Its allowed tools are Read, Glob, Grep and Write, plus a restricted bash call that can only run the yaml-helper.sh script from the repository's hooks folder to resolve configuration keys. The skill does not use the network. It needs permission to read and write files in your project.
The skill also depends on files from the wider repository: .claude/docs/automation-modes.md and the yaml-helper.sh hook. If those are missing, the skill's behaviour around prompts and file writes is not defined by the source, so keep them in place.
- Runs scripts: yes, the restricted yaml-helper.sh call only
- Uses network: no
- Writes files: the markdown protocol in production/qa/
What people use it for
- Preparing a Polish phase release gate check with a 2-hour memory and stability soak
- Confirming that a memory fix holds over a 1-hour regression soak
- Giving QA testers the same timed checklist for every long session so results can be compared
- Running a 4-hour balance soak on an RPG to see where content runs out
Frequently asked questions
Do I need an AI agent to use the soak-test skill?
The skill is an agent skill that runs inside Claude, either through a project's .claude/skills/ folder, your ~/.claude/skills/ folder, or the Claude apps. It builds the protocol, and a human tester still does the playing and records the observations.
What does the soak-test skill require?
It needs project.yaml or .claude/docs/technical-preferences.md, plus the referenced automation-modes.md and yaml-helper.sh files from the wider repository. It also needs a game engine such as Godot, Unity or Unreal for memory monitoring, and permission to read and write files in the project.
Is the soak-test skill free to use?
The source lists the licence as MIT. Check the licence file in the repository for the full terms before you use or redistribute it.
How long should a soak test run?
The skill covers 30 minutes to several hours. It recommends 2 hours for a first full Polish soak and 4 hours for games with long sessions, such as RPGs or simulations. A 30-minute run suits a single mechanic or scene.
Does the soak-test skill use the internet?
No. The source says the skill does not use the network. It runs one restricted bash call to yaml-helper.sh and otherwise reads and writes files in your project.
What is the difference between a soak test and a smoke check?
The skill describes a smoke check as a broad check of the critical path, about 10 minutes long, and a single-feature playtest as about 30 minutes. A soak test runs much longer to find problems that only appear over time, so it is not a quick smoke check.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
Use soak-test if you run a game project in a Polish phase and need a repeatable, timed checklist for long sessions, or if you need to confirm that a memory or stability fix holds over time. Pick something else for quick smoke checks, single-feature playtests, or non-game projects, since the skill depends on engine and performance settings and its fallbacks are unclear.
Download the skill