asset-change
Change agent-office's Blender-built 3D assets — the atrium, Main Street, wings and their themes, garden, cap, furniture kit, lighting/bake, the character mesh, rig or animation clips, the manifest or
SKILL.md.claude/skills/asset-change/SKILL.md
GitHubChange the 3D assets
Rules: SCENE.md (budgets, animation rules, no logos), TESTING.md (asset validation), docs/graphics-contract.md (the contract both sides follow).
- Contract first. If anchors, roles, clip names, coordinates or budgets change, edit
docs/graphics-contract.mdadditively and plan the renderer side (packages/web/src/app/manifest.tsand friends) in the same change. Extend the fixture tests inassets/validate.test.tsred-first. - Edit the scripts in
assets/blender/**(modules, furniture kit, materials, themes, character). Never edit a.glbby hand or export from the GUI: every shipped file comes frommake assets. - Iterate fast:
make assets-draft(low bake samples, small lightmaps, gitignored output). - Look at it:
- With the Blender MCP connected (optional:
claude mcp add blender --scope user -- uvx blender-mcp, then Connect in Blender's MCP sidebar), useget_scene_infoand viewport screenshots to review proportions, materials and lighting. Use only the Poly Haven integration; leave Hyper3D and Sketchfab off. make asset-previewsrenders Eevee stills of every module intoassets/previews/. Read the images.
- With the Blender MCP connected (optional:
- Test:
make assets-test: Blender-side checks (naming grammar, counts, loop pose continuity, ≤ 4 weights, applied transforms, no text objects except the runtime sign).pnpm vitest run --project unit assets/validate.test.ts:gltf-validator0 errors, budgets, anchors, nav connectivity, clips, ≤ 45 MB.
- Final build:
make assets(final bake). Then/run-officeandmake screenshotsto check the assets in the app, andmake perfif triangle counts or materials changed (≥ 55 fps at Medium with 150 agents). - License and branding checklist before handing off:
- Every new texture or HDRI is CC0 (Poly Haven), pinned by asset id and SHA-256, and listed in
assets/LICENSES.mdwith its URL. - No logos, trademarks or real company names anywhere (textures, decals, text objects, material names). Wing signs stay blank planes; the runtime draws the provider id.
- No AI-generated or Sketchfab models.
- Every new texture or HDRI is CC0 (Poly Haven), pinned by asset id and SHA-256, and listed in
- Git LFS:
.glb, lightmap.pngand.hdrfiles underpackages/web/public/assets/, plusassets/out/**andassets/previews/**, are LFS files (.gitattributes). Make suregit lfs installhas run before the human commits. Prepare the commit commands; never commit yourself.
2D RPG mode: see docs/2d-architecture.md. The pure logic is in web/src/app/pixel/*, the Canvas2D drawing in web/src/adapters/pixel/*, the art in assets/pixel/src (make pixel-assets), and the floor plans come from make assets-plan. Check both modes with pixel.spec.ts and the existing 3D specs.