ironcurtain: Instructions file for Claude Code

CLAUDE.md

ironcurtain CLAUDE.md is an instructions file for Claude Code from provos/ironcurtain. It costs 5,773 tokens per session, scanned A, original, Apache-2.0.

A guide for coding in IronCurtain, including its general workflow, Git worktrees, commits, cross-platform support, and safe handling of operating-system commands. A worktree is a separate working directory connected to the same Git project.

In plain words
What is it for?
Use it when locating files, making or reviewing changes, working with Git, supporting macOS, Linux, or WSL2, and running external programs safely.
Why use it?
It reduces mistakes such as editing the wrong worktree, omitting files from a commit, breaking another operating system, or building unsafe command strings from untrusted input.

Instructions file for Claude Code

Written for Claude Code: the file is CLAUDE.md. Also seen: reads .claude/ paths; mentions CLAUDE.md; positional $N argument.

This is provos/ironcurtain's own configuration. It tells Claude Code how to work on ironcurtain 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 ironcurtain configures →

Reuse

Borrowing it

Nothing to install: this file belongs to provos/ironcurtain. 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/provos/ironcurtain/master/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/provos/ironcurtain

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 ironcurtain CLAUDE.md

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

Your own site · 80×15
<a href="https://agentmods.dev/instructions/provos/ironcurtain/claude-md"><img src="https://agentmods.dev/badge/instructions/provos/ironcurtain/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 5,773 This file is loaded in full into every session.
When invoked 5,773 The same file — it is already loaded in full.
Security scan A 1 finding. 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.05773 $0.05773
Opus 5 $0.02887 $0.02887
Sonnet 5 $0.01155 $0.01155
Haiku 4.5 $0.00577 $0.00577

Measured 9d ago against content hash 9e1377bc398d, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

ironcurtain CLAUDE.md scanned grade A with 1 finding 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 9d 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.

Runs shell commandslowCapability

Expected in a hook, worth knowing in a rule or an instructions file.

- **No shell string concatenation.** Never use `child_process.exec()` or build command strings by concatenating/interpolating untrusted values. Always use `spawn()`/`execFile()` with argument arrays so the OS handles esc
CLAUDE.md · 184 lines

How it starts

The opening of the file, as written. The whole thing — 184 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.

General Workflow

When asked to find a file or document, ask the user for the path after one failed search attempt rather than spending many tool calls searching.

Git & Worktrees

When working with git worktrees, always verify the current working directory before making changes. Run pwd and confirm the target worktree path before any edits.

Git Workflow

Always stage and verify all relevant files before committing. Run git status before git commit to confirm nothing is missing.

Platform Considerations

When fixing bugs or implementing features for cross-platform code (macOS/Linux/Docker), ensure changes are scoped to the correct platform and do not break other platforms. Always ask if unsure.

Safe Coding

  • No shell string concatenation. Never use child_process.exec() or build command strings by concatenating/interpolating untrusted values. Always use spawn()/execFile() with argument arrays so the OS handles escaping. Untrusted values must only appear in the args array, never in the command string itself.
  • Encapsulate risky operations. Security-critical operations (path resolution, credential handling, Docker command construction) must live in dedicated modules with safe public APIs. Application code should call the safe abstraction, not reimplement the logic inline.

Project Overview

IronCurtain is a secure agent runtime that mediates between an AI agent and MCP (Model Context Protocol) servers. Every tool call from the agent passes through a trusted process that evaluates it against policy rules (allow/deny/escalate) before routing to the real MCP server. This is a proof-of-concept implementation.

Commands

Development invocation. When running the CLI from source (without an installed ironcurtain binary or after editing TS files without rebuilding), use tsx src/cli.ts <subcommand> ... — this runs the TypeScript entry point directly. Do NOT use node dist/cli.js after editing source unless you've rebuilt; do NOT use tsx src/index.ts (that's a different entry that spawns the agent). Examples: tsx src/cli.ts workflow lint <path>, tsx src/cli.ts workflow list.

Read the full file on GitHub · 184 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. 9d ago First seen · 184 lines · 5,773 tokens per session scan A 9e1377bc398d

Subscribe to this mod's changes

ironcurtain CLAUDE.md is an instructions file published in the GitHub repository provos/ironcurtain (602 stars, last pushed 3d ago), licensed Apache-2.0. It adds 5,773 tokens to every session, about $0.0289 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). 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

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,296 tokens

codex AGENTS.md

AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.

openai/codex · 5,153 tokens

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 · 6,785 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, applying the notice (cutover) and fallback chain (never fail the build).

microsoft/vscode · 5,001 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,469 tokens

spec-kit AGENTS.md

AGENTS.md instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.

github/spec-kit · 7,104 tokens