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).

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_ok → path_writable_ok (Lesson 263) → february_pager_clip_ok → same-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
- Settings → Profiles → Duplicate →
FebruaryPager_10s. - Replay Buffer Maximum Replay Time: 10 s.
- Sample Rate: 48000 Hz (Whisper cousin).
- Recording Path:
%USERPROFILE%\Videos\playtest-vod\pager-inbox\(must match KFM resolved path). - 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
- Pager lane = 10 s — not the 120 s batch profile.
build_labelin the filename is W2 insurance before Whisper.pager_clips[]crosswalk beside timebox—never merge root schemas.- P5 rollover is mandatory when pager owners swap mid-cap.
- Guide #38 = ninety-second gate; 277 = BUILD_RECEIPT column.
- 5-night challenge owns nightly ladder; 277 owns clip receipt culture.
- Cousin 263 must be GREEN before P1.
- Capstone 283 will wire 277–282—keep schemas separate now.
verify_february_pager_clip.shgives CI one exit code.- 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_labelonly in chat, not the filename. - Merging pager receipt fields into
february_live_timebox_receipt_v1root. - Flipping
february_pager_clip_okwithout 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)
- Confirm
fest_live_timebox_ok+path_writable_ok(P1). - Pin
FebruaryPager_10sand export profile JSON (P2). - Save one labeled 10 s clip (P3).
- Hash + append
pager_clips[](P4). - Write a one-row rollover markdown (P5).
- 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
- OBS pager clip preflight (Guide #38)
- February live week timebox
- 5-night February live ops pager challenge
- Same-day Whisper February strategy
- Lesson 263 — OBS replay path KFM
- Lesson 258 — OBS uniform fragments
- Thursday BUILD_RECEIPT row review
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.