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.

Pixel-style dogs illustration suggesting a closed pack and a clean handoff baseline

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

  1. lesson78_borrow_train_closeout_certificate_policy.md (sections below)
  2. lesson78_borrow_train_closeout_certificate_log.csv (one row per train cycle closeout)
  3. 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:

  1. Purpose – bind readout, ingestion, bridge, and borrow-ledger state at train end.
  2. Scope – which train_cycle_id labels count as one borrow train for your studio.
  3. Evidence inputs – filenames and hash fields required from Lessons 85–87.
  4. Signer matrix – which lanes must initial (divergence, comms, finance, incident command).
  5. Archive rule – immutable object store or ticket anchor for the certificate row.
  6. Cooldown – minimum hours between closeout_at_utc and next_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)

  1. Verify G1: export reconciliation log; confirm mismatch_class resolution or waiver ids.
  2. Verify G2: filter ingestion log for pending_owner; drive merges to zero or document exceptions.
  3. Verify G3: export bridge matrix; either close rows or assign bridge_carry_forward_owner with ticket ids.
  4. Verify G4: run borrow ledger query for overdue rows; return or renew.
  5. Sign: initials in csv; upload to archive_uri; announce next_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

  1. Draft one train_cycle_id for a fictional May sprint.
  2. Fill a withheld row where ingestion_pending_owner_count = 1 and explain the carry.
  3. 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

Treat the closeout csv as the train brake log, not a retrospective essay.