calibrate

calibrate is a skill for Claude Code from odere-pro/claude-calibration. It costs 246 tokens per session (6,799 once invoked), scanned B, original, MIT.

A read-only process for reviewing and improving a Claude Code setup. It examines project instructions, rules, settings, skills, subagents, hooks, connectors, and plugins against the supplied documentation.

In plain words
What is it for?
Use it to inspect a Claude Code configuration, evaluate its features against the documented behavior, and calibrate the setup.
Why use it?
It helps identify gaps or interactions in the setup before approved improvements are applied.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: model in frontmatter; reads .claude/ paths; mentions CLAUDE.md.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the claude-calibration plugin — 20 skills, 6 agents, 2 hooks shipped together

Good fit Use it to inspect a Claude Code configuration, evaluate its features against the documented behavior, and calibrate the setup.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add odere-pro/claude-calibration
Claude Code
/plugin install claude-calibration

Made for: Claude Code.

Or install claude-calibration, the plugin that ships this one along with the rest of its 20 skills, 6 agents, 2 hooks.

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 calibrate

README.md
[![agentmods](https://agentmods.dev/badge/skills/odere-pro/claude-calibration/calibrate/github.svg)](https://agentmods.dev/skills/odere-pro/claude-calibration/calibrate)
Your own site
<a href="https://agentmods.dev/skills/odere-pro/claude-calibration/calibrate"><img src="https://agentmods.dev/badge/skills/odere-pro/claude-calibration/calibrate/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.

agentmods 80×15 button for calibrate

Your own site · 80×15
<a href="https://agentmods.dev/skills/odere-pro/claude-calibration/calibrate"><img src="https://agentmods.dev/badge/skills/odere-pro/claude-calibration/calibrate.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 246 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,799 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. 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.00246 $0.06799
Opus 5 $0.00123 $0.03400
Sonnet 5 $0.00049 $0.01360
Haiku 4.5 $0.00025 $0.00680

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

Security

Grade B, and why

calibrate scanned grade B 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 9d 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.

Reads agent configuration directoriesmediumAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

if [ -f .claude/calibration/current ]; then echo "CURRENT_RUN=$(cat .claude/calibration/current)"; else echo "CURRENT_RUN=(none)"; fi
skills/calibrate/SKILL.md · 422 lines

How it starts

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

echo "=== calibration preprocessing ==="
DOCS_DIR="$(cd "${CLAUDE_SKILL_DIR}/../../docs" 2>/dev/null && pwd || echo UNKNOWN)"
BUNDLES_DIR="$(cd "${CLAUDE_SKILL_DIR}/.." 2>/dev/null && pwd || echo UNKNOWN)"
echo "DOCS_DIR=$DOCS_DIR"
echo "BUNDLES_DIR=$BUNDLES_DIR"
echo "PLUGIN_ROOT=${CLAUDE_PLUGIN_ROOT:-unknown}"
echo "PROJECT_DIR=${CLAUDE_PROJECT_DIR:-$(pwd)}"
echo "CWD=$(pwd)"
echo "TIMESTAMP=$(date +%Y%m%d-%H%M%S)"
echo "NOW_ISO=$(date -u +%Y-%m-%dT%H:%M:%SZ)"
echo "GIT_HEAD=$(git rev-parse HEAD 2>/dev/null || echo not-a-git-repo)"
echo "GIT_DIRTY_FILES=$(git status --porcelain 2>/dev/null | wc -l | tr -d ' ')"
echo "GITIGNORE_HAS_CALIBRATION=$(grep -qs 'calibration' .gitignore && echo yes || echo no)"
echo "--- shipped per-feature bundles ---"
if [ "$BUNDLES_DIR" != "UNKNOWN" ]; then
  for b in "$BUNDLES_DIR"/calibrate-*/; do
    [ -d "$b" ] && echo "BUNDLE=${b%/}"
  done | sort
else
  echo "(no bundles dir resolvable — subagents will fall back to docs-only rubric)"
fi
echo "--- recent calibration runs (newest first) ---"
ls -1dt .claude/calibration/*/ 2>/dev/null | head -5 || echo "(none)"
if [ -f .claude/calibration/current ]; then echo "CURRENT_RUN=$(cat .claude/calibration/current)"; else echo "CURRENT_RUN=(none)"; fi
# Cost mode: when $ARGUMENTS contains the standalone token `cost`, precompute the
# calibrate-general lint so the orchestrator's cost-mode branch (§ 0b) can format and print it
# without needing Bash itself.
if echo "$ARGUMENTS" | grep -qiE '(^|[[:space:]])cost([[:space:]]|$)'; then
  COST_LINT="$BUNDLES_DIR/calibrate-general/scripts/lint.sh"
  if [ "$BUNDLES_DIR" != "UNKNOWN" ] && { [ -x "$COST_LINT" ] || [ -f "$COST_LINT" ]; }; then
    echo "--- cost-mode lint (calibrate-general/scripts/lint.sh) ---"
    bash "$COST_LINT" "${CLAUDE_PROJECT_DIR:-$(pwd)}" 2>&1 || echo "COST_LINT_FAILED=$?"
    echo "--- end cost-mode lint ---"
  else
    echo "COST_LINT_NOT_FOUND=$COST_LINT"
  fi
fi
# Plugin filter: a CLI `--plugins <val>` flag wins; else `.claude/calibration/config.json`.
# Normalised by the shared resolver into the canonical CALIBRATION_PLUGIN_FILTER spec the bundles'
# enumerate.sh read (include:a,b | exclude:a,b | scope:global|local). Empty => audit everything.
PLUGIN_FILTER=""
if [ "$BUNDLES_DIR" != "UNKNOWN" ] && [ -f "$BUNDLES_DIR/lib/resolve-plugin-filter.sh" ]; then
  PLUGIN_FILTER="$(bash "$BUNDLES_DIR/lib/resolve-plugin-filter.sh" "$ARGUMENTS" "${CLAUDE_PROJECT_DIR:-$(pwd)}" 2>/dev/null || true)"
fi
echo "PLUGIN_FILTER=$PLUGIN_FILTER"
echo "=== end preprocessing ==="

Calibrate — orchestrator

You are the calibration orchestrator. You run on Opus and you are read-only with respect to all Claude Code configuration and repository source — you NEVER use Edit, you do NOT modify any config file, and you only use Write to create the final report inside the run folder under .claude/calibration/. Every change to the user's setup is made by the calibration-calibrator subagent, after the user approves the plan. Your job: chain three subagents, keep the user oriented with short messages, produce the final report.

The invocation arguments are: $ARGUMENTS

Use the values from the preprocessing block above: DOCS_DIR (the human-readable doc-set, used as a fallback rubric), BUNDLES_DIR (the parent dir of all calibrate-<feature>/ bundles; the primary toolkit the subagents read — each bundle has SKILL.md, reference.md, templates/, examples/, scripts/), PROJECT_DIR, TIMESTAMP (for a new run folder), NOW_ISO, GIT_HEAD, GIT_DIRTY_FILES, CURRENT_RUN. Pass both DOCS_DIR and BUNDLES_DIR to every subagent in the spawn prompt — they need them to dispatch per-feature work to the right bundle. If BUNDLES_DIR is UNKNOWN or empty, tell subagents to fall back to general Claude Code best practice and the docs/features/*.md rubric directly.

Read the full file on GitHub · 422 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. 9d ago First seen · 422 lines · 246 tokens per session scan B 3ce59636b1da

Subscribe to this mod's changes

calibrate is a skill published in the GitHub repository odere-pro/claude-calibration (1 stars, last pushed 1mo ago), licensed MIT. It adds 246 tokens to every session and 6,799 once invoked, about $0.0012 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). 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

researcher

Delegate a deep research or survey task to Google's Antigravity CLI (agy staffer, fast Gemini). Use when the user says /agy:researcher, "ask agy to research", "have the agy staffer survey X", or wants a second, independent deep-dive on a topic or codebase without spending the host model's quota.

keli-wen/agy-staff · 75 tokens

writing-javascript

How browser JavaScript is written in this repo — both surfaces now speak one modern dialect and this says what that means for the code you type, where ES modules are impossible and where they are merely unused, and how to pick a feature (Baseline plus a file:// gate). Covers functional idiom over imperative DOM work…

AleksandarBisevac/claude-plugins · 163 tokens

writing-python

How Python is written in this repo — free functions over classes, structured returns instead of mutated arguments, comprehensions, no module state, and the stdlib-only, annotation-free, Python 3.8 dialect the AST lints enforce. Covers modular structure and the import-layer rule, DRY without copying a helper into a…

AleksandarBisevac/claude-plugins · 161 tokens

cleanup

Clean up after a merged pull request — return to the base branch, remove the worktree, delete the branch, sweep other stale branches and worktrees, and report tracker state. Use after a merge or whenever asked what is left over.

mikestankavich/claude-ship-workflow · 0 tokens

prep

Spec a ticket before it is dispatched. Brainstorms it, decides everything it can recommend an answer for, asks a present human about the little that survives, and leaves the spec, the decisions and anything still open as one ticket comment. No worktree, no branch, no pull request, and the ticket stays where it was.

mikestankavich/claude-ship-workflow · 0 tokens

dora-expert

DORA expert for EU financial entities. Deep knowledge of Digital Operational Resilience Act including 5 pillars, ICT risk management, incident reporting, resilience testing, third-party oversight, and information sharing for financial sector digital resilience.

GRCEngClub/claude-grc-engineering · 49 tokens