Tutorials & Beginner-First Jul 11, 2026

Your First Steam Next Fest February 2027 RC Branch Label Receipt Before Store Upload in One Evening - 2026

2026 beginner tutorial—February Next Fest RC branch label receipt before store upload, L1–L6 gates, february_rc_branch_label_receipt_v1.json, and visible_build_label cross-check.

By GamineAI Team

Your First Steam Next Fest February 2027 RC Branch Label Receipt Before Store Upload in One Evening - 2026

Pixel-art hero for February 2027 Next Fest RC branch label receipt before store upload one evening 2026

Late January 2027: January re-entry smoke is GREEN on fest-demo-2026-12-rc3. Engineering bumps the candidate to fest-demo-2027-02-rc1. Steamworks upload succeeds. BUILD_RECEIPT still lists December. The player-visible footer still shows rc3. Discord celebrates "RC1 is live" while the library branch points at last week's depot.

February 2027 Steam Next Fest RC week punishes label drift harder than upload failures. Teams that fixed holiday freeze with defer receipts and capstone row review still promote branches when three strings disagree: Steam branch assignment, BUILD_RECEIPT build_label, and the player-visible label in credits or title footer. February prep calendar gives dates; visible build label opinion gives policy—this Tutorials & Beginner-First evening closes the RC branch label receipt gap before store upload and setlive.

Non-repetition note: GameMaker setlive dry-run evening owns S1–S6 staging setlive. January re-entry smoke owns post-freeze baseline R1–R6. Branch naming checklist owns library label parity. This URL owns *`fest-demo-2027-02-rc` label unity** across receipt, branch screenshot, and UI before February RC upload.

Pair BUILD_RECEIPT beginner, Wednesday smoke, Guide #32 setlive preflight forward, and Course 270 forward.

Why this matters now (February 2027 RC week)

  1. RC cadence compresses — Teams target rc1rc2rc3 in two weeks; each bump needs label proof, not verbal Discord.
  2. January baseline ≠ February candidate — Re-entry smoke on December label does not authorize February promotion without new receipt.
  3. Player-visible label enforcementOpinion piece is now default fest discipline; smoke must compare UI string to receipt.
  4. Multi-surface uploads — Playtest, fest_public, and press keys need one runbook string per RC—not three Slack variants.
  5. Thursday row review expects columnsbuild_label, fest_branch, visible_build_label_ok must align before row review passes.

Direct answer: Bump build_label to fest-demo-2027-02-rc1 (example pattern); screenshot Steamworks Branches; capture player-visible footer screenshot; file february_rc_branch_label_receipt_v1.json with gates L1–L6; set BUILD_RECEIPT february_rc_label_ok: true before store branch promotion or setlive.

Who this is for and what you get

Audience Outcome
Beginner RC label + branch screenshot ritual in one evening
Solo founder Stop promoting rc1 while UI shows rc3
Producer Gate February upload on label receipt
Working dev jq crosswalk BUILD_RECEIPT ↔ UI ↔ branch

Time: ~75–90 minutes first RC; ~20 minutes per subsequent rc2/rc3 bump after template exists.
Prerequisites: January re-entry smoke GREEN or documented SHIP exception; fest branch name in runbook; non-dev test account.

Format ladder (same cluster)

Artifact Role
January re-entry Post-freeze baseline
This evening February RC label unity before upload
GameMaker setlive dry-run Staging setlive proof
Wednesday smoke Binary golden path after promote
7-day RC challenge forward (#4) Daily discipline calendar

Order: January re-entry GREEN → this label receipt → upload/branch promotion → Wednesday smoke on new build_label.

Gates L1–L6 (February RC blockers)

Gate Name Pass criteria
L1 Label pattern build_label matches fest-demo-2027-02-rc* (team convention documented)
L2 Branch screenshot Steamworks Branches shows 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 (see opinion)
L5 Library label parity Steam library beta branch name matches branch naming checklist
L6 Receipt filed february_rc_branch_label_receipt_v1.json committed; february_rc_label_ok: true on BUILD_RECEIPT

L3–L5 are promotion blockers when RED. L2 YELLOW only with producer waiver when screenshot redacted for partner NDA—document in receipt notes.

Evening overview (four blocks)

Block Minutes Output
A — Name the RC 15 fest-demo-2027-02-rc1 in runbook + receipt draft
B — Branch screenshot 20 L2 PNG from Steamworks
C — Player-visible capture 25 L4 screenshot from installed build
D — Receipt + BUILD_RECEIPT 25 JSON + root row

Run after January re-entry and before production upload/setlive—pair Thursday row review same week.

Block A — RC label naming convention (beginner)

Document once in release-evidence/ops/february-rc-label-policy.md:

# February 2027 RC label policy
pattern: fest-demo-2027-02-rc{N}
examples:
  - fest-demo-2027-02-rc1  # first February candidate after re-entry
  - fest-demo-2027-02-rc2  # hotfix after playtest
surface: fest_public
branch: nextfest-feb-2027
forbidden: bare "rc1", "feb-demo", unversioned "fest-demo"

Beginner mistake: using rc1 without year/month prefix—breaks jq crosswalk with November/December receipts and jq capstone child labels.

RC bump decision tree

Situation New label? Receipt action
First February candidate after re-entry Yes → rc1 New february receipt
Hotfix same scope, same depot intent Yes → rc2 New receipt; archive rc1
Store copy only No Metadata diff—not this article
Revert to prior depot Yes → restore old label Receipt notes reverted_from

Block B — Steamworks branch screenshot (L2)

  1. Open Steamworks → App Admin → InstallsBranches.
  2. Select fest branch (e.g. nextfest-feb-2027).
  3. Confirm build ID matches upload log row for tonight's candidate.
  4. Screenshot full row including branch name and build number.
  5. Save as release-evidence/steam/february-rc/2027-02-rc1_branch_screenshot.png.

Cross-check branch string against 12 setlive checks check 3 and GameMaker setlive evening S1—same evidence, different gate names.

Block C — Player-visible label capture (L4)

Install the candidate build on a test account (not editor). Open credits, title footer, or hold-to-view debug panel per visible label opinion.

Record:

Field Example
UI location credits footer line 3
Observed string fest-demo-2027-02-rc1
Matches BUILD_RECEIPT true
Screenshot path .../player_visible_label_rc1.png

If strings differ by one character (rc1 vs RC1), L4 RED—fix pipeline string normalization before upload. Case-sensitive compare unless team policy documents otherwise.

Optional: file sibling visible_build_label_receipt_v1.json when audit trail requires separate schema—february receipt may index path in visible_label_receipt_path.

february_rc_branch_label_receipt_v1.json (schema)

{
  "schema": "february_rc_branch_label_receipt_v1",
  "iso_week": "2027-W05",
  "expected_build_label": "fest-demo-2027-02-rc1",
  "fest_branch": "nextfest-feb-2027",
  "steam_build_id": "12345678",
  "surface": "fest_public",
  "gates": {
    "L1": "GREEN",
    "L2": "GREEN",
    "L3": "GREEN",
    "L4": "GREEN",
    "L5": "GREEN",
    "L6": "GREEN"
  },
  "evidence": {
    "branch_screenshot": "release-evidence/steam/february-rc/2027-02-rc1_branch_screenshot.png",
    "player_visible_screenshot": "release-evidence/steam/february-rc/player_visible_label_rc1.png",
    "january_reentry_receipt": "release-evidence/03-builds/january-reentry/2027-W01/january_reentry_smoke_receipt_v1.json"
  },
  "february_rc_label_ok": true,
  "promotion_allowed": true,
  "notes": "First February RC after re-entry baseline fest-demo-2026-12-rc3"
}

BUILD_RECEIPT root rows (same commit)

{
  "build_label": "fest-demo-2027-02-rc1",
  "fest_branch": "nextfest-feb-2027",
  "surface": "fest_public",
  "february_rc_label_ok": true,
  "february_rc_branch_label_receipt": "release-evidence/steam/february-rc/february_rc_branch_label_receipt_v1.json",
  "visible_build_label_ok": true,
  "january_reentry_smoke_ok": true
}

promotion_allowed on label receipt is true only when L1–L6 GREEN—distinct from Wednesday demo_smoke.promotion_allowed.

jq gate sketch (working dev)

jq -e '
  .expected_build_label == .build_label
  and (.expected_build_label | test("^fest-demo-2027-02-rc[0-9]+$"))
  and .february_rc_label_ok == true
  and .gates.L4 == "GREEN"
' february_rc_branch_label_receipt_v1.json

Merge check against BUILD_RECEIPT:

jq -e --slurpfile br BUILD_RECEIPT.json '
  .build_label == $br[0].build_label
  and .february_rc_label_ok == $br[0].february_rc_label_ok
' february_rc_branch_label_receipt_v1.json

PowerShell:

jq -e '.february_rc_label_ok == true' .\february_rc_branch_label_receipt_v1.json
if ($LASTEXITCODE -ne 0) { throw "L6 gate failed" }

Proof table

Evidence Proves Fail signal
Branch screenshot L2 depot assignment Upload log without branch move
Player-visible screenshot L4 UI truth Internal-only CI label
Label receipt JSON L1–L6 human gate Verbal "rc1 is live"
BUILD_RECEIPT row Team-level latch Receipt without root update
January re-entry pointer Baseline lineage Mystery bump from December
Upload log CSV row Byte upload happened Label receipt without upload

Scenarios A–G

ID Situation Move
A First rc1 after GREEN re-entry Full L1–L6; then upload
B rc1 UI shows December label L4 RED; fix pipeline before promote
C Branch screenshot shows wrong build ID L2 RED; re-upload or fix assignment
D Playtest branch label differs from fest Separate receipts per surface (isolation playbook)
E Hotfix rc2 same evening New receipt; do not edit rc1 JSON in place
F Solo dev, no second account L5 YELLOW with library screenshot from primary account—document waiver
G GameMaker exporter Pair setlive dry-run after L6 GREEN

One-evening worked example

Time Action Gate
18:00 Confirm January re-entry receipt path baseline
18:15 Set fest-demo-2027-02-rc1 in runbook L1
18:30 Steamworks branch screenshot L2
18:50 Install candidate; capture footer L4
19:05 Library beta name check L5
19:20 Write JSON; update BUILD_RECEIPT L3, L6
19:30 Hand off to upload/setlive owner

Common mistakes

Mistake Fix
Bumping label without new receipt File new JSON per RC
Promoting on upload success alone L2 branch screenshot required
Skipping player-visible check L4 is not optional for fest_public
Reusing January re-entry as February proof Re-entry ≠ RC candidate
Three branch names in Slack One runbook string in L5

Promotion checklist (append to runbook)

[ ] January re-entry smoke GREEN (or documented exception)
[ ] build_label matches fest-demo-2027-02-rc{N} pattern
[ ] february_rc_branch_label_receipt_v1.json L1–L6 GREEN
[ ] BUILD_RECEIPT february_rc_label_ok == true
[ ] Player-visible label screenshot attached
[ ] Branch screenshot attached
[ ] setlive dry-run (engine-specific) scheduled
[ ] Wednesday smoke calendar invite for post-promote week

Counterarguments (honest limits)

"Steam build ID is enough."
Partners and players reference build_label in Discord and crash reports—not seven-digit IDs alone.

"We will fix the footer after upload."
Fixing after promote ships the wrong label to early fest traffic; L4 runs on candidate before promotion.

"Same as setlive dry-run evening."
Setlive proves branch pointer move; this receipt proves label unity across receipt, UI, and branch naming before bytes move.

Engine-specific label wiring (working dev)

The receipt schema is engine-agnostic; the string source is not. Wire one generator so UI, BUILD_RECEIPT, and upload log never dual-enter.

Engine Typical source February RC pitfall
Unity Application.version or custom BuildInfo ScriptableObject baked at CI Player Settings version left at 0.1 while receipt says rc1
Godot 4 ProjectSettings custom application/config/build_label read in credits scene Export preset not passing define to release export
GameMaker GM_version macro or game_display_version in Create event IDE test build shows different string than Steam export
Unreal BuildSettings + UGameplayStatics::GetGameVersion() override Shipping config not stamping fest label on demo target
Ren'Py config.version + build_info.rpy VN classification label diverges from Steam branch (7-day Ren'Py freeze)

