plugins/src/phaser/skills/phaser-rendering/SKILL.md
This skill should be used when working on rendering in Phaser 4 — the render node architecture that replaced v3 pipelines, the unified Filter system that replaced FX and masks, tint modes, pixel-rounding options (roundPixels, smoothPixelArt, vertexRoundMode), DynamicTexture's buffered drawing, the Extern object for external WebGL, and lighting. Use it for any visual-effect, shader, mask, or custom-rendering task, and whenever v3 rendering idioms (setPipeline, preFX/postFX, BitmapMask, tintFill) appear. Pairs with phaser-gameobjects and phaser-v3-migration.
npx skillsauth add codyswanngt/lisa phaser-renderingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Phaser 4 replaced the entire v3 WebGL pipeline system with a render node
architecture: small single-purpose nodes (each with a run method, batchable
where it matters) that the renderer composes per object. WebGL state is fully
managed, context loss restores automatically, and rendering is just-in-time —
GPU work is deferred until actually needed. WebGL2 is fully supported; WebGL1
still works; there is no WebGPU backend; the Canvas renderer is deprecated.
Practical consequences, in order of how often they bite:
The v3 preFX/postFX controllers and BitmapMask are gone. Phaser 4 has one
unified Filter system that works on any GameObject and on cameras:
Mask filter.Phaser.Actions.AddEffectBloom(),
AddEffectShine(), AddMaskShape() helpers.Gradient GameObject.Container can itself be used as a mask source — new
capability, not possible in v3.tintFill and setTintFill() were removed. Use setTint(color) plus
setTintMode(mode) with Phaser.TintModes: MULTIPLY (default), FILL,
ADD, SCREEN, OVERLAY, HARD_LIGHT.
render.renderNodes map.Shader GameObject was rewritten: config-based constructor
(ShaderQuadConfig), explicit setUniform(), renderImmediate, GLSL
#pragma directives. Shadertoy-style automatic uniforms are gone.Extern
GameObject, which fences GL state around your code.roundPixels defaults to false in v4 (v3: true). The old default caused
flicker on rotated/scaled objects; leave the new default alone.pixelArt: true (crisp,
nearest-neighbor) or render.smoothPixelArt: true (WebGL-only, anti-aliased
scaling/rotation of pixel art).gameObject.vertexRoundMode —
"off" | "safe" | "safeAuto" | "full" | "fullAuto".Draw commands no longer execute immediately — they queue until you call
render(). Forgetting render() is the #1 "my RenderTexture is blank" bug
in v4. Related: preserve() keeps a command buffer for reuse, callback()
injects custom steps, and RenderTexture#renderMode selects
"render" | "redraw" | "all".
setPipeline('Light2D') is gone. Enable per object with
gameObject.setLighting(true); lights have an explicit z; self-shadowing is
supported; lighting now works on many more object types (including particles).
SpriteGPULayer / TilemapGPULayer
([[phaser-gameobjects]]) instead of thousands of individual sprites.Rendering changes are verified visually in a real browser: bun run dev, then a
Playwright screenshot assertion or manual confirmation that the effect renders
and the console shows no WebGL errors. For filter/shader work, verify on both a
WebGL2 and (if supported) WebGL1 context before calling it done.
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and