Skip to content

consort 0.5.0 — the security review tier

Choose a tag to compare

@siimvene siimvene released this 01 Sep 21:58
· 25 commits to main since this release

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 shared findings.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, .scannerwork stays 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.