security-audit
Skill0 starsChanged 2 months agoMITView on GitHub
Audita repositorios en 12 capas: dependencias y CVE, CISA KEV, EPSS, SAST, contenedores, secretos, GitHub Actions, Dockerfile y typosquatting. Reporta la cobertura real y lista como fuera del scan las dependencias sin pin o lockfile. Genera informe Markdown y puede aplicar correcciones solo cuando se solicita. Úsalo para "audita seguridad", "busca vulnerabilidades", "scan CVE", "vulnerability scan", "SAST", "container scan" o "secrets scan". Opera sobre el repositorio actual y degrada explícitamente las capas externas no disponibles.
- Installs packages
- Commits and pushes
192 other projects use a version of this.
Adopted by
Most recently taken up by
- argos-ci/argostheir own version, first seen Nov 9, 2026
- classroomio/classroomiotheir own version, first seen Nov 9, 2026
- dio-az/dotfilestheir own version, first seen Nov 8, 2026
- roke22/Squadratheir own version, first seen Nov 8, 2026
- qwwiwi/agentos-skills-publictheir own version, first seen Nov 8, 2026
- craigcossairt/trellistheir own version, first seen Nov 8, 2026
Used with
Projects with it also use create-stories, story-done and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
lilangMaxSkillcreate-stories
Break a single epic into implementable story files. Reads the epic, its GDD, governing ADRs, and control manifest. Each story embeds its GDD requirement TR-ID, ADR guidance, acceptance criteria, story type, and test evidence path. Run after /create-epics for each epic.
Also in 11 projects that use this
lilangMaxSkillstory-done
End-of-story completion review. Reads the story file, verifies each acceptance criterion against the implementation, checks for GDD/ADR deviations, prompts code review, updates story status to Complete, and surfaces the next ready story from the sprint.
Also in 11 projects that use this
nicepkgSkillcommunity-led-growth
Expert in community-led growth (CLG) - leveraging user communities to drive acquisition, retention, and expansion. Covers building developer communities, user groups, ambassador programs, and turning customers into advocates. Knows the difference between community as a feature vs community as a growth engine, and how to measure community ROI. Use when "community-led, CLG, ambassador program, champion program, user community, developer community, word of mouth, user group, " mentioned.
Also in 5 projects that use this
nicepkgSkillph-community-outreach
Engage Reddit, Indie Hackers, Hacker News and other communities for Product Hunt launches. Use this skill to identify relevant communities, craft appropriate posts, and drive cross-platform engagement without appearing spammy.
Also in 5 projects that use this
- +7 more from lilangMax
- +1 more from nicepkg
Other versions192 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 192
- ruvnet/claude-flow★ 80ksame name
- ruvnet/ruflo★ 79ksame name
- PostHog/posthog★ 40ksame name
- Donchitos/Claude-Code-Game-Studios★ 27ksame name
- cloudflare/security-audit-skill★ 18ksame name
- rommapp/romm★ 14ksame name
- kubeshark/kubeshark★ 12ksame name
- maximhq/bifrost★ 9.4ksame name
- mono/SkiaSharp★ 5.6ksame name
- MaxMiksa/Auto-Company★ 3.2ksame name
182 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository19 other files it gives its agents.
- bitcoin-custody-auditSkill
- docker-cleanupSkill
- docker-compose-doctorSkill
- functional-user-flow-testerSkill
- md-lint-fixSkill
- md-to-docSkill
- pre-commit-guardSkill
- preliminary-product-testerSkill
- pre-push-guardSkill
- python-deps-pinningSkill
- python-lint-guardSkill
- python-version-controlSkill
- release-evidence-auditorSkill
- repo-coherence-auditSkill
- software-resilience-state-testerSkill
- nombre-del-skillSkill
- version-bumpSkill
- web-snapSkill
- yaml-controlSkill
The file
Files
security-audit (v2 multi-layer)
Audita CUALQUIER repositorio en 12 capas complementarias. Produce un informe Markdown reproducible y, si se indica, aplica correcciones en el mismo repo dejando trazabilidad en git.
Capas
| Capa | Fuente | Cubre | Requisito |
| osv | OSV.dev | NVD + GHSA + PyPA + Go vuln DB + RustSec + npm advisories + Maven + RubyGems + NuGet | sólo red |
| kev | CISA Known Exploited Vulnerabilities | CVEs con explotación activa documentada (catalogo gov) | sólo red, cache 24h |
| epss | FIRST.org EPSS API | Probabilidad de explotación en 30 días (prioriza fixes) | sólo red |
| recent | OSV (filtro de fecha) | CVEs publicados en últimos N días (--recent-days) | sólo red |
| news | CISA Cybersecurity Advisories (RSS) + GitHub Security Advisories recent (gh CLI) | Vendor advisories y CVEs muy recientes con remediation extraída del texto | red + gh CLI opcional |
| pypi-malware | Sonatype OSS Index | Paquetes retirados / maliciosos / typosquats catalogados | SONATYPE_OSSI_USER+TOKEN env (free signup) |
| sast | Bandit | Vulnerabilidades en TU código Python (eval, hardcoded secrets, SQL concat, etc.) | pip install bandit |
| container | trivy / grype | OS layer del contenedor (Debian packages que pip no ve) + deps no pinneadas | trivy o grype binario |
| secrets | gitleaks / detect-secrets | Secretos commiteados en histórico git | gitleaks o detect-secrets |
| workflows | zizmor | GitHub Actions: workflow injection, permisos excesivos, unpinned actions | cargo install zizmor |
| dockerfile | hadolint | Antipatterns en Dockerfile (apt-get upgrade, USER root, etc.) | hadolint binario |
| typosquat | heurística Levenshtein | Paquetes sospechosos (typo de uno popular: requets vs requests) | sólo Python |
Plan de Remediación (transversal)
Cada hallazgo en cualquier capa contribuye con su fix (bump, mitigación, workaround,
deshabilitar feature, etc.) extraído del texto del advisory vía heurísticas regex. La
sección final del reporte agrega TODOS los fixes en un checklist priorizado por
(CISA KEV → severidad). Es la lista accionable única que el revisor humano marca.
Modo --verify (seguro contra rotura)
Por defecto --apply bumpea versiones sin validar. Con --verify, por cada bump:
- Backup del archivo
- Aplica el bump al manifest
- Corre
pip install -r requirements.txt - Corre
pytest -x -q(o--test-cmdcustom) - Si falla → revierte el bump y registra en sección "Bumps bloqueados"
- Si pasa → mantiene el bump y registra "(verificado: tests OK)"
Bumps se aplican a la versión mínima que arregla (minimal blast radius), no a la última disponible. Esto evita saltos de major version innecesarios.
Cuándo invocar este skill
Triggers en español:
- "audita la seguridad del repo / del proyecto"
- "busca vulnerabilidades / CVEs"
- "revisa ataques de ciberseguridad al repo"
- "qué vulnerabilidades tiene
<repo>" - "actualiza dependencias por seguridad"
- "scan CVE / security scan"
Triggers en inglés:
- "security audit", "vulnerability scan", "CVE check"
- "audit dependencies", "find vulnerable packages"
Triggers proactivos: si el usuario menciona un CVE específico (ej. "CVE-2024-XXXX") o un paquete sospechoso (ej. "este uso de python-jose es seguro?"), correr el skill sobre el repo actual para tener contexto cuantitativo.
Cómo se invoca
Trabaja siempre desde Path.cwd() (el repo actual). Sin argumentos = sólo reporte.
# Sólo reporte (default: layers = osv,kev,epss,typosquat — los que no requieren binarios)
python ~/.agents/skills/security-audit/security_audit.py
# TODAS las capas (las que tengan binario instalado corren, las demás se omiten)
python .../security_audit.py --layers all
# Capas específicas (csv)
python .../security_audit.py --layers osv,sast,container
# Auditar + aplicar fixes (bump de versiones a la primera 'fixed_in' segura)
python .../security_audit.py --apply
# Auditar + aplicar + crear rama git + commit
python .../security_audit.py --apply --git
# Auditar + aplicar + commit + crear PR (requiere gh CLI configurado)
python .../security_audit.py --apply --git --pr
# Sólo ciertos ecosistemas (default: todos los detectados)
python .../security_audit.py --ecosystem PyPI
python .../security_audit.py --ecosystem npm
# Reporte en una carpeta específica
python .../security_audit.py --out-dir docs/security/
# Severidad mínima a incluir en el reporte (low|medium|high|critical)
python .../security_audit.py --min-severity highQué hace exactamente
1) Detección del stack
Escanea cwd recursivamente buscando manifests:
| Archivo | Ecosistema OSV | Notas |
requirements.txt, requirements*.txt | PyPI | Lee pines pkg==X.Y.Z. Soporta múltiples (e.g. cases/*/backend/requirements.txt) |
pyproject.toml | PyPI | [project.dependencies] y [tool.poetry.dependencies] |
Pipfile.lock, poetry.lock | PyPI | Versiones resueltas |
package.json + package-lock.json | npm | Versiones resueltas del lock |
yarn.lock | npm | |
go.sum, go.mod | Go | |
Cargo.lock | crates.io | |
Gemfile.lock | RubyGems | |
pom.xml | Maven | Versiones explícitas |
*.csproj, packages.config | NuGet |
Excluye .git/, node_modules/, .venv/, venv/, dist/, build/, __pycache__/,
.codex/worktrees/ (worktrees internos de Codex).
2) Consulta de fuentes oficiales
- OSV.dev (
https://api.osv.dev/v1/querybatch) — agrega NVD, GHSA, PyPA Advisory DB, GHSA, RustSec, Go vuln DB, etc. Sin auth. Batch hasta 1000. - CISA KEV (
https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json) — catálogo de CVEs explotados activamente. Sin auth. Se descarga 1×/sesión y se cruza por CVE ID con los hallazgos OSV. - GHSA (opcional, si
gh auth statusok) — enriquece con metadata extra (CVSS vector, descripción detallada).
3) Generación de reporte
Escribe SECURITY_AUDIT_<YYYY-MM-DD>.md en la raíz del repo (o --out-dir),
estructura:
# Auditoría de seguridad — <repo> — <fecha>
## Resumen ejecutivo
- Ecosistemas auditados: <list>
- Dependencias revisadas: <N>
- ⚠ Cobertura del scan de deps: <N> de <M> entradas declaradas (<pct>%) — <K> FUERA del scan
- Vulnerabilidades encontradas: <N> (critical: X, high: Y, medium: Z, low: W)
- En CISA KEV (explotación activa): <N>
- Fuentes: OSV.dev, CISA KEV, GHSA
## 🔍 Cobertura del scan de dependencias
| Dependencia | Declarada como | Archivo | Motivo |
|---|---|---|---|
| flask | `flask>=2.0` | requirements.txt:2 | sin pin exacto o formato no soportado |
| (12 deps) | — | frontend/package.json | sin package-lock.json — versiones no resueltas |
## Hallazgos críticos (explotación activa según CISA KEV)
### CVE-2024-XXXX — <paquete> <vuln_version>
- **Severidad**: CRITICAL (CVSS 9.8) · **CISA KEV** ✓
- **Resumen**: <descripción>
- **Versión afectada**: <range>
- **Fix disponible**: bump a `<fixed_version>`
- **Referencias**: <links OSV/NVD/GHSA>
- **Acción aplicada**: ✅ requirements.txt actualizado (PR #N) / ⚠ no aplicado
## Hallazgos altos
...
## Hallazgos medios / bajos
...
## Acciones aplicadas
- `cases/01-.../requirements.txt`: `pkg==X.Y.Z` → `pkg==X.Y.Z'`
- ...
## Pendientes (sin fix disponible)
- CVE-..., paquete sin versión parchada aún → mitigación recomendada: <texto>
## Cómo reproducir
\```bash
python ~/.agents/skills/security-audit/security_audit.py
\```4) Aplicación de fixes (--apply)
Para cada hallazgo con fixed_versions disponible:
- Si el manifest es
requirements.txt/requirements.incon pinpkg==X, reemplaza porpkg==<fixed_version>. - Si es
pyproject.toml/package.jsoncon constraint range, ajusta. - Si es lockfile (
package-lock.json,poetry.lock), recomienda regenerar con la herramienta nativa (no se reescribe el lockfile a mano).
Después del bump, intenta correr pip-compile para .in → .txt si está disponible.
5) Integración git (--git, --pr)
--git: crea ramaclaude/security-audit-<fecha>, stagea sólo los manifests modificados + el reporte MD, commit con resumen de CVEs corregidos.--pr: ejecutagh pr createcon el títulofix(security): bump N deps vulnerables (CVE-...)ygh pr merge --squash --auto.
Repos sin dependencias declaradas
Si el repo no tiene manifests (proyecto stdlib-only, repo de scripts, etc.), las capas de deps no tienen material — pero las capas repo-level (sast, secrets, workflows, dockerfile, container) corren igual, porque auditan el repo en sí y no sus dependencias. El skill lo anuncia: Sin manifests de dependencias — continuando solo con capas repo-level: .... Solo si tampoco se pidió ninguna capa repo-level hace return temprano.
Limitaciones
- Falsos positivos: OSV.dev es agresivo; algunos hallazgos pueden no aplicar
al uso real del proyecto (e.g. vuln en una función no usada). El reporte
los lista igualmente — la decisión de bumpear queda en el revisor humano cuando
no usa
--apply. - Solo audita versiones exactas resueltas: deps declaradas sin pin exacto
(
flask>=2.0,pandassin versión) o manifests sin lockfile (package.jsonsinpackage-lock.json,go.modsingo.sum,Cargo.tomlsinCargo.lock) no se escanean — pero el reporte lo dice explícitamente: la sección "🔍 Cobertura del scan" lista cada dep fuera del scan con archivo:línea y motivo, y el resumen ejecutivo muestra el % de cobertura real. Un "0 vulnerabilidades" nunca se presenta como cobertura completa si no lo es. Si NINGUNA dep es escaneable, el skill sale con exit 1 y aviso claro en consola (antes salía 0 con "no se detectaron manifests", que era engañoso). - Dependencias transitivas: si el manifest no las pinea, no se auditan directamente (la herramienta del ecosistema debe regenerar el lockfile).
- Sin red: el skill falla con mensaje claro si OSV.dev no responde.
CISA KEV se cachea localmente en
~/.cache/security-audit/cisa_kev.jsoncon TTL 24h.
Salida esperada (ejemplo)
Security audit — repo: /ruta/a/mi-proyecto
Detectados: 26 manifests PyPI, 0 npm, 0 otros
Consultando OSV.dev (batch 26 grupos)... OK
Descargando CISA KEV catalog... OK (cached, 1342 CVEs vivos)
Cruzando con GHSA... OK
Resultados:
- 3 vulnerabilidades encontradas
- 1 critical (CVE-2026-XXXXX en pkg-foo 1.2.3 → fix en 1.2.5) [CISA KEV ✓]
- 2 high (CVE-..., CVE-...)
- 0 medium / low
Reporte escrito en: SECURITY_AUDIT_2026-05-19.md
Aplicado --apply:
- cases/01-.../requirements.txt: pkg-foo==1.2.3 → pkg-foo==1.2.5
- cases/02-.../requirements.txt: ...
git: rama claude/security-audit-2026-05-19 creada, 2 archivos staged.
PR creado: #69 (auto-merge habilitado).Integración con flujo de trabajo
- Pre-release: correr antes de publicar release (
--apply --git --pr). - CRON: agregar al ROADMAP "ejecutar security-audit semanal".
- Combinable con [[yaml-control]]: el agente puede invocar ambos seguidos antes de pushear un release que toque deps + workflows.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

