Process & Workflow May 18, 2026

Partner Upload ZIP Naming and README Bullet Map - A Ninety-Minute Standard Before Q3 2026 Cert Intake

2026 Process and Workflow guide for indie teams—partner upload ZIP naming, README bullet maps, manifest sidecars, and a ninety-minute standard before Q3 cert intake without inventing metrics.

By GamineAI Team

Partner Upload ZIP Naming and README Bullet Map - A Ninety-Minute Standard Before Q3 2026 Cert Intake

Isometric building pixel artwork suggesting organized partner intake lanes and labeled storefronts

Your mock audit tabletop scores seven dimensions—but dimension three still dies when the partner opens PartnerPacket_Final_v3_REAL.zip and the README says “see folder 2b” while the zip root contains 02b_build/ and 02B_BUILD/. That is not a gameplay bug. It is a naming contract failure.

Q3 2026 stacks Gamescom-adjacent reviews, Deck Verified autumn refresh evidence, and early holiday intake inside one quarter. This Process & Workflow guide gives micro-studios a ninety-minute standard for partner upload ZIP naming and a README bullet map that matches your release-evidence taxonomy without re-inventing folders on upload day.

Why this matters now (May 2026)

  1. Intake reviewers skim README first — If bullets do not mirror zip roots, they stop trusting hashes and screenshots in the same packet.
  2. Overnight handoffs multiply typosAsia-EU BUILD_RECEIPT discipline fails when the morning reviewer uploads a zip whose name omits the commit short hash the receipt references.
  3. Two-storefront teams duplicate packets — The two-storefront rule only works if Steam and secondary SKUs do not share ambiguous zip names like build.zip.
  4. AI disclosure rows need stable pathsSeven-day disclosure challenges assume annex bullets point at folders that exist on disk, not “we will upload later.”

Who this is for and what you get

Audience You will be able to…
Solo dev shipping first partner packet Name zips and README bullets without guessing on upload night
2–4 person team with contractor art Hand external partners a one-page map they cannot misread
Lead preparing publisher diligence Reuse the same README skeleton for demo vs cert variants

Time: ninety minutes for the first baseline; fifteen minutes per upload after that.
Prerequisites: A frozen build ID, access to your release-evidence/ root, and permission to rename folders before zipping—not after.

The failure mode partners actually cite

Partners rarely write “your zip confused us” in those words. They write:

  • “Please resubmit with consistent folder labels.”
  • “README references attachment 4; we only received three top-level directories.”
  • “Hash file does not cover the build cited in bullet 2.”
  • “Duplicate filenames inside archive.”

Each maps to fixable naming and bullet-map rules—not new features.

Ninety-minute sprint overview

Block Minutes Output
A — Pick naming schema 15 One-line pattern documented in release-evidence/README.md
B — Draft bullet map 20 Eight bullets max, each maps to one top-level folder
C — Dry-run zip 25 Zip built from clean export, unpacked on second machine
D — Hash sidecar 15 SHA256SUMS.txt + MANIFEST.json beside README
E — Cold-open drill 15 Teammate opens zip cold, follows only README

Stop when cold-open passes. Do not add bullets “for completeness.”

Block A — Partner upload ZIP naming schema

Use one pattern for every cert-facing upload in 2026:

{studio}_{game}_{channel}_{build_id}_{artifact}_{date_utc}.zip

Field rules:

  • studio — lowercase slug, no spaces (northlake)
  • game — Steam app slug or internal codename (riftbound)
  • channelpartner, steam, deck, quest, ios (never final)
  • build_id — CI number or {branch}_{short_sha} (rc_9f3a2c1)
  • artifactfull, demo, symbols, annex
  • date_utcYYYYMMDD upload date, not build date unless they differ intentionally

Examples:

  • northlake_riftbound_partner_rc_9f3a2c1_full_20260518.zip
  • northlake_riftbound_deck_rc_9f3a2c1_handheld_20260520.zip

Banned tokens: final, latest, test, new, copy, v2 without build_id—partners treat them as unversioned.

Windows and macOS path traps

  • Zip on Windows with path length under 180 characters for deepest file.
  • No trailing spaces in folder names; macOS zips preserve them and Linux reviewers break scripts.
  • Prefer _ over spaces; some portals strip spaces unpredictably.

Block B — README bullet map (the partner-facing index)

The README is not marketing copy. It is an index with eight bullets maximum for cert packets.

Template (copy into PARTNER_README.md at zip root):

# Partner packet — {game} — build {build_id}
Uploaded (UTC): {iso_timestamp}
Contact: {email}

