mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-22 23:21:13 +00:00
6044a33197
Bundled hygiene commit before cycle-3 /implement (AZ-776, AZ-777). Mixes two concerns by user choice (autodev option B): - Cycle-3 autodev artifacts not yet committed by Step 9 (new-task): task specs for AZ-776 / AZ-777 under _docs/02_tasks/todo/ and the updated _docs/02_tasks/_dependencies_table.md. - Accumulated skill / rule tooling maintenance under .cursor/ (skills: autodev, code-review, decompose, deploy, implement, new-task, plan, refactor, retrospective, test-spec; rules: coderule, cursor-meta, meta-rule, testing; new release skill scaffolding). - Autodev bootstrap state: _docs/_autodev_state.md (step 10 in_progress) and _docs/_process_leftovers/2026-05-11_d_cross_cve_1_opencv_pin_deferred.md (replay timestamp refreshed; gtsam 4.2 still numpy<2-only). Co-authored-by: Cursor <cursoragent@cursor.com>
115 lines
3.2 KiB
Markdown
115 lines
3.2 KiB
Markdown
# Release Report — {version} → {env}
|
||
|
||
- **Date**: {YYYY-MM-DD HH:MM} {timezone}
|
||
- **Operator**: {user}
|
||
- **Strategy**: {all-at-once | blue-green | canary | manual}
|
||
- **Verdict**: {Released | Released-with-override | Rolled-Back | Aborted}
|
||
- **Verdict reason**: {one-line summary}
|
||
|
||
## Pre-Release Gate (Phase 1)
|
||
|
||
### Acceptance Criteria
|
||
|
||
| AC ID | Status | Evidence |
|
||
|-------|--------|----------|
|
||
| AC-001 | Met / Unmet | path:section, test report, etc. |
|
||
|
||
### Test Status
|
||
|
||
| Suite | Pass | Fail | Skip | Source |
|
||
|-------|------|------|------|--------|
|
||
| Functional | N | N | N | _docs/03_implementation/{batch}.md |
|
||
| Performance | N | N | N | _docs/06_metrics/perf_*.md |
|
||
|
||
### Change Summary
|
||
|
||
| Component | Tickets | Type |
|
||
|-----------|---------|------|
|
||
| {component} | TKT-001, TKT-002 | feature / fix / breaking / security |
|
||
|
||
### Rollback Plan
|
||
|
||
- Previous version: `{previous-version}` (registry digest: `{sha}`)
|
||
- Rollback script: `scripts/deploy.sh --rollback`
|
||
- Rollback target verified pullable: yes / no
|
||
- Rollback target verified bootable in target env: yes / no
|
||
|
||
### Restrictions / Approvals
|
||
|
||
- Change-window restrictions: {none | description}
|
||
- Manual approvals required: {none | reference to approval file}
|
||
|
||
### Tracker State at Gate
|
||
|
||
- Tickets in scope: {N}
|
||
- Tickets blocking release: {0 — list any}
|
||
|
||
## Strategy Select (Phase 2)
|
||
|
||
- Recommended: {strategy} — reasoning
|
||
- Chosen: {strategy} — reasoning (if differs from recommended)
|
||
|
||
## Execute (Phase 3)
|
||
|
||
- Start: {timestamp}
|
||
- End: {timestamp}
|
||
- Exit code: {0 / non-zero}
|
||
|
||
```
|
||
<scripts/deploy.sh stdout/stderr stream, with timestamps>
|
||
```
|
||
|
||
## Smoke Test (Phase 4)
|
||
|
||
- Mode: {/test-run --prod-smoke | manual smoke set}
|
||
- Start: {timestamp}
|
||
- End: {timestamp}
|
||
|
||
| Test | Result | Notes |
|
||
|------|--------|-------|
|
||
| {name} | Pass / Fail | response time, status, etc. |
|
||
|
||
## Watch Window (Phase 5)
|
||
|
||
- Duration: {minutes}
|
||
- Cadence: {minutes per poll}
|
||
- Backend: {observability source — Prometheus, CloudWatch, Datadog, etc.}
|
||
|
||
| T+min | error_rate | rps | p99_latency | saturation | health | notes |
|
||
|-------|------------|-----|-------------|------------|--------|-------|
|
||
| 0 | … | … | … | … | OK | … |
|
||
| 1 | … | … | … | … | OK | … |
|
||
| … | … | … | … | … | … | … |
|
||
|
||
### Threshold breaches
|
||
|
||
- {None | "p99 latency 1.7× baseline at T+8 — soft breach, user accepted continuation"}
|
||
|
||
## Commit or Rollback (Phase 6)
|
||
|
||
### If Released
|
||
|
||
- Tracker tickets moved: {list}
|
||
- Git tag pushed: {tag} → {sha}
|
||
- Retrospective scheduled: yes — {/retrospective --cycle-end output path}
|
||
|
||
### If Rolled-Back
|
||
|
||
- Trigger: {auto / user-elected}
|
||
- Reason: {phase + one-line cause}
|
||
- Rollback start: {timestamp}
|
||
- Rollback end: {timestamp}
|
||
- Post-rollback smoke: pass / fail
|
||
- Tracker tickets moved back: {list}
|
||
- Incident retrospective scheduled: yes — {/retrospective --incident output path}
|
||
|
||
### If Aborted
|
||
|
||
- Phase that aborted: {1 / 2 / 3 / 4 / 5}
|
||
- Reason: {one-line cause}
|
||
- No live-system changes attempted: yes / no (if live changes, document under Phase 3 above and treat as Rolled-Back instead)
|
||
|
||
## Lessons (one-liners; full incident retro if Rolled-Back / Released-with-override)
|
||
|
||
- {Optional: short one-liner observations the operator wants the next /retrospective to consider}
|