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.
npx skills add HuginnIndustries/CodeCartographer --skill broadsidegit clone --depth 1 https://github.com/HuginnIndustries/CodeCartographerWrote 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.
[](https://agentmods.dev/skills/huginnindustries/codecartographer/broadside)<a href="https://agentmods.dev/skills/huginnindustries/codecartographer/broadside"><img src="https://agentmods.dev/badge/skills/huginnindustries/codecartographer/broadside/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.
<a href="https://agentmods.dev/skills/huginnindustries/codecartographer/broadside"><img src="https://agentmods.dev/badge/skills/huginnindustries/codecartographer/broadside.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00052 | $0.03774 |
| Opus 5.5 | $0.00021 | $0.01510 |
| Sonnet 5.5 | $0.00010 | $0.00755 |
| Haiku 4.5 | $0.00005 | $0.00377 |
Grade A, and why
broadside 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 1mo 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.
How it starts
The opening of the file, as written. The whole thing — 258 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Broad-Side
Broad-Side is CodeCartographer's batch reconnaissance pass. It fires six
analysis lenses — architecture, API surface, security, mechanical defect scan,
convention extraction, and porting — at the repository as single-turn prompts
over the OpenRouter Batch API (~50% of sync pricing, asynchronous, unattended),
then synthesizes one cross-lens report. Results live under
.codecarto/broadside/<run>/ alongside this file.
What Broad-Side findings are — and are not
Broad-Side findings are unverified scouting signals, not validated claims. Every lens is one shot: no cross-file traversal, no runtime verification, no builds, no tests, no follow-up questions. The batch model is cheap, not strong. Treat every finding as a lead with a file:line pointer that the interactive pipeline — or you — must confirm before it is a fact.
This is the division of labor: Broad-Side is cheap enough to run on any repo to decide where the expensive interactive run should spend its attention. It does not replace any phase; it tells phases where to look.
Reading a Broad-Side run
- If
verified.mdexists, read it first. A verification pass (codecarto_broadside {action: "verify"},/codecarto-broadside verify) has read the top defect and security findings against the real source with read-only tools and given each a verdict: confirmed (a reachable failure, with the input or call site that triggers it), not-a-defect (the claim is literally true of the code but nothing can reach the failure it describes), discarded (the claim is wrong about the code, with the guard or line that shows it), or unclear. Start from the confirmed ones; treat a discarded one as answered unless the reasoning is thin. Then make sure the work order was built from it:statusshowstriage: completed (built from N verdicts); if it says(no verdicts), runcollect --regenerate(regenerate_post_passes: true) before readingtriage.md. Measured on this repository, the top twelve findings by severity were two real defects and ten that a look at the guard, the caller, or the tsconfig dismissed — the pass agreed with a reviewer on all twelve for about a cent a finding. A confirmed verdict is still a model's reading: a strong lead for a human's next look, not a validated claim. - Read
synthesis.md. It carries the executive summary, severity counts, the top cross-lens findings, and per-module risk levels. - Read
triage.mdfor the work order: each lead scored by impact × difficulty with a P0–P3 priority and an effort estimate. It is a starting point for re-verification, not a commitment — every item still needs confirmation against the source before work begins. - Read the per-lens files behind anything that matters to your current phase:
architecture-*.json→ the architecture phase's seed of prior knowledgeapi-*.json→ endpoints and data types (contracts/protocols phases)security-*.json→ auth, trust boundaries (defect-scan-semantic pass 5)defect-*.json→ mechanical defect leads (defect-scan-mechanical). The scan is asked to name the input, call site, or sequence that reaches each failure, and to file a cast, assertion, or style observation that every caller satisfies at severity low under the patterntype-hygiene— read those as notes, not defects.conventions-*.json→ naming/idiom candidates for CONVENTIONS.mdporting-*.json→ platform coupling (porting phase)
run-meta.jsonrecords scope: which lenses ran, at what cost, with what coverage caps.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 1mo ago Changed · +3 lines 8aa0168c62e7
- 1mo ago Changed · +16 lines b4cb2558f974
- 1mo ago Changed · +63 lines b4c1b5bdb253
- 1mo ago Changed · +14 lines 6aeea3ac7ca9
- 1mo ago Changed · +18 lines 6351f44c74e7
- 1mo ago Changed · +29 lines bdb4c8f24ebb
- 1mo ago First seen · 115 lines · 52 tokens per session scan A 793a9e593d7a
broadside is a skill published in the GitHub repository HuginnIndustries/CodeCartographer (6 stars, last pushed 13d ago), licensed MIT. It adds 52 tokens to every session and 3,774 once invoked, about $0.0002 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.
Other skills, from other repositories
deep-analysis
Performs focused, depth-first investigation of specific reverse engineering questions through iterative analysis and database improvement. Answers questions like "What does this function do?", "Does this use crypto?", "What's the C2 address?", "Fix types in this function". Makes incremental improvements (renaming…
pyghidra-scripting
Write and run Python (PyGhidra) code inside the Ghidra session that ReVa's MCP server is already attached to, using the five ReVa scripting tools — run-script, list-scripts, read-script, write-script, edit-script. Use this whenever the user asks to execute Python against the current program, reach for the Ghidra Flat…
ix
Answer structural questions about a codebase — what a symbol is, what calls it, what a change breaks, where the hotspots are — from a persistent code graph via the ix CLI, instead of grepping.
ctf-rev
Solve CTF reverse engineering challenges using systematic analysis to find flags, keys, or passwords. Use for crackmes, binary bombs, key validators, obfuscated code, algorithm recovery, or any challenge requiring program comprehension to extract hidden information.
binary-triage
Performs initial binary triage by surveying memory layout, strings, imports/exports, and functions to quickly understand what a binary does and identify suspicious behavior. Use when first examining a binary, when user asks to triage/survey/analyze a program, or wants an overview before deeper reverse engineering.
change-impact-analysis
Perform a deterministic, graph-driven Change Impact Analysis for a repository. Given a set of changed files, builds a dependency graph, finds directly and transitively affected modules, validates API contracts for breaking changes, parses CODEOWNERS, and computes a 0-100 deployment risk score. Trigger on: change…