mirage-game SKILL.md skillA
mirage-game from paraldameta/mirage-engine is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add paraldameta/mirage-engine/mirage-game@git:20261108.e7f6fbePins git:20261108.e7f6fbe in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- paraldameta/mirage-engine
- Path
agent/mirage-game/SKILL.md- Versions recorded
- 3
- Latest version
- git:20261108.e7f6fbe, committed Nov 8, 2026
- First version recorded
- Oct 25, 2026
- Size
- 5,150 bytes
- Repository stars
- 16
- License
- MIT
Make a Mirage world playable as a small game with @mirage/game - interactables (pick up, use, open, light), inventory, flags, events, hinged doors and pushable props (Rapier physics, lazy WASM), a character controller, keyboard / mouse / gamepad / touch input, procedural 3D sound, save / load and an accessible HTML overlay (objective, prompt, toasts, menu). Use when the user wants something to do in a world - "add a lever / key / door / quest", "make it a game", "pick up", "inventory…
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Game layer
Reference implementation: `$MIRAGE/examples/garden-quest` (`main.js`, `quest.js`); API: `packages/game/README.md`.
Modules stay pure world (geometry + anchors). The game is one lead-owned file, `game.js`, that spawns entities
**from anchors**, so module owners never touch game code and the game never hard-codes a position.
## 1. Switch main.js to startGame
```js
import { startGame } from '@mirage/game'; // add "@mirage/game": "1.0.0" to package.json
import { setupGame, objective } from './game.js';
// ... createWorldRenderer, buildWorld, camera as before; remove world.prepare() and createPlay (startGame does both)
const g = await startGame(world, {
built, canvas, id: plan.name, version: 1, title: 'Title', subtitle: 'one line: what to do',
spp: +Q.get('spp') || 6, shadowRadius, setup: setupGame, objective,
});
if (Q.has('start')) g.ui.begin(); // skip the start screen (tests: "query": "start=1")
window.__mirage = { world, built, play: g.play, g };
window.__READY = true;
```
`startGame` builds Rapier colliders from the modules' solid meshes (same rule as the walk grid, proxies
…Read the whole file at its exact version.
How to install
mdr add paraldameta/mirage-engine/mirage-game@sha256:59a01abae48aac38The line at the top of this page pins the label git:20261108.e7f6fbe, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_laog63suynlb3r4g)
0 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 3 versions of this file, between Oct 25, 2026 and Nov 8, 2026, about one every 7 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20261108.e7f6fbe latest | 2026-11-08 | e7f6fbe | 5,150 B | A | view · diff |
| git:20261026.bdaf760 | 2026-10-26 | bdaf760 | 5,150 B | A | view · diff |
| git:20261025.cd36420 | 2026-10-25 | cd36420 | 5,150 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (5150 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
paraldameta/mirage-engine · 16 stars · license MIT · pushed 2026-11-09 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_laog63suynlb3r4g GET https://markdownregistry.com/api/v1/resolve?ref=paraldameta/mirage-engine/mirage-game GET https://markdownregistry.com/api/v1/blob/59a01abae48aac38d05914e74242fc34a77ae0cb57f4ce3b500612c13aa83661
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.