1. **Build identity** — Folder `01_build/` — see BUILD_RECEIPT.md for commit, CI job, and artifact URLs.
2. **Input / handheld** — Folder `02_handheld/` — Deck Verified glyph captures + Steam Input VDF export (autumn 2026 lane).
3. **Store truth** — Folder `03_store/` — capsule PNG paths, short description text file, trailer frame list.
4. **AI disclosure** — Folder `04_ai/` — storefront bullets, in-game labels, API inventory CSV.
5. **Operations** — Folder `05_ops/` — regional pricing worksheet, playtest branch password file.
6. **Known issues** — File `KNOWN_ISSUES.md` — P0/P1 only, repro steps, no roadmap promises.
7. **Hashes** — File `SHA256SUMS.txt` — covers every file in `01_build/` and root manifests.
8. **Contact / escalation** — File `ESCALATION.md` — timezone coverage, response SLA, rollback owner.

Rules:

  • Bullet number must equal folder prefix (01_, 02_, …).
  • One bullet → one path. Never “see also folder 3 and attachments.”
  • If a section is empty, remove the bullet—do not point at placeholders.

Align folder numbers with your release-evidence taxonomy so internal and partner views match.

Block C — Zip topology (what goes inside)

Top level only:

PARTNER_README.md
BUILD_RECEIPT.md
KNOWN_ISSUES.md
ESCALATION.md
SHA256SUMS.txt
MANIFEST.json
01_build/
02_handheld/
03_store/
04_ai/
05_ops/

Do not nest another zip inside unless the partner portal requires it—and then bullet 1 must say “inner archive 01_build/game_win64.zip.”

BUILD_RECEIPT minimum fields

Tie to overnight handoff discipline:

  • commit_full and commit_short
  • ci_pipeline_url or local build command block
  • artifact_filename inside 01_build/
  • steam_depot_id or partner SKU id if applicable
  • signed_by human name + timezone

If receipt and zip name disagree on build_id, intake stops.

Block D — Hash sidecar and MANIFEST.json

SHA256SUMS.txt format (GNU style):

9f3ae2c1b4...  01_build/Riftbound.exe
a81b02e44c...  MANIFEST.json

Generate on the machine that created the zip, after the zip is assembled—then verify by unpacking elsewhere.

MANIFEST.json minimal schema:

{
  "game": "riftbound",
  "build_id": "rc_9f3a2c1",
  "uploaded_utc": "2026-05-18T14:22:00Z",
  "readme_version": "2026.05.partner.v1",
  "folders": ["01_build", "02_handheld", "03_store", "04_ai", "05_ops"]
}

Partners diff readme_version across resubmissions—bump it when bullets change.

Block E — Cold-open drill (15 minutes)

  1. Teammate who did not build the zip receives only the file + password.
  2. They follow README bullets 1–8 in order without Slack.
  3. Log first confusion as a P0 doc defect—fix naming before fixing code.
  4. Repeat after any RC freeze carve-out that touches folder names.

This is the same muscle as Friday Block 5 evidence maintenance—short, frequent, before intake.

T-14 vs T-3 packet variants

Variant When Naming difference
T-14 rehearsal Two weeks before intake Suffix _tabletop — may include redacted keys
T-3 production Seventy-two hours before lock Suffix _prod — must match live depot
Hotfix Emergency only New build_id; never overwrite zip in portal

Upload both README and zip for each variant; do not assume partners remember T-14 names.

Pairing with mock audit dimension 3

In the seven-dimension tabletop, dimension 3 is artifact parity—README bullets, zip tree, hashes, and BUILD_RECEIPT agree. Score it binary per upload:

  • Green — Cold-open drill passed; hashes verify on second machine
  • Yellow — Bullet map correct but hashes missing one auxiliary file
  • Red — Any bullet points at missing path

Yellow is not shippable for Q3 production intake—only for internal tabletop.

Tooling that keeps naming honest

Tool Use
7z or zip CLI Reproducible archives in CI
sha256sum / Get-FileHash Sidecar generation
jsonschema (optional) Validate MANIFEST.json in CI
fd / ripgrep Prove README paths exist before zip
Spreadsheet Track upload history with zip name column

For save-edge cases, pair with save fuzz tooling resources when bullet 1 includes save repro attachments.

Common mistakes (and fixes)

Mistake Fix
README written after zip Draft bullets first, export folders, then zip
Same zip name, different bytes Bump build_id; never reuse name
Case-only folder duplicates Enforce lowercase slugs in CI script
Marketing PDF in root Move to 05_ops/ and add bullet
Loom link instead of capture folder Export frames to 03_store/; link is supplementary only
Contractor used their own tree Re-export into numbered folders; do not merge ad hoc

Engine-specific notes (short)

Unity 6.6 LTS — Player build in 01_build/, ScriptableObject dump of Input maps in 02_handheld/ per Input preflight.
Godot 4.5 — Export presets named with build_id; web demos get separate zip channel itch_html5.
Unreal — Chunk folders stay inside 01_build/; do not split pak files across bullets without saying so.

