yume: Skill for Claude Code

.claude/skills/yume-playtest/SKILL.md

yume-playtest is a skill for Claude Code from kamwoh/yume. It costs 0 tokens per session (3,318 once invoked), scanned A, original, MIT.

A playtest skill that checks whether a Yume game can actually be played from start to finish, including visible screens and interactive controls. It complements automated tests, which may not click buttons or see rendering problems.

In plain words
What is it for?
Use it as the final testing gate before declaring a game ready to ship.
Why use it?
It catches problems that ordinary unit and scenario tests can miss, such as broken click actions, incorrect screen links, camera issues, and controls that do not work in practice.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: mentions subagents.

This is kamwoh/yume's own configuration. It tells Claude Code how to work on yume itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything yume configures →

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is python3 tools/validators/validate_screens.py demo_<name> --strict.

View source ↗ kamwoh/yume
Reuse

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.

Copy the file
curl -O https://raw.githubusercontent.com/kamwoh/yume/master/.claude/skills/yume-playtest/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/kamwoh/yume

Made for: Claude Code.

Wrote 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.

agentmods badge for yume-playtest

README.md
[![agentmods](https://agentmods.dev/badge/skills/kamwoh/yume/yume-playtest/github.svg)](https://agentmods.dev/skills/kamwoh/yume/yume-playtest)
Your own site
<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.

agentmods 80×15 button for yume-playtest

Your own site · 80×15
<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>
Per session 0 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,318 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 10d ago against content hash ade68952d91c, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

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.

.claude/skills/yume-playtest/SKILL.md · 321 lines

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 fire on_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.tscn scene OR fallback play.tscn with --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
- ...

Read the full file on GitHub · 321 lines

Changes

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.

  1. 10d ago First seen · 321 lines · 0 tokens per session scan A ade68952d91c

Subscribe to this mod's changes

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.

Related

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.

striderZA/OpenCodeGameStudios · 61 tokens

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…

striderZA/OpenCodeGameStudios · 73 tokens

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.

striderZA/OpenCodeGameStudios · 35 tokens

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…

echoo19/hearth · 112 tokens

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.

merlinhu1/codex-game-studio · 43 tokens

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.

merlinhu1/codex-game-studio · 42 tokens