Rule: CI writes expected_build_label into the artifact; evening ritual only verifies it on screen—do not hand-edit credits the night before upload unless the pipeline is broken and you file a SHIP exception.

Archive pattern per RC bump

Never overwrite february_rc_branch_label_receipt_v1.json when moving rc1rc2. Use dated paths:

release-evidence/steam/february-rc/
  2027-02-rc1/february_rc_branch_label_receipt_v1.json
  2027-02-rc2/february_rc_branch_label_receipt_v1.json

BUILD_RECEIPT points at the latest path; Thursday row review diffs whether root build_label moved without a new child receipt—same discipline as November capstone child booleans.

Thursday row review columns (pair same week)

After L6 GREEN, expect these columns on the weekly diff:

Column February RC expectation
build_label fest-demo-2027-02-rc{N}
fest_branch nextfest-feb-2027 (or team key)
february_rc_label_ok true
visible_build_label_ok true
january_reentry_smoke_ok true (baseline lineage)
february_rc_branch_label_receipt path to tonight's JSON

If build_label changes but february_rc_label_ok stays false, row review should RED even when upload log shows bytes moved—prevents "silent rc2" where only Steam knows the truth.

Discord and partner announcement template

Paste only after L1–L6 GREEN:

February RC candidate ready for upload review
build_label: fest-demo-2027-02-rc1
fest_branch: nextfest-feb-2027
steam_build_id: 12345678
february_rc_label_ok: true
evidence: release-evidence/steam/february-rc/2027-02-rc1/
player-visible label screenshot: attached
BLOCKED until setlive dry-run + Wednesday smoke on promoted build