Publisher and platform annex alignment

When diligence packets request “submission index,” paste the same eight bullets—change only channel in the zip name. Publishers compare annex README to prior uploads; drifting bullet order looks like disorganization even when art is fine.

Operating cadence with two timezones

If overnight CI produces the candidate zip:

  1. Morning owner renames to schema before upload—never upload contractor names.
  2. Append row to release-evidence/05-operations/upload_log.csv with zip name, uploader, portal ticket id.
  3. Post BUILD_RECEIPT excerpt in handoff channel—one screen, not the whole tree.

Security and redaction

  • Remove .env, signing keys, and partner credentials from every folder before zip.
  • Redact player emails in logs; keep crash hashes.
  • If redaction changes file list, regenerate SHA256SUMS.txt—old hashes are worse than none.

When to escalate vs fix in place

Fix in place — typo in bullet path, missing hash line, wrong date in filename.
Escalate — build inside zip does not match BUILD_RECEIPT commit; AI folder empty while bullet 4 claims disclosure; handheld folder missing after Deck retest.

Escalation template lives in ESCALATION.md—include rollback owner and whether Steam depot rollback is required.

Stretch goals after baseline

  • CI job fails if README paths missing
  • Portal upload script reads MANIFEST.json for display title
  • Auto-attach tabletop score PDF from mock audit export

Do not stretch before first green cold-open.

Worked example — fictional studio, real structure

Imagine Studio Harbor shipping Tidebreak build rc_b7e21a0 to a PC partner in August 2026.

Zip name: harbor_tidebreak_partner_rc_b7e21a0_full_20260812.zip

Bullet 2 handheld folder contains:

  • deck_glyphs/ — PNG set at required sizes
  • steam_input/ — exported VDF + default action set screenshot
  • smoke_log.txt — thirty-minute session, date in filename

Bullet 4 AI folder contains:

  • storefront_bullets.md — copy-paste from Steam admin
  • in_game_labels/ — screenshots of on-screen disclosure
  • api_inventory.csv — endpoint, model, data retention column

When the partner opens bullet 4, every file exists. When they hash 01_build/Tidebreak.exe, the value matches line 1 of SHA256SUMS.txt. That is the entire game of cert intake for micro-studios—make the map boringly true.

Integrating with CI (without overbuilding)

You do not need a custom portal. A pre-zip job in GitHub Actions or GitLab CI can:

  1. Assert numbered folders exist.
  2. Render PARTNER_README.md from a template with injected build_id.
  3. Run sha256sum recursively on 01_build/.
  4. Fail if KNOWN_ISSUES.md is empty while P0 label exists in issue tracker export.

Keep the job under five minutes. Long CI gates get skipped on upload night—the worst time to skip.

Sample pseudo-step:

