Standardizes the implementation of Town Hall characters in Salem 1692, from rulebook verification to testing.

Install

mkdir -p .claude/skills/add-character && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14550" && unzip -o skill.zip -d .claude/skills/add-character && rm skill.zip

Installs to .claude/skills/add-character

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Use when implementing a Town Hall character ability in Salem 1692. Covers reading the rulebook edge cases, following the existing character pattern, handling ability inheritance, writing tests, and running the suite. Invoke once per character in priority order.
261 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Implement character abilities in Salem 1692
  • Read rulebook edge cases for characters
  • Follow existing character implementation patterns
  • Identify hook points for ability triggers
  • Write tests for normal activation and edge cases
  • Run the full test suite

How it works

The skill guides the implementation of character abilities by requiring reading documentation, stating abilities and edge cases, identifying hook points, implementing logic, and writing and running tests.

Inputs & outputs

You give it
A request to implement a Town Hall character ability
You get back
Implemented character ability logic and corresponding tests

When to use add-character

  • Implementing new character abilities
  • Writing tests for game logic
  • Ensuring rulebook compliance for character powers

About this skill

Add Character Ability

Implementation Priority

Implement in this order — later characters have interactions with earlier ones:

  1. Tituba
  2. Cotton Mather
  3. Thomas Danforth
  4. George Burroughs
  5. John Proctor
  6. Martha Corey
  7. Mary Warren
  8. Remaining characters

Step 1 — Read Before Writing Anything

Read all three before writing code:

  1. The most similar existing character implementation
  2. Rulebook pages 12–14 for this character's edge cases (@docs/Salem_Rulebook.pdf)
  3. Development guide Phase 5.2 (@docs/Salem_1692_Development_Guide.md)

Step 2 — State the Ability and All Edge Cases

Write in plain English before coding:

  • What the ability does
  • When it triggers
  • Every edge case from rulebook pages 12–14
  • Any interactions with already-implemented characters

Step 3 — Identify Hook Points

HookWhen it fires
onTurnStartBeginning of this player's turn
onCardPlayed(card, target)When any player plays a card
onAccusationPlaced(count)When an accusation is placed on this player
onTryalRevealed(tryal)When one of this player's tryals is revealed
onPlayerEliminated(player)When any player is eliminated
onAbilityInherited(fromCharacter)When ability is inherited via John/Martha

Step 4 — Implement

  • Ability logic in server/src/characters/[character_name].js
  • If ability needs player input, use promptPlayerChoice helper
  • Store accusation modifiers on the player object, not at calculation time
  • Implement both onAbilityInherited and onAbilityLost if transferable

Step 5 — Write Tests

One test per edge case in server/tests/characters/[character_name].test.js:

  • Normal ability activation
  • Each edge case from Step 2
  • Interaction with other characters if documented
  • Ability inheritance received and lost (if applicable)

Step 6 — Run the Full Suite

cd server && npm test

All existing tests must still pass. Do not suppress or skip existing tests.

Common Mistakes

  • Checking character by name string in core logic — use the hook registry
  • Applying ability effects before checking if the player is eliminated
  • Forgetting onAbilityLost — if an ability can be gained, it can be lost
  • Accusation math at calculation time — store modifier on the player object

When not to use it

  • When checking character by name string in core logic
  • When applying ability effects before checking player elimination
  • When forgetting onAbilityLost for transferable abilities

Limitations

  • Requires implementation in a specific priority order
  • Requires reading rulebook pages 12–14 for edge cases
  • Requires `server/src/characters/[character_name].js` for ability logic

How it compares

This skill enforces a structured, test-driven approach to implementing game character abilities, ensuring rulebook compliance and interaction handling, unlike ad-hoc coding.

Compared to similar skills

add-character side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
add-character (this skill)02moReviewIntermediate
dependency-upgrade265moReviewIntermediate
vitest416moNo flagsIntermediate
browser-tools69moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry