AI Integration / Workflow Jul 12, 2026

Local Whisper January Batch Triage After Holiday Playtest Backlog - 2026 Strategy

2026 local Whisper January batch triage strategy for holiday playtest backlog—P0–P3 rubric, W1–W6 gates, january_whisper_batch_receipt_v1.json, loudness spot pairing, tag map before GitHub issues.

By GamineAI Team

Local Whisper January Batch Triage After Holiday Playtest Backlog - 2026 Strategy

Pixel-art hero for local Whisper January batch triage holiday playtest backlog strategy 2026

January 7: playtest-vod/inbox/ holds thirty-eight clips from December async nights—three labeled “fest crash,” fourteen are silent menu tours, and nobody ran Audacity loudness spot because “we’ll batch Whisper after the break.” Monday capstone reconciliation is GREEN, but #playtest still points at build_label strings from before numbered SHIP exceptions.

January 2027 is when holiday playtest backlog meets February RC discipline. Contractors return; engineering runs smoke and jq; facilitators face a folder of VODs that grew while December defer FREEZE kept feature merges down—not playtest capture.

Local Whisper pipeline owns ongoing folder + T1–T6 nightly triage. Whisper tag extraction owns GitHub issue discipline (tag receipt W1–W6). Audacity loudness evening owns per-session A1–A6. This AI Integration / Workflow strategy owns January backlog batch ordering: P0–P3 rubric, january_whisper_batch_receipt_v1.json, gates W1–W6 (batch receipt schema—distinct from tag-map W1–W6), and fail-closed promotion before Whisper GPU nights and GitHub API.

Non-repetition note: Local pipeline = steady-state ops; tag blog = issue bodies; loudness evening = one WAV spot; concat evening = merge; Tuesday CSV ingest = Discord thread rows. This URL = January holiday inbox drain strategy with named receipt and batch calendar.

Pair OBS concat evening, 15 free Whisper/ffmpeg tools, Tuesday Discord CSV ingest, Loudness spot preflight (Guide), and Lesson 273 forward.

Why this matters now (January 2027 / holiday backlog)

  1. Freeze ≠ no playtests — Players still sent clips; inbox grew while engineering honored defer scope.
  2. Wrong build_label on clips — Holiday hotfixes moved labels; transcripts without build_id correlation waste February RC week.
  3. Silent-merge waste — Running Whisper on bad audio burns GPU hours—loudness spot must gate batches.
  4. Invented repro scale — Batch summarizing without tag map discipline multiplies false GitHub issues after break.
  5. February fest prep7-day RC challenge needs triage drained before day-one engineering distractions.

Direct answer: Inventory playtest-vod/inbox/holiday-2026/, assign P0–P3 per row, run loudness spot on P0/P1 merges, file january_whisper_batch_receipt_v1.json with W1–W6, execute Whisper batches oldest fest-blocking first, only then open tag map → GitHub on transcripts that passed gates.

Who this strategy is for

Audience Outcome
Solo founder Weekend plan to drain inbox without drowning engineering
Facilitator Ordered batch list with build_label on every row
Producer Receipt proving backlog triage ran before February stand-ups
Working dev january_whisper_batch_ok on BUILD_RECEIPT for CI optional gate

Time: ~2 hours first January inventory + receipt; ~45 minutes per Whisper batch night after template exists.
Prerequisites: Monday reconciliation GREEN; ffmpeg + local Whisper installed; inbox manifest CSV.

Format ladder (playtest AI cluster)

Artifact Role
Concat evening Merge MKV → WAV
Loudness evening A1–A6 per merged session
This strategy January backlog P0–P3 + batch receipt W1–W6
Local Whisper pipeline Steady-state T1–T6
Whisper tags GitHub issue discipline
Tuesday CSV ingest Discord thread → receipt rows

Order: Monday reconciliation → this January batch strategy → loudness on P0/P1 → Whisper batch → tag map → GitHub.

Beginner path — P0–P3 batch order rubric

Copy into playtest-vod/january-batch-plan-2027.md:

Priority Definition Examples Whisper this week?
P0 Fest-blocking / crash on current build_label “won’t launch,” “crash to desktop” Yes — batch 1
P1 Soft-lock / progression stop on current label “stuck after door,” “save broken” Yes — batch 2
P2 UX confusion / balance on current label “didn’t understand objective” Batch 3 after P0/P1
P3 Stale label / duplicate of fixed issue Old build_label, duplicate thread Defer or archive

Beginner rules:

  1. P0 before P2 — never transcribe menu tours while P0 crash clips wait.
  2. build_label required — unknown label ⇒ P3 until visible label screenshot attached.
  3. Silent tour clips — classify P3 without Whisper unless facilitator claims speech (then loudness spot).
  4. Max 8 sessions per GPU night — split batches; log in receipt batches[].

