Three questions every security team asks about every change, and three ways the answers usually go wrong:
- “What’s actually in scope?”: answered with a shrug and a repo path.
- “Did this change introduce the finding?”: answered with “it was probably already there.”
- “Are we good to release?”: answered by whoever’s most optimistic in the room.
CLI 0.6.0 gives you real answers to all three.
What’s new
safe2 evidence scope: inventories the declared deployment relationship of your repo and artifact paths. Scope becomes an explicit, reviewable fact instead of tribal knowledge.
safe2 evidence attribute: diffs normalized findings against an explicitly trusted baseline and classifies each one: inherited (was already there), introduced (this change did it), changed, resolved, or unknown. “Probably already there” is now a checkable claim. When the CLI team ran 0.6.0’s self-attribution, the result was 153 inherited findings and 0 introduced. The kind of statement you can only make with a baseline.
safe2 evidence readiness: produces a canonical release-readiness JSON plus a human-readable Markdown card. Failed checks, incomplete coverage, assumptions, and residual risks stay distinct facts. A clean result can’t hide an incomplete boundary. And the card always ships with release_authorized: false and a named human decision owner. The tool informs the decision; it never makes it.
Also in this release: hardened JUnit intake via defusedxml (because your evidence pipeline shouldn’t be XML-attackable), and the CLI’s own 0.6 self-assessment declarations.
A clean scan result that hides an incomplete boundary is worse than a dirty one. It manufactures confidence. 0.6.0 keeps every uncomfortable fact on the card.
Why upgrade
- Attribution ends the argument. Inherited vs. introduced is computed, not debated.
- Scope is declared, not assumed. You can see exactly what was assessed and what wasn’t.
- Release decisions stay human. The readiness card presents evidence; a named person makes the call. Always.
- The pipeline defends itself. Hardened XML intake and a clean Bandit review mean the evidence tooling isn’t the weak link.
Takeaways
- 0.6.0 answers scope, attribution, and readiness with evidence instead of opinion.
- Self-attribution proof: 153 inherited, 0 introduced findings.
- 785 tests passing; Bandit review clean.
Bottom line: If your release process runs on optimism and “probably fine,” 0.6.0 is the upgrade that replaces both with evidence, and keeps the final call where it belongs: with a human.
Release notes: AI SAFE² CLI 0.6.0 on GitHub, tag 2026-09-17_CLI_0.6.0_Scope_Attribute_Decide.