CC Safety Net is a pre-execution guard that analyzes coding-agent tool calls and blocks destructive commands or attempts to access sensitive files. It is for people using supported coding-agent command-line tools on Windows, macOS, or Linux. The catalogue entries provide its safety rules, instructions, hook, and plugin.
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 skills add kenryu42/cc-safety-net --skill ccsn-no-commentsgit clone --depth 1 https://github.com/kenryu42/cc-safety-netWrote 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/skills/kenryu42/cc-safety-net/ccsn-no-comments)<a href="https://agentmods.dev/skills/kenryu42/cc-safety-net/ccsn-no-comments"><img src="https://agentmods.dev/badge/skills/kenryu42/cc-safety-net/ccsn-no-comments/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/skills/kenryu42/cc-safety-net/ccsn-no-comments"><img src="https://agentmods.dev/badge/skills/kenryu42/cc-safety-net/ccsn-no-comments.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.00077 | $0.00856 |
| Opus 5.5 | $0.00031 | $0.00342 |
| Sonnet 5.5 | $0.00015 | $0.00171 |
| Haiku 4.5 | $0.00008 | $0.00086 |
Grade A, and why
ccsn-no-comments 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 26d 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 — 40 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Fixing CC Safety Net Comment Failures
bun run lint:comments, part of bun run check and CI, rejects code comments. The lazy fix, deleting the comment, loses what it said. For each reported comment, decide which kind it is and move what it says to where that kind belongs. The Comments and Style Guide sections of AGENTS.md govern.
Each Reported Comment
- Narration that restates the code, and commented-out code: delete it. The code already says the first, and git keeps the second.
- An explanation of surprising behavior in this repo's own code: make the code say it with a clearer name, a named value or local boolean, or a type, then delete the comment. The Style Guide forbids a single-use helper function just to carry a name; name a value or condition inside the function instead, which the Style Guide allows even when it is used once.
- A claimed constraint ("do not remove", "IMPORTANT", "must", a justification for a workaround): leave the code's behavior as it is, and check the claim before trusting it. Read
git blame -L <start>,<end> <file>and the commit it points to, rungit log -p -S '<distinctive fragment>' -- <file>, and searchtests/for a test that pins it. A constraint you confirm gets a test or a type when that is cheap: remove the workaround, see the new test or type check fail, then restore it. Otherwise, or when you cannot confirm or rule it out, state the claim and what you found in the PR description. The comment goes either way. - A fact about an external tool (git, POSIX shell, the OS, Bun, Node, a host agent) that code cannot express: remove it from the code, and put the fact and its source (documentation link, version, or commit) in the PR description. Only the maintainer adds entries to
scripts/comment-allowlist.json; never add one or change its text.
Allowed Directives
The check accepts exactly three comments without an allowlist entry:
- a bare
/** @internal */with nothing else in it, for a test-only export (see the Knip section ofAGENTS.md); // oxlint-disable-next-line <rules> -- <reason>, with comma-separated rule names and a non-empty reason;// @ts-expect-error <reason>, with a non-empty reason.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 26d ago First seen · 40 lines · 77 tokens per session scan A 69bc3bd1ace7
ccsn-no-comments is a skill published in the GitHub repository kenryu42/cc-safety-net (1,775 stars, last pushed today), licensed MIT. It adds 77 tokens to every session and 856 once invoked, about $0.0003 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-09-29.
Other skills, from other repositories
design-thinking
Design Thinking: the code method. X → Graph → Effect , the §1-§10 pipeline: shapes, happy path (A), cardinality, break points (E: ⟳ ↯ ☠), requirements (R), boundaries, behavior layers, scope, test layers, code. Stack-agnostic. Use when planning, designing, reviewing, or refactoring code. Output format lives in…
ts-review
Review TypeScript code for quality, security, and correctness. Use this skill when the user asks for a code review, wants feedback on a PR or diff, or says "review this". Covers architecture, security, error handling, database patterns, type safety, and code quality. Produces categorized findings: critical issues…
review
5-pass structured code review — correctness, security, performance, readability, consistency.
brooks-sweep
Full-sweep mode: runs a unified analysis across all quality dimensions — code decay, architecture, tech debt, and test quality — then applies fixes directly to the codebase. Safe changes are auto-applied; risky changes are confirmed before execution. Drawing on twelve classic engineering books. Triggers when: user…
pr-review
Comprehensive PR review across six dimensions — cost impact, environment drift, ownership gaps, SOC 2 compliance, deprecated API / version hygiene, and rollback feasibility. Each mode inspects the diff and current file state, reports findings with severity, and recommends concrete fixes. Use when preparing a PR for…
genshijin-review
A compact pull-request review format that writes one actionable finding per line in Japanese or English.