Lesson 30: Multi-Patch Rolling Stability Dashboard for Release-Train Aggregation

Lesson 29 gave you a two-week tracker per promoted build.

Shipping AI-heavy RPGs rarely stops at one patch. You get a train of small releases: hotfixes, balance passes, dialogue prompt tweaks, and dependency bumps. If each patch only exists inside its own fourteen-day sheet, you lose the cross-patch story: recurring yellows, slow-burn regressions, and dialogue drift that only shows up after the second or third change.

This lesson adds a multi-patch rolling stability dashboard that aggregates tracker rows without replacing your Lesson 28 go or yellow or red briefing packet. Briefing stays per promotion. The dashboard answers a different question: is the release train healthy across time?

Pet Shop Icon illustration for multi-patch rolling stability dashboard lesson

What You Will Build

By the end of this lesson, you will have:

  1. A column-per-build grid that imports the closing state from each Lesson 29 tracker
  2. A rolling window rule (for example, last three promotions) so the sheet does not grow forever
  3. A yellow recurrence detector that flags the same mitigation theme twice in one window
  4. A one-page executive strip that never duplicates Lesson 28 evidence, only summarizes train health

Step 1 - Separate briefing from aggregation

Keep these artifacts distinct:

Artifact Owned by Cadence
Lesson 28 briefing packet Release captain Each promotion decision
Lesson 29 fourteen-day tracker Live-ops owner Each promoted build
Lesson 30 rolling dashboard Product plus engineering Continuous across builds

If you merge them, stakeholders will confuse decision-time evidence with trend monitoring. That confusion creates either too many meetings or false calm.

Step 2 - Define the minimum row set you aggregate

From each closed Lesson 29 file, copy only:

  • build ID or semantic version
  • promotion date
  • final yellow count (open versus closed)
  • top stability signal (crash-free sessions proxy or your chosen KPI)
  • dialogue or AI health signal (error rate, moderation flags, or human QA score)
  • one-line train note (what changed in this patch)

Do not paste full log links into the dashboard body. Link outward once per column to your evidence store.

Step 3 - Build the rolling window mechanically

Pick a window length your team will actually maintain:

  • Three promotions is a good default for small teams
  • Stretch to four only if your release cadence is slower than two weeks between ships

When a fourth column appears, archive the oldest column to a cold tab or CSV so the main view stays readable.

Step 4 - Add yellow recurrence rules

Create a simple rule engine you can scan in ten seconds:

  • Repeat same mitigation label twice in the window -> flag recurrence risk
  • Yellow count increases two columns in a row while player sentiment is flat -> flag measurement drift
  • Dialogue health improves but stability worsens -> flag tradeoff review

These flags are not accusations. They are scheduling hints for the next Lesson 28 packet focus areas.

Step 5 - Publish the executive strip

Across the top of the dashboard, maintain five cells only:

  1. Train status (green, yellow, red) for the whole window, not per build
  2. Open yellow themes (max three bullets)
  3. Next hard gate (date plus decision type)
  4. AI-specific risk (model or prompt change in flight)
  5. Owner for the next update

This strip should be paste-safe into email or chat without editing.

Mini Exercise

Create rolling_stability_train.csv with:

  • header row: build_id, promotion_date, yellow_open_close, stability_signal, dialogue_signal, train_note, recurrence_flag
  • three mock builds with one intentional recurrence flag set to true

Compare your executive strip against the mock data. If the strip is longer than five bullets total, trim until it fits.

Troubleshooting

The dashboard becomes a wall of numbers

You added too many raw metrics. Roll up to at most two numeric signals per build column plus flags.

Teams stop updating Lesson 29 because the dashboard exists

Make Lesson 29 completion a merge gate for column entry. No closed tracker, no new column.

Executives ask for the briefing packet again

Point them to Lesson 28 for decision evidence. Offer the executive strip plus one link bundle, not a second packet.

FAQ

How is this different from a generic BI dashboard

This dashboard is opinionated to the Lesson 29 row contract, so you cannot silently swap metrics mid-train without noticing.

Do we need tooling beyond spreadsheets

No. A shared spreadsheet or Notion table is enough until you outgrow three rolling columns.

What if we ship two builds inside one Lesson 29 window

Treat them as one logical column with two build IDs in the cell, or reset Lesson 29 per the hotfix rule from Lesson 29 FAQ, then add one aggregated column.

Lesson Recap

You can now:

  • aggregate post-patch stability across a release train
  • spot recurring yellow themes before they become emergencies
  • keep Lesson 28 briefing packets single-purpose
  • communicate train health in one short strip

Next Lesson Teaser

Continue with Lesson 31: Rolling Stability Dashboard CSV Export and Webhook Ingest Automation to add scheduled CSV ingest and optional signed webhooks without losing the Lesson 29 row contract.

Related Learning

Bookmark this dashboard template the first week you run overlapping patches on a live RPG branch.