5-Night October Next Fest Upload Dress Rehearsal Challenge - 2026

September 2026 is when micro-studios finally rehearse upload week once before Next Fest. It is also when the wrong “success” signal gets treated like evidence.
Engineers see setlive queued and assume they are safe. Marketing sees store overrides “published” and assumes players will download the same bytes. Partners ask “which build did you actually promote?” and the answer becomes a Slack screenshot.
This is the problem: fest live is not where you learn your upload pipeline. Upload week needs a repeatable five-night ladder that produces receipts, not vibes.
This Challenges & Community Hooks challenge runs for five nights. Each night has a single primary gate R1–R5, a short receipt task, and a public status post using #OctoberUpload2026. At the end of Night 5 you file october_upload_dress_rehearsal_receipt_v1.json and set BUILD_RECEIPT october_upload_dress_rehearsal_ok: true so forward steps (store publish checklist, setlive, and capstone) can proceed without arguing about what “green” means.
Direct answer: Five nights (~20 minutes per night); gates R1–R5; artifacts under release-evidence/october-upload/ ; file october_upload_dress_rehearsal_receipt_v1.json; set BUILD_RECEIPT october_upload_dress_rehearsal_ok only after R5 passes.
Before you run the ladder, do the engine/account sanity pass: GameMaker partner preflight (P1–P6), then keep the promotion-stage habit with Lesson 270 — setlive dry-run receipt. If your web lane is on itch and you see application/octet-stream for .wasm, fix hosting/MIME first via itch CDN WASM MIME cache fix.
Non-repetition note (what this owns vs cousins)
This URL is not the same ladder as your other October receipts:
- SteamPipe depot upload log evening owns SteamPipe jsonl + U1–U6 depot evidence.
- Dual-depot dress rehearsal owns itch+Steam channel matrix D1–D6.
- 14 free Steam store publish checklist tools owns P1–P6 store/community/keys publish tooling.
- 12 pre-flight checks before steamcmd setlive owns promotion preflight, not upload logging.
- This URL owns the five-night upload-week rehearsal ladder: nightly receipt diffs + fail stop rules + a master receipt you can grep.
If you already ran depot upload log #1 and dual-depot dress #2, this challenge turns them into a five-night routine so you do not “discover” drift during the same seventy-two hours when store overrides harden and contractors rotate laptops.
Pair with:
- Depot upload log evening and gates it with your jsonl.
- Dual-depot dress #2 for the channel agreement that players actually feel.
- Forward Course 295 for milestone cousins when the rehearsal proves ready.
Why this matters now (September–October 2026 upload week)
- Queue does not mean bytes. Upload success in Steamworks UI is not the same as “promoted build_id” in your receipt.
- Build IDs drift in chat. People re-upload, update VDF, or use the wrong branch during stand-up. Without diffs you do not notice.
- Localization freeze creates side quests. Friday localization capstone can be GREEN while upload evidence is RED. Upload week needs its own rehearsal ladder.
- Store publish is a multi-surface agreement. Depot evidence is necessary but not sufficient. This ladder forces a “publish-ready” state machine you can verify.
- One rehearsal beats repeated incident threads. You get one structured week, five short nights, and then you ship with receipts your future self can understand.
Direct answer: Run the ladder to produce one master rehearsal receipt and a single BUILD_RECEIPT latch you can follow across upload week.
Who this challenge is for
| Audience | Outcome |
|---|---|
| Beginner | Follow one nightly checklist, no guessing order |
| Solo founder | Post one #OctoberUpload2026 status update per night with the receipt path |
| Producer | Block setlive promotions until nightly receipts are GREEN |
| Working dev | Use nightly diffs to detect drift before you need HOTFIX exceptions |
Prerequisites:
- You have (or will create during Night 1) your SteamPipe depot upload log: steampipe_upload_log.jsonl + receipt.
- You have (or will confirm during Night 3–4) your dual-depot channel agreement: dual-depot dress #2.
- You have your promotion preflight checklist: 12 setlive checks.
- Optional but recommended: you know where Friday localization capstone output lives if you must include localization in the same week.
Time budget:
- ~20 minutes per night for receipt work and a short post.
- Total ~100 minutes if you already have the cousin receipts ready.
Challenge vs cousin ladders (format ladder)
| Artifact | When | Primary gates |
|---|---|---|
| SteamPipe depot upload log evening | Monday-ish during upload week prep | U1–U6 |
| Dual-depot dress rehearsal #2 | Pre-store publish / pre-promotions | D1–D6 |
| 12 pre-flight checks before steamcmd setlive | Right before any promotion | promotion checklist |
| 14 free store publish checklist tools | Store publish coordination window | P1–P6 |
| This challenge | Five nights (rehearsal ladder) | R1–R5 |
Order rule:
- Run Night 1 (R1) and ensure depot upload receipt is present.
- Run Night 2 (R2) to detect drift and confirm build_label stability.
- Run Night 3 (R3) to run a dry-run / installed smoke that matches the promoted build_id intent.
- Run Night 4 (R4) to crosswalk rehearsal receipt with store publish checklist readiness.
- Run Night 5 (R5) to file
october_upload_dress_rehearsal_receipt_v1.jsonand set BUILD_RECEIPT latch.
Rules of the challenge
- One primary owner per night. Record
night_N_ownerin receipt JSON. - Fail stops promotion. If any gate for tonight is RED, you do not continue to the next night gate until you get the artifacts to match.
- Twenty-minute cap. Each night is receipt diff + short verification + a public post, not a full incident marathon.
- Receipt diffs are append-only. Never overwrite a prior snapshot file; copy it into an
archive/folder when you re-run. - Public accountability uses receipts. Each #OctoberUpload2026 post must include the receipt path and the gate status (GREEN/YELLOW/RED).
- Promotion vs upload separation. This challenge cares about upload readiness and receipt integrity, not a finished setlive promotion. That is handled by 12 setlive checks.
- HOTFIX is gated by evidence. If you consider a HOTFIX during rehearsal, record the intended change and reference the affected receipts in
notes.
Five-night calendar at a glance
| Night | Upload rehearsal step | Gate | Primary ritual | Pass signal |
|---|---|---|---|---|
| N1 | Prep receipts | R1 | Evidence folders + depot upload receipt present | depot_receipt_ready: true |
| N2 | Nightly receipt diff | R2 | Diff build_label / build_id / steam_build_id | drift_free: true |
| N3 | Installed smoke / dry-run | R3 | Run smoke on promoted build intent | smoke_clean: true |
| N4 | Crosswalk store publish readiness | R4 | Checklist readiness + community parity placeholders | publish_ready_draft: true |
| N5 | Master receipt capstone | R5 | File master receipt and set BUILD_RECEIPT latch | october_upload_dress_rehearsal_ok: true |
Map nights to days however your upload week calendar requires, but keep gate order R1 → R5.
Before you start — readiness checklist
Create the evidence folder:
release-evidence/
october-upload/
dress-rehearsal-2026/
README.md
snapshots/
night-1/
night-2/
night-3/
receipts/
archives/
Readiness checklist:
- [ ]
release-evidence/october-upload/folder exists - [ ] SteamPipe depot upload receipt exists:
release-evidence/steam/steampipe_depot_upload_receipt_v1.json - [ ] BUILD_RECEIPT has a placeholder row and you know where to set
october_upload_dress_rehearsal_ok - [ ] Dual-depot dress exists or is scheduled:
dual_sku_dress_rehearsal_receipt_v1.json - [ ] jq is installed (needed for diffs and receipt verify)
- [ ] You can run the dry-run / installed smoke (R3) on the machine that runs your upload scripts
- [ ] You have a place to draft a store publish checklist receipt (even if you do not publish yet)
Night 1 — R1 evidence readiness (~20 minutes)
Goal: Ensure required evidence exists before you start diffing. This is the “no missing folder” latch.
Steps
- Open:
release-evidence/steam/steampipe_depot_upload_receipt_v1.json- your root
BUILD_RECEIPTfile (the one you ship with receipts)
- Verify required fields exist (presence check):
build_id,build_label,steam_build_idupload_log_path(jsonl path)october_upload_window_allowedis either true or documented waiver innotes
- Snapshot evidence file paths (do not copy content yet):
- copy
steampipe_depot_upload_receipt_v1.jsonintosnapshots/night-1/
- copy
- Write your Night 1 stand-up post for #OctoberUpload2026 with:
- gate R1 status (GREEN/YELLOW/RED)
- receipt path
- build_label you are rehearsing
Stand-up script (paste and edit)
## #OctoberUpload2026 — Night 1 (R1)
Evidence status: GREEN
Rehearsing build_label: <your build_label>
Depot receipt path: release-evidence/steam/steampipe_depot_upload_receipt_v1.json
Next: Night 2 receipt diff (build_label drift detection)
HOTFIX: none / documented only if needed
Pass criteria for R1
- Your depot upload receipt exists on disk.
- Root BUILD_RECEIPT can later reference
october_upload_dress_rehearsal_ok(placeholder or empty is fine until R5).
Night 2 — R2 drift-free receipt diff (~20 minutes)
Goal: Diff nightly evidence and catch “build_label drift” before you pay the cost in queues.
Night 2 produces one diff artifact and one receipt snapshot.
Steps
- Create a snapshot copy:
- Copy
steampipe_depot_upload_receipt_v1.jsonintosnapshots/night-2/
- Copy
- Diff the JSON fields that should not drift without a recorded intent:
build_idbuild_labelsteam_build_idbranch_intent
- Review for drift:
- If drift exists, stop and decide: either you re-run dry-run (R3) for the new build_id, or you document a waiver in
notesand keep the original rehearsal build_id.
- If drift exists, stop and decide: either you re-run dry-run (R3) for the new build_id, or you document a waiver in
- Post #OctoberUpload2026:
- R2 status
- what changed or confirmed
- pointer to
night-2snapshot folder
Diff command (template)
cp release-evidence/steam/steampipe_depot_upload_receipt_v1.json \
release-evidence/october-upload/dress-rehearsal-2026/snapshots/night-2/steampipe_depot_upload_receipt_v1.json
python - <<'PY'
import json, pathlib
base = pathlib.Path("release-evidence/october-upload/dress-rehearsal-2026/snapshots/night-1/steampipe_depot_upload_receipt_v1.json")
cur = pathlib.Path("release-evidence/october-upload/dress-rehearsal-2026/snapshots/night-2/steampipe_depot_upload_receipt_v1.json")
a = json.loads(base.read_text())
b = json.loads(cur.read_text())
keys = ["build_id","build_label","steam_build_id","branch_intent","primary_depot_id"]
diff = {k: {"was": a.get(k), "now": b.get(k)} for k in keys if a.get(k)!=b.get(k)}
print(json.dumps(diff, indent=2))
PY
Pass criteria for R2
- No drift in rehearsal-critical fields, or drift is documented with an explicit “intent changed” note and triggers a planned R3 re-run.
Night 3 — R3 dry-run / installed smoke (~20 minutes + smoke time)
Goal: Make sure the binary you rehearse can actually run like the promoted build intent.
R3 is the reality check: receipts must correspond to installed binary behavior, not just JSON structure.
Steps
- Download or install the promoted build if your workflow supports installed verification (recommended).
- Run your golden path “smoke” (the same one you would run before promo):
- boot and reach first interactive screen
- verify build_label is visible if your UI exposes it
- run one locale selection if localization is in scope
- File
demo_smoke_receipt_v1.json(or your equivalent smoke receipt) in:release-evidence/october-upload/dress-rehearsal-2026/receipts/
- Update the rehearsal receipt
noteswith the smoke path and pass/fail. - Post #OctoberUpload2026 with:
- R3 status
- smoke receipt path
- any anomalies (for example: “game loads but locale strings mismatch”)
Pass criteria for R3
- Your smoke receipt indicates the build is clean enough to move to crosswalk preparation.
- If R3 is RED, do not proceed to Night 4; fix the actual build issue or revert to a known-good build_id and re-run smoke.
Night 4 — R4 publish readiness crosswalk (~20 minutes)
Goal: Crosswalk rehearsal evidence to store/community/keys readiness, without actually publishing public surfaces yet.
This is where many studios fail because they do “upload proof” but skip “surface agreement.” R4 forces a checklist-ready state.
Steps
- Open the store publish checklist listicle:
- Draft the minimum
publish_checklist_v1.json(or your internal checklist JSON) items:- depot-01: confirms
steampipe_upload_okhappened on BUILD_RECEIPT - store-01 / store-02: ensures you can publish EN and claimed locales
- comm-01: ensures hub announcement draft exists
- keys-01: ensures review keys plan exists with build_label mapping
- depot-01: confirms
- Confirm your checklist readiness is consistent with your rehearsal build_id:
- do not create a checklist referencing a different build_id than R2 rehearsal fields
- Post #OctoberUpload2026 with:
- R4 status
- what is drafted (paths)
- what is still “pending until Monday” (if any)
Pass criteria for R4
- Your store publish checklist draft exists and references the same
build_idyou rehearsed. - You did not promise publish completion; you only reached readiness.
Night 5 — R5 capstone receipt + BUILD_RECEIPT latch (~20 minutes)
Goal: File one master rehearsal receipt and set the BUILD_RECEIPT boolean that forward rituals will consume.
Steps
- Generate or finalize
october_upload_dress_rehearsal_receipt_v1.jsonunderrelease-evidence/october-upload/dress-rehearsal-2026/receipts/ - Update root BUILD_RECEIPT:
- set
october_upload_dress_rehearsal_ok: true
- set
- Run a verify script (below) so you do not ship a receipt you cannot validate.
- Post #OctoberUpload2026:
- R5 status GREEN
- receipt path
- next step: store publish checklist + setlive preflight
BUILD_RECEIPT latch snippet
Add or update in your root BUILD_RECEIPT:
{
"october_upload_dress_rehearsal_ok": true,
"october_upload_dress_rehearsal_receipt": "release-evidence/october-upload/dress-rehearsal-2026/receipts/october_upload_dress_rehearsal_receipt_v1.json"
}
october_upload_dress_rehearsal_receipt_v1.json template
Save as:
release-evidence/october-upload/dress-rehearsal-2026/receipts/october_upload_dress_rehearsal_receipt_v1.json
{
"schema": "october_upload_dress_rehearsal_receipt_v1",
"fest_window": "2026-10-next-fest-live",
"hashtag": "#OctoberUpload2026",
"build_id": "REPLACE_ME",
"build_label": "REPLACE_ME",
"steam_build_id": "REPLACE_ME",
"evidence_dir": "release-evidence/october-upload/dress-rehearsal-2026/",
"nights": [
{"night": 1, "gate": "R1", "owner": "REPLACE_ME", "pass": true},
{"night": 2, "gate": "R2", "owner": "REPLACE_ME", "pass": true},
{"night": 3, "gate": "R3", "owner": "REPLACE_ME", "pass": true},
{"night": 4, "gate": "R4", "owner": "REPLACE_ME", "pass": true},
{"night": 5, "gate": "R5", "owner": "REPLACE_ME", "pass": true}
],
"notes": "",
"october_upload_dress_rehearsal_ok": true
}
verify_october_upload_dress_rehearsal.sh
Place in repo scripts or just run locally (verify script logic):
#!/usr/bin/env bash
set -euo pipefail
REC="${1:-release-evidence/october-upload/dress-rehearsal-2026/receipts/october_upload_dress_rehearsal_receipt_v1.json}"
jq -e '.schema == "october_upload_dress_rehearsal_receipt_v1"' "$REC" >/dev/null
jq -e '.nights | length == 5' "$REC" >/dev/null
jq -e '[.nights[].pass] | all' "$REC" >/dev/null
jq -e '.october_upload_dress_rehearsal_ok == true' "$REC" >/dev/null
echo "october_upload_dress_rehearsal verify: OK"
Gates R1–R5 summary (beginner)
| Gate | What is RED | What you do |
|---|---|---|
| R1 | Depot upload receipt missing | Re-run depot upload log evening #1 first |
| R2 | build_label or build_id drift without intent | Decide new build_id and re-run R3 |
| R3 | smoke fails | Fix the build and re-run R3 until clean |
| R4 | checklist draft references wrong build_id | Update draft to match rehearsal build_id |
| R5 | master receipt not filed / validate fails | Fix receipt JSON and re-verify |
Proof table (what “GREEN” means)
| Gate | Evidence | GREEN when |
|---|---|---|
| R1 | depot receipt path | required fields exist |
| R2 | night snapshot diff artifact | critical fields stable or documented |
| R3 | smoke receipt | clean enough for publish readiness |
| R4 | draft publish checklist | build_id matches rehearsal |
| R5 | october_upload_dress_rehearsal_receipt_v1.json |
all nights pass + ok true |
Integration with forward October cluster rows
| Forward row | Relationship |
|---|---|
| Depot upload log #1 | R1 depends on depot receipt being real |
| Store publish checklist tools #2 | R4 drafts checklist readiness; after rehearsal you can publish |
| 12 setlive checks | You still run setlive preflight separately; rehearsal only ensures evidence integrity |
| Friday localization capstone | Localization can be in scope; upload rehearsal remains independent |
| Dual-depot dress #2 | You pair channel agreement with upload evidence so store and binaries align |
| Forward Course 295 | Milestone cousin for upload-week readiness gates |
Printable nightly checklist card
Pin a card in:
release-evidence/october-upload/dress-rehearsal-2026/README.md
# #OctoberUpload2026 — Dress Rehearsal Night _N_ (Gate R_N)
Date: __________
Build label: __________
[ ] Gate R_N checklist done
[ ] Snapshot / evidence saved to release-evidence/october-upload/
[ ] Night posted with receipt path and GREEN/RED
Owner: __________
Notes: __________
Common mistakes
- Posting “green” without paths. Receipts should be the source of truth, not a mental note.
- Skipping R2 diffs. Build_label drift hides until the first queue failure.
- Running smoke on Editor. R3 requires installed (or build-equivalent) behavior.
- Drafting publish checklist with wrong build_id. The store can publish the wrong build while depot evidence remains green.
- Treating rehearsal as promotion. This challenge is preparation. Promotion is still governed by 12 setlive checks.
- Overwriting snapshot files. Copy snapshots into archive folders; append-only evidence is the point.
Extended FAQ
Can I run fewer than five nights?
Not reliably. The receipt schema assumes five nights and R5 requires all previous gates to pass. If you must shorten, document an explicit extension/shortening plan in notes and adjust the receipt verification accordingly (but then you are deviating from the standard ladder).
What if Night 2 shows drift?
Stop. Do not “fix later.” Choose whether rehearsal is now for the new build_id or you revert. If you switch build_id, re-run R3 so smoke aligns with the new binary.
Do I have to do dual-depot dress #2 before this challenge?
Recommended, but you can schedule. R4 drafts readiness and depends on channel agreement only insofar as you will not publish mismatched binaries. If dual-depot dress isn’t done yet, mark it in notes and keep R4 readiness draft limited to what you can verify.
What about localization?
If you are rehearsing a localization-in-scope week, keep the localization receipt separate and mention it in notes. The upload rehearsal ladder is about build evidence integrity, not about freezing string manifests.
Does this replace Wednesday depot smoke?
No. Wednesday depot smoke is an additional evidence gate. This challenge produces a rehearsal receipt and a single BUILD_RECEIPT latch; Wednesday smoke produces a later “still true” check.
Key takeaways
- Five-night upload rehearsal is the upload-week routine that prevents receipt drift.
- Gates R1–R5 map to evidence presence, receipt diffs, smoke, publish readiness draft, and capstone receipt.
october_upload_dress_rehearsal_receipt_v1.jsonis the master artifact you grep during upload week.- You set BUILD_RECEIPT
october_upload_dress_rehearsal_okonly when R5 passes. - This is not promotion. Run 12 setlive checks separately.
- Pair with depot upload log #1 and dual-depot dress #2 so the evidence and channel agreement line up.
- Keep snapshots immutable. Overwriting hides drift.
- Post #OctoberUpload2026 with receipt paths, not just “we’re green.”
Producer sign-off block (R5 attachment)
## October upload dress rehearsal sign-off (R5)
Receipt path: release-evidence/october-upload/dress-rehearsal-2026/receipts/october_upload_dress_rehearsal_receipt_v1.json
Night gates: R1–R5 = all pass true
Open exceptions: none / documented tickets only
Producer: __________ Date: __________
Attach this to your forward upload-week handoff folder (same directory as the receipt).
Related reads
- SteamPipe depot upload log evening (October cluster #1)
- 14 free Steam store publish checklist tools (cluster #2)
- Dual-depot dress rehearsal (itch + Steam) #2
- 12 pre-flight checks before steamcmd setlive
- Friday localization capstone (C1–C10)
Closing
Upload week is the wrong week to improvise your “green” signals. This five-night ladder gives you receipts, diffs, smoke evidence, and a single capstone latch you can carry forward.
Run the ladder, post #OctoberUpload2026 with receipt paths, and only set BUILD_RECEIPT october_upload_dress_rehearsal_ok when R5 is truly GREEN.
Next reads: after R5, run the store publish checklist tools (P1–P6) and then promotion preflight (12 setlive checks). When you need a cousin milestone, Course 295 is the forward track.