Files
magnus919_agent-skills/release-engineering/templates/release-plan.md
T
usernameandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 2b906565d4 fix(release-engineering): address review findings in DORA asset, cadence, link, metrics script
- Correct the DORA 2024 thresholds table (Elite/High/Medium/Low) and the
  2025 caveat (seven archetypes, report rename; DRR added in 2024) in
  assets/dora-metrics-reference.md to match references/metrics-and-dora.md
- Fix Firefox cadence to the 2-week train and align GitLab's release day
  with the third-Thursday fact in references/release-process-models.md and
  references/release-operations-and-triage.md
- Fix the dead versioning-decision-table.md link in templates/release-plan.md
  to point at ../assets/versioning-decision-table.md
- Scope the deployment-frequency observation window to the selected
  environment, clamp negative change lead time at 0, and require a recovery
  deployment to start at or after the failed deployment finished in
  scripts/dora_metrics.py
- Make the metrics-and-dora.md worked example internally consistent
  (21 total deploys, DRR = 3/21 = 14.3%)
- Reword the version_bump.py docstring to describe the implemented
  pre-release behavior instead of unimplemented graduation
- Add tests for environment-scoped window, CLT clamp, and recovery
  candidate ordering (114 tests pass under pytest and unittest)

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-01 23:07:49 -04:00

7.1 KiB
Raw Blame History

Release Plan — [RELEASE NAME] v[VERSION]

Fill in every [PLACEHOLDER] and delete the italic guidance notes before publishing. Keep this file in the release branch and link it from the release ticket so the audit chain (change-governance-record.md) can reference it.

Metadata

Field Value
Release name [e.g., Aurora — a short, memorable label for the release train]
Version [e.g., 2.4.0 — must match version-control tags and artifact names]
Target date (GA) [YYYY-MM-DD]
Release manager (DRI) [name — exactly one accountable owner]
Status Draft / Frozen / In Flight / Shipped / Rolled Back
Changelog / commit source [link to CHANGELOG.md or the commit range, e.g., main...release/2.4]

1. Overview and Scope

Objective

[One or two sentences: the user/business outcome this release delivers and how success is measured. Make it verifiable — "reduce checkout p95 latency by 20%", "GA the billing API v2", "remediate the CVE-2026-XXXX dependency".]

In Scope

ID Item Type (feat/fix/chore/security) Source (PR/commit)
S-1 [item] feat [#1234]
S-2 [item] fix [abc1234]

Pull scope from the changelog or git log --oneline <from>..<to>; every item should trace to a merged PR or commit. The release_plan_scaffold.py script generates this table from a git range.

Out of Scope

  • [item — and why it is excluded: next release, blocked, product decision]
  • [item]

2. Versioning and Artifacts

Field Value
Version scheme SemVer / CalVer (see versioning-decision-table.md)
Primary artifact(s) [e.g., image registry.example.com/api:2.4.0, dist/api-2.4.0.tar.gz]
Artifact digest(s) [sha256:... — of the exact artifact promoted to production]
SBOM / provenance [link to SBOM (CycloneDX/SPDX) and SLSA provenance attestation]
Promotion policy [build once, promote the same immutable artifact dev → staging → prod]

3. Timeline and Milestones

Milestone Date Owner Exit Criteria
Branch cut [YYYY-MM-DD] [name] release/[version] branch created from main; CI green on branch
Code freeze [YYYY-MM-DD] [name] only blockers merge; freeze announced in release channel
Release candidate build [YYYY-MM-DD] [name] RC artifact built once, signed, digest recorded
Full test pass / UAT [YYYY-MM-DD] [name] acceptance tests + UAT sign-off on the RC artifact
Staging deploy [YYYY-MM-DD] [name] staging parity confirmed; readiness checklist run
GA / go-live [YYYY-MM-DD] [name] go/no-go passed; rollout started
End of rollout [YYYY-MM-DD] [name] 100% of target population on new version
Monitoring window closes [YYYY-MM-DD + 4872 h] [name] post-release monitoring done; release ticket closed

Freeze dates are a commitment: any change after branch cut needs the release manager's explicit sign-off and a re-run of the affected gates.

4. Owners and RACI

Activity R (Responsible) A (Accountable) C (Consulted) I (Informed)
Scope definition [eng lead] [PM] [eng team] [stakeholders]
Build & test [CI owner] [eng lead] [QA] [release manager]
Deploy [deployer] [release manager] [SRE] [eng team]
Rollback decision [release manager] [on-call lead] [SRE, eng lead] [all]
Comms [comms owner] [release manager] [PM] [customers]
Post-release monitoring [SRE] [SRE lead] [eng lead] [release manager]

Every row needs exactly one Accountable. The approver must never equal the deployer (separation of duties — see change-governance-record.md).

5. Risks and Mitigations

ID Risk Probability (H/M/L) Impact (H/M/L) Mitigation Owner
R-1 [e.g., new dependency unavailable in prod registry] M H [e.g., pre-push artifact to prod registry during staging] [name]
R-2 [e.g., schema migration locks the payments table] M H [e.g., expand/contract migration; backfill in background; see rollback-runbook.md] [name]
R-3 [e.g., third-party API rate limit during launch] L M [e.g., staged rollout + circuit breaker] [name]

6. Rollout Plan

Strategy [Canary / blue-green / rolling / ring / feature-flag — see deployment-strategy-matrix.md]
Staged progression [e.g., canary 5% (4 h) → 25% (24 h) → 50% (24 h) → 100%; or ring: internal → beta → 10% → 100%]
Gate between stages [SLI thresholds that must hold before the next stage, e.g., error rate < X%, p95 latency < Y ms]
Feature flags [list flags toggled as part of this release and who flips them]
Auto-rollback trigger [e.g., canary error rate > 2× baseline for 10 min → automatic rollback of canary]
Go/no-go authority [who decides to pause or abort the rollout]

7. Rollback Contingency

  • Decision path, commands, and verification steps: see rollback-runbook.md.
  • Decision authority: [name] (on-call lead) — decision time-boxed to [X] minutes after a confirmed signal.
  • Known-good artifact: [e.g., registry.example.com/api:2.3.1 with digest sha256:...]
  • Special cases: [list anything unusual — irreversible migrations, client-side changes that cannot be recalled, data changes]

8. Communication Plan

Audience When Channel Message Owner
Internal engineering [branch cut / RC / GA] [#releases] [release manager]
Support / on-call [before GA] [#support-handoff] [comms owner]
Customers / status page [GA + during rollout] [status page, release notes] [PM]
Executives [GA] [email / weekly] [release manager]

9. Post-Release Monitoring

What Where Window Alert Threshold
[e.g., deployment frequency & change failure rate] [DORA dashboard] [4872 h] [n/a — trend]
[e.g., checkout p95 latency] [Grafana] [72 h] [> 300 ms for 15 min]
[e.g., payment error rate] [Sentry / Datadog] [72 h] [> 0.5% for 10 min]
[e.g., support tickets mentioning new feature] [ticketing] [1 week] [n/a — triage]

10. Sign-offs

Role Name Date Decision
Engineering lead (quality) Approved / Not approved
SRE / operations (rollback + monitoring ready) Approved / Not approved
Product owner (scope + comms) Approved / Not approved
Release manager (final) GO / NO-GO / GO WITH CONDITIONS

GO WITH CONDITIONS requires named conditions, owners, and deadlines in the table below.

Condition Owner Deadline Status
[condition] [name] [date] Open / Done