godot-builder
Expert-level toolkit for modular Godot 4.x CLI automation and headless build orchestration. Use this skill when you need to: (1) Build complex scene trees or UI layouts programmatically, (2) Automate expert 3D asset pipelines (glTF -> Collision), (3) Optimize procedural geometry headlessly (CSG -> Static Mesh), or (4) Engineer production-grade CI/CD pipelines with engine module stripping and delta patching.
What this skill does
# Godot Builder Skill The `godot-builder` skill provides an expert-grade foundation for programmatic game development and headless automation using the Godot 4.6.1-stable CLI. ## Expert Automation Mindset - **Headless Isolation via XDG**: When running multiple concurrent Godot instances, always override `XDG_DATA_HOME` and `XDG_CONFIG_HOME` to prevent cache corruption between instances. - **Cache Invalidation (Force Import)**: Programmatically delete the `.godot/imported/` directory to force the engine to re-evaluate modified global import settings. - **Explicit Ownership**: Scene nodes MUST have their `owner` property set to the scene root, or they will be discarded during serialization. - **Latency-Sensitive Multi-threading**: GPU interactions (textures, image data) must stay on the main thread to avoid pipeline stalls and deadlocks. ## Hardened Anti-Patterns (NEVER List) - **NEVER** save runtime-generated UIDs headlessly; `ResourceSaver.save()` does NOT serialize UIDs in headless mode. Invoke `godot -e --headless --import` as a post-process. - **NEVER** use `Resource.duplicate(true)` in Godot 4.4+; use `duplicate_deep(Resource.DEEP_DUPLICATE_ALL)` to prevent procedural state-bleed. - **NEVER** hardcode `.tscn` or `.tres` extensions; always load via `uid://` or without extensions to avoid failures in exported binary builds. - **NEVER** execute GPU-bound calls on secondary threads. Use `RenderingServer.call_on_render_thread()`. - **NEVER** enable the Shader Baker for Dedicated Server builds; the headless backend ignores it. - **NEVER** call `ResourceUID.set_id()` without calling `has_id()` first; it causes a fatal CLI crash. - **NEVER** skip `RenderingServer.canvas_item_reset_physics_interpolation()` when programmatically moving low-level CanvasItems on their first frame; failure causes visual desync between rendering and physics systems. ## Expert Automation Workflows ### Workflow #1: The Hardened 3D Asset Pipeline **Purpose**: Automates the ingestion of raw 3D assets into production-ready scenes with accurate physics collisions. - **Sequence**: `gltf_processor.py` -> `collision_generator.py` -> `save_scene.py`. - **Expert Defense**: Sets explicit `owner` for every node. Forces a final headless import to fix the missing UID serialization. ### Workflow #2: Procedural Level Optimization & 4.4+ Scaling **Purpose**: Generates optimized procedural level chunks without shared resource state corruption between instances. - **Sequence**: `csg_optimizer.py` -> `duplicate_deep(ALL)` -> `navmesh_baker.py`. - **Expert Defense**: Uses `duplicate_deep` to isolate materials/resources. Bakes CSG to static geometry before triggering NavMesh pathfinding. ### Workflow #3: Production CI/CD & Force-Import Validation **Purpose**: Validates cross-platform builds and ensures global project settings (VRAM compression) are strictly applied. - **Sequence**: `rm -rf .godot/imported` -> `test_runner.py` -> `profile_generator.py` -> `ci_exporter.py`. - **Expert Defense**: Forces full re-import to validate asset compression. Isolates CI runs via XDG variables. Injects secure keystore paths from environment variables. --- ## Automation & CI/CD Pipelines (Godot 4.6) Professional Godot building requires a "Zero-Touch" philosophy for assets and binary exports. ### 1. Programmatic Asset Re-import - **NEVER** manually select 500 textures to change their compression. - Use `ConfigFile` to mutate `.import` files and `EditorFileSystem.reimport_files()` to trigger a batch update on the main thread safely. ### 2. Orphan Asset Detection (Slop Scan) - **NEVER** trust `res://` is clean. Over time, deleted scenes leave behind orphaned textures and sounds that bloat the final build. - Use `ResourceLoader.get_dependencies()` to recursively trace exactly which assets are linked to your "Main Scene" and flag anything else as slop. ### 3. Headless CI/CD Context - Use `--headless --script` for versioning tasks (mutating `export_presets.cfg`) before running the final `--export-release`. - **Tip**: Always call `quit()` at the end of a headless script, or your CI runner will hang indefinitely. --- ## Full Modular Skill Index (25 Scripts) ### Project & Process Management 1. **launch_editor.py**: Opens the Godot visual editor for the project. 2. **run_project.py**: Launches the game project in debug or release mode. 3. **get_debug_output.py**: Captures and redirects engine logs to the terminal. 4. **stop_project.py**: Safely terminates a running Godot instance via its PID. 5. **get_godot_version.py**: Retrieves the specific engine version and build info. 6. **list_projects.py**: Recursively scans directories to identify Godot project roots. 7. **get_project_info.py**: Parses `project.godot` to retrieve metadata (display, features). 8. **ci_exporter.py**: Orchestrates multi-platform release exports headlessly. 9. **ci_export_prepper.gd**: Headless versioning script for `export_presets.cfg`. 10. **profile_generator.py**: Generates feature profiles for module-stripping optimization. ### Scene & Dynamic Building 11. **create_scene.py**: Programmatically creates new `.tscn` resource files. 12. **add_node.py**: Instantiates and appends nodes to an existing scene tree. 13. **load_sprite.py**: Dynamically assigns and configures textures for Sprite2D nodes. 14. **save_scene.py**: Safely packs and persists the current node tree to disk. 15. **gltf_processor.py**: Headlessly converts raw `.glb/.gltf` assets into Godot Scenes. 16. **csg_optimizer.py**: Bakes procedural CSG boolean operations into static meshes. 17. **tilemap_generator.py**: Procedurally builds TileMapLayer grids from JSON data. 18. **ui_assembler.py**: Constructs complex GUI layouts from standardized JSON structures. 19. **navmesh_baker.py**: Executes asynchronous headless NavMesh pathfinding baking. 20. **collision_generator.py**: Generates `ConcavePolygonShape3D` physics from mesh data. 21. **orphan_asset_scanner.gd**: Recursive dependency tracer for identifying unused resources. ### Automation & Utilities 22. **get_uid.py**: Retrieves the `uid://` identifier for a specific resource path. 23. **update_project_uids.py**: Re-scans and synchronizes all project resource UIDs. 24. **config_compiler.py**: Compiles JSON/CSV data into optimized `.cfg` config files. 25. **import_automator.py**: Programmatically configures import settings for directory batches. 26. **asset_reimport_utility.gd**: Expert batch re-importer for enforcing project-wide settings. 27. **test_runner.py**: Executes headless unit and integration tests (GUT/doctest). 28. **export_mesh_library.py**: Converts 3D scenes into `.meshlib` resources for GridMaps.
Related in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.