security-specialist
Runs security audits on codebases — full scans, diff reviews, threat models, vulnerability triage, remediation guidance, and finding tracking.
Skill by ft.ia.br
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/fabricioctelles-security-specialist
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: 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-specialist
What's inside
- Skill name
security-specialist- Description
- Runs security audits on codebases — full scans, diff reviews, threat models, vulnerability triage, remediation guidance, and finding tracking. Activate when the user says "security scan", "audit this repo", "review this PR for security", "threat model", "triage vulnerabilities", "fix this vuln", or "track findings".
- License
- Apache-2.0
- Metadata
- date: 2026-06-24 · author: ft.ia.br · license: Apache-2.0 · version: 2.0.0 · category: runbooks
- Instructions
- 192 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (23)
- SKILL.md
- finding-format.md · references/
- report-format.md · references/
- report-schema.json · references/
- scan-artifacts.md · references/
- severity-policy.md · references/
- finalize.py · scripts/
- pentest.py · scripts/
- rank_files.py · scripts/
- scan_db.py · scripts/
- validate-findings.cjs · scripts/
- attack-paths.md · steering/
- diff-review.md · steering/
- discovery.md · steering/
- full-scan.md · steering/
- hunting.md · steering/
- pentest.md · steering/
- remediation.md · steering/
- reporting.md · steering/
- threat-model.md · steering/
- tracking.md · steering/
- triage.md · steering/
- validation.md · steering/
SKILL.md (first lines)
# Security Specialist You perform security work on source code. Not the hand-wavy kind — you dig into repos, trace data flows, find real bugs, and produce evidence. Pick a workflow from the table below based on what the user needs. Then read the matching steering doc and follow it. Don't improvise the workflow order — it exists because skipping steps produces garbage findings. ## Core Principles ### Only report what you can exploit Every finding must have a concrete attack scenario: who is the attacker, what do they do, and what do they get? "An attacker could theoretically..." is not a finding. "Send this request, get this result" is. ### Determine the baseline dynamically In Phase 1, identify what this application is and what comparable applications exist. Use comparables to calibrate — not to dismiss findings, but to focus effort. If the comparable has the same pattern and it's been exploited there, that's a STRONGER finding. If the comparable has the same pattern and nobody's exploited it in 20 years, understand why before reporting. ### Adversarial validation The agent that checks a finding is never the agent that found it. Hunting agents find; validation agents kill false positives. This separation is critical for report quality. ### Severity requires impact Severity = likelihood × impact, not deviation from a checklist. If you cannot describe the concrete damage an attacker achieves, the severity is probably lower than you think. ### Defense-in-depth gaps are not vulnerabilities If Layer A prevents the attack, the absence of Layer B is a hardening suggestion, not a finding. ### Multiple runs improve coverage Testing shows a single run finds roughly half the total vulnerabilities across multiple runs. Each run explores different code paths. Prior runs inform where to dig deeper. --- ## Input Model The scan scope depends on what the user provides: | User provides | What runs | |---|---| | **Path only** | SAST (source code) → start dev server → DAST (localhost) | | **Path + URL** | SAST (source code) → DAST (localhost) → DAST (production URL, requires confirmation) | | **URL only** | DAST against the URL (confirm if not localhost) | Always start with the least invasive layer and escalate. The three-layer correlation (source → dev → prod) produces the strongest evidence. ### Authorization gate - `localhost`, `127.0.0.1`, `0.0.0.0`, `*.local`, `192.168.*`, `10.*`, `172.16-31.*` → **no confirmation needed** - Anything else → ask: "This will send active probes to [URL]. You're authorized to test this target? [y/n]" ## Workflows | What they want | Steering doc | Typical asks | |---|---|---| | Scan a whole repo | `steering/full-scan.md` | "scan this repo", "security audit", "find vulnerabilities" | | Review a diff/PR | `steering/diff-review.md` | "review this PR", "check my changes", "security review this diff" | | Pentest a live target | `steering/pentest.md` | "pentest this", "recon on target.com", "enumerate the app" | | Hunt vulnerabilities | `steering/hunting.md` | "hunt for bugs", "attack classes", "run the wildcard agent" | | Build a threat model | `steering/threat-model.md` | "threat model", "map attack surface", "identify trust boundaries" | | Trace attack paths | `steering/attack-paths.md` | "how could this be exploited", "attack chain", "blast radius" | | Discover new findings | `steering/discovery.md` | "look for issues in these files", "what's wrong here" | | Triage findings | `steering/triage.md` | "prioritize these", "which ones matter", "assess severity" | | Fix a vulnerability | `steering/remediation.md` | "fix this vuln", "patch it", "suggest a fix" | | Track findings over time | `steering/tracking.md` | "track these findings", "export to GitHub issues", "update status" | | Validate a fix | `steering/validation.md` | "verify this fix", "is it actually patched", "regression check" | | Generate report | `steering/reporting.md` | "write the report", "summarize findings", "produce the final output" | ## Scripts Utility scripts live in `scripts/` relative to this skill: ```bash python3 scripts/<name>.py [args] # Python utilities node scripts/validate-findings.cjs <file> # Schema validator ``` | Script | Purpose | |--------|---------| | `scan_db.py` | SQLite CRUD: init scans, add/validate/triage findings, export | | `rank_files.py` | Score files by security relevance for discovery worklists | | `pentest.py` | Recon, enumeration, vuln scan wrapper (system tools + Python fallbacks) | | `finalize.py` | Seal scan: export JSON + HTML, compute integrity hashes | | `validate-findings.cjs` | Validate findings.json against report-schema.json (zero deps, Node.js) | ## References | File | What it governs | When to read | |---|---|---| | `references/report-format.md` | HTML report template, CSS, structure, footer | Before generating `security-report.html` | | `references/finding-format.md` | Finding structure (simple + structured formats) | Before recording any finding | | `references/severity-policy.md` | Severity classification rules + CVE cross-ref protocol | Before assigning any severity | | `references/scan-artifacts.md` | Scan directory structure, file naming | Before initializing a scan | | `references/report-schema.json` | JSON schema for structured findings.json | Before writing Phase 5 output | **Report output is HTML** (`security-report.html`) — self-contained dark-themed file with color-coded severities, collapsible evidence, and interactive severity filters. No external dependencies. --- ## Anti-Patterns to Avoid Erros que tornam auditorias de segurança inúteis: 1. **Listar tudo que desvia do OWASP como finding.** OWASP é checklist, não bug list. Toda aplicação real faz tradeoffs. 2. **Rating defense-in-depth gaps como HIGH/CRITICAL.** "Missing validateIdentifier onde o query builder já escapa identificadores" não é HIGH. 3. **Ignorar o deployment model.** Rate limiting no CDN layer é arquitetura válida. Nem toda app precisa rate limiting no application level. 4. **Tratar designed behavior como bug.** Entenda o trust model antes de auditar. Se o design diz admins are fully trusted, admin-does-admin-things não é finding. 5. **Padding o report com LOWs para parecer thorough.** Dez LOWs não fazem um report útil. Três MEDIUMs fazem. 6. **"Potential" findings sem proof.** Ou você pode explotar ou não pode. Se precisa das palavras "potencialmente" ou "teoricamente", não pesquisou o suficiente. 7. **Ignorar o que o codebase faz bem.** Se auth é sólido, diga. Constrói confiança nos findings que VOCÊ reporta e ajuda o time a priorizar. 8. **Construir exploits de assumptions incorretas sobre parser/runtime.** Os false positives mais convincentes vêm de reasoning "o parser vai interpretar isso como..." sem verificar. Se o exploit depende de parser behavior, cite a spec ou teste. Não assuma. 9. **Pular business logic e creative attacks.** As vulnerability classes padrão (SQLi, XSS, SSRF) são o que todo scanner checa. O valor de uma auditoria manual é encontrar o que scanners não podem: logic errors, state machine violations, chained attacks, implicit trust assumptions. 10. **Desistir fácil demais.** "O codebase usa parameterized queries portanto não tem SQL injection" é conclusão preguiçosa. Cheque CADA uso de sql.raw(). Cheque dynamic identifiers. Cheque search/FTS. Cheque se existe code path que bypassa o query builder. Insista. ---
From fabricioctelles/skills, Apache-2.0.
More from fabricioctelles/skills
- 0.785score
loop-architect
https://ft.ia.br
Design well-structured agent loops with best-practice coaching and cross-model review gates before you run them.
SkillAFreshness: A★ 119Claude Code +9 - 0.785score
motion-ad
danny.md — https://www.danny.md/skills/motion-ad
Produce a short motion-graphics video ad — a 15s Facebook/Instagram/TikTok spot — as a rendered MP4.
SkillAFreshness: A★ 119Claude Code +9 - 0.785score
humanizar
fabricioctelles
Write and edit Brazilian Portuguese prose with natural rhythm and the author's voice while preserving facts, meaning, and intent.
SkillAFreshness: A★ 119Claude Code +9 - 0.785score
pstack-skill
Port of pstack by Lauren Tan (MIT) — cursor/plugins/pstack and ericlitman/open-pstack
Rigorous engineering orchestrator ported from Lauren Tan's pstack (poteto-mode): reads your task, picks one of 23 playbooks (bug fix, feature, refactoring…
SkillAFreshness: A★ 119Claude Code +9 - 0.785score
human-ai
https://ft.ia.br
Edit English prose to remove repetitive AI phrasing, inflated language, and mechanical structure while preserving meaning and the author's voice.
SkillAFreshness: A★ 119Claude Code +9 - 0.785score
human-ai
fabricioctelles
Edit English prose to remove repetitive AI phrasing, inflated language, and mechanical structure while preserving facts, meaning, and the author's voice.
SkillAFreshness: A★ 119Claude Code +9 - 0.774score
humanizar
https://ft.ia.br
Reescreve textos em português brasileiro para soarem mais humanos e naturais, reduzindo padrões típicos de escrita gerada por IA sem alterar fatos, argumento…
SkillAFreshness: A★ 119Claude Code +9 - 0.768score
agent-ready-cloudflare
Cloudflare / isitagentready.com
Audit and improve website readiness for AI agents using the Cloudflare "Is It Agent Ready?" scanner (isitagentready.com).
SkillAFreshness: A★ 119Claude Code +9 - 0.768score
coolify-operator
ft.ia.br
Master Coolify operator for self-hosted deployment platform.
SkillAFreshness: A★ 119Claude Code +9 - 0.739score
design-md-validator
https://ft.ia.br
Validate DESIGN.md files against the official Google specification using the `@google/design.md` CLI linter.
SkillBFreshness: B★ 119Claude Code +9 - 0.739score
slop-eval
https://ft.ia.br
Objectively evaluate a UI/web design against the pols.dev anti-slop design law: detect catalogued slop tells with cited evidence, score 8 weighted axes…
SkillBFreshness: B★ 119Claude Code +9 - 0.739score
agent-plugin-eval
fabricioctelles
Audit, score, and compare repositories containing portable Agent Plugins against the official Agent Plugins specification.
SkillBFreshness: B★ 119Claude Code +9
Signals
- Stars
- 119
- Forks
- 10
- Open issues
- 0
- Last commit (this folder)
- Jul 2, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 2.0.0
- License
- Apache-2.0
- Repository
- github.com/fabricioctelles/skills
- Website
- skilldev.pro
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from ft.ia.br
- 0.768score
coolify-operator
ft.ia.br
Master Coolify operator for self-hosted deployment platform.
SkillAFreshness: A★ 119Claude Code +9 - 0.733score
startup-idea
ft.ia.br
Analyze startups with Paul Graham mindset (pressure, founder-market fit, brutal validation), Dan Koe discipline (monetization, offer, distribution, sales)…
SkillBFreshness: B★ 119Claude Code +9 - 0.728score
okf-open-knowledge-format
ft.ia.br
Create, validate, and enrich Open Knowledge Format (OKF) bundles — the open spec for representing organizational knowledge as markdown files with YAML…
SkillBFreshness: B★ 119Claude Code +9 - 0.681score
astro-sites-manager
ft.ia.br
Comprehensive skill for building, migrating, and maintaining Astro v7 projects.
SkillCFreshness: C★ 119Claude Code +9 - 0.681score
geo-optimization
ft.ia.br
Optimize content for AI-generated responses and LLM citations (ChatGPT, Perplexity, Google AI Overview, Claude, Gemini).
SkillCFreshness: C★ 119Claude Code +9 - 0.681score
ralph-loop-kiro-specs
ft.ia.br
Automated iterative agent runner for spec-based development in Kiro.
SkillCFreshness: C★ 119Claude Code +9
Cite this page
security-specialist skill. Agent Mart. https://agentmart.dev/skills/fabricioctelles-security-specialist (last updated 2026-10-24)