@codyswann/lisa 2.178.6 → 2.180.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/dist/configs/eslint/phaser.d.ts +2 -8
  2. package/dist/configs/eslint/phaser.d.ts.map +1 -1
  3. package/dist/configs/eslint/phaser.js +143 -17
  4. package/dist/configs/eslint/phaser.js.map +1 -1
  5. package/eslint-plugin-phaser/README.md +19 -0
  6. package/eslint-plugin-phaser/index.js +35 -0
  7. package/eslint-plugin-phaser/package.json +10 -0
  8. package/eslint-plugin-phaser/rules/no-allocation-in-update.js +189 -0
  9. package/eslint-plugin-phaser/rules/no-create-in-update.js +200 -0
  10. package/eslint-plugin-phaser/rules/require-shutdown-cleanup.js +191 -0
  11. package/package.json +5 -3
  12. package/phaser/merge/.claude/settings.json +1 -0
  13. package/phaser/merge/.mcp.json +8 -0
  14. package/phaser/package-lisa/package.lisa.json +11 -3
  15. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  16. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  17. package/plugins/lisa-agy/plugin.json +1 -1
  18. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  20. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  21. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  26. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  27. package/plugins/lisa-expo-agy/plugin.json +1 -1
  28. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  32. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  33. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  37. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  38. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  42. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  43. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  47. package/plugins/lisa-phaser/rules/phaser.md +134 -44
  48. package/plugins/lisa-phaser/skills/phaser-accessibility/SKILL.md +135 -0
  49. package/plugins/lisa-phaser/skills/phaser-accessibility/agents/openai.yaml +4 -0
  50. package/plugins/lisa-phaser/skills/phaser-asset-pipeline/SKILL.md +148 -0
  51. package/plugins/lisa-phaser/skills/phaser-asset-pipeline/agents/openai.yaml +4 -0
  52. package/plugins/lisa-phaser/skills/phaser-build-deploy/SKILL.md +148 -0
  53. package/plugins/lisa-phaser/skills/phaser-build-deploy/agents/openai.yaml +4 -0
  54. package/plugins/lisa-phaser/skills/phaser-i18n/SKILL.md +122 -0
  55. package/plugins/lisa-phaser/skills/phaser-i18n/agents/openai.yaml +4 -0
  56. package/plugins/lisa-phaser/skills/phaser-project-structure/SKILL.md +5 -5
  57. package/plugins/lisa-phaser/skills/phaser-services/SKILL.md +208 -0
  58. package/plugins/lisa-phaser/skills/phaser-services/agents/openai.yaml +4 -0
  59. package/plugins/lisa-phaser/skills/phaser-testing/SKILL.md +104 -11
  60. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  61. package/plugins/lisa-phaser-agy/skills/phaser-accessibility/SKILL.md +135 -0
  62. package/plugins/lisa-phaser-agy/skills/phaser-asset-pipeline/SKILL.md +148 -0
  63. package/plugins/lisa-phaser-agy/skills/phaser-build-deploy/SKILL.md +148 -0
  64. package/plugins/lisa-phaser-agy/skills/phaser-i18n/SKILL.md +122 -0
  65. package/plugins/lisa-phaser-agy/skills/phaser-project-structure/SKILL.md +5 -5
  66. package/plugins/lisa-phaser-agy/skills/phaser-services/SKILL.md +208 -0
  67. package/plugins/lisa-phaser-agy/skills/phaser-testing/SKILL.md +104 -11
  68. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  69. package/plugins/lisa-phaser-copilot/rules/phaser.md +134 -44
  70. package/plugins/lisa-phaser-copilot/skills/phaser-accessibility/SKILL.md +135 -0
  71. package/plugins/lisa-phaser-copilot/skills/phaser-asset-pipeline/SKILL.md +148 -0
  72. package/plugins/lisa-phaser-copilot/skills/phaser-build-deploy/SKILL.md +148 -0
  73. package/plugins/lisa-phaser-copilot/skills/phaser-i18n/SKILL.md +122 -0
  74. package/plugins/lisa-phaser-copilot/skills/phaser-project-structure/SKILL.md +5 -5
  75. package/plugins/lisa-phaser-copilot/skills/phaser-services/SKILL.md +208 -0
  76. package/plugins/lisa-phaser-copilot/skills/phaser-testing/SKILL.md +104 -11
  77. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  78. package/plugins/lisa-phaser-cursor/rules/phaser.mdc +134 -44
  79. package/plugins/lisa-phaser-cursor/skills/phaser-accessibility/SKILL.md +135 -0
  80. package/plugins/lisa-phaser-cursor/skills/phaser-asset-pipeline/SKILL.md +148 -0
  81. package/plugins/lisa-phaser-cursor/skills/phaser-build-deploy/SKILL.md +148 -0
  82. package/plugins/lisa-phaser-cursor/skills/phaser-i18n/SKILL.md +122 -0
  83. package/plugins/lisa-phaser-cursor/skills/phaser-project-structure/SKILL.md +5 -5
  84. package/plugins/lisa-phaser-cursor/skills/phaser-services/SKILL.md +208 -0
  85. package/plugins/lisa-phaser-cursor/skills/phaser-testing/SKILL.md +104 -11
  86. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  87. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  88. package/plugins/lisa-rails-agy/plugin.json +1 -1
  89. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  90. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  91. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  92. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  93. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  94. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  95. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  96. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  97. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  98. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  99. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  100. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  101. package/plugins/src/phaser/rules/phaser.md +134 -44
  102. package/plugins/src/phaser/skills/phaser-accessibility/SKILL.md +135 -0
  103. package/plugins/src/phaser/skills/phaser-asset-pipeline/SKILL.md +148 -0
  104. package/plugins/src/phaser/skills/phaser-build-deploy/SKILL.md +148 -0
  105. package/plugins/src/phaser/skills/phaser-i18n/SKILL.md +122 -0
  106. package/plugins/src/phaser/skills/phaser-project-structure/SKILL.md +5 -5
  107. package/plugins/src/phaser/skills/phaser-services/SKILL.md +208 -0
  108. package/plugins/src/phaser/skills/phaser-testing/SKILL.md +104 -11
  109. package/tsconfig/phaser.json +8 -1
  110. package/plugins/lisa-phaser/skills/phaser-assets/SKILL.md +0 -96
  111. package/plugins/lisa-phaser/skills/phaser-assets/agents/openai.yaml +0 -4
  112. package/plugins/lisa-phaser/skills/phaser-gameobjects/SKILL.md +0 -94
  113. package/plugins/lisa-phaser/skills/phaser-gameobjects/agents/openai.yaml +0 -4
  114. package/plugins/lisa-phaser/skills/phaser-physics/SKILL.md +0 -86
  115. package/plugins/lisa-phaser/skills/phaser-physics/agents/openai.yaml +0 -4
  116. package/plugins/lisa-phaser/skills/phaser-rendering/SKILL.md +0 -89
  117. package/plugins/lisa-phaser/skills/phaser-rendering/agents/openai.yaml +0 -4
  118. package/plugins/lisa-phaser/skills/phaser-scenes/SKILL.md +0 -86
  119. package/plugins/lisa-phaser/skills/phaser-scenes/agents/openai.yaml +0 -4
  120. package/plugins/lisa-phaser/skills/phaser-v3-migration/SKILL.md +0 -81
  121. package/plugins/lisa-phaser/skills/phaser-v3-migration/agents/openai.yaml +0 -4
  122. package/plugins/lisa-phaser-agy/skills/phaser-assets/SKILL.md +0 -96
  123. package/plugins/lisa-phaser-agy/skills/phaser-gameobjects/SKILL.md +0 -94
  124. package/plugins/lisa-phaser-agy/skills/phaser-physics/SKILL.md +0 -86
  125. package/plugins/lisa-phaser-agy/skills/phaser-rendering/SKILL.md +0 -89
  126. package/plugins/lisa-phaser-agy/skills/phaser-scenes/SKILL.md +0 -86
  127. package/plugins/lisa-phaser-agy/skills/phaser-v3-migration/SKILL.md +0 -81
  128. package/plugins/lisa-phaser-copilot/skills/phaser-assets/SKILL.md +0 -96
  129. package/plugins/lisa-phaser-copilot/skills/phaser-gameobjects/SKILL.md +0 -94
  130. package/plugins/lisa-phaser-copilot/skills/phaser-physics/SKILL.md +0 -86
  131. package/plugins/lisa-phaser-copilot/skills/phaser-rendering/SKILL.md +0 -89
  132. package/plugins/lisa-phaser-copilot/skills/phaser-scenes/SKILL.md +0 -86
  133. package/plugins/lisa-phaser-copilot/skills/phaser-v3-migration/SKILL.md +0 -81
  134. package/plugins/lisa-phaser-cursor/skills/phaser-assets/SKILL.md +0 -96
  135. package/plugins/lisa-phaser-cursor/skills/phaser-gameobjects/SKILL.md +0 -94
  136. package/plugins/lisa-phaser-cursor/skills/phaser-physics/SKILL.md +0 -86
  137. package/plugins/lisa-phaser-cursor/skills/phaser-rendering/SKILL.md +0 -89
  138. package/plugins/lisa-phaser-cursor/skills/phaser-scenes/SKILL.md +0 -86
  139. package/plugins/lisa-phaser-cursor/skills/phaser-v3-migration/SKILL.md +0 -81
  140. package/plugins/src/phaser/skills/phaser-assets/SKILL.md +0 -96
  141. package/plugins/src/phaser/skills/phaser-gameobjects/SKILL.md +0 -94
  142. package/plugins/src/phaser/skills/phaser-physics/SKILL.md +0 -86
  143. package/plugins/src/phaser/skills/phaser-rendering/SKILL.md +0 -89
  144. package/plugins/src/phaser/skills/phaser-scenes/SKILL.md +0 -86
  145. package/plugins/src/phaser/skills/phaser-v3-migration/SKILL.md +0 -81
