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.
curl -O https://raw.githubusercontent.com/jerseycheese/Narraitor/main/.claude/skills/narraitor-hardest-problem-campaign/SKILL.mdgit clone --depth 1 https://github.com/jerseycheese/NarraitorWrote 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/jerseycheese/narraitor/narraitor-hardest-problem-campaign)<a href="https://agentmods.dev/skills/jerseycheese/narraitor/narraitor-hardest-problem-campaign"><img src="https://agentmods.dev/badge/skills/jerseycheese/narraitor/narraitor-hardest-problem-campaign/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/jerseycheese/narraitor/narraitor-hardest-problem-campaign"><img src="https://agentmods.dev/badge/skills/jerseycheese/narraitor/narraitor-hardest-problem-campaign.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00105 | $0.02405 |
| Opus 5 | $0.00053 | $0.01203 |
| Sonnet 5 | $0.00021 | $0.00481 |
| Haiku 4.5 | $0.00011 | $0.00241 |
Grade A, and why
narraitor-hardest-problem-campaign 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 11d 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.
npm run dev # then: curl -s localhost:3000 | head -1 -> HTML How it starts
The opening of the file, as written. The whole thing — 112 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Campaign: close the v1.0 gate (and prove the AI play loop)
1. Purpose
Drive the release gate to a decision with evidence. Everything automated is already strong (2399 unit tests, visual regression, boundary gates); the hard residue is the live AI loop, which only a disciplined manual campaign can validate. This skill is that campaign, resumable by any session.
2. When to use
Release-gate work; "is v1.0 shippable"; full play-loop validation; resuming a partially-run campaign (start at the phase whose evidence is missing).
3. When not to use
- A single bug inside the loop →
narraitor-debugging-playbook+ change-control fix loop. - Post-1.0 ambitions →
narraitor-product-frontier.
4. Inputs required
Local Mac (visual suites are macOS-only), ~2 focused hours for Phase 3, and a working Gemini key: for the dev server, set GEMINI_API_KEY in .env.local (server-side fallback via resolveApiKey); alternatively enter a key in the app at /settings/providers (BYO path — sent per-request as the x-provider-api-key header). Phase 3 must exercise the BYO path at least once, since that's what players use.
5. Procedure
Phase 0 — preflight.
git fetch && git status # on develop, clean, up to date — or stop
npm ci && npm test && npm run type-check && npm run lint && npm run lint:css
lsof -nP -iTCP:3000 -sTCP:LISTEN # know who owns the port before starting
npm run dev # then: curl -s localhost:3000 | head -1 -> HTML
Expected: all green (baseline 2026-07-04: 353 suites / 2399 tests). Branch: any red here is NOT campaign work — fix via debugging-playbook first.
Phase 1 — confirm what the gate still contains.
gh issue view 1417 --json title,state,body # v1.0 QA tracking epic
gh issue view 1320 --json title,state # release tracking
gh issue list --milestone "" --label MVP --state open
gh issue view 1434 --json state,title # last open QA finding (character-creation DS/UX)
gh issue view 1477 --json state,title # touch targets - launch-blocking? ASK OWNER
Expected (as of 2026-07-04): QA findings #1423–#1438 closed except #1434 and post-1.0 #1438. Branch: if new blockers appeared, list them, triage against the roadmap (public_docs/development/mvp-roadmap.md), and get owner sign-off on the blocking set before proceeding. #1477's launch status is owner-confirmation-needed — do not decide it yourself.
What ships with it
1 file 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.
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.
- 11d ago First seen · 112 lines · 105 tokens per session scan A 6c47936b51c4
narraitor-hardest-problem-campaign is a skill published in the GitHub repository jerseycheese/Narraitor (30 stars, last pushed yesterday), licensed MIT. It adds 105 tokens to every session and 2,405 once invoked, about $0.0005 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.
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.
tests-run
Execute Unity tests (EditMode or PlayMode) and return per-test results. Supports filtering by test assembly, namespace, class, and method. Refreshes the AssetDatabase first; defers execution across domain reloads if scripts changed. Precondition: every open scene must be saved — dirty scenes abort the run.
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…
unity-agent-workflows
Use for AI-assisted Unity work that needs live repo discovery, project-derived routing, runtime-owner proof, runtime-visible output hard stops, runtime numeric proof for repeated visible-output failures, state-step guards, multi-agent scope ownership, modular C#/asmdef safety, UI/scene/visual asset gates, data-first…
gdunit-driver
Run gdUnit4 unit tests and parse results into structured output. Use this skill after writing or modifying code to verify correctness via unit tests, when diagnosing test failures, or when writing new test files. Triggers: "run tests", "test fails", "write a test", any gdUnit4/unit test mention. Supports both GDScript…
testing-bgs-modpack
A checklist and decision guide for checking a newly installed batch of Bethesda Game Studios game modifications before accepting it as ready.