Borrowing it
Nothing to install: this file belongs to nkhitrov/arch-blueprint. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/nkhitrov/arch-blueprint/master/CLAUDE.mdgit clone --depth 1 https://github.com/nkhitrov/arch-blueprintWrote 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/nkhitrov/arch-blueprint/claude-md)<a href="https://agentmods.dev/instructions/nkhitrov/arch-blueprint/claude-md"><img src="https://agentmods.dev/badge/instructions/nkhitrov/arch-blueprint/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.
<a href="https://agentmods.dev/instructions/nkhitrov/arch-blueprint/claude-md"><img src="https://agentmods.dev/badge/instructions/nkhitrov/arch-blueprint/claude-md.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.12803 | $0.12803 |
| Opus 5.5 | $0.05121 | $0.05121 |
| Sonnet 5.5 | $0.02561 | $0.02561 |
| Haiku 4.5 | $0.01280 | $0.01280 |
Grade A, and why
arch-blueprint 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 18d 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 — 619 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Overview
arch-blueprint is a CLI that generates architecture diagrams (PlantUML or D2) from a Python
project's module import graph. It is built on top of grimp,
which constructs the import graph.
Commands
This project uses uv for environment and dependency management.
- Install/sync deps:
uv sync(CI usesuv sync --locked) - Run all checks (what CI runs):
uv run pre-commit run -a(lint, format, mypy, pytest) - Run the test suite only:
uv run pytest - Format:
uv run ruff format - Lint (with autofix):
uv run ruff check --fix src tests - Type-check (strict mypy):
uv run mypy ./src ./tests - Run the CLI against a project:
uv run arch-blueprint draw <project_dir> [-m '<pattern>'] [-f FMT] [-o FILE]- Example:
uv run arch-blueprint draw src -m 'arch_blueprint.*' - Every command is explicit (
draw,diff,history,serve). The old implicit formarch-blueprint <dir> -m ...and the oldrender SNAPSHOTare gone; each gets an exit-2 hint naming thedrawcommand to run instead.drawtakes a project directory or a snapshot file (an existing file, or any*.json). - Without
-m,drawanddiff --basedraw every package in<project_dir>whole (extract/layout.py:detect_roots→pkg.**, noted on stderr);historywithout ROOTs does the same at--head. A src-layout root (src/a namespace dir holding packages) is refused with a hint rather than drawn assrc.myapp. -o FILEwrites to a file; without-fits extension picks the format (.puml,.d2,.json,.png→puml-png).-f puml-png/d2-pngdraw an image through theIMAGE_RENDERERStool and require-o.- Graphing this project is a special case:
arch_blueprintis already insys.modules(the CLI is it), sofind_specresolves to the running copy whatever<project_dir>says. To graph a different checkout, put it first onPYTHONPATHso that copy is the one running. --modules/-maccepts grimp glob patterns (pkg.*,pkg.**,pkg.*.*.models.*).-mcan be repeated to graph several top-level packages at once and draw the links between them — useful when<project_dir>is a root with no__init__.pycontaining sibling packages (e.g.-m 'app1.*' -m 'app2.*'). A cross-package link is drawn only when both endpoints belong to the selected set — which includes a dependency on a package whose children were selected, sincepkg.*never selectspkgitself.--format/-fdefaults topuml. The notes listing a cycle's imports are opt-in in every command (--cycle-details), for a pair and a longer cycle alike.diffandhistorydraw the diff over the whole graph;--changes-onlydraws just the changes and the modules they touch.--links namespace|module(defaultnamespace) chooses what an arrow connects: the namespaces where two modules' paths diverge, or the nodes themselves. Accepted by every command that builds a graph (draw PROJECT_DIR,diff --base,history), not bydraw SNAPSHOTor a snapshot-filediff(_reject_links) — a snapshot records the level it was built at. Even an explicit--links namespaceis rejected there (the parser default isNone, resolved by_link_level), and a diff of two snapshots of different levels is exit 2. A level also says how it is drawn (Level.nested→RendererOptions.nested), laid out byrenderer/layout.py(see Frames and labels below):namespaceand the-groupedlevels are nested — every dotted prefix a frame, a chain of frames that hold nothing but one frame merged into one labelled by the joined path (app.features.core.executory_processes).moduleandclassare flat — every node one box labelled by its dotted name less the prefix all drawn names share, which is shown once as the diagram title; every endpoint no node carries (a facade an arrow ends on) is declared as a node of its own. Containers only lengthen node-to-node arrows.--links class|class-groupedmake the nodes definitions, not modules: the top-level classes and module-level functions of every selected module, always together — a class that calls a function using another class depends on it through that function, drawn as two arrows. Arrows are always definition to definition, wherever a definition's code names another — bases, metaclass, decorators, class-level annotations,__init__, signatures, defaults and bodies (string annotations included).classis flat;class-groupedis nested (Level.nested), so every node sits in its module's frame. One edge per definition pair, soedge_weightis always 1 there.-m 'pkg.**'also takes the definitions ofpkg/__init__.py(GrimpSource.pattern_stems). These levels parse every module's source with libcst — about ten times slower than the module levels. Example:uv run arch-blueprint draw tests/fixtures/classes -m 'refs.**' --links class-grouped.--deps out|in(extract/focus.py:DEPS_DIRECTIONS, routed byfollows_out/follows_in) makes-mthe focus and also draws every object the focus directly depends on (out) or that directly depends on it (in), wherever in<project_dir>it lives, as a neighbor (BlueprintGraph.neighbors): muted and dashed (NEIGHBOR_COLOR,_format_neighbor), no metric blocks, labelled by its full name when flat (the flat prefix is the focus's; a facade endpoint no focused node lies under is a neighbor too —Layout.neighbors). The direction only picks the neighbors: every edge between the focus and a neighbor is drawn, either way, so a cycle through one is never half hidden; a neighbor's imports / references of anything but the focus are never read (no neighbor → neighbor edge), and stdlib / third-party code is never a node. Accepted where--linksis (_reject_depson snapshots);--metricwith it is exit 2 (_check_deps, also for a snapshot built with it) — a neighbor's own imports are not read, so its numbers would lie; a--depssnapshot / history cache entry computes only the compute-only metrics (_undrawn_metrics). Example:uv run arch-blueprint draw tests/fixtures/focus_deps -m 'app.features.core.executory_processes.**' --deps out --links class.--metric NAME(repeatable) displays a metric. A node metric (fan_in,fan_out,instability) renders as a block on each node; a link metric (edge_weight) renders as a label on each connection, including cyclic ones (asforward/backward). An unknown name is an error, not a silent no-op.diffandhistorytake it too: a changed value readsold → new (±d).
- Example:
- Snapshot / draw a snapshot / diff (see Snapshot and diff below):
uv run arch-blueprint draw <project_dir> -m '<pattern>' -o graph.json— graph snapshot.uv run arch-blueprint draw graph.json [-f FMT] [-o FILE] [--metric NAME]— draw a snapshot.uv run arch-blueprint diff OLD.json NEW.json [-f FMT] [-o FILE] [--metric NAME]— draw what changed.uv run arch-blueprint diff --base REV [--head REV] <project_dir> [-m '<pattern>']— both sides built from git (--headdefaults to the working tree).uv run arch-blueprint history <project_dir> [ROOT ...] [-m '<pattern>'] [--base REV] [--head REV] [-o DIR] [-f puml|d2|puml-png|d2-png]— an album: a diagram and a diff per commit that changed the graph (see History album below).
- Interactive viewer (see Viewer below):
uv run arch-blueprint serve <project_dir> [-m '<pattern>'] [--links module|class] [--port N] [--no-open]— a local page (127.0.0.1) to fold / unfold packages, focus a node, list an arrow's imports; the view state lives in the URL. - Runnable example fixture:
uv run arch-blueprint draw examples/project_root -m 'app1.*' -m 'app2.*' -m 'plugins.**'(seeexamples/README.md) — exercises multi-root cross-links and namespace-package handling.
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.
- 18d ago Changed · +36 lines · +798 tokens per session 78b37bd18128
- 19d ago Changed · +45 lines · +1,116 tokens per session ceb1a43e01db
- 1mo ago Changed · +178 lines · +4,062 tokens per session 2fc9e25363db
- 1mo ago Changed · +48 lines · +1,138 tokens per session 01b3bf8b985f
- 1mo ago Changed · +121 lines · +2,557 tokens per session c35283baec9c
- 2mo ago First seen · 191 lines · 3,132 tokens per session scan A 0bbc6858884c
arch-blueprint CLAUDE.md is an instructions file published in the GitHub repository nkhitrov/arch-blueprint (66 stars, last pushed 18d ago), licensed MIT. It adds 12,803 tokens to every session, about $0.0512 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.
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).
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.
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).
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.
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).
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.