test -f PARTNER_README.md
test -d 01_build
rg -q "01_build/" PARTNER_README.md
sha256sum 01_build/* > SHA256SUMS.txt

If your pipeline already emits content hash lockfiles, reference that artifact name in bullet 1 so partners know which Addressables catalog shipped.

Demo vs full build packets

Fest season tempts teams to upload demo and full in one zip. Split them:

Packet artifact token README difference
Next Fest demo demo Bullet 1 points at time-limited build; bullet 3 lists demo depot id
Partner cert full Bullet 6 lists known issues with cert scope only

If both ship the same week, filenames must differ on artifact—not only on date. Reviewers archive zips; collisions become “which Tidebreak is this?”

Localization and regional annex bullets

When bullet 5 covers operations, include:

  • pricing/region_sheet.csv — currency, base price, planned discount windows
  • legal/age_ratings.pdf — if applicable
  • localization/strings_manifest.csv — language code, file path, completion percent

Do not hide regional work in a generic misc/ folder—partners map bullets to compliance owners. Pair with regional pricing second-pass worksheets when Steam is primary.

Trailer and capture integrity

Bullet 3 should list frame numbers or timecodes for claims made in short description:

trailer_frame_claims.md
- 0:12 — co-op feature shown (build must include)
- 0:34 — biome not in demo (labelled preview in store?)

This prevents truth audit failures from reaching partner intake. Screenshots belong in 03_store/frames/, not only on Steam live.

Versioning README without chaos

When bullets change mid-quarter:

  • Bump readme_version in MANIFEST.json
  • Add CHANGELOG_PARTNER.md with three lines max per revision
  • Never edit bullets in place without version bump—partners diff archives

Example changelog entry:

2026.05.partner.v2 — Added 02_handheld after Deck autumn retest; split AI CSV columns.

Handoff email template (paste-ready)

Subject: {game} partner packet {build_id} uploaded

Body bullets:

  1. Zip name on portal: {exact_zip_name}
  2. README version: {readme_version}
  3. BUILD_RECEIPT commit: {short_sha}
  4. Known P0 count: {n} (see KNOWN_ISSUES.md)
  5. Escalation contact this week: {name} ({timezone})

No attachments besides the portal link—everything must live in the zip.

Metrics you can track without inventing case studies

Track internally (do not fabricate public metrics):

  • Minutes from zip complete to cold-open pass
  • Count of README edits after first drill
  • Resubmission count per intake window

Improvement in those three numbers is the ROI of this standard.

Relationship to operating review

Your 30-minute operating review sheet can include one row: Partner packet green? Y/N. If N, block other marketing tasks until naming passes—intake debt compounds faster than wishlist debt.

Deck Verified autumn lane attachment

When bullet 2 includes Deck work, cross-link captures with 16 free Deck testing tools so contractors know which PNG sizes and VDF exports belong in 02_handheld/. Do not dump raw Desktop dumps without labels—label each image with resolution and menu context.

Post-upload verification checklist

After portal upload completes:

  • [ ] Download your own upload from portal (if allowed) and re-hash
  • [ ] Ticket id recorded in upload_log.csv
  • [ ] Partner auto-reply email archived in 05_ops/
  • [ ] Calendar reminder for T-3 re-upload if build changes

Skipping self-download is how teams discover portal transcode or strip macOS metadata.

Key takeaways

  • Partner intake in Q3 2026 punishes README ↔ zip mismatches more than missing marketing fluff.
  • Use one ZIP naming schema with build_id—ban final and latest.
  • Cap README at eight bullets, each pointing to one real path.
  • Always ship BUILD_RECEIPT, SHA256SUMS.txt, and MANIFEST.json beside gameplay folders.
  • Run a cold-open drill after every freeze carve-out that touches folders.
  • Align numbered folders with your release-evidence taxonomy so internal and partner views match.
  • Pair this standard with the seven-dimension mock audit before real upload.
  • Log every upload name in 05-operations—future you will not remember portal UI labels.

FAQ

How long should PARTNER_README.md be?

Under one printed page. If you need more words, your folder structure is too deep—flatten before adding bullets.

Can we use Google Drive instead of zip?

Only as a backup link in ESCALATION.md. Primary artifact must be the zip partners archive.

What if our build is over portal size limits?

Split by artifact (_symbols.zip, _demo.zip) with separate README files—never split one logical build across ambiguous names.

Do we need separate zips for Steam and Epic?

Under the two-storefront rule, yes when compliance surfaces differ—change channel in the filename, duplicate bullets that apply to both.

How does this relate to the Q3 mock-audit resource list?

The Q3 submission intake resource roundup supplies templates; this post is the ninety-minute behavior that makes templates true on disk.

Should contractors ever upload directly?

No. They deliver into numbered folders; a single human names and zips so BUILD_RECEIPT stays authoritative.

What if partners request password-protected zips?

Put the password in ESCALATION.md and the upload ticket—never only in email. Rotate passwords per build; do not reuse fest-season passwords in cert packets.

Legal and privacy annex (when bullet 5 expands)

Some partners request GDPR, COPPA, or data processing PDFs in the same upload. Add subfolders only when contractually required:

05_ops/legal/
05_ops/privacy/

Extend bullet 5 text: “Legal and privacy PDFs under 05_ops/legal/ and 05_ops/privacy/.” If you lack counsel-reviewed PDFs, remove the bullet—empty legal folders erode trust faster than missing marketing screenshots.

For AI features, mirror Steam and Play disclosure intake rows inside 04_ai/ so bullet 4 and bullet 5 never contradict.

Resubmission discipline

When intake returns yellow or red on naming:

  1. Increment readme_version and build_id if bytes changed.
  2. Write RESUBMISSION_NOTE.md at zip root—three lines: what failed, what changed, what to re-check.
  3. Do not delete prior portal uploads from your log—append rows in upload_log.csv.

Partners compare resubmissions to prior archives. Silent overwrites without version bumps look like hiding churn.

Beginner quick start (first packet ever)

If you have never shipped a partner zip:

  1. Copy the eight-bullet template into PARTNER_README.md.
  2. Create empty numbered folders—even before files land.
  3. Paste your latest green build into 01_build/ only.
  4. Write one line in KNOWN_ISSUES.md you are willing to fix or disclose.
  5. Zip, unpack on a laptop you do not develop on, and fix every README lie you find.

Success check: a friend opens the zip and finds 01_build without asking you questions.

Conclusion

Partner upload ZIP naming and a README bullet map are cheap insurance before Q3 2026 windows compress. You already built the hard parts—gameplay, captures, disclosures. This ninety-minute standard makes the packet as legible as the build.

Run it once this week, log the cold-open result in release-evidence/05-operations/, and reuse the same skeleton when October fest traffic arrives. Partners will still find bugs—but they will stop finding your folder three under a name you never meant to ship.