{
  "slug": "pixel-diorama-game",
  "skill": "pixel-diorama-game",
  "upstream": "GameSkill original (onsite/<slug>/original)",
  "sourceHash": "d32c1b2063d4070aec547f38739c8b9c2e5abf8cc583e0c199194c7722cecefd",
  "date": "2026-11-03",
  "engine": "Canvas 2D software renderer (Pixel Plays engine.js) in Chrome headless",
  "env": [
    "Node v22.11.0",
    "No runtime dependencies: one HTML page plus kit/engine.js and kit/ambience.js",
    "puppeteer-core 24 from package-lock.json",
    "Google Chrome headless"
  ],
  "trigger": "static",
  "passed": 28,
  "total": 28,
  "commands": [
    "(cd ../original && sh -c npm ci --silent --no-audit --no-fund && node test/browser.test.mjs)",
    "(cd . && cp ../original/shots/skip-stone.png screenshot.png)"
  ],
  "checks": [
    {
      "criterion": "trigger",
      "name": "SKILL.md description says when to use it",
      "pass": true,
      "detail": "Build a small browser game as an isometric pixel diorama - one floating place on white, a fixed 30-degree orthographic c"
    },
    {
      "criterion": "trigger",
      "name": "triggers on: \"Make a tiny isometric pixel art diorama browser game with one action\"",
      "pass": true,
      "detail": "rank 1/122, overlap 8"
    },
    {
      "criterion": "trigger",
      "name": "triggers on: \"Add rain, smoke and a flickering lamp to my pixel scene as a seamless loop, no sprite sheets\"",
      "pass": true,
      "detail": "rank 1/122, overlap 9"
    },
    {
      "criterion": "trigger",
      "name": "triggers on: \"My pixel art canvas game looks blurry and muddy, how do I get crisp isometric pixel dioramas?\"",
      "pass": true,
      "detail": "rank 1/122, overlap 8"
    },
    {
      "criterion": "trigger",
      "name": "does not trigger on: \"Export my Blender model to GLB for Godot\"",
      "pass": true,
      "detail": "rank 46/122, overlap 0"
    },
    {
      "criterion": "trigger",
      "name": "does not trigger on: \"Write a dialogue system for my RPG\"",
      "pass": true,
      "detail": "rank 26/122, overlap 0"
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: page loads with no console errors, failed requests or 404s",
      "pass": true
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: every file is local: no network beyond the page itself",
      "pass": true
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: diorama has open water, grass, a lantern light pool and 12 rain-ripple spots ({\"water\":10730,\"grass\":10077,\"pool\":1817,\"spots\":12})",
      "pass": true
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: low-res canvas 360x280 shown at an integer device-pixel scale (x3)",
      "pass": true
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: rendered frame is a real scene (many colours) (172 colour bins)",
      "pass": true
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: ambience loop wraps with no seam: frame f and f + period are pixel-identical (period 48 frames)",
      "pass": true
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: ambience actually moves: every frame differs from the next",
      "pass": true
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: ambience is deterministic (no Math.random): the same frame twice is identical",
      "pass": true
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: weak throw (power ~0.05) sinks with no skips ({\"power\":0.05,\"skips\":0,\"how\":\"sink\",\"left\":4})",
      "pass": true
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: strong flat throw (power ~0.9) skips at least 4 times ({\"power\":0.89,\"skips\":6,\"how\":\"sink\",\"left\":3})",
      "pass": true
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: more wind-up gives more skips (0.3 < 0.6, best so far from 0.9) (0 < 4 <= 6)",
      "pass": true
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: after five throws the round ends; a tap restarts it (total 14)",
      "pass": true
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: keyboard: hold and release space throws",
      "pass": true
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: pointer: press and release on the canvas throws",
      "pass": true
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: prefers-reduced-motion: rain, smoke and sway hold still",
      "pass": true
    },
    {
      "criterion": "runs",
      "name": "ambience loop and the Skip Stone diorama game in headless Chrome: exits 0 with no script errors",
      "pass": true,
      "detail": "exit 0"
    },
    {
      "criterion": "output",
      "name": "screenshot screenshot.png rendered",
      "pass": true
    },
    {
      "criterion": "output",
      "name": "self-check list has at least 3 items",
      "pass": true,
      "detail": "6 items"
    },
    {
      "criterion": "single",
      "name": "one job per skill (reviewed)",
      "pass": true,
      "detail": "One job: small browser games drawn as isometric pixel dioramas by code, with seamless pure-code ambience. Pixel-art effects as sprite sheets, Three.js dioramas and character sprites are left to pixelfx, diorama and codixel."
    },
    {
      "criterion": "bilingual",
      "name": "English SKILL.md",
      "pass": true
    },
    {
      "criterion": "bilingual",
      "name": "Chinese SKILL.zh.md shipped next to SKILL.md",
      "pass": true,
      "detail": "2207 chars"
    },
    {
      "criterion": "bilingual",
      "name": "Chinese guide written",
      "pass": true,
      "detail": "1038 chars"
    }
  ]
}
