godot-agent / skills
AGENTS.md202 starsChanged 13 days agoMITView on GitHub
Keep docs and code separate. Skill instructions (SKILL.md) stay with the skill definition; executable scripts live at the repo root under .ai/, named after the skill. Default python: Non-default runtime (must state version + entry): When a skill has scripts, run them from the project root as the skill docs say. Do not use your own commands unless the skill says the script is for reference only. Canonical script path: .ai/<skill-name>/. Run tests the same way — same interpreter from…
- Installs packages
1 other project uses a version of this.
Adopted by
Most recently taken up by
- godot-fun/gaiword for word, first seen Nov 1, 2026
Other versions1 project uses a version of this.
Word for word · 1
- godot-fun/gai★ 202100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,542 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository37 other files it gives its agents.
- AGENTS.mdAGENTS.md
- ai-text-to-speechSkill
- audio-denoiseSkill
- audio-fadeSkill
- audio-loudness-normalizationSkill
- audio-sample-rate-standardizeSkill
- audio-splitSkill
- audio-to-oggSkill
- audio-to-textSkill
- audio-to-wavSkill
- audio-trimSkill
- audio-volume-adjustSkill
- file-naming-normalizationSkill
- git-commit-messageSkill
- image-inpaint-regionSkill
- image-region-remove-key-color-appSkill
- image-remove-backgroundSkill
- image-remove-white-backgroundSkill
- image-resizeSkill
- image-sprite-sheet-splitSkill
- image-to-pngSkill
- image-to-textSkill
- image-trimSkill
- storyboard-av-mixSkill
- storyboard-shot-to-htmlSkill
- storyboardSkill
- storyboard-ttsSkill
- video-4k-normalizationSkill
- video-compress-to-sizeSkill
- video-merge-gpuSkill
- video-mergeSkill
- video-publishSkill
- video-remove-audioSkill
- video-to-4kSkill
- video-to-60fpsSkill
- video-to-ogvSkill
- video-to-wavSkill
The file
Show its rules and text
We split this AGENTS.md into the rules it gives an agent
24 rules. About 0 are common, 8 are distinctive, and 16 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
16
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 5
Keep docs and code separate.
- Very specific: line 30
Put scripts directly under .ai/<skill-name>/ — do not add an extra scripts/ directory.
- Very specific: line 34
Do not put executable scripts next to SKILL.md.
- Very specific: line 36
Every skill script must start with a module docstring that includes Usage: full commands from the repo root, using the manifest interpreter.
- Very specific: line 37
If the skill uses the default python entry, say so in the docstring.
- Very specific: line 38
If the skill does not use default Python, the docstring must say that explicitly: which manifest entry, which version (e.g.
- Very specific: line 77
When a skill has scripts, run them from the project root as the skill docs say.
- Very specific: line 79
Run tests the same way — same interpreter from .dependency/manifest.json, from the repo root:
- Very specific: line 85
If a skill uses a non-default runtime, skip test_*.py.
- Very specific: line 89
Do not use host python / pytest to run skill tests.
- Distinctive: line 98
Run it. If something is missing, install it (see Dependencies below or skill setup steps), then run the same command again.
- Distinctive: line 99
If it fails, fix the setup or inputs and try again.
- Distinctive: line 101
After installing anything, say what you installed and which command you ran.
- Distinctive: line 105
When the user lists multiple skills in sequence, chain them: each step's output is the next step's input.
- Very specific: line 143
Never: use a language runtime from outside .dependency/.
- Very specific: line 159
If populated: false, install that runtime under .dependency/ first — do not fall back to any host install.
- Very specific: line 161
If a command fails, fix the .dependency/ install — never retry with a different host Python or venv.
- Distinctive: line 165
When a skill does not specify a Python version, assume Python 3.14 as the default runtime.
- Very specific: line 169
If a skill explicitly requires another version (e.g.
- Very specific: line 176
When a skill does not specify a Node.js version, assume Node.js v24.22.0 as the default runtime.
- Distinctive: line 185
When a skill depends on a portable upstream binary (e.g.
- Distinctive: line 235
When a skill depends on a Python package or a GitHub project with pip dependencies (e.g.
- Distinctive: line 259
Install dependencies: only inside that venv — never into system Python or the bare runtime:
- Very specific: line 280
Prefer the venv's python -m <module> when a console script is missing.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill Dependency Manager
Skill layout
Keep docs and code separate. Skill instructions (SKILL.md) stay with the skill definition; executable scripts live at the repo root under .ai/, named after the skill.
| What | Where |
Skill instructions (SKILL.md, references) | The skill's own folder (next to SKILL.md) |
| Skill scripts (Python / shell / etc.) | .ai/<skill-name>/ |
Script tests (test_<script>.py) | .ai/<skill-name>/ — default python skills only |
CLI manual (<skill-name>.md) | cli/ — copy-paste unit-test and manual CLI commands |
| Toolchains (Python, FFmpeg, venvs) | .dependency/ |
project-root/
├── cli/
│ ├── audio-to-wav.md # unit tests + manual CLI
│ └── ai-text-to-speech.md
├── .ai/
│ ├── audio-to-wav/
│ │ ├── convert.py
│ │ └── test_convert.py
│ └── ai-text-to-speech/
│ └── tts.py
└── .dependency/- The folder name under
.ai/must match the skill name. - Put scripts directly under
.ai/<skill-name>/— do not add an extrascripts/directory. - Default
pythonskills: include a test file named after the script (convert.py→test_convert.py). If a directory has several scripts, give each one a matchingtest_<script>.py. - Every skill with scripts gets
cli/<skill-name>.md— unit-test commands (when present) and manual CLI examples using the correct manifestbin. Write each command as one line (no\line breaks) so it pastes into the console as a single command. - Non-default runtime (a tool venv or
python-3.11, etc.): do not addtest_*.py. Put CLI commands incli/<skill-name>.mdonly. - Do not put executable scripts next to
SKILL.md. - SKILL.md commands must point at
.ai/<skill-name>/.... - Every skill script must start with a module docstring that includes Usage: full commands from the repo root, using the manifest interpreter. Write each command as one line (no
\line breaks). Never use hostpython. - If the skill uses the default
pythonentry, say so in the docstring. - If the skill does not use default Python, the docstring must say that explicitly: which manifest entry, which version (e.g. Python 3.11), and that default
pythonmust not be used.
Default python:
"""
Short description.
Run through default python from .dependency/manifest.json.
Never use host python/py.
Usage
-----
.dependency/python/python .ai/<skill-name>/<script>.py input [flags]
"""Non-default runtime (must state version + entry):
"""
Short description.
Not default python. Run through the <entry> manifest bin
(Python 3.11 venv at .dependency/<entry>/.venv/).
Never use default python or host python/py.
Usage
-----
.dependency/<entry>/.venv/Scripts/python.exe .ai/<skill-name>/<script>.py input [flags]
"""Python style (.ai/ skill scripts)
- One-line imports. Each
importorfrom … importmust stay on a single line — do not wrap imports in parentheses across multiple lines.
Run skill scripts
When a skill has scripts, run them from the project root as the skill docs say. Do not use your own commands unless the skill says the script is for reference only. Canonical script path: .ai/<skill-name>/.
Run tests the same way — same interpreter from .dependency/manifest.json, from the repo root:
.dependency/python/python.exe .ai/audio-to-wav/test_convert.pyIf a skill uses a non-default runtime, skip test_*.py. Use the CLI in cli/<skill-name>.md (that runtime's bin).
Manual CLI examples for any skill live in cli/<skill-name>.md, not under .ai/.
Do not use host python / pytest to run skill tests.
No bypass
Even when a skill script wraps FFmpeg or another CLI, call it through the skill script — do not hand-write equivalent commands.
Workflow
- Find the script and command in the skill docs.
- Run it. If something is missing, install it (see Dependencies below or skill setup steps), then run the same command again.
- If it fails, fix the setup or inputs and try again. Ask before using a different approach.
After installing anything, say what you installed and which command you ran.
Skill pipelines
When the user lists multiple skills in sequence, chain them: each step's output is the next step's input. Never point a later step back at the original source.
Each skill writes beside its input into <input-dir>/<skill-name>/, so chained runs nest:
source/file.ext
→ source/skill-a/out.ext
→ source/skill-a/skill-b/out.ext
→ source/skill-a/skill-b/skill-c/out.ext ← final- Order — user's list, left to right (or top to bottom).
- Input — step 1 uses the source file; later steps pass the prior output using that skill's input flag from
SKILL.md(--image,--audio,--video, etc.). - One file per run — one input per invocation; repeat the full pipeline for each file when batching a folder.
- No bypass — run every step through its bundled script; do not merge steps into one hand-written command.
- Sources untouched — report the deepest nested path as the final result.
The pipeline only wires which file each step receives.
Dependencies
External CLIs, language runtimes, and skill-only toolchains install into .dependency/. Do not put project/business packages here (Godot addons, game server deps, app requirements.txt, etc.).
| Kind | Name examples | Install location |
| Language runtime | python, python-3.11, node-20, rust-1.75, go-1.22 | .dependency/<name>/ |
| CLI tool (standalone binary) | ffmpeg, llama-cpp-cpu, llama-cpp-gpu, git, jq, curl, imagemagick | .dependency/<name>/ or .dependency/<name>-tool/ |
| Python third-party tool | rembg, cloned GitHub projects | .dependency/<name>/.venv/ |
Root: .dependency/
Manifest: .dependency/manifest.json
Each manifest name maps to a dedicated directory under .dependency/. After populating, set populated: true and correct bin paths in the manifest.
populated: false in .dependency/manifest.json is not a reason to skip a skill script. Install the missing tool here first, then run the same skill command again.
Language runtimes — .dependency/ only
Never use a language runtime from outside .dependency/.
This applies to every runtime in the table above (python, python-3.11, node-20, rust-1.75, go-1.22, etc.).
Forbidden — do not invoke, discover, or fall back to any of these:
- Commands on the host PATH or version managers — e.g.
python,py,python3,node,npm,cargo,go,pyenv,nvm,rustup - Any absolute path to an interpreter outside
.dependency/— e.g.C:\Python314\python.exe,/usr/bin/python3,~/miniconda3/python - Host virtual environments anywhere on disk —
.venv/,venv/,env/under the user profile, other repos, Desktop, Downloads,AppData,Program Files,~/.local, etc. - Conda / Miniconda / Anaconda base or named envs
- IDE- or editor-bundled runtimes (VS Code, PyCharm, etc.)
- Other projects' Python/Node installs, even if they already have the package you need
The only allowed interpreter paths are bin values in .dependency/manifest.json (which must live under .dependency/). For Python third-party tools, that includes venvs at .dependency/<tool-name>/.venv/ only.
- Resolve the runtime from
manifest.json→<entry>.bin. - If
populated: false, install that runtime under.dependency/first — do not fall back to any host install. - Skill docs may show shorthand (
python,py,node); always substitute the manifestbinpath when running commands. - If a command fails, fix the
.dependency/install — never retry with a different host Python or venv.
Python default version
When a skill does not specify a Python version, assume Python 3.14 as the default runtime.
- Install to
.dependency/python/and register as thepythonentry inmanifest.json. - Skills that only reference
python(no version suffix) rely on this default. - If a skill explicitly requires another version (e.g.
python-3.11), use a separate manifest entry and install directory instead. - Install runtimes by extracting portable archives into
.dependency/<name>/; never run interactive/system installers or modify the host environment.
The python runtime is for stdlib-only skill scripts (e.g. audio wrappers, path/batch wrappers). Do not pip install into .dependency/python/ itself.
Node.js default version
When a skill does not specify a Node.js version, assume Node.js v24.22.0 as the default runtime.
- Install to
.dependency/node/and register as thenodeentry inmanifest.json. - Skills that only reference
node(no version suffix) rely on this default. - If a skill explicitly requires another version (e.g.
node-22), use a separate manifest entry and install directory instead. - Install runtimes by extracting portable archives into
.dependency/<name>/; never run interactive/system installers or modify the host environment.
Standalone CLI tools
When a skill depends on a portable upstream binary (e.g. FFmpeg), follow this order:
When one CLI has separate CPU and GPU builds, register each build as its own dependency. Use matching directory and manifest names such as .dependency/llama-cpp-cpu/ → llama-cpp-cpu and .dependency/llama-cpp-gpu/ → llama-cpp-gpu. Do not place both builds under a model-specific directory or combine them into custom fields such as gpu_bin. Keep reusable runtimes separate from model weights; for example, store MiniCPM weights under .dependency/minicpm-v-4.6/model/ while both llama.cpp builds remain independently reusable.
"llama-cpp-cpu": {
"populated": true,
"bin": ".dependency/llama-cpp-cpu/llama-mtmd-cli.exe"
},
"llama-cpp-gpu": {
"populated": true,
"bin": ".dependency/llama-cpp-gpu/llama-mtmd-cli.exe"
},
"minicpm-v-4.6": {
"populated": true,
"model": ".dependency/minicpm-v-4.6/model"
}- Create the install directory under
.dependency/— use the manifest key name (e.g..dependency/ffmpeg/). Download the release asset from the upstream project (GitHub Releases, vendor site). Extract so
bininmanifest.jsonpoints at the executable.# FFmpeg (Windows) # Download ffmpeg-release-essentials.zip → extract to .dependency/ffmpeg/ # Result: .dependency/ffmpeg/bin/ffmpeg.exeOn Unix, use the platform binary without
.exe(e.g..dependency/ffmpeg/bin/ffmpeg).Register in
manifest.jsonwithbinpointing at the executable:"ffmpeg": { "populated": true, "bin": ".dependency/ffmpeg/bin/ffmpeg.exe" }Run through the skill script when one exists — do not hand-write equivalent CLI unless the skill says the script is reference-only:
.dependency/python/python.exe .ai/audio-to-wav/convert.py --audio audio/input.flacSome skills wrap the binary with a stdlib Python script (
pythonmanifest entry); others invoke the CLI binary directly via its own manifest entry (ffmpeg).
Python third-party tools (.venv)
When a skill depends on a Python package or a GitHub project with pip dependencies (e.g. rembg), follow this order:
Clone the upstream project into
.dependency/<tool-name>/:git clone https://github.com/example/rembg .dependency/rembgThe clone root is
.dependency/<tool-name>/;.venvis created as a sibling inside that directory.- Determine the required Python version from the cloned project — check
pyproject.toml,.python-version,setup.py,setup.cfg,requirements.txt, orREADME. If the project does not pin a version, fall back to the skill docs; if still unspecified, use the defaultpythonentry (3.14). - Ensure that Python runtime exists — look up the matching entry in
manifest.json(e.g.pythonorpython-3.11). If missing orpopulated: false, install it under.dependency/first (see Python default version). Use only that entry'sbin(see Language runtimes —.dependency/only). Create
.venvat.dependency/<tool-name>/.venv/with that runtime:# default — Python 3.14 .dependency/python/python -m venv .dependency/rembg/.venv # project requires Python 3.11 .dependency/python-3.11/python -m venv .dependency/rembg/.venvInstall dependencies only inside that venv — never into system Python or the bare runtime:
# from cloned repo .dependency/rembg/.venv/Scripts/python.exe -m pip install . .dependency/rembg/.venv/Scripts/python.exe -m pip install -r requirements.txt # extra packages named by the skill .dependency/rembg/.venv/Scripts/python.exe -m pip install "rembg[cpu]"On Unix, use
.dependency/rembg/.venv/bin/pythoninstead ofScripts/python.exe.- Register in
manifest.jsonwithbinpointing at the venv's Python interpreter. On Windows useScripts/python.exe, on Unix usebin/python. Run skill scripts and tool CLIs through the venv interpreter:
.dependency/rembg/.venv/Scripts/python.exe .ai/image-remove-background/remove_background.py ...Prefer the venv's
python -m <module>when a console script is missing.
manifest.json
Top-level keys match install directory names. Each entry:
| Field | Type | Description |
populated | boolean | Whether the install directory contains a valid upstream toolchain |
bin | string | Executable path, relative to repo root |
Example:
{
"python": {
"populated": false,
"bin": ".dependency/python/python"
},
"ffmpeg": {
"populated": true,
"bin": ".dependency/ffmpeg/bin/ffmpeg"
},
"rembg": {
"populated": true,
"bin": ".dependency/rembg/.venv/Scripts/python.exe"
}
}Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

