Process & Workflow Jul 12, 2026

Monday January Capstone Reconciliation BUILD_RECEIPT Row Review - Fifteen Minutes Before First February Upload - 2026

2026 Monday January capstone reconciliation BUILD_RECEIPT row review—fifteen minutes before first February upload, gates M1–M10, january_capstone_reconciliation_receipt_v1.json, pairs Friday capstone review and jq January pointer.

By GamineAI Team

Monday January Capstone Reconciliation BUILD_RECEIPT Row Review - Fifteen Minutes Before First February Upload - 2026

Pixel-art hero for Monday January capstone reconciliation BUILD_RECEIPT row review before February upload 2026

Monday 9:00 a.m., January 6: January re-entry smoke filed Saturday. jq January pointer exit 0 Sunday night. Engineering schedules first February SteamPipe upload for Tuesday lunch. BUILD_RECEIPT.json still shows december_freeze_allowed: true, january_reentry_capstone_ok is missing, ship_exception_list_ok disagrees with numbered SHIP list, and marketing_spend_planned never synced from January marketing cap.

January 2027 first Monday is not "another Thursday." It is capstone reconciliation: prove November close-out, December freeze, holiday SHIP exceptions, January re-entry, and February RC intent still describe one build_label story on the root BUILD_RECEIPT before SteamPipe spends wall-clock on a depot partners cannot audit.

Friday November capstone review latched december_freeze_allowed. Thursday row review owns weekly R1–R10 diffs. jq January pointer owns J1–J6 machine proof. This Process & Workflow article defines a fifteen-minute Monday capstone reconciliation: diff January-specific root columns, file january_capstone_reconciliation_receipt_v1.json, set february_upload_allowed: true only when M4–M8 pass—the human gate before first February upload.

Non-repetition note: Thursday owns weekly promotion row diff. Friday November owns N1–N11 freeze latch. jq pointer owns bash/jq guards. January unfreeze listicle owns fourteen-tool audit. This URL owns Monday M1–M10 reconciliation diff across November + December + January capstone columns before February SteamPipe.

Pair December defer playbook, 14 free January unfreeze audit tools, February RC branch label evening, and Lesson 276 capstone forward.

Why this matters now (first Monday / February upload week)

  1. Receipt sprawl after holiday — November capstone, December defer, SHIP list, re-entry smoke, marketing cap, and jq pointer each filed separate JSON—root BUILD_RECEIPT must reconcile them Monday, not assume Saturday files propagated.
  2. SteamPipe wall-clockUpload queue telemetry cousins burn founder hours watching builds when receipt booleans were already RED Monday morning.
  3. Label lineageVisible build label policy fails when Monday upload uses build_label that skips SHIP exception integers.
  4. February RC chain7-day RC challenge day one assumes Monday reconciliation GREEN—not heroic Tuesday jq archaeology.
  5. Course 276 milestoneNovember truth capstone lesson expects reconciliation receipt beside January pointer before February promote.

Direct answer: On first Monday after holiday (default 2027-01-06), run M1–M10 on BUILD_RECEIPT capstone + January columns; write january_capstone_reconciliation_receipt_v1.json; set february_upload_allowed: true only when M4–M8 GREEN—block first February SteamPipe upload when reconciliation diff is RED even if Saturday smoke was GREEN.

Who this ritual is for

Audience Outcome
Solo founder Fifteen-minute checklist before Tuesday setlive
Release owner Latch january_capstone_reconciliation_ok + february_upload_allowed same commit
Producer Require Monday diff in partner zip before upload calendar invite
Working dev Machine-readable receipt for CI graph before SteamPipe job

Time: 15 minutes on first Monday after holiday re-entry (default Jan 6); 5 minutes optional refresh each Monday until February promote week.
Prerequisites: JANUARY_REENTRY_CAPSTONE.json, verify_january_reentry.sh exit 0, JANUARY_REENTRY_SMOKE_RECEIPT.json GREEN, SHIP_EXCEPTION_LIST_RECEIPT.json if any holiday hotfixes, January unfreeze audit optional GREEN.

