Expert debugging and profiling for leaks, GPU/Visual Profiler, headless CI QA, orphan nodes, thread-safe logs, and custom Debugger monitors — not print/breakpoint tutorials. Trigger on OBJECT_ORPHAN_NODE_COUNT, ObjectDB growth, Visual Profiler GPU spikes, flaky headless exits, or remote device consoles. Keywords: orphan nodes, Performance.get_monitor, Visual Profiler, Time.get_ticks_usec, EditorDebuggerPlugin, headless QA, push_error, backtrace.
npx skills add https://github.com/thedivergentai/GD-Agentic-Skills --skill godot-debugging-profiling
Symptom → monitor/API → script routing for leaks, GPU, and CI — Official Docs cover print/breakpoint basics.
print() without descriptive context — print(value) is useless. Use print("Player health:", health) with labels.if OS.is_debug_build() or use custom DEBUG const. Prints slow down release.push_warning() messages — Warnings indicate potential bugs (null refs, deprecated APIs). Fix them before they become errors.assert() for runtime validation in release — Asserts are disabled in release builds. Use if not condition: push_error() for runtime checks.--release flag.Engine.capture_script_backtraces(true) is cheap — Capturing locals allocates significant memory and can prevent objects from being deallocated, causing artificial leaks [19].push_error() or print() inside a custom Logger._log_message override — This causes infinite recursion and crashes as the logger intercepts its own output [20].OS.get_ticks_msec() for microbenchmarking — Milliseconds lack precision for logic timing; ALWAYS use Time.get_ticks_usec() for microsecond precision [22].OBJECT_ORPHAN_NODE_COUNT works in production — This monitor is strictly debug-only; it safely returns 0 in release builds, potentially hiding leaks [23].print_stack() or print_debug() in release builds — These are often stripped or useless outside the debugger. Use structured logging for production [25].EditorDebuggerPlugin in _exit_tree() — Failing to clean up leaves "ghost" connections in the engine's debugging loop [27].> MANDATORY for the matching row. Do NOT Load every debug script for one bug.
| Symptom | Monitor / API | Script |
|---------|---------------|--------|
| Nodes removed but RAM climbs | OBJECT_ORPHAN_NODE_COUNT (debug) | MANDATORY orphan_node_detector.gd |
| ObjectDB / instance growth | custom monitors + dump | memory_usage_threshold_alert.gd, scene_tree_dump.gd |
| GPU / overdraw mystery | Visual Profiler (briefly) | Pair with perf skill; use performance_plotter.gd for trends — do not leave Visual Profiler on |
| Flaky headless / CI exit | exit codes + asserts | MANDATORY automated_qa_suite.gd, push_error_safe_exit.gd |
| Microbenchmark lies | Time.get_ticks_usec | MANDATORY high_precision_benchmarker.gd |
| Crash needs locals | backtraces (debug only) | advanced_backtrace_recorder.gd, stack_trace_logger.gd |
| Engine errors to backend | Logger intercept | engine_error_interceptor.gd — never print inside Logger |
| Custom Debugger metrics | Monitors tab | custom_editor_monitor.gd, debugger_tab_plugin.gd |
| Mobile/console no stdout | in-game console | remote_debug_console.gd, debug_overlay.gd (debug builds only) |
| Thread races / log corruption | mutex logger / asserts | thread_safe_logger.gd, thread_safety_assert.gd |
| Invisible logic (AI/physics) | debug draw / gizmos | custom_debug_draw.gd, property_watcher_gizmo.gd |
| Conditional halt | hardcoded break | break_on_condition.gd |
| Editor vs runtime paths | Engine.is_editor_hint | engine_editor_hint_logic.gd |
_exit_tree()--release with V-Sync off; never trust Debug-build timings.print_stack() in anything that might ship.godot-performance-optimization after the symptom tree identifies the bottleneck class.> MANDATORY for print/breakpoint workflow depth, profiler interpretation, and expert CI/GPU/thread patterns: debug-workflows.md. Do NOT Load when the symptom → script table above already routes you.
> 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.
print / push_warning / push_error surface in the editor and why noisy release logs hide real faults.Performance.add_custom_monitor so game-specific metrics appear next to engine monitors.Logger registration, file sinks, and recursion hazards when logging from inside log handlers.--script / export flags for automated QA and CI exit-code runners.OBJECT_ORPHAN_NODE_COUNT, memory, render) used by overlays and leak detectors.assert/push_error, and Time APIs underpin benchmarks, breakpoints, and stack helpers.quit exit codes.Plan, write, and diagnose Instagram Reels that earn cold-audience reach. Use whenever someone wants a reels script or reels hook for a specific Reel, is debugging why a Reel flopped, wants to know if a draft is worth testing with Trial Reels before going public, or needs a reels caption tuned for the post-hashtag instagram algorithm. Built around what Mosseri has publicly named as the signal hierarchy (watch time, sends per reach, likes per reach), the Trial Reels test-then-publish loop, the Original Content Guidelines and 30-day recovery window, the Edits app, and Reels Insights metrics (skip rate, share rate, followers from this post). Covers a Reels-specific reels strategy: send-driving CTAs, originality without watermarks, audio licensing by account type, captions as the primary SEO signal, and the anti-patterns that quietly cap distribution. Pattern-based guidance, not a virality promise.
Perform relative value analysis on bonds by combining pricing, yield curve context, credit spreads, and scenario stress testing. Use when analyzing bond richness/cheapness, computing spread decomposition, comparing bonds, assessing bond value vs curves, or running rate shock scenarios.
Build quick IRR/MOIC sensitivity tables for PE deal evaluation. Models returns across entry multiple, leverage, exit multiple, growth, and hold period scenarios. Use when sizing up a deal, stress-testing assumptions, or preparing IC returns exhibits. Triggers on "returns analysis", "IRR sensitivity", "MOIC table", "what's the return at", "model the returns", or "back of the envelope".
Design lean startup experiments (pretotypes) for a new product. Creates XYZ hypotheses and suggests low-effort validation methods like landing pages, explainer videos, and pre-orders. Use when validating a new product idea, creating pretotypes, or testing market demand.
Amazon Alexa for Shopping Q&A automation: submits questions to Amazon's Alexa/Rufus AI shopping assistant and collects response text; supports optional keyword search context (navigate to search results page before asking for category-specific answers). Use when user mentions Amazon Alexa, Rufus, Amazon shopping assistant, Amazon AI chat, ask Amazon, Amazon Q&A, automate Alexa questions, Rufus chatbot, Amazon assistant automation, collect Alexa responses, bulk question submission to Amazon, keyword search context, category research. Also applies to extracting Amazon product recommendations from conversational AI, automating repeated queries to Amazon's AI shopping feature, collecting Alexa shopping responses at scale, or market research within a specific product category.
When the user wants to create UGC ad campaigns, recruit UGC creators, generate AI UGC content, or scale with user-generated content. Also use when the user mentions 'UGC,' 'user-generated content,' 'creator ads,' 'Spark Ads,' 'whitelisting,' 'AI UGC,' 'Arcads,' 'Creatify,' 'creator brief,' or 'UGC testing.' This skill covers the UGC growth framework from creator recruitment through AI-powered scaling. Do NOT use for technical implementation, code review, or software architecture.
Parse, modify, validate, and patch simulator input files. Use when working with reservoir simulation input files, testing scenarios, or validating simulation configurations. This implementation supports reference format (.DATA); other simulators use different extensions (e.g., .afi, .DAT). Supports natural language modifications, keyword patching, and syntax validation.
Triage ASM/recon output for ownership before testing — separate the target's real assets from namespace-collision noise. Automated recon keyword-matches on the brand name, so for any target whose name is a common/dictionary word, the output is dominated by assets belonging to UNRELATED same-named companies (repos, cloud buckets, mobile apps, breach corpora, typosquats). Built from an authorized engagement where an ASM report's "Criticals" were overwhelmingly false positives and the combo/repos/mobile/bucket lists were polluted with unrelated same-named orgs. Use at the START of any engagement, immediately on receiving any ASM/recon/OSINT dataset, BEFORE testing anything.
Take thedivergentai/godot-debugging-profiling 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.