Help us improve
Share bugs, ideas, or general feedback.
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.
npx claudepluginhub deonmenezes/editor --plugin pascal-mcpHow 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
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Breaks plans, specs, or PRDs into thin vertical-slice issues on the project issue tracker using tracer bullets. Useful for converting high-level work into grabbable implementation tickets.
Share bugs, ideas, or general feedback.
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.