assemble-scenelisted
Install: claude install-skill playcanvas/skills
# Scene assembly
Represent one gameplay object with one named semantic root. Put gameplay position, heading,
rigid-body, collision, and behavior on that root. Put calibrated render transforms below it.
Consume the existing tuning record from `calibrate-model` exactly once. If it is missing, stop and
calibrate the model; do not calculate or adjust asset tuning during assembly.
## Assembly rules
- Name roots by gameplay role and use predictable names for repeated instances.
- Apply model calibration once inside the visual child; never reapply scale, grounding, or authored
yaw during placement.
- Space neighbouring roots by their scaled footprints and pivot offsets from `calibrate-model`, not
by pivot position. A non-90° authored yaw rotates a footprint, so reserve its larger horizontal
extent as a conservative radius.
- Put rigid-body and collision components on the same root. Size colliders from measured bounds.
- Use local transforms below a parent and world transforms only for semantic roots.
- Keep UI, effects, cameras, and lights outside gameplay model hierarchies.
- Remove the root through its authoring surface's lifecycle. Unregister external events it owns.
- Do not scale rigid-body roots or skinned bones.
## Prove placement
Declare intentional support, attachment, or containment relationships between roots. After a
rendered frame, measure each relationship at the supported object's actual position. Use a mount
point, collision ray, or geometry sample; use a