The OI skill descriptions cost about 3-5K tokens always-on, none of them bundle an MCP (Model Context Protocol) tool surface, and the real exposure is that the listing overflows the harness budget on a 200K window
The question
Verbatim: "What is the actual token cost of the CAF skill descriptions specifically (they may exceed Anthropic's ~80-token median), and does any single CAF skill bundle an MCP/tool surface that reintroduces the expensive tool-schema always-on cost?"
Context: this is follow-up 3 from [[2026-07-07-claude-skill-count-degradation-skill-packs]]. That brief concluded that skills are cheap because of progressive disclosure, and that the real ceiling is (a) any bundled tool surface and (b) trigger collision. This brief tests the first assumption empirically. Naming note: the Catalyst Assessment Framework ("CAF") name was retired on 2026-08-10. The work now runs under the Organizational Intelligence (OI) umbrella, so this brief says OI from here on.
What we already know (from the vault)
- The parent brief's baseline. Anthropic's Level-1 load is name plus description only. The measured figures it cites are about 80 tokens median per skill (range 55-235) and about 1,500 tokens for 40 skills. From these it extrapolated about 5K tokens for 60 skills. Tools are the expensive surface: a single GitHub MCP server is about 42K tokens ([[2026-07-07-claude-skill-count-degradation-skill-packs]]).
- The fat-harness warning names tools, not skills. "40+ tool definitions eating context" is the anti-pattern ([[2026-04-11-garry-tan-thin-harness-fat-skills]]). RDCO itself runs 60+ skills ([[2026-04-19-indydevdan-ditching-mcp-servers]]), and Anthropic runs hundreds internally ([[2026-04-04-anthropic-skills-internally]]).
- Where the OI skills live, and there are three trees, not one. The
cafplugin in thephdata-ai-wf-pluginscheckout (dated 2026-07-03) holds 106 skill directories, and the 2026-07-27 refactor cut the live surface to 70. A project-scoped.claude/skillstree in the same repo holds 12 phase-level skills. The v2 harness-native successor isab-assessmentin brigade-house ([[2026-09-06-move1-anchor-screen-oi-skill-catalog]], [[2026-07-01-caf-ecosystem-map-and-brigade-restructure-read]], [[2026-07-27-caf-technical-architecture-and-backlog]]). - An OI MCP server was planned, not built. The restructure brief split the design this way: "plugin carries skills; data tools go in a separate remote MCP server for cross-harness reach" ([[2026-06-14-caf-restructure-organizing-brief]]). That future server is where tool-schema risk would come from.
What the web says
- Level 1 is name plus description, at startup. Anthropic's engineering post says the system "loads the name and description of every installed skill into its system prompt." The SKILL.md body loads only when the skill is relevant, and linked files load only as needed. That makes bundled context "effectively unbounded" (Anthropic: Equipping agents with Agent Skills).
- Claude Code caps each listing entry. The combined
descriptionpluswhen_to_usetext "is truncated at 1,536 characters in the skill listing to reduce context usage." An invoked skill's body "enters the conversation as a single message and stays there" (Claude Code docs: Skills). - The whole listing has a shared budget. Secondary sources report that the budget is 1% of the context window, with an 8,000-character fallback. On overflow, Claude Code shortens or drops descriptions, starting with the skills used least.
/doctorshows the listing's context cost (claudefa.st: skill listing budget, DEV: listing budget). The official skills page I fetched does not state the 1% figure, so treat it as reported, not confirmed. allowed-toolsadds no tools. It "grants permission for the listed tools during the turn that invokes the skill" and "does not restrict which tools are available." It pre-approves permissions and adds no tool schema (Claude Code docs: Skills).- The real bundling vector exists. A skill folder with
.claude-plugin/plugin.json"loads as a plugin" and "can bundle agents, hooks, and MCP servers" through.mcp.json(Claude Code docs: Skills). - Tool-schema cost is one to two orders of magnitude higher. Anthropic measured GitHub at 35 tools (about 26K tokens) and Slack at 11 tools (about 21K). Five servers with 58 tools came to about 55K tokens "before the conversation even starts." Tool Search with
defer_loadingcuts this by about 85% and raised Opus 4.5 tool-selection accuracy from 79.5% to 88.1% (Anthropic: Advanced tool use). - Claude Code defers MCP tools automatically. When MCP tool descriptions exceed 10% of the context window, Claude Code defers them behind a search tool. This is on by default from version 2.1.7 (Tessl, claude-code issue #18298, which reports cases where it did not auto-enable).
The audit
Method. I read every SKILL.md frontmatter, agent file, and command file read-only, using a small YAML-aware parser that handles folded and literal block scalars. No tokenizer was installed, and I did not call the count_tokens API. Token counts are therefore estimates, and each is given as a range:
- High end: characters / 4 (Anthropic's rough English rule).
- Low end: words x 1.33.
OI descriptions are dense with jargon: the average word is 7.1-7.5 characters, against about 5 for plain English. The real figure is probably nearer the chars/4 end, so the per-skill figures below use chars/4.
MCP check. For each tree I searched for:
.mcp.jsonandhooks.jsonfilesmcpServerskeys inplugin.json,marketplace.json, andsettings.jsonmcp__tool references andFastMCPor@modelcontextprotocolimports in.md,.json,.py,.ts, and.tomlfiles
Aggregate, by skill set:
| Skill set | Skills | Median desc tokens | Max | Over 80 tok | Always-on desc total (tokens) | Bundled tool surface |
|---|---|---|---|---|---|---|
OI caf plugin skills (checkout 2026-07-03) |
106 | ~24 | ~102 | 10 | ~2.7K-3.8K (~4.7K with namespaced names) | None. Every skill has allowed-tools: Read Grep (built-in, pre-approval only). No .mcp.json, no mcpServers |
OI caf plugin subagents |
9 | ~90 | ~118 | 6 | ~0.8K (Agent-tool listing) | None. Built-in tools only (Read, Grep, Glob, Edit, Write, Skill) |
OI caf plugin command |
1 | ~12 | - | 0 | ~12 | None |
OI project .claude/skills (phase-level tree) |
12 | ~141 | ~178 | 12 | ~1.3K-1.7K | None. allowed-tools lists built-ins and Skill(...) only |
ab-assessment (brigade-house v2 OI brigade) |
11 | ~148 | ~194 | 11 | ~1.6K | None |
| All brigade-house plugins (the wider house, for comparison) | 56 | ~175 | ~255 | 48 | ~7.0K-9.5K | None across all 13 plugins |
OI spec repo .claude/skills (orgmap-*) |
2 | ~83 | ~84 | 2 | ~0.17K | None |
OI Snowflake frontend .claude/skills |
2 | ~129 | ~129 | 2 | ~0.26K | None. settings.json holds only enabledPlugins |
Per-skill outliers in the 106-skill plugin (all descriptions above about 80 tokens; the remaining 96 sit at or below that):
| Skill | Desc tokens (chars/4) | Bundled tool surface | Always-on cost |
|---|---|---|---|
| m-3-expectation-steward | ~102 | No (Read, Grep pre-approval) | ~105 |
| 4g-3-deliverable-expert-reviewer | ~102 | No | ~105 |
| 2-10-orchestrator | ~100 | No | ~103 |
| s4-7-archetype-propagation-wiring | ~95 | No | ~98 |
| 3-9a-solution-archetype-classifier | ~95 | No | ~98 |
| 4g-4-real-world-value-validator | ~91 | No | ~94 |
| 2-9-exec-translator | ~91 | No | ~94 |
| 2-4-process-input-discovery-detector | ~89 | No | ~92 |
| 6d-8-adversarial-correctness-validator (in the cut 36) | ~84 | No | ~87 |
| s4-6-platform-native-decomposition-engine | ~83 | No | ~86 |
Per-skill table for the current v2 set (ab-assessment): 01-engagement-framing ~148 · 02-discovery-readiness ~140 · 03-classification ~178 · 04-prioritization ~165 · 05-skill-contracts ~164 · 06-execution ~150 · 07-quality-gates ~133 · 08-productize ~134 · catalyst-assessment ~109 · expo ~194 · prime-catalyst-assessment ~115. No skill bundles a tool surface. The always-on cost of each equals its description tokens plus about 3-5 tokens for the name.
No description in any tree comes near the 1,536-character per-entry cap. The largest, standards-regulatory-sourcing in ab-domain-research, is 1,021 characters.
Convergences and contradictions
- Convergence: no OI skill reintroduces tool-schema cost. No skill, agent, command, or plugin manifest across the five OI-related trees and the 13 brigade-house plugins bundles an MCP server or tool definition. The only tool fields are
allowed-toolspre-approvals of built-ins, and the docs state explicitly that these add no tools. The parent brief's skills-are-cheap conclusion holds for OI as built. - Contradiction (partial): "may exceed the ~80-token median" is true for the newer sets and false for the original. The 106-skill plugin is terse: median about 24 tokens, 3x under Anthropic's median. The phase-level tree and
ab-assessmentrun about 140-150 median, roughly 1.8x over, and the wider brigade-house convention runs about 175. The house style of long descriptions that state when to use a skill and what it hands off to has doubled per-skill cost. Even so, the totals stay small. - New tension the parent brief missed: the listing budget, not the token cost. The 106-skill plugin's listing is about 18.7K characters once plugin-namespaced names are included. The reported budget on a 200K window is about 8,000 characters. So on a 200K window, installing the full plugin makes Claude Code truncate or drop descriptions, about 2.3x overflow. On a 1M window, the budget of about 40K characters fits it. The harness caps the always-on token cost, and the price of the cap is discoverability.
Synthesis for RDCO
The token question is settled: OI's always-on skill cost is small, and no OI skill carries a tool surface. The worst case is the full 106-skill plugin plus its 9 subagents: about 5.5K tokens including names. The live ab-assessment brigade is about 1.6K. Both are rounding errors next to one mid-size MCP server: Slack alone is about 21K, and Anthropic's five-server example is about 55K. So nothing in the OI build breaks the progressive-disclosure assumption the parent brief rested on. The skills-are-cheap conclusion survives the empirical test. The ~80-token median framing also needs a correction. The original catalog comes in under it. The newer phase-level skills come in about 1.8x over it, and that is a deliberate house style that buys routing precision with tokens.
The binding constraint moves from token cost to the listing budget, which is the parent brief's trigger-collision finding in harness form. Claude Code does not let skill descriptions grow context without limit. It reportedly caps the listing at about 1% of the window and drops descriptions from the least-used skills first. So a client installing the 106-skill OI plugin on a 200K-window model would pay a bounded token cost, with no drop in answer quality. The cost is that many of the micro-skills would become name-only entries Claude cannot route to. This matters for any OI deliverable that ships the full catalog into a client harness, and it favors the v2 shape: 11 phase skills that load the ~106 dimensions as reference files (Level 3). That shape was presumably chosen for other reasons, but it is also the budget-safe one. Keep new OI skills on the phase-skill-plus-reference pattern, not on one skill per dimension.
The real tool-schema risk is prospective, not present. It sits in the planned remote OI data MCP server and in the Glean MCP endpoint that the restructure brief proposed to consume. If either ships inside the OI plugin through .mcp.json, it becomes an always-on schema cost for every user of the plugin, and that is exactly the failure mode this question worried about. Two mitigations exist:
- Automatic deferral. Claude Code defers MCP tools once they pass 10% of the window, but there are reports of cases where this did not auto-enable.
- Keep the tool surface small and distribute it separately. Ship the MCP server as its own installable, not bundled into the skills plugin, and hold it to the fewer-than-20-tools rule of thumb.
Keep that separation for when the server is built. It is a design rule to carry forward, not a problem to fix now.
Why this is in the vault
This closes open follow-up 3 of [[2026-07-07-claude-skill-count-degradation-skill-packs]]. It also gives the OI plugin-packaging decision in [[2026-06-14-caf-restructure-organizing-brief]] (skills plugin versus separate remote MCP server) a measured number: keep the MCP server out of the skills plugin, and prefer phase skills with reference files over 106 top-level skills for any client-harness install.
Open follow-ups
- On a 200K-window Claude Code session with the full 106-skill OI plugin installed, what does
/doctorreport for listing cost, and which descriptions actually get truncated or dropped? - Do the longer ~150-token phase-skill descriptions measurably improve routing accuracy over the ~24-token originals, or is the extra length paying for nothing?
- Did MCP Tool Search's 10%-of-window auto-defer become reliable after the auto-enable failures reported in claude-code issue #18298, so that a bundled OI data server would be deferred by default?
- What would the counted token cost be using the count_tokens API against the actual Claude tokenizer, and how far off is the chars/4 approximation on jargon-dense descriptions?
Related
- [[2026-07-07-claude-skill-count-degradation-skill-packs]] - parent brief; the ~80-token median and the tools-not-skills conclusion
- [[2026-09-06-move1-anchor-screen-oi-skill-catalog]] - locates the 106-skill tree, the 70 live after the cut, and the 12-entry project tree
- [[2026-07-01-caf-ecosystem-map-and-brigade-restructure-read]] - the two coexisting implementations
- [[2026-07-27-caf-technical-architecture-and-backlog]] - refactor that cut phases 5-8
- [[2026-06-14-caf-restructure-organizing-brief]] - plan for a separate remote MCP server for data tools, and Glean MCP consumption
- [[2026-04-11-garry-tan-thin-harness-fat-skills]] - "40+ tool definitions eating context"
- [[2026-04-19-indydevdan-ditching-mcp-servers]] - MCP versus CLI and skills context tradeoffs
- [[2026-04-04-anthropic-skills-internally]] - hundreds of skills in use at Anthropic
- [[2026-06-30-anthropic-skill-guide-vs-brigade-comparison]] - Anthropic skill guide against the brigade pattern
Sources
- Vault: 06-reference/research/2026-07-07-claude-skill-count-degradation-skill-packs.md
- Vault: 06-reference/research/2026-09-06-move1-anchor-screen-oi-skill-catalog.md
- Vault: 01-projects/phdata/2026-07-01-caf-ecosystem-map-and-brigade-restructure-read.md
- Vault: 01-projects/phdata/2026-07-27-caf-technical-architecture-and-backlog.md
- Vault: 01-projects/phdata/2026-06-14-caf-restructure-organizing-brief.md
- Vault: 06-reference/2026-04-11-garry-tan-thin-harness-fat-skills.md
- Vault: 06-reference/2026-04-19-indydevdan-ditching-mcp-servers.md
- Vault: 06-reference/2026-04-04-anthropic-skills-internally.md
- Vault: 08-tooling/2026-06-30-anthropic-skill-guide-vs-brigade-comparison.md
- Disk (read-only, audited 2026-09-14):
~/Projects/phdata-private/phdata-ai-wf-plugins-dd673d8e215f/plugins/caf/(skills, agents, commands, plugin.json) and.claude/skills/;~/Projects/phdata-private/brigade-house/plugins/*;~/Documents/phdata-projects/organizational-intelligence/.claude/skills/;~/Projects/phdata-private/phdata-caf-snowflake-frontend-7f4e37787941/.claude/ - Web: Anthropic, Equipping agents for the real world with Agent Skills - https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills
- Web: Claude Code docs, Extend Claude with skills - https://code.claude.com/docs/en/skills
- Web: Anthropic, Introducing advanced tool use - https://www.anthropic.com/engineering/advanced-tool-use
- Web (secondary): claudefa.st, Claude Code's hidden skill budget setting - https://claudefa.st/blog/guide/mechanics/skill-listing-budget
- Web (secondary): DEV, How the listing budget decides which descriptions Claude sees - https://dev.to/rulestack/too-many-claude-code-skills-how-the-listing-budget-decides-which-descriptions-claude-sees-4a6m
- Web (secondary): Tessl, Anthropic brings MCP tool search to Claude Code - https://tessl.io/blog/anthropic-brings-mcp-tool-search-to-claude-code
- Web: anthropics/claude-code issue #18298, MCP Tool Search not auto-enabling - https://github.com/anthropics/claude-code/issues/18298