Lesson 88: Borrow-Train Closeout Certificate - Readout, Ingestion, and Bridge Evidence Baseline for RPG Live-Ops
Direct answer: A borrow-train closeout certificate is a single append-only evidence row (plus policy contract) that proves a borrow-train cycle ended with: reconciled Lesson 87 deck and ingestion alignment, no blocking merges in Lesson 86 lesson78_daily_signal_ingestion_log.csv, and an explicit bridge posture snapshot from Lesson 85. It is the hard stop before you schedule the next borrow train so teams do not stack new borrows on stale evidence.

What this lesson solves
Borrow trains move fast. Without a closeout, the next cycle inherits ambiguous register state: slides already published, ingestion batches still merging, and bridge contradiction rows still open from a regional surge. This lesson gives you a certificate that freezes what was true at train end and what must be true before reopen.
Prerequisites: Lessons 85, 86, 87, and access to your incident_bridge_signal_matrix.csv (or equivalent) plus the latest lesson78_readout_slide_reconciliation_log.csv. Expected time: about seventy-five minutes including one tabletop sign-off dry run.
What you will build
lesson78_borrow_train_closeout_certificate_policy.md(sections below)lesson78_borrow_train_closeout_certificate_log.csv(one row per train cycle closeout)- A cooldown rule for when the next train may start
Step 1 - Define closeout gate classes
| gate | fail signal | action |
|---|---|---|
| G1 – Readout incomplete | any Lesson 87 mismatch_class not none without a waiver-linked exception |
hold closeout |
| G2 – Ingestion pending | any merge_status = pending_owner rows in scope for the train window |
hold closeout |
| G3 – Bridge open | incident_bridge_open_rows_remaining > 0 for contradiction classes your policy treats as blocking |
hold closeout or document explicit carry-forward owner |
| G4 – Borrow ledger | any active borrow from Lesson 80 past borrow_due_utc without renewal or return row |
hold closeout |
If G1–G4 are not green under your written exceptions policy, you do not issue a certificate. You issue a yellow closeout memo instead (same csv with certificate_status = withheld) so the archive still exists.
Step 2 - Author lesson78_borrow_train_closeout_certificate_policy.md
Minimum sections:
- Purpose – bind readout, ingestion, bridge, and borrow-ledger state at train end.
- Scope – which
train_cycle_idlabels count as one borrow train for your studio. - Evidence inputs – filenames and hash fields required from Lessons 85–87.
- Signer matrix – which lanes must initial (divergence, comms, finance, incident command).
- Archive rule – immutable object store or ticket anchor for the certificate row.
- Cooldown – minimum hours between
closeout_at_utcandnext_train_allowed_at_utc.
Step 3 - Author lesson78_borrow_train_closeout_certificate_log.csv
| column | purpose |
|---|---|
closeout_row_id |
monotonic id |
train_cycle_id |
matches naming from Lesson 86 borrow-train batches |
closeout_at_utc |
when certificate was signed |
final_deck_version |
copy from Lesson 87 |
final_readout_publish_at_utc |
when governance copy went live or na if oral-only with notes hash |
final_ingestion_coverage_hash |
from Lesson 87 reconciliation packet |
reconciliation_log_hash |
hash of lesson78_readout_slide_reconciliation_log.csv at closeout |
ingestion_pending_owner_count |
must be 0 unless exception id listed |
incident_bridge_open_rows_remaining |
count from Lesson 85 matrix still open by policy |
bridge_carry_forward_owner |
lane id if any open rows are explicitly accepted into next cycle |
borrow_ledger_unreturned_count |
must be 0 or cite borrow_row_id_ref exceptions |
certificate_status |
issued, withheld, or superseded |
signer_divergence |
initials |
signer_comms |
initials |
signer_incident_command |
initials |
archive_uri |
immutable pointer to stored packet |
next_train_allowed_at_utc |
cooldown exit |
baseline_evidence_hash |
sha256 over the canonical concatenation of the row fields above |
Step 4 - Run the closeout ceremony (45 minutes)
- Verify G1: export reconciliation log; confirm
mismatch_classresolution or waiver ids. - Verify G2: filter ingestion log for
pending_owner; drive merges to zero or document exceptions. - Verify G3: export bridge matrix; either close rows or assign
bridge_carry_forward_ownerwith ticket ids. - Verify G4: run borrow ledger query for overdue rows; return or renew.
- Sign: initials in csv; upload to
archive_uri; announcenext_train_allowed_at_utc.
Step 5 - Tabletop - withheld certificate
Scenario: ingestion is clean but one bridge row stays open because a region still shows yellow dashboards.
Decision rule: either withhold certificate, or downgrade bridge row to monitored with a dated owner action in the matrix, then re-run G3.
Success check: the next train kickoff doc links closeout_row_id, not “we felt done.”
Mini exercise
- Draft one
train_cycle_idfor a fictional May sprint. - Fill a withheld row where
ingestion_pending_owner_count = 1and explain the carry. - Write the single Slack sentence to leadership explaining why the next train is delayed.
Success check: a new staff member can find archive_uri and reproduce hashes.
FAQ
Is this the same as Lesson 78 register export?
No. Lesson 78 owns ongoing register truth. This lesson owns cycle boundary evidence for borrow trains only.
Can we close out without Lesson 87 if we skipped slides?
You still need a reconciliation_log_hash stand-in: hash meeting notes or oral script capture per Lesson 87 FAQ.
Who owns archive_uri?
Release ops or governance tooling lane; not an individual laptop folder.
Lesson recap
You can stop a borrow train cleanly and give the next cycle a signed baseline instead of inherited confusion.
Next lesson teaser
Next, complete the Lesson 89: Next-Train Opening Charter so baseline import, first ingestion window, Day-0 borrow cap, and cooldown exit are signed before the new train takes commits.
Related learning
- Lesson 87: Executive Readout Reconciliation
- Lesson 86: Daily Causal-Factor Ingestion
- Lesson 85: Incident Command Bridge Packet
- How to Score Forecast Calibration Drift Before Release Gates for Live-Ops Teams (2026)
Treat the closeout csv as the train brake log, not a retrospective essay.