Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add dylanroscover/Embody --skill operator-gotchasgit clone --depth 1 https://github.com/dylanroscover/EmbodyWrote 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/dylanroscover/embody/operator-gotchas)<a href="https://agentmods.dev/skills/dylanroscover/embody/operator-gotchas"><img src="https://agentmods.dev/badge/skills/dylanroscover/embody/operator-gotchas/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/dylanroscover/embody/operator-gotchas"><img src="https://agentmods.dev/badge/skills/dylanroscover/embody/operator-gotchas.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.00074 | $0.03403 |
| Opus 5.5 | $0.00030 | $0.01361 |
| Sonnet 5.5 | $0.00015 | $0.00681 |
| Haiku 4.5 | $0.00007 | $0.00340 |
Grade A, and why
operator-gotchas 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 14d 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 — 82 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Operator Gotchas
Per-operator traps, verified live on TD 2025.33230 (2026-09-25) unless marked as a field note. Before touching an unfamiliar operator, describe_op_type(op_type, pattern=...) returns its real parameter names, creation defaults and menu values, and set_parameter rejects a bad menu value and names the valid ones. A guessed name costs a round trip; a wrong guess that happens to exist costs a show.
Universal
- Reference nulls, not live ops. An expression or OP parameter that names a Null survives inserting or deleting the ops before it; one that names the working op breaks the moment a filter goes in front. End every chain in a Null and point everything at that.
- OP-reference parameters hold a path string and do not follow a rename of their target (a Select TOP pointed at a renamed Constant TOP read
None). After any rename, sweeppar.val,par.exprandpar.bindExprfor the old name (td-python.md). - Menu values are the lowercase token, never the label:
orthonotorthographic,degnotdegrees,aa8notaa8high,chanpercolnotChannel per Column. Par.defaultcan disagree with what a fresh operator actually holds (a Text DAT'slanguagedeclaresinputbut a new one readstext);describe_op_typereports the creation value and flags the divergence.- Time-dependent operators cook only when something demands their output: a viewer, a Render or Out TOP, a Null with its viewer on, a CHOP Execute DAT. A silent chain is usually undemanded, not broken (
td-python.md, Cook Model).
TOPs
compositeTOP:operanddefaults tomultiply. Withover, input 0 is the FOREGROUND (on top) and later inputs sit underneath, the reverse of a layer stack.constantTOPis white with alpha 1 by default; setcolorr/g/b=0andalpha=0for an empty seed. It exposestype=texture3dbut has nocustomdepth, so it cannot seed a real volume; use a smallglslTOP(/glsl-shaders).feedbackTOP:topnames the Null that closes the loop,resetpulseresets. Keepformatidentical through the loop (rgba16floatorrgba32floatfor anything outside 0-1) and pinoutputresolution=custominside it. Field note (TDMCPSkills): on reset it takes the input's resolution, afterwards the target's, so a mismatch changes resolution after the first frame.selectTOP:topis a path string (see Universal: a rename breaks it).depthTOP:pixelformat=rgba16float+depthspace=rerangedgives usable 0-1 depth.moviefileinTOP: paths resolve relative to the.toe; afilechange orreloadpulselands only across a real frame advance (/td-api-reference, Cook Model Gotchas).playmodeislocked,specify,sequentialortimecodeop;cuepulse+cuepointjump.renderTOP:cameradefaults tocam1,geometryandlightsto*;antialiasisaa1..aa32;bgcolora0 keeps the background transparent for compositing; set a floatformatbefore bloom or tone-mapping or every value clips at 1.0 (/visual-aesthetics).rgba8fixed, the default output format everywhere, clamps to 0-1. Data textures, feedback, random values and HDR needrgba16floatorrgba32float.choptoTOP:dataformatpacks channels (r, one channel per row by default;rgbapacks four) and needs a floatformatfor data bakes.glslTOPhas 3 input connectors; useglslmultiTOPfor more (/glsl-shaders).
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.
- 14d ago Changed d4e38aca1140
- 19d ago First seen · 82 lines · 74 tokens per session scan A e34ae0624af0
operator-gotchas is a skill published in the GitHub repository dylanroscover/Embody (199 stars, last pushed yesterday), licensed MIT. It adds 74 tokens to every session and 3,403 once invoked, about $0.0003 per session on Opus 5.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-27.
Other skills, from other repositories
python-api
This skill should be used when writing, editing, or debugging Python code that runs inside TouchDesigner — scripts, expressions, DAT callbacks, Extensions, or one-off snippets passed to executepythonscript — or whenever there is uncertainty about a td class's methods, members, or module-level API. Trigger phrases…
agentcore-investigation
Investigate Bedrock AgentCore runtime sessions via CloudWatch Logs Insights — resolve session/trace IDs, query OTEL spans, filter noise, build timelines. Use when debugging AgentCore agent sessions, tracing tool calls, or analyzing latency.
idapython
IDA Pro Python scripting for reverse engineering. Use when writing IDAPython scripts, analyzing binaries, working with IDA's API for disassembly, decompilation (Hex-Rays), type systems, cross-references, functions, segments, or any IDA database manipulation. Covers ida modules (50+), idautils iterators, and common…
perf
This skill should be used when the user runs /touchdesigner:perf, or asks to measure where frame time is going in a TouchDesigner project — a cook-time profiling pass across the network producing a ranked list of the slowest operators. Trigger phrases include "measure cook times", "profile my TD project", "which…
debug
This skill should be used when the user runs /touchdesigner:debug or asks to debug, investigate, or find TouchDesigner node errors — trigger phrases include "debug my TouchDesigner project", "why is this node broken", "find errors in TD", "investigate node errors", "what's wrong with /project1/geo1", or "fix this…
setup
This skill should be used when the user runs /touchdesigner:setup or asks to verify, check, fix, or set up the TouchDesigner connection — trigger phrases include "check my TD connection", "is TouchDesigner connected", "set up touchdesigner-mcp", "TD isn't responding", "fix the TouchDesigner connection", or "verify…