AI-Assisted Vulnerability Triage
AI-assisted vulnerability triage for scanner findings, combining vulnerability analysis, reachability assessment, false-positive detection, risk scoring, remediation guidance, and historical lifecycle analytics.
Features
- Vulnerability triage and prioritization
- Reachability analysis
- False-positive detection
- Risk and impact analysis
- MITRE ATT&CK mapping
- Remediation guidance
- Canonical JSON and Semgrep input
- Human-readable and JSON output
- Optional AI-generated explanations
- Immutable scan snapshots
- Two-scan lifecycle comparison
- Multi-scan lifecycle history
- Lifecycle trend analytics
- Lifecycle transition analytics
- Lifecycle insight metrics
Requirements
- Python 3.12 or newer
Installation
Build the package:
python -m build
Install the wheel:
python -m pip install dist/ai_assisted_vulnerability_triage-0.4.2-py3-none-any.whl
Or install the source distribution:
python -m pip install dist/ai_assisted_vulnerability_triage-0.4.2.tar.gz
Verify the installation:
vuln-triage --version
Basic Usage
Run the canonical findings dataset:
vuln-triage dataset/findings.json
Generate JSON output:
vuln-triage dataset/findings.json --format json
Write output to a file:
vuln-triage dataset/findings.json \
--format json \
--output report.json
Semgrep
Process Semgrep findings:
vuln-triage \
tests/fixtures/semgrep-results.json \
--scanner semgrep
Optional AI Explanations
Enable the optional AI explanation provider:
vuln-triage \
dataset/findings.json \
--ai-explain
The required AI provider configuration must be available in the runtime environment.
Scan Snapshots
Persist an immutable scan snapshot:
vuln-triage \
dataset/findings.json \
--snapshot-dir .history
Snapshots are stored as scan-specific JSON files in the selected history directory.
Compare Two Scans
Compare two persisted snapshots:
vuln-triage \
--history \
PREVIOUS_SNAPSHOT \
CURRENT_SNAPSHOT
Lifecycle classification includes:
- NEW
- UNCHANGED
- CHANGED
- RESOLVED
- REAPPEARED
History Directory
Generate a multi-scan lifecycle report:
vuln-triage \
--history-dir .history
Generate JSON:
vuln-triage \
--history-dir .history \
--format json
Lifecycle Trends
Analyze finding behavior across the complete scan history:
vuln-triage \
--history-dir .history \
--trends
Trend analytics include:
- Unique findings
- Active findings
- Resolved findings
- Changed findings
- Reappeared findings
- Persistent findings
- Per-finding timelines
- Transition counts
- Lifecycle insights
Transition Analytics
Lifecycle transitions include:
NEW->UNCHANGED
NEW->CHANGED
UNCHANGED->RESOLVED
CHANGED->RESOLVED
RESOLVED->REAPPEARED
Trend reports include total transition counts, transition frequencies, and per-finding transition histories.
Lifecycle Insights
Per-finding insights include:
Change Count
Resolution Count
Reappearance Count
Ever Changed
Ever Resolved
Ever Reappeared
Aggregate metrics include:
Findings With Changes
Findings Ever Resolved
Findings Ever Reappeared
Findings With Multiple Changes
Example lifecycle:
NEW -> CHANGED -> RESOLVED -> REAPPEARED
CLI Help
vuln-triage --help
vuln-triage --version
Development
Create a virtual environment:
python -m venv venv
source venv/bin/activate
Install development dependencies:
python -m pip install -e ".[dev]"
Install optional AI dependencies:
python -m pip install -e ".[ai]"
Testing
Run the complete test suite:
python -m pytest -q
Validate Python syntax:
python -m py_compile auditor/*.py
Check whitespace:
git diff --check
Check dependencies:
python -m pip check
Building Distributions
Build the wheel and source distribution:
python -m build
Validate the distributions:
python -m twine check dist/*
The repository includes GitHub Actions workflows for testing and publishing Python package distributions.
Project Structure
auditor/
Core triage and analysis modules
lifecycle.py
lifecycle_report.py
scan_history.py
schema_validation.py
schemas/
batch-result-v1.json
dataset/
findings.json
docs/
schemas/
batch-result-v1.json
tests/
Unit and integration tests
.github/workflows/
tests.yml
publish.yml
pyproject.toml
README.md
Version
Current package version:
0.4.2
License
Add the project's license information before public release if a license has not already been selected.
Metadata
Release files for ai-assisted-vulnerability-triage 0.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ai_assisted_vulnerability_triage-0.4.2.tar.gz | 69.7 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ai_assisted_vulnerability_triage-0.4.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 113.4 kB
Release files / ai_assisted_vulnerability_triage-0.4.2.tar.gz
| Download URL | ai_assisted_vulnerability_triage-0.4.2.tar.gz |
|---|---|
| Size | 69.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0bf4653ff268227f18c4501bdf0c7846f2acaa0b3a14be4dd26c62cb1e9403e0
|
|
BLAKE2b-256 checksum How to use checksums |
9c9a66e13d6ea7de157bbc304332f563ce4a7692b38d2f25c9aa27ff601cf38a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.
Transparency logRelease files / ai_assisted_vulnerability_triage-0.4.2-py3-none-any.whl
| Download URL | ai_assisted_vulnerability_triage-0.4.2-py3-none-any.whl |
|---|---|
| Size | 43.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dad7f22632b305525d1b9feed50f1345cd167f8d5293dff0c7845f7d9fecefc8
|
|
BLAKE2b-256 checksum How to use checksums |
c4720340cfd1dc45d07cc85afa2ca873ddb9aa17faa083d9e94860cbcf4a8f85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.
Transparency logSecurity for ai-assisted-vulnerability-triage 0.4.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for ai_assisted_vulnerability_triage-0.4.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.