• v0.2.2 67e47de7ca

    pyr0ball released this 2026-04-12 19:02:11 -07:00 | 2 commits to main since this release

    Fixes

    Catalog pathpost-tool-use.py now checks ~/.claude/buddymon/catalog.json first via find_catalog(), matching cli.py. Resolves your buddy display bug caused by CLAUDE_PLUGIN_ROOT pointing to an old cache without evolved forms (Verifex, Veritarch).

    Already-owned spawn guard — monsters already in the collection are silently skipped at spawn time, not just when an encounter is already active. No more CORSCurse re-appearing after it's caught.

    Spawn block indentationset_active_encounter was outside the else block, running even on already-owned skip. Fixed.

    user-prompt-submit null fallback — same buddymon_id null-check fix as was already in post-tool-use.py.

    Roster deliverycmd_roster buffers output to roster_output.txt + writes roster_pending.txt; suppresses stdout when piped (tty check). roster-stop.py reads the output file directly instead of re-running the CLI, eliminating the recursive flag-write loop that would have re-delivered the roster on every subsequent Stop event.

    Downloads
  • v0.2.1 a80e41a63b

    pyr0ball released this 2026-04-12 18:46:10 -07:00 | 4 commits to main since this release

    What's New

    Fixes

    • Structured roster with four sections: BUDDYMON · LANGUAGE MASCOTS · LANGUAGE AFFINITIES · BUG TROPHY CASE
    • Roster output routed through Stop hook (avoids Bash truncation)
    • Stale buddy guard: prevents caught trophies from appearing as active buddy
    • Already-owned auto-dismiss: instant clear for monsters already in collection
    • New language trigger: use affinity XP (not volatile session list) to prevent false positives
    • catalog.json copied to ~/.claude/buddymon/ on install for stable path resolution
    • VoidSpecter duplicate entry cleaned up

    Session state

    • Per-session XP files fall through to active.json when buddymon_id is null (pgrp mismatch fix)

    Language mascots

    • Spawn probability: base_rate * (1 + affinity_level * affinity_scale)
    • Passive strength reduction on each Write/Edit in matching language (floor 5%)
    • Affinity-based catch formula for mascots in cmd_catch()
    Downloads
  • v0.2.0 457276e302

    pyr0ball released this 2026-04-10 01:31:57 -07:00 | 6 commits to main since this release

    What's New

    Language Mascots

    A new category of collectible creatures tied to language affinities:

    Mascot Language Rarity
    🐍 Pythia Python Common
    Asynclet JavaScript Common
    📟 Bashling Shell Common
    🐹 Goroutling Go Common
    🔷 Typeling TypeScript Uncommon
    💚 Vueling Vue Uncommon
    🗄️ Querion SQL Uncommon
    🦀 Ferrix Rust Rare
    🐪 Perlius Perl Legendary
    🏺 Cobolithon COBOL Legendary
    🌀 Lispling LISP Legendary

    Each mascot has full evolution chains, language-themed challenges, and can be assigned as your active buddy.

    Spawn mechanic: Mascots appear via PostToolUse after language affinity milestones. Probability scales with your affinity level — the more you code in a language, the higher the chance.

    Passive reduction: When a language mascot encounter is active, each file edit in that language ticks down its strength automatically.

    Soft element gating: Your language affinity elements influence catch rate (bonus if elements align, penalty if resistant) — but a matching element is never required.

    Veritarch — Third Evolution

    Debuglin → Verifex (Lv.100) → Veritarch (Lv.200)

    Challenges: TYPE FORTRESS · INVARIANT PROOF · ZERO FLAKE

    "The type system is the test suite."

    Script-First Architecture

    • All game logic moved to lib/cli.py (~850 lines) — 88% token reduction per invocation vs. the old inline SKILL.md
    • SKILL.md is now a thin ~55-line relay
    • CLI emits [INPUT_NEEDED] and [HAIKU_NEEDED] markers; Haiku handles NL parsing at a fraction of Sonnet cost
    • PostToolUse hook re-emits CLI stdout as additionalContext — output always visible inline without Ctrl+O

    Session XP Fix

    Statusline now reads per-window XP from sessions/<pgrp>.json with fallback to active.json. Multi-window sessions no longer show stale XP.

    Downloads
  • v0.1.0 804d1f3887

    pyr0ball released this 2026-04-01 15:21:55 -07:00 | 36 commits to main since this release

    What is Buddymon?

    A Claude Code plugin that turns your coding sessions into a creature-collecting game. Bug monsters spawn from real error output. Buddymon companions gain XP, propose challenges, and level up alongside your work.

    Install

    git clone https://git.opensourcesolarpunk.com/Circuit-Forge/buddymon.git
    cd buddymon
    bash install.sh
    

    Restart Claude Code, then run /buddymon start to choose your starter.

    What's in v0.1.0

    • 11 bug monsters — NullWraith, FencepostDemon, TypeGreml, SyntaxSerpent, CORSCurse, LoopLich, RacePhantom, FossilGolem, ShadowBit, VoidSpecter, MemoryLeech
    • 5 Buddymon — Pyrobyte (Speedrunner), Debuglin (Tester), Minimox (Cleaner), Noctara (Nocturnal), Explorah (Explorer)
    • Auto-resolve — encounters clear automatically when a clean Bash run shows no matching error patterns
    • Challenges — buddies propose session goals at assignment time
    • XP + levels — persistent across sessions via ~/.claude/buddymon/
    • /buddymon unified command with start, assign, fight, catch, roster subcommands

    Mirrors

    Downloads