Skip to content
Back to skills

Godot Rea

ASecurity

Emit a Godot 4.7 project from a GDAS-reader evidence ledger. Stubs name the ledger id and the Domain Skill to load. Use after gdas-reader, not as a decompiler. Keywords: godot-rea, reconstruction, ledger, emit_project, Godot 4.7.

  • 866 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 19, 2026
documentationpythongoshellnodetestinggitdocumentation

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned October 19, 2026

npx -y skills add thedivergentai/Game-Design-Agentic-Skills --skill godot-rea --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Godot Rea?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Godot Rea
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thedivergentai-godot-rea/badge)](https://www.skillsdirectory.com/skills/thedivergentai-godot-rea)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: godot-rea
description: "Emit a Godot 4.7 project from a GDAS-reader evidence ledger. Stubs name the ledger id and the Domain Skill to load. Use after gdas-reader, not as a decompiler. Keywords: godot-rea, reconstruction, ledger, emit_project, Godot 4.7."
---

# godot-rea

Turn a [GDAS-reader](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/gdas-reader/SKILL.md) ledger into a Godot 4.7 project. The project is a scaffold of stubs. It is not a port of machine code.

## When to use

Run this after `read_artifact.py` has written `ledger.json` and the honesty rubric in GDAS-reader scores at least 3. Then open the Domain Skill named on each stub before writing gameplay.

```powershell
python skills/gdas-reader/scripts/read_artifact.py P:\artifact --out P:\work\ledger.json
python skills/godot-rea/scripts/emit_project.py P:\work\ledger.json --out P:\work\godot-project
python skills/godot-rea/scripts/emit_project.py --self-test
```

## What gets written

| Path | Role |
| --- | --- |
| `project.godot` | Godot 4.7 project. Features are `4.7` and `Forward Plus`. Renderer is `forward_plus`. Main scene is `res://scenes/main.tscn`. The scene file has no `uid://` line. The editor writes UIDs on import. |
| `scenes/main.tscn` | One child node per ledger entry. The node name is the ledger id, not the display name, so two entries cannot share a sibling name. |
| `scripts/<id>.gd` | Stub. Comment carries ledger id, status, evidence path, and the Godot skill to load. `_ready` is `pass`. |
| `placeholders/` or `assets/` | Placeholders when the license is unspecified. Copied bytes when `--allow-assets` and the ledger license are both set. |
| `COVERAGE.md` | Limits plus one line per entry. |

`--allow-assets` copies bytes into `assets/<ledger-id>.<ext>` when that entry's `license` is not blank or `unspecified`. It prefers the reader's `copied` path, then `source_path`. Without that pair, the emitter writes `placeholders/` and leaves the bytes alone.

## Expert Knowledge Delta

- A `confirmed` declaration means the name exists in the artifact. It does not mean the Godot function should reproduce that body. Load the suggested skill and re-implement the behavior you are allowed to write.
- A `partial` string from a PE or ELF scan is a hint. The reader does not walk the import table, so a `.dll` string is not a confirmed import. Wiring it to `health` or a signal without a second source of truth fails the honesty rubric.
- `unknown` entries still get a node so coverage stays visible. Leaving them out makes the project look finished.
- Headless `ResourceSaver` does not write UIDs. The emitter omits `uid://` because `uid://rea_main` is illegal: `ResourceUID` text is `a-z` and `0-9` only, and an underscore returns `INVALID_ID`. After import, [godot-builder](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/godot-builder/SKILL.md) runs `godot -e --headless --import`.
- `config/features` must include both `4.7` and `Forward Plus`, and `renderer/rendering_method` must be `forward_plus`. A features array that is only `4.7` loses the renderer tag the next time the editor saves the project.
- The text loader sets `owner` to the scene root when a node has `parent="."` and no owner field. `parent` is not that assignment. `Node.duplicate()` does not copy owner. A later `PackedScene.pack` drops children whose owner is unset, so that step must `set_owner` on the copy and each child.
- Godot 4.7 new projects stretch with `canvas_items` and `expand` once the editor rewrites settings. The emitter does not pin stretch. See [references/migration-notes.md](references/migration-notes.md) and [references/ledger-contract.md](references/ledger-contract.md).

## NEVER

- NEVER invent damage formulas, scene flow, or input maps that the ledger does not state. A `partial` or `unknown` row is not a mechanic. Band 0 is that failure.
- NEVER mark a stub done by deleting `pass` and guessing a method body. The stub is done when the named Domain Skill replaces it.
- NEVER copy asset bytes unless `--allow-assets` is set and that entry's `license` is not blank or `unspecified`. An unspecified license means the bytes are not cleared to vendor into the project.
- NEVER decompile the original binary to fill a stub. The reader did not prove a function body, and a disassembly is not a Godot function.
- NEVER link this skill to GDAS-reader with a relative `../gdas-reader` path. A single-skill install has no sibling folder. Use the GitHub URL in Related Skills.
- NEVER add a `## Godot 4.7 Baseline` section here. Hop text stays in `references/migration-notes.md`.

## Honesty rubric

| Band | Rule |
| --- | --- |
| 0 | Emitted GDScript implements a mechanic the ledger marked `partial` or `unknown`. |
| 1 | `COVERAGE.md` omits limits or drops unknown ids. |
| 2 | Stubs exist but comments omit the skill name. |
| 3 | Every entry has a script, a coverage line, and a `pass` body. Comments are single lines. |
| 4 | Feature tags are `4.7` and `Forward Plus`. Suggested skills match the ledger. Assets are placeholders, or a licensed copy named from the ledger id when `--allow-assets` was set. |

Ship at band 4.

## Available Scripts

### [emit_project.py](scripts/emit_project.py)

Reads ledger JSON and writes the project tree. `--self-test` checks the Forward Plus feature tag, a comment that cannot become a statement, a placeholder when the license is unspecified, and a licensed copy under `--allow-assets`.

Field table and scene header: [references/ledger-contract.md](references/ledger-contract.md).

## Reference

### Official Documentation

- [Godot projects](https://docs.godotengine.org/en/stable/tutorials/editor/project_manager.html) — Project file and main scene the emitter writes.
- [Scenes and nodes](https://docs.godotengine.org/en/stable/getting_started/step_by_step/nodes_and_scenes.html) — Node tree the main scene uses for one stub per entry.
- [GDScript basics](https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html) — Typed `_ready` stubs.
- [Upgrading to Godot 4.7](https://docs.godotengine.org/en/stable/tutorials/migrating/upgrading_to_godot_4.7.html) — Feature tag and stretch defaults.

## Related Skills

#### Prerequisites
- [gdas-reader](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/gdas-reader/SKILL.md) — Writes the ledger this skill emits.
- [godot-project-foundations](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/godot-project-foundations/SKILL.md) — Folder and project conventions for the scaffold.
- [godot-builder](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/godot-builder/SKILL.md) — Headless import after the files exist.

#### Complements
- [godot-composition](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/godot-composition/SKILL.md) — Fill entity-shaped stubs.
- [godot-combat-system](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/godot-combat-system/SKILL.md) — Fill combat-shaped symbols.
- [godot-input-handling](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/godot-input-handling/SKILL.md) — Fill input entries.
- [godot-ui-containers](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/godot-ui-containers/SKILL.md) — Fill UI entries.
- [godot-save-load-systems](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/godot-save-load-systems/SKILL.md) — Fill save entries.

#### Downstream / consumers
- [godot-testing-patterns](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/godot-testing-patterns/SKILL.md) — Tests for stubs once a skill replaces `pass`.

#### Master
- [godot-master](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/godot-master/SKILL.md) — Router when a stub's suggested skill is the wrong chain.

Files in this skill

  • SKILL.md7.8 KB
  • references/ledger-contract.md1.3 KB
  • references/migration-notes.md3.2 KB
  • scripts/emit_project.py8.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.