CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

pokemon-player

Play Pokemon via headless emulator + RAM reads.

56

Quality

70%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./optional-skills/gaming/pokemon-player/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

70%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A dense, highly actionable skill body with an excellent verify-everything gameplay loop and concrete server/API commands. Its weaknesses are inlined Pokemon reference knowledge Claude already has and the absence of any reference files, which inflate the main file's token cost.

Suggestions

Move the Gen 1 type chart, gym/badge milestones, and battle decision tree into a references/ file (e.g. references/gen1-battle.md) and link them one level deep, trimming the main SKILL.md.

Replace prose setup instructions with verbatim commands (e.g. 'uv venv && uv pip install -e ".[pyboy]"') to make first-time setup copy-paste ready.

DimensionReasoningScore

Conciseness

The operational guidance (warp waits, building exit trap, save conventions, tunnel setup) is lean and earns its tokens, but the 'Gen 1 Type Chart', 'Gen 1 Quirks', gym/badge milestones, and battle decision tree are Pokemon domain knowledge Claude already has. This is 'mostly efficient but includes some unnecessary explanation' — above 2 because the padding is confined to a few sections, below 4 because those sections are a noticeable share of the file.

3 / 5

Actionability

Concrete, executable commands throughout: 'pokemon-agent serve with --rom ... --port 9876', 'GET /health', 'POST /save', 'ssh -R 80:localhost:9876 ssh://nokey@localhost.run', and a specific action vocabulary. Falls short of 5 because setup steps are described in prose ('Use uv to create the venv and install the package in editable mode with the pyboy extra') rather than given as copy-paste commands.

4 / 5

Workflow Clarity

Startup is a numbered sequence with a health check after 4 seconds, and the gameplay loop is a 7-step OBSERVE→ACT→VERIFY cycle with an explicit validation step ('screenshot after every move sequence... This is the MOST IMPORTANT step') plus feedback loops ('If stuck for 3+ attempts, screenshot and re-evaluate completely') and save-before-risk checkpoints. Matches the anchor: clear sequence, explicit validation, error recovery.

5 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/), so everything is inlined in a ~210-line SKILL.md. Section headers are good, but reference-type material (type chart, milestones, battle strategy) that belongs in a separate file is inlined. This fits 'some structure but... content that should be separate is inline' — above 2 because organization and headers are present, below 4 because no reference files or navigation exist; the under-50-lines exception does not apply.

3 / 5

Total

15

/

20

Passed

Description

57%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A terse, distinctive description that clearly says what the skill does, but it omits any 'when to use' trigger guidance and lacks natural trigger variations (ROM, .gb, game titles). Adding a 'Use when...' clause would resolve its main weakness.

Suggestions

Add a 'Use when...' clause, e.g. 'Use when the user says play pokemon, mentions Pokemon Red/Blue/FireRed, or references a ROM file (.gb/.gbc/.gba)'.

Enumerate 2-3 concrete capabilities beyond 'Play' — e.g. 'runs the game on a local server, saves/loads game states, and streams a live dashboard' — to lift specificity.

Include file extensions (.gb, .gbc, .gba) and Gameboy/Pokemon title synonyms as trigger terms.

DimensionReasoningScore

Specificity

"Play Pokemon via headless emulator + RAM reads" names the domain and mechanism, but 'Play Pokemon' is a single generic action with no enumeration of concrete capabilities (saving/loading, dashboard setup, battle strategy). It matches 'names domain and 1-2 concrete actions, but not comprehensive' — not 4, which requires several specific actions listed.

3 / 5

Completeness

The 'what' is clear (play Pokemon via headless emulator + RAM reads) but there is no 'Use when...' clause or equivalent trigger guidance at all — the judging guidelines explicitly cap completeness at 3 for a missing 'when'. It is above 2 because the 'what' is concrete, not vague.

3 / 5

Trigger Term Quality

"Pokemon", "play Pokemon", and "emulator" are natural keywords a user would say, but common variations are missing: ROM, .gb/.gbc/.gba extensions, Gameboy, and specific game titles (Pokemon Red, FireRed). This matches 'some relevant keywords but missing common variations or synonyms' rather than 4, since more than a few natural terms are absent.

3 / 5

Distinctiveness Conflict Risk

"Play Pokemon" carves out a clear niche with distinct triggers; no other plausible skill would claim this description. Minimal conflict risk, matching the anchor exactly.

5 / 5

Total

14

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository

NousResearch/hermes-agent

Path

optional-skills/gaming/pokemon-player/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.