NEVER Do (Expert Anti-Patterns)
Design & Player Experience
- NEVER punish experimentation; strictly provide Undo/Reset functionality to allow risk-free hypothesis testing.
- NEVER require pixel-perfect input for logic puzzles; strictly use Grid Snapping or large, forgiving hitboxes.
- NEVER allow undetected Soft-Locks (unsolvable states); strictly notify the player or provide immediate backtracking.
- NEVER hide the rules of the world; strictly ensure visual feedback is instant and unambiguous (e.g., powered wires must glow).
- NEVER skip the Non-Verbal Tutorial phase; strictly introduce mechanics in isolation before combining them.
Grid Logic & State
- NEVER use floating-point numbers (
Vector2) for grid coordinates; strictly use Vector2i to prevent precision drift.
- NEVER use
_process() for grid-state or win-condition validation; strictly trigger checks only when a piece moves.
- NEVER rely on the
SceneTree structure as the source of truth; strictly maintain grid data in a separate script/dictionary.
- NEVER modify a Dictionary or Array size while iterating over it; strictly use a copy or a separate queue for modifications.
- NEVER calculate heavy recursive solvers in
_process(); strictly cache results or use threaded workers for solve-checks.
- NEVER ignore diagonal rules in pathfinding; strictly configure
AStarGrid2D.diagonal_mode correctly.
Architecture & Performance
- NEVER ship dual undo authorities; strictly use Godot's built-in UndoRedo via puzzle_undo_manager.gd — do not also maintain a hand-rolled Command stack.
- NEVER intermingle "do" and "undo" logic in the same function; strictly maintain separation for predictable rollbacks.
- NEVER use exact floating-point equality (==); strictly use
is_equal_approx() for spatial constraints.
- NEVER use
load() for resetting large rooms dynamically; strictly use ResourceLoader.load_threaded_request().
- NEVER leave Tween objects unreferenced; strictly kill active tweens before starting new movement on the same object.
🛠 Expert Components (scripts/)
MANDATORY reads before implementing the matching system:
- puzzle_undo_manager.gd — sole undo authority (
UndoRedo)
- grid_manager.gd — Vector2i grid as truth
- puzzle_state_validator.gd — soft-lock / win checks on commit
Original Expert Patterns
- puzzle_undo_manager.gd - Godot
UndoRedo wrapper for move do/undo (golden path).
Modular Components
- grid_manager.gd - Vector2i board state decoupled from SceneTree.
- grid_tween_mover.gd - Kill-before-recreate Tweens for piece moves.
- puzzle_state_validator.gd - Win / soft-lock validation after commits.
- grid_input_manager.gd - Snapped grid input.
- match_three_logic.gd - Match-3 resolve / cascade helpers.
- puzzle_pathfinder.gd -
AStarGrid2D hints (diagonal_mode).
- puzzle_saver.gd - Level / snapshot serialization.
- puzzle_validator.gd - Broader solvability checks.
- puzzle_history.gd - Thin UndoRedo action helpers (complements undo manager).
- tile_animator.gd - Tile juice without owning state.
- shuffle_bag.gd - Fair random piece bags.
- perspective_overlay.gd - Perspective / overlay puzzles.
- sleepy_block.gd - Timed / sleeping block mechanic sample.
Do NOT load command_undo_redo.gd — legacy hand-rolled Command stack superseded by UndoRedo.
Core Loop
- Observe → 2. Hypothesize → 3. Commit move → 4. Validate → 5. Undo/Reset if needed
Decision Trees
Genre → scripts
| Puzzle type |
MANDATORY reads |
| Sokoban / push grid |
grid_manager.gd, grid_tween_mover.gd, puzzle_undo_manager.gd, puzzle_state_validator.gd |
| Match-3 |
match_three_logic.gd, grid_tween_mover.gd, puzzle_undo_manager.gd |
| Physics / spatial |
Snap on settle → then same undo/validator path; do not treat rigid bodies as truth |
| Hints / solvers |
puzzle_pathfinder.gd (AStarGrid2D.diagonal_mode) |
Undo authority
| Need |
Action |
| Player undo/redo |
Only puzzle_undo_manager.gd |
| Level editor history |
Still UndoRedo — wrap editor actions the same way |
Skill Chain
| Phase |
Skills |
Purpose |
| 1. Data |
dictionaries, resources |
Grid truth, level .tres |
| 2. Input |
godot-input-handling |
Snapped moves |
| 3. Motion |
godot-tweening |
Piece Tweens |
| 4. AI/hints |
godot-navigation-pathfinding |
A* hints |
| 5. Persist |
godot-save-load-systems |
Level / progress |
Common Pitfalls
| Pitfall |
Solution |
| Dual undo APIs |
Delete Command-stack path; use UndoRedo manager only |
Win check in _process |
Validate on move commit via state validator |
| Float grid coords |
Vector2i only |
MANDATORY for depth beyond decision trees and script catalog: puzzle-elite-implementations.md. Do NOT Load on first-pass wiring — use bundled scripts/ first.
Architecture Overview
1. Command Pattern (Undo System)
Essential for puzzle games. Never punish testing.
## Godot-Specific Tips
* **Tweens**: Use `create_tween()` for all grid movements. It feels much better than instant snapping.
* **Custom Resources**: Store level data (layout, starting positions) in `.tres` files for easy editing in the Inspector.
* **Signals**: Use signals like `state_changed` to update UI/Visuals decoupled from the logic.
---
## Reference
> Progressive disclosure: open Official Documentation links only when researching a specific API;
> load Related Skills when routing work to a peer domain — do not preload the whole lattice.
### Official Documentation
- [UndoRedo](https://docs.godotengine.org/en/stable/classes/class_undoredo.html) — Built-in action history for do/undo/redo so puzzle experimentation does not require a hand-rolled command stack.
- [AStarGrid2D](https://docs.godotengine.org/en/stable/classes/class_astargrid2d.html) — Uniform-grid pathfinding (`diagonal_mode`, `jumping_enabled`) for hints and reachability on Sokoban-style boards.
- [Tween](https://docs.godotengine.org/en/stable/classes/class_tween.html) — Interruptible `create_tween()` motion for cell-to-cell feedback while logical `Vector2i` state updates immediately.
- [Using TileMaps](https://docs.godotengine.org/en/stable/tutorials/2d/using_tilemaps.html) — TileMapLayer workflows for painting walls/targets while keeping puzzle truth in a separate grid dictionary.
- [Saving games](https://docs.godotengine.org/en/stable/tutorials/io/saving_games.html) — Persist level progress, stars, and mid-puzzle snapshots without relying on scene reload as save.
- [Using InputEvent](https://docs.godotengine.org/en/stable/tutorials/inputs/inputevent.html) — Device-agnostic click/drag/action routing for forgiving grid selection and move commits.
- [Resources](https://docs.godotengine.org/en/stable/tutorials/scripting/resources.html) — Store layouts and starting piece sets as `.tres`/`Resource` data editable in the Inspector.
- [Physics introduction](https://docs.godotengine.org/en/stable/tutorials/physics/physics_introduction.html) — RigidBody sleep, layers, and integration hooks for physics-driven puzzle pieces.
- [Idle and Physics Processing](https://docs.godotengine.org/en/stable/tutorials/scripting/idle_and_physics_processing.html) — Why win/soft-lock checks belong on move commits, not every `_process` frame.
- [Data preferences](https://docs.godotengine.org/en/stable/tutorials/best_practices/data_preferences.html) — Prefer integer grid keys (`Vector2i`) and explicit dictionaries over SceneTree-as-truth.
- [Runtime file loading and saving](https://docs.godotengine.org/en/stable/tutorials/io/runtime_file_loading_and_saving.html) — `FileAccess`/`user://` patterns for custom level JSON and editor export packs.
- [JSON](https://docs.godotengine.org/en/stable/classes/class_json.html) — Serialize compact puzzle boards when splitting `Vector2` fields for portable level files.
### Related Skills
#### Prerequisites
- [godot-input-handling](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-input-handling/SKILL.md) — Buffered InputEvent/action maps so grid clicks and directional moves stay device-agnostic and forgiving.
- [godot-signal-architecture](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-signal-architecture/SKILL.md) — Safe `state_changed` / `level_complete` wiring so UI and VFX stay decoupled from grid truth.
- [godot-project-foundations](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-project-foundations/SKILL.md) — Autoload/project layout baselines before stacking undo managers, savers, and level packs.
#### Complements
- [godot-tweening](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-tweening/SKILL.md) — Deeper Tween composition when cell moves, match clears, and resets need interruptible juice without logic races.
- [godot-save-load-systems](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-save-load-systems/SKILL.md) — Progress ownership, versioning, and threaded loads beyond per-level JSON snapshots.
- [godot-tilemap-mastery](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-tilemap-mastery/SKILL.md) — TileMapLayer painting, custom data, and terrain patterns that visualize walls while scripts own solvability.
- [godot-navigation-pathfinding](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-navigation-pathfinding/SKILL.md) — Broader Navigation/A* stacks when puzzle hints outgrow a single `AStarGrid2D` region.
- [godot-2d-physics](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-2d-physics/SKILL.md) — RigidBody sleep, layers, and queries for physics puzzles that still need deterministic settle/win checks.
- [godot-state-machine-advanced](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-state-machine-advanced/SKILL.md) — Phase FSMs (observe → move → resolve → win) when puzzles mix animation locks with input gates.
- [godot-camera-systems](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-camera-systems/SKILL.md) — Camera2D/3D framing and unproject helpers for perspective/world-space puzzle overlays.
- [godot-ui-containers](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-ui-containers/SKILL.md) — Minimal undo/reset HUD layouts that stay non-intrusive during non-verbal tutorials.
#### Downstream / consumers
- [godot-monte-carlo-balancer](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-monte-carlo-balancer/SKILL.md) — Sample solvability, move-count distributions, and soft-lock rates so level packs stay fair as mechanics combine.
- [godot-procedural-generation](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-procedural-generation/SKILL.md) — Generate candidate boards that still pass this skill's validators, undo constraints, and win-condition contracts.
- [godot-genre-roguelike](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-genre-roguelike/SKILL.md) — Consumes grid/undo patterns when dungeon runs embed discrete puzzle rooms or locked-door logic.
#### Master
- [godot-master](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-master/SKILL.md) — Library router and mirrored module entry for discovering this genre skill beside sibling domains.
1---2name: godot-genre-puzzle3description: Expert blueprint for puzzle games including undo systems (Command pattern for state reversal), grid-based logic (Sokoban-style mechanics), non-verbal tutorials (teach through level design), win condition checking, state management, and visual feedback (instant confirmation of valid moves). Use for logic puzzles, physics puzzles, or match-3 games. Trigger keywords: puzzle_game, undo_system, command_pattern, grid_logic, non_verbal_tutorial, state_management.4---5
6## NEVER Do (Expert Anti-Patterns)
7
8### Design & Player Experience
9- NEVER punish experimentation; strictly provide **Undo/Reset** functionality to allow risk-free hypothesis testing.
10- NEVER require pixel-perfect input for logic puzzles; strictly use **Grid Snapping** or large, forgiving hitboxes.
11- NEVER allow undetected **Soft-Locks** (unsolvable states); strictly notify the player or provide immediate backtracking.
12- NEVER hide the rules of the world; strictly ensure visual feedback is instant and unambiguous (e.g., powered wires must glow).
13- NEVER skip the **Non-Verbal Tutorial** phase; strictly introduce mechanics in isolation before combining them.
14
15### Grid Logic & State
16- NEVER use floating-point numbers (`Vector2`) for grid coordinates; strictly use **Vector2i** to prevent precision drift.
17- NEVER use `_process()` for grid-state or win-condition validation; strictly trigger checks only when a piece moves.
18- NEVER rely on the `SceneTree` structure as the source of truth; strictly maintain grid data in a separate script/dictionary.
19- NEVER modify a Dictionary or Array size while iterating over it; strictly use a copy or a separate queue for modifications.
20- NEVER calculate heavy recursive solvers in `_process()`; strictly cache results or use threaded workers for solve-checks.
21- NEVER ignore diagonal rules in pathfinding; strictly configure `AStarGrid2D.diagonal_mode` correctly.
22
23### Architecture & Performance
24- NEVER ship dual undo authorities; strictly use Godot's built-in **UndoRedo** via [puzzle_undo_manager.gd](scripts/puzzle_undo_manager.gd) — do **not** also maintain a hand-rolled Command stack.
25- NEVER intermingle "do" and "undo" logic in the same function; strictly maintain separation for predictable rollbacks.
26- NEVER use exact floating-point equality (==); strictly use `is_equal_approx()` for spatial constraints.
27- NEVER use `load()` for resetting large rooms dynamically; strictly use `ResourceLoader.load_threaded_request()`.
28- NEVER leave **Tween** objects unreferenced; strictly kill active tweens before starting new movement on the same object.
29
30---
31
32## 🛠 Expert Components (scripts/)
33
34> **MANDATORY reads** before implementing the matching system:
35> 1. [puzzle_undo_manager.gd](scripts/puzzle_undo_manager.gd) — sole undo authority (`UndoRedo`)
36> 2. [grid_manager.gd](scripts/grid_manager.gd) — Vector2i grid as truth
37> 3. [puzzle_state_validator.gd](scripts/puzzle_state_validator.gd) — soft-lock / win checks on commit
38
39### Original Expert Patterns
40- [puzzle_undo_manager.gd](scripts/puzzle_undo_manager.gd) - Godot `UndoRedo` wrapper for move do/undo (golden path).
41
42### Modular Components
43- [grid_manager.gd](scripts/grid_manager.gd) - Vector2i board state decoupled from SceneTree.
44- [grid_tween_mover.gd](scripts/grid_tween_mover.gd) - Kill-before-recreate Tweens for piece moves.
45- [puzzle_state_validator.gd](scripts/puzzle_state_validator.gd) - Win / soft-lock validation after commits.
46- [grid_input_manager.gd](scripts/grid_input_manager.gd) - Snapped grid input.
47- [match_three_logic.gd](scripts/match_three_logic.gd) - Match-3 resolve / cascade helpers.
48- [puzzle_pathfinder.gd](scripts/puzzle_pathfinder.gd) - `AStarGrid2D` hints (`diagonal_mode`).
49- [puzzle_saver.gd](scripts/puzzle_saver.gd) - Level / snapshot serialization.
50- [puzzle_validator.gd](scripts/puzzle_validator.gd) - Broader solvability checks.
51- [puzzle_history.gd](scripts/puzzle_history.gd) - Thin UndoRedo action helpers (complements undo manager).
52- [tile_animator.gd](scripts/tile_animator.gd) - Tile juice without owning state.
53- [shuffle_bag.gd](scripts/shuffle_bag.gd) - Fair random piece bags.
54- [perspective_overlay.gd](scripts/perspective_overlay.gd) - Perspective / overlay puzzles.
55- [sleepy_block.gd](scripts/sleepy_block.gd) - Timed / sleeping block mechanic sample.
56
57> **Do NOT load** [command_undo_redo.gd](scripts/command_undo_redo.gd) — legacy hand-rolled Command stack superseded by `UndoRedo`.
58
59---
60
61## Core Loop
621. **Observe** → 2. **Hypothesize** → 3. **Commit move** → 4. **Validate** → 5. **Undo/Reset** if needed
63
64## Decision Trees
65
66### Genre → scripts
67| Puzzle type | MANDATORY reads |
68|-------------|-----------------|
69| Sokoban / push grid | [grid_manager.gd](scripts/grid_manager.gd), [grid_tween_mover.gd](scripts/grid_tween_mover.gd), [puzzle_undo_manager.gd](scripts/puzzle_undo_manager.gd), [puzzle_state_validator.gd](scripts/puzzle_state_validator.gd) |
70| Match-3 | [match_three_logic.gd](scripts/match_three_logic.gd), [grid_tween_mover.gd](scripts/grid_tween_mover.gd), [puzzle_undo_manager.gd](scripts/puzzle_undo_manager.gd) |
71| Physics / spatial | Snap on settle → then same undo/validator path; do not treat rigid bodies as truth |
72| Hints / solvers | [puzzle_pathfinder.gd](scripts/puzzle_pathfinder.gd) (`AStarGrid2D.diagonal_mode`) |
73
74### Undo authority
75| Need | Action |
76|------|--------|
77| Player undo/redo | **Only** [puzzle_undo_manager.gd](scripts/puzzle_undo_manager.gd) |
78| Level editor history | Still `UndoRedo` — wrap editor actions the same way |
79
80## Skill Chain
81
82| Phase | Skills | Purpose |
83|-------|--------|---------|
84| 1. Data | `dictionaries`, `resources` | Grid truth, level `.tres` |
85| 2. Input | `godot-input-handling` | Snapped moves |
86| 3. Motion | `godot-tweening` | Piece Tweens |
87| 4. AI/hints | `godot-navigation-pathfinding` | A* hints |
88| 5. Persist | `godot-save-load-systems` | Level / progress |
89
90## Common Pitfalls
91
92| Pitfall | Solution |
93|---------|----------|
94| Dual undo APIs | Delete Command-stack path; use UndoRedo manager only |
95| Win check in `_process` | Validate on move commit via state validator |
96| Float grid coords | `Vector2i` only |
97
98> **MANDATORY** for depth beyond decision trees and script catalog: [puzzle-elite-implementations.md](references/puzzle-elite-implementations.md). **Do NOT Load** on first-pass wiring — use bundled `scripts/` first.
99
100## Architecture Overview
101
102### 1. Command Pattern (Undo System)
103Essential for puzzle games. Never punish testing.
104
105```gdscript
106
107## Godot-Specific Tips
108
109* **Tweens**: Use `create_tween()` for all grid movements. It feels much better than instant snapping.
110* **Custom Resources**: Store level data (layout, starting positions) in `.tres` files for easy editing in the Inspector.
111* **Signals**: Use signals like `state_changed` to update UI/Visuals decoupled from the logic.
112
113---
114
115## Reference
116
117> Progressive disclosure: open Official Documentation links only when researching a specific API;
118> load Related Skills when routing work to a peer domain — do not preload the whole lattice.
119
120### Official Documentation
121- [UndoRedo](https://docs.godotengine.org/en/stable/classes/class_undoredo.html) — Built-in action history for do/undo/redo so puzzle experimentation does not require a hand-rolled command stack.
122- [AStarGrid2D](https://docs.godotengine.org/en/stable/classes/class_astargrid2d.html) — Uniform-grid pathfinding (`diagonal_mode`, `jumping_enabled`) for hints and reachability on Sokoban-style boards.
123- [Tween](https://docs.godotengine.org/en/stable/classes/class_tween.html) — Interruptible `create_tween()` motion for cell-to-cell feedback while logical `Vector2i` state updates immediately.
124- [Using TileMaps](https://docs.godotengine.org/en/stable/tutorials/2d/using_tilemaps.html) — TileMapLayer workflows for painting walls/targets while keeping puzzle truth in a separate grid dictionary.
125- [Saving games](https://docs.godotengine.org/en/stable/tutorials/io/saving_games.html) — Persist level progress, stars, and mid-puzzle snapshots without relying on scene reload as save.
126- [Using InputEvent](https://docs.godotengine.org/en/stable/tutorials/inputs/inputevent.html) — Device-agnostic click/drag/action routing for forgiving grid selection and move commits.
127- [Resources](https://docs.godotengine.org/en/stable/tutorials/scripting/resources.html) — Store layouts and starting piece sets as `.tres`/`Resource` data editable in the Inspector.
128- [Physics introduction](https://docs.godotengine.org/en/stable/tutorials/physics/physics_introduction.html) — RigidBody sleep, layers, and integration hooks for physics-driven puzzle pieces.
129- [Idle and Physics Processing](https://docs.godotengine.org/en/stable/tutorials/scripting/idle_and_physics_processing.html) — Why win/soft-lock checks belong on move commits, not every `_process` frame.
130- [Data preferences](https://docs.godotengine.org/en/stable/tutorials/best_practices/data_preferences.html) — Prefer integer grid keys (`Vector2i`) and explicit dictionaries over SceneTree-as-truth.
131- [Runtime file loading and saving](https://docs.godotengine.org/en/stable/tutorials/io/runtime_file_loading_and_saving.html) — `FileAccess`/`user://` patterns for custom level JSON and editor export packs.
132- [JSON](https://docs.godotengine.org/en/stable/classes/class_json.html) — Serialize compact puzzle boards when splitting `Vector2` fields for portable level files.
133
134### Related Skills
135
136#### Prerequisites
137- [godot-input-handling](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-input-handling/SKILL.md) — Buffered InputEvent/action maps so grid clicks and directional moves stay device-agnostic and forgiving.
138- [godot-signal-architecture](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-signal-architecture/SKILL.md) — Safe `state_changed` / `level_complete` wiring so UI and VFX stay decoupled from grid truth.
139- [godot-project-foundations](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-project-foundations/SKILL.md) — Autoload/project layout baselines before stacking undo managers, savers, and level packs.
140
141#### Complements
142- [godot-tweening](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-tweening/SKILL.md) — Deeper Tween composition when cell moves, match clears, and resets need interruptible juice without logic races.
143- [godot-save-load-systems](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-save-load-systems/SKILL.md) — Progress ownership, versioning, and threaded loads beyond per-level JSON snapshots.
144- [godot-tilemap-mastery](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-tilemap-mastery/SKILL.md) — TileMapLayer painting, custom data, and terrain patterns that visualize walls while scripts own solvability.
145- [godot-navigation-pathfinding](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-navigation-pathfinding/SKILL.md) — Broader Navigation/A* stacks when puzzle hints outgrow a single `AStarGrid2D` region.
146- [godot-2d-physics](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-2d-physics/SKILL.md) — RigidBody sleep, layers, and queries for physics puzzles that still need deterministic settle/win checks.
147- [godot-state-machine-advanced](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-state-machine-advanced/SKILL.md) — Phase FSMs (observe → move → resolve → win) when puzzles mix animation locks with input gates.
148- [godot-camera-systems](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-camera-systems/SKILL.md) — Camera2D/3D framing and unproject helpers for perspective/world-space puzzle overlays.
149- [godot-ui-containers](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-ui-containers/SKILL.md) — Minimal undo/reset HUD layouts that stay non-intrusive during non-verbal tutorials.
150
151#### Downstream / consumers
152- [godot-monte-carlo-balancer](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-monte-carlo-balancer/SKILL.md) — Sample solvability, move-count distributions, and soft-lock rates so level packs stay fair as mechanics combine.
153- [godot-procedural-generation](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-procedural-generation/SKILL.md) — Generate candidate boards that still pass this skill's validators, undo constraints, and win-condition contracts.
154- [godot-genre-roguelike](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-genre-roguelike/SKILL.md) — Consumes grid/undo patterns when dungeon runs embed discrete puzzle rooms or locked-door logic.
155
156#### Master
157- [godot-master](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-master/SKILL.md) — Library router and mirrored module entry for discovering this genre skill beside sibling domains.