jq Gate Sketch for january_reentry_capstone_v1.json Pointer to november_closeout Truth - 2026

January re-entry smoke filed january_reentry_smoke_ok: true. February RC branch label receipt is queued. A producer asks: did anyone re-run November child crosswalk jq after the holiday, or are we promoting February on verbal memory?
January 2027 re-entry is not “write new jq from scratch.” It is a pointer capstone: prove november_closeout_capstone_v1.json still passes, january_reentry_smoke_receipt_v1.json matches the frozen baseline story, and expected_build_label for February RC is explicit—before 7-day RC challenge day one.
This Programming & Technical sketch ships january_reentry_capstone_v1.json, verify_january_reentry.sh, gates J1–J6, and copy-paste jq for CI—strategy above per-evening tutorials, below Lesson 276 BUILD_RECEIPT milestone.
Non-repetition note: November crosswalk owns 266–275 build_label unity. January unfreeze tools listicle owns fourteen-tool audit stack. January re-entry evening owns R1–R6 cold-install smoke. This URL owns january_reentry_capstone_v1 pointer jq to November truth + January smoke before February RC.
Pair BUILD_RECEIPT beginner pipeline, Thursday row review, and February prep calendar.
Why this matters now (January re-entry / February RC week)
- November truth decays silently — Holiday hotfixes, LFS pointer drift, and contractor asset drops can orphan child receipts without touching capstone JSON.
- Smoke ≠ capstone —
january_reentry_smoke_okproves cold install; it does not prove 266–275 still align. - February RC label bump —
fest-demo-2026-11-rc4→fest-demo-2027-01-rc1must be documented, not assumed. - Partner diligence — Zip uploads ask for one jq exit 0 tying November + January, not eleven Slack screenshots.
- Monday reconciliation forward — Backlog #11 row review expects this pointer filed first.
Direct answer: Pin january_reentry_capstone_v1.json with pointers to NOVEMBER_CLOSEOUT_CAPSTONE.json and JANUARY_REENTRY_SMOKE_RECEIPT.json, re-run verify_november_closeout.sh, run verify_january_reentry.sh, gates J1–J6, set BUILD_RECEIPT january_reentry_capstone_ok: true before February SteamPipe promote.
Who this sketch is for
| Audience | You will… |
|---|---|
| Beginner | Copy bash script; read exit code table |
| Solo founder | Stop “we ran smoke” without November proof |
| Engineer | Wire CI job before setlive |
| Producer | Block February RC until pointer GREEN |
Time: ~45 minutes first pointer setup; ~2 minutes per promote after scripts pinned.
Mental model — pointer capstone vs child crosswalk
| Layer | File | Proves |
|---|---|---|
| November child | Ten *_receipt_v1.json files |
Each lane passed in November |
| November capstone | november_closeout_capstone_v1.json |
266–275 share build_label |
| January smoke | january_reentry_smoke_receipt_v1.json |
Post-freeze cold install |
| January pointer capstone | january_reentry_capstone_v1.json |
November still valid + smoke aligns + RC label declared |
| BUILD_RECEIPT | Root row | february_rc_allowed |
Rule: January capstone does not replace November jq—it re-executes November verify and indexes smoke + label transition.
Pointer map (what january_reentry_capstone_v1.json references)
| Pointer key | Target file | Required fields |
|---|---|---|
november_closeout_pointer |
release-evidence/capstone/NOVEMBER_CLOSEOUT_CAPSTONE.json |
november_closeout_ok: true, expected_build_label |
january_reentry_smoke_pointer |
release-evidence/smoke/JANUARY_REENTRY_SMOKE_RECEIPT.json |
january_reentry_smoke_ok: true, build_label, frozen_baseline_label |
february_rc_branch_pointer |
release-evidence/steam/branch/FEBRUARY_RC_BRANCH_LABEL_RECEIPT.json |
optional until RC evening ships; february_rc_label_ok when present |
Label transition table (honest January story)
| Field | Example | Meaning |
|---|---|---|
frozen_baseline_label |
fest-demo-2026-11-rc4 |
Label at holiday freeze (from November capstone) |
build_label (smoke) |
fest-demo-2027-01-rc1 |
Label verified on cold install January 3 |
expected_build_label (January capstone) |
fest-demo-2027-01-rc1 |
Label February RC work must use |
If smoke build_label still equals November expected_build_label, set label_advanced: false and document no RC bump yet—do not set february_rc_allowed: true until February RC evening passes.
Beginner path — copy/paste jq + exit codes
Exit code table (snippet-friendly)
| Exit | Meaning | Fix |
|---|---|---|
| 0 | All pointer guards passed | February RC work allowed |
| 1 | November november_closeout_ok not true |
Re-run November crosswalk |
| 2 | jq parse error | Fix JSON syntax in capstone or child |
| 3 | Missing pointer file | Create path in receipt_paths |
| 4 | verify_november_closeout.sh failed |
Child build_label drift during holiday |
| 5 | frozen_baseline_label ≠ November expected_build_label |
Reconcile January re-entry smoke |
| 6 | january_reentry_smoke_ok not true |
Run R1–R6 smoke first |
Five-command beginner path
# 1) Verify January capstone exists
test -f release-evidence/capstone/JANUARY_REENTRY_CAPSTONE.json
# 2) Re-run November truth (staleness guard)
./scripts/verify_november_closeout.sh
# 3) Run January pointer script
./scripts/verify_january_reentry.sh
# 4) Confirm exit 0
echo $?
# 5) Print declared February label
jq -r '.expected_build_label' release-evidence/capstone/JANUARY_REENTRY_CAPSTONE.json
Success check: Script prints OK: january pointer capstone — november truth + january smoke align for fest-demo-2027-01-rc1.
One-liner — November still OK (read-only)
jq -e '.november_closeout_ok == true' \
release-evidence/capstone/NOVEMBER_CLOSEOUT_CAPSTONE.json
One-liner — smoke filed
jq -e '.january_reentry_smoke_ok == true' \
release-evidence/smoke/JANUARY_REENTRY_SMOKE_RECEIPT.json
Developer path — gates J1–J6
| Gate | Check | Pass when |
|---|---|---|
| J1 | january_reentry_capstone_v1.json pinned |
Schema + pointers set |
| J2 | November pointer valid | november_closeout_ok == true |
| J3 | January smoke pointer valid | january_reentry_smoke_ok == true |
| J4 | November verify re-run | verify_november_closeout.sh exit 0 |
| J5 | Label lineage | frozen_baseline_label matches November expected_build_label |
| J6 | Capstone receipt | january_reentry_capstone_ok: true on BUILD_RECEIPT |
january_reentry_capstone_v1.json
Pin at release-evidence/capstone/JANUARY_REENTRY_CAPSTONE.json:
{
"schema": "january_reentry_capstone_v1",
"expected_build_label": "fest-demo-2027-01-rc1",
"frozen_baseline_label": "fest-demo-2026-11-rc4",
"label_advanced": true,
"november_closeout_pointer": "release-evidence/capstone/NOVEMBER_CLOSEOUT_CAPSTONE.json",
"january_reentry_smoke_pointer": "release-evidence/smoke/JANUARY_REENTRY_SMOKE_RECEIPT.json",
"february_rc_branch_pointer": "release-evidence/steam/branch/FEBRUARY_RC_BRANCH_LABEL_RECEIPT.json",
"verify_scripts": {
"november": "./scripts/verify_november_closeout.sh",
"january": "./scripts/verify_january_reentry.sh"
},
"gates": {
"J1_capstone_pinned": "pass",
"J2_november_ok": "pass",
"J3_smoke_ok": "pass",
"J4_november_verify_rerun": "pass",
"J5_label_lineage": "pass",
"J6_receipt": "pass"
},
"january_reentry_capstone_ok": true,
"february_rc_allowed": true
}
Set february_rc_allowed: true only after February RC branch evening L1–L6 pass or when february_rc_branch_pointer documents february_rc_label_ok: true.
january_reentry_smoke_receipt_v1.json (minimal smoke child)
{
"schema": "january_reentry_smoke_receipt_v1",
"build_label": "fest-demo-2027-01-rc1",
"frozen_baseline_label": "fest-demo-2026-11-rc4",
"cold_install_ok": true,
"golden_path_60s_ok": true,
"january_reentry_smoke_ok": true,
"recorded_at": "2027-01-03T18:42:00Z"
}
Align field names with R1–R6 gates—this snippet is the minimum jq consumes.
verify_january_reentry.sh (bash + jq)
Save under scripts/verify_january_reentry.sh:
#!/usr/bin/env bash
set -euo pipefail
CAPSTONE="${1:-release-evidence/capstone/JANUARY_REENTRY_CAPSTONE.json}"
if [[ ! -f "$CAPSTONE" ]]; then
echo "MISSING capstone: $CAPSTONE" >&2
exit 2
fi
NOV_PTR=$(jq -r '.november_closeout_pointer' "$CAPSTONE")
SMOKE_PTR=$(jq -r '.january_reentry_smoke_pointer' "$CAPSTONE")
EXP=$(jq -r '.expected_build_label' "$CAPSTONE")
FROZEN=$(jq -r '.frozen_baseline_label' "$CAPSTONE")
for path in "$NOV_PTR" "$SMOKE_PTR"; do
if [[ ! -f "$path" ]]; then
echo "MISSING pointer: $path" >&2
exit 3
fi
done
jq -e '.november_closeout_ok == true' "$NOV_PTR" >/dev/null || {
echo "FAIL: november_closeout_ok not true" >&2
exit 1
}
jq -e '.january_reentry_smoke_ok == true' "$SMOKE_PTR" >/dev/null || {
echo "FAIL: january_reentry_smoke_ok not true" >&2
exit 6
}
NOV_LABEL=$(jq -r '.expected_build_label' "$NOV_PTR")
if [[ "$FROZEN" != "$NOV_LABEL" ]]; then
echo "FAIL: frozen_baseline_label $FROZEN != november $NOV_LABEL" >&2
exit 5
fi
SMOKE_LABEL=$(jq -r '.build_label' "$SMOKE_PTR")
if [[ "$SMOKE_LABEL" != "$EXP" ]]; then
echo "FAIL: smoke build_label $SMOKE_LABEL != capstone expected $EXP" >&2
exit 1
fi
# J4 — re-run November crosswalk (staleness)
if [[ -x "./scripts/verify_november_closeout.sh" ]]; then
./scripts/verify_november_closeout.sh "$NOV_PTR" || {
echo "FAIL: verify_november_closeout.sh" >&2
exit 4
}
else
echo "WARN: verify_november_closeout.sh not executable — skipping J4" >&2
fi
echo "OK: january pointer capstone — november truth + january smoke align for $EXP"
exit 0
chmod +x scripts/verify_january_reentry.sh
./scripts/verify_january_reentry.sh
GitHub Actions CI gate (working dev)
verify-january-reentry-capstone:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install jq
run: sudo apt-get update && sudo apt-get install -y jq
- name: November closeout (staleness)
run: ./scripts/verify_november_closeout.sh
- name: January pointer capstone
run: ./scripts/verify_january_reentry.sh
- name: Capstone boolean gate
run: |
jq -e '.january_reentry_capstone_ok == true' \
release-evidence/capstone/JANUARY_REENTRY_CAPSTONE.json
Run after concurrency-safe Addressables job so verify does not race packaging.
PowerShell variant (Windows laptop audit)
$Cap = "release-evidence/capstone/JANUARY_REENTRY_CAPSTONE.json"
if (-not (Test-Path $Cap)) { Write-Error "MISSING capstone"; exit 2 }
$j = Get-Content $Cap -Raw | ConvertFrom-Json
foreach ($p in @($j.november_closeout_pointer, $j.january_reentry_smoke_pointer)) {
if (-not (Test-Path $p)) { Write-Error "MISSING $p"; exit 3 }
}
$nov = Get-Content $j.november_closeout_pointer -Raw | ConvertFrom-Json
if (-not $nov.november_closeout_ok) { Write-Error "november_closeout_ok false"; exit 1 }
$smoke = Get-Content $j.january_reentry_smoke_pointer -Raw | ConvertFrom-Json
if (-not $smoke.january_reentry_smoke_ok) { Write-Error "january_reentry_smoke_ok false"; exit 6 }
if ($j.frozen_baseline_label -ne $nov.expected_build_label) { Write-Error "label lineage"; exit 5 }
if ($smoke.build_label -ne $j.expected_build_label) { Write-Error "smoke label mismatch"; exit 1 }
Write-Host "OK: january pointer capstone for $($j.expected_build_label)"
exit 0
Integration with January unfreeze audit stack
Fourteen-tool January audit listicle covers jq, diff, rg, mlr for row diffs. This pointer capstone is the capstone-specific jq layer:
| Tool pass | Question answered |
|---|---|
| U3 mlr row diff | Did BUILD_RECEIPT columns change during freeze? |
| November verify | Do 266–275 children still share November build_label? |
| January pointer | Does smoke + label story match November truth? |
| February RC evening | Is new label on Steam branch? |
Run unfreeze audit before pointer capstone when contractors returned mid-holiday—if U6 fails, do not set january_reentry_capstone_ok.
Proof table (copy for partner zip README)
| Artifact | Path | jq field | Pass |
|---|---|---|---|
| November capstone | capstone/NOVEMBER_CLOSEOUT_CAPSTONE.json |
november_closeout_ok |
true |
| January smoke | smoke/JANUARY_REENTRY_SMOKE_RECEIPT.json |
january_reentry_smoke_ok |
true |
| January pointer | capstone/JANUARY_REENTRY_CAPSTONE.json |
january_reentry_capstone_ok |
true |
| Verify November | scripts/verify_november_closeout.sh |
exit code | 0 |
| Verify January | scripts/verify_january_reentry.sh |
exit code | 0 |
| BUILD_RECEIPT | root row | february_rc_allowed |
true |
Scenarios A–G (working dev table)
| Scenario | Symptom | Gate fails | Fix |
|---|---|---|---|
| A | November JSON never created | J2/J4 | Run November crosswalk first |
| B | Smoke skipped after holiday | J3 | January re-entry evening |
| C | Child 273 still rc3 label |
J4 | Re-file loudness receipt; re-run November verify |
| D | frozen_baseline_label typo |
J5 | Match November expected_build_label exactly |
| E | Smoke on warm install only | J3 | Repeat smoke cold-install per R2 |
| F | February label not on Steam | J6 hold | Complete RC branch evening |
| G | LFS silent demo | J3 indirect | Git LFS case study before pointer |
Comparison pack (do not confuse these jq sketches)
| Post | Schema | jq proves |
|---|---|---|
| November crosswalk | november_closeout_capstone_v1 |
266–275 build_label unity |
| This post | january_reentry_capstone_v1 |
November truth + January smoke pointers |
| jq rclone mirror | mirror receipt | Team Drive ID |
| Addressables jq Lesson 257 | inventory audit | Invalid keys |
February RC week integration
| Day | Action | Receipt |
|---|---|---|
| Jan 3 | January smoke + pointer capstone | january_reentry_capstone_v1 |
| Jan 6 | Unfreeze audit tools pass | january_unfreeze_audit_receipt_v1 |
| Jan 8 | February RC branch label | february_rc_branch_label_receipt_v1 |
| Jan 9–15 | 7-day RC challenge | february_rc_challenge_receipt_v1 |
Pointer capstone is the hard gate between “smoke GREEN” and “RC promote allowed.”
Course and guide siblings
| Sibling | Role |
|---|---|
| Lesson 276 | BUILD_RECEIPT milestone consuming this pointer |
| Lesson 265 | Prior arc wiring |
| Guide VDF LF preflight | Child 269 receipt cousin |
| BUILD_RECEIPT channel-label help | When smoke passes but HTML5 label mismatches |
Forward #11 Monday capstone reconciliation row review — expects january_reentry_capstone_ok in BUILD_RECEIPT before fifteen-minute Monday pass.
January pointer jq cookbook (extra queries)
Working devs often need read-only jq without running the full bash script. Pin these beside verify_january_reentry.sh:
Compare November vs January expected labels
NOV=$(jq -r '.expected_build_label' release-evidence/capstone/NOVEMBER_CLOSEOUT_CAPSTONE.json)
JAN=$(jq -r '.expected_build_label' release-evidence/capstone/JANUARY_REENTRY_CAPSTONE.json)
echo "november=$NOV january=$JAN"
If labels differ, ensure label_advanced: true on the January capstone and document the bump in BUILD_RECEIPT release_notes—partners read the diff in diligence zips.
List all pointer targets from January capstone
jq -r '
.november_closeout_pointer,
.january_reentry_smoke_pointer,
.february_rc_branch_pointer
' release-evidence/capstone/JANUARY_REENTRY_CAPSTONE.json
Empty february_rc_branch_pointer is allowed until RC evening ships; jq should not emit null paths in CI—use // empty filters or omit the key until the file exists.
Fail-fast boolean rollup (CI friendly)
jq -e '
.january_reentry_capstone_ok == true
and .february_rc_allowed == true
' release-evidence/capstone/JANUARY_REENTRY_CAPSTONE.json
Extract gate status for Slack bot
jq -r '.gates | to_entries[] | "\(.key)=\(.value)"' \
release-evidence/capstone/JANUARY_REENTRY_CAPSTONE.json
Post J4_november_verify_rerun=pass to #build-receipts after green CI—reduces “did we run November?” threads during February RC week.
When November child 268 drifted (CI cancel receipt)
If GitHub Actions concurrency post saved you from poisoned cache but child 268 still shows an old build_label, J4 fails before January pointer passes. Fix child 268 first, re-run November verify, then January pointer—do not patch only the January capstone JSON.
Common mistakes
- Skipping November re-run — Pointer JSON is not a substitute for
verify_november_closeout.sh. - Confusing smoke with crosswalk — R1–R6 does not prove 266–275 alignment.
- Promoting February on old label —
label_advanced: falsemust blockfebruary_rc_allowed. - Hard-coded paths on Windows — Use repo-relative
release-evidence/consistently. - jq without
jq -e— Silent false positives in CI; always use-efor booleans. - Filing pointer before unfreeze audit — U1–U6 catches row drift pointer jq cannot see.
Related GamineAI reads
- November closeout child crosswalk jq — prerequisite 266–275 proof
- January re-entry Wednesday smoke evening — R1–R6 smoke receipt
- 14 free January unfreeze audit tools — U1–U6 tool stack
- February RC branch label evening — label on Steam
- 7-day February RC challenge — post-pointer discipline
- Lesson 276 capstone — course milestone
- Thursday BUILD_RECEIPT row review — weekly cousin ritual
Key takeaways
- January re-entry needs a pointer capstone, not a second November crosswalk—re-run November verify, index smoke, declare February label.
january_reentry_capstone_v1.jsonlinksNOVEMBER_CLOSEOUT_CAPSTONE.json+JANUARY_REENTRY_SMOKE_RECEIPT.jsonwith gates J1–J6.verify_january_reentry.shexits 0 only when November truth, smoke, and label lineage align.frozen_baseline_labelmust match Novemberexpected_build_label; smokebuild_labelmust match January capstoneexpected_build_label.- Set
february_rc_allowed: trueonly after pointer + February RC branch receipt agree. - Beginners can audit with five bash commands and the exit code table; developers wire CI before
setlive. - Forward: January marketing spend cap, Monday capstone reconciliation row review (#11), and Lesson 276.
FAQ
How is this different from the November jq crosswalk post?
November proves ten child receipts share one build_label. January proves November capstone still passes after holiday + January smoke documents the post-freeze baseline and declared February label.
Do I need both verify scripts in CI?
Yes—run verify_november_closeout.sh then verify_january_reentry.sh. January depends on November staleness guard J4.
What if we never bumped the build label after freeze?
Set label_advanced: false, keep expected_build_label equal to November expected_build_label, and do not set february_rc_allowed until RC branch evening passes.
Which jq package do I need?
jq 1.6+ on Ubuntu/macOS CI and local laptops. GitHub Actions: sudo apt-get install -y jq.
Does this replace the January unfreeze fourteen-tool audit?
No—unfreeze audit catches BUILD_RECEIPT row drift; pointer jq catches capstone + smoke truth.
Where does Lesson 276 fit?
Lesson 276 wires BUILD_RECEIPT january_reentry_capstone_ok into the November close-out course arc—complete this blog sketch first.