From pascal-mcp
Use this skill whenever the user asks to build, edit, design, or modify anything in a Pascal world — houses, buildings, rooms, walls, doors, windows, roofs, floor plans, architectural mock-ups. Triggered by phrases like "build a house", "add a wall", "design a cabin", "place a door", "show me what the world looks like". Also triggered when the user mentions the Pascal MCP plugin or the shared world at editor-six-indol.vercel.app.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pascal-mcp:pascal-buildThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You have access to the Pascal MCP server. It edits a shared 3D building
You have access to the Pascal MCP server. It edits a shared 3D building world as a CRDT (Y.js). When you call a tool, the change syncs to every other connected peer — including the live website at https://www.jogabysa.com — within a second.
start and
end, each [x, z]. Z is depth on the floor, not height.height is its vertical extent.position is [x, y, z] in wall-local coordinates:
x = 0 is the centre of the wally = 0 is the floor (so y = height/2 puts a door's centre half-way up)z = 0 is on the wall plane; positive z is interior sideposition is [x, y, z] in level space; set y equal to the wall
height so the roof sits on top.Units are metres throughout.
| Tool | When to use |
|---|---|
scene_summary | Always call first if the user references "the world", "what's there", "the current build" — gives you a text tree of every node and its dimensions. Cheap. Don't build blind. |
world_status | If you suspect the relay isn't connected or want to confirm peer count |
house_build | Best one-shot for "build me a house" — produces 4 walls + optional interior divider + door + windows + gable roof in one call. Tweak width, depth, wallHeight, windowCount |
wall_add | Each wall = a line segment with thickness and height. Most builds compose multiple walls |
door_add / window_add | Take a wallId. Position is wall-local. Defaults are sensible: door 0.9 × 2.1 m centred at floor; window 1.4 × 1.2 m centred ~1.5 m up |
roof_add | One-segment roof. roofType: 'gable' for pitched, 'flat' for flat, others available |
node_delete | Pass ids: [...]. Cascades to descendants |
scene_clear | Destructive — confirm with user first. Wipes the shared world for everyone |
scene_export_glb | Snapshot to a .glb file the user can open in Blender |
scene_save / scene_load | Local JSON snapshot. Useful for backups before risky edits |
Almost always: house_build with reasonable params, then add detail with
door_add / window_add. Don't manually wall_add four times — that's
fragile and the helper is what it's for.
house_build({ width: 8, depth: 6, wallHeight: 2.7, windowCount: 3 })
→ 5 walls (incl. interior divider), 1 door, 3 windows, 1 gable roof
Always scene_summary first to see what walls exist and what their ids
are. Then add to specific walls by id.
scene_summary
# pick the wallId you want from the output
window_add({ wallId: "wall_xxx", position: [0, 1.5, 0], width: 1.2 })
wall_add start=[-4,-3] end=[4,-3] name="South Wall"
wall_add start=[-4, 3] end=[4, 3] name="North Wall"
wall_add start=[-4,-3] end=[-4,3] name="West Wall"
wall_add start=[4,-3] end=[4, 3] name="East Wall"
wall_add start=[0,-3] end=[0, 3] name="Divider" # splits the building in half
roof_add roofType="gable" width=8.4 depth=6.4 wallTopY=2.7 roofHeight=1.8
Add doors / windows referencing the wall ids returned by each wall_add.
If unsure, call world_status and scene_summary. The model needs to
see the current state before adding to it; building blind in a shared
world means colliding with other peers' walls.
scene_summary before edits unless the
user is explicitly starting fresh.scene_clear. It deletes work for everyone
in the room. Confirm with the user.start=[-2, 0], end=[2, 0] — both Z values are equal because the
wall doesn't run along Z.id returned by
wall_add (or grab it from scene_summary) before calling
door_add / window_add.house_build or a small handful of wall_add calls when you
can.scene_export_glb, tell the user the path
and what to do with it (Blender, VS Code's glTF preview, online viewer).If world_status shows connected: false, edits still apply locally
(stored in scene.json) and will sync once the relay comes back. Tell
the user the situation rather than failing silently.
scene_clear without explicit user instruction.scene_summary or capture
them from tool responses.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub deonmenezes/editor --plugin pascal-mcp