By mjmorales
Write deterministic, agent-first games in funpack. Skills for the language, the engine.* stdlib, the things/behaviors/pipelines model, project layout, the bake pipelines, and the fixed-point determinism contract; commands to scaffold, build, test, run, and query a game; and funpack-author / funpack-reviewer agents.
Build (or check) the funpack game and interpret the compiler's diagnostics.
Scaffold a new funpack game project in the enforced tree (funpack_configs/ + src/).
Build and launch the funpack game in the current directory.
Run the funpack game's `test` blocks and interpret the results.
Query your own funpack project index — find / holes / debt / probes / graph / tags / pipeline.
Writes idiomatic, deterministic funpack game code — things, behaviors, signals, pipelines, and tests. Use to implement a feature, behavior, system, or whole game in .fun, or to translate a gameplay idea into funpack. Knows the language, the engine.* surface, the runtime model, the bake pipelines, and the determinism rules.
Reviews funpack `.fun` code against the language semantics, the slot contracts, effect closure, the determinism rules, and the structural gates. Use to audit a behavior, system, or whole game before building — catches what the funpack compiler would reject and what is legal-but-unidiomatic. Read-only; returns structured findings.
Add content to a funpack game through the bake pipelines — sprites & atlases, levels (.flvl), tilemaps (.tiles + ASCII grids), rigged 3D models (.fpm), UI screens (.fui), and audio. Use when adding art, a level, a tile map, a character model, a menu/HUD, or sound to a game. Covers the authoring source formats, the generated gen/*.gen.fun seams, the typed handles/Refs, and the bake gates. Triggers on "add a sprite/atlas", "Draw::Sprite", ".flvl/level", ".tiles/tilemap", ".fpm/model/rig", ".fui/UI/HUD/menu", "funpack audio/sound/music", "asset manifest", "gen seam".
The funpack determinism contract, fixed-point numerics, the compiler's structural quality gates, @stub/@todo typed holes, and the user-facing `funpack` CLI. Use to understand why a build fails (a gate), how to stay deterministic, how Fixed-point math behaves, how to develop incrementally with typed holes, and which CLI verbs to run. Triggers on "fixed-point", "Fixed/Q32.32", "determinism", "why won't it compile", "quality gate", "effect closure", "exhaustive match", "@stub", "@todo", "--release", "funpack build/check/test/run", "funpack warden".
The funpack `engine.*` standard library — the API surface a game calls. Use when you need a function or type signature — vectors & fixed-point math, the world (View/Spawn/Ref), device-agnostic input, 2D/3D draw commands, audio, UI widgets, navigation, list/map/grid/string/rand, and the model/anim/render3 trio. Triggers on "engine.math", "engine.world", "engine.input", "engine.render", "what function does/returns", "how do I clamp/fold/draw/spawn", "Vec2", "View[T]", "Draw::", "Bindings", "Input.value/axis", "funpack stdlib/API".
The funpack runtime model — things, behaviors, signals, commands, and pipelines. Use when designing or reasoning about how a funpack game is structured and scheduled — what a behavior's parameters/return mean, how things communicate via signals, effect closure, the pipeline schedule and tick fold, the slot contracts (Update/Render/Ui/Audio/Startup), and why behaviors are unit-testable. Triggers on "behavior", "signal", "pipeline", "thing", "tick", "spawn/despawn", "effect closure", "render/audio/ui stage", "how does a funpack game work".
Write and understand funpack `.fun` source — the language's syntax and semantics. Use when authoring, reading, editing, or explaining funpack code — declarations (thing/behavior/signal/pipeline/fn/enum/data/let/test), types, match, the `with` update, lambdas, string interpolation, the @doc/@gtag/@stub/@todo directives, and modules/imports. Triggers on ".fun", "funpack syntax", "write a funpack ...", "how do I declare", "funpack behavior/thing/signal/pipeline", "funpack match/enum/data".
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
The implementation of funpack — an LL(1), agent-first programming language for game development. This repository builds the toolchain that funpack-spec defines; the spec repo is the doctrine, this repo is the machine that satisfies it.
Prime directive: programming with LLMs should be fun.
One first-party binary over one versioned contract — the pure compiler and the runtime in a single executable (spec §29):
funpack — the language toolchain. Parses, typechecks, runs the structural quality
gates, formats, tests, resolves dependencies, runs the asset pipeline, and emits the
versioned Index Contract. A pure source → artifact function: no clock, no database,
no network, no mutable cross-run state — bit-identical by construction.funpack warden — the governance sub-toolchain and ethos, not a separate binary.
A pure projection of the index funpack already emitted (find/holes/debt/graph),
plus the discipline the directives and gates enforce. No clock, no authored state; it
reports, the agent edits, recompilation re-projects — it never writes source. General
swarm orchestration (a stateful task DB, leases, dispatch) is the operator's agent
tooling, deliberately out of the engine's scope.funpack run / funpack live /
funpack attach verbs of the same binary. It is the one impure consumer of the pure
compiler's output (the only part that links SDL); the compiler verbs stay a pure
source → artifact function. Packaged together, the purity boundary holds at the
artifact, not at a binary split — odin test per package keeps the deterministic floor
SDL-free.agent → │ funpack (pure: src → artifact + index; `funpack warden` projects the index) │ ── artifact ──► runtime
└──────────────────────────────────────────────────────────────────────────────┘ ← operator
one-way data: source → index → projection. warden NEVER writes source.
The spec repo is normative; this repo is measured against it. Three sources bind the implementation, in this precedence:
spec/ — the 30-component numbered specification. The tie-breaker when sources
disagree.examples/ — nine golden reference projects (pong, snake, hunt, yard,
arena, krognid, hud, assets, numerics). These are the acceptance suite: the
implementation is done for a surface area when it compiles and deterministically runs
the examples that exercise it. funpack does not grammar-include what it cannot run.stdlib/ — the engine surface as funpack signatures (engine.* modules). The
implementation provides these; their shape is not negotiable here.Divergence discovered during implementation is a spec bug or an implementation bug, never a silent fork: file it against funpack-spec, resolve it there with rationale recorded, then conform. This repo carries no doctrine of its own.
funpack stays a pure function — including the
funpack warden surface, which only projects the index it already emitted. The Index
Contract is the structured interface: exact-match, all fields mandatory, schema-versioned,
NDJSON transport.Pre-bootstrap. No implementation language, build system, or module layout is committed yet —
those are the first decisions to make and record. Until then, the spec repo's reading order
applies here too: start at
spec/index.md,
foundations first (01-axioms, 02-language-core), then the runtime model
(06-things-behaviors, 07-pipelines), then the toolchain seam
(29-architecture-governance).
For local development the spec is expected as a sibling checkout at ../funpack-spec.
This repo is also the funpack Claude Code marketplace — the .claude-plugin/marketplace.json
at the root publishes the funpack plugin under plugins/funpack/:
skills for the language, the engine.* stdlib, the things/behaviors/pipelines model, the bake
pipelines, and the determinism contract; /funpack:* commands to scaffold, build, test, run, and
query a game; and the funpack-author / funpack-reviewer agents.
npx claudepluginhub mjmorales/funpack --plugin funpackPlan, Research, Orchestrate, Validate, Execute — a complete lifecycle plugin for Claude Code, for any tech stack.
Write deterministic, agent-first games in funpack. Skills for the language, the engine.* stdlib, the things/behaviors/pipelines model, project layout, the bake pipelines, and the fixed-point determinism contract; commands to scaffold, build, test, run, and query a game; and funpack-author / funpack-reviewer agents.
Personal collection of reusable Claude Code skills, slash commands, subagents, prompts, and scripts.
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Comprehensive feature development workflow with specialized agents for codebase exploration, architecture design, and quality review
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses
Access thousands of AI prompts and skills directly in your AI coding assistant. Search prompts, discover skills, save your own, and improve prompts with AI.
Develop, test, build, and deploy Godot 4.x games with Claude Code. Includes GdUnit4 testing, web/desktop exports, CI/CD pipelines, and deployment to Vercel/GitHub Pages/itch.io.
Complete developer toolkit for Claude Code