What’s in your scan results
Understanding findings
Each finding shows: What’s broken:title- Clear description of the issuecategory- OWASP ASI01-ASI10 category (industry-standard mapping)evidence- The actual code that triggered the finding
ai_spm_severity- Critical, High, Medium, or Lowcvss_scores.base_score- Industry-standard CVSS v4 score (0.0-10.0)
file_path- Exact file locationline_number- Line where the issue appearsremediation- How to fix it
When a scan is incomplete
flintai scan runs several static analysis tools alongside its AI reasoning. If one of them isn’t available, the scan finishes without it rather than failing. The summary names the tool under Skipped and warns that the findings are partial.
In practice this is usually OpenGrep. It’s a standalone binary rather than a Python package, so pip install flintai-cli doesn’t bring it along.
Your results file records the same detail under scan_metadata.tools_skipped, with a reason for each tool:
tools_used also lists the AI reasoning and triage layers with the model each one ran on, so you can tell from the results file alone whether those layers ran.
A skipped tool means a whole family of checks never ran, so a short findings list isn’t proof of a clean codebase. Install what’s missing, then re-scan. In CI, check that scan_metadata.tools_skipped is empty before you treat a scan as passing.
What to do next
Clean scan (no findings)?- Attach your results file (
scan_<timestamp>.jsonby default) to your PR as proof - Ship with confidence
1
Review findings
Check each finding’s file path and line number.
2
Read remediation
Follow the fix guidance provided for each issue.
3
Fix the issues
Apply the recommended fixes to your agent code.
4
Re-scan to verify
5
Ship with proof
Attach the clean scan to your PR.
How severity is determined
Flint AI Scan uses CVSS v4.0 (Common Vulnerability Scoring System) to calculate severity:
Severity comes from the CVSS vector, not subjective judgment. This gives you standardized risk scores you can show to security teams.
Advanced: What Flint AI CLI filtered out
Your scan JSON may include:triage_dismissed - Findings that describe expected behavior for your agent’s purpose
triage_downgraded - Findings with disproportionate severity that were adjusted
This transparency shows what the Flint AI CLI AI reasoning layer filtered and why, so you can verify the triage decisions.
See How scanning works for details on the 4-layer pipeline.
Next steps
Run scans in CI
Scan every pull request and keep the results as build artifacts. Validation stops depending on anyone remembering to run it, and you build a history to compare against.
Send findings to your security tools
Write SARIF with
--format sarif and upload it to GitHub code scanning. Findings land in the Security tab and as annotations on the pull request.