name: foundation-editor-workflow
description: Foundational skill for Godot editor-facing workflows: plugin entry points, menu/settings registration lifecycle, editor UX consistency, and teardown cleanliness.
tier: core
godot_version: 4.6+
doc_anchors:
- godot-docs/tutorials/plugins/editor/making_plugins.rst
- godot-docs/tutorials/plugins/running_code_in_the_editor.rst
- godot-docs/tutorials/editor/managing_editor_features.rst
- godot-docs/classes/class_editorplugin.rst
tags:
- editor
- plugins
- workflow
depends_on: []
Foundation Editor Workflow
Use When
- Building editor tools/plugins/docks/settings.
- Adding/removing menu entries and editor settings categories.
- Hardening plugin load/unload behavior.
Outcomes
- Editor entry points are explicit and stable.
- Registration and teardown are symmetric and repeatable.
- Tools behave safely in editor context without runtime side effects.
Required Rules
- Register editor entry points once.
- Remove all entries on disable/unload.
- No legacy/obsolete settings categories retained.
- Prefer event/callback lifecycle hooks over polling.
Workflow
- Define plugin entry surfaces (menu, dock, inspector, main screen).
- Implement enable/disable lifecycle with explicit registration map.
- Ensure
@tool execution boundaries are editor-safe.
- Add teardown cleanup for controls, signals, settings, and temporary state.
- Validate behavior across editor reload/restart cycles.
Validation
- Enable/disable plugin repeatedly with no duplicate entries or leaked state.
- Editor restart preserves intended settings and drops temporary artifacts.
- Tool actions do not mutate runtime-only state unexpectedly.
Failure Modes
- Plugin registers controls multiple times across reloads.
- Disable path leaves stale menus/signals/settings in editor state.
- Editor-time code executes unsafe runtime operations.
Local Doc Anchors
godot-docs/tutorials/plugins/editor/making_plugins.rst
godot-docs/tutorials/plugins/running_code_in_the_editor.rst
godot-docs/tutorials/editor/managing_editor_features.rst
godot-docs/classes/class_editorplugin.rst