/absolute-audit
Vulnerability and security scan (defensive, your own repo): dependency CVEs plus risky code patterns (secrets, injection, weak authz), severity x reachability triaged and remediated without suppressing. Complements the built-in /security-review. Triggers on "absolute audit",
$ npx -y skills add absolutelyskilled/absolutelyskilled --skill absolute-audit --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition β
- You can call itInvoke it directly when you want it.
- Slash command
/absolute-audit
Context preview
The summary Claude sees to decide when to auto-load this skill.
Vulnerability and security scan (defensive, your own repo): dependency CVEs plus risky code patterns (secrets, injection, weak authz), severity x reachability triaged and remediated without suppressing. Complements the built-in /security-review. Triggers on "absolute audit",
SKILL.md
absolute-audit.SKILL.mdname: absolute-audit
version: 0.5.0
description: >
Vulnerability and security scan (defensive, your own repo): dependency CVEs plus risky code patterns (secrets, injection, weak authz), severity x reachability triaged and remediated without suppressing. Complements the built-in /security-review.
Triggers on "absolute audit", "security audit", "are we vulnerable", "scan for CVEs", "check for secrets/injection", "harden this".
category: workflow
tags:
- workflow
- security
- audit
- vulnerabilities
- cve
platforms:
- claude-code
- gemini-cli
- openai-codex
- mcp
user-invocable: true
argument-hint: "[target]"
license: MIT
maintainers:
- github: maddhruv
> Start your first response with the π emoji.
Absolute Audit
Find and triage security problems across the repo β vulnerable dependencies (CVEs) and risky code patterns β then fix the ones worth fixing, safely. Output is a severity-ranked findings table with a remediation per item, not a raw scanner dump.
Runs the shared engine in **`references/health-engine.md`** β read it for the DETECT β SCAN β TRIAGE β FIX β VERIFY β REPORT loop and the safety contract. This file covers only what's specific to security auditing.
> **Authorized defensive use.** This command audits the user's *own* repository to find > and fix weaknesses. It is for hardening, not for attacking systems or evading detection.
---
When to use
- "Run a security audit", "are we vulnerable?", "check our deps for CVEs".
- After a CVE disclosure affecting something you use.
- Periodic hygiene on `main`.
Distinct from the built-in **`/security-review`** (reviews the *pending diff* on your branch) β `audit` scans the **whole committed repo**, deps included. They complement.
---
What it scans
**1. Dependency vulnerabilities (CVEs)** β primary:
| Ecosystem | Scanner | |---|---| | npm / pnpm / yarn | `npm audit --json` / `pnpm audit --json` / `yarn npm audit --json` | | Python | `pip-audit` (preferred) or `safety check` | | Go | `govulncheck ./...` | | Cross-language | `osv-scanner` against the lockfile if available |
**2. Code-level patterns** β read-only grep/static pass for high-signal issues only: hardcoded secrets/keys/tokens, `eval`/dynamic exec on input, SQL built by string concatenation, missing authz checks on sensitive routes, disabled TLS verification, unsafe deserialization, overly-broad CORS. Prefer the project's existing SAST/linter security rules (`eslint-plugin-security`, `bandit`, `gosec`) if configured.
Report suspected leaked secrets but **never print the secret value** β reference `path:line` and the kind.
---
Risk ranking (TRIAGE)
Rank by **severity Γ exploitability Γ reachability**, not raw CVSS:
| Severity | Default | |---|---| | Critical / High, reachable, fix available | fix now (wave 1) | | Moderate, reachable | fix this pass | | Low / not reachable from app code | report, usually defer | | Transitive-only, no direct upgrade path | flag, note the blocking parent |
Mark each: is it reachable from the app's actual code paths? A CVE in an unused transitive branch is lower priority than a Moderate one on a hot path. State the fixed version or the mitigation for each.
---
Fix & verify
- **Dep CVEs** β resolve via the smallest version move that clears it (delegate the actual
bump mechanics to the `upgrade` flow's per-ecosystem steps). Prefer patched minors; escalate to a major only when that's the only fix, and gate it.
- **Code issues** β apply the concrete fix (parameterize the query, move the secret to env
- flag the leaked one for rotation, add the authz check). Each fix is its own small wave.
- After each wave, re-run the scanner: the finding must actually disappear, and tests/build
stay green. Never resolve by suppressing/allowlisting the alert.
- Leaked live secrets: flag for **rotation** β removing from code doesn't undo exposure.
---
Gotchas
1. **Audit fatigue β blanket ignore.** Triage by reachability instead of muting the scanner. 2. **Fixing a CVE by suppressing it.** An allowlisted advisory is still a vulnerability. 3. **Printing the secret.** Reference location + type only; never echo the value. 4. **Deleting a secret from code β safe.** It's in git history and was exposed β rotate it. 5. **Stopping at deps.** Many real issues are in code, not the dependency tree β run both passes.
---
Companion commands
- **`/absolute upgrade`** β does the actual version moves for vulnerable deps.
- **`/security-review`** (built-in) β pair with this to also cover your pending diff.
- **`/absolute work`** β if remediation is a real refactor (e.g. replacing an auth flow), hand off.
Read more
name: absolute-audit version: 0.5.0 description: > Vulnerability and security scan (defensive, your own repo): dependency CVEs plus risky code patterns (secrets, injection, weak authz), severity x reachability triaged and remediated without suppressing. Complements the built-in /security-review. Triggers on "absolute audit", "security audit", "are we vulnerable", "scan for CVEs", "check for secrets/injection", "harden this". category: workflow tags: - workflow - security - audit - vulnerabilities - cve platforms: - claude-code - gemini-cli - openai-codex - mcp user-invocable: true argument-hint: "[target]" license: MIT maintainers: - github: maddhruv
> Start your first response with the π emoji.
Absolute Audit
Find and triage security problems across the repo β vulnerable dependencies (CVEs) and risky code patterns β then fix the ones worth fixing, safely. Output is a severity-ranked findings table with a remediation per item, not a raw scanner dump.
Runs the shared engine in **`references/health-engine.md`** β read it for the DETECT β SCAN β TRIAGE β FIX β VERIFY β REPORT loop and the safety contract. This file covers only what's specific to security auditing.
> **Authorized defensive use.** This command audits the user's *own* repository to find > and fix weaknesses. It is for hardening, not for attacking systems or evading detection.
---
When to use
- "Run a security audit", "are we vulnerable?", "check our deps for CVEs".
- After a CVE disclosure affecting something you use.
- Periodic hygiene on `main`.
Distinct from the built-in **`/security-review`** (reviews the *pending diff* on your branch) β `audit` scans the **whole committed repo**, deps included. They complement.
---
What it scans
**1. Dependency vulnerabilities (CVEs)** β primary:
| Ecosystem | Scanner | |---|---| | npm / pnpm / yarn | `npm audit --json` / `pnpm audit --json` / `yarn npm audit --json` | | Python | `pip-audit` (preferred) or `safety check` | | Go | `govulncheck ./...` | | Cross-language | `osv-scanner` against the lockfile if available |
**2. Code-level patterns** β read-only grep/static pass for high-signal issues only: hardcoded secrets/keys/tokens, `eval`/dynamic exec on input, SQL built by string concatenation, missing authz checks on sensitive routes, disabled TLS verification, unsafe deserialization, overly-broad CORS. Prefer the project's existing SAST/linter security rules (`eslint-plugin-security`, `bandit`, `gosec`) if configured.
Report suspected leaked secrets but **never print the secret value** β reference `path:line` and the kind.
---
Risk ranking (TRIAGE)
Rank by **severity Γ exploitability Γ reachability**, not raw CVSS:
| Severity | Default | |---|---| | Critical / High, reachable, fix available | fix now (wave 1) | | Moderate, reachable | fix this pass | | Low / not reachable from app code | report, usually defer | | Transitive-only, no direct upgrade path | flag, note the blocking parent |
Mark each: is it reachable from the app's actual code paths? A CVE in an unused transitive branch is lower priority than a Moderate one on a hot path. State the fixed version or the mitigation for each.
---
Fix & verify
- **Dep CVEs** β resolve via the smallest version move that clears it (delegate the actual
bump mechanics to the `upgrade` flow's per-ecosystem steps). Prefer patched minors; escalate to a major only when that's the only fix, and gate it.
- **Code issues** β apply the concrete fix (parameterize the query, move the secret to env
- flag the leaked one for rotation, add the authz check). Each fix is its own small wave.
- After each wave, re-run the scanner: the finding must actually disappear, and tests/build
stay green. Never resolve by suppressing/allowlisting the alert.
- Leaked live secrets: flag for **rotation** β removing from code doesn't undo exposure.
---
Gotchas
1. **Audit fatigue β blanket ignore.** Triage by reachability instead of muting the scanner. 2. **Fixing a CVE by suppressing it.** An allowlisted advisory is still a vulnerability. 3. **Printing the secret.** Reference location + type only; never echo the value. 4. **Deleting a secret from code β safe.** It's in git history and was exposed β rotate it. 5. **Stopping at deps.** Many real issues are in code, not the dependency tree β run both passes.
---
Companion commands
- **`/absolute upgrade`** β does the actual version moves for vulnerable deps.
- **`/security-review`** (built-in) β pair with this to also cover your pending diff.
- **`/absolute work`** β if remediation is a real refactor (e.g. replacing an auth flow), hand off.
A development workflow engine for AI coding agents. Eleven separate skills β a one-time absolute-init (interview + stack detection β config), a build loop you run every day (think β spec β plan β build β polish β document), plus an engineering-health family
Repo: absolutelyskilled/absolutelyskilled
Other skills on absolute.
- /absolute-debt
Lint and typecheck debt paydown: clear pre-existing repo-wide lint/type violations and suppressions (@ts-ignore, # type: ignore) one rule per wave, fixing causes not symptoms. Runs on green main. For diff-scoped quality use absolute-simplify. Triggers on "absolute debt", "fix
Open skill - /absolute-deflake
Flaky test fixes: detect nondeterministic tests empirically (repeat/shuffle/parallel runs), diagnose the root cause, fix it β never retry/skip/sleep β and verify across many randomized runs. Triggers on "absolute deflake", "fix flaky tests", "CI is flaky", "this test fails
Open skill - /absolute-docs
DiΓ‘taxis-driven documentation for AI coding agents: write, improve, or audit tutorials, how-tos, reference, explanation, and developer docs (README, CONTRIBUTING, ADRs). Detects the docs stack; gates on the outline before writing prose; verifies every claim against the code
Open skill - /absolute-init
One-time setup for absolute: interview how you want it to behave (output style, autonomy, TDD strictness, spec dir, families) + detect the stack once, then write `.absolute.config.json` (project, committed) and `~/.absolute/config.json` (user defaults + per-project overrides).
Open skill - /absolute-prune
Dead code and dependency cleanup, repo-wide: unused deps, unreferenced exports, unreachable code, orphaned files β removed only with tool evidence, in reversible waves. Runs on green main. For diff-scoped cleanup use absolute-simplify. Triggers on "absolute prune", "remove dead
Open skill - /absolute-simplify
Use when the user wants to simplify, clean up, refactor, tidy, or refine code β their staged/unstaged git changes or a target file/path. Reduces complexity, flattens nesting, removes redundancy and dead code, scores each change by value (holding low-value churn), then runs tests
Open skill

