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 agentmods add instructions/vmihalis/hacker-bob/claude-mdgit clone --depth 1 https://github.com/vmihalis/hacker-bobWrote 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/instructions/vmihalis/hacker-bob/claude-md)<a href="https://agentmods.dev/instructions/vmihalis/hacker-bob/claude-md"><img src="https://agentmods.dev/badge/instructions/vmihalis/hacker-bob/claude-md.svg" alt="Measured on agentmods" 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 | $0.01290 | $0.01290 |
| Opus 5 | $0.00645 | $0.00645 |
| Sonnet 5 | $0.00258 | $0.00258 |
| Haiku 4.5 | $0.00129 | $0.00129 |
Grade A, and why
hacker-bob CLAUDE.md 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 5d 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 — 72 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Hacker Bob Repo Instructions
This repository is the install source for the Hacker Bob /bob-evaluate Claude Code framework.
If a user asks you to install this framework into a project:
- Clone this repo locally.
- Run
./install.sh /absolute/path/to/target/projectfrom the cloned repo. - The installer copies the skills, update command shim, agents, rules, hooks, knowledge, bypass tables, MCP runtime, and generated settings. It merges
.mcp.jsonand.claude/settings.jsoninstead of overwriting unrelated config. - After install, run Claude Code from the target project and use
/bob-evaluate <target>(slash command) or thebob-evaluateskill.
Do not assume this cloned repo is the user's active workspace unless they explicitly want that.
Each installed workspace gets its OWN session root — ~/hacker-bob-sessions-<workspace>-<hash>, derived from the workspace path (stable across re-installs) and written as BOB_SESSIONS_ROOT into that workspace's .mcp.json server env and .claude/settings.json env. Bob elects one engine per session root, so concurrent engines in two workspaces require DISJOINT roots; the root is operator configuration read once at engine boot and frozen there, and no agent or MCP tool can change it. A workspace that was already installed and still has sessions in the shared ~/hacker-bob-sessions/ keeps using it rather than orphaning them — migrate with mv ~/hacker-bob-sessions/<target-domain> ~/hacker-bob-sessions-<workspace>-<hash>/ (the installer prints the exact path) and re-run the installer. Operator caution: disjoint roots make concurrent ENGINES safe, not concurrent evaluations of the SAME target — rate limits, circuit breakers, and request budgets are per-engine, so two engines on one target double the request volume it sees and neither one knows it.
If the user is developing this framework itself and wants to test changes in a local Claude Code workspace:
- Use
./dev-sync.sh /absolute/path/to/test-workspacefrom this repo. - This script backs up the target
.mcp.jsonand.claude/settings.json, runs the installer, recopies repo-backed MCP files includingmcp/tools/*.js, re-merges the dev config, and runsclaude mcp listunless--no-health-checkis supplied. - It is intended for a dedicated local test workspace because it overwrites Bob-owned runtime files after backing up the target MCP/settings files.
- After
dev-sync.sh, fully restart Claude Code in the test workspace, run/mcp, and smoke testbob_http_scanwithtarget_domain: "example.com"againsthttps://example.com.
Maintainer workflow:
- Run
npm testbefore handing off changes. Useful focused commands arenpm run test:mcp,npm run test:prompts,npm run test:install, andnpm run check:syntax. - Generated prompt/config surfaces must stay current. Run
node scripts/generate-agent-tools.jsafter role-bundle metadata changes andnode scripts/generate-hacker-bob-skill.jsafter orchestrator/auth bundle changes. TOOLS, MCP dispatch, role-bundle permissions, agent tool frontmatter, skill allowed-tools, Claude settings, and scope-hook registration must remain registry-driven.- Correctness-vocabulary tags (S*, I*, C*, X., Y-P, Y-D*, Y-R*) are
registry-driven via
mcp/core/invariant-registry.js. Every tag in the tree must resolve to a REGISTRY entry (or the frozen, only-shrinkingALLOWLIST_UNDOCUMENTEDbacklog), and every entry'senforced_byfile:symbol must exist. The collision-prone S/C/I families are matched only in anchored comment form (// I6), so a tag's enforcing anchor MUST be a comment.npm run check:invariant-registry(intest:prompts) is the orphan-check. Adding a tag means adding its entry AND anchoring the tag at the enforcing site. - Lifecycle hooks enforce contracts only. Evaluator
SubagentStopvalidates the final marker and structured handoff but must not advancepending_wave,evaluation_wave,explored, findings summaries, or phase state. - Markdown mirrors are human/debug artifacts. Chain evidence is MCP-owned in
chain-attempts.jsonl;report.mdremains the final human-facing agent-composed (via bob_compose_report) report. - Audit-graded session paths are MCP-rendered (Y-P13).
mcp/core/io/paths.jsexportsAUDIT_GRADED_PATHS(positive list —report.md,chains.md,evidence-packs.md,grade.md, verification-round mirrors, wave-handoff mirrors, claim-freeze snapshots, and the hash-bound JSONL ledgers) and theisAuditGradedPath(absolutePath, target_domain)predicate. Agents never call the Write tool on these paths; structured composition flows throughbob_compose_report(Y-D15b),bob_write_chain_rollup(Y-D15c),bob_amend_report(Y-P13a operator-amendment path),bob_write_evidence_packs,bob_write_grade_verdict,bob_write_verification_round, andbob_write_wave_handoff. Scratch artifacts (subdomains.txt,attack_surface.json,family_seeds.txt,surface-discovery-tools.txt) are explicitly NOT inAUDIT_GRADED_PATHSand remain agent-writable. - Evaluator briefs must stay bounded: array counts are capped, scalar strings are
capped or omitted, and agents should use auth through
bob_list_auth_profilesrather than reading secret files directly.
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.
- 5d ago First seen · 72 lines · 1,290 tokens per session scan A 626139ac2311
hacker-bob CLAUDE.md is an instructions file published in the GitHub repository vmihalis/hacker-bob (97 stars, last pushed 6d ago), licensed Apache-2.0. It adds 1,290 tokens to every session, about $0.0064 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-08-30.
Other instructions, from other repositories
sabba CLAUDE.md
Instructions for 8NobleTruths/sabba, covering sabba agent, where to start reading, layout and working here.
context-snipe CLAUDE.md
Claude Code instructions for RP-Digital-Innovations/context-snipe, covering context snipe — master reference, what context snipe actually is, the 4 repos and what each one does, 1. context-snipe-v2 (private) — the actual product and 2. context-snipe (public) — the open-source cli companion.
patch-tuesday-mcp copilot-instructions.md
Copilot instructions for jonnybottles/patch-tuesday-mcp, covering github copilot instructions — patch-tuesday-mcp, what this is, commands, architecture and session-start check: pending items.
patch-tuesday-mcp CLAUDE.md
Claude Code instructions for jonnybottles/patch-tuesday-mcp, covering claude.md, what this is, commands, architecture and session-start check: pending items.
jakk CLAUDE.md
Claude Code instructions for akar5h/jakk, covering jakk — agent guidance, repo orientation, probe library policy (load-bearing), active project — fastmcp ecosystem audit and engineering conventions.
openrouter-mcp-multimodal AGENTS.md
AGENTS.md instructions for stabgan/openrouter-mcp-multimodal, covering agent instructions, before you ship, releasing (read this before publishing), short version and version files (must all match package.json).