codoop-game is a single creation loop for making desktop Codoop game plugins. Describe a game in plain language; Codex or Claude handles the game card, implementation, proactive playtests, quality gates, and packaging. The result is a portal-ready game.zip and a separate cover.png.
The current compatibility baseline is the local preview harness. Real Codoop Desktop webview validation has not been connected yet, so passing the harness is never presented as Desktop validation.
you describe a game idea you decide when to deliver and publish
│ ▲
▼ │
┌────────────────── Codex / Claude reads SKILL.md and orchestrates ──────────────────┐
│ game card → expert review → build → harness preview → feedback loop → validate → package │
│ [rules] [agent] [script] [agent] [scripts] │
│ │
│ fixed experts: game design and technical art; level, narrative, and audio join as needed │
└─────────────────────────────────────────────────────────────────────────────────────┘
Install from the GitHub marketplace repository:
codex plugin marketplace add Codoop/codoop-game
codex plugin add codoop-game@codoop-gameRestart or reopen Codex, then simply say:
Use $codoop-game to make a farming game that players can pause and continue later.
/plugin marketplace add Codoop/codoop-game
/plugin install codoop-game@codoop-game
If SSH is not configured, use the full HTTPS URL:
/plugin marketplace add https://github.com/Codoop/codoop-game.git
/plugin install codoop-game@codoop-game
For local development:
claude --plugin-dir /path/to/codoop-gamePrerequisites: Node.js 20+ and system zip / unzip. There are no third-party runtime npm dependencies.
Tell the installed agent what you want to make:
Use $codoop-game to make a pixel-art space-trading strategy game. Players should be able to stop and return later; give me a submission package and cover when it is ready.
The creation loop:
- Writes a one-page game card with the player goal, loop, controls, and continuation model.
- Loads game design and technical-art experts; level, narrative, and audio experts join when the idea requires them.
- Creates an isolated static H5 project in the creator-selected workspace.
- Starts a local harness that mocks desktop FlowCabinGameAPI input, size, and lifecycle events, then proactively asks the creator to play.
- Applies one player-visible feedback change per iteration and invites another focused playtest.
- Asks the creator for a cover first; generates an original
cover.pngonly when requested. - Validates offline resources, entry point, size, file count, and cover before delivering the package.
dist/
├── game.zip # runtime package for the Codoop portal
├── cover.png # separate product cover, never in the ZIP
└── validation-report.md # validation outcome written by the agent at delivery
Each project also starts with visual-direction.md (art direction) and
playtest-report.md (creator tasks, feedback, and next decision).
The project has three kinds of components:
- Skill orchestration —
skills/codoop-game/SKILL.mddefines the conversation, expert gates, preview, and delivery sequence. - Deterministic scripts — create starters, run the preview harness, scan offline restrictions, validate covers, and package the ZIP without relying on agent judgment.
- Experts and contracts —
skills/_shared/contains design roles;references/freezes desktop API, package, cover, visual, and quality rules.
See the full Skill architecture for responsibilities, data flow, and quality gates. See installation details for standalone Skill installation and other agents.
codoop-game/
├── .codex-plugin/ # Codex plugin manifest
├── .claude-plugin/ # Claude Code plugin and marketplace manifest
├── skills/
│ ├── codoop-game/ # main Skill, scripts, contracts, and starters
│ └── _shared/ # on-demand game expert definitions
├── tests/ # unit and integration tests
└── docs/ # public compatibility and architecture docs
Run all tests:
npm testRun the complete flow manually:
node skills/codoop-game/scripts/create-game.mjs /tmp my-game --generate-cover
node skills/codoop-game/scripts/preview-harness.mjs /tmp/my-game
node skills/codoop-game/scripts/validate-game.mjs /tmp/my-game
node skills/codoop-game/scripts/validate-cover.mjs /tmp/my-game/cover.png
node skills/codoop-game/scripts/package-game.mjs /tmp/my-gameUse --generate-cover only for development or when a creator has explicitly asked for a generated cover. The normal workflow asks the creator to provide it first.
When changing a compatibility contract, update docs/compatibility.md and the corresponding references/ first, then update starters, the harness, validation scripts, and tests. Every behavioral change needs a test, and game.zip must never contain cover.png.