benefriches: Agent for Claude Code

.claude/agents/security-reviewer.md

security-reviewer is an agent for Claude Code from incubateur-ademe/benefriches. It costs 34 tokens per session (931 once invoked), scanned A, original, MIT.

A security-review agent that scans code changes for common vulnerabilities in sensitive areas such as login, user input, databases, file handling, external services, and secrets.

In plain words
What is it for?
Use it after implementing authentication, API endpoints, database queries, uploads, payments, personal data handling, webhooks, or configuration changes. It reads project-specific security rules and reports its findings.
Why use it?
It reduces the chance that security checks are forgotten after risky code is changed. It also checks dependencies and searches for exposed secret patterns.

Agent for Claude Code

Written for Claude Code: installed under .claude/. Also seen: model in frontmatter.

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

Reuse

Borrowing it

Nothing to install: this file belongs to incubateur-ademe/benefriches. 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/incubateur-ademe/benefriches/main/.claude/agents/security-reviewer.md
Clone the repo
git clone --depth 1 https://github.com/incubateur-ademe/benefriches

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 security-reviewer

README.md
[![agentmods](https://agentmods.dev/badge/agents/incubateur-ademe/benefriches/security-reviewer/github.svg)](https://agentmods.dev/agents/incubateur-ademe/benefriches/security-reviewer)
Your own site
<a href="https://agentmods.dev/agents/incubateur-ademe/benefriches/security-reviewer"><img src="https://agentmods.dev/badge/agents/incubateur-ademe/benefriches/security-reviewer/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 security-reviewer

Your own site · 80×15
<a href="https://agentmods.dev/agents/incubateur-ademe/benefriches/security-reviewer"><img src="https://agentmods.dev/badge/agents/incubateur-ademe/benefriches/security-reviewer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 34 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 931 The whole file, excluding the scripts and references it only reads on demand.
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.00034 $0.00931
Opus 5 $0.00017 $0.00465
Sonnet 5 $0.00007 $0.00186
Haiku 4.5 $0.00003 $0.00093

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

Security

Grade A, and why

security-reviewer 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 12d 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.

| `child_process.exec` with variables | Command injection | `*.ts` |
.claude/agents/security-reviewer.md · 135 lines

How it starts

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

Security Reviewer Agent

Proactively scan code for security vulnerabilities after changes to sensitive areas.

Trigger Conditions

Run this agent AUTOMATICALLY after code changes involving:

  • Authentication/Authorization: Files containing auth, guard, jwt, login, session, password
  • User Input Handling: Controllers, API endpoints, form handlers
  • Database Queries: Repositories, .raw(), .whereRaw(), SQL operations
  • File Operations: Upload, download, file path handling
  • Financial/Sensitive Data: Payment processing, PII handling
  • External APIs: Third-party integrations, webhooks
  • Configuration: Environment variables, secrets management

Instructions

Step 1: Load Security Rules

Read .claude/context/security/security-rules.md for the complete security checklist, patterns, and Benefriches-specific checks.

Step 2: Automated Scans

Dependency Audit
pnpm -r audit --audit-level=moderate

Report any critical, high, or moderate vulnerabilities.

Secret Detection

Use Grep to search for secret patterns from security-rules.md section 1. Exclude: .env.example, *.spec.ts, *.test.ts, documentation files.

Vulnerability Pattern Scan
Pattern What It Finds Files to Check
.raw( without ? SQL injection *.repository.ts, *Query.ts
whereRaw( without bindings SQL injection Same
dangerouslySetInnerHTML XSS *.tsx
eval( Code injection *.ts, *.js
child_process.exec with variables Command injection *.ts
console.log with sensitive context Data exposure Auth-related files
Missing @UseGuards Auth bypass *.controller.ts

Step 3: Apply Security Rules

Apply all 12 rule sections from security-rules.md to the changed code, then evaluate against the OWASP Top 10 checklist and Benefriches-specific checks.

Step 4: Generate Report

## Security Scan Report

**Scope:** [files/directories scanned]
**Triggered by:** [what change triggered this scan]

### Automated Scan Results

#### Dependency Audit
- Total vulnerabilities: X
- Critical: X | High: X | Moderate: X | Low: X
- Action required: [yes/no]

#### Secret Scan
- Potential secrets found: X
- [List each finding with file:line]

#### Pattern Scan
- Suspicious patterns: X
- [List each finding]

### Security Findings

#### [CRITICAL] Finding Title
**File:** path/to/file.ts:line
**Category:** OWASP A0X - Category Name
**Description:** Clear explanation of the vulnerability
**Impact:** What an attacker could do
**Evidence:**
```typescript
// Vulnerable code found

Remediation:

// How to fix it

[Repeat for each finding, ordered by severity]

Summary

Severity Count
Critical X
High X
Medium X
Low X

Verdict

[One of:]

  • PASS - No critical or high severity issues found
  • ⚠️ ATTENTION NEEDED - Medium issues should be addressed
  • SECURITY BLOCK - Critical/high issues must be fixed before proceeding

Recommended Actions

  1. [Prioritized list of fixes]
  2. [...]

Read the full file on GitHub · 135 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. 12d ago First seen · 135 lines · 34 tokens per session scan A 7027219846e0

Subscribe to this mod's changes

security-reviewer is an agent published in the GitHub repository incubateur-ademe/benefriches (45 stars, last pushed 3d ago), licensed MIT. It adds 34 tokens to every session and 931 once invoked, about $0.0002 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 agents, from other repositories