hacker-bob: Instructions file for Claude Code

CLAUDE.md

hacker-bob CLAUDE.md is an instructions file for Claude Code from vmihalis/hacker-bob. It costs 1,290 tokens per session, scanned A, original, Apache-2.0.

Repository instructions for installing the Hacker Bob evaluation framework into a project for Claude Code. The installer adds its skills, agents, rules, hooks, tools, and settings while preserving unrelated configuration.

In plain words
What is it for?
Use them when installing Hacker Bob, configuring its session storage, or running the /bob-evaluate command in a target project.
Why use it?
They explain the correct installation process and keep each project’s session data separate, avoiding accidental installation into the wrong workspace or conflicts between projects.

Instructions file for Claude Code

Written for Claude Code: SubagentStop hook event. Also seen: reads .claude/ paths; mentions Claude Code.

This is vmihalis/hacker-bob's own configuration. It tells Claude Code how to work on hacker-bob itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything hacker-bob configures →

Reuse

Borrowing it

Nothing to install: this file belongs to vmihalis/hacker-bob. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/vmihalis/hacker-bob/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/vmihalis/hacker-bob

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 hacker-bob CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/vmihalis/hacker-bob/claude-md/github.svg)](https://agentmods.dev/instructions/vmihalis/hacker-bob/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/vmihalis/hacker-bob/claude-md"><img src="https://agentmods.dev/badge/instructions/vmihalis/hacker-bob/claude-md/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 hacker-bob CLAUDE.md

Your own site · 80×15
<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="Reviewed on agentmods" width="80" height="20"></a>
Per session 1,290 This file is loaded in full into every session.
When invoked 1,290 The same file — it is already loaded in full.
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.01290 $0.01290
Opus 5.5 $0.00516 $0.00516
Sonnet 5.5 $0.00258 $0.00258
Haiku 4.5 $0.00129 $0.00129

Measured 1mo ago against content hash 626139ac2311, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

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 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.

CLAUDE.md · 72 lines

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:

  1. Clone this repo locally.
  2. Run ./install.sh /absolute/path/to/target/project from the cloned repo.
  3. The installer copies the skills, update command shim, agents, rules, hooks, knowledge, bypass tables, MCP runtime, and generated settings. It merges .mcp.json and .claude/settings.json instead of overwriting unrelated config.
  4. After install, run Claude Code from the target project and use /bob-evaluate <target> (slash command) or the bob-evaluate skill.

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:

  1. Use ./dev-sync.sh /absolute/path/to/test-workspace from this repo.
  2. This script backs up the target .mcp.json and .claude/settings.json, runs the installer, recopies repo-backed MCP files including mcp/tools/*.js, re-merges the dev config, and runs claude mcp list unless --no-health-check is supplied.
  3. It is intended for a dedicated local test workspace because it overwrites Bob-owned runtime files after backing up the target MCP/settings files.
  4. After dev-sync.sh, fully restart Claude Code in the test workspace, run /mcp, and smoke test bob_http_scan with target_domain: "example.com" against https://example.com.

Maintainer workflow:

  • Run npm test before handing off changes. Useful focused commands are npm run test:mcp, npm run test:prompts, npm run test:install, and npm run check:syntax.
  • Generated prompt/config surfaces must stay current. Run node scripts/generate-agent-tools.js after role-bundle metadata changes and node scripts/generate-hacker-bob-skill.js after 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-shrinking ALLOWLIST_UNDOCUMENTED backlog), and every entry's enforced_by file: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 (in test: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 SubagentStop validates the final marker and structured handoff but must not advance pending_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.md remains the final human-facing agent-composed (via bob_compose_report) report.
  • Audit-graded session paths are MCP-rendered (Y-P13). mcp/core/io/paths.js exports AUDIT_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 the isAuditGradedPath(absolutePath, target_domain) predicate. Agents never call the Write tool on these paths; structured composition flows through bob_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, and bob_write_wave_handoff. Scratch artifacts (subdomains.txt, attack_surface.json, family_seeds.txt, surface-discovery-tools.txt) are explicitly NOT in AUDIT_GRADED_PATHS and 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_profiles rather than reading secret files directly.

Read the full file on GitHub · 72 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. 1mo ago First seen · 72 lines · 1,290 tokens per session scan A 626139ac2311

Subscribe to this mod's changes

hacker-bob CLAUDE.md is an instructions file published in the GitHub repository vmihalis/hacker-bob (100 stars, last pushed 3d ago), licensed Apache-2.0. It adds 1,290 tokens to every session, about $0.0052 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-30.

Related

Other instructions, from other repositories

vscode buildNext.instructions.md

Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).

microsoft/vscode · 9,715 tokens

next.js AGENTS.md

AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.

vercel/next.js · 7,786 tokens

vscode oss-third-party-notices.instructions.md

Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).

microsoft/vscode · 5,262 tokens

langchain AGENTS.md

AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.

langchain-ai/langchain · 4,680 tokens

vscode copilot-instructions.md

Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).

microsoft/vscode · 2,731 tokens

deno copilot-instructions.md

Copilot instructions for denoland/deno, covering deno development guide for github copilot, network access, high level overview, key directories and key files to understand first.

denoland/deno · 3,077 tokens