Fleet does not run CI, and its merge gate does not read CI check results. The Go merge gate behind fleet release check <pr> evaluates review-approval signals only: it returns mergeable when a reviewer's pr_approved fabric event plus an approved label are present, or when GitHub's reviewDecision is APPROVED — and not superseded by a later pr_changes_requested. It does not inspect whether your CI checks passed or failed.
Enforcing failing CI as a hard merge blocker is the job of GitHub branch protection, not Fleet's gate. Configure required status checks on your branch and GitHub itself will block the merge until they pass; Fleet's release-manager performs the actual merge through the gh CLI, so a branch-protection failure surfaces as a refused merge. Fleet never starts CI jobs. (ci_required is honored by the release-manager skill as a convention, not parsed by the Go binary — and even there it does not make the gate read check results.)