security-audit
Run a stateful red team / blue team security audit on the current project or a specific module.
Skill by fullymiddleaged
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/fullymiddleaged-security-audit
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: data, ml, security, finance
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/security-audit
What's inside
- Skill name
security-audit- Description
- Run a stateful red team / blue team security audit on the current project or a specific module. First enumerates the attack surface deterministically with `clawness scan` (zero LLM tokens, identical every run) and accumulates verdicts in a findings ledger, so each pass adjudicates only what is NEW instead of re-scanning blind — turning a 5-10 run scan into 1-2 converging passes. Reach for this whenever the user asks for a security audit, a vulnerability scan, a code security review, or hardening — before deployment, after adding auth/ payment/user-data code, or on a schedule — even if they don't type the command.
- License
- MIT
- Instructions
- 104 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Security Audit Workflow
A stateful adversarial audit. Discovery is deterministic (`clawness scan`),
judgment accumulates in a ledger (`.clawness/security/findings.json`), so runs
**converge** instead of repeating.
> **Before spawning agents:** the red/blue-team pass launches several adversarial
> sub-agents and is token-intensive. If you surfaced this proactively (the user
> mentioned security but didn't explicitly ask to run it), first ask: "Want me to
> run the full red team / blue team audit now?" and proceed only once they
> confirm. Running `clawness scan` itself is cheap and deterministic — you may run
> that first to show the surface, then ask before fanning out agents. If the user
> explicitly invoked `/clawness:security-audit` or already said yes, skip the question.
The CLI isn't on PATH. Reach it through the bundled launcher, falling back to the wrapper the SessionStart bootstrap stashes on older Claude Code:
```bash
CLAW="${CLAUDE_PLUGIN_ROOT}/scripts/clawness-cli.sh"
[ -f "$CLAW" ] || CLAW="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/clawness/clawness-cli.sh"
bash "$CLAW" scan --project . # enumerate + accumulate the ledger
bash "$CLAW" scan status --project . # show coverage without re-scanning
```
If neither path exists (an older Claude Code before the bootstrap has run), start a fresh session.
## Steps
1. **Enumerate (deterministic, free)** — Run `bash "$CLAW" scan --project <scope>`.
This lists sink/source candidates (SQL/command injection, unsafe deserialization,
XSS, path traversal, broken authz, hardcoded secrets, weak crypto, SSRF), each
with a CWE, a mapped rule id, and a stable id, and merges them into the ledger.
Note the **coverage line** it prints. Use `--new-only` to see just what hasn't
been adjudicated yet, `--class <name>` to focus one category.
**SAST pass (when a scanner is installed).** Check which of these are on PATH
(`command -v`) and run each one present, writing SARIF into one directory, then
re-run the scan with `--sarif` so the results merge into the same ledger, dedup
against the native candidates, and get adjudicated in step 3 like everything else:
```bash
OUT=.clawness/security/sast; mkdir -p "$OUT"
semgrep scan --config p/default --metrics=off --sarif-output="$OUT/semgrep.sarif" .
bandit -r . -f sarif -o "$OUT/bandit.sarif" # Python
gitleaks dir . --report-format sarif --report-path "$OUT/gitleaks.sarif"
trivy fs --format sarif --output "$OUT/trivy.sarif" . # dependencies, IaC
bash "$CLAW" scan --project . --sarif "$OUT"
```
- **Never install a scanner, and never pick a ruleset that phones home, without
asking.** Semgrep's `--config auto` sends the project URL to Semgrep's registry,
which is why it isn't used above. If the user supplied their own Semgrep rules or
CodeQL queries (common for researchers), run those instead. For CodeQL, build the
database, then `codeql database analyze <db> --format=sarif-latest
--output="$OUT/codeql.sarif"`.
- If no scanner is installed, say which ones would add coverage for this stack
and carry on with the native scan. Don't stall.
- `.clawness/` is gitignored and skipped by auto-detection, so this SARIF never
gets committed by accident (it maps where the vulnerabilities are). `--sarif`
is what folds it in. If the project also commits `*.sarif` elsewhere, run
`scan` once without `--sarif` to pick those up as well.
- Tools that don't emit SARIF (TruffleHog's JSON, or a third-party skill's
markdown report, such as secureIO's `security-scan`) can't enter the ledger.
Read them as leads for the red team, not as adjudicated findings.
2. **Scope** — If the user named a module or directory, pass it as `--project` and
focus there. Otherwise let the scan cover the tree and prioritise the
security-sensitive candidates (auth, authorization, data validation, endpoints,
queries, secret handling).
3. **Red Team — adjudicate only what's NEW.** Delegate to the `security-red-team`
sub-agent, handing it the candidates whose ledger status is `new` (from
`scan --new-only`): "Adjudicate these enumerated candidates. For each, decide
confirmed / false-positive and give the attack path and file:line. Check for
current-month CVEs affecting our stack. Also look for classes the enumerator
can't see (logic flaws, auth bypass, IDOR beyond the heuristic). Do NOT
re-litigate items already marked confirmed/false-positive/fixed." Have it write
each verdict back to the ledger.
4. **Blue Team** — Hand the confirmed findings to the `security-blue-team`
sub-agent: "Triage these confirmed findings, propose the exact code fix for
each, add hardening, and search for current mitigations for any CVEs. Mark items
`fixed` in the ledger once patched." It also reviews the red team's calls for
false positives.
5. **Synthesize + report coverage** — Merge both reports into one action plan:
- Critical (fix before deploy) / Important (this sprint) / Improvements (backlog)
- Overall posture assessment
- The **coverage number** from `scan status`: adjudicated vs outstanding, and
whether it has **converged** (nothing outstanding). Tell the user when
coverage has converged so they know they can stop — that convergence, not a
fixed number of re-runs, is the signal.
## Honest framing (state this, don't oversell)
`clawness scan` is a **regex/heuristic tripwire, not a SAST engine** (CodeQL/
Semgrep). It makes discovery reproducible and routes attention; it will miss
cross-file taint and obfuscation, and it over-reports. Say whether a real SAST pass
ran: without one, the report rests on the tripwire alone. The value is that
adjudicating a fixed short list is far more stable than open-ended discovery, and
the ledger means a verdict is recorded once, not re-derived every run.
If $ARGUMENTS is provided, scope the audit to that path or module.From fullymiddleaged/Clawness, MIT.
More from fullymiddleaged/Clawness
- 0.619score
audit-rules
fullymiddleaged
Review one domain of the Clawness rule corpus for correctness against current official documentation, then record what was established as a version stamp…
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
bootstrap
fullymiddleaged
Author a starter set of Clawness rules for a project whose stack Clawness ships no corpus for (Ruby, PHP, Elixir, Haskell, C#, Swift, Dart, Scala, Clojure…
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
claude-md
fullymiddleaged
Shrink an oversized CLAUDE.md.
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
eval-set
fullymiddleaged
Build and run a project-specific retrieval eval so changes to your rules or base prompt are scored, not eyeballed.
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
messaging
fullymiddleaged
Write or rewrite the product's customer-facing copy — landing page, hero section, CTAs, onboarding, empty states, pricing, app-store and marketing pages —…
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
openclaw-audit
fullymiddleaged
Trim an OpenClaw workspace's base system prompt.
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
refresh
fullymiddleaged
Bring this project's Clawness rules up to date with the framework version it actually runs.
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
user-docs
fullymiddleaged
Write user documentation for a project by scanning its codebase — its UI screens and its public API/CLI — inferring what someone can actually do with it, and…
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
status
fullymiddleaged
Show the current Clawness configuration: which rules are loaded, which agents are available, and how the hook is configured.
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
add
fullymiddleaged
Create a new Clawness rule from a natural language description.
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
perf
fullymiddleaged
Run a performance audit on the project or a specific module.
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
review
fullymiddleaged
Run an adversarial code review on staged changes or a specific file.
SkillAFreshness: A★ 5Claude Code +9
Signals
- Stars
- 5
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 4, 2026 (24 days ago)
- Last release
- Oct 4, 2026 (24 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/fullymiddleaged/Clawness
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from fullymiddleaged
- 0.619score
bootstrap
fullymiddleaged
Author a starter set of Clawness rules for a project whose stack Clawness ships no corpus for (Ruby, PHP, Elixir, Haskell, C#, Swift, Dart, Scala, Clojure…
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
claude-md
fullymiddleaged
Shrink an oversized CLAUDE.md.
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
eval-set
fullymiddleaged
Build and run a project-specific retrieval eval so changes to your rules or base prompt are scored, not eyeballed.
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
messaging
fullymiddleaged
Write or rewrite the product's customer-facing copy — landing page, hero section, CTAs, onboarding, empty states, pricing, app-store and marketing pages —…
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
openclaw-audit
fullymiddleaged
Trim an OpenClaw workspace's base system prompt.
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
audit-rules
fullymiddleaged
Review one domain of the Clawness rule corpus for correctness against current official documentation, then record what was established as a version stamp…
SkillAFreshness: A★ 5Claude Code +9
Cite this page
security-audit skill. Agent Mart. https://agentmart.dev/skills/fullymiddleaged-security-audit (last updated 2026-10-24)