security-audit

security-audit is a skill for Claude Code from srnichols/plan-forge. It costs 29 tokens per session (1,388 once invoked), scanned A, original, MIT.

A security audit for .NET and C# projects. It checks for common OWASP web vulnerabilities, vulnerable NuGet packages, exposed secrets, unsafe database queries, and related code problems.

In plain words
What is it for?
Use it to inspect access control, SQL injection risks, authentication protections, XML processing, rate limiting, package vulnerabilities, and secrets in the codebase.
Why use it?
It helps uncover security weaknesses and leaked credentials before they reach users or production systems.

Skill for Claude Code

Written for Claude Code: argument-hint in frontmatter.

Install

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.

agentmods
npx agentmods add skills/srnichols/plan-forge/security-audit
Any agent
npx skills add srnichols/plan-forge --skill security-audit
Clone the repo
git clone --depth 1 https://github.com/srnichols/plan-forge

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-audit

README.md
[![agentmods](https://agentmods.dev/badge/skills/srnichols/plan-forge/security-audit.svg)](https://agentmods.dev/skills/srnichols/plan-forge/security-audit)
Your own site
<a href="https://agentmods.dev/skills/srnichols/plan-forge/security-audit"><img src="https://agentmods.dev/badge/skills/srnichols/plan-forge/security-audit.svg" alt="Measured on agentmods" height="20"></a>
Per session 29 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,388 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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.00029 $0.01388
Opus 5 $0.00015 $0.00694
Sonnet 5 $0.00006 $0.00278
Haiku 4.5 $0.00003 $0.00139

Measured 2d ago against content hash 81c799514bc2, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

security-audit 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 2d 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.

presets/dotnet/.github/skills/security-audit/SKILL.md · 132 lines

How it starts

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

Security Audit Skill (.NET / C#)

Trigger

"Run a security audit" / "Check for vulnerabilities" / "Scan for secrets" / "OWASP check"

Overview

4-phase security audit tailored for .NET projects. See presets/shared/.github/skills/security-audit/SKILL.md for the full report format and secrets detection patterns.


Phase 1: OWASP Vulnerability Scan (.NET Specific)

A1: Broken Access Control

  • Check controllers for missing [Authorize] attribute on sensitive endpoints
  • Check for [AllowAnonymous] on endpoints that should require auth
  • Check for IDOR — direct use of route IDs without ownership validation (User.FindFirst(ClaimTypes.NameIdentifier))

A3: Injection

  • Search for string interpolation in SQL: $"SELECT ... {variable}", string.Format("SELECT", variable), "SELECT " + variable
  • Check for raw SQL via FromSqlRaw() / ExecuteSqlRaw() without parameters (use FromSqlInterpolated() or parameterized)
  • Check for Process.Start() with user input
  • Check for XmlDocument or XslCompiledTransform without disabling DTD processing (XXE)

A4: Insecure Design

  • Check for rate limiting on auth endpoints (use Microsoft.AspNetCore.RateLimiting)
  • Check for account lockout after failed login attempts
  • Check for input validation at controller level ([Required], [StringLength], FluentValidation)

A5: Security Misconfiguration

  • Check CORS for wildcard: AllowAnyOrigin() — should use WithOrigins()
  • Check for app.UseDeveloperExceptionPage() without environment guard
  • Check for missing HTTPS redirection: app.UseHttpsRedirection()
  • Check for exposed Swagger in production

A7: Authentication Failures

  • Check password hashing uses ASP.NET Identity (bcrypt/PBKDF2) not custom hashing
  • Check JWT configuration: ValidateIssuerSigningKey, ValidateLifetime, ValidateAudience
  • Check for [Authorize] before [HttpDelete] and [HttpPut] actions

A8: Software and Data Integrity

  • Check for BinaryFormatter or SoapFormatter deserialization (banned in .NET 8+)
  • Check for System.Reflection with user input
  • Check CSRF protection: [ValidateAntiForgeryToken] on POST/PUT/DELETE (MVC)

Read the full file on GitHub · 132 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. 2d ago First seen · 132 lines · 29 tokens per session scan A 81c799514bc2

Subscribe to this mod's changes

security-audit is a skill published in the GitHub repository srnichols/plan-forge (5 stars, last pushed 3d ago), licensed MIT. It adds 29 tokens to every session and 1,388 once invoked, about $0.0001 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-09-03.

Related

Other skills, from other repositories

sdd-apply

Skill "sdd-apply" from Gentleman-Programming/gentle-ai, covering execution role, language domain contract, purpose, what you receive and execution and persistence contract.

Gentleman-Programming/gentle-ai · 0 tokens

ring:migrating-to-lib-observability

Migrating a Lerian Go app off lib-commons observability imports (deprecated shims or removed APIs) to lib-observability via a fixed mapping table, then bumps go.mod and validates the build; ring:backend-go applies the edits. Covers log/zap/runtime/assert, opentelemetry/tracing, HTTP middleware, context helpers, and…

LerianStudio/ring · 104 tokens

ring:using-lib-streaming

Using lib-streaming, Lerian's producer-only event publication library (Kafka/SQS/RabbitMQ/EventBridge), in two modes. Sweep Mode detects DIY publishers (franz-go, sarama, amqp091, watermill, raw AWS SDK) and re-rolled manifests/breakers. Reference Mode catalogs the Builder/Emitter/Catalog facade. Companion to…

LerianStudio/ring · 99 tokens

ring:using-lib-systemplane

Using lib-systemplane, the hot-reload runtime-config plane (Postgres LISTEN/NOTIFY or MongoDB change streams), in two modes. Sweep Mode detects DIY config reload (SIGHUP, fsnotify, viper, pgx LISTEN), manual tenant-scoping, hand-built admin CRUD, and v4 residue. Reference Mode catalogs client lifecycle and…

LerianStudio/ring · 106 tokens

ring:using-lib-observability

Using lib-observability v1.1.0, Lerian's OpenTelemetry foundation (lib-commons, lib-systemplane, lib-streaming depend on it), in two modes. Sweep Mode detects DIY zap/slog logging, raw OTel metrics, hand-rolled redaction, and hard-coded attribute strings. Reference Mode catalogs the log, metrics, zap, redaction, and…

LerianStudio/ring · 102 tokens

ring:using-outbox

Using the transactional-outbox pattern across lib-streaming (writer) and lib-commons/v5/commons/outbox (repository + relay), in two modes. Sweep Mode detects DIY outbox tables, hand-rolled relay loops, send-and-pray emits, missing WithOutboxTx wrapping, and broker calls inside DB transactions. Reference Mode catalogs…

LerianStudio/ring · 98 tokens