Narraitor: Skill for Claude Code

.claude/skills/narraitor-playtest-loop/SKILL.md

narraitor-playtest-loop is a skill for Claude Code from jerseycheese/Narraitor. It costs 120 tokens per session (3,231 once invoked), scanned A, original, MIT.

A playtesting process for running a game through its real browser interface over many turns and having the story evaluated. Playtesting means trying the game as a player would to find problems that automated checks may miss.

In plain words
What is it for?
Testing story quality, finding where a narrative loses interest, and evaluating releases or prompt changes through live game sessions.
Why use it?
A game can pass technical tests while its story becomes repetitive or boring. This process checks whether the narrative remains engaging during an actual session.

Skill for Claude Code

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

This is jerseycheese/Narraitor's own configuration. It tells Claude Code how to work on Narraitor 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 Narraitor configures →

Reuse

Borrowing it

Nothing to install: this file belongs to jerseycheese/Narraitor. 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/jerseycheese/Narraitor/main/.claude/skills/narraitor-playtest-loop/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/jerseycheese/Narraitor

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 narraitor-playtest-loop

README.md
[![agentmods](https://agentmods.dev/badge/skills/jerseycheese/narraitor/narraitor-playtest-loop.svg)](https://agentmods.dev/skills/jerseycheese/narraitor/narraitor-playtest-loop)
Your own site
<a href="https://agentmods.dev/skills/jerseycheese/narraitor/narraitor-playtest-loop"><img src="https://agentmods.dev/badge/skills/jerseycheese/narraitor/narraitor-playtest-loop.svg" alt="Measured on agentmods" height="20"></a>
Per session 120 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,231 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
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.00120 $0.03231
Opus 5 $0.00060 $0.01615
Sonnet 5 $0.00024 $0.00646
Haiku 4.5 $0.00012 $0.00323

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

Security

Grade A, and why

narraitor-playtest-loop scanned grade A with 1 finding 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 6d 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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

not copy its curl-chaining workaround for live generation: browser automation reaches the
.claude/skills/narraitor-playtest-loop/SKILL.md · 231 lines

How it starts

The opening of the file, as written. The whole thing — 231 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Playtest loop

1. Purpose

Every automated tier in this repo can be green while the game is boring. Unit tests prove functions return, visual specs prove pixels match, and neither reads a single sentence of prose. This skill closes that gap by playing the actual game through the actual UI against live Gemini, capturing the transcript, and handing it to a judge who has never seen the app.

It answers one question: does the story hold up over a real session, or does it fall apart somewhere around turn twenty.

2. When to reach for this instead of a sibling skill

narraitor-qa-walkthrough finds defects before a release. It walks every surface and asks whether things work. Its Phases 4 through 6 delegate the live story loop to this skill. Do not copy its curl-chaining workaround for live generation: browser automation reaches the real path on its own, per section 3. That skill has not been corrected yet.

narraitor-ai-quality-discipline sets the evidence bar. It says one good generation is a signal, not evidence, and it owns the eval matrix for prompt changes. This skill is one concrete way to meet that bar for story quality specifically.

visual-crawl and design-loop cover pixels. Neither reads the story.

3. The harness

Real AI runs fine under browser automation. isPlaywrightEnv() in src/lib/utils/isPlaywrightEnv.ts trips only when the user agent contains "Playwright" or window.__PLAYWRIGHT__ is set, and the second only happens inside tests/visual/utils/seedTestData.ts. A browser session that avoids both runs the real generation path end to end. Do not call seedTestData and do not call mockApiEndpoints, or the whole loop silently no-ops.

Setup, in order:

  1. Reset the worktree onto refs/remotes/origin/develop so the build under test is current
  2. Copy .env.local from the main checkout, which already carries GEMINI_API_KEY. Never type a key into the BYOK wizard.
  3. Set .claude/launch.json's Next.js port to this worktree's port from node scripts/worktree-port.js, then start the server through the preview tooling
  4. Confirm the startup log says Environments: .env.local

Read the full file on GitHub · 231 lines

Files

What ships with it

3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

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. 6d ago First seen · 231 lines · 120 tokens per session scan A b212fbd4d3dc

Subscribe to this mod's changes

narraitor-playtest-loop is a skill published in the GitHub repository jerseycheese/Narraitor (30 stars, last pushed today), licensed MIT. It adds 120 tokens to every session and 3,231 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). 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

develop-web-game

Use when Codex is building or iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes, run a Playwright-based test script with short input bursts and intentional pauses, inspect screenshots/text, and review console errors with rendergametotext.

netease-youdao/LobsterAI · 64 tokens

threejs-qa-release

Verify and release Three.js browser games: playtest QA, automated bot playtests, mobile and responsive checks, production builds, static-hosting base paths, debug gating, bundle review, screenshots, visual regression baselines, canvas-pixel inspection with measured metrics, and release risk reports.

majidmanzarpour/threejs-game-skills · 63 tokens

test-playable-web-games

Test a playable browser game end to end with deterministic fixtures and real browser evidence. Use for gameplay QA, regression testing, controls, accessibility, responsive/mobile testing, save flows, console checks, performance smoke tests, and release verification.

MengTo/Skills · 52 tokens

pie-testing

Start, stop, and query Play-In-Editor (PIE) sessions for runtime testing of Blueprints, gameplay logic, widgets, AI, and any in-game behavior. Use when the user asks you to "play", "test", "run", "PIE", "start/stop the game", or otherwise needs a live game world to validate changes.

kevinpbuckley/VibeUE · 76 tokens

godot-e2e

Write and run E2E (end-to-end) game tests using the godot-e2e framework. Python controls a live Godot game over TCP — Locator-based semantic queries, expect() auto-retry assertions, and engine log capture make failures self-diagnosing. Use this skill whenever you need to: Test actual gameplay: player movement…

valkor-ai/loom · 189 tokens

visual-qa

Inspect Godot screenshots or short frame sequences for acceptance issues. Use after capturing a scene, when checking camera framing, missing assets, UI overlap, collision visualization, animation, or a black/empty viewport.

valkor-ai/loom · 45 tokens