Authoring GodotPrompter skills and agents
File format templates for this repo. See the root CLAUDE.md for the conventions
and size budget that govern the content itself.
SKILL.md format
Every skill must start with YAML frontmatter:
---
name: skill-name
description: Use when [trigger] — [brief scope]
---
Followed by:
- Title and intro
- Related skills line:
> **Related skills:** **skill-a** for X, **skill-b** for Y.
- Numbered sections with patterns and examples
- GDScript first, then C# equivalent (use
gdscript and csharp language tags)
- Implementation checklist at the end
C# parity
The validator also checks C# parity inside references/*.md (csharp-parity-*-reference), so Pattern X moves stay enforced. Files that section by language (## C#, ## Dash (C#), ### … — C#) are checked file-level instead of per-section; a heading that merely mentions C# in prose is not a partition.
When a section genuinely cannot have a C# counterpart, mark that section — never the whole skill:
<!-- csharp-parity: n/a — C# is statically typed; there is no untyped alternative to contrast -->
It works in both SKILL.md and references/*.md. The reason is mandatory; omitting it is an error (checked on every marker, not only on sections missing C#), because an exemption that cannot say why is indistinguishable from an example nobody wrote. A reason may contain < and >, and a marker inside a fenced block is ignored, so a file can document the marker without exempting itself.
Do not reach for the two blunter tools instead: adding the skill to GDSCRIPT_ONLY_BY_DESIGN exempts every section in it, and renaming a heading to "… (GDScript)" trips the language-partition check and silently downgrades the entire file to a file-level check. Both hide real gaps in neighbouring sections.
A fenced ```gdscript block containing only comments is not a code example — it is prose in a fence, and it will be flagged as an unpaired GDScript block. Write it as prose or a bullet list.
Agent format
Agent definitions in agents/<name>.md use YAML frontmatter:
---
name: agent-name
description: |
When to use, with <example> blocks.
model: inherit
---
Before you finish
Run node scripts/validate-skills.mjs — it enforces frontmatter, cross-references,
and the 16 KB size budget.