Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/perniemann/pnCorenpx agentmods add skills/perniemann/pncore/pn-godot-devWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/perniemann/pncore/pn-godot-dev)<a href="https://agentmods.dev/skills/perniemann/pncore/pn-godot-dev"><img src="https://agentmods.dev/badge/skills/perniemann/pncore/pn-godot-dev/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/perniemann/pncore/pn-godot-dev"><img src="https://agentmods.dev/badge/skills/perniemann/pncore/pn-godot-dev.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00086 | $0.04273 |
| Opus 5 | $0.00043 | $0.02136 |
| Sonnet 5 | $0.00017 | $0.00855 |
| Haiku 4.5 | $0.00009 | $0.00427 |
Grade A, and why
pn-godot-dev scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 224 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Godot Engine development skill
When to use
- Writing or refactoring GDScript or C# in Godot 4.x
- Building GDExtension (C++) bindings for performance-critical systems
- Implementing multiplayer (ENet, WebRTC, high-level RPCs)
- Writing VisualShaders or spatial/canvas shader code
- Configuring export presets and platform templates
- Setting up autoloads/singletons, InputMap, and project settings
- Working with Resource serialization (
.tres,.res, custom Resources) - Animating with AnimationPlayer, AnimationTree, and 2D AnimatedSprite2D
- Importing 3D assets from Blender (GLTF/GLB pipeline)
- Configuring physics layers, CharacterBody3D, RigidBody3D
- Procedural generation with TileMap, mesh generation, or terrain systems
- Headless builds, CI/CD, and command-line export
GDScript patterns
- Signals: Declare with
signal health_changed(new_value: int). Connect in editor (@export+ ConnectNode) or viaconnect()/signal.connect(callable). Use signals for decoupled communication; avoid direct node-to-node calls across sibling branches. - Nodes and
@onready: Use@onready var sprite: Sprite2D = $Sprite2Dfor node references; avoidget_node()at_ready()by hand. Avoid deep nesting; extract logical sub-trees into.tscnscenes. - Typing: Use full type hints throughout —
var health: int,func take_damage(amount: int) -> void. Enables Godot's static analysis and editor autocomplete. Useascasts with null checks where type is uncertain. - Groups:
add_to_group("enemies")for broad queries. Useget_tree().get_nodes_in_group()when needed; prefer signals for targeted events. - Autoloads (singletons): Register scripts or scenes as autoloads in Project Settings → Autoloads. Access via their registered name anywhere in the project (e.g.
GameManager.start_level()). Use for global state, event buses, or service locators. Do not put per-scene state in autoloads. - Resources as data: Extend
Resourcefor typed data objects (item definitions, ability configs, AI blackboards). Save as.tres(text) or.res(binary). Load withload()/preload(). Use@exporton Resource-typed properties for Inspector assignment. - Enum and const: Declare
enum State { IDLE, WALK, ATTACK }in the class or as a standalone file for shared use. Prefer typed enums over raw integers. - Callable and lambda: Use
Callable(self, "method_name")orfunc() -> void: ...for deferred calls,call_deferred, andtween.tween_callback.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 224 lines · 86 tokens per session scan A f559fe8351d2
pn-godot-dev is a skill published in the GitHub repository perniemann/pnCore (0 stars, last pushed 3d ago), licensed MIT. It adds 86 tokens to every session and 4,273 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
typescript
TypeScript coding conventions, best practices, and patterns for writing clean, maintainable code.
ax-cpp-ai
Use when writing C++ code with axllm for named deployment profiles, generic provider clients, model selection, OpenAI-compatible calls, Responses, Gemini, Anthropic, routers, and balancers.
ax-cpp-agent
Use when writing C++ code with axllm for agents, child delegation, tools, MCP, citations, persistent playbook learning, stage instructions, runtime state, final typed responses, and direct-respond executor skipping.
ax-cpp-flow
Use when writing C++ code with axllm for flows, nodes, program graphs, nested programs, dynamic options, caching, and optimizer components.
ax-cpp-gen
Use when writing C++ code with axllm for AxGen programs, forward calls, indexed multi-sampling, result pickers, streaming, tools, assertions, traces, usage, and output parsing.
ax-cpp-agent-memory-skills
Use when writing C++ code with axllm for agent memory, recall callbacks, dynamic skill discovery, loaded-skill state, and used-skill tracking.