{"assessments":[],"deployments":[],"fuzz":[],"identity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"interpretation":"Records acceptance and evidence. Neither completion nor an AI assessment establishes correctness, safety, or independent review.","jobId":"7e402e1f-52ae-4d91-a0ff-0b907f03ed74","kind":"skill:build-website","nodes":[{"acceptedSubmissionHash":"8d7a69287e79b9baa19fb6fcbe57f0556c50d379a3d10efcc51f82a6612136e1","dependsOn":[],"execution":{"mustProduce":["dist/index.html"],"network":true,"optionalTools":["browser"],"profile":"none","requires":["network"],"skillHash":"a60bc8b42446c13d993341179fe13c712a5addb118fc532fb2d15e71f912efc8","skillId":"build-website","tools":[]},"key":"build_website","kind":"code","role":"implement","skillHash":"a60bc8b42446c13d993341179fe13c712a5addb118fc532fb2d15e71f912efc8","skillId":"build-website","state":"accepted"},{"acceptedSubmissionHash":"cefcb597db8bd63d3e7bbbad93c110f8ce36e38564022fe1ee58c670f253b2fb","dependsOn":["build_website"],"execution":{"network":true,"optionalTools":["browser"],"profile":"none","requires":["network"],"skillHash":"fd33b6741366d364a55a4c0ba2bc4f5d329cec0b62f27a83289dc5b30ab03575","skillId":"design-critic","tools":[]},"key":"design_critic","kind":"code","role":"review","skillHash":"fd33b6741366d364a55a4c0ba2bc4f5d329cec0b62f27a83289dc5b30ab03575","skillId":"design-critic","state":"accepted"}],"objective":"# Burrow Raid — 3D community boss battle\n\nBuild and publicly ship a finished original 3D browser game for the Squeekchain Genesis Code lane. The customer selected a stylized 3D community boss battle after rejecting a garden-game concept. Do not build a garden game, tracker, dashboard or landing page.\n\nUse this prototype as a starting point for gameplay and art direction: Burrow Raid, miniature hamster adventurers defending an underground arena against the Cable Gnawer. Warm forest tones, brass highlights, mushrooms, stylized 3D characters and an overhead camera. One polished arena, one boss, Fighter/Guardian/Medic roles, readable telegraphed attacks, movement, dodging, role abilities, health, a shared energy pool, victory/defeat and replay. Keyboard and touch controls, responsive HUD, optional sound, reduced-motion support and clear onboarding. Keep the core fight fun without waiting for the real hamster.\n\nAdd genuine multiplayer co-op rooms with a small player cap and solo bot fallback. Use a server-authoritative simulation, server-side validation for movement/combat/cooldowns, synchronized boss attacks, reconnect and room cleanup, rate limits and no client-controlled rewards or scores. If persistent backend hosting cannot be delivered within this request, report the limitation explicitly; never label bots as real multiplayer. Do not acquire paid services or spend beyond the one approved build request.\n\nRead https://docs.squeekchain.com/developers/api/ for current schemas. Real positive wheel-work deltas from GET https://api.squeekchain.com/v1/status feed capped shared bonus energy on the server, once per room, not independently per player. Use BigInt; compare only the same installationId/counterEpoch, validate schema/freshness/observedAt, baseline after reconnect/reset, honor Retry-After and backoff. Sleeping pauses bonus recharge without penalizing the hamster or encouraging interference. Basic combat stays available. Initial energy and any fallback mechanics must be clearly described as game rules. Distinguish telemetry from confirmed settlement. Include a separately labelled practice mode with simulated energy; never invent live activity.\n\nNo wagering, token prizes, wallet custody, approvals, signatures, transactions, new contracts, paid assets or private keys. Use original/generated or appropriately licensed art and include third-party licenses. Test fight balance, all roles, win/loss/restart, keyboard/touch controls, WebGL failure, pause, visibility changes, epoch resets, stale/unavailable data and multiplayer synchronization/reconnect. Require independent agent review before delivery.\n\nDeliver public working site, complete source, tests and validation results, architecture and hosting limitations, IMD job/project attribution and a concise Genesis submission description. The first job must be paid by the customer's Genesis-verified regular wallet. Do not claim badges or approval. Do not submit to Genesis until the customer has reviewed the finished delivery.","parentJobId":null,"planHash":"a70cdab0cbdae7a627cfad76c096596d6f4015acda3f62df976e348f879ac727","previousHash":"d38839b916d7272592450559169123f8c6b79d756a743183167f575f62e1b613","projectId":"7e402e1f-52ae-4d91-a0ff-0b907f03ed74","publication":{"commit":"9cf520a77dfb8b5870c2672a1cd96e42ae638476","deliveredAt":"2026-11-04T00:32:43.126Z","repoUrl":"https://github.com/identity-md-launches/launch-2937-burrow-raid"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[],"site":{"cid":"bafybeifxbjqucraidcbcszuo2f6cviywf6v3lokst5q3rddjprguevup5m","ensName":"burrow-raid-small-paws-big-boss.identitymd.eth","namingTransaction":"0x91bdfdcc92fa3a162b40c3cff5212183292859154253462d8a3027bec6fbe9d4"},"snapshotHash":"3ff58d08b5b8d28656c52f0da8929f7b5d3d5794c1edc59b969fd50120954046","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"433a8df441733bbfc81559fdf091a0ccd88708686ed9638a246761a38e2a3502","device":"6ee31f3a4c62909d","findings":[],"hash":"8d7a69287e79b9baa19fb6fcbe57f0556c50d379a3d10efcc51f82a6612136e1","nodeId":"5374bf4d-e3de-4564-a911-de1e5e91f11d","outcome":"completed","summary":"Built the playable 3D game, static export, complete source, and authoritative co-op server.\n\nPassed: 45 tests, 23 browser checks, and 16/16 design checks. Bundle: 3.43 MiB.\n\n[Setup and delivery](/home/imd/.identitymd-2/work/7e402e1f-52ae-4d91-a0ff-0b907f03ed74/5374bf4d-e3de-4564-a911-de1e5e91f11d/README.md) · [Validation](/home/imd/.identitymd-2/work/7e402e1f-52ae-4d91-a0ff-0b907f03ed74/5374bf4d-e3de-4564-a911-de1e5e91f11d/artifacts/validation.md)\n\nPublic publication remains unverified; persistent co-op hosting is unprovisioned. No Genesis submission was made.\n\nRequired independent review remains incomplete: its runtime returned `Read-only file system (os error 30)`.","treeHash":"fbbdcfbccca6d5cdf1c443b835d20ecacc8e6742","usage":{"cachedInputTokens":14716800,"inputTokens":158190,"model":"gpt-6.1-sol","outputTokens":170823,"runtime":"codex","turns":14,"wallClockMs":3835173}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"d47149da4d751a90","findings":[{"citation":"resolved","description":"Now: choosing “Reduce decorative motion” works until “Try 3D again” recreates the scene; the checkbox stays checked while fireflies and character/boss idle motion resume.\nChange to: apply the current reduced value whenever the scene is created, or change this effect dependency list to [reduced, sceneKey].\nWhy: the brief requires reduced-motion support; a graphics retry must preserve the visitor’s explicit accessibility setting.","line":327,"path":"src/App.tsx","reproduction":"390×844, Chromium, prefers-reduced-motion: no-preference. Open How to play, check Reduce decorative motion, and close the dialog. In DevTools run document.querySelector(\"canvas\").getContext(\"webgl2\").getExtension(\"WEBGL_lose_context\").loseContext(); click Try 3D again. Reopen How to play: Reduce decorative motion is still checked, but decorative motion is running. Read-only inspection of the RaidScene ref measured reduced=true, fireflies.visible=false, rotation.y=0 before retry; reduced=false, fireflies.visible=true, rotation.y=0.262026 after retry. Expected the checked preference to keep decorative motion disabled after scene recreation. The constructor in src/scene.ts:493 resets to the OS media preference, and the [reduced] effect does not run again when only sceneKey changes.","severity":"medium","snippet":"  useEffect(() => {\n    scene.current?.setReduced(reduced);\n  }, [reduced]);","title":"accessibility: WebGL retry discards the in-game reduced-motion setting"},{"citation":"resolved","description":"Now: tabbing to Attack and holding its advertised Space shortcut performs no attacks while the key is held; it only queues a short attack on key release. Holding Space works when focus is on the surrounding combat-controls div.\nChange to: let Space events from .attack-action reach the existing held-key handler (retain the early return for other buttons), preventing the native button default for that combat shortcut.\nWhy: the brief requires keyboard controls and clear onboarding, and both the field guide and Attack control explicitly instruct visitors to hold Space.","line":338,"path":"src/App.tsx","reproduction":"390×844, Chromium. Select Medic, Enter the burrow, then press Tab from the automatically focused combat-controls container to focus Attack. Hold Space for about two seconds without moving. The Medic starts 4.69 world units from the boss, inside its 7-unit attack range. Read-only game-state samples at t=0.65, 1.10, 1.35 and 1.70 all showed the local Medic attackCd=0 and swing=0; boss HP fell only from 3595 to 3572 through bot damage. With the surrounding #arena-controls container focused instead, holding the same key immediately produced a local attack cooldown (0.10 at t=2.25). Expected repeated Medic attacks every 0.6 simulation seconds in either focus state. The global key handler returns for every button, while the button's keyboard onClick at lines 875–879 runs only on release for 200 ms. Repeated in WebKit at 390×844: while Attack had focus, local attackCd and swing stayed 0 from t=0.20 through t=1.10; releasing Space produced attackCd=0.50 and swing=0.13 at t=1.40. Holding Space with container focus then produced repeated attacks (attackCd=0.30 at t=2.90).","severity":"medium","snippet":"      if (e.code === \"Space\" && e.target instanceof HTMLButtonElement) return;","title":"accessibility: the focused Attack button ignores held Space"}],"hash":"cefcb597db8bd63d3e7bbbad93c110f8ce36e38564022fe1ee58c670f253b2fb","nodeId":"5d06ad53-51da-4cf8-8883-cb21c6cb17d8","outcome":"completed","summary":"| Area | Result |\n|---|---:|\n| Requirements reviewed | 55 groups: 49 met, 2 missing, 0 faked, 1 after review, 3 needs the requester |\n| Broken features | 2 medium accessibility defects; 0 high/critical |\n| Product and action on first screen at 390 | Yes |\n| taste@1 | 16/16 passed |\n| Copy findings | 0 |\n| Share card | Present; 5/5 metadata checks passed |\n\nRecorded in [.imd-findings.json](/home/imd1/.identitymd/work/7e402e1f-52ae-4d91-a0ff-0b907f03ed74/5d06ad53-51da-4cf8-8883-cb21c6cb17d8/.imd-findings.json). Application files are unchanged.\n\n- **accessibility: WebGL retry discards the in-game reduced-motion setting.** At 390×844, enabling reduced motion and retrying after context loss leaves the checkbox checked while decorative motion resumes. Apply the current preference whenever the scene is recreated.\n- **accessibility: the focused Attack button ignores held Space.** Reproduced in Chromium and WebKit at 390×844: holding Space with Attack focused produces no attacks until release. Allow that button’s Space events through the existing held-key handler.\n\nValidation: typecheck, 45 unit/integration tests, 12 balance runs and all 16 taste checks passed. The unchanged browser suite finished **20/23**, with movement, reconnect and graphics-retry timing failures. Focused retests passed those flows. Actual telemetry readings showed baseline/resting states and awarded zero bonus.\n\nBurrow Raid is a miniature co-op boss fight carried by a mushroom-lit underground diorama and a brass field-guide interface.\n\nThe two “missing” entries below are partial implementation failures documented in the findings.\n\n| Requirement | Status | Evidence |\n|---|---|---|\n| “finished original 3D browser game” | Met | `src/scene.ts`, `shared/game.ts`; playable browser fight |\n| “publicly ship”; “public working site” | After review | `dist/index.html`; publication remains pending |\n| “Squeekchain Genesis Code lane” | Met | `README.md`, `artifacts/GENESIS.md` |\n| “Do not build a garden game, tracker, dashboard or landing page” | Met | `src/App.tsx`: lobby opens into combat |\n| “miniature hamster adventurers defending an underground arena against the Cable Gnawer” | Met | `src/scene.ts`, `shared/game.ts` |\n| “Warm forest tones, brass highlights, mushrooms, stylized 3D characters and an overhead camera” | Met | `src/scene.ts`; Chromium/WebKit renders |\n| “One polished arena, one boss” | Met | Rootbound Hollow and Cable Gnawer in `src/scene.ts` |\n| “Fighter/Guardian/Medic roles” | Met | `shared/game.ts`: `ROLES`; role selector |\n| “readable telegraphed attacks” | Met | `updateWarning` and `isDanger`; circle, stripe and ring warnings |\n| “movement, dodging” | Met | `shared/game.ts`: `step`; browser checks |\n| “role abilities, health, a shared energy pool” | Met | `shared/game.ts`; combat HUD |\n| “victory/defeat and replay” | Met | Result panel, simulation tests and browser outcome checks |\n| “Keyboard” controls | Missing | Focused Attack ignores held Space; `src/App.tsx:338` |\n| “touch controls” | Met | Touch pad and pointer handlers; browser touch check |\n| “responsive HUD” | Met | `src/style.css`; phone, desktop and landscape checks |\n| “optional sound” | Met | `src/audio.ts`; explicit sound toggle |\n| “reduced-motion support” | Missing | Manual preference lost after WebGL retry; `src/App.tsx:327` |\n| “clear onboarding” | Met | Role descriptions, fight hint and field guide |\n| “core fight fun without waiting for the real hamster” | Met | All roles win balance runs without real wheel bonus |\n| “genuine multiplayer co-op rooms”; “small player cap”; “solo bot fallback” | Met | `server/rooms.ts`; two actual browser clients; three-seat cap |\n| “server-authoritative simulation”; validation of “movement/combat/cooldowns” | Met | Server input validation and shared authoritative simulation |\n| “synchronized boss attacks” | Met | Server snapshots; room integration and browser checks |\n| “reconnect and room cleanup” | Met | `server/rooms.ts`; integration tests and focused","treeHash":null,"usage":{"cachedInputTokens":6611840,"inputTokens":154036,"model":"gpt-6.1-sol","outputTokens":36381,"runtime":"codex","turns":12,"wallClockMs":1134694}}],"verification":[{"checks":[],"detail":"paths and tree verified; no suite was run for this kind of work","evaluation":"structural","profile":"none","status":"accepted","submissionHash":"8d7a69287e79b9baa19fb6fcbe57f0556c50d379a3d10efcc51f82a6612136e1","verifiedTreeHash":"fbbdcfbccca6d5cdf1c443b835d20ecacc8e6742","verifierVersion":"0.1.0+7f615fcc"}]}