Embody: Skill for Claude Code

.claude/skills/manage-annotations/SKILL.md

manage-annotations is a skill for Claude Code from dylanroscover/Embody. It costs 28 tokens per session (1,075 once invoked), scanned A, original, MIT.

Instructions for managing annotations in TouchDesigner networks. An annotation is a labeled note or box placed around operators, which are the building blocks of a TouchDesigner project.

In plain words
What is it for?
Use it to create title bars, comments, and boxes around groups of TouchDesigner operators.
Why use it?
It explains the required coordinates, sizes, modes, and API details so annotations are placed correctly.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

This is dylanroscover/Embody's own configuration. It tells Claude Code how to work on Embody itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything Embody configures →

Reuse

Borrowing it

Nothing to install: this file belongs to dylanroscover/Embody. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/dylanroscover/Embody/main/.claude/skills/manage-annotations/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/dylanroscover/Embody

Made for: Claude Code.

Wrote 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.

agentmods badge for manage-annotations

README.md
[![agentmods](https://agentmods.dev/badge/skills/dylanroscover/embody/manage-annotations.svg)](https://agentmods.dev/skills/dylanroscover/embody/manage-annotations)
Your own site
<a href="https://agentmods.dev/skills/dylanroscover/embody/manage-annotations"><img src="https://agentmods.dev/badge/skills/dylanroscover/embody/manage-annotations.svg" alt="Measured on agentmods" height="20"></a>
Per session 28 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,075 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00028 $0.01075
Opus 5 $0.00014 $0.00537
Sonnet 5 $0.00006 $0.00215
Haiku 4.5 $0.00003 $0.00108

Measured 7d ago against content hash 8406631df645, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

manage-annotations 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 7d 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.

.claude/skills/manage-annotations/SKILL.md · 88 lines

How it starts

The opening of the file, as written. The whole thing — 88 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Manage Annotations Workflow

Creating Annotations

create_annotation(
    parent_path='/path/to/network',
    mode='annotate',     # 'annotate' (title bar), 'comment', or 'networkbox'
    title='My Group',
    text='Description of this group',
    x=..., y=..., width=..., height=...,
    color=[r, g, b],     # Optional, floats 0-1
    opacity=0.5           # Optional
)

Always favor annotations over OP comments for documenting operators or groups.

Enclosing Operators

To create an annotation that encloses a group of operators:

  1. Get positions: get_network_layout on the parent COMP (includes all operator positions and bounding box)
  2. Calculate bounding box: Find min_x, max_x, min_y, max_y (max includes operator width/height: max_x = max(op_x + op_w), max_y = max(op_y + op_h))
  3. Add padding: 70 units on left/right/bottom, 170 units on top (title bar + body text)
  4. Set coordinates:
    • nodeX = min_x - 70
    • nodeY = min_y - 70 (BELOW operators, not above!)
    • nodeWidth = max_x - min_x + 140
    • nodeHeight = max_y - min_y + 240 (70 bottom + 170 top)

Coordinate Model

  • nodeX/nodeY = bottom-left corner, width/height extend rightward and upward
  • Title bar renders at the top of the rectangle
  • Common mistake: Setting nodeY above the operators. nodeY must be BELOW (less than) the lowest operator's Y.

Querying

  • get_annotations - list all annotations in a COMP with properties and enclosed operators
  • get_enclosed_ops - get operators enclosed by an annotation, or annotations enclosing an operator
  • set_annotation - modify text, title, color, opacity, position, or size

Deleting Annotations

Delete via delete_op, never via raw .destroy() in execute_python. delete_op resolves utility annotations, purges any tracking, and arms an auto-save checkpoint that re-exports the parent TDXN COMP's .tdxn without the annotation -- the deletion is durable. A raw .destroy() leaves the stale annotations: entry in the parent's .tdxn on disk, and the next reimport of that COMP (import_network, manager Reload, or cold open) resurrects the annotation with its pre-delete text.

Read the full file on GitHub · 88 lines

Changes

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.

  1. 7d ago First seen · 88 lines · 28 tokens per session scan A 8406631df645

Subscribe to this mod's changes

manage-annotations is a skill published in the GitHub repository dylanroscover/Embody (169 stars, last pushed today), licensed MIT. It adds 28 tokens to every session and 1,075 once invoked, about $0.0001 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-08-30.

Related

Other skills, from other repositories

open-source

Documentation reference for writing Python code using the browser-use open-source library. Use this skill whenever the user needs help with Agent, Browser, or Tools configuration, is writing code that imports from browseruse, asks about @sandbox deployment, supported LLM models, Actor API, custom tools, lifecycle…

browser-use/browser-use · 137 tokens

notebooklm

Install, authenticate, troubleshoot, and operate Gemini Notebook through the notebooklm-py CLI or typed async Python API. Use for notebook and source management, grounded chat and research, and artifact generation or download when the user mentions Gemini Notebook, notebooklm-py, the notebooklm CLI, or its Python API.…

teng-lin/notebooklm-py · 79 tokens

polyrepo-boundaries

Decide which xberg-io repository owns a cross-repository fix or API, and coordinate compatible changes across Xberg, Alef, enterprise, crawler, LLM, and OCR repositories. Load when work spans sibling repos; do not use for a self-contained Xberg edit.

xberg-io/xberg · 62 tokens

dstack-prototyping

Use with the dstack skill for model-serving work when the image, serving command, resources, backend/fleet choice, or service behavior is not proven. Guides task-first prototyping on real hardware, choosing fleets/backends that can reuse idle instances and caches, checking vLLM/SGLang sources, and verifying the final…

dstackai/dstack · 80 tokens

mongodb-mcp-v3-migration

Migrates external consumer code from the mongodb-mcp-server v1/v2 single-package API to the v3 scoped-package structure. In v3, mongodb-mcp-server is a binary-only package (npx / MCPB); library embedding uses @mongodb-js/mcp-cli, @mongodb-js/mcp-core, @mongodb-js/mcp-http-runners, @mongodb-js/mcp-tools-, and the other…

mongodb-js/mongodb-mcp-server · 153 tokens

django-migrations

Django migration patterns and safety workflow for PostHog. Use when creating, adjusting, or reviewing Django/Postgres migrations, including non-blocking index/constraint changes, multi-phase schema changes, data backfills, migration conflict rebasing, and product model moves that require SeparateDatabaseAndState. Also…

PostHog/posthog · 99 tokens