Holiday inbox manifest (CSV columns)

fragment_id,capture_date,build_label,priority,merged_wav_path,loudness_spot_ok,whisper_done,tag_map_done
frag_2026-12-18_01,2026-12-18,fest-demo-2026-12-rc3-hotfix2,P0,sessions/frag_01_merged.wav,false,false,false
frag_2026-12-22_04,2026-12-22,fest-demo-2026-12-rc3-hotfix2,P1,sessions/frag_04_merged.wav,false,false,false
frag_2026-12-28_09,2026-12-28,unknown,P3,,,false,false

Developer path — gates W1–W6 (january_whisper_batch_receipt)

Gate Check Fail action
W1 inbox_manifest[] lists every file in holiday inbox Block batch until inventory complete
W2 Every P0/P1 row has build_label matching BUILD_RECEIPT or SHIP list Re-label or downgrade to P3
W3 P0/P1 rows have loudness_spot_ok or documented skip Run A1–A6
W4 batch_order[] is P0→P1→P2 (no P2 before P0 done) Re-sort plan
W5 whisper_model + device recorded per batch Reproducibility for partners
W6 january_whisper_batch_ok: true No GitHub tag burst until GREEN

january_whisper_batch_receipt_v1.json (template)

{
  "schema": "january_whisper_batch_receipt_v1",
  "generated_at": "2027-01-08T20:00:00Z",
  "inbox_path": "playtest-vod/inbox/holiday-2026",
  "build_label_current": "fest-demo-2027-01-rc1",
  "pointers": {
    "monday_reconciliation": "release-evidence/ops/JANUARY_CAPSTONE_RECONCILIATION_RECEIPT.json",
    "ship_exception_list": "release-evidence/ops/SHIP_EXCEPTION_LIST_RECEIPT.json"
  },
  "inbox_manifest": [
    {
      "fragment_id": "frag_2026-12-18_01",
      "priority": "P0",
      "build_label": "fest-demo-2026-12-rc3-hotfix2",
      "merged_wav": "playtest-vod/sessions/frag_01_merged.wav",
      "loudness_spot_ok": true,
      "loudness_receipt": "release-evidence/audio/FRAG_01_LOUDNESS_SPOT.json"
    }
  ],
  "batch_order": [
    { "batch_id": "JB1", "priority_lane": "P0", "fragment_ids": ["frag_2026-12-18_01"], "whisper_model": "medium", "device": "cuda" },
    { "batch_id": "JB2", "priority_lane": "P1", "fragment_ids": ["frag_2026-12-22_04"], "whisper_model": "medium", "device": "cuda" }
  ],
  "batches_completed": [],
  "gates": {
    "W1": "pass",
    "W2": "pass",
    "W3": "pass",
    "W4": "pass",
    "W5": "pass",
    "W6": "pass"
  },
  "january_whisper_batch_ok": true
}

Store at release-evidence/ai/JANUARY_WHISPER_BATCH_RECEIPT.json.

BUILD_RECEIPT row

{
  "january_whisper_batch_ok": true,
  "january_whisper_batch_receipt": "release-evidence/ai/JANUARY_WHISPER_BATCH_RECEIPT.json",
  "playtest_vod_backlog_count": 38,
  "playtest_vod_p0_remaining": 2
}

January batch calendar (working dev)

Week Focus Exit criteria
Jan 6–7 Manifest + P0/P1 sort + W1–W4 Receipt drafted
Jan 8 Loudness spot on P0/P1 merges W3 GREEN
Jan 9–10 Whisper JB1 (P0) + JB2 (P1) batches_completed[] updated
Jan 11–12 Tag map on JB1/JB2 transcripts only Pair tag blog human gate
Jan 13+ P2 batches if RC week allows p0_remaining: 0

Align with January marketing cap—do not schedule creator playtest pushes until P0 p0_remaining hits zero or documented waive.

verify_january_whisper_batch.sh

#!/usr/bin/env bash
set -euo pipefail
REC="${1:-release-evidence/ai/JANUARY_WHISPER_BATCH_RECEIPT.json}"

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

# W4: no P2 batch before P0 batches in batch_order
P0_DONE=$(jq '[.batches_completed[] | select(.priority_lane=="P0")] | length' "$REC")
P2_PLANNED=$(jq '[.batch_order[] | select(.priority_lane=="P2")] | length' "$REC")
if [[ "$P2_PLANNED" -gt 0 && "$P0_DONE" -eq 0 ]]; then
  echo "W4 fail: P2 planned before P0 complete"; exit 4
