map-corpus

map-corpus is a skill for Claude Code, Codex from melodic-software/claude-code-plugins. It costs 211 tokens per session (3,636 once invoked), scanned A, original, MIT.

A documentation-mapping tool that discovers pages from one or more starting URLs, classifies them, and records exactly which parts belong to a selected topic.

In plain words
What is it for?
Use it to build a verified slice of a multi-page documentation site before digesting or researching its contents.
Why use it?
It prevents an agent from claiming it reviewed a whole documentation set when it only skimmed some pages.

Skill for Claude CodeCodex

Installs and runs on its own, but its text points at files inside its plugin — anything it tells you to read at a ${CLAUDE_PLUGIN_ROOT} path is only there once the plugin is installed. Installing the plugin gets both.

Part of the knowledge plugin — 5 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/melodic-software/claude-code-plugins/map-corpus
Any agent
npx skills add melodic-software/claude-code-plugins --skill map-corpus
Clone the repo
git clone --depth 1 https://github.com/melodic-software/claude-code-plugins

Made for: Claude Code, Codex.

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

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 map-corpus

README.md
[![agentmods](https://agentmods.dev/badge/skills/melodic-software/claude-code-plugins/map-corpus.svg)](https://agentmods.dev/skills/melodic-software/claude-code-plugins/map-corpus)
Your own site
<a href="https://agentmods.dev/skills/melodic-software/claude-code-plugins/map-corpus"><img src="https://agentmods.dev/badge/skills/melodic-software/claude-code-plugins/map-corpus.svg" alt="Measured on agentmods" height="20"></a>
Per session 211 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,636 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. 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.00211 $0.03636
Opus 5 $0.00105 $0.01818
Sonnet 5 $0.00042 $0.00727
Haiku 4.5 $0.00021 $0.00364

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

Security

Grade A, and why

map-corpus 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 yesterday.

The scan reads SKILL.md. This mod also ships 8 executable files (discovery/check_linkmap.py, discovery/parse_discovery.py, discovery/test_discovery.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

plugins/knowledge/skills/map-corpus/SKILL.md · 217 lines

How it starts

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

Map Corpus

Turn a topic plus seed URLs into a corpus slice that PROVES what was read: every discovered URL classified, every in-corpus resource decomposed by a deterministic script into a node manifest, every node carrying a relevance verdict backed by a byte-verified quote. The mapper supplies the layer docpage-digest names as its own non-goal ("Does not crawl. One page per run") without reimplementing, renaming, or modifying it.

The failure this skill exists to prevent: an agent handed a multi-page corpus glosses content and asserts it read everything. Here the denominators are never the agent's. Scripts emit the URL set from discovery snapshots and the node set from resource snapshots, and script gates diff the agent's classifications and verdicts against both.

Prerequisite (declared at point of use): python3 (3.9+) on PATH for the bundled scripts under this skill's discovery/, extraction/, and verification/ directories. Missing Python means say so and stop. There is no agent-judgment fallback for a deterministic denominator.

Arguments

  • <topic>: short phrase naming the corpus; slugified into the slice name. <seed-url>...: one or more starting URLs.
  • --epic <slug>, the epic under the work root (default: the topic slug).
  • --max-resources N, the in-corpus bound declared in the link map (default 30). A breach stops the run and re-asks; it never silently proceeds.
  • --granularity deep|section. JUDGMENT granularity, never row granularity: the inventory always carries exactly one row per manifest node (the gate's coverage invariant). deep (default) judges each node independently; section lets child rows inherit their top-level section's verdict/rationale (via parent_id), each keeping its own in-node evidence quote. Granularity and depth are per-invocation arguments by design, not userConfig.

Work root

Configured library dir: ${user_config.library_dir}

The work root resolves through the knowledge plugin's library_dir seam (the topic-docs carve-out, not memory_dir, not .claude/, not ${CLAUDE_PLUGIN_DATA}). Resolve once before the first write and record the absolute path in the checklist: unset or a surviving ${user_config.library_dir} token means the default .; relative resolves against ${CLAUDE_PROJECT_DIR}; absolute and ~ are verbatim; a ${NAME}/%NAME% env-var reference is read by you, never handed to a shell, an unset variable must fail loudly, not expand empty.

Read the full file on GitHub · 217 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. yesterday First seen · 217 lines · 211 tokens per session scan A c0334a689790

Subscribe to this mod's changes

map-corpus is a skill published in the GitHub repository melodic-software/claude-code-plugins (14 stars, last pushed yesterday), licensed MIT. It adds 211 tokens to every session and 3,636 once invoked, about $0.0011 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-09-03.

Related

Other skills, from other repositories

phpunit-unit-test-reviewing

Internal sub-skill. Do not auto-activate. Use only when explicitly invoked by name by another skill or agent.

shopwareLabs/ai-coding-tools · 31 tokens

structuring-documentation

Use when writing, editing, auditing, splitting, or measuring Markdown documentation surfaces — README.md, AGENTS.md, CLAUDE.md, and docs/ siblings. Triggers include "is this doc too long", "split this README", "measure the docs", "where does this documentation belong", "audit the documentation", and any request to…

shopwareLabs/ai-coding-tools · 89 tokens

phpunit-integration-test-generation

Use this skill when the user asks to generate, write, or create integration tests for a Shopware 6 source class whose contract requires wired-up code — phrases like "generate integration tests for X", "write an integration test for this controller", "test this indexer", "create an integration test for the message…

shopwareLabs/ai-coding-tools · 184 tokens

phpunit-unit-test-writing

Use this skill when the user asks to write, generate, create, or add PHPUnit unit tests for a Shopware 6 source class — phrases like "write unit tests for X", "generate tests for ClassName", "create PHPUnit tests", "add test coverage", "test this class", "cover this with tests", "I need tests for", "unit test this"…

shopwareLabs/ai-coding-tools · 187 tokens

phpunit-migration-test-generation

Use this skill when the user asks to generate, write, or create migration tests for a Shopware 6 migration class — phrases like "generate migration tests", "write a migration test", "create migration test", "test this migration", "test Migration1234Foo". Analyzes the source migration's SQL operations to pick an…

shopwareLabs/ai-coding-tools · 141 tokens

phpunit-test-reconciling

Internal sub-skill. Do not auto-activate. Use only when explicitly invoked by name by another skill or agent.

shopwareLabs/ai-coding-tools · 32 tokens