A Claude Code plugin inspired by Slay the Spire: your project is the run, your agent config is the deck.
Spire
Spire treats Claude Code config like a Slay the Spire run. It scans a repo, deals a class-specific starter deck of skills and rules, then grows that deck as you clear work.
Systems
Run brief
Project brief
BetaProblem
Claude config for a repo either stays generic forever or grows into an unreviewed pile of skills and rules with no feedback loop.
Outcome
Spire, a Claude Code plugin inspired by Slay the Spire, that scans a repo, deals a class-specific starter deck of skills and CLAUDE.md rules into that repo, then grows and prunes the deck through an opt-in reward and ascension loop.
Evidence
- Public repo github.com/hhalperin/spire ships Acts 1-3: deterministic class scan, .spire/deck.json save file, Stop-hook reward loop with campfire review, and an A0-A20 ascension ladder.
- Five starter classes (Defect, Silent, Ironclad, Watcher, Colorless) plus dual-class monorepo runs, with community card packs and /spire:shop already started.
- The optional curator is a soft dependency on the Claude Agent SDK. Without it, every other command still works and the reward loop stays quiet.
Key decisions
- Inspiration is Slay the Spire: cards, relics, powers, classes, campfire, and ascension always resolve to real repo paths.
- Genre honesty: classic roguelike vs roguelite vs roguelike deckbuilder; Spire targets the StS deckbuilder lane with a roguelite-shaped persistent deck.
- Product name is Spire (the /spire plugin). The public repo is github.com/hhalperin/spire.
- Engine holds no project knowledge: everything learned is written into the target repository.
The deck is the config
Spire is the Claude Code plugin behind the public github.com/hhalperin/spire repo. The inspiration is Slay the Spire (Mega Crit's roguelike deckbuilder): cards, relics, powers, character classes, campfires, and an ascension ladder. Those terms map onto real files. Cards are agent skills under .claude/skills. Relics are CLAUDE.md rules. Powers are hooks. Class is a repo archetype detected at init. The save file is .spire/deck.json inside the target repo. Genre language matters here because the first name for this work was too blunt. A classic roguelike (the Rogue lineage) is usually a turn-based, grid dungeon with procedural layouts and run-ending death, often judged against the Berlin Interpretation. A roguelite keeps the run structure but adds meta-progression that survives between runs. A roguelike deckbuilder, the lane Slay the Spire defined for a huge audience, fuses procedural runs with deckbuilding instead of a traditional dungeon crawl. Spire borrows that third lane on purpose: we wanted Slay the Spire vocabulary for agent config, not a Berlin-style dungeon simulator. The durable .spire/deck.json and opt-in A0-A20 ascension are closer to roguelite meta-progression than a pure reset-every-run classic roguelike, which is why renaming the product and repo to Spire is clearer than calling the whole project "Roguelike." Run /spire and it scans the tree, picks a class (Defect, Silent, Ironclad, Watcher, or Colorless), and deals a starter deck suited to that class. Monorepos with strong signals across two language families become dual-class runs that still share one deck.json. The deck grows only when a Stop hook sees real work (a new commit or enough tool activity) and a cheap-model curator finds a genuinely repeated pattern. Offers surface at /spire:campfire for accept, skip, or prune. /spire:ascend raises the strictness ladder that rewrites only the plugin's own .claude/settings.json entry so lint, tests, and coverage start blocking Stop when you ask. The plugin holds zero project knowledge. Everything it learns about your project is written into your repo. Act 1 (starter deck), Act 2 (reward loop), and Act 3 (ascension) are shipped. Community card packs and /spire:shop are started. Adjacent agent tooling on this site includes Diagram-First, Modular Orchestration System, Drive Mode, and Agent CI/CD.
How it works
Two figures: how a /spire run deals and grows a deck inside a target repo, and how the optional reward loop decides whether to offer a card. The vocabulary is borrowed from Slay the Spire.