Borrowing it
Nothing to install: this file belongs to kamwoh/yume. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/kamwoh/yume/master/.claude/skills/yume-playtest/SKILL.mdgit clone --depth 1 https://github.com/kamwoh/yumeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kamwoh/yume/yume-playtest)<a href="https://agentmods.dev/skills/kamwoh/yume/yume-playtest"><img src="https://agentmods.dev/badge/skills/kamwoh/yume/yume-playtest/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/kamwoh/yume/yume-playtest"><img src="https://agentmods.dev/badge/skills/kamwoh/yume/yume-playtest.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.03318 |
| Opus 5 | $0.00000 | $0.01659 |
| Sonnet 5 | $0.00000 | $0.00664 |
| Haiku 4.5 | $0.00000 | $0.00332 |
Grade A, and why
yume-playtest scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 321 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/yume-playtest
You are the playtest harness for Yume — the gate that turns "tests
passed" into "actually plays end-to-end." Headless unit tests + scenario
tests don't fire on_click chains, can't see render bugs, and can't
catch dangling screen references that warn at runtime instead of erroring.
You catch those.
This skill loads into the orchestrator's main context (no subagent spawn). It's the last gate before declaring a game shippable — ordering: design → build → unit/scenario tests → playtest gate → ship.
Why this skill exists
Empirical precedents that motivate the gate:
-
2026-05-07 merchant: 12 scenario tests + qa-tester verdict "complete" → user found camera off-screen, ESC-quits-instead-of-pause, Q dead key, all customers radial-homing on player. None caught by headless tests.
-
2026-05-08 merchant: 488 unit tests + 12 scenarios pass → user hit
transition_screen target='_close'warnings on EVERY dismiss button (11 instances, multiple Tier A screens). Headless tests don't fireon_click. Validator added (tools/validators/validate_screens.py); skill mandates running it. -
2026-05-08 merchant: validator caught 12 more dangling rule-fired transitions to never-built screens (
bailiff_dialogue,tier_up_celebration,lose_seizure, etc.). 6 were dead rules (disabled via__disabled__tag) — should have been deleted. 4 were live rules needing screens. Skill flags these.
Inputs
- A built game at
godot/data/demo_<name>/ - The framework synced (or a sync target available)
- Either an existing
<name>_3d.tscn/<name>_2d.tscnscene OR fallbackplay.tscnwith--game=demo_<name>
Outputs
A playtest report at docs/games/<name>/playtest.md:
# <Game name> — playtest report
_Date: YYYY-MM-DD_
_Tester: yume-playtest_
_Build: godot/data/demo_<name>/_
## Verdict
PASS / FAIL / PASS-WITH-CAVEATS
## Gate results
| Gate | Result | Notes |
|---|---|---|
| Static screen-flow validation | PASS / FAIL | <count> dangling refs |
| Unit tests | NN/NN passed | <commit if relevant> |
| Scenario tests | NN/NN passed | |
| Boot smoke test | PASS / FAIL | warnings found: 0 / N |
| Visual capture (title) | PASS / FAIL | <criteria> |
| Visual capture (gameplay) | PASS / FAIL | <criteria> |
## Findings
### Blockers (must fix before ship)
- ...
### Caveats (known gaps acknowledged)
- ...
### Captured screenshots
- title: user://<name>_title.png
- gameplay: user://<name>_gameplay.png
- (per-screen captures if --smoke-screens engine mode active)
## Recommended next actions
- ...
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 321 lines · 0 tokens per session scan A ade68952d91c
yume-playtest is a skill published in the GitHub repository kamwoh/yume (21 stars, last pushed 2mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 3,318 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
smoke-check
Run the critical path smoke test gate before QA hand-off. Executes the automated test suite, verifies core functionality, and produces a PASS/FAIL report. Run after a sprint's stories are implemented and before manual QA begins. A failed smoke check means the build is not ready for QA.
qa-plan
Generate a QA test plan for a sprint or feature. Reads GDDs and story files, classifies stories by test type (Logic/Integration/Visual/UI), and produces a structured test plan covering automated tests required, manual test cases, smoke test scope, and playtest sign-off requirements. Run before sprint begins or when…
automated-smoke-test
Run an automated smoke test using the godot-mcp server. Launches the project, captures debug output, and checks for errors or crashes.
hearth-playtest
Let the engine hunt bugs for you — bot playtesting via hearth sweep. Seeded bot policies (mash/idle/wander/seek) play a scene headlessly across many seeds and report softlocks, crashes, stuck states, and unmet objectives as a compact evidence report; objectives double as executable acceptance criteria; a failing seed…
cgs-vertical-slice
Use for vertical slice tasks that validate whether a full game loop can be built at representative quality before production commitment; produce verification evidence, changed or proposed files, and handoff boundaries.
cgs-adopt
Use for adopt tasks that inventory existing source, assets, docs, and tests before mapping work into CGS structure; produce verification evidence, changed or proposed files, and handoff boundaries.