scene-assembly

Installation
SKILL.md

Scene assembly

Own placement and kit compatibility between validated assets and an approved blockout. Do not become a second level designer, procedural generator, mesh exporter or resource manager.

Modes

Mode Work
modular-kit fit compatible modules to an explicit layout
dress-existing replace/decorate an existing blockout without changing its gameplay metrics

Procedure

  1. Inspect the target layout, movement/camera metrics, engine version and asset locks. Missing kit pieces remain explicit; do not replace a rig with a static prop or invent an unlicensed donor. Open asset fixture owns acquisition.
  2. Build a kit manifest: asset ID/version/hash, role, physical dimensions, pivot/contact plane, connection sockets, material family, collision proxy and available variants. Measure imported bounds; authored dimensions are declarations until checked. Model pipeline owns unit/axis conversion. Do not independently rescale every wall until it looks plausible.
  3. Use level-blockout's metrics as constraints. Name floor/wall/door/cover/spawn/exit roles, walkable lanes, camera corridors and no-decoration zones. Keep required collider/gate identity when replacing greybox visuals.
  4. Align compatible sockets using a single documented parent/local-to-world transform. Check facing, contact height and seam tolerance after hierarchy transforms. Visual bounds, placement envelopes and colliders are distinct. Reject incompatible connector sizes instead of stretching doors or deleting collision.
  5. Preflight declared world-space bounds with scene_preflight.py and the v1 contract. Then import and test the actual scene: spawn, door crossing in both directions, collision, camera, occlusion, exit and retry. A room graph is not a navmesh, puzzle solution or natural clear.
  6. Stage required floor/collision assets before activation. Asset runtime owns leases; world-streaming owns residency. Replacing decorations must not release shared geometry still used elsewhere.
Installs
5
GitHub Stars
13
First Seen
Oct 13, 2026