Lesson 284: Post-Fest Debrief Facilitator Card Receipt on BUILD_RECEIPT (2026)
Direct answer: March 2027 Monday debrief latches when post_fest_debrief_facilitator_receipt_v1.json proves Sunday jsonl_annex[] became a printable facilitator card, annex paths still exist on disk, card hash matches, and BUILD_RECEIPT sets post_fest_debrief_card_ok: true—not when slides say “fest went well” after Lesson 283 alone.

Why this matters now (Monday partner call)
March 2027 partners open Zoom after Sunday February closeout set post_fest_debrief_allowed: true. That boolean proves closeout ran—it does not prove facilitators can read annex paths without hunting release-evidence/ mid-call. Monday evening tutorial owns the full printable blocks; Guide #43 owns the ninety-second export gate—this lesson wires D1–D6 onto BUILD_RECEIPT for the RPG live-ops track.
Opens March arc 284–288 after February 277–283.
Beginner path (60-minute card + receipt)
| Step | Action | Success check |
|---|---|---|
| 1 | Confirm Sunday closeout cousin GREEN | post_fest_debrief_allowed |
| 2 | Export annex_index.json from jsonl_annex[] |
File exists |
| 3 | Walk every annex path (test -f) |
No missing OBS/pager/clips rows |
| 4 | Render five-block facilitator card | Call metadata → sign-off |
| 5 | Hash the card | facilitator_card_sha256 |
| 6 | File post_fest_debrief_facilitator_receipt_v1.json |
D1–D6 pass |
| 7 | Run verify_post_fest_debrief_facilitator.sh |
Exit 0 |
| 8 | Latch BUILD_RECEIPT post_fest_debrief_card_ok |
Boolean after verify |
Time: ~60 minutes when Sunday annex is complete; ~75 minutes first March Monday.
Prerequisites: Lesson 283 (or honest defer); Sunday closeout receipt; jq + write access to release-evidence/post-fest/debrief/.
Developer path (gates D1–D6)
| Gate | Check | Fail when |
|---|---|---|
| D1 | Cousin february_fest_closeout / Sunday receipt path |
Capstone GREEN but closeout missing |
| D2 | annex_index.json built from jsonl_annex[] |
Empty index without recovery (Help #42) |
| D3 | Every annex path exists on disk |
Path moved after OneDrive KFM |
| D4 | Facilitator card ≥5 blocks (metadata, annex table, booleans, OBS/VOD, sign-off) | Narrative slides only |
| D5 | facilitator_card_sha256 matches current card |
Edit after hash without re-pin |
| D6 | Receipt filed; post_fest_debrief_card_ok |
Boolean flipped without verify |
Cross-cutting: post_fest_debrief_allowed ≠ post_fest_debrief_card_ok. Keep OBS / pager / clips_index annex keys on the card even if WARN—partners challenge VOD claims first.
post_fest_debrief_facilitator_receipt_v1.json
{
"schema": "post_fest_debrief_facilitator_receipt_v1",
"fest_window": "2027-02-next-fest-live",
"debrief_scheduled_utc": "2027-03-02T14:00:00Z",
"build_label": "fest-demo-2027-02-rc3",
"cousin_receipts": {
"february_fest_closeout": "release-evidence/february-live/FEBRUARY_FEST_CLOSEOUT_RECEIPT.json",
"february_live_ops_truth": "release-evidence/capstone/FEBRUARY_LIVE_OPS_TRUTH_CAPSTONE.json",
"february_pager_clip": "release-evidence/february-live/pager/FEBRUARY_PAGER_CLIP_RECEIPT.json"
},
"annex_index_path": "release-evidence/post-fest/debrief/annex_index.json",
"annex_index_sha256": "a1b2c3…",
"facilitator_card_path": "release-evidence/post-fest/debrief/post_fest_debrief_facilitator_card.md",
"facilitator_card_sha256": "d4e5f6…",
"obs_annex_keys": ["pager_challenge_receipt", "whisper_clips_index"],
"gates": {
"D1_closeout_cousin": "pass",
"D2_annex_index": "pass",
"D3_paths_exist": "pass",
"D4_card_generated": "pass",
"D5_card_hash": "pass",
"D6_receipt": "pass"
},
"post_fest_debrief_card_ok": true,
"march_sprint_planning_allowed": true
}
Pin at release-evidence/post-fest/debrief/POST_FEST_DEBRIEF_FACILITATOR_RECEIPT.json.
BUILD_RECEIPT row
{
"post_fest_debrief_allowed": true,
"post_fest_debrief_card_ok": true,
"post_fest_debrief_facilitator_receipt": "release-evidence/post-fest/debrief/POST_FEST_DEBRIEF_FACILITATOR_RECEIPT.json",
"february_live_ops_truth_ok": true
}
verify_post_fest_debrief_facilitator.sh
#!/usr/bin/env bash
set -euo pipefail
REC="${1:-release-evidence/post-fest/debrief/POST_FEST_DEBRIEF_FACILITATOR_RECEIPT.json}"
jq -e '.schema == "post_fest_debrief_facilitator_receipt_v1"' "$REC"
jq -e '.post_fest_debrief_card_ok == true' "$REC"
INDEX="$(jq -r '.annex_index_path' "$REC")"
test -f "$(jq -r '.facilitator_card_path' "$REC")"
while IFS= read -r path; do
test -f "$path" || exit 3
done < <(jq -r '.[].path' "$INDEX")
echo "post_fest_debrief_facilitator verify: OK"
Relationship to Sunday / Guide / Help / Whisper
| Artifact | Role |
|---|---|
| Sunday closeout | C1–C10 + jsonl_annex[] + post_fest_debrief_allowed |
| Monday evening tutorial | Full five-block card depth |
| Guide #43 | Ninety-second OBS annex→card preflight |
| This lesson | BUILD_RECEIPT milestone + verify script |
| Help #42 | Empty / broken annex path recovery |
| Lesson 283 | February six-child truth before Monday |
| Guide #48 / Lesson 288 forward | Whisper clips_index drain after debrief |
Order: Sunday C1–C10 → Guide #43 / this D1–D6 → Monday partner call → March sprint (march_sprint_planning_allowed).
Common mistakes
- Treating
post_fest_debrief_allowedas enough for Zoom. - Printing a card without OBS / pager annex—partners ask for VOD first.
- Editing the card after D5 without re-hash.
- Absolute Windows paths on Linux CI—normalize to evidence-root relative paths.
- Merging facilitator receipt into closeout or February capstone JSON.
Troubleshooting
| Symptom | Lane |
|---|---|
| Empty annex table | D2 extract; Help #42 |
| Path missing Monday | Re-walk D3; KFM OBS path |
| Partner asks for P0 clip; card silent | Add pager/clips_index key; re-run D2–D6 |
| verify exit 3 | Path walk failed—fix annex_index.json |
| Capstone GREEN, debrief RED | Expected until this lesson files card OK |
Mini exercise (70 minutes)
- Start from a GREEN Sunday closeout with ≥3 annex rows including one OBS pager path.
- Build
annex_index.json; intentionally break one path—confirm D3 / verify exit 3. - Restore path; render five-block card; hash; file receipt.
- Latch BUILD_RECEIPT
post_fest_debrief_card_okonly after verify exit 0. - Note October RC Lesson 285 is a separate freeze lane—do not merge schemas.
Key takeaways
- Closeout indexes; the card presents—D1–D6 sits between Sunday GREEN and Monday Zoom.
post_fest_debrief_card_okis distinct frompost_fest_debrief_allowedand from Februaryfebruary_live_ops_truth_ok.- OBS annex rows keep live-week VOD claims auditable.
- Guide #43 is the ninety-second gate; 284 is promotion wiring.
- Help #42 owns recovery—not a second receipt schema.
- March runway continues at Lesson 285 (October RC label).
Continuity — March debrief + October prep (284–288)
| Lesson | Receipt focus |
|---|---|
| 283 | February live-ops truth capstone (prior arc) |
| 284 (this) | Post-fest debrief facilitator card |
| 285 | GameMaker October RC branch label |
| 286 forward | Construct post-fest wishlist velocity |
| 287 forward | Unity March weekly sprint jsonl |
| 288 forward | OBS post-fest Whisper clips_index handoff |
| Arc | Lessons | Capstone / close |
|---|---|---|
| February live week | 277–283 | 283 |
| March debrief + October prep | 284–288 | Lesson 288 forward |
Previous: Lesson 283 — February live-ops truth capstone
Next: Lesson 285 — GameMaker October RC branch label
FAQ
Does 284 replace Sunday closeout?
No—Sunday owns C1–C10; 284 owns facilitator card + post_fest_debrief_card_ok.
Can we skip Guide #43 if this lesson is done?
Guide is the OBS path/export preflight; lesson is BUILD_RECEIPT wiring—run both when capture paths change.
Is empty annex OK?
Only with documented recovery via Help #42—do not fake GREEN.
When does Whisper handoff start?
After Monday card when clips_index annex is honest—Guide #48 / Lesson 288.
Related GamineAI reads
- Monday facilitator card evening
- OBS annex→card preflight
- Sunday February fest closeout
- Help #42 — annex path index missing
- February live-ops truth capstone
- Empty annex partner-review case study
- Official: OBS Replay Buffer
Monday debrief is not Sunday closeout with slides—export annex paths, print the facilitator card, verify D1–D6, latch post_fest_debrief_card_ok, then open the partner call.