Ritual map — holiday arc through Monday latch

Phase Ritual Layer This article
Nov close-out Friday capstone N1–N11 december_freeze_allowed Prerequisite
Dec freeze Defer H1–H6 Scope lanes Prerequisite
Holiday SHIP O1–O6 Numbered hotfixes Prerequisite if binaries moved
Jan re-entry Wednesday smoke R1–R6 Cold-install baseline Prerequisite
Jan pointer jq J1–J6 November truth + label transition Prerequisite
First Monday Capstone reconciliation (this) Root receipt cross-era columns M1–M10
Tue+ February RC label evening RC branch receipt Follows GREEN Monday diff

Saturday smoke GREEN with Monday reconciliation RED still ships upload theater—SteamPipe promotes a depot BUILD_RECEIPT cannot explain across November→January.

Reconciliation row catalog (what Monday diffs)

Store once in release-evidence/05-operations/january-capstone-reconciliation-catalog.md:

Row key Era Must reconcile? Typical stale pattern
november_closeout_ok Nov Yes true while child stale
november_closeout_capstone_path Nov Yes Broken path after folder move
holiday_defer_ok Dec Yes true but defer receipt version old
december_freeze_allowed Dec Yes still true after unfreeze merges
ship_exception_list_ok Holiday Yes Count ≠ ship_exception_count
ship_exception_count Holiday Yes Drift from SHIP-00N list
january_reentry_smoke_ok Jan Yes Missing after Saturday smoke
january_reentry_capstone_ok Jan Yes Missing after jq pointer
january_unfreeze_audit_ok Jan Optional U1–U6 adopted but not latched
marketing_spend_planned Jan Yes ≠ sum of weekly caps
marketing_spend_actual Jan Optional Null is fine pre-ads
expected_build_label Cross Yes Skips SHIP build_label_after chain
february_upload_allowed Feb Output Set Monday only when M4–M8 GREEN
february_rc_allowed Feb Pointer Premature true before RC evening
january_capstone_reconciliation_ok Jan Output Latch for Lesson 276

Never delete cross-era keys mid-January without receipt_version bump documented in reconciliation notes.

Gates M1–M10 (Monday upload blockers)

Gate Name Pass criteria
M1 November capstone november_closeout_ok true; capstone path exists; November jq re-run exit 0 if label bumped since Friday
M2 January pointer january_reentry_capstone_ok true; verify_january_reentry.sh exit 0 same ISO week
M3 Re-entry smoke january_reentry_smoke_ok true; frozen_baseline_label matches SHIP list or defer frozen label
M4 SHIP list parity ship_exception_list_ok true; last build_label_after equals BUILD_RECEIPT build_label
M5 Defer consistency holiday_defer_ok true; no open DEFER rows promoted without SHIP seq
M6 Label lineage Documented chain: Nov label → SHIP exceptions → re-entry smoke → current build_label
M7 Unfreeze audit january_unfreeze_audit_ok true when U1–U6 adopted; else YELLOW with waiver
M8 Marketing cap marketing_spend_planned matches JANUARY_MARKETING_CAP_RECEIPT.json sum when cap adopted
M9 Thursday cousin Latest build_receipt_row_diff_receipt_v1.json GREEN if promotion planned same week
M10 Diff receipt january_capstone_reconciliation_receipt_v1.json committed; february_upload_allowed set

M4–M8 are first-upload blockers when RED. M7 YELLOW allows upload only with producer waiver in reconciliation notes.

The fifteen-minute Monday ritual (minute-by-minute)

