Back to Beads

Release Gate: be-nnqp + be-4b63 — bd stats --no-blocked flag

release-gates/be-nnqp-be-4b63-gate.md

1.2.13.0 KB
Original Source

Release Gate: be-nnqp + be-4b63 — bd stats --no-blocked flag

PR: https://github.com/gastownhall/beads/pull/4022 Branch: feat/be-nnqp-be-4b63-stats-no-blocked (quad341/beads) Date: 2026-05-21 Deployer: beads/deployer

Gate Result: PASS

#CriterionEvidenceResult
1Review PASS presentbe-98y3: PASS — "nil-guarding correct; LOW noted (JSON schema change int→*int), non-blocking"✅ PASS
2Acceptance criteria metSee below✅ PASS
3Tests passCI run 26001556038 — all 40 checks PASS (ubuntu, macOS, Windows smoke, Embedded Dolt cmd 1–20, Storage, lint, fmt, doc freshness, upgrade smokes)✅ PASS
4No high-severity findingsbe-98y3: no blockers — LOW-1 is JSON schema change (blocked_issues: null vs 0) with explicit opt-in signal (blocked_count_skipped: true)✅ PASS
5Final branch is cleangit status — clean; only rig artifacts untracked✅ PASS
6Branch diverges cleanly from main3 commits ahead of origin/main; merge state CLEAN✅ PASS

Acceptance Criteria Verification (be-nnqp + be-4b63)

CriterionEvidenceResult
bd stats --no-blocked completes (skips blocked scan)noBlocked=true path calls store.GetStatisticsNoBlocked(ctx) instead of store.GetStatistics(ctx)
bd stats (default) behavior unchangedConditional flag check; non-flag path unchanged
Human output shows Blocked: (skipped) with muted styleui.MutedStyle.Render("(skipped)") on stats.BlockedIssues == nil path
JSON: blocked_issues is null when --no-blockedBlockedIssues *int \json:"blocked_issues"`` — pointer, nil when no-blocked
JSON: blocked_count_skipped: true when --no-blockedBlockedCountSkipped: stats.BlockedIssues == nil in output struct
JSON: blocked_count_skipped absent (omitempty) in default\json:"blocked_count_skipped,omitempty"`` on the bool field
Blocked: 0 renders in plain text (not red)else branch (not warning) when BlockedIssues != nil && *BlockedIssues == 0 — be-4b63 fix
Blocked: N>0 renders in warning/red styleui.RenderFail(...) when *BlockedIssues > 0
All callers nil-guardedReviewer confirmed "nil-guarding correct"
CLI docs regenerated4ea5bd8fd docs(cli): regen CLI reference for bd status --no-blocked

Note on LOW-1 (reviewer): BlockedIssues int→*int is a JSON schema change: callers now receive blocked_issues: null instead of blocked_issues: 0 when --no-blocked is used. Mitigated by blocked_count_skipped: true signal. Deliberate opt-in flag — acceptable.

Commits

SHADescription
ddf53438cfeat(stats): add --no-blocked flag; fix Blocked:0 red render (be-nnqp, be-4b63)
ceb15695bfix(stats): F1 BlockedCountSkipped reflects actual nil; F2 Ready shows (skipped) with --no-blocked
4ea5bd8fddocs(cli): regen CLI reference for bd status --no-blocked