node9-proxy: Instructions file for Claude Code

CLAUDE.md

node9-proxy CLAUDE.md is an instructions file for Claude Code from node9-ai/node9-proxy. It costs 858 tokens per session, scanned A, original, Apache-2.0.

Project instructions for Claude Code when working on node9-proxy, including its architecture, coding rules, tests, and checklist required before each commit.

In plain words
What is it for?
Use them when asking Claude Code to develop, test, review, or commit changes in node9-ai/node9-proxy.
Why use it?
They define the project’s development process and checks, reducing the chance of changes that fail its tests or review requirements.

Instructions file for Claude Code

Written for Claude Code: PostToolUse hook event. Also seen: mentions Claude Code.

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

Reuse

Borrowing it

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

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 node9-proxy CLAUDE.md

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

Your own site · 80×15
<a href="https://agentmods.dev/instructions/node9-ai/node9-proxy/claude-md"><img src="https://agentmods.dev/badge/instructions/node9-ai/node9-proxy/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 858 This file is loaded in full into every session.
When invoked 858 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.00858 $0.00858
Opus 5.5 $0.00343 $0.00343
Sonnet 5.5 $0.00172 $0.00172
Haiku 4.5 $0.00086 $0.00086

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

Security

Grade A, and why

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

Runs shell commandslowCapability

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

Use `spawnSync` against `dist/cli.js` (see `src/__tests__/check.integration.test.ts` for the pattern).
CLAUDE.md · 61 lines

How it starts

The opening of the file, as written. The whole thing — 61 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Node9 Proxy — Claude Code Rules

PR Checklist (required before every commit)

Before committing or opening a PR, verify all of the following:

  • New behavior has a test that fails without the change
  • npm test passes (455+ tests)
  • npm run typecheck passes
  • npm run lint passes (catches require() imports, unused vars, etc.)
  • npm run format:check passes (run npm run format to fix)
  • No console.log in hook or proxy code paths — use console.error (stdout must stay clean for JSON-RPC / MCP)
  • Review your own diff before committing — run git diff and check for logical correctness issues that automated checks miss: missing return after res.end(), silent catch {} blocks swallowing errors, double event-listener registration, fall-through in route handlers

Test Rules

Every bug fix must ship with a regression test. Write the failing test first, then fix the code. This proves you understood the bug and prevents silent regressions.

Integration tests are required for:

  • Any command that runs as a subprocess (check, log, proxy)
  • Anything that touches stdout/stderr (protocol correctness)
  • Any file write (audit.log, hook-debug.log, snapshot)
  • Any behavior that depends on cwd or HOME

Use spawnSync against dist/cli.js (see src/__tests__/check.integration.test.ts for the pattern). Always assert result.error and result.status — a silent spawn failure must not pass tests.

Unit tests with mocked fs/getConfig are not sufficient for hook commands or the proxy. They cannot catch protocol bugs, filesystem path bugs, or exit code bugs.

Code Rules

Audit writes must happen before config loads. In hook commands, fs.appendFileSync(auditLog, ...) must come before any getConfig() call. A config failure must never silently skip the audit entry.

Validate external path inputs before filesystem use. Any cwd, file_path, or similar value from hook payloads must be validated (path.isAbsolute()) before being passed to getConfig(), path.join(), or fs calls. Use payload.cwd || undefined for empty-string guard, then path.isAbsolute() for traversal guard.

Read the full file on GitHub · 61 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 · 61 lines · 858 tokens per session scan A 711a41fe6267

Subscribe to this mod's changes

node9-proxy CLAUDE.md is an instructions file published in the GitHub repository node9-ai/node9-proxy (221 stars, last pushed 2d ago), licensed Apache-2.0. It adds 858 tokens to every session, about $0.0034 per session on Opus 5.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