Min Action
0–2 Open BUILD_RECEIPT + pointer index; confirm Saturday smoke + Sunday jq logs in release-evidence/ops/
2–4 M1–M2: November capstone path + January pointer *_ok booleans
4–6 M3–M4: re-entry smoke baseline vs SHIP list last label
6–9 M5–M6: defer table cross-check; write label lineage one-liner in notes
9–11 M7–M8: unfreeze audit optional; marketing cap sum jq
11–13 M9: attach Thursday diff if same-week promote planned
13–15 Write reconciliation receipt; set february_upload_allowed + january_capstone_reconciliation_ok

Calendar invite: "Monday January capstone reconciliation — February upload latch (BUILD_RECEIPT)."

First Monday calendar (recommended)

When Block Minutes
Sat / Sun Re-entry smoke + jq pointer ~60 total
Mon AM Capstone reconciliation M1–M10 15
Mon PM January unfreeze audit if not done 45
Tue eve February RC label receipt ~90
Wed First SteamPipe upload (if Monday GREEN) wall-clock

Fifteen minutes Monday is cheaper than Tuesday rollback when partners ask why November and January receipts disagree.

january_capstone_reconciliation_receipt_v1.json (schema sketch)

{
  "schema": "january_capstone_reconciliation_receipt_v1",
  "iso_week": "2027-W02",
  "reconciliation_date": "2027-01-06",
  "label_lineage": [
    "fest-demo-2026-11-rc4",
    "fest-demo-2026-12-rc3-hotfix2",
    "fest-demo-2027-01-rc1"
  ],
  "pointers": {
    "november_capstone": "release-evidence/capstone/NOVEMBER_CLOSEOUT_CAPSTONE.json",
    "january_pointer_capstone": "release-evidence/capstone/JANUARY_REENTRY_CAPSTONE.json",
    "january_reentry_smoke": "release-evidence/smoke/JANUARY_REENTRY_SMOKE_RECEIPT.json",
    "ship_exception_list": "release-evidence/ops/SHIP_EXCEPTION_LIST_RECEIPT.json",
    "december_defer": "release-evidence/ops/DECEMBER_DEFER_RECEIPT.json",
    "january_marketing_cap": "release-evidence/ops/JANUARY_MARKETING_CAP_RECEIPT.json"
  },
  "gates": {
    "M1": "GREEN",
    "M2": "GREEN",
    "M3": "GREEN",
    "M4": "GREEN",
    "M5": "GREEN",
    "M6": "GREEN",
    "M7": "YELLOW",
    "M8": "GREEN",
    "M9": "GREEN",
    "M10": "GREEN"
  },
  "february_upload_allowed": true,
  "row_diff": [
    {
      "key": "january_capstone_reconciliation_ok",
      "before": null,
      "after": true,
      "reason": "Monday M1–M10 reconciliation GREEN"
    },
    {
      "key": "february_upload_allowed",
      "before": false,
      "after": true,
      "reason": "M4–M8 GREEN; first upload scheduled 2027-01-07"
    }
  ],
  "stale_columns": [],
  "notes": "M7 YELLOW—january_unfreeze_audit_ok not adopted; waiver producer 2027-01-06"
}

Beginner rule: february_upload_allowed may be true only when stale_columns[] empty and M4–M8 GREEN.

BUILD_RECEIPT root rows to touch same commit

{
  "january_capstone_reconciliation_ok": true,
  "january_capstone_reconciliation_path": "release-evidence/ops/JANUARY_CAPSTONE_RECONCILIATION_RECEIPT.json",
  "january_reentry_capstone_ok": true,
  "january_reentry_smoke_ok": true,
  "ship_exception_list_ok": true,
  "february_upload_allowed": true,
  "build_label": "fest-demo-2027-01-rc1",
  "expected_build_label": "fest-demo-2027-01-rc1"
}

verify_january_capstone_reconciliation.sh

#!/usr/bin/env bash
set -euo pipefail
REC="${1:-release-evidence/ops/JANUARY_CAPSTONE_RECONCILIATION_RECEIPT.json}"
BR="${2:-BUILD_RECEIPT.json}"

jq -e '.schema == "january_capstone_reconciliation_receipt_v1"' "$REC" || exit 1

