Your CI pipeline probably runs a few security scanners already — Trivy, Semgrep, Bandit, gitleaks, the GitHub CodeQL action. Each of them produces a SARIF report. Each of those reports lives in its own GitHub Code Scanning view, far from the PR review where humans are actually reading. Sigilix’s SARIF evidence channel (ARC-188) bridges the gap. Upload a SARIF v2.1.0 report as a PR artifact and Sigilix pulls it in, parses it, and injects the high-severity findings into the synthesizer as authoritative evidence.Documentation Index
Fetch the complete documentation index at: https://docs.sigilix.ai/llms.txt
Use this file to discover all available pages before exploring further.
What you need to do
Three things, all in your CI workflow:1. Produce a SARIF v2.1.0 report
Most scanners support--format sarif natively. Examples:
2. Upload the report as a PR artifact
.sarif.
3. That’s it
The next review fires after the CI run completes. Sigilix lists the PR’s artifacts via the GitHub Actions API, downloads any SARIF blobs, parses them, and routes their findings into the synthesizer.Supported scanners
Sigilix is tested against:| Scanner | Status |
|---|---|
| Trivy | first-class — fields parsed including image-layer attribution |
| Semgrep | first-class |
| gitleaks | first-class |
| GitHub CodeQL | first-class |
| Bandit (Python) | parsed via generic SARIF v2.1.0 |
ESLint with --format sarif | parsed via generic SARIF v2.1.0 |
| Anything else with SARIF v2.1.0 output | parsed via generic SARIF v2.1.0 |
Severity mapping
SARIF reports each finding with alevel and a rank. Sigilix maps:
| SARIF level | Rank | Sigilix severity |
|---|---|---|
error | any | critical |
warning | ≥ 70 | critical |
warning | < 70 | warning |
note | any | info |
none | any | suppressed |
What “authoritative evidence” means
Findings that come in via SARIF aren’t subject to the LLM specialist’s cross-reference check. They’re treated as ground truth — your scanner ran, your scanner said there was an issue, Sigilix posts it. The synthesizer does still:- Deduplicate against overlapping LLM findings (an LLM-flagged SQL injection at the same line as a Semgrep-flagged SQL injection becomes one finding).
- Provide a unified rendering (the inline comment has the same shape as native Sigilix findings).
- Set verdict + comment counts based on the merged set.
What it looks like in the review
A finding sourced from SARIF carries a small badge:Trivy via SARIF) tells the reader the finding came from external evidence, not from one of Sigilix’s own specialists.
Adversarial inputs
SARIF is just JSON, and a malicious or buggy scanner could produce a SARIF report with thousands of findings or with garbage data. Sigilix defends against this:| Threat | Mitigation |
|---|---|
| Huge SARIF (10K+ findings) | Capped at 100 findings per report; rest summarized in a footnote |
| Findings on lines that don’t exist in the diff | Dropped silently (same as LLM findings that fail the line-validity check) |
| Findings on files outside the repo | Dropped silently |
Path-traversal in SARIF uri fields | Sanitized before render |
| Embedded HTML/Markdown in finding text | Escaped before render |
Disabling
- You don’t produce SARIF artifacts in CI (the channel is a no-op anyway, but disabling silences any future warning if you do start producing them).
- You produce SARIF but want it surfaced only in GitHub Code Scanning, not in Sigilix reviews.
Read next
Review Provenance
Provenance tracking + stale-marker detection for the whole review.
Dependency Vulnerabilities
Sigilix’s built-in npm vulnerability scan.

