Lesson 277: OBS February Pager Clip Receipt on BUILD_RECEIPT (2026)

Direct answer: Before February 2027 Steam Next Fest live-week pager nights, promote february_pager_clip_receipt_v1.json with P1–P6 gates—timebox + KFM latch, FebruaryPager_10s (10 s Replay), labeled test clip in pager-inbox/, pager_clips[] hash crosswalk beside the timebox receipt, documented lane rollover, and BUILD_RECEIPT february_pager_clip_ok: true. Pair OBS pager clip preflight (Guide #38), February live timebox, 5-night pager challenge, and cousin Lesson 263 (writable path).

Lesson hero for OBS February pager clip BUILD_RECEIPT receipt

Why this matters now (February 2027 live week)

February 2027 live week hour three: a crash lands in Discord, the pager engineer saves a 120 s facilitator clip into the batch inbox, Whisper runs overnight, and the 5-night P2 stand-up has no quoted player words with a matching build_label. Timebox blog reserves pager hours—277 wires the clip evidence column so facilitators cannot claim GREEN pager capture on Slack screenshots alone.

Lesson 276 closed November triage; 277 opens the February live-ops arc (through capstone 283). Guide #38 is the ninety-second gate—277 is the BUILD_RECEIPT milestone with promotion jq.

Promotion order on BUILD_RECEIPT: fest_live_timebox_okpath_writable_ok (Lesson 263) → february_pager_clip_oksame-day Whisper W4.

Beginner path (profile → clip → receipt)

Step Action Success check
1 Confirm timebox + KFM path GREEN P1 latch
2 Duplicate OBS profile → FebruaryPager_10s 10 s buffer, pager inbox
3 Save 10 s Replay with build_label in filename .mkv in pager-inbox/
4 Hash clip; append timebox pager_clips[] P4 crosswalk
5 File rollover markdown if owners swap P5 handoff
6 File receipt + BUILD_RECEIPT february_pager_clip_ok: true

Time: ~45 minutes first live week; ~12 minutes nightly when Guide #38 template exists.

Common mistake: Reusing Playtest_48k_120s for pager saves—same-day Whisper W5 then counts menu tours as P0.

Developer path (gates P1–P6)

Gate Check Fail when
P1 Timebox + KFM latch Missing fest_live_timebox_ok or path_writable_ok
P2 FebruaryPager_10s pinned Still on 120 s batch profile
P3 Labeled 10 s test clip Filename lacks build_label / wrong folder
P4 Hash in timebox pager_clips[] Schemas merged or hash missing
P5 Lane rollover ritual Shift change with no handoff file
P6 Receipt + BUILD_RECEIPT Bool flipped without verify exit 0

Cousin receipt crosswalk

Field Cousin (263 KFM path) Cousin (258 uniform batch) This lesson (277)
Schema obs_replay_path_kfm_receipt_v1 replay_buffer_uniform_receipt_v1 february_pager_clip_receipt_v1
Scope Writable inbox after OneDrive KFM 120 s facilitator fragments 10 s live-week pager clips
BUILD_RECEIPT path_writable_ok Uniform / concat cousins february_pager_clip_ok
Path release-evidence/playtest/replay-path/ playtest-vod/inbox/ playtest-vod/pager-inbox/

Do not merge JSON schemas—reference paths in cousin_receipts only.

P1 — latch timebox + writable path

jq -e '.fest_live_timebox_ok == true' BUILD_RECEIPT.json
jq -e '.path_writable_ok == true' release-evidence/playtest/replay-path/OBS_REPLAY_PATH_KFM_RECEIPT.json
jq -e '.days[] | select(.fest_day=="D1") | .pager_cap_hours > 0' \
  release-evidence/ops/FEBRUARY_LIVE_TIMEBOX_RECEIPT.json

Fail: finish timebox T1–T6 or Lesson 263 before D1 pager night.

P2 — pin FebruaryPager_10s

  1. Settings → Profiles → DuplicateFebruaryPager_10s.
  2. Replay Buffer Maximum Replay Time: 10 s.
  3. Sample Rate: 48000 Hz (Whisper cousin).
  4. Recording Path: %USERPROFILE%\Videos\playtest-vod\pager-inbox\ (must match KFM resolved path).
  5. Export profile → release-evidence/february-live/pager/obs_profile_FebruaryPager_10s.json.

P3 — labeled test clip

fest-demo-2027-02-rc1_pager_D1_001.mkv

Pattern: {build_label}_pager_{fest_day}_{seq}.mkv

$inbox = "$env:USERPROFILE\Videos\playtest-vod\pager-inbox"
Get-ChildItem $inbox -Filter "*_pager_*.mkv" |
  Sort-Object LastWriteTime -Descending |
  Select-Object -First 1

Pass: newest file prefix equals BUILD_RECEIPT build_label.

P4 — hash crosswalk (do not merge schemas)

Append to february_live_timebox_receipt_v1.json crosswalk only:

"pager_clips": [
  {
    "fest_day": "D1",
    "path": "C:\\Users\\host\\Videos\\playtest-vod\\pager-inbox\\fest-demo-2027-02-rc1_pager_D1_001.mkv",
    "sha256": "a1b2c3…",
    "build_label": "fest-demo-2027-02-rc1",
    "p0_class": "smoke",
    "saved_utc": "2027-02-10T22:15:00Z"
  }
]
Get-FileHash "...\fest-demo-2027-02-rc1_pager_D1_001.mkv" -Algorithm SHA256

P5 — lane rollover ritual

At outgoing → incoming pager handoff, file release-evidence/february-live/pager/rollover_D{N}_{HHMM}.md with open P0 count, build_label, active profile, last clip sha256, and Whisper W4 owner. Incoming re-spots P2–P3 if OBS restarted.

P6 — february_pager_clip_receipt_v1.json

{
  "schema": "february_pager_clip_receipt_v1",
  "fest_window": "2027-02-next-fest-live",
  "build_label": "fest-demo-2027-02-rc1",
  "fest_day": "D1",
  "obs_profile": "FebruaryPager_10s",
  "replay_buffer_seconds": 10,
  "replay_buffer_path": "C:\\Users\\host\\Videos\\playtest-vod\\pager-inbox",
  "resolved_path": "C:\\Users\\host\\Videos\\playtest-vod\\pager-inbox",
  "lane_rollover": {
    "outgoing_owner": "engineer-a",
    "incoming_owner": "engineer-b",
    "utc_timestamp": "2027-02-10T22:00:00Z",
    "handoff_file": "release-evidence/february-live/pager/rollover_D1_2200.md"
  },
  "clips_index": [
    {
      "path": "C:\\Users\\host\\Videos\\playtest-vod\\pager-inbox\\fest-demo-2027-02-rc1_pager_D1_001.mkv",
      "sha256": "a1b2c3…",
      "build_label": "fest-demo-2027-02-rc1",
      "p0_class": "smoke",
      "duration_sec": 10.1
    }
  ],
  "cousin_receipts": {
    "february_live_timebox": "release-evidence/ops/FEBRUARY_LIVE_TIMEBOX_RECEIPT.json",
    "obs_replay_path_kfm": "release-evidence/playtest/replay-path/OBS_REPLAY_PATH_KFM_RECEIPT.json",
    "february_live_whisper_triage": "release-evidence/ai/FEBRUARY_LIVE_WHISPER_TRIAGE_RECEIPT.json"
  },
  "gates": {
    "P1_timebox_path_latch": "pass",
    "P2_pager_profile": "pass",
    "P3_labeled_test_clip": "pass",
    "P4_timebox_crosswalk_hash": "pass",
    "P5_lane_rollover": "pass",
    "P6_receipt": "pass"
  },
  "february_pager_clip_ok": true,
  "pager_capture_allowed": true
}

Pin at release-evidence/february-live/pager/FEBRUARY_PAGER_CLIP_RECEIPT.json.

Fail-closed verify

#!/usr/bin/env bash
# verify_february_pager_clip.sh
set -euo pipefail
REC="${1:-release-evidence/february-live/pager/FEBRUARY_PAGER_CLIP_RECEIPT.json}"
TB="${2:-release-evidence/ops/FEBRUARY_LIVE_TIMEBOX_RECEIPT.json}"

jq -e '.schema == "february_pager_clip_receipt_v1"' "$REC"
jq -e '.february_pager_clip_ok == true' "$REC"
jq -e '.replay_buffer_seconds == 10' "$REC"
jq -e '.clips_index | length >= 1' "$REC"
LABEL="$(jq -r '.build_label' "$REC")"
jq -e --arg L "$LABEL" '.clips_index | all(.build_label == $L)' "$REC"
for h in $(jq -r '.clips_index[].sha256' "$REC"); do
  jq -e --arg H "$h" '[.pager_clips[]?.sha256] | index($H)' "$TB" >/dev/null
done
echo "february_pager_clip verify: OK"

Promote BUILD_RECEIPT only when verify exits 0:

jq -e '.february_pager_clip_ok == true' BUILD_RECEIPT.json

Thursday row review lists february_pager_clip_ok under February Live Ops.

Scope constraints (honest limits)

  • Does not replace uniform fragments Lesson 258 for facilitator 120 s nights.
  • Does not invent Discord bots—handoffs are markdown + receipt rows only.
  • Solo founders still file P5 as self-handoff (outgoing_owner == incoming_owner) so the ritual stays CI-checkable.
  • Co-stream highlight exports stay out of pager-inbox/—classify per overlay safe-zone blog.

Key takeaways

  1. Pager lane = 10 s — not the 120 s batch profile.
  2. build_label in the filename is W2 insurance before Whisper.
  3. pager_clips[] crosswalk beside timebox—never merge root schemas.
  4. P5 rollover is mandatory when pager owners swap mid-cap.
  5. Guide #38 = ninety-second gate; 277 = BUILD_RECEIPT column.
  6. 5-night challenge owns nightly ladder; 277 owns clip receipt culture.
  7. Cousin 263 must be GREEN before P1.
  8. Capstone 283 will wire 277–282—keep schemas separate now.
  9. verify_february_pager_clip.sh gives CI one exit code.
  10. Next lesson 278 owns fest-day setlive depot truth—not pager clips.

Common mistakes

  • Saving pager clips into facilitator inbox/.
  • Skipping P5 when two engineers split the pager cap.
  • Putting build_label only in chat, not the filename.
  • Merging pager receipt fields into february_live_timebox_receipt_v1 root.
  • Flipping february_pager_clip_ok without running verify.

Troubleshooting

Symptom Lane
Clip saved, inbox empty Lesson 263 / KFM guide
Whisper W2 label mismatch P3 filename + player footer screenshot
W4 SLA miss Shift pager 30 min in timebox
120 s file in pager-inbox Wrong profile—re-save with FebruaryPager_10s
P4 jq fail Append hash to timebox pager_clips[] before P6

Mini exercise (45 minutes)

  1. Confirm fest_live_timebox_ok + path_writable_ok (P1).
  2. Pin FebruaryPager_10s and export profile JSON (P2).
  3. Save one labeled 10 s clip (P3).
  4. Hash + append pager_clips[] (P4).
  5. Write a one-row rollover markdown (P5).
  6. File february_pager_clip_receipt_v1.json, run verify, promote BUILD_RECEIPT for Thursday review.

Continuity — February 2027 live week ops (277–283)

Lesson Receipt focus
277 (this) OBS February pager clip
278 Fest-day setlive depot
HOTFIX label → hourly jsonl → moderation → hour-one → live-ops capstone

Previous: Lesson 276 — November closeout truth capstone
Next: Lesson 278 — GameMaker fest-day setlive depot manifest receipt

FAQ

Same as Guide #38?
Guide = ninety-second P1–P6 preflight; 277 = BUILD_RECEIPT february_pager_clip_ok + promotion verify.

Same as 5-night challenge?
Challenge owns five nightly BUILD_RECEIPT rituals; 277 owns the pager clip receipt column those nights depend on.

Same as Lesson 263?
263 = writable path after KFM; 277 = live-week 10 s pager lane on that path.

Same as Lesson 258?
258 = 120 s uniform batch; 277 = separate pager profile and inbox.

Can solo founders skip P5?
No—file self-handoff so verify still sees lane_rollover.handoff_file.

Does this replace Wednesday smoke?
No—smoke is a separate binary gate; pager clips are evidence for crash triage.

Related GamineAI reads


Sign-off: Pin FebruaryPager_10s, land one labeled 10 s clip with hash crosswalk, rollover at every shift, file february_pager_clip_receipt_v1.json, promote february_pager_clip_ok—then keep setlive truth for Lesson 278.