jq -e '.january_capstone_reconciliation_ok == true' "$BR" 2>/dev/null || {
  jq -e '.gates.M10 == "GREEN"' "$REC" || exit 10
}

# M4 label parity
LAST=$(jq -r '.label_lineage[-1]' "$REC")
BL=$(jq -r '.build_label' "$BR")
[[ "$LAST" == "$BL" ]] || { echo "M6/M4 fail: lineage tail $LAST != build_label $BL"; exit 4; }

jq -e '.february_upload_allowed == true' "$REC" || exit 8
echo "january_capstone_reconciliation verify: OK"

Wire in CI after verify_january_reentry.sh and before SteamPipe promote job.

Label lineage worksheet (beginner)

Copy into reconciliation notes:

## Label lineage — 2027-01-06

1. November freeze: fest-demo-2026-11-rc4 (Friday N11)
2. SHIP-001: fest-demo-2026-12-rc3-hotfix1 (Dec 22 smoke)
3. SHIP-002: fest-demo-2026-12-rc3-hotfix2 (Dec 29 smoke)
4. January re-entry verified: fest-demo-2027-01-rc1 (Jan 4 smoke)
5. Monday BUILD_RECEIPT build_label: fest-demo-2027-01-rc1 ✓
6. Player-visible label screenshot: attached SHIP_002 + re-entry paths

If any step is missing, M6 RED—fix before february_upload_allowed.

jq cross-check pack (working dev)

# M8 marketing cap sum
jq -s '
  .[0].marketing_spend_planned as $p
  | .[1].weekly_caps | map(.cap_usd) | add as $s
  | $p == $s
' BUILD_RECEIPT.json release-evidence/ops/JANUARY_MARKETING_CAP_RECEIPT.json

# M4 exception count
jq -s '
  .[0].ship_exception_count == (.[1].exceptions | length)
' BUILD_RECEIPT.json release-evidence/ops/SHIP_EXCEPTION_LIST_RECEIPT.json

Proof table

Row Evidence GREEN when
P1 NOVEMBER_CLOSEOUT_CAPSTONE.json november_closeout_ok: true
P2 JANUARY_REENTRY_CAPSTONE.json january_reentry_capstone_ok: true
P3 JANUARY_REENTRY_SMOKE_RECEIPT.json R1–R6 pass
P4 SHIP_EXCEPTION_LIST_RECEIPT.json O1–O6 pass if exceptions > 0
P5 JANUARY_CAPSTONE_RECONCILIATION_RECEIPT.json M1–M10 documented
P6 BUILD_RECEIPT root february_upload_allowed: true after Monday

Scenarios A–G

A — Zero SHIP exceptions, honest freeze
Label chain: Nov rc4 → re-entry rc1. M4 passes with empty SHIP list. Monday sets upload allowed for Tuesday RC prep only—not feature merges.

B — Two SHIP exceptions, smoke same day
M6 documents hotfix1 → hotfix2 → rc1. M3 verifies re-entry smoke used last SHIP label as baseline notes.

C — Saturday smoke GREEN, Monday BUILD_RECEIPT missing latches
M2/M3 fail on missing booleans—fix root row before SteamPipe; do not re-run full smoke unless label changed.

D — Marketing cap adopted, BUILD_RECEIPT sum drift
M8 RED until marketing_spend_planned updated—block ads and upload same day until fixed.

E — Unfreeze audit not adopted
M7 YELLOW with waiver; producer note required. Upload allowed for engineering-only depot; marketing SR rules still apply.

F — Partner diligence Monday call
Export reconciliation JSON + label lineage markdown—faster than narrating holiday merges from memory.

G — Thursday row review skipped last week
M9 RED if same-week promote—run Thursday R1–R10 before Monday reconciliation or document waiver.

Comparison pack (Monday vs Friday vs Thursday)

