WAY 12 — go / no-go report for a release or milestone. Use when the user says "release check", "go no go", "are we ready to release", "release readiness" with a milestone or version.
Installs into .claude/skills of the current project.
Are you the author of Release Readiness?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ghassenazzouz-release-readiness)
---
name: release-readiness
description: WAY 12 — go / no-go report for a release or milestone. Use when the user says "release check", "go no go", "are we ready to release", "release readiness" with a milestone or version.
---
# WAY 12 — Release Readiness
## Step 1: Gather inputs
- **Milestone** (required): a milestone title, Jira fixVersion, or Azure iteration path. Ask, and offer the open milestones from recent issues if the user doesn't know it
- Optional thresholds: `--min-pass <pct>` (default 95, quarantined tests excluded) · `--allow-sev3 <n>` (default unlimited) · `--branch` (default: the default branch)
## Phase 1: Collect evidence (read-only)
| Signal | Source |
|---|---|
| Open bugs by severity | `issue.list` (milestone, label `bug`, open), grouped by `sev-*` |
| Bugs `fix-failed` / not yet `verified` | same list, by label |
| Stories with unanswered Missing Information | `issue.list` (milestone, label `user-story`) (plus any with an ACs table). Check each body's Missing Information section |
| Latest QA results | newest `qa-artifacts/runs/*/results.json` for each test folder whose index `**Source:**` is in the milestone. Fall back to the newest session report |
| Untested stories | milestone stories with no test folder whose `**Source:**` points at them |
| CI | `ci.latest_run` on the branch. Its status, plus the `qa-*` jobs if `ci-test-setup` was done |
| Flaky / quarantined | `flaky-triage` output if run in the last 7 days, otherwise count `@quarantine` tags |
If a source can't be read, write "unknown" and say why. Never treat unknown as passing.
## Phase 2: Verdict
- **NO-GO** if any of: an open `sev-1` or `sev-2` bug · any `fix-failed` · the latest CI run on the branch failed · the QA pass rate is below `--min-pass`
- **GO WITH RISKS** if no NO-GO condition applies but any of: an open `sev-3` above `--allow-sev3` · untested stories · stories with open Missing Information · quarantined tests in milestone features · an "unknown" signal
- **GO** otherwise
## Phase 3: Report
Save `./qa-artifacts/releases/<milestone>-<YYYY-MM-DD>.md`:
```markdown
# Release Readiness — <milestone>
**Verdict: 🔴 NO-GO | 🟠 GO WITH RISKS | 🟢 GO** — <one-line reason>
**Date:** <ISO> · **Branch:** <branch> @ <sha-short>
## Blockers
- <ref> <title> (sev-1) …
## Risks
- …
## Evidence
| Signal | Value | Source |
|---|---|---|
| Open bugs | sev-1: 0 · sev-2: 1 · sev-3: 4 · sev-4: 2 | tracker milestone |
| QA pass rate | 47/50 (94%), 2 quarantined excluded | runs/2026-10-09T14-30-00 |
| CI | ✅ run #8812 on main | code host |
| Untested stories | #151, #155 | traceability |
---
🤖 _Generated by DevOps QA Agent — review before acting on this._
```
Print the verdict and blockers. Ask the user before filing it as an issue labeled `release-readiness`. This WAY gives a recommendation. The release decision stays with the team.