Warp Vulnerability Triage
warpdotdev/warp
Gathers security findings from Dependabot, GCP container scanning, Docker Scout and Linear security issues, then triages and remediates them across Warp's repos and images.
Audit Hex deps for supply-chain security risk — bidi chars, compile-time exec, maintainer changes, typosquats, CVEs.
$ npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-deps-audit -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install oliver-kriska/claude-elixir-phoenix phx-deps-audit --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/oliver-kriska/claude-elixir-phoenix.git skills-src && mkdir -p .claude/skills && cp -r skills-src/targets/pi/skills/phx-deps-audit .claude/skills/phx-deps-audit && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "phx-deps-audit" agent skill from https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/targets/pi/skills/phx-deps-audit into .claude/skills/phx-deps-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phx-deps-audit", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/targets/pi/skills/phx-deps-auditType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-deps-audit -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install oliver-kriska/claude-elixir-phoenix phx-deps-audit --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oliver-kriska/claude-elixir-phoenix.git skills-src && mkdir -p .agents/skills && cp -r skills-src/targets/pi/skills/phx-deps-audit .agents/skills/phx-deps-audit && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "phx-deps-audit" agent skill from https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/targets/pi/skills/phx-deps-audit into .agents/skills/phx-deps-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phx-deps-audit", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-deps-audit -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install oliver-kriska/claude-elixir-phoenix phx-deps-audit --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oliver-kriska/claude-elixir-phoenix.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/targets/pi/skills/phx-deps-audit .cursor/skills/phx-deps-audit && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "phx-deps-audit" agent skill from https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/targets/pi/skills/phx-deps-audit into .cursor/skills/phx-deps-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phx-deps-audit", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/oliver-kriska/claude-elixir-phoenix.git --path targets/pi/skills/phx-deps-audit--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-deps-audit -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install oliver-kriska/claude-elixir-phoenix phx-deps-audit --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oliver-kriska/claude-elixir-phoenix.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/targets/pi/skills/phx-deps-audit .gemini/skills/phx-deps-audit && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "phx-deps-audit" agent skill from https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/targets/pi/skills/phx-deps-audit into .gemini/skills/phx-deps-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phx-deps-audit", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install oliver-kriska/claude-elixir-phoenix phx-deps-auditInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-deps-audit -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/oliver-kriska/claude-elixir-phoenix.git skills-src && mkdir -p .github/skills && cp -r skills-src/targets/pi/skills/phx-deps-audit .github/skills/phx-deps-audit && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "phx-deps-audit" agent skill from https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/targets/pi/skills/phx-deps-audit into .github/skills/phx-deps-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phx-deps-audit", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-deps-audit -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install oliver-kriska/claude-elixir-phoenix phx-deps-audit --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oliver-kriska/claude-elixir-phoenix.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/targets/pi/skills/phx-deps-audit .opencode/skills/phx-deps-audit && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "phx-deps-audit" agent skill from https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/targets/pi/skills/phx-deps-audit into .opencode/skills/phx-deps-audit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phx-deps-audit", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
phx-deps-auditAudit Hex deps for supply-chain security risk — bidi chars, compile-time exec, maintainer changes, typosquats, CVEs.
Phx Deps Audit is an agent skill from oliver-kriska/claude-elixir-phoenix. Audit Hex deps for supply-chain security risk — bidi chars, compile-time exec, maintainer changes, typosquats, CVEs. Use after mix deps.update, when checking if a package upgrade is safe, or reviewing mix.lock PR diffs.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 33 other files, including scripts and reference files (for example `priv/semgrep/elixir-supply-chain.yaml`, `references/audit-tmpdir.md` and `references/cassettes.md`).
It sits in Security, covering Supply chain security and Vulnerability scanning. The repository describes itself as: Claude Code plugin for Elixir/Phoenix/LiveView — 26 specialist agents, Iron Laws enforcement, and Tidewave MCP integration. Plan features with parallel research agents, execute… The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9767a82. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/, which the agent can run.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Phx Deps Audit loads about 2.2k tokens when it runs, and up to ~43k if it reads all its reference files. Until then it costs about 59 tokens; SKILL.md has 991 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from oliver-kriska/claude-elixir-phoenix at commit 9767a82, republished under its MIT licence (© oliver-kriska). 991 words, ~2,163 tokens.
.claude/skills/phx-deps-audit/SKILL.md (or your agent's skills folder). This skill also uses 29 other files; get the full folder from GitHub.Non-mutating supply-chain audit for Hex packages. Runs an 8-rule MVP catalogue
against changed packages, enriches with Hex API metadata, wraps existing tools
(mix hex.audit, mix_audit, OSV-Scanner), and emits a triage table.
mix deps.update or mix deps.get brought in new versionsmix.lock (pre-merge gate)--preview <pkg>).claude/deps-audit/last-run.json — its absence
is evidence the audit didn't actually run.mix_audit / osv-scanner — even if asked. Detect,
warn with install instructions, skip cleanly if missing. If the user
says "install it," respond with the install command (e.g.,
mix deps.add mix_audit --only dev) and do not execute it. The
audit skill is non-mutating; mix.exs / mix.lock are off-limits
regardless of consent.rule_id, severity, file:line, snippet, message. No
handwaving.(old, new) pairs
resolved.hex-deps-triager agent runs only when score10 (1 BLOCK or 3+ WARNs), and its verdicts are advisory — never auto-suppress a finding without human review.
| Mode | Trigger | Old source | New source |
|---|---|---|---|
| B (default) | /skill:phx-deps-audit | git show HEAD:mix.lock | working mix.lock |
| C (PR) | /skill:phx-deps-audit --base main | git show <ref>:mix.lock | working mix.lock |
| A (preview) | /skill:phx-deps-audit --preview httpoison | locked version | Hex API latest |
See references/operating-modes.md for full resolver logic.
Default = full 8-rule scan with streaming progress. --quick opts out
to CVE + retirement only. See references/execution-flow.md.
Parse the mix.lock Erlang term format for both old and new sources. Emit a
list of {pkg, old_version, new_version} tuples. Surface
new-only and removed-only packages separately (a removed package is not
audited; a brand-new package gets old_version = nil and skips diff-only
rules).
See references/diff-resolver.md for shell + mix run -e snippets per mode and the JSON output contract.
For each (pkg, old, new):
mix hex.package fetch <pkg> <old> --unpack -o ${AUDIT_TMPDIR}/tarballs/<pkg>/<old>/
mix hex.package fetch <pkg> <new> --unpack -o ${AUDIT_TMPDIR}/tarballs/<pkg>/<new>/All ephemeral artifacts live under ${AUDIT_TMPDIR} (driver-owned, removed
on exit). See references/audit-tmpdir.md and
references/tarball-fetcher.md.
| # | Rule | Sev | Method |
|---|---|---|---|
| 1 | Bidi Unicode control chars in .ex/.exs/.erl | BLOCK | grep |
| 2 | Code.eval_* / :erlang.apply with non-literal MFA at module scope | BLOCK | AST (Sourceror or regex+scope) |
| 3 | System.cmd / :os.cmd / Port.open at compile time | BLOCK | AST |
| 4 | :erlang.binary_to_term/1 on literal without :safe | BLOCK | AST |
| 5 | New :git/:path dep in mix.exs (vs old) | BLOCK | AST diff |
| 6 | Maintainer change between versions | BLOCK | Hex API |
| 7 | Base64 blobs >256 chars outside priv/static/, test/fixtures/, assets/ | WARN | regex |
| 8 | Levenshtein ≤2 from top-500 + download delta >1000× | BLOCK | Hex API + fuzzy |
Full catalogue (35 rules, MVP marked) in references/heuristics.md.
Bash + mix run -e implementations for all 8 MVP rules in
references/rules-impl.md (single-pass NEW + diff rules +
Hex API rules, with run_all_rules master loop).
mix hex.audit — retired-package check, always availablemix_audit — CVE check via GHSA, if installed (else warn + skip; do NOT install)osv-scanner — CVE check via OSV.dev, if installed (else warn + skip; do NOT install)See references/external-tools.md for detection, output parsing, and severity mapping per tool.
GET /api/packages/:name — owners, downloads, inserted_atGET /api/packages/:name/releases/:version — per-release publisherdays_since_publish, owner_age_days, download_velocityCap at 5 req/sec. Per-run cache under ${AUDIT_TMPDIR}/hex-api/.
See references/hex-api.md for endpoint contracts,
caching strategy, Rule 6/8 detection, and Levenshtein implementation.
hex_vet.exs ledger (if present)If hex_vet.exs exists at project root, vetted-version findings are
downgraded to INFO. Unvetted versions retain their severity.
Lock-vs-ledger disagreement: lock wins. See the deps-vet skill's
hex-vet schema doc for the "Lock-vs-ledger disagreement" section.
Use /skill:phx-deps-vet <pkg> <version> (separate skill) to add entries.
When run with DIFFERENTIAL=1 (default), findings that existed in the
OLD tarball are downgraded to INFO. Net-new signals reach the renderer
at full severity. See references/differential.md.
For packages where the aggregate score exceeds 10, the
hex-deps-triager sonnet agent reads finding + diff windows and
produces structured verdicts (confidence, verdict, rationale,
fp_reasons[]). A context-supervisor consolidates verdicts
across packages into triage/consolidated.md. Main skill reads only
the consolidated file.
See references/llm-triage.md.
Per-package weighted sum: BLOCK = 10, WARN = 3, INFO = 1. Risk band: 0 clean · 1–5 low · 6–15 medium · 16+ high.
Output:
pkg | old → new | risk | findings | diff.hex.pm | maintainer-change plus a per-package detail section for any non-clean row..claude/deps-audit/last-run.json. The Phase 3 gate reads this; an audit that doesn't write it is a no-op for the gate. Always emit, even on clean runs.--json flag emits JSON to stdout instead of markdown. See
references/output-renderer.md for table format,
sidecar schema, exit-code rubric, and --quiet mode.
mix.lock, mix.exs, or any project file (non-mutating)mix deps.{get,update,compile} via deps-audit-gate.sh. See references/hook.md./skill:phx-compound after BLOCK findings — corpus self-feeds.--sarif <path> and gate CI via --ci.references/heuristics.md — full 35-rule cataloguereferences/rules-impl.md — bash + mix run -e for the 8 MVP rulesreferences/operating-modes.md — Mode A/B/C resolverreferences/diff-resolver.md — shell snippets, lock parserreferences/tarball-fetcher.md — fetch wrapper, parallel cap, cache prunereferences/external-tools.md — mix_audit, osv-scanner wrappersreferences/hex-api.md — endpoint contracts, rate limit, Rule 6/8references/output-renderer.md — markdown, JSON v1, exit codes, SARIFreferences/testing.md — smoke runner, fixture matrixreferences/differential.md / llm-triage.md — Phase 2 NDJSON subtract + triagerreferences/semgrep.md / yara.md — Phase 2 precision layers (soft deps)references/cassettes.md / sarif.md / hook.md / ci-integration.md — Phase 3 surfacereferences/trusted-publishers.md / skill-checklist.md — upstream + evalreferences/audit-tmpdir.md — Phase 5 per-run ephemeral storage contractreferences/execution-flow.md / differential-cve.md — Phase 5 default scan + CVE diff© oliver-kriska, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 29 other files (scripts, references) in targets/pi/skills/phx-deps-audit of oliver-kriska/claude-elixir-phoenix.
Open the folder on GitHubat commit 9767a82
Phx Deps Audit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Phx Deps Audit this skilloliver-kriska/claude-elixir-phoenix | 565 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Warp Vulnerability Triagewarpdotdev/warp | 65k | 1 repos | ~2.1k | Automated safety check: Pass | AGPL-3.0 | |
| Dependency Triagecobusgreyling/loop-engineering | 11k | — | ~626 | Automated safety check: Pass | MIT | |
| Container Scanning with GrypeAgentSecOps/SecOpsAgentKit | 220 | 1 repos | ~2.5k | Automated safety check: Pass | Custom licence | |
| Kesekit Startcdppcorp/KESE-KIT | 360 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Snapshotboostsecurityio/poutine | 523 | — | ~214 | Automated safety check: Pass | Apache-2.0 |
warpdotdev/warp
Gathers security findings from Dependabot, GCP container scanning, Docker Scout and Linear security issues, then triages and remediates them across Warp's repos and images.
cobusgreyling/loop-engineering
Scans package manifests and lockfiles for outdated packages and known CVEs, then classifies each possible update as patch, minor, major or escalate-human for a dependency sweeper loop.
AgentSecOps/SecOpsAgentKit
Scans container images, filesystems and SBOMs with Grype for known vulnerabilities, ranks them by CVSS, EPSS and CISA KEV, and wires scans into CI/CD thresholds.
cdppcorp/KESE-KIT
Run a security vulnerability assessment based on KISA guidelines.
boostsecurityio/poutine
Run snapshot regression tests after changes to OPA rules, scanners, analyzers, or formatters to detect output regressions.
hardw00t/ai-security-arsenal
Container and Kubernetes security assessment — image vulnerability scanning, SBOM diff analysis, K8s cluster auditing, RBAC privilege mapping, NetworkPolicy review, container escape testing, and…
oliver-kriska/claude-elixir-phoenix
Run an A/B codex review experiment — holistic codex review vs 3 focused dimension passes (security, ecto, liveview) on the branch diff, classify findings, report a panel-value verdict.
oliver-kriska/claude-elixir-phoenix
Project health audit and health check — architecture, performance, tests, dependencies, code quality.
oliver-kriska/claude-elixir-phoenix
Searchable Elixir/Phoenix/Ecto solution documentation system with; Use when consulting past solutions…
oliver-kriska/claude-elixir-phoenix
Searchable Elixir/Phoenix/Ecto solution documentation system with YAML frontmatter.
oliver-kriska/claude-elixir-phoenix
Elixir/Phoenix deployment patterns — Dockerfile, fly.toml, runtime.exs, mix release, rel/ overlays.
oliver-kriska/claude-elixir-phoenix
Bump outdated Hex deps — inventory, snapshot changelogs, update, fix breaks, split reviewable PRs (patches bundled, majors solo).
Categories
Audit Hex deps for supply-chain security risk — bidi chars, compile-time exec, maintainer changes, typosquats, CVEs. Phx Deps Audit is an agent skill from oliver-kriska/claude-elixir-phoenix. Audit Hex deps for supply-chain security risk — bidi chars, compile-time exec, maintainer changes, typosquats, CVEs.
Phx Deps Audit fits situations like: tasks that involve Supply chain security; tasks that involve Vulnerability scanning.
Run `npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-deps-audit -a claude-code`. Or copy the skill folder (targets/pi/skills/phx-deps-audit in oliver-kriska/claude-elixir-phoenix) into .claude/skills/phx-deps-audit in your project. Claude Code loads it when a task matches its description.
Run `npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-deps-audit -a codex`. Or copy the skill folder (targets/pi/skills/phx-deps-audit in oliver-kriska/claude-elixir-phoenix) into .agents/skills/phx-deps-audit in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add oliver-kriska/claude-elixir-phoenix --skill phx-deps-audit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/phx-deps-audit, .gemini/skills/phx-deps-audit, .github/skills/phx-deps-audit and .opencode/skills/phx-deps-audit in your project.
Going by SKILL.md and its folder, Phx Deps Audit needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Phx Deps Audit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 41k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Phx Deps Audit: Warp Vulnerability Triage (warpdotdev/warp, 65k stars), Dependency Triage (cobusgreyling/loop-engineering, 11k stars), Container Scanning with Grype (AgentSecOps/SecOpsAgentKit, 220 stars) and Kesekit Start (cdppcorp/KESE-KIT, 360 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
oliver-kriska (a GitHub user) maintains it in oliver-kriska/claude-elixir-phoenix, which has 565 GitHub stars. The repository holds 109 skills in this directory. The repository was last updated on October 5, 2026.
Source: oliver-kriska/claude-elixir-phoenix on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.