Skip to main content

Godot Scene Signal Auditor

Static CI checks for Godot scene signal connections, scene contracts, signal declarations, exported script properties, node groups, autoload signal usage, and coupling patterns that become hard to debug in larger projects.

The analyzer is deliberately conservative. It reports only what it can infer from .tscn and .gd files without running Godot.

Install

python -m pip install -e .

When published:

python -m pip install godot-scene-signal-auditor

Quick Start

godot-signal-audit C:\Projects\MyGame --strict-stale-connections
godot-signal-audit . --autoload EventBus,SignalBus
godot-signal-audit . --contract scene-contract.json
godot-signal-audit . --contract scene-contract.json --baseline-contract previous-scene-contract.json
godot-signal-audit . --format mermaid --output docs\SIGNAL_GRAPH.md
godot-signal-audit . --format json --output signal-report.json

Run the sample:

godot-signal-audit examples\tiny-godot-project --format mermaid --fail-on none
godot-signal-audit examples\tiny-godot-project --contract examples\tiny-godot-project\scene-contract.json --format json

What It Checks

  • Persistent scene connections in .tscn files.
  • Target method existence when the target script is resolvable.
  • GDScript signal declarations and method names.
  • Configured autoload signal connect usage.
  • Optional JSON or TOML scene contracts for required nodes, node groups, connections, script methods, script signals, exported script properties, and baseline contract diffs.
  • Mermaid signal graph output.
  • Report metadata and readable rule explanations in text and JSON output.

Scene Contracts

Use --contract to enforce a small scene API before refactors. Contracts can target exact scene paths or glob-style path_pattern values.

{
  "scenes": [
    {
      "path": "scenes/menu.tscn",
      "required_nodes": [".", "StartButton"],
      "required_connections": [
        {
          "from": "StartButton",
          "signal": "pressed",
          "to": ".",
          "method": "_on_start_pressed"
        }
      ],
      "script_methods": {
        ".": ["_ready", "_on_start_pressed"]
      },
      "script_signals": {
        ".": ["menu_opened"]
      },
      "script_exports": {
        ".": ["menu_title"]
      },
      "node_groups": {
        ".": ["menu_root"],
        "StartButton": ["primary_action"]
      }
    }
  ]
}

TOML files use the same field names with [[scenes]] entries. Contract violations are reported as errors and respect --fail-on.

When a refactor changes the contract intentionally, keep a copy of the previous contract and compare it with the new one:

godot-signal-audit . --contract scene-contract.json --baseline-contract previous-scene-contract.json --format json --fail-on none

The baseline comparison reports warnings for removed scene targets, required nodes, required connections, script methods, script signals, exported properties, and node groups. That makes breaking scene API changes visible in review without failing builds unless your --fail-on threshold includes warnings.

Documentation

Development

python -m pip install -e .
python -m unittest discover -s tests -v
godot-signal-audit examples\tiny-godot-project --format mermaid --fail-on none

Examples use generic scene and signal names so the repository can be published safely.

Metadata

Release files for godot-scene-signal-auditor 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for godot-scene-signal-auditor 0.1.5
File Size Uploaded
godot_scene_signal_auditor-0.1.5.tar.gz 14.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for godot-scene-signal-auditor 0.1.5
File Interpreter ABI Platform
godot_scene_signal_auditor-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 29.4 kB

Release files / godot_scene_signal_auditor-0.1.5.tar.gz

Download URL godot_scene_signal_auditor-0.1.5.tar.gz
Size 14.5 kB
Tags Source
SHA-256 checksum
How to use checksums
725ca924dfc76dc0ff05f3b276a0d203ccec3d9f5f8e1d3259a4acec3ee9041d
BLAKE2b-256 checksum
How to use checksums
69bd606ba14a435813f2a85bce0c813d3200a4b8771cb46e5091d1b17b84fd0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 19, 2026.

Transparency log

Release files / godot_scene_signal_auditor-0.1.5-py3-none-any.whl

Download URL godot_scene_signal_auditor-0.1.5-py3-none-any.whl
Size 14.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cd928037b64afa6cb4cb03f498330dfdd7d50d533f70dd8ef70c31be2c8e85e3
BLAKE2b-256 checksum
How to use checksums
9d3f806844f1c10adeb06d658664b74c95ce8f8c46b0fc74173d9a9053233c0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page