feat(agent): wire control triage into the scan pipeline (end-to-end SAST)
CI / Check (push) Skipped
CI / Check (pull_request) Successful in 5m59s
CI / Detect Changes (pull_request) Skipped
CI / Deploy Agent (pull_request) Skipped
CI / Deploy Dashboard (pull_request) Skipped
CI / Deploy Docs (pull_request) Skipped
CI / Deploy MCP (pull_request) Skipped

After the deterministic tools run, the orchestrator's new control_triage stage
stamps each finding with the compliance control(s) it is evidence for and flags
control false positives. triage_repo_findings builds control specs from the
ingested OSCAL catalog, reads a code window per finding, and runs ControlTriage
(control-map LUT -> grounded judge). Adds Finding.control_refs (serde default);
the ground gate stamps it. Opt-in via BREAKPILOT_BASE_URL. 2 region tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Sharang Parnerkar
2026-07-21 10:28:01 +02:00
co-authored by Claude Fable 5
parent f712ba1e60
commit 075a4cb81b
6 changed files with 165 additions and 4 deletions
+1 -1
View File
@@ -92,7 +92,7 @@ mod tests {
];
let findings = checker.check(&spec(), &regions, "repo").await;
assert_eq!(findings.len(), 1);
assert_eq!(findings[0].rule_id.as_deref(), Some("cra-ai-8"));
assert_eq!(findings[0].control_refs, vec!["cra-ai-8".to_string()]);
assert_eq!(findings[0].line_number, Some(2));
}