instrument

A code-editing tool that adds a stable identifier to existing spans, which are records of work performed by an application's LLM calls.

In plain words
What is it for?
It finds LLM call sites and writes the identifier into the source code as a span attribute. This lets the evaluation system group traces and create graders for each call site.
Why use it?
Without an identifier, telemetry can show a call in a trace viewer but cannot reliably connect it to the graders and evaluations for that specific call site.

Skill for Claude CodeCodex

Part of the evals plugin — 4 skills shipped together

Install

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.

agentmods
npx agentmods add skills/tessaryai/plugins/instrument
Any agent
npx skills add tessaryai/plugins --skill instrument
Clone the repo
git clone --depth 1 https://github.com/tessaryai/plugins

Made for: Claude Code, Codex.

Or install evals, the plugin that ships this one along with the rest of its 4 skills.

Per session 96 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,928 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
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 $0.00096 $0.02928
Opus 5 $0.00048 $0.01464
Sonnet 5 $0.00019 $0.00586
Haiku 4.5 $0.00010 $0.00293

Measured 3d ago against content hash f46af3cb5baa, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

instrument scanned grade A with 1 finding 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 3d 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.

Runs shell commandslowCapability

Expected in a hook, worth knowing in a rule or an instructions file.

(`subprocess.run`/`Popen`, `child_process.spawn`/`execa`, `sh -c`) whose argv names `claude`,
plugins/evals/skills/instrument/SKILL.md · 242 lines

How it starts

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

instrument — bind this repo's LLM calls to call sites

The eval machinery is call-site-keyed: graders bind to call sites, synthesis grounds per call site, the observer reasons per call site. So an ingested span must answer which call site am I?

The platform answers that from exactly one thing — the explicit tessary.call_site.id span attribute. There is no filepath, span-name, or prompt-shape inference. An untagged span ingests fully and is visible in the trace viewer, but it is invisible to grader generation: it resolves to null and every call-site-scoped feature skips it. Explicit-or-nothing, deliberately — guessing mis-attributes production traffic against an authoritative source.

This skill closes that gap: discover the repo's LLM call sites, give each a stable id, and write that id into the code as a span attribute. Afterwards the tagged call sites materialize themselves in the project the first time a tagged span arrives — no upload, no .tessary/ bundle, no pipeline import.

What this skill changes

It edits source files. That is the point, and it is the only skill here that does. Every edit is shown as a diff and confirmed before it is written. It never touches prompt text, model parameters, or control flow — it adds one attribute to a span that already exists, or wraps a call in a span when none does.

Prerequisites

  • The repo is linked (/evals:connect). Tagging without a project to send spans to is busywork.
  • The repo emits OpenTelemetry, or can. /evals:connect step 2 wires the OTLP export.

OTLP is the only supported ingestion path, and this skill installs no SDK. The tag is a plain OpenTelemetry span attribute; it needs nothing beyond the tracer the repo already has. Never propose adding a client library to make tagging work.

Resolve the plugin path once

PLUGIN="${CLAUDE_PLUGIN_ROOT:-$(find ~/.claude -name SKILL.md -path '*/evals/skills/instrument/*' 2>/dev/null \
  | xargs -I{} dirname {} | xargs -I{} dirname {} | xargs -I{} dirname {} \
  | sort -V | tail -1)}"
echo "PLUGIN=$PLUGIN"

Read the full file on GitHub · 242 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. 3d ago First seen · 242 lines · 96 tokens per session scan A f46af3cb5baa

Subscribe to this mod's changes

instrument is a skill published in the GitHub repository tessaryai/plugins (3 stars, last pushed 16d ago), licensed MIT. It adds 96 tokens to every session and 2,928 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

ghost-decode

Use when a video hides text in moving dots or noise — "ghost font" clips, motion-defined text, random-dot kinematograms, TV-static videos with a secret message, text readable only while playing but invisible in any paused frame, or the user asks what a ghost-font video says.

haroontrailblazer/ghost-font-decoder · 64 tokens

review

5-pass structured code review — correctness, security, performance, readability, consistency.

SethGammon/Citadel · 17 tokens

scaffold

Project-aware file generation. Reads existing codebase conventions (naming, structure, imports, exports, test patterns) then generates new files that match exactly. Wires generated files into the project's registration points.

SethGammon/Citadel · 44 tokens

design

Generates and maintains a design manifest for visual consistency. In existing projects, reads current styles and documents the design language. In new projects, asks a few questions and generates a starter manifest. The post-edit hook reads the manifest and flags deviations.

SethGammon/Citadel · 51 tokens

marshal

Meta-orchestrator that takes any direction — broad, specific, or vague — and autonomously chains skills and context into actionable work. Gathers context from codebase, docs, and memory. Only asks the user when it genuinely cannot proceed. Single-session orchestrator.

SethGammon/Citadel · 56 tokens

organize

Repository structure only: directory layout, file placement, naming conventions, and where-does-this-belong decisions. Detects the project's convention, audits files against it, and executes move plans with import-path updates. Never changes code inside files beyond the import updates a move forces; in-file…

SethGammon/Citadel · 66 tokens