Your First October Next Fest RC Branch Label Receipt Before Summer Content Freeze in One Evening - 2026

Mid-July 2026: engineering tags fest-demo-2026-10-rc1 on the October Next Fest candidate. Marketing schedules a summer content freeze August 1—no new Addressables bundles until post-vacation playtest. Steamworks still shows fest-demo-2026-06-rc4 on the fest branch. BUILD_RECEIPT lists June. The player-visible footer still says rc4. September upload week arrives and someone promotes September's depot while the team believed they froze July's rc1 label.
July 2026 is eleven weeks before October 2026 Steam Next Fest—the window where micro-studios lock 6-week timeline milestones and declare summer freezes. Teams that file content-freeze policies without an RC branch label receipt discover in September that three strings diverged: Steam branch assignment, BUILD_RECEIPT build_label, and the player-visible label in credits or footer. February RC label evening owns February cadence; visible build label opinion owns policy—this Tutorials & Beginner-First evening closes the October RC label receipt gap before summer Addressables/content freeze so September promotion cannot silently point at the wrong depot.
Non-repetition note: February RC label evening owns fest-demo-2027-02-rc* after January re-entry. GameMaker setlive dry-run owns S1–S6 staging setlive. 7-day vertical slice challenge owns daily quality gates—not label unity. Addressables content hash lockfiles own catalog drift CI. This URL owns fest-demo-2026-10-rc* label unity across receipt, branch screenshot, content-freeze manifest, and UI before summer freeze.
Pair October timeline, February RC label cousin, Monday debrief facilitator card (March cluster #1), Guide #34 forward, Course 270 forward, forward blog #6 July October signup compression trend.
Why this matters now (July 2026 — eleven weeks to October fest)
- Summer freeze without label proof — Addressables bundles hash-lock to
build_label; freeze on wrong string ships September catalog drift. - Vacation handoff risk — Producer returns August 15 to "rc1 is done" with no branch screenshot on disk.
- October RC cadence starts early — October depot branch rules expect fest branch discipline before T-6 scope lock.
- September promotion panic — Teams that skip July receipt promote whatever Steamworks last showed—often June's candidate.
- Thursday row review columns —
build_label,fest_branch,october_rc_label_okmust align before row review passes in upload month.
Direct answer: Bump build_label to fest-demo-2026-10-rc1 (example pattern); screenshot Steamworks Branches; capture player-visible footer; pin content-freeze manifest to receipt content_freeze_label; file october_rc_branch_label_receipt_v1.json with gates L1–L6; set BUILD_RECEIPT october_rc_label_ok: true before summer Addressables freeze and before September branch promotion.
Who this is for and what you get
| Audience | Outcome |
|---|---|
| Beginner | RC label + branch screenshot ritual before vacation |
| Solo founder | Freeze content on proven label, not verbal Discord |
| Producer | Gate summer freeze on label receipt |
| Working dev | jq crosswalk BUILD_RECEIPT ↔ UI ↔ branch ↔ Addressables hash |
Time: ~75–90 minutes first October RC; ~20 minutes per rc2/rc3 bump after template exists.
Prerequisites: October fest branch in runbook; non-dev test account; BUILD_RECEIPT beginner root row; optional Wednesday smoke baseline on prior candidate.
Format ladder (October prep cluster)
| Artifact | Role |
|---|---|
| October timeline T-6…T-0 | Weekly locks |
| This evening | October RC label unity before summer freeze |
| Addressables hash lockfiles | Catalog CI cousin |
| 12 setlive preflight checks | September promotion |
| July October signup trend (forward #6) | Signup window compression |
Order: July this label receipt → summer content freeze → September upload/setlive → Wednesday smoke on frozen label.
Gates L1–L6 (October RC + freeze blockers)
| Gate | Name | Pass criteria |
|---|---|---|
| L1 | Label pattern | build_label matches fest-demo-2026-10-rc* (team convention documented) |
| L2 | Branch screenshot | Steamworks Branches shows October fest branch assigned to intended build |
| L3 | BUILD_RECEIPT parity | Root receipt build_label equals label receipt expected_build_label |
| L4 | Player-visible label | Credits/footer screenshot string equals build_label |
| L5 | Content-freeze manifest | content_freeze_manifest.json pins same build_label + Addressables catalog hash |
| L6 | Receipt filed | october_rc_branch_label_receipt_v1.json committed; october_rc_label_ok: true on BUILD_RECEIPT |
L3–L5 are freeze blockers when RED—do not declare summer Addressables freeze without L5 GREEN.
Evening overview (five blocks)
| Block | Minutes | Output |
|---|---|---|
| A — Name the RC | 15 | fest-demo-2026-10-rc1 in runbook + receipt draft |
| B — Branch screenshot | 20 | L2 PNG from Steamworks |
| C — Player-visible capture | 25 | L4 screenshot from installed build |
| D — Content-freeze manifest | 20 | L5 JSON beside Addressables catalog hash |
| E — Receipt + BUILD_RECEIPT | 25 | JSON + root row |
Run before team posts "content freeze starts Monday" in #fest-ops—pair 5-day store metadata freeze challenge when store copy freeze follows build freeze.
Block A — October RC label naming convention (beginner)
Document once in release-evidence/ops/october-rc-label-policy.md:
# October 2026 RC label policy
pattern: fest-demo-2026-10-rc{N}
examples:
- fest-demo-2026-10-rc1 # first October candidate before summer freeze
- fest-demo-2026-10-rc2 # post-vacation hotfix
surface: fest_public
branch: nextfest-oct-2026
content_freeze_date: 2026-08-01
forbidden: bare "rc1", "oct-demo", unversioned "fest-demo"
Beginner mistake: reusing June's fest-demo-2026-06-rc4 label through summer—breaks October refund dashboard correlation and jq diffs in September.
RC bump vs summer freeze decision tree
| Situation | New label? | Receipt action |
|---|---|---|
| First October candidate before freeze | Yes → rc1 |
New october receipt + L5 manifest |
| Hotfix during freeze (SHIP exception) | Yes → rc2 |
New receipt; document SHIP waiver |
| Addressables-only bundle add | No* | *Only if policy allows—otherwise new label |
| Revert to prior depot | Yes → restore old label | Receipt notes reverted_from |
Block B — Steamworks branch screenshot (L2)
- Open Steamworks → App Admin → Installs → Branches.
- Select October fest branch (e.g.
nextfest-oct-2026). - Confirm build ID matches upload log row for tonight's candidate.
- Screenshot full row including branch name and build number.
- Save as
release-evidence/steam/october-rc/2026-10-rc1_branch_screenshot.png.
Cross-check against 12 setlive checks check 3 and October depot branch rules—same evidence, different gate names.
Block C — Player-visible label capture (L4)
Install the candidate build on a test account. Open credits, title footer, or hold-to-view debug panel per visible label opinion.
| Field | Example |
|---|---|
| UI location | credits footer line 3 |
| Observed string | fest-demo-2026-10-rc1 |
| Matches BUILD_RECEIPT | true |
| Screenshot path | .../player_visible_label_oct_rc1.png |
If strings differ (rc1 vs RC1), L4 RED—fix pipeline normalization before freeze.
Block D — Content-freeze manifest (L5)
Pin release-evidence/addressables/content_freeze_manifest.json:
{
"schema": "content_freeze_manifest_v1",
"freeze_effective_utc": "2026-08-01T00:00:00Z",
"build_label": "fest-demo-2026-10-rc1",
"addressables_catalog_hash": "sha256:abc123…",
"remote_catalog_url": "https://cdn.example.com/catalog_2026_10_rc1.json",
"allowed_changes_until_unfreeze": [
"store_metadata",
"localization_po_import"
],
"forbidden_until_unfreeze": [
"new_addressables_groups",
"texture_reimport_bulk"
],
"cousin_receipt": "release-evidence/steam/october-rc/october_rc_branch_label_receipt_v1.json"
}
Developer path: compute catalog hash after Unity Addressables release workflow build step:
sha256sum ServerData/catalog_2026_10_rc1.json | tee release-evidence/addressables/catalog_hash.txt
L5 fails when manifest build_label ≠ receipt expected_build_label—freeze on wrong artifact.
october_rc_branch_label_receipt_v1.json (schema)
{
"schema": "october_rc_branch_label_receipt_v1",
"iso_week": "2026-W28",
"fest_window": "2026-10-next-fest",
"expected_build_label": "fest-demo-2026-10-rc1",
"fest_branch": "nextfest-oct-2026",
"steam_build_id": "87654321",
"surface": "fest_public",
"content_freeze_manifest": "release-evidence/addressables/content_freeze_manifest.json",
"gates": {
"L1": "GREEN",
"L2": "GREEN",
"L3": "GREEN",
"L4": "GREEN",
"L5": "GREEN",
"L6": "GREEN"
},
"evidence": {
"branch_screenshot": "release-evidence/steam/october-rc/2026-10-rc1_branch_screenshot.png",
"player_visible_screenshot": "release-evidence/steam/october-rc/player_visible_label_oct_rc1.png",
"february_cousin_pattern": "blog/your-first-steam-next-fest-february-2027-rc-branch-label-receipt-before-store-upload-one-evening-2026"
},
"october_rc_label_ok": true,
"summer_content_freeze_allowed": true,
"promotion_allowed": true,
"notes": "First October RC before Aug 1 Addressables freeze"
}
BUILD_RECEIPT root rows (same commit)
{
"build_label": "fest-demo-2026-10-rc1",
"fest_branch": "nextfest-oct-2026",
"surface": "fest_public",
"october_rc_label_ok": true,
"october_rc_branch_label_receipt": "release-evidence/steam/october-rc/october_rc_branch_label_receipt_v1.json",
"visible_build_label_ok": true,
"summer_content_freeze_allowed": true,
"content_freeze_manifest": "release-evidence/addressables/content_freeze_manifest.json"
}
summer_content_freeze_allowed latches only when L1–L6 GREEN—distinct from September promotion_allowed on setlive preflight.
verify_october_rc_branch_label.sh
#!/usr/bin/env bash
set -euo pipefail
REC="${1:-release-evidence/steam/october-rc/october_rc_branch_label_receipt_v1.json}"
BUILD="${2:-release-evidence/BUILD_RECEIPT.json}"
jq -e '.schema == "october_rc_branch_label_receipt_v1"' "$REC" || exit 1
jq -e '.october_rc_label_ok == true' "$REC" || exit 6
jq -e '.gates.L5 == "GREEN"' "$REC" || exit 5
LABEL=$(jq -r '.expected_build_label' "$REC")
jq -e --arg l "$LABEL" '.build_label == $l' "$BUILD" || exit 3
MANIFEST=$(jq -r '.content_freeze_manifest' "$REC")
jq -e --arg l "$LABEL" '.build_label == $l' "$MANIFEST" || exit 5
test -f "$(jq -r '.evidence.branch_screenshot' "$REC")" || exit 2
echo "october_rc_branch_label verify: OK"
jq gate sketch (working dev)
jq -e '
.expected_build_label == .build_label
and (.expected_build_label | test("^fest-demo-2026-10-rc[0-9]+$"))
and .october_rc_label_ok == true
and .gates.L4 == "GREEN"
and .gates.L5 == "GREEN"
' october_rc_branch_label_receipt_v1.json
PowerShell cousin:
$rec = Get-Content "release-evidence/steam/october-rc/october_rc_branch_label_receipt_v1.json" | ConvertFrom-Json
if ($rec.schema -ne "october_rc_branch_label_receipt_v1") { exit 1 }
if (-not $rec.october_rc_label_ok) { exit 6 }
$manifest = Get-Content $rec.content_freeze_manifest | ConvertFrom-Json
if ($manifest.build_label -ne $rec.expected_build_label) { exit 5 }
Write-Host "october_rc_branch_label verify: OK"
Proof table
| Evidence | Proves | Fail signal |
|---|---|---|
| Branch screenshot | L2 depot assignment | Upload log without branch move |
| Player-visible PNG | L4 UI parity | Footer shows prior month RC |
| content_freeze_manifest.json | L5 freeze target | Hash from different catalog |
| october receipt JSON | L6 filed receipt | october_rc_label_ok false |
| BUILD_RECEIPT root | L3 crosswalk | build_label drift |
| verify script exit 0 | CI gate | Any L* RED undocumented |
Scenarios A–G
A — Freeze declared without receipt
Block Addressables merges until L1–L6 GREEN—receipt is freeze authorization.
B — Vacation return: "rc1 shipped"
Producer requests branch screenshot path from receipt—no screenshot, no promotion.
C — Addressables hash changed during freeze
L5 RED unless SHIP exception filed—pair SHIP exception opinion.
D — September setlive on June label
Classic drift—fest-day setlive mismatch case study pattern; October receipt prevents if filed July.
E — Library beta name mismatch
L5 cousin check—pair branch naming checklist.
F — Two engines, one label
Document per-platform suffix in policy or split receipts—never one BUILD_RECEIPT row with ambiguous build_label.
G — Partner diligence in August
Send zip: receipt + manifest + screenshots—same bundle shape as Q4 diligence telemetry rows.
Extended scenarios H–L
H — Designer merges art during freeze without SHIP exception
L5 catalog hash drift—revert merge or file SHIP waiver + new rc2 receipt before unfreeze.
I — Remote catalog URL changed but label unchanged
L5 RED when addressables_catalog_hash ≠ built file—rebuild catalog on frozen label or bump RC.
J — Producer asks "which rc is live?" in September
Open october_rc_branch_label_receipt_v1.json evidence.branch_screenshot—not Slack scrollback.
K — CI passes but player footer stale
L4 trumps green upload—install from fest branch, not editor play mode.
L — October queue wall-clock telemetry questions
Pair October Steampipe queue trend after label receipt—upload timing is separate gate.
Worked example — July 13 evening (synthetic)
| Step | Time UTC | Action | Gate |
|---|---|---|---|
| 1 | 18:00 | Tag fest-demo-2026-10-rc1 in runbook |
L1 |
| 2 | 18:20 | Steamworks branch screenshot | L2 |
| 3 | 18:45 | Install build; footer shows fest-demo-2026-10-rc1 |
L4 |
| 4 | 19:05 | Build Addressables; sha256 catalog | L5 |
| 5 | 19:30 | Write receipt + BUILD_RECEIPT commit | L6 |
| 6 | 19:35 | verify_october_rc_branch_label.sh exit 0 |
CI |
| 7 | 19:40 | Post #fest-ops: freeze effective Aug 1 |
Comms |
Stand-up note for next morning:
## October RC label — 2026-07-14
- october_rc_label_ok: true
- summer_content_freeze_allowed: true
- build_label: fest-demo-2026-10-rc1
- catalog hash: sha256:abc123… (manifest on disk)
- Action: no Addressables group adds until SHIP exception or rc2 bump
BUILD_RECEIPT row catalog extension
| Column | Example | Set when |
|---|---|---|
october_rc_label_ok |
true |
L6 GREEN |
october_rc_branch_label_receipt |
release-evidence/steam/october-rc/october_rc_branch_label_receipt_v1.json |
L6 |
summer_content_freeze_allowed |
true |
L1–L6 GREEN |
content_freeze_manifest |
release-evidence/addressables/content_freeze_manifest.json |
L5 |
visible_build_label_ok |
true |
L4 |
Add rows beside existing build_label / fest_branch—never delete October keys without receipt_version bump.
Partner diligence zip (August optional)
#!/usr/bin/env bash
set -euo pipefail
OUT="release-evidence/steam/october-rc/partner-july-rc1-2026.zip"
zip -j "$OUT" \
release-evidence/steam/october-rc/october_rc_branch_label_receipt_v1.json \
release-evidence/addressables/content_freeze_manifest.json \
release-evidence/steam/october-rc/2026-10-rc1_branch_screenshot.png \
release-evidence/steam/october-rc/player_visible_label_oct_rc1.png
echo "partner zip: $OUT"
Troubleshooting
| Symptom | Fix |
|---|---|
| L1 regex fail | Update october-rc-label-policy.md pattern |
| L2 screenshot build ID mismatch | Re-upload or fix branch assignment |
| L3 BUILD_RECEIPT drift | Same commit as receipt—no hand-edit root |
| L4 case mismatch | Normalize in build pipeline strings |
| L5 hash mismatch | Rebuild Addressables on correct label |
| verify exit 3 | jq diff build_label across files |
| freeze announced early | Roll back comms until L6 GREEN |
Facilitator timing map (July → October)
| Phase | Owner | Artifact |
|---|---|---|
| July week 28 | Release | This receipt |
| Aug 1 | Producer | Content freeze effective |
| Aug–Sep | Engineering | SHIP exceptions only |
| Sep upload week | Release | 12 setlive checks |
| T-0 fest week | Pager | October timebox worksheet |
Summer freeze calendar (July → September)
| Date | Milestone | This article |
|---|---|---|
| 2026-07-13 (now) | File october RC label receipt | L1–L6 |
| 2026-08-01 | Addressables/content freeze effective | Requires L5 GREEN |
| 2026-08-15 | Mid-vacation checkpoint | Re-run verify if hotfix merged |
| 2026-09-01 | Upload month opens | 12 setlive checks |
| 2026-09-15 | T-2 weeks per October timeline | Wednesday smoke on frozen label |
Engine notes (L4 + L5 hooks)
| Engine | Player-visible label | Content-freeze hash source |
|---|---|---|
| Unity | Application.version or custom BuildLabel UI |
Addressables catalog_*.json sha256 |
| Godot | ProjectSettings display version in credits |
Export preset + PCK hash |
| Unreal | BuildConfiguration.xml string in pause menu |
Pak chunk manifest |
| GameMaker | GM_version draw in room0 |
YYZ + options hash |
Document engine-specific paths in receipt notes—L4 compares observed string only.
Comparison pack (October vs February cousin)
| Artifact | Fest | Freeze hook |
|---|---|---|
| February RC evening | Feb 2027 | Pre-upload after January re-entry |
| This evening | Oct 2026 | Pre-summer Addressables freeze |
| 7-day Addressables invalid key audit | Either | Post-freeze content updates |
| 3-day false-green CI challenge | Oct 2026 | CI cache keys |
Common mistakes
Declaring freeze in Slack without L5 manifest — Engineering merges bundles on wrong label.
Skipping July receipt because "October is far" — September promotes June depot by default.
Hand-typing catalog hash — L5 fails verify; always sha256 from built artifact.
Using February label pattern for October — L1 regex fails; use fest-demo-2026-10-rc*.
Freezing store copy and Addressables same night without receipts — Split 5-day metadata freeze from build freeze.
Merging BUILD_RECEIPT build_label without new receipt — Each RC bump needs new october_rc_branch_label_receipt_v1.json.
CI hook sketch (pre-freeze)
jobs:
october-rc-label:
if: github.ref == 'refs/heads/october-fest-2026'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: bash scripts/verify_october_rc_branch_label.sh
- run: jq -e '.summer_content_freeze_allowed == true' release-evidence/BUILD_RECEIPT.json
Printable producer card
# October RC label + summer freeze (one evening)
1. Pattern fest-demo-2026-10-rc1 documented? (L1)
2. Branch screenshot saved? (L2)
3. BUILD_RECEIPT build_label matches? (L3)
4. Player footer screenshot matches? (L4)
5. content_freeze_manifest.json hash pinned? (L5)
6. october_rc_branch_label_receipt_v1.json committed? (L6)
7. summer_content_freeze_allowed on BUILD_RECEIPT
8. Post in #fest-ops only after verify exit 0
Key takeaways
- July 2026 is the honest window for October RC label proof—not September panic.
october_rc_branch_label_receipt_v1.jsongates L1–L6 with L5 content-freeze manifest.summer_content_freeze_allowedis distinct from Septemberpromotion_allowed.- February RC evening is the pattern cousin—October adds Addressables hash latch.
- October timeline T-6 scope lock assumes label receipt filed.
verify_october_rc_branch_label.shgives CI one exit code before freeze merges.- Guide #34 forward owns ninety-second October RC preflight cousin.
- Course 270 forward wires BUILD_RECEIPT milestone.
- Forward #6 July October signup compression trend pairs signup window with label discipline.
- Forward #7 summer capsule gradient pass runs after signup store art swap—
summer_capsule_gradient_okbefore freeze upload. - Monday debrief facilitator card (March #1) is unrelated fest era—do not mix receipts.
- BUILD_RECEIPT beginner pipeline owns root row discipline.
- March cluster #2 opens #3–#12 October prep runway.
FAQ
Is this the same as February RC label evening?
Same L1–L6 shape—October adds L5 content-freeze manifest and fest-demo-2026-10-rc* pattern.
Can we freeze content without a player-visible label?
No—L4 is a freeze blocker per visible label opinion.
What if we do not use Addressables?
L5 manifest pins content hash for your pipeline (Godot PCK, Unreal pak)—schema stays; field names adapt in notes.
Does summer freeze block hotfixes?
Only with SHIP exception—new label + new receipt per bump.
When does October signup trend matter?
Forward blog #6—signup compression does not replace label receipt; pair both in July stand-up.
How does this relate to March post-fest cluster?
March cluster #1 is post-February debrief; this URL is July October prep—different fest windows.
What if we use GitHub Actions library cache for Addressables CI?
Cache bust receipts are orthogonal—L5 pins catalog content hash on the frozen label; CI cache keys must not change catalog bytes during freeze.
Can we copy February receipt JSON and rename fields?
Use schema october_rc_branch_label_receipt_v1—do not alias february file; jq gates differ on fest-demo-2026-10-rc* regex. Archive prior October receipts per RC bump instead of editing in place.
Closing
October fest discipline starts in July, not when Steamworks sends the upload reminder. One evening—branch screenshot, player footer, Addressables manifest, october_rc_branch_label_receipt_v1.json—turns "we'll freeze content Monday" into evidence partners and future-you can audit. Beginners copy the five blocks; working devs wire verify_october_rc_branch_label.sh; producers latch summer_content_freeze_allowed only when L1–L6 are GREEN. September promotion then rides a label you already proved—not the depot Steamworks remembered from June. Pair October fest week timebox when live week capacity planning begins.
Related GamineAI reads
- February RC branch label evening
- Steam Next Fest October 2026 timeline
- Build content hash lockfiles Addressables
- 12 preflight checks steamcmd setlive October
- Visible build label opinion
- Wednesday demo build smoke ritual
- Forward: July October signup window compression trend (blog #6)
Freeze content on proof, not hope—file october_rc_branch_label_receipt_v1.json, pin the Addressables manifest, then declare summer freeze in #fest-ops.