feat(control-map): deterministic control->scan LUT crate (CRA, 40 controls)

New standalone crate — the 'transcribing' layer that maps each control to the
static-scan step(s) that check it, or marks it needs_tooling / not_code_checkable.
Authored + human-reviewed: no LLM decides coverage. The LLM only triages the
tool's findings downstream (in the agent), never here.

- ControlMap / ControlEntry / ScanBinding / Coverage types + embedded JSON LUT
- query API: coverage(control), controls_for(tool, cwe), summary()
- CRA LUT: 40 controls -> 9 covered (semgrep/gitleaks/syft/osv) / 16 needs_tooling
  / 15 not_code_checkable
- wired into CI (clippy + test). 4 lib tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Sharang Parnerkar
2026-07-21 10:15:26 +02:00
co-authored by Claude Fable 5
parent d1f42a1a83
commit b7534d1123
6 changed files with 589 additions and 2 deletions
+2
View File
@@ -8,6 +8,7 @@ members = [
"compliance-mcp",
"compliance-smoke",
"werkbank-exec",
"control-map",
]
resolver = "2"
@@ -17,6 +18,7 @@ expect_used = "deny"
[workspace.dependencies]
compliance-core = { path = "compliance-core", default-features = false }
control-map = { path = "control-map" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1", features = ["full"] }