• 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