agent-bom-vulnerability-intel
Use this skill to answer vulnerability-intelligence questions through
agent-bom's existing scanners and canonical evidence model. Do not create
one-off OSV, GHSA, NVD, EPSS, or KEV clients in the agent session; route through
agent-bom so advisory provenance, aliases, severity gates, cache behavior,
redaction, and output schemas stay consistent.
Modes
Start with the smallest mode that answers the user:
| Mode |
Use When |
Data Boundary |
explain-only |
User wants to know what would be queried |
No advisory calls |
check-package |
User names one package/version/ecosystem |
Only that package identifier is queried |
scan-local |
User wants findings from local agents or a local inventory file |
Local parse first; advisory calls use package identifiers only |
offline-review |
Private package names cannot leave the environment |
Use local/cache-approved data only; disclose reduced coverage |
export |
User wants PR gate, SARIF, JSON, or audit evidence |
Write only to an operator-selected path |
Guardrails
- Ask before scanning a broad filesystem path or local agent configs.
- Do not paste or reveal
NVD_API_KEY, GITHUB_TOKEN, package-registry
credentials, cloud credentials, or env values.
- Do not send full source files, lockfiles, config contents, secrets, or scan
reports to advisory providers. agent-bom extracts package identifiers first.
- Treat unknown or unresolvable versions as coverage gaps, not clean results.
- Preserve advisory provenance. Do not collapse OSV, GHSA, NVD, EPSS, and KEV
into a single unlabelled severity.
- Do not modify dependencies or install fixes unless the user explicitly asks
for a remediation workflow.
Workflows
Explain the Boundary
When the user asks "what leaves my environment?", answer before running:
This lookup sends package identifiers (name, version, ecosystem/PURL) and CVE
IDs to public advisory databases. It does not send source code, raw configs,
secrets, env values, credentials, or full scan reports. Use offline-review if
private package names are sensitive.
Check One Package
agent-bom check flask==2.0.0 --ecosystem pypi
Use this for quick triage and fix-version checks. If the package name belongs
to a private registry or internal project, use explain-only first and let the
operator decide whether the identifier may be queried externally.
Scan a Canonical Inventory
agent-bom scan --inventory inventory.json --format json --output findings.json
Use this after an operator-pull adapter or discovery skill emits canonical
inventory. The inventory can stop at the file boundary; scanning is an explicit
operator handoff.
Export for a PR Gate
agent-bom scan --inventory inventory.json --format sarif --output agent-bom.sarif
Use SARIF only when the user wants GitHub code-scanning or AppSec PR-gate
evidence. Keep JSON for local analysis and audit trails.
Offline Review
If external advisory calls are not allowed, run with the project's offline or
cache-approved mode and say clearly that coverage depends on the locally
available vulnerability database. Do not call a clean offline result equivalent
to a fresh OSV/GHSA/NVD lookup.
Output Rules
- Show CVE/GHSA/PYSEC aliases together when available.
- Include severity source, fix version, EPSS, KEV status, CWE, and advisory
source chain when present.
- Separate "no vulnerabilities found" from "not enough data to evaluate."
- Keep raw credentials and credential-bearing URLs out of output, logs, prompts,
SARIF locations, and exported reports.
1---2name: agent-bom-vulnerability-intel3description: Use agent-bom to check package, SBOM, inventory, and agent dependency exposure against OSV, GitHub Security Advisories, NVD, EPSS, and CISA KEV with explicit data-boundary choices. Use when a user asks for CVE lookup, advisory intelligence, exploitability context, fix versions, GHSA/OSV/NVD enrichment, or package vulnerability triage.4license: Apache-2.05---67# agent-bom-vulnerability-intel89Use this skill to answer vulnerability-intelligence questions through10agent-bom's existing scanners and canonical evidence model. Do not create11one-off OSV, GHSA, NVD, EPSS, or KEV clients in the agent session; route through12agent-bom so advisory provenance, aliases, severity gates, cache behavior,13redaction, and output schemas stay consistent.1415## Modes1617Start with the smallest mode that answers the user:1819| Mode | Use When | Data Boundary |20|------|----------|---------------|21| `explain-only` | User wants to know what would be queried | No advisory calls |22| `check-package` | User names one package/version/ecosystem | Only that package identifier is queried |23| `scan-local` | User wants findings from local agents or a local inventory file | Local parse first; advisory calls use package identifiers only |24| `offline-review` | Private package names cannot leave the environment | Use local/cache-approved data only; disclose reduced coverage |25| `export` | User wants PR gate, SARIF, JSON, or audit evidence | Write only to an operator-selected path |2627## Guardrails2829- Ask before scanning a broad filesystem path or local agent configs.30- Do not paste or reveal `NVD_API_KEY`, `GITHUB_TOKEN`, package-registry31 credentials, cloud credentials, or env values.32- Do not send full source files, lockfiles, config contents, secrets, or scan33 reports to advisory providers. agent-bom extracts package identifiers first.34- Treat unknown or unresolvable versions as coverage gaps, not clean results.35- Preserve advisory provenance. Do not collapse OSV, GHSA, NVD, EPSS, and KEV36 into a single unlabelled severity.37- Do not modify dependencies or install fixes unless the user explicitly asks38 for a remediation workflow.3940## Workflows4142### Explain the Boundary4344When the user asks "what leaves my environment?", answer before running:4546```text47This lookup sends package identifiers (name, version, ecosystem/PURL) and CVE48IDs to public advisory databases. It does not send source code, raw configs,49secrets, env values, credentials, or full scan reports. Use offline-review if50private package names are sensitive.51```5253### Check One Package5455```bash56agent-bom check flask==2.0.0 --ecosystem pypi57```5859Use this for quick triage and fix-version checks. If the package name belongs60to a private registry or internal project, use `explain-only` first and let the61operator decide whether the identifier may be queried externally.6263### Scan a Canonical Inventory6465```bash66agent-bom scan --inventory inventory.json --format json --output findings.json67```6869Use this after an operator-pull adapter or discovery skill emits canonical70inventory. The inventory can stop at the file boundary; scanning is an explicit71operator handoff.7273### Export for a PR Gate7475```bash76agent-bom scan --inventory inventory.json --format sarif --output agent-bom.sarif77```7879Use SARIF only when the user wants GitHub code-scanning or AppSec PR-gate80evidence. Keep JSON for local analysis and audit trails.8182### Offline Review8384If external advisory calls are not allowed, run with the project's offline or85cache-approved mode and say clearly that coverage depends on the locally86available vulnerability database. Do not call a clean offline result equivalent87to a fresh OSV/GHSA/NVD lookup.8889## Output Rules9091- Show CVE/GHSA/PYSEC aliases together when available.92- Include severity source, fix version, EPSS, KEV status, CWE, and advisory93 source chain when present.94- Separate "no vulnerabilities found" from "not enough data to evaluate."95- Keep raw credentials and credential-bearing URLs out of output, logs, prompts,96 SARIF locations, and exported reports.