witan-code

witan-code is a skill for Claude Code from mitodl/agent-kit. It costs 120 tokens per session (1,996 once invoked), scanned A, original, BSD-3-Clause.

A code map that tracks where functions, classes, modules, and their connections are defined across one or more repositories.

In plain words
What is it for?
Use it to find symbol definitions, callers, references, and likely breakage, or to trace shared environment variables, web endpoints, packages, and services between repositories.
Why use it?
It answers structural questions more reliably than searching text, such as what calls a function or what could be affected by a change.

Skill for Claude Code

Written for Claude Code: SessionStart hook event. Also seen: mentions Claude Code.

Good fit Use it to find symbol definitions, callers, references, and likely breakage, or to trace shared environment variables, web endpoints, packages, and services between repositories.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/mitodl/agent-kit/witan-code
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.

Any agent
npx skills add mitodl/agent-kit --skill witan-code
Clone the repo
git clone --depth 1 https://github.com/mitodl/agent-kit

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 witan-code

README.md
[![agentmods](https://agentmods.dev/badge/skills/mitodl/agent-kit/witan-code/github.svg)](https://agentmods.dev/skills/mitodl/agent-kit/witan-code)
Your own site
<a href="https://agentmods.dev/skills/mitodl/agent-kit/witan-code"><img src="https://agentmods.dev/badge/skills/mitodl/agent-kit/witan-code/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 witan-code

Your own site · 80×15
<a href="https://agentmods.dev/skills/mitodl/agent-kit/witan-code"><img src="https://agentmods.dev/badge/skills/mitodl/agent-kit/witan-code.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 120 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,996 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.00120 $0.01996
Opus 5.5 $0.00048 $0.00798
Sonnet 5.5 $0.00024 $0.00399
Haiku 4.5 $0.00012 $0.00200

Measured 15d ago against content hash 805640d5519b, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

witan-code 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 15d 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.

mcp/servers/witan-code/witan_code/skills/witan-code/SKILL.md · 153 lines

How it starts

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

Code Graph

A per-repo, tree-sitter-derived graph of symbols (functions, methods, classes, modules) and their relationships (Calls, References, Imports, Inherits), plus a cross-repo bridge linking services through shared contracts (env vars, HTTP endpoints, packages, deployments). Indexing is automatic — a session-start hook seeds/refreshes the whole repo in the background, and a post-edit hook incrementally reindexes each file you edit (Claude Code's SessionStart/PostToolUse hooks; under Pi, the witan-code extension's session_start/tool_result handlers) — so you rarely need to invoke the CLI yourself.

When to use this vs. grep / the Explore agent

Reach for code_* tools when the question is structural, not textual:

  • "Where is Service.run defined?" → code_find_definition / code_search_symbol
  • "What calls this function, anywhere in the repo?" → code_callers / code_find_references
  • "If I change this, what breaks?" (transitive blast radius) → code_impact
  • "What symbols does this file define?" → code_symbols_in_file
  • "Which other repo reads this env var / calls this endpoint / imports this package?" → code_interface_consumers / code_interface_providers / code_cross_repo_impact

Grep is still the right tool for literal string/comment searches, one-off text matches, or a repo with no code graph yet. The two are complementary: grep finds text; code_* tools resolve symbols and their relationships, which grep cannot do (it can't tell you a function's transitive callers or which service consumes an endpoint another service serves).

Caveat: Calls/References/Imports/Inherits edges are heuristic (syntactic name resolution, not a true call graph) — treat impact/caller results as a high-recall starting point, not a verified answer. Defines and Contains are exact.

On invocation

  • No args → Check readiness, then show the tool reference below.
  • reindex → call the code_reindex MCP tool (or witan-code reindex if running the CLI directly) to force a full rebuild of the current repo, ignoring content hashes. Use when the graph looks stale and you don't want to wait for the incremental hooks to catch up.

Read the full file on GitHub · 153 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. 15d ago Changed · +11 lines 805640d5519b
  2. 22d ago Changed · +25 lines 8dcc0eb85a07
  3. 1mo ago First seen · 117 lines · 120 tokens per session scan A 781041fd2123

Subscribe to this mod's changes

witan-code is a skill published in the GitHub repository mitodl/agent-kit (5 stars, last pushed yesterday), licensed BSD-3-Clause. It adds 120 tokens to every session and 1,996 once invoked, about $0.0005 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-08-31.

Related

Other skills, from other repositories

adversarial-reviewer

Stress-test a code change for concrete correctness defects, unsafe assumptions, and failure modes. Use when the user explicitly asks for an adversarial review, a deep bug hunt, or to tear a change apart, or to check your own change before submitting it. Do not use for ordinary review, style feedback, or general…

emdash-cms/emdash · 72 tokens

gsd-ns-review

quality gates | code review debug audit security eval ui.

open-gsd/gsd-core · 16 tokens

gitnexus

A code-graph analysis add-on for examining an existing codebase, including symbols, call paths, execution flows, and effects across repositories. It can query GitNexus through its command-line or MCP interfaces.

hashgraph-online/awesome-codex-plugins · 58 tokens

issue

Use when starting a chain from a GitHub issue — turning an issue URL or number into a triaged, planned, dispatched, and reviewed pull request. Classifies the thread (bug → root-cause discipline, feature → plan chain, question → drafted reply), synthesizes a spec from the issue's own acceptance criteria, then runs the…

jeremylongshore/tons-of-skills-marketplace · 115 tokens

cleanup-code-inspections

Reduce technical debt and improve code quality by systematically resolving static analysis warnings.

flutter/flutter-intellij · 19 tokens

superlint

This skill describes the mandatory standard operating procedure for using our internal SuperLint tool. Use this when tasks require fixing code quality issues according to corporate standards.

mgechev/skillgrade · 0 tokens