Repository navigation
consort 0.5.0 — the security review tier
Security review grows real teeth: a deterministic scanner tier and a blind security side-agent join the cross-model duet. Rule-based scanners and model reviewers catch nearly disjoint defect sets — so 0.5.0 runs both, and neither substitutes for the other.
Scanner tier (model-free third voice)
scripts/consort-scan.sh+scan-to-findings.mjs— runs Trivy when on PATH (dependency CVEs, leaked secrets, IaC misconfigurations) and SonarQube when a server is reachable (SONAR_HOST_URL+SONAR_TOKEN+sonar-project.properties), including the CE-task poll and issue/hotspot fetch. Output lands in the sharedfindings.schema.json, so scanner findings merge alongside model findings.- Loud degradation, never silent: every skipped or failed scanner leg is reported on stderr; a scan that ran nothing says "this scan verified nothing" instead of passing as clean. Failed fetches and malformed scanner output are failures, not empty-but-clean results.
- Hardened by its own review gate: tokens never appear in process argv, the CE task URL is validated against the configured host,
.scannerworkstays in an invocation-owned temp dir, truncated result pages warn, Maven-style project keys with colons parse correctly. - New command:
/consort:scan— scanner tier standalone, with reachability triage.
Blind security side-agent
agents/security-reviewer— a security-only subagent the review loop spawns in parallel with the cross-vendor pass. Non-inheriting by contract: it reads the diff without the author's assumptions.- No shell by design. The agent gets Read/Grep/Glob only and receives the diff as a file written by the principal — a reviewer of possibly-hostile diffs must not be able to execute anything the diff says.
- Findings appear as their own report column and are treated as leads, verified like any cross-model finding. Same-vendor, so it complements — never satisfies — the cross-vendor requirement.
Third built-in methodology pack
rules/security-review.md, always injected into both reviewers: authorization scoping, injection at construction sites, trust-boundary shifts, secrets in motion, dangerous sinks, supply chain. Scanner findings are deterministic evidence; the model owes each one a reachability verdict. Live credentials and criticals in newly added dependencies gate regardless of diff scope.
Review reports now carry five sections: Both agree / Codex only / Claude only / Security agent / Scanners — a report missing the last two is incomplete even when the duet ran.
Full details in CHANGELOG.md.