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/udonc/pm-guard/claude-mdgit clone --depth 1 https://github.com/udonc/pm-guardWrote 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/udonc/pm-guard/claude-md)<a href="https://agentmods.dev/instructions/udonc/pm-guard/claude-md"><img src="https://agentmods.dev/badge/instructions/udonc/pm-guard/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.00644 | $0.00644 |
| Opus 5 | $0.00322 | $0.00322 |
| Sonnet 5 | $0.00129 | $0.00129 |
| Haiku 4.5 | $0.00064 | $0.00064 |
Grade A, and why
pm-guard 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 4d 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 — 44 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.
Project Overview
pm-guard is a Claude Code plugin that prevents Claude from using the wrong package manager (npm/yarn/pnpm/bun/deno). It works as a PreToolUse hook that intercepts Bash tool calls and blocks commands using disallowed package managers.
Architecture
This is a Claude Code plugin distributed as a custom marketplace. The repo root is the marketplace; the plugin lives under plugins/pm-guard/:
.claude-plugin/marketplace.json- Marketplace manifest (name, owner, plugin list)plugins/pm-guard/.claude-plugin/plugin.json- Plugin manifest (name, version, metadata)plugins/pm-guard/hooks/hooks.json- Hook registration: bindscheck-pm.shtoPreToolUseevents on theBashtoolplugins/pm-guard/hooks/check-pm.sh- Core logic: a pure bash script that reads tool input JSON from stdin, extracts the command, detects the allowed package manager, and blocks disallowed ones
How check-pm.sh Works
- Parses stdin JSON to extract
tool_input.command(using sed + awk, no jq dependency) - Detects allowed PM with priority:
PM_GUARD_ALLOWEDenv var >package.jsonpackageManagerfield > lockfile detection - Strips quoted content (single and double quotes) to avoid false positives on strings like
grep "npm" package.json. Known trade-off:bash -c "npm install"won't be caught. - Blocks disallowed PMs using word-boundary regex (not preceded by
[a-zA-Z0-9_.-], not followed by[a-zA-Z0-9_./-]) to avoid false positives likepnpm-lock.yaml,.npm/,npm-check - Outputs hook JSON with one of three outcomes:
denydecision with reason (blocked PM detected)systemMessagewarning (PM could not be detected AND command contains a PM keyword)- Clean exit with no output (command allowed, or no PM detected and command has no PM keywords)
Development
# Test the plugin locally
claude --plugin-dir ./plugins/pm-guard
# Run check-pm.sh directly with mock input
echo '{"tool_input":{"command":"npm install foo"}}' | PM_GUARD_ALLOWED=pnpm ./plugins/pm-guard/hooks/check-pm.sh
# Run BATS tests
./scripts/setup-tests.sh
./tests/test_helper/bats-core/bin/bats tests/check-pm.bats
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.
- 4d ago First seen · 44 lines · 644 tokens per session scan A a301dd112cb8
pm-guard CLAUDE.md is an instructions file published in the GitHub repository udonc/pm-guard (3 stars, last pushed 5mo ago), licensed MIT. It adds 644 tokens to every session, about $0.0032 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-31.
Other instructions, from other repositories
claude-skills CLAUDE.md
Claude Code instructions for secondsky/claude-skills, covering claude skills - project context, ⚠️ critical: communication rule — the most important rule, ⚠️ critical: repository policy - never touch jezweb repo, ❌ forbidden actions (jezweb repo) and ✅ required actions (secondsky repo).
claude-skills AGENTS.md
AGENTS.md instructions for secondsky/claude-skills, covering agent instructions, ⚠️ critical: communication rule — the most important rule and full project context.
ccx-context-system CLAUDE.md
Claude Code instructions for shck-dev/ccx-context-system, covering claude.md, what this is, commands, architecture and load-bearing seams.
dot-claude-plugins CLAUDE.md
Instructions for and3r817/dot-claude-plugins, covering claude.md, repository overview, core architecture principles, testing commands and run all test suites (master runner).
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).
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.