Release Prep FAQ
What's the difference between release-prep and release-notes?
Release-prep is the deterministic gate — it runs real bandit/ruff/pytest against hard thresholds and returns APPROVED or BLOCKED. Release-notes is advisory — it drafts a changelog and an LLM go/no-go and never blocks.
How much does the gate cost?
$0 by default. The agents are rule-based
(RELEASE_LLM_MODE=simulated) and make no API calls. LLM enhancement
is opt-in with RELEASE_LLM_MODE=real plus a key.
Why did a BLOCKED run still exit 0?
success means the assessment ran; the verdict is in
metadata["approved"]. Branch on that, not the exit code.
How do I change the thresholds?
Pass quality_gates={...} to ReleasePrepTeam /
ReleasePrepTeamWorkflow using the keys max_critical_issues,
min_coverage, min_quality_score, min_doc_coverage.
Is there an MCP tool for the gate?
No. The gate is CLI / Python only — run attune workflow run release-gate. The advisory (release_notes) is the MCP surface.
Which calls are async?
Both ReleasePrepTeamWorkflow.execute and
ReleasePrepTeam.assess_readiness are coroutines — await them.