Skip to content
Back to skills

Collection

ASecurity

Push GameGen Game Design to Godot by parsing AI responses and generating .tscn scene files. Consumes AI responses to build Godot objects/controls.

  • 24 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 8, 2026
toolspythongobashnodeexpresstesting

Works with

  • cli
  • mcp

Security analysis

A100/100

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

Scanned September 8, 2026

npx -y skills add mattnigh/skills_collection --skill collection --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Collection?

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

Security grade badge for Collection
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mattnigh-collection-bdbd1e55/badge)](https://www.skillsdirectory.com/skills/mattnigh-collection-bdbd1e55)

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: push-design
description: Push GameGen Game Design to Godot by parsing AI responses and generating .tscn scene files. Consumes AI responses to build Godot objects/controls.
allowed-tools: Read, Write, Bash(python3:*), Glob, Grep, mcp__dynamodb__get_item, mcp__dynamodb__query_table, mcp__dynamodb__scan_table, mcp__dynamodb__put_item
---

# Push Design Skill

Pushes GameGen Game Design to Godot by:
1. Fetching Game Design AI responses from DynamoDB
2. Parsing the AI-generated scene hierarchy
3. Generating Godot .tscn scene files
4. Updating the Godot project structure

## What This Skill Does

The Push Design skill bridges GameGen's AI-assisted design process with actual Godot project files:

1. **Reads Game Design prompts** from the AIPrompts table
2. **Parses AI responses** to extract scene hierarchies (the AI generates tree structures like `Root (Node2D) → UI (Control) → ...`)
3. **Merges with existing layouts** preserving user-set positions/sizes
4. **Generates .tscn files** in proper Godot 4.x format
5. **Updates project.godot** with the main scene

## Usage

Ask Claude to:
- "Push design for project 2"
- "Build Godot project from the Game Design response"
- "Generate .tscn files from the AI design for project 1"
- "Update the Godot project based on Game Design"

### Workflow

1. **Create Game Design** in GameGen (right-click [PRJ] → Game Design)
2. **Generate AI response** describing the scene structure
3. **Run push-design** to convert AI response to .tscn files

### Command Line Testing

```bash
cd .claude/skills/push-design/scripts

# Sync from existing SceneLayout
python3 sync.py --project-id 2

# Sync from Game Design AI response (parses the response)
python3 sync.py --project-id 2 --from-game-design

# Dry run to preview output
python3 sync.py --project-id 2 --from-game-design --dry-run

# Custom output directory
python3 sync.py --project-id 2 --output-dir /path/to/godot/project
```

## Architecture

### Module Structure

```
push-design/
├── SKILL.md           # This file
└── scripts/
    ├── models.py      # Data classes (SceneNode, NodeProperties)
    ├── parser.py      # AI response parser (extracts tree structures)
    ├── generator.py   # .tscn file generator
    └── sync.py        # Main orchestrator
```

### Data Models (models.py)

- **SceneNode**: Represents a node in the scene hierarchy
- **NodeProperties**: Node properties (position, size, text, color, etc.)
- **ParsedScene**: A parsed scene ready for export

### Parser (parser.py)

Extracts scene hierarchies from AI responses. Handles formats like:

```
Root (Node2D)
├── UI (Control)
│   ├── ToolbarLeft (HBoxContainer)
│   │   └── Button_NewGame (Button)
│   └── StatusBar (HBoxContainer)
└── SlotMachine (Node2D)
```

### Generator (generator.py)

Converts SceneNode trees to Godot .tscn format:

```
[gd_scene load_steps=1 format=3]

[node name="Root" type="Node2D"]

[node name="UI" type="Control" parent="."]

[node name="ToolbarLeft" type="HBoxContainer" parent="UI"]
```

### Syncer (sync.py)

Orchestrates the sync process:
1. Fetches data from DynamoDB (via MCP or direct HTTP)
2. Parses Game Design responses
3. Merges with existing scene layouts
4. Generates and writes .tscn files

## DynamoDB Tables

| Table | Keys | Used For |
|-------|------|----------|
| Projects | ID (N) | Project name, GodotProjectPath |
| SceneLayout | projectID (N) | Existing scene hierarchy (sceneRoot) |
| AIPrompts | projectObjectID (S), promptID (S) | Game Design responses |

### Finding Game Design Prompts

Game Design prompts have:
- `projectObjectID`: `"{projectID}_0"` (e.g., "2_0")
- `title`: "Game Design"
- `response`: The AI-generated design document

## Supported Node Types

### 2D Nodes
- Node2D, Sprite2D, AnimatedSprite2D
- CharacterBody2D, RigidBody2D, StaticBody2D, Area2D

### Containers
- VBoxContainer, HBoxContainer, GridContainer
- FlowContainer, PanelContainer, MarginContainer
- CenterContainer, AspectRatioContainer
- HSplitContainer, VSplitContainer, TabContainer

### Controls
- Button, Label, LineEdit, TextEdit
- CheckBox, CheckButton, OptionButton, MenuButton
- SpinBox, HSlider, VSlider, ProgressBar
- ColorRect, TextureRect, RichTextLabel

## Property Mapping

| GameGen Property | Godot Property | Node Types |
|-----------------|----------------|------------|
| positionX/Y | `position = Vector2(x, y)` | Node2D types |
| positionX/Y | `offset_left/top` | Control types |
| sizeX/Y | `offset_right/bottom` | Control types |
| minSizeX/Y | `custom_minimum_size` | All |
| text | `text` | Button, Label, etc. |
| color | `color = Color(r, g, b, 1)` | ColorRect |
| texture | `texture = ExtResource("id")` | Sprite2D, TextureRect |
| columns | `columns` | GridContainer |

## Example Workflow (Claude)

```
1. Query AIPrompts for Game Design response:
   mcp__dynamodb__query_table(
     tableName="AIPrompts",
     keyConditionExpression="projectObjectID = :pid",
     expressionAttributeValues={":pid": {"S": "2_0"}}
   )

2. Get project info:
   mcp__dynamodb__get_item(
     tableName="Projects",
     key={"ID": {"N": "2"}}
   )

3. Parse AI response and generate .tscn:
   python3 scripts/sync.py --project-id 2 --from-game-design

4. Or use the Python modules directly with MCP-fetched data
```

## Merging Behavior

When syncing from Game Design with existing SceneLayout:
- **Structure**: Adopts the new AI-generated hierarchy
- **Layout properties**: Preserves user-set positions/sizes from existing nodes
- **New nodes**: Added with default properties
- **Removed nodes**: Dropped from the merged result

This allows iterative refinement: regenerate Game Design to restructure, keep manual layout adjustments.

Files in this skill

  • 0Chan-smc__claude-code-workflow-lab__claude__skills__frontend-dev-guidelines__SKILL.md15.1 KB
  • 17hz__nextjs-template__claude__skills__example-skill__SKILL.md316 B
  • 1ambda__dataops-platform__claude__skills__context-synthesis__SKILL.md3.5 KB
  • 1natsu172__dotfiles__claude__skills__git-analysis__SKILL.md5.4 KB
  • 1natsu172__dotfiles__claude__skills__github-pr-best-practices__SKILL.md7.7 KB
  • 23Maestro__prospect-pipeline__claude__skills__npid-fastapi-skill.md26.1 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-code-javascript__SKILL.md15.7 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-code-python__SKILL.md17.5 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-expression-syntax__SKILL.md9.4 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-mcp-tools-expert__SKILL.md12.5 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-node-configuration__SKILL.md16.6 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-workflow-patterns__SKILL.md11.2 KB
  • 3x-Projetos__claude-memory-framework__claude__skills__scientist__SKILL.md14.8 KB
  • 5MinFutures__futures-arena__claude__skills__migration-tracker__SKILL.md16.2 KB
  • 5MinFutures__futures-arena__claude__skills__planning-guidelines__SKILL.md11.8 KB
  • 92Bilal26__TaskPilotAI__claude__skills__assessment-builder__SKILL.md17.5 KB
  • 92Bilal26__TaskPilotAI__claude__skills__book-scaffolding__SKILL.md19.1 KB
  • 92Bilal26__TaskPilotAI__claude__skills__code-validation-sandbox__SKILL.md6.2 KB
  • 92Bilal26__TaskPilotAI__claude__skills__exercise-designer__SKILL.md18.1 KB
  • 92Bilal26__TaskPilotAI__claude__skills__learning-objectives__SKILL.md24.5 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…