Expert-level toolkit for modular Godot 4.7+ CLI automation and headless build orchestration. Use 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. Set GODOT_PATH env var for custom engine location. Keywords: Godot CLI, headless, CI, export, builder, 4.7.
npx skills add https://github.com/thedivergentai/GD-Agentic-Skills --skill godot-builder
The godot-builder skill provides an expert-grade foundation for programmatic game development and headless automation using the Godot 4.7-stable CLI. Override paths via GODOT_PATH and GODOT_CONSOLE_PATH environment variables.
XDG_DATA_HOME and XDG_CONFIG_HOME to prevent cache corruption between instances..godot/imported/ directory to force the engine to re-evaluate modified global import settings.owner property set to the scene root, or they will be discarded during serialization.ResourceSaver.save() does NOT serialize UIDs in headless mode. Invoke godot -e --headless --import as a post-process.Resource.duplicate(true) in Godot 4.4+; use duplicate_deep(Resource.DEEP_DUPLICATE_ALL) to prevent procedural state-bleed..tscn or .tres extensions; always load via uid:// or without extensions to avoid failures in exported binary builds.RenderingServer.call_on_render_thread().ResourceUID.set_id() without calling has_id() first; it causes a fatal CLI crash.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.> Do NOT Load the full script catalog for a single task. Load only the MANDATORY scripts named in the active workflow. Thin process wrappers (launch_editor.py, run_project.py, stop_project.py, get_*, list_projects.py) live in the appendix — do not preload them unless that exact CLI action is required.
Purpose: Automates the ingestion of raw 3D assets into production-ready scenes with accurate physics collisions.
godot -e --headless --import (or import_automator.py) — do not invent alternate flag orders.gltf_processor.py -> collision_generator.py -> save_scene.py -> headless --import.owner for every node. Forces a final headless import to fix the missing UID serialization.ResourceSaver does not serialize UIDs headless. Fallback: re-run --import; if UIDs still missing, run update_project_uids.py after import completes.quit() or editor import is waiting on GPU. Fallback: ensure the post-process script calls get_tree().quit(); kill the PID via stop_project.py and retry with XDG_* isolation.Purpose: Generates optimized procedural level chunks without shared resource state corruption between instances.
duplicate_deep(Resource.DEEP_DUPLICATE_ALL) between bake steps — do not use duplicate(true).csg_optimizer.py -> duplicate_deep(ALL) -> navmesh_baker.py.duplicate_deep to isolate materials/resources. Bakes CSG to static geometry before triggering NavMesh pathfinding.DEEP_DUPLICATE_ALL per instance.quit() after bake. Fallback: add explicit quit; isolate via XDG_DATA_HOME / XDG_CONFIG_HOME.Purpose: Validates cross-platform builds and ensures global project settings (VRAM compression) are strictly applied.
rm -rf .godot/imported -> test_runner.py -> profile_generator.py -> ci_exporter.py.export_presets.cfg not mutated for the target. Fallback: run ci_export_prepper.gd headlessly before --export-release; verify preset name matches CI matrix.quit(). Fallback: always end -s scripts with quit(); treat non-zero hang as kill + retry with XDG isolation.--import, then update_project_uids.py; do not export until import finishes cleanly.Professional Godot building requires a "Zero-Touch" philosophy for assets and binary exports.
ConfigFile to mutate .import files and EditorFileSystem.reimport_files() to trigger a batch update on the main thread safely.res:// is clean. Over time, deleted scenes leave behind orphaned textures and sounds that bloat the final build.ResourceLoader.get_dependencies() to recursively trace exactly which assets are linked to your "Main Scene" and flag anything else as slop.--headless --script for versioning tasks (mutating export_presets.cfg) before running the final --export-release.quit() at the end of a headless script, or your CI runner will hang indefinitely.Primary automation scripts — open only when the matching workflow requires them.
.glb/.gltf assets into Godot Scenes.ConcavePolygonShape3D physics from mesh data.owner first)..meshlib resources for GridMaps.export_presets.cfg..cfg config files.Convenience CLI only — not expert pipeline prose. Load when you need that exact process action.
> Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing to a peer domain — do not preload the whole lattice.
--headless, --path, -s/--script, --import, and --export-* flags that every builder wrapper invokes.export_presets.cfg before --export-release.OS.has_feature..import + .godot/imported lifecycle; why deleting imported cache forces project-wide revalidation.GLTFDocument/ResourceSaver automation.has_id/set_id/uid:// sync after headless saves (UIDs are not serialized by ResourceSaver headless)..tscn writes; ownership must be set before PackedScene.pack.reimport_files() for batch import enforcement from @tool EditorScripts.project.godot metadata, and VCS ignores must exist before CLI launch/import/export automation.SceneTree workers, typed Resources, and quit() lifecycle patterns used by every -s script.PackedScene, UID paths, and deep-duplicate rules that prevent procedural state-bleed across builder runs.ci_exporter.py orchestration.navmesh_baker.py.tilemap_generator.py.ui_assembler.py should emit instead of absolute Control positions.collision_generator.py.test_runner.py in CI after import/export steps.test_runner calibration loops for balance sims after builder CI smoke passes.get_debug_output.py logs when headless imports/exports fail without a GUI.Assess Kubernetes workloads and cluster configuration for AKS Automatic compatibility. Identifies incompatibilities, generates fixes, and guides migration from AKS Standard to AKS Automatic. WHEN: migrate to AKS Automatic, check AKS Automatic readiness, validate manifests for Automatic, assess cluster for Automatic compatibility, fix deployment for Automatic compatibility, identify AKS Automatic migration blockers, is my cluster ready for AKS Automatic.
Discovers available Azure OpenAI model capacity across regions and projects. Analyzes quota limits, compares availability, and recommends optimal deployment locations based on capacity requirements. USE FOR: find capacity, check quota, where can I deploy, capacity discovery, best region for capacity, multi-project capacity search, quota analysis, model availability, region comparison, check TPM availability. DO NOT USE FOR: actual deployment (hand off to preset or customize after discovery), quota increase requests (direct user to Azure Portal), listing existing deployments.
Interactive guided deployment flow for Azure OpenAI models with full customization control. Step-by-step selection of model version, SKU (GlobalStandard/Standard/ProvisionedManaged), capacity, RAI policy (content filter), and advanced options (dynamic quota, priority processing, spillover). USE FOR: custom deployment, customize model deployment, choose version, select SKU, set capacity, configure content filter, RAI policy, deployment options, detailed deployment, advanced deployment, PTU deployment, provisioned throughput. DO NOT USE FOR: quick deployment to optimal region (use preset).
Unified Azure OpenAI model deployment skill with intelligent intent-based routing. Handles quick preset deployments, fully customized deployments (version/SKU/capacity/RAI policy), and capacity discovery across regions and projects. USE FOR: deploy model, deploy gpt, create deployment, model deployment, deploy openai model, set up model, provision model, find capacity, check model availability, where can I deploy, best region for model, capacity analysis. DO NOT USE FOR: listing existing deployments (use foundry_models_deployments_list MCP tool), deleting deployments, agent creation (use agent/create), project creation (use project/create).
Intelligently deploys Azure OpenAI models to optimal regions by analyzing capacity across all available regions. Automatically checks current region first and shows alternatives if needed. USE FOR: quick deployment, optimal region, best region, automatic region selection, fast setup, multi-region capacity check, high availability deployment, deploy to best location. DO NOT USE FOR: custom SKU selection (use customize), specific version selection (use customize), custom capacity configuration (use customize), PTU deployments (use customize).
This skill should be used when working with LaminDB, an open-source data framework for biology that makes data queryable, traceable, reproducible, and FAIR. Use when managing biological datasets (scRNA-seq, spatial, flow cytometry, etc.), tracking computational workflows, curating and validating data with biological ontologies, building data lakehouses, or ensuring data lineage and reproducibility in biological research. Covers data management, annotation, ontologies (genes, cell types, diseases, tissues), schema validation, integrations with workflow managers (Nextflow, Snakemake) and MLOps platforms (W&B, MLflow), and deployment strategies.
Latch platform for bioinformatics workflows. Build pipelines with Latch SDK, @workflow/@task decorators, deploy serverless workflows, LatchFile/LatchDir, Nextflow/Snakemake integration.
Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.
Take thedivergentai/godot-builder from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.