Ritual Duration Scope Output latch
Thursday row review 10 min Weekly R1–R10 vs last promote promotion_allowed
Friday November capstone 10 min N1–N11 November children december_freeze_allowed
Monday January reconciliation 15 min Nov + Dec + Jan cross-era february_upload_allowed
jq January pointer 3 min J1–J6 machine proof january_reentry_capstone_ok

SteamPipe integration (first February upload)

Before steamcmd / CI upload job:

  1. verify_january_capstone_reconciliation.sh exit 0
  2. february_upload_allowed: true on BUILD_RECEIPT
  3. February signup G-gates filed if store event copy references participate date
  4. February capsule safe-zone Z-gates if art changed since upload

Pair 12 setlive preflight checks—Monday reconciliation is the receipt layer; setlive checks are the Steamworks layer.

Common mistakes

Treating Monday as Thursday — Weekly R-diff does not reconcile November capstone paths or SHIP counts.

Upload Tuesday without Monday latchfebruary_upload_allowed is not decorative; partners grep for it.

Skipping label lineage — M6 is one markdown block—do not improvise in diligence calls.

Assuming jq replaces Monday — jq proves pointer; Monday proves BUILD_RECEIPT human columns caught up.

Clearing december_freeze_allowed without reconciliation — Freeze era booleans stay for audit; add January latches beside them.

One PR for smoke and upload — Reconciliation receipt should be its own commit for clear partner diff.

Discord template (producer)

Monday capstone reconciliation: M1–M10 run on BUILD_RECEIPT. Label lineage: {lineage}. february_upload_allowed: {true/false}. Receipt: JANUARY_CAPSTONE_RECONCILIATION_RECEIPT.json. No SteamPipe until GREEN.

Outbound references

Related GamineAI reads

  1. First Monday after holiday needs fifteen-minute capstone reconciliation—not weekly Thursday alone.
  2. january_capstone_reconciliation_receipt_v1.json records M1–M10 across November, December, and January rows.
  3. february_upload_allowed latches only when M4–M8 GREEN.
  4. Label lineage must chain November → SHIP exceptions → re-entry smoke → current build_label.
  5. Pair Friday N1–N11, jq J1–J6, and SHIP O1–O6—Monday merges human columns.
  6. verify_january_capstone_reconciliation.sh runs before first February SteamPipe job.
  7. Lesson 276 expects reconciliation receipt beside January pointer.
  8. M7 YELLOW allows upload with unfreeze audit waiver—document in notes.
  9. M8 blocks upload when marketing cap sum drifts.
  10. Forward Whisper January batch triage after reconciliation GREEN—playtest backlog triage is next lane.
  11. Thursday row review M9 cousin when same-week promote.
  12. Post-live cousin: Sunday February closeout C1–C10 indexes live-week jsonl after D7—pre-live Monday reconciliation + post-live Sunday closeout bookend February fest.
  13. january_capstone_reconciliation_ok is the January-era latch distinct from january_reentry_capstone_ok.

FAQ

Is this the same as Thursday row review?
No—Thursday diffs weekly promotion rows; Monday reconciles cross-era capstone columns before first February upload.

Can I skip Monday if jq exit 0?
No—jq does not set february_upload_allowed or marketing cap parity.

How is this different from Friday November review?
Friday latched December freeze; Monday latches February upload after January re-entry.

Do I need fifteen minutes every Monday in February?
Full M1–M10 on first Monday; 5-minute refresh subsequent Mondays until promote week—diff only changed columns.

What if SHIP list empty?
M4 still passes—document zero exceptions in reconciliation notes.

Does reconciliation approve feature merges?
No—GREEN means upload allowed, not defer resume; DEFER rows need explicit reopen per defer playbook.

Where does Whisper batch triage fit?
After Monday GREEN—backlog #12 strategy owns playtest VOD order, not capstone booleans.

Can partners request reconciliation before upload?
Yes—export JANUARY_CAPSTONE_RECONCILIATION_RECEIPT.json and label lineage markdown; it is the holiday-to-February narrative partners actually read.