.agents/skills/final-release-review/references/review-checklist.md
git fetch origin --tags --prune.v*): git tag -l 'v*' --sort=-v:refname | head -n1 or use .agents/skills/final-release-review/scripts/find_latest_release_tag.sh.git diff --stat BASE...TARGET, git diff --dirstat=files,0 BASE...TARGET, git log --oneline --reverse BASE..TARGET.git diff --name-status BASE...TARGET, git diff --word-diff BASE...TARGET -- <path>.🟢 GREEN LIGHT TO SHIP when no concrete blocking trigger is found.🔴 BLOCKED only when at least one blocking trigger has concrete evidence and a defined unblock action.Evidence: specific file/commit/diff/test signal.Impact: one-sentence user or runtime effect.Action: concrete command/task with pass criteria.BLOCKED report must contain an Unblock checklist with at least one executable item.Use all of the existing breaking-change, regression, dependency, documentation, and improvement signals below. The goal is high recall: collect plausible candidates without prematurely reporting them.
Read changed tests as behavioral documentation. Identify the intended outcome, covered branches, deleted assertions, new skips, and missing failure paths, but do not rerun repository unit tests merely to accumulate passing evidence.
For each candidate:
.agents/references/README.md.Use these contract comparisons when relevant:
| Changed surface | BASE-versus-TARGET audit |
|---|---|
| Public API | Exports, import identity, signatures, positional parameter order, dataclass field order, defaults, enums, and documented behavior |
| Runner and run items | Provider output, result items, semantic stream events, session history, replay, handoffs, and RunState |
| Tool execution | Planning, approvals, guardrails, invocation, hooks, output conversion, persistence, cancellation, and cleanup |
| Conversation and sessions | First turn, follow-up, retry, filtering, handoff, compaction, interruption, and resume |
| Model and provider adapters | Model/settings resolution, request conversion, streaming terminals, provider data, errors, retries, and transport ownership |
| Persisted schemas and config | Serialized shape, version support, backward reads, migrations, defaults, environment variables, and wire compatibility |
| Package boundary | Supported Python versions, dependencies, extras, distribution contents, public imports, and built wheel/sdist behavior |
Select only the axes implicated by the diff:
If static inspection cannot resolve a concrete semantic question, run the smallest public-path or installed-artifact probe that can. Prefer an identical BASE and TARGET scenario. A focused unit test is a fallback for reproducing a specific failure, not the default release validation.
pyproject.toml/uv.lock changes, removed or renamed extras.skip/todo markers.Unblock checklist section when (and only when) gate is BLOCKED.