360 Secure SkillHub
360 安全技能中心

godot-rea

读取 GDAS-reader 产出的 ledger.json,生成 Godot 4.7 项目骨架:project.godot、主场景、每个条目一个带 _ready pass 的 GDScript 占位脚本、占位资源与 COVERAGE.md。仅生成桩代码,不反编译、不推断未证实机制;只有 --allow-assets 且许可明确时才复制资源字节,并提供 --self-test 自检。

thedivergentai
热度 0.00
最近更新 2026-10-19 07:27:39
分类:开发依赖:代码执行 / 读写文件应用场景:代码生成 / 工作流 / 模板

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add thedivergentai/game-dev-agentic-skills/godot-rea
Metadata
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 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.

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 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 and 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

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.

Reference

Official Documentation

Related Skills

Prerequisites

Complements

Downstream / consumers

Master

  • godot-master — Router when a stub's suggested skill is the wrong chain.