Community managers trained on visible label opinion should ask reporters for label screenshot first—this template trains internal channels the same way.

Pairing with February prep calendar phases

Map receipt timing to prep calendar phases:

Calendar phase Label receipt role
Pre-freeze lock Document fest-demo-2027-02-rc* pattern in runbook only
January re-entry Re-entry smoke proves frozen baseline
Festival approach This evening per RC before upload/setlive
Final month Repeat for rc2/rc3 hotfixes; forward #4 seven-day challenge

Teams that skip label receipt in "festival approach" often discover library/UI drift during creator key sends—when streamers install the wrong depot and cannot cite a label.

Outbound references

Related GamineAI reads

Key takeaways

  1. February RC needs *`fest-demo-2027-02-rc`** label unity—not just upload success.
  2. Run after January re-entry and before branch promotion.
  3. Gates L3–L5 tie BUILD_RECEIPT, branch screenshot, and player-visible UI together.
  4. File february_rc_branch_label_receipt_v1.json per RC bump—do not edit prior JSON in place.
  5. february_rc_label_ok on BUILD_RECEIPT latches team promotion permission.
  6. Visible label opinion makes L4 mandatory for fest_public.
  7. Pair setlive dry-run for engine-specific branch moves.
  8. February calendar dates assume this receipt before January upload week.
  9. jq gates optional after manual discipline works one RC cycle.
  10. Each rc2/rc3 hotfix gets a new receipt file.
  11. Forward #4 seven-day RC smoke challenge extends daily discipline.
  12. Wednesday smoke runs after promote on the new build_label.

FAQ

Is this the same as January re-entry smoke?

No. Re-entry verifies the frozen baseline. This receipt verifies February RC label alignment before upload/promote.

Must the label include 2027-02?

Use your team convention; this article recommends fest-demo-2027-02-rc{N} to avoid collision with October/December labels.

Can I skip the player-visible screenshot?

Not for fest_public demos under visible label opinion—L4 RED blocks promotion.

What if only store metadata changed?

Run Wednesday metadata diff—not this label receipt.

Does this replace setlive dry-run?

No—sequence is label receipt → upload → setlive dry-run → Wednesday smoke.

How does this relate to Course 270?

Lesson 270 forward BUILD_RECEIPT milestone expects setlive receipt; this blog is the February RC label evening strategy layer.

Closing

February Next Fest RC week is not the time to discover that three systems disagree on what you called the build. One evening spent on branch screenshots, player-visible captures, and february_rc_branch_label_receipt_v1.json buys a promotion story partners and players can actually reference.

Bump the label deliberately, prove it in three places, file the receipt, then upload. If L4 fails, fix the footer before the branch moves—not after Discord announces "we're live."

Next: 7-day February RC smoke challenge — C1–C7 daily ladder during late January RC week.