Vantage
AI-powered vulnerability scanner plugin for Claude Code with 28 agents statically scan web & mobile repos for OWASP Top 10 / Mobile Top 10 vulnerabilities, validate findings, and optionally auto-fix them. No live requests, ever.
npx -y skills add tinoimammp/vantage-security-agent --skill vantageAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 27 days oldThe repository was created 27 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Autonomous, artifact-driven SAST (Static Application Security Testing) for web AND mobile app repositories, plus optional code-level remediation. Use whenever the user asks to security-review, pentest, audit, or scan a codebase for vulnerabilities — web (SQLi, XSS, IDOR/BOLA, auth bypass, SSRF, XXE, hardcoded secrets, vulnerable dependencies, business logic flaws) or mobile/Android/iOS (OWASP Mobile Top 10 2024: improper credential usage, insecure data storage, insecure communication, insufficient cryptography, etc.) — via static code analysis, never by running the app, installing it, or sending requests. Also use when the user asks to fix, patch, or remediate a finding this framework produced, or to check a single commit/PR/MR for newly introduced vulnerabilities without a full repo scan. Drives a 6-phase scan pipeline (recon, mapping, testing, validation, PoC, reporting) through the vantage plugin's specialized subagents, branching on platform, plus a separate on-demand fix step and a fast incremental commit/PR/MR check.
SKILL.md
8.5 KB, as published. Nobody here has run it
Pentest SAST — Orchestration Skill
This skill is the entry point for the vantage plugin. It covers both
the web and mobile scan pipelines, and the separate fix capability.
It is intentionally short: everything phase-specific lives in
${CLAUDE_PLUGIN_ROOT}/agents/{web,mobile,others}/*.md, read on demand.
Cross-phase control (gates, parallelism, resume) lives in
${CLAUDE_PLUGIN_ROOT}/workflow/orchestration.md.
Two roots — do not confuse them
- Plugin assets (
workflow/,agents/,schemas/,templates/,knowledge/,examples/,START-HERE.md,TIMESTAMPS.md) live at${CLAUDE_PLUGIN_ROOT}— always resolve them from there, never from the target project's working directory. - Artifacts (scope, endpoints, findings, PoCs, reports, fixes) are
per-engagement output, always written under
./.vantage/artifacts/...relative to the target project currently open — never inside the plugin's own install directory.
Golden rules (non-negotiable)
- SAST only during scanning. Analyze source code, configuration, and dependencies. Never run the application, never install a mobile build, never send requests, never exploit live systems. (Live verification of a PoC is a separate, human-run manual step.)
- One exception:
fix-agent. Every scan-phase agent is strictly read-only.fix-agent— invoked only by/vantage:fix-issue,/vantage:fix, or/vantage:fix-diff, never automatically — is the sole agent allowed to edit the target repository's source code, and only to implement an already-validated finding's remediation. See "Fixing findings" below. - Artifacts are the single source of truth. Every phase reads the previous phase's artifact and writes its own — no shared memory between agents.
- Validate before reporting or fixing. No finding reaches a report, and
no finding gets fixed, without passing
validator-agentfirst. - Impact-first. Critical → High → Medium before Low/Informational.
- Never block on the user. If
scope.jsonis missing, auto-generate it from${CLAUDE_PLUGIN_ROOT}/artifacts/recon/scope.json.template(a plugin asset) with sane defaults and proceed. If the user's request implies a platform ("this is an Android app", "review this iOS codebase" → mobile; otherwise → web), setplatformaccordingly instead of always defaulting to web.
Full detail: ${CLAUDE_PLUGIN_ROOT}/START-HERE.md (golden rules §1, universal
agent loop §5, quality bar §8) and cross-phase control (gates, parallelism,
platform routing, resume, failure handling) in
${CLAUDE_PLUGIN_ROOT}/workflow/orchestration.md.
The scan pipeline
Phases 01-03 route by scope.json.platform; phases 04-06 are shared. Each
agent file is self-contained — there is no separate phase file to read.
| # | Phase | platform: "web" | platform: "mobile" |
|---|---|---|---|
| 01 | Recon | recon-agent | mobile-recon-agent |
| 02 | Mapping | mapper-agent | mobile-mapper-agent |
| 03 | Testing | auth-agent, authorization-agent, api-agent, sqli-agent, xss-agent, upload-agent, business-logic-agent, injection-agent, dependency-agent, secrets-agent (parallel) | credential-usage-agent, supply-chain-agent, mobile-auth-agent, mobile-validation-agent, mobile-network-agent, privacy-agent, binary-protection-agent, mobile-config-agent, mobile-storage-agent, mobile-crypto-agent (parallel; M1-M10) |
| 04 | Validation | validator-agent — same agent, either platform | |
| 05 | PoC | poc-agent — same agent, either platform | |
| 06 | Reporting | report-agent — same agent, either platform |
Phases run strictly in order 01→06; a phase only starts once its gate
(defined in ${CLAUDE_PLUGIN_ROOT}/workflow/orchestration.md) is
satisfied. Phase 03's 10 agents (whichever platform's set) run in parallel
and each write their own raw-findings.<agent-name>.json — never a shared
file, and never mix web and mobile agents in the same Phase 03 run.
How to operate — scanning
- Determine platform once: read
scope.json.platformif it exists, or infer it from the user's request/repo structure (Android/iOS project layout → mobile; otherwise → web) when generating a freshscope.json. Every phase after this dispatches the matching agent set from the table above instead of assuming web. - Determine scope: if the user named a specific phase or vulnerability class, dispatch only the relevant agent(s) (via Task). Otherwise run the full pipeline, phase by phase.
- Before each phase, check its gate in
${CLAUDE_PLUGIN_ROOT}/workflow/orchestration.mdand confirm/auto-generate./.vantage/artifacts/recon/scope.jsonif needed. - Dispatch the owning agent(s) for that phase (see table above) via the Task
tool — each subagent reads its own
${CLAUDE_PLUGIN_ROOT}/agents/{web,mobile,others}/<name>.mdfor full methodology. - After Phase 03, merge all
raw-findings.*.jsonbefore Phase 04 validates (this works identically whether they came from the web or mobile agent set). - Append one line per agent run to
./.vantage/artifacts/run-log.md. - Stop and report using the exact artifact paths — never invent alternate
filenames (e.g. no
SAST-REPORT.md).
Slash-command equivalent: /vantage:scan-web or /vantage:scan-mobile —
each forces its platform and runs phases 01-06 in one go.
Fast incremental check — one commit or PR/MR, not the full pipeline
For "does this commit/PR introduce a vuln" instead of a full repo review,
use /vantage:scan-diff [commit-hash | PR/MR number]
(${CLAUDE_PLUGIN_ROOT}/commands/scan-diff.md) — not part of Phases
01-06. It diffs the change, dispatches the platform's 10 testing agents
scoped to just the changed lines, validates, and generates a PoC per
Medium-Critical finding — all under a self-contained
artifacts/commit-scans/<id>/. No report.md is produced; results are
reported directly in chat. A clean result only means that diff is clean, not
the whole app.
Fixing findings — separate from scanning, and destructive by design
fix-agent (${CLAUDE_PLUGIN_ROOT}/agents/others/fix-agent.md) applies a
validated finding's remediation directly to the target repository's source
code. This is never triggered automatically by a scan — only by explicit
request, matching /vantage:fix-issue <id> (one finding), /vantage:fix
(all validated findings, dispatched sequentially, never in parallel,
since fixes may touch the same file), or /vantage:fix-diff <commit-scan-id> <finding-id> (a finding from scan-diff instead of the main pipeline).
- Confirm the finding exists and
validated: trueinartifacts/findings/validated-findings.json(orartifacts/commit-scans/<id>/validated-findings.jsonforfix-diff); skip if its fix record already exists (already handled). - Dispatch
fix-agentvia Task. It re-locates the vulnerable pattern in the current source (it may have moved), applies the minimal targeted edit, and writes a fix record — or marks the findingnot_auto_fixablewith a reason instead of guessing. fix-agentnever runs a build, test suite, or the application — always tell the user to reviewgit diffand run their own tests before committing.
Slash-command equivalent: /vantage:fix-issue <id>, /vantage:fix, or
/vantage:fix-diff <commit-scan-id> <finding-id>.