Agent skill

Gdscript Patterns

by jame581 in jame581/GodotPrompter

A skill your agent uses when writing GDScript — static typing, await/coroutines, lambdas, match patterns, export annotations, inner classes, and common idioms

MITAuto-check passedGame Development

Install Gdscript Patterns

skills CLI
$ npx skills add jame581/GodotPrompter --skill gdscript-patterns -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jame581/GodotPrompter gdscript-patterns --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jame581/GodotPrompter.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/gdscript-patterns .claude/skills/gdscript-patterns && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
gdscript-patterns
GitHub stars
792
Token cost
~3.5k tokens
SKILL.md length
1,009 words
Files
7 (incl. references)
Skills in repo
58
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when writing GDScript — static typing, await/coroutines, lambdas, match patterns, export annotations, inner classes, and common idioms

  • Works in 12 steps: Static Typing → Await & Coroutines → Lambda Functions → …
  • Writing GDScript — static typing
  • SKILL.md covers 1. Static Typing, 2. Await & Coroutines, 3. Lambda Functions and 4. Match / Pattern Matching, plus 9 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Gdscript Patterns is an agent skill from jame581/GodotPrompter. Use when writing GDScript — static typing, await/coroutines, lambdas, match patterns, export annotations, inner classes, and common idioms

Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/abstract-classes.md`, `references/common-idioms.md` and `references/export-annotations.md`).

It sits in Game Development, covering Type safety and Game development. It works with Godot, AWS Lambda and C#. The repository describes itself as: Agentic skills framework for Godot 4.x. Domain-specific skills for AI coding agents (Claude Code, Copilot, Antigravity, Cursor). The licence is MIT.

When your agent uses it

  • Writing GDScript — static typing
  • Await/coroutines
  • Export annotations

Example prompts

  • “/gdscript-patterns”

Workflow steps

12 steps, taken from the step headings in SKILL.md.

  1. Static Typing
  2. Await & Coroutines
  3. Lambda Functions
  4. Match / Pattern Matching
  5. Export Annotations
  6. Inner Classes & class_name
  7. super() in Virtual Methods
  8. Common Idioms
  9. Annotations Reference
  10. Common Pitfalls
  11. Variadic Functions (Godot 4.5+)
  12. Abstract Classes and Methods (Godot 4.5+)

What it can do on your machine

Read from SKILL.md and the folder at commit 1e7d79d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are gdscript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.godotengine.org
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Gdscript Patterns loads about 3.5k tokens when it runs, and up to ~6.9k if it reads all its reference files. Until then it costs about 39 tokens; SKILL.md has 1,009 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~39
When it runs · the whole SKILL.md, loaded when a task matches
~3.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jame581/GodotPrompter at commit 1e7d79d, republished under its MIT licence (© jame581). 1,009 words, ~3,514 tokens.

Download SKILL.mdSave it as .claude/skills/gdscript-patterns/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
gdscript-patterns
description
Use when writing GDScript — static typing, await/coroutines, lambdas, match patterns, export annotations, inner classes, and common idioms

GDScript Patterns in Godot 4.3+

All examples target Godot 4.3+ with no deprecated APIs.

Related skills: gdscript-advanced for production-grade depth (performance idioms, metaprogramming, @tool lifecycle, profiler-driven idioms), godot-code-review for style rules and anti-patterns, csharp-godot for GDScript-to-C# translation, state-machine for state patterns, event-bus for signal architecture.

Note: This skill is GDScript-specific by design. For C# patterns, see csharp-godot and csharp-signals.


1. Static Typing

Type Hints

Always add type hints — they catch bugs at parse time, improve autocomplete, and boost performance.

gdscript
# Variables
var health: int = 100
var speed: float = 200.0
var player_name: String = "Hero"
var direction: Vector2 = Vector2.ZERO

# Constants
const MAX_HEALTH: int = 100
const GRAVITY: float = 980.0

# Functions — parameters and return type
func take_damage(amount: int) -> void:
    health -= amount

func get_direction() -> Vector2:
    return Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")

# Inferred typing with :=
var pos := Vector2(100, 200)     # inferred as Vector2
var items := []                  # inferred as Array (untyped)
var count := 0                   # inferred as int
Typed Collections
gdscript
# Typed arrays — only accepts the specified type
var enemies: Array[Enemy] = []
var scores: Array[int] = [10, 20, 30]
var names: Array[String] = ["Alice", "Bob"]

# Typed dictionaries (Godot 4.4+)
var inventory: Dictionary[String, int] = {"sword": 1, "potion": 5}

# Typed loop variable
for enemy: Enemy in enemies:
    enemy.take_damage(10)

# Typed array methods work with type safety
var filtered: Array[Enemy] = enemies.filter(func(e: Enemy) -> bool: return e.health > 0)
Casting with as and is
gdscript
# 'is' — type check (returns bool)
func _on_body_entered(body: Node2D) -> void:
    if body is Player:
        var player: Player = body as Player
        player.take_damage(10)

# 'as' — cast (returns null on failure, no error)
var sprite := get_node("Sprite") as Sprite2D
if sprite:
    sprite.modulate = Color.RED

# Prefer 'is' check + cast over bare 'as' to avoid null surprises
Enabling Strict Typing Warnings

In Project > Project Settings > Debug > GDScript:

WarningEffect
UNTYPED_DECLARATIONWarns on any untyped variable/parameter
INFERRED_DECLARATIONWarns on := (prefers explicit types)
UNSAFE_CASTWarns on unsafe as casts
UNSAFE_CALL_ARGUMENTWarns when passing wrong type to a function

Set warnings to Error for strict enforcement in team projects.

Typed Return Inheritance in Overrides

⚠️ Changed in Godot 4.7: Methods that override a method with a typed return now inherit the return type, so an override without an explicit return statement becomes an error. Add return null (or a typed return value) at the end of the override. See the 4.7 migration guide.

gdscript
class Enemy:
    var weapon: Node
    func get_weapon() -> Node:
        return weapon

class UnarmedEnemy extends Enemy:
    func get_weapon():  # 4.7+: inherits -> Node from Enemy
        return null     # explicit return now required — omitting it is an error

2. Await & Coroutines

Awaiting Signals

await pauses the function until a signal fires, then resumes. The function becomes a coroutine.

gdscript
func death_sequence() -> void:
    $AnimationPlayer.play("death")
    await $AnimationPlayer.animation_finished  # pauses here

    $Sprite2D.visible = false
    await get_tree().create_timer(1.0).timeout  # wait 1 second

    queue_free()
Awaiting with Return Values
gdscript
# Signal that passes data
signal dialogue_choice_made(choice: int)

func show_dialogue(options: Array[String]) -> int:
    # ... display UI ...
    var choice: int = await dialogue_choice_made
    return choice

# Caller:
func _on_npc_interact() -> void:
    var result := await show_dialogue(["Yes", "No"])
    if result == 0:
        print("Player said yes")
Timer Patterns
gdscript
# One-shot delay
await get_tree().create_timer(0.5).timeout

# Repeating with await (simple but blocks the function)
for i in 5:
    do_something()
    await get_tree().create_timer(0.2).timeout

# Non-blocking timer — use SceneTreeTimer or Tween instead
get_tree().create_timer(2.0).timeout.connect(_on_delayed_action)
Coroutine Safety
gdscript
# DANGER: `target` may be freed while this coroutine waits
func unsafe_coroutine(target: Node2D) -> void:
    await get_tree().create_timer(5.0).timeout
    target.position = Vector2.ZERO  # error: previously freed instance

# SAFE: re-check other objects after every await
func safe_coroutine(target: Node2D) -> void:
    await get_tree().create_timer(5.0).timeout
    if not is_instance_valid(target):
        return
    target.position = Vector2.ZERO

A freed node's own coroutine never resumes, so is_instance_valid(self) after await guards nothing.


3. Lambda Functions

Lambdas are inline anonymous functions for callbacks, sorting, and filtering, called with .call(). The reference covers single- and multi-line syntax, inline signal connections including CONNECT_ONE_SHOT, Array methods (filter, map, reduce, any, all, sort_custom), and closures, where locals are captured by value.

See references/lambda-functions.md for the syntax, signal, Array method, and closure examples.


4. Match / Pattern Matching

GDScript's match is like switch but with pattern support.

Basic Match
gdscript
match state:
    State.IDLE:
        play_idle()
    State.RUNNING:
        play_run()
    State.JUMPING, State.FALLING:  # multiple patterns
        play_air()
    _:  # default (wildcard)
        push_warning("Unknown state: %s" % state)
Pattern Types
gdscript
# Literal patterns
match value:
    42:
        print("The answer")
    "hello":
        print("Greeting")
    true:
        print("Boolean true")

# Binding pattern — captures value into a variable
match command:
    ["move", var direction]:
        move(direction)
    ["attack", var target, var damage]:
        attack(target, damage)

# Array pattern
match input:
    [1, 2, 3]:
        print("Exact match")
    [1, ..]:
        print("Starts with 1")
    [var first, _, var last]:
        print("First: %s, Last: %s" % [first, last])

# Dictionary pattern
match event:
    {"type": "damage", "amount": var amt}:
        take_damage(amt)
    {"type": "heal", "amount": var amt}:
        heal(amt)

# Nested condition inside a branch
match enemy_type:
    "boss":
        if health < 50:
            enter_rage_mode()
        else:
            normal_attack()

5. Export Annotations

@export exposes a variable to the Inspector. Hint variants (@export_range, @export_enum, @export_file) constrain editor input. Use @export_group and @export_subgroup to organize. Node and Resource exports use NodePath / typed Resource references.

See references/export-annotations.md for the full export annotation catalog (basic exports, range/hint variants, groups, node and Resource exports).


6. Inner Classes & class_name

class_name

Register a script as a global class name — available everywhere without preload.

gdscript
# item_data.gd
class_name ItemData
extends Resource

@export var name: String
@export var icon: Texture2D
@export var value: int

# Now usable anywhere:
# var item: ItemData = ItemData.new()
# var items: Array[ItemData] = []
Inner Classes
gdscript
# Define a class inside another script
class HitResult:
    var damage: int
    var critical: bool
    var knockback: Vector2

    func _init(dmg: int, crit: bool, kb: Vector2 = Vector2.ZERO) -> void:
        damage = dmg
        critical = crit
        knockback = kb

# Usage
func calculate_hit() -> HitResult:
    var crit := randf() < 0.2
    var dmg := 10 * (2 if crit else 1)
    return HitResult.new(dmg, crit, Vector2.RIGHT * 50)

7. super() in Virtual Methods

When you override a virtual method that the engine calls (_ready, _process, _input, etc.) and your parent class also implements it, call super() to chain the parent's behavior. Forgetting to call super._ready() is the most common cause of "my base class init didn't run" bugs.

See references/super-in-virtual-methods.md for the full pattern (problem / fix), the C# base.X() equivalent, and a catalog of bugs from missing super calls.


8. Common Idioms

The recurring small patterns: ternary expressions (value if cond else other), printf-style string formatting ("%s %d" % [a, b]), null/empty checks (is_instance_valid vs != null, empty Array/String checks), Dictionary access (get(key, default)), Array operations (Array.has, Array.find, Array.has_all), setget via set and get accessors.

See references/common-idioms.md for full code examples of each idiom.


9. Annotations Reference

AnnotationPurpose
@exportExpose variable in Inspector
@export_rangeNumeric with slider
@export_enumDropdown from string list
@export_fileFile path picker
@export_dirDirectory picker
@export_multilineMulti-line text box
@export_groupGroup heading in Inspector
@export_subgroupSubgroup heading
@export_categoryCategory divider
@onreadyInitialize when node enters tree, just before _ready() body runs
@toolRun script in editor
@iconCustom icon for the script
@warning_ignoreSuppress specific warning on next line
@static_unloadAllow static variables to be freed

Show full SKILL.md (438 more words)Show less

10. Common Pitfalls

SymptomCauseFix
as cast silently returns nullType mismatch — as doesn't errorUse is check first, then cast
Await never resumesSignal never emitted, or this node was freed (coroutine dropped)Check the condition before awaiting; race slow signals against a timer
Lambda's change to a variable is lostLocals are captured by valueKeep shared state in a member, Array or Dictionary
UNTYPED_DECLARATION warnings floodWarning enabled but codebase isn't typedType incrementally; use @warning_ignore for legacy code
Typed array rejects valid itemsItem type doesn't match exactlyEnsure items match the declared type (no implicit upcasting)
@onready is nullAccessed before _ready() runsNever access @onready vars in _init() or variable declarations
Match doesn't enter any branchNo matching pattern and no _: wildcardAlways add _: default branch
class_name conflictTwo scripts with same class_nameUse unique names; check for duplicates in Project
Export group applies to wrong varsGroup scope continues until next groupAdd a new @export_group("") to end the group scope
Parent _ready() logic doesn't run in childMissing super() call in child's _ready()Add super() as first line; see Section 7
type_exists() flagged as deprecatedDeprecated in Godot 4.7Use ClassDB.class_exists() instead

⚠️ Changed in Godot 4.7: The global type_exists() function is deprecated — replace type_exists("Sprite2D") with ClassDB.class_exists("Sprite2D"). See GH-116899.


11. Variadic Functions (Godot 4.5+)

Godot 4.5 added trailing-argument arrays via ...args. The args are collected into an Array. Useful for printf-style helpers and flexible APIs without overloads.

See references/variadic-functions.md for the full syntax, common patterns, and notes on when to prefer overloads.


12. Abstract Classes and Methods (Godot 4.5+)

The @abstract annotation prevents direct instantiation of a class and forces subclasses to implement any @abstract-annotated method (similar to C#'s abstract keyword).

See references/abstract-classes.md for full base-class patterns and subclass implementation rules.


13. Implementation Checklist

  • All variables, parameters, and return types have explicit type hints
  • Typed arrays (Array[Type]) are used instead of untyped Array where possible
  • Other nodes used after an await are re-checked with is_instance_valid() (self needs no check)
  • Lambdas connected to signals are simple — complex logic goes in named methods
  • match statements include a _: default branch
  • @export variables use appropriate hints (@export_range, @export_enum, etc.)
  • @export_group organizes Inspector properties into logical sections
  • class_name is only used for scripts that need global visibility
  • is type check precedes as cast when the type isn't guaranteed
  • Properties with setters validate and clamp values
  • Overridden virtual methods call super() when extending non-built-in base classes
  • Variadic functions (...args) used when the number of trailing arguments is open-ended (Godot 4.5+)
  • Base classes that must not be instantiated use @abstract; required methods use @abstract func (Godot 4.5+)

© jame581, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (references) in skills/gdscript-patterns of jame581/GodotPrompter.

  • SKILL.md
  • references/abstract-classes.md
  • references/common-idioms.md
  • references/export-annotations.md
  • references/lambda-functions.md
  • references/super-in-virtual-methods.md
  • references/variadic-functions.md

Open the folder on GitHubat commit 1e7d79d

Compare with similar skills

Gdscript Patterns next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Gdscript Patterns compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Gdscript Patterns this skilljame581/GodotPrompter792—~3.5kAutomated safety check: PassMIT
Release Managerpoingstudios/godot-admob-plugin631—~357Automated safety check: PassMIT
Godot Admob App Openpoingstudios/godot-admob-plugin631—~1kAutomated safety check: PassMIT
Godot Admob Bannerpoingstudios/godot-admob-plugin631—~718Automated safety check: PassMIT
Godot Admob Get Startedpoingstudios/godot-admob-plugin631—~1kAutomated safety check: PassMIT
Godot Admob Interstitialpoingstudios/godot-admob-plugin631—~1.1kAutomated safety check: PassMIT

Similar skills

  • Release Manager

    poingstudios/godot-admob-plugin

    Manage and execute AdMob plugin releases. An agent skill from poingstudios/godot-admob-plugin.

    631 GitHub stars~357 tokensUpdated 6 days ago
    Game DevelopmentAuto-check passed
  • Godot Admob App Open

    poingstudios/godot-admob-plugin

    Provides instructions to implement, load, show, and destroy App Open ads (shown on application startup or app resume) in GDScript and C.

    631 GitHub stars~1k tokensUpdated 6 days ago
    Game DevelopmentAuto-check passed
  • Godot Admob Banner

    poingstudios/godot-admob-plugin

    Provides instructions to implement, load, and destroy banner ads (AdView) using custom or adaptive sizes in GDScript and C.

    631 GitHub stars~718 tokensUpdated 6 days ago
    Game DevelopmentAuto-check passed
  • Godot Admob Get Started

    poingstudios/godot-admob-plugin

    Provides instructions to initialize the Godot AdMob SDK and configure user consent (UMP Flow) in GDScript and C.

    631 GitHub stars~1k tokensUpdated 6 days ago
    Game DevelopmentAuto-check passed
  • Godot Admob Interstitial

    poingstudios/godot-admob-plugin

    Provides instructions to implement, load, show, and destroy interstitial ads (full-screen image/text ads) in GDScript and C.

    631 GitHub stars~1.1k tokensUpdated 6 days ago
    Game DevelopmentAuto-check passed
  • Godot Admob Native Overlay

    poingstudios/godot-admob-plugin

    Provides instructions to implement, load, show, and destroy Native Overlay ads (customized/native-looking Control node template overlays) in GDScript and C.

    631 GitHub stars~1k tokensUpdated 6 days ago
    Game DevelopmentAuto-check passed

More from jame581/GodotPrompter

All 58 skills in this repo
  • Godot 2D Essentials

    jame581/GodotPrompter

    Covers Godot 4.3+ 2D systems with GDScript and C# examples: canvas layers, draw order, TileMaps, parallax, lights and shadows, particles and custom drawing.

    792 GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Godot 3D Essentials

    jame581/GodotPrompter

    Covers Godot 4.3+ 3D systems such as materials, lighting, shadows, environment, global illumination, fog, LOD, occlusion culling and decals, with GDScript first and C# second.

    792 GitHub stars~3.7k tokensUpdated yesterday
    Auto-check passed
  • Godot Ability System

    jame581/GodotPrompter

    Builds a data-driven ability system in Godot 4 from Resources and a component node, with cooldowns, buffs, stat modifiers, gameplay tags and HUD binding.

    792 GitHub stars~3k tokensUpdated yesterday
    Auto-check passed
  • Godot Addon Development

    jame581/GodotPrompter

    Covers Godot 4.3+ editor plugins: plugin folders, @tool scripts, the EditorPlugin lifecycle, custom inspectors, dock panels and gizmos, in GDScript and C#.

    792 GitHub stars~3.3k tokensUpdated yesterday
    Auto-check passed
  • Godot AI Navigation

    jame581/GodotPrompter

    Covers pathfinding and enemy movement in Godot 4.3 and later: navigation regions, NavigationAgent nodes, steering, behavior trees and patrol routes.

    792 GitHub stars~3.5k tokensUpdated yesterday
    Auto-check passed
  • Godot Animation System

    jame581/GodotPrompter

    Covers animation in Godot 4.3 and later: AnimationPlayer basics, AnimationTree blend trees and state machines, sprite animation, skeleton IK and code-driven motion.

    792 GitHub stars~3.8k tokensUpdated yesterday
    Auto-check passed

Questions about Gdscript Patterns

What does Gdscript Patterns do?

A skill your agent uses when writing GDScript — static typing, await/coroutines, lambdas, match patterns, export annotations, inner classes, and common idioms. Gdscript Patterns is an agent skill from jame581/GodotPrompter.

When should I use Gdscript Patterns?

Gdscript Patterns fits situations like: writing GDScript — static typing; await/coroutines; export annotations.

How do I install Gdscript Patterns in Claude Code?

Run `npx skills add jame581/GodotPrompter --skill gdscript-patterns -a claude-code`. Or copy the skill folder (skills/gdscript-patterns in jame581/GodotPrompter) into .claude/skills/gdscript-patterns in your project. Claude Code loads it when a task matches its description.

How do I install Gdscript Patterns in Codex?

Run `npx skills add jame581/GodotPrompter --skill gdscript-patterns -a codex`. Or copy the skill folder (skills/gdscript-patterns in jame581/GodotPrompter) into .agents/skills/gdscript-patterns in your project. Codex loads it when a task matches its description.

Can I use Gdscript Patterns in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jame581/GodotPrompter --skill gdscript-patterns -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gdscript-patterns, .gemini/skills/gdscript-patterns, .github/skills/gdscript-patterns and .opencode/skills/gdscript-patterns in your project.

What does Gdscript Patterns need to run?

SKILL.md names no scripts, command-line tools or credentials: Gdscript Patterns is instructions for the agent only.

Does Gdscript Patterns access the network?

SKILL.md names 2 domains. As links in the text: docs.godotengine.org and github.com. This is read from the text; nothing was executed.

Is Gdscript Patterns safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Gdscript Patterns use?

Gdscript Patterns is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Gdscript Patterns use?

About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.4k tokens, read only when the agent opens those files.

What are the alternatives to Gdscript Patterns?

Skills that share tags, products or a category with Gdscript Patterns: Release Manager (poingstudios/godot-admob-plugin, 631 stars), Godot Admob App Open (poingstudios/godot-admob-plugin, 631 stars), Godot Admob Banner (poingstudios/godot-admob-plugin, 631 stars) and Godot Admob Get Started (poingstudios/godot-admob-plugin, 631 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Gdscript Patterns?

jame581 (a GitHub user) maintains it in jame581/GodotPrompter, which has 792 GitHub stars. The repository holds 58 skills in this directory. The repository was last updated on October 6, 2026.

Source: jame581/GodotPrompter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.