fi

# W3 loudness on P0/P1 manifest rows
jq -e '
  [.inbox_manifest[] | select(.priority=="P0" or .priority=="P1")
    | .loudness_spot_ok] | all(. == true)
' "$REC" || { echo "W3 fail: loudness spot missing"; exit 3; }

jq -e '.january_whisper_batch_ok == true' "$REC" || exit 6
echo "january_whisper_batch verify: OK"

Whisper batch night checklist (facilitator)

  1. Confirm january_whisper_batch_ok or run verify script.
  2. Load only batch_order[N].fragment_ids for tonight.
  3. For each fragment: ffmpeg -i merged.wav -ar 16000 -ac 1 -c:a pcm_s16le clip_16k.wav if not already 16 kHz mono.
  4. Run Whisper with pinned model from receipt (medium default for dialogue).
  5. Write transcripts/{fragment_id}.txt — do not LLM-summarize before human reads P0 lines.
  6. Append batches_completed[] with completed_at, transcript_paths[].
  7. Update BUILD_RECEIPT playtest_vod_p0_remaining.

GPU discipline: If CUDA silent CPU fallback help triggers, record device: cpu in batch row—W5 requires honesty.

Batch sizing and hardware honesty (working dev)

Inbox P0+P1 count Suggested JB nights Model Notes
1–4 1 night small or medium Laptop CPU viable with small
5–8 1–2 nights medium Default January recommendation
9–16 2–3 nights medium Split JB rows; never one 16-hour run
17+ 3+ nights + P3 archive pass medium Archive menu tours before batch 3

Record estimated_gpu_minutes per batch_order[] row after first night—update receipt so February RC week does not assume “one evening clears inbox.”

Facilitator stand-up script (copy-paste)

## Playtest backlog stand-up — 2027-01-09

- Inbox total: 38 | P0 remaining: 2 | P1 queued: 4
- `january_whisper_batch_ok`: true (W1–W6)
- Last batch: JB1 completed 2027-01-08 (cuda, medium)
- Next: JB2 after loudness spot on frag_04
- Blockers: frag_09 unknown build_label → facilitator DM for screenshot
- GitHub issues: **hold** until JB1 transcripts pass tag map human gate

Post to #playtest after updating BUILD_RECEIPT playtest_vod_p0_remaining—engineers trust numbers, not “we’re transcribing.”

PowerShell verify cousin (Windows facilitators)

$rec = Get-Content "release-evidence/ai/JANUARY_WHISPER_BATCH_RECEIPT.json" | ConvertFrom-Json
if ($rec.schema -ne "january_whisper_batch_receipt_v1") { exit 1 }
$p01 = $rec.inbox_manifest | Where-Object { $_.priority -in @("P0","P1") }
if ($p01 | Where-Object { -not $_.loudness_spot_ok }) { Write-Error "W3 fail"; exit 3 }
if (-not $rec.january_whisper_batch_ok) { exit 6 }
Write-Host "january_whisper_batch verify: OK"

Integration with tag map and GitHub

After JB1 transcripts exist:

  1. Build whisper_issue_tag_map_v1.json per tag extraction blogquote-only.
  2. Human gate roster sign-off before gh issue create.
  3. File whisper_issue_tag_receipt_v1.json separately—do not merge into January batch receipt (format ladder).

Rule: January batch receipt proves backlog drain order; tag receipt proves issue quality.

jq helpers (inventory)

# Count by priority
jq '[.inbox_manifest[].priority] | group_by(.) | map({priority: .[0], count: length})' \
  release-evidence/ai/JANUARY_WHISPER_BATCH_RECEIPT.json

# P0 remaining
jq '[.inbox_manifest[] | select(.priority=="P0" and (.whisper_done != true))] | length' \
  playtest-vod/january-batch-plan-2027.md  # or manifest in JSON

Proof table

