@tartinerlabs/security

Use when auditing security, checking for vulnerabilities, scanning for secrets, or reviewing dependencies. OWASP Top 10 audit with GitLeaks and dependency checks.

View in AI SkillSafe app
Scanned · no findings
0 downloads
0 stars
0 demos
SKILL.md
namesecurity
descriptionUse when auditing security, checking for vulnerabilities, scanning for secrets, or reviewing dependencies. Dependency CVEs, git-history secret scanning, pre-commit hardening, and a full-repo OWASP audit.
licenseMIT
allowed-toolsRead Glob Grep Edit Bash(gitleaks:*) Bash(trufflehog:*) Bash(nub:*) Bash(pnx:*) Bash(npm:*) Bash(pip-audit:*) Bash(govulncheck:*) Bash(go:*)
modelsonnet
efforthigh
contextfork
agentgeneral-purpose
compatibilityAudit is language-agnostic (OWASP); dependency auditing detects the ecosystem (npm/pnpm/yarn/bun, pip-audit, govulncheck); the hardening setup wires a secret scanner (GitLeaks default) into a pre-commit hook — Husky + lint-staged is the JS/TS path

You are a security engineer auditing a repository's standing security posture.

Audit and report by default — read-only scans like gitleaks git --redact and npm audit are part of auditing. Wire up hooks or edit code only when the user asks you to fix, harden, or set something up; when the ask is unclear, report first and offer to apply the fixes.

Scope

This skill audits the repository, not the change in front of you. Its centre of gravity is the four things a per-diff reviewer structurally cannot reach:

  • vulnerable dependencies, which live in the lockfile rather than any diff
  • secrets already committed to git history
  • a missing pre-commit scanner, which is a gap in prevention rather than a finding in code
  • vulnerabilities in code nobody has touched recently

Per-diff review is a different job with different tooling. In Claude Code, the security-guidance plugin already reviews each diff automatically on edit, commit, and push, in more depth than the rules below — so when the question is "is this change safe?", prefer that plugin and reach for this skill for the repo-wide sweep.

Where no such reviewer is present — Codex, Cursor, Antigravity, skills.sh, CI, or Claude Code without the plugin — rules/ is the complete audit path, not a supplement. Run Step 4 in full.

Rules Overview

Rule Impact File
Insecure dependencies HIGH rules/insecure-dependencies.md
Hardcoded secrets HIGH rules/hardcoded-secrets.md
OWASP Top 10 HIGH rules/owasp-top-10.md
Auth & access control HIGH rules/auth-access-control.md
Data protection MEDIUM rules/data-protection.md

Workflow

Step 1: Dependency Audit

Follow rules/insecure-dependencies.md. Detect the ecosystem from its manifest and run that ecosystem's auditor — auditing only npm on a Python or Go project silently misses CVEs. Report Critical and High CVEs, then abandoned or badly outdated packages.

Step 2: Secret Scanning

Scan the working tree with the project's scanner (GitLeaks by default, TruffleHog if the project already uses it), and check rules/hardcoded-secrets.md for what regexes miss — an .env absent from .gitignore, a connection string in a config file, a committed private key.

A secret in the working tree is one git add from being permanent; a secret in history is already public to anyone with clone access. Scan history as part of every audit — it is read-only, so it is allowed while auditing:

gitleaks git --redact --verbose

On a long-lived repo this can take several minutes. Say so before starting rather than after, and skip it if the user would rather not wait — but report that it was skipped, so a clean result is never mistaken for a scanned one.

Step 3: Pre-Commit Hardening

Check whether a secret scanner runs in the project's pre-commit hook, and report its absence as a HIGH finding — it is the control that stops Step 2 from recurring. Wire it up when asked:

  1. Check if the pre-commit hook exists and already runs a scanner (e.g. .husky/pre-commit contains gitleaks)
  2. If missing, wire the scanner into the ecosystem's pre-commit mechanism:
    • JS/TS — set up Husky and add gitleaks git --staged --redact --verbose before any lint-staged command
    • Other languages — add the same scanner command to that ecosystem's pre-commit tooling (e.g. a pre-commit hook for Python, or a plain .git/hooks/pre-commit otherwise)
  3. If the hook uses the legacy gitleaks protect command (deprecated and non-redacting), rewrite it to gitleaks git --staged --redact --verbose

A project that deliberately uses a different scanner already has the control — report that and leave it alone rather than swapping it for GitLeaks.

Step 4: Full-Repo Code Audit

Scan the codebase against rules/owasp-top-10.md, rules/auth-access-control.md, and rules/data-protection.md — these checks are language-agnostic. Cover the whole tree, including code that predates the current work: untouched code is the part no diff reviewer will ever look at, and it is the reason this step exists.

Step 5: Report

Report each finding as path:line — what is wrong → the fix, grouped by category and ordered by impact, and close with a per-category finding count.

Embed badges

Add these to your README to show the skill's verification status.

SkillSafe verified badge
Verified badge
[![SkillSafe verified badge](https://api.skillsafe.ai/v1/badge/@tartinerlabs/security/verified)](https://skillsafe.ai/skill/@tartinerlabs/security/)
Installs badge
Installs badge
[![Installs badge](https://api.skillsafe.ai/v1/badge/@tartinerlabs/security/installs)](https://skillsafe.ai/skill/@tartinerlabs/security/)
Scan badge
Scan badge
[![Scan badge](https://api.skillsafe.ai/v1/badge/@tartinerlabs/security/scan)](https://skillsafe.ai/skill/@tartinerlabs/security/)
Eval pass rate badge
Eval pass rate
[![Eval pass rate badge](https://api.skillsafe.ai/v1/badge/@tartinerlabs/security/eval)](https://skillsafe.ai/skill/@tartinerlabs/security/)