security-audit
Structured, adversarial, multi-phase security audit of a codebase — recon → coverage-led hunting → finder≠validator validation → machine-readable findings →…
Skill by alinaqi
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/alinaqi-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: documents, testing, security
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. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
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
- Structured, adversarial, multi-phase security audit of a codebase — recon → coverage-led hunting → finder≠validator validation → machine-readable findings → target-neutral report
- License
- MIT
- Instructions
- 106 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- allowed-tools: must be a space-separated string
Files (3)
- SKILL.md
- report-schema.json
- validate_findings.py
SKILL.md (first lines)
# Security Audit — adversarial, evidence-grounded
A full audit, not a checklist. It runs in phases, keeps a coverage ledger so
nothing is skipped silently, and — the core discipline — **the agent that finds a
candidate is never the one that confirms it**. Severity is `likelihood × impact`,
not deviation from a style rule. Output is machine-readable and reproducible.
> Methodology inspired by Cloudflare's public security-audit-skill, rebuilt to
> reuse maggy's own pieces: `council-review` for adversarial validation,
> `cpg-analysis` (Joern/CodeQL) for static taint/data-flow, `agent-teams` /
> `polyphony` for isolated parallel hunters, and `security` for the vuln classes.
## Principles (read first)
- **Evidence over intuition.** A finding is `confirmed` only when you can name the
file:line of the boundary that fails and a concrete attack that crosses it.
- **Finder ≠ validator.** Whoever proposes a candidate must not confirm it. A
different agent (or a `council-review` model) tries to *disprove* it.
- **Impact-driven severity.** Rate `likelihood × impact`, not "differs from best
practice". A hardcoded key in a test fixture is not critical; an auth bypass on
a tenant boundary is.
- **Coverage is tracked, not assumed.** Every input surface / trust boundary is a
ledger unit with a status; a coverage critic hunts the gaps.
- **No theater.** Do not pad the report with generic "consider using HTTPS"
advice. Report only boundary failures you can stand behind.
## Phases
### 1. Reconnaissance → `architecture.md` + `coverage-ledger.json`
Map the target before hunting. Identify: entry points (HTTP routes, CLI, queue
consumers, webhooks), trust boundaries (authn/authz, tenant isolation, privilege
transitions), input surfaces (params, headers, files, env, deserialization),
secret handling, external calls (SSRF surface), and data stores. Write a short
`architecture.md`, then enumerate every surface as a unit in
`coverage-ledger.json` (`{id, surface, boundary, status: pending}`).
### 2. Coverage-led hunting
For each ledger unit, hunt the relevant classes. Prefer **isolated sub-agents**
(via `agent-teams` / `polyphony`) so one hunter's context does not bias another,
and lean on `cpg-analysis` for data-flow/taint where a graph beats grep. Mark each
unit `hunted`; a **coverage critic** pass re-reads the ledger and reopens units
that were skimmed. Classes to cover (depth in `security` + `cpg-analysis`):
| Class | Look for |
|-------|----------|
| Injection | SQL/NoSQL/OS/LDAP/template; unparameterized queries, `shell=True`, eval |
| AuthN / AuthZ | missing checks, IDOR, broken tenant isolation, JWT/session flaws |
| Secrets | keys in code/history/logs, client-exposed `VITE_/NEXT_PUBLIC_` secrets |
| SSRF / egress | user-controlled URLs, metadata endpoints, unvalidated redirects |
| Deserialization | pickle/yaml.load/Marshal on untrusted input |
| Path / file | traversal, arbitrary write, zip-slip, unsafe temp files |
| LLM / prompt | prompt injection, tool-abuse, unbounded fan-out, data exfil via output |
| Supply chain | typosquats, unpinned deps, postinstall scripts, CI token scope |
| Cloud / IaC | over-broad IAM, public buckets, exposed admin, secrets in env |
| Client-side | XSS, DOM sinks, CSP gaps, sensitive data in `localStorage` |
| Resource / DoS | unbounded loops/allocations, regex catastrophic backtracking |
| Data isolation | cross-tenant reads, missing RLS, PII in logs/caches |
| Memory (native) | overflow, UAF, integer wrap (for C/C++/unsafe Rust targets) |
### 3. Adversarial validation (finder ≠ validator)
For each unique candidate, a *different* reviewer attempts to **disprove** it:
is the tainted input actually reachable? is there a guard upstream? is the sink
real? Route this through `council-review` (multiple models vote) for anything
rated high/critical. Assign a verdict: `confirmed`, `needs_validation`, or
`rejected`.
### 4. Structured output → `findings.json`
Emit `findings.json` conforming to `report-schema.json` (shipped in this skill).
Validate it before reporting:
```bash
python3 "$(cat ~/.claude/.bootstrap-dir)/skills/security-audit/validate_findings.py" findings.json
```
The validator enforces the rules that keep the audit honest: unique ids, valid
enums, and that every `confirmed` finding has a file:line location, an attack
scenario, and a `validated_by` that differs from `found_by`.
### 5. Record verification
A fresh agent re-opens each `confirmed` finding and checks the cited file:line
*still* supports the claim (code may have moved). A material mismatch drops it
back to `needs_validation`.
### 6. Target-neutral report → `REPORT.md`
Write `REPORT.md` (executive summary + confirmed findings by severity),
`FINDINGS-DETAIL.md` (per-finding evidence + remediation), and
`NEEDS-VALIDATION.md` (candidates that could not be confirmed). Neutral tone: no
vendor names, no editorializing, just boundary → attack → impact → fix.
## Anti-patterns
- Confirming a finding you found yourself without an independent disprove attempt.
- Severity inflation ("uses md5" rated critical with no reachable attack).
- Grep-only hunting on a data-flow bug — use `cpg-analysis`.
- A report that lists advice instead of reachable, evidence-backed findings.
- Running audited target code outside a sandbox. Read and analyze; never execute
untrusted target code to "see what it does".
## How it fits the harness
- Slots into the `base` Definition of Done for security-critical changes as the
"prove it's safe" gate, above the preventive `security` skill.
- Reuses `council-review` (adversarial validation), `cpg-analysis` (static taint),
`agent-teams` / `polyphony` (isolated parallel hunters).
- Iterations are additive: a second run over the same ledger typically surfaces
more, so re-run before a major release rather than trusting one pass.From alinaqi/maggy, MIT.
More from alinaqi/maggy
- 0.761score
model-routing
alinaqi
9-tier model routing system with cascading classifier fallback and result auto-evaluation
SkillAFreshness: A★ 711Claude Code +9 - 0.721score
dataforseo
alinaqi
Keyword & SERP research via the DataForSEO API — search volume, competition, CPC, keyword ideas for naming/SEO decisions
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
visual-validation
alinaqi
Autonomous screenshot verification — captures, compares, and AI-evaluates UI changes for visual regressions
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
build-in-public
alinaqi
Best practices for sharing engineering work publicly — what to post, what to withhold, and channel-specific guidance
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
llm-patterns
alinaqi
AI-first application patterns, LLM testing, prompt management
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
external-model-delegation
alinaqi
UserPromptSubmit hook pattern that classifies prompts into six cost tiers and delegates to external model CLIs
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
autonomous-testing
alinaqi
AI-driven testing agent that auto-discovers, generates, executes, evaluates, and fixes tests for any project type
SkillBFreshness: B★ 711Claude Code +9 - 0.716score
verify-cascade
alinaqi
Verification-gated model escalation — run a cheap model, verify its output with decomposed per-field checks, and escalate to a strong model only when a flag…
SkillBFreshness: B★ 711Claude Code +9 - 0.713score
context-shunt
alinaqi
Offload large / multi-file reads to a cheap worker model so raw files never enter Claude's context (token savings)
SkillBFreshness: B★ 711Claude Code +9 - 0.708score
ms-teams-apps
alinaqi
Microsoft Teams bots and AI agents - Claude/OpenAI, Adaptive Cards, Graph API
SkillBFreshness: B★ 711Claude Code +9 - 0.708score
ai-models
alinaqi
Latest AI models reference - Claude, OpenAI, Gemini, Eleven Labs, Replicate
SkillBFreshness: B★ 711Claude Code +9 - 0.708score
agentic-development
alinaqi
Build AI agents with Pydantic AI (Python) and Claude SDK (Node.js)
SkillBFreshness: B★ 711Claude Code +9
Signals
- Stars
- 711
- Forks
- 61
- Open issues
- 0
- Last commit (this folder)
- Sep 22, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/alinaqi/maggy
- Website
- www.srooter.ai/maggy
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from alinaqi
- 0.761score
model-routing
alinaqi
9-tier model routing system with cascading classifier fallback and result auto-evaluation
SkillAFreshness: A★ 711Claude Code +9 - 0.721score
dataforseo
alinaqi
Keyword & SERP research via the DataForSEO API — search volume, competition, CPC, keyword ideas for naming/SEO decisions
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
external-model-delegation
alinaqi
UserPromptSubmit hook pattern that classifies prompts into six cost tiers and delegates to external model CLIs
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
autonomous-testing
alinaqi
AI-driven testing agent that auto-discovers, generates, executes, evaluates, and fixes tests for any project type
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
build-in-public
alinaqi
Best practices for sharing engineering work publicly — what to post, what to withhold, and channel-specific guidance
SkillBFreshness: B★ 711Claude Code +9 - 0.717score
llm-patterns
alinaqi
AI-first application patterns, LLM testing, prompt management
SkillBFreshness: B★ 711Claude Code +9
Cite this page
security-audit skill. Agent Mart. https://agentmart.dev/skills/alinaqi-security-audit (last updated 2026-10-24)