Row Evidence GREEN when
P1 Holiday inbox manifest W1 pass
P2 JANUARY_WHISPER_BATCH_RECEIPT.json W1–W6 pass
P3 Loudness spot JSONs for P0/P1 W3 pass
P4 transcripts/*.txt for batch JB1 Files exist
P5 BUILD_RECEIPT january_whisper_batch_ok Matches receipt
P6 Monday reconciliation pointer february_upload_allowed true

Scenarios A–G

A — 40 clips, 3 P0, rest menu tours
Classify 25 as P3 without Whisper; run JB1 on 3 P0 only—receipt documents savings.

B — build_label unknown on half the folder
W2 fail until facilitators attach visible label screenshots or downgrade to P3.

C — Loudness fail on P0 merge
W3 blocks Whisper; re-run concat help not ASR.

D — Engineer wants GitHub issues Monday
Block until W6—tag blog scenario E on empty transcripts hurts trust.

E — OneDrive moved OBS path during holiday
Run KFM case study recovery before manifest W1.

F — P0 matches pre-freeze label, current label differs
Mark P3 unless player visible label proves otherwise—pair January re-entry smoke.

G — Partner asks playtest triage status
Export batch receipt + manifest CSV—shows ordered drain not “we’ll get to it.”

Engine-specific manifest hints (working dev)

Holiday clips rarely arrive with clean filenames—facilitators still owe build_label on every P0/P1 row before W2 passes.

Engine Typical inbox filename Manifest notes you should add
Godot 4 godot_playtest_2026-12-28.mkv Export preset hash from BUILD_RECEIPT; pair VDF LF evening if Linux fest build
GameMaker gm_discord_night3.mp4 setlive_dry_run_ok from setlive evening before promoting transcript issues
Unity addressables_menu_tour.wav If clip is menu-only, default P3—do not burn GPU on Addressables idle tours
Unreal insights_crash_repro.mkv OTLP export week may overlap—pair Q4 diligence if crash row is diligence-facing
Construct wasm_playtest_browser.webm Browser surface tag playtest_web in manifest—never merge into fest_public without isolation playbook review

When fragment_id is missing, derive from OBS replay filename stem and document the guess in notes—W1 requires a row, not perfection.

Comparison pack (January batch vs steady-state pipeline)

Workflow Receipt Gates When
Local pipeline playtest_vod_triage_receipt_v1 T1–T6 Weekly steady-state
January batch january_whisper_batch_receipt_v1 W1–W6 Post-holiday backlog drain
Tag extraction whisper_issue_tag_receipt_v1 W1–W6 (tag schema) Per clip → GitHub
Loudness evening playtest_vod_loudness_spot_receipt_v1 A1–A6 Per merged WAV

Common mistakes

FIFO inbox without priority — Newest clip first hides oldest P0 crash.

Whisper before loudness — W3 exists because GPU time is not free.

LLM summary before tag map — Invents repro; tag blog blocks for a reason.

Skipping manifest — W1 prevents “we forgot frag_09” in February.

One giant batch of 38 — OOM and lost receipts; use batch_order[].

Confusing tag W1–W6 with batch W1–W6 — Different JSON schemas; link pointers, do not merge files.

Tuesday CSV + Whisper batch pairing

Run Tuesday Discord CSV ingest before January batch if threads hold build_label hints—merge CSV fragment_id into manifest notes column. CSV owns Discord metadata; batch receipt owns GPU nights.

Outbound references

Related GamineAI reads

Key takeaways

  1. Holiday freeze still produces playtest VODs—January needs a backlog batch strategy, not ad-hoc Whisper nights.
  2. P0–P3 rubric forces fest-blocking clips before menu tours and stale labels.
  3. january_whisper_batch_receipt_v1.json gates W1–W6 (batch schema—distinct from tag-map receipt).
  4. Loudness spot on P0/P1 before Whisper—pair Audacity evening and ninety-second preflight (Guide).
  5. build_label on every P0/P1 row—align with Monday reconciliation label lineage.
  6. Tag map + GitHub come after batch transcripts—pair Whisper tags.
  7. verify_january_whisper_batch.sh gives CI one exit code for backlog discipline.
  8. January cluster #1–#12 closes with this strategy—Blog-Planner refill critical next.
  9. Course 273 + Guide #35 forward own loudness milestone; this owns batch order.
  10. Max ~8 sessions per GPU night—receipt batch_order[] documents splits.
  11. P3 archive without Whisper is valid—do not transcribe silence for volume metrics.
  12. February same-day P0 triage is the live-week cousin—batch order first, same-day pager during D1–D7.

FAQ

Is this replacing the local Whisper pipeline blog?
No—pipeline is steady-state; this is January holiday backlog drain.

Why two different W1–W6 gate sets?
Different receipts (january_whisper_batch vs whisper_issue_tag)—never merge JSON blobs.

Can I skip loudness for P0?
Only with producer waiver in notes—default W3 fail-closed.

How does this relate to Monday reconciliation?
Run Monday before batch planning; pointer build_label_current feeds W2.

What when backlog is zero?
Archive receipt to release-evidence/ai/archive/; resume T1–T6 pipeline.

Does Help #5 forward apply?
MKV concat fixes are upstream of merged WAV—fix concat before loudness and batch.

January cluster complete—what next?
Blog-Planner critical refill with 8–12 diverse pitches; do not escape-hatch another fest metadata checklist.