@@ -1,81 +0,0 @@
1
- ---
2
- name: phaser-v3-migration
3
- description: This skill should be used when migrating a Phaser 3 game to Phaser 4, reviewing code that contains Phaser 3 idioms, or answering "does this v3 API still exist" questions — pipelines→render nodes, preFX/postFX/BitmapMask→Filters, tintFill→TintModes, removed namespaces (Geom.Point, Struct, Mesh/Plane, Camera3D, bundled Spine), config default changes, and texture-orientation changes. Pairs with phaser-rendering and phaser-project-structure.
4
- ---
5
-
6
- # Phaser 3 → Phaser 4 Migration
7
-
8
- ## Overview
9
-
10
- Phaser 4.0.0 "Caladan" (April 2026; current line v4.1 "Salusa") keeps the core
11
- game-facing API stable — scenes, input, Arcade/Matter physics, tweens,
12
- animations, audio, and the scale manager are **unchanged** — and replaces the
13
- rendering internals. The official estimate for a standard-API game is hours,
14
- not weeks. The npm package is still `phaser`; v4 ships its own
15
- `types/phaser.d.ts`.
16
-
17
- Upstream references for deeper detail: the official migration guide in the
18
- phaser repo (`changelog/v4/4.0/MIGRATION-GUIDE.md`) and the shader-specific
19
- guide. This skill is original Lisa content written against those primary
20
- sources — it is not a port of any upstream plugin or skill package.
21
-
22
- ## What did NOT change (don't "migrate" these)
23
-
24
- Scene lifecycle (`init/preload/create/update`), `this.scene` control, Loader
25
- API (plus new `atlasPCT`), Input, Arcade & Matter physics, Tweens/Timelines,
26
- `anims`, Scale Manager, Sound managers, Groups, Containers, particle emitter
27
- API (v3.60 style).
28
-
29
- ## The breaking changes, by frequency of impact
30
-
31
- | Phaser 3 | Phaser 4 |
32
- | --- | --- |
33
- | `setPipeline(...)` / `setPostPipeline(...)` / `resetPipeline()` | RenderNodes (`render.renderNodes` config) — rewrite required |
34
- | `preFX` / `postFX` controllers | Unified **Filter** system (internal/external lists) |
35
- | `BitmapMask` / `GeometryMask` | `Mask` filter; `Phaser.Actions.AddMaskShape()` |
36
- | Bloom/Shine/Circle FX | `Actions.AddEffectBloom()` / `AddEffectShine()` |
37
- | Gradient FX | `Gradient` GameObject |
38
- | `setTintFill(c)` / `tintFill` | `setTint(c)` + `setTintMode(Phaser.TintModes.FILL)` |
39
- | `setPipeline('Light2D')` | `gameObject.setLighting(true)`; lights gained `z` |
40
- | `Phaser.Geom.Point` | Removed — `Phaser.Math.Vector2` (geometry returns Vector2) |
41
- | `Phaser.Struct.Set` / `Struct.Map` | Native `Set` / `Map` |
42
- | Shadertoy-style `Shader` uniforms | Rewritten Shader: `ShaderQuadConfig`, `setUniform()`, `#pragma` |
43
- | RenderTexture/DynamicTexture draw-executes-immediately | **Buffered** — call `render()`; `preserve()`, `renderMode` |
44
- | Bundled Spine 3/4 plugins | Removed — Esoteric's official Phaser Spine runtime |
45
- | `Mesh`, `Plane`, OBJ loader, `Camera3D`, `Layer3D` | Removed, no replacement |
46
- | `Math.TAU` = π/2 (wrong) | `Math.TAU` = 2π (correct); `PI_OVER_2` added; `PI2` removed |
47
- | `Create.GenerateTexture`, polyfills, IE9 entry | Removed |
48
-
49
- ## Behavior/default changes that silently alter a port
50
-
51
- - `roundPixels` default flipped **true → false**. If a pixel-art game looks
52
- blurry after porting, set `pixelArt: true` (or `render.smoothPixelArt`) —
53
- don't blanket-restore roundPixels.
54
- - **Texture Y-flip**: UVs are GL-oriented (Y=0 bottom). Standard usage is
55
- translated automatically, but custom shaders and **compressed textures** must
56
- be updated/re-encoded.
57
- - `Camera#matrix` no longer includes position (`matrixExternal` does;
58
- `matrixCombined` removed) — affects code doing manual camera-space math.
59
- - `Grid` "outline" properties renamed to "stroke". TileSprite was rebuilt
60
- (atlas frames, `tileRotation`; cropping removed). `DOMElement` without a
61
- container parent now throws.
62
-
63
- ## Migration procedure
64
-
65
- 1. Bump `phaser` to `^4.1.0`; remove any `@types/phaser`.
66
- 2. Typecheck — removed APIs surface as compile errors; fix using the table.
67
- 3. Grep for the silent ones types won't catch: `Light2D`, `tintFill`,
68
- `Math.TAU`, custom shader GLSL, compressed-texture loads.
69
- 4. Rewrite pipelines/FX as RenderNodes/Filters ([[phaser-rendering]]); re-add
70
- `render()` calls after DynamicTexture drawing.
71
- 5. Swap Spine to the Esoteric runtime; check third-party plugins (`rex` users:
72
- the v4 line is the separate `phaser4-rex-plugins` package, which also ships
73
- `p3-fx` ports of the dropped v3 FX).
74
- 6. Verify visually per [[phaser-rendering]] — renderer migrations produce
75
- wrong-pixels bugs, not exceptions.
76
-
77
- ## Project conventions
78
-
79
- This stack's lint config hard-bans the left column of the table in `src/**` —
80
- a migration is not complete until lint passes with those rules on, with zero
81
- disables.