Case Studies & Experiments May 26, 2026

We Recovered Missing iXML Fields After VO Conversion - From Legal Blocked Reel to BUILD_RECEIPT Green 2026 Case Study

2026 case study—recover missing WAV iXML consent fields after VO conversion when highlight reels were legal-blocked but playtest clip consent passed; vo_ixml_recovery_receipt_v1.json pattern.

By GamineAI Team

We Recovered Missing iXML Fields After VO Conversion - From Legal Blocked Reel to BUILD_RECEIPT Green 2026 Case Study

Pixel-art hero for recovered missing iXML fields after VO conversion legal blocked reel case study 2026

This is a synthesized case study—a field pattern seen across June–July 2026 playtest highlight reels where video clip consent passed automation but facilitator VO failed legal review after an intermediate loudness or format conversion step. It is not a named studio turnaround. There are no invented revenue figures, no fake legal quotes, and no made-up view counts.

What follows is the failure signature (OBS GREEN, WAV RED), the isolation order that found the strip point, the artifacts that proved recovery, and how the pattern maps to your pipeline if legal says “consent_record_id not found in deliverable.”

Pair with Lesson 243 — playtest clip consent, Lesson 250 — VO consent metadata, VO waveform consent tutorial, Metadata Survives Mux Challenge, and top 20 receipts hub receipt #5.

Non-repetition note: The mux challenge teaches 45-minute prevention. This case study narrates recovery after legal block when teams trusted pre-conversion screenshots—different primary keyword and intent.

Why this matters now (June–July 2026)

  1. Highlight reel velocity — Marketing muxes VO the same week playtest ends; conversion macros run between editors.
  2. Split consent lanesLesson 243 GREEN does not imply Lesson 250 GREEN.
  3. iXML vs LIST confusion — Teams prove LIST in Audacity; legal reads post-conversion iXML in handoff WAV.
  4. False BUILD_RECEIPTwav_consent_metadata_ok filed from export night, not from reel deliverable lane.
  5. Automation blind spot — Pipelines hash MP4 video; custom RIFF chunks in parallel VO master were never re-checked.

Direct answer: Recovery required identifying which conversion step stripped consent_record_id, re-exporting or changing handoff lane, filing vo_ixml_recovery_receipt_v1.json, passing mux challenge M5, and only then promoting BUILD_RECEIPT vo_consent_metadata_ok.

Beginner quick start — what recovered means here

Recovered in this pattern means:

  1. Legal unblock — Public highlight reel approved for upload with documented VO consent proof on deliverable bytes.
  2. Cousin receipts alignedPLAYTEST_CLIP_CONSENT_RECEIPT.json still valid; VO_CONSENT_METADATA_RECEIPT.json updated with true conversion_survival.
  3. Strip point documented — Named tool/step (not “ffmpeg broke”).
  4. Re-challenge filedmetadata_survives_mux_receipt_v1.json reflects new mux command.
  5. Qualitative calm — No new legal tickets on same build_label for seven days (pattern observation, not a fabricated SLA %).

It does not mean retroactive consent for players who opted out—opt_out: true lines stay cut.

The failure (typical signals)

Channel Typical wording
Legal review “VO WAV missing consent_record_id in deliverable”
Producer standup “OBS consent passed—why blocked?”
Audio lead “Sounds fine in timeline”
BUILD_RECEIPT row playtest_clip_consent_ok: true, wav_consent_metadata_ok: true (stale)
Facilitator “I exported with tags Tuesday”

Internal blind spot: proof screenshots from Tuesday export, reel uploaded Thursday after loudness batch.

Starting state (synthesized table)

Layer State before recovery
Video clips Manifest consent GREEN (OBS highlight preflight C1–C4)
VO export Tuesday WAV showed four fields in Audacity
Conversion Wednesday batch normalize macro on all VO lines
Mux Thursday ffmpeg AAC into highlight MP4
Legal read Friday inspector on extracted post-mux WAV
BUILD_RECEIPT Promoted from Tuesday JSON

Gameplay and clip video were fine. Compliance on VO lane was not.

Root cause pattern (three recurring strip points)

Strip point Mechanism How teams confirmed
S1 — Loudness macro “Cleanup” chain rewrites WAV without metadata preset A/B: macro on vs off
S2 — Wrong ffmpeg audio codec AAC mux path drops custom chunks M5 fail in mux challenge
S3 — Handoff lane mistake Legal reads extracted audio; team proved pre-mux only Lane A vs B in mux challenge M4

Most June 2026 incidents combined S1 + S2: macro then AAC, while LIST proof still existed on archived Tuesday file in art/voice/.

Cousin contrast — 243 vs 250 (why OBS GREEN did not save the reel)

Question Lesson 243 (clip) Lesson 250 (VO WAV)
What failed here? No — manifest still valid Yes — iXML empty post-conversion
File legal read MKV fragment map Facilitator VO deliverable
Receipt playtest_clip_consent_receipt_v1 vo_consent_metadata_receipt_v1
Typical false comfort “Clips are in the reel” “We have a spreadsheet UUID”

Triage rule: If legal cites waveform or iXML, do not reopen clip manifest first—open VO lane.

Timeline (five working days — pattern timing)

Day Focus Output
D1 Legal hold + evidence pull Block upload; preserve Tuesday WAV
D2 Strip point matrix S1–S3 strip_point_audit.log
D3 Fix conversion + re-export vo_line_01_v2.wav with tags
D4 Mux challenge M1–M6 metadata_survives_mux_receipt_v1.json
D5 Recovery receipt + BUILD_RECEIPT vo_ixml_recovery_receipt_v1.json GREEN

Teams with pinned mux command recovered D4 in one afternoon; first-time documentation added D2.

D1 — Legal hold without deleting artifacts (beginner)

Step Action
1 Stop public reel distribution (unlist or draft).
2 Copy all WAV versions to release-evidence/audio/incident-<tag>/ (Tuesday, Wednesday, Thursday).
3 Do not delete “bad” files—legal may need strip comparison.
4 Snapshot BUILD_RECEIPT row into build_receipt_pre_incident.json.

Developer: Add legal_hold: true note in incident README until D5.

D2 — Strip point audit (developer path)

Run field presence on each archived WAV:

File consent_record_id consent_scope consent_expires opt_out
tuesday_export.wav present present present present
post_macro.wav missing
post_mux_extract.wav missing

Save table to strip_point_audit.log. First row where consent_record_id disappears names the strip step.

ffprobe duration on each row—drift here suggests separate duration matrix backlog #19, not this incident.

S1 confirmation — disable macro test

Re-run one line through macro off → if tags survive, macro is strip point. Document macro name and version in recovery receipt.

S2 confirmation — mux challenge T1

From challenge ffmpeg matrix: AAC extract vs PCM handoff. If PCM master preserves tags, adopt Lane B parallel WAV for legal packet.

D3 — Fix path (two valid recoveries)

Path When to use Tradeoff
R1 — Re-export Macro was destructive Fast; requires facilitator time
R2 — Lane change Tags survive on master WAV Legal reads separate file; mux unchanged visually

Both paths require new proof files—do not edit Tuesday JSON timestamps only.

R1 steps (beginner)

  1. Open Audacity with metadata preset pinned (VO tutorial Block 2).
  2. Re-export affected lines only (vo_line_01_v2.wav).
  3. Match consent_log.csv row—V3 UUID check.
  4. Skip macro or use metadata-safe macro version.

R2 steps (developer)

  1. Deliver vo_master_consent.wav beside MP4 in legal zip.
  2. Update receipt mux_step: parallel_wav_master_v1.
  3. Mux MP4 for social; legal signs WAV lane.

D4 — Mux challenge as gate (mandatory)

Do not skip because “we fixed export.” Run full Metadata Survives Mux Challenge on R1 or R2 output.

Pass signal: M5 post-mux table all Y; metadata_survives_mux_ok: true.

If M5 fails after R1, strip point was S2 not S1—return to D2 matrix.

D5 — vo_ixml_recovery_receipt_v1.json

{
  "schema": "vo_ixml_recovery_receipt_v1",
  "build_label": "playtest-july-2027-rc1",
  "incident_class": "ixml_stripped_post_conversion",
  "strip_point": "loudness_macro_v3_then_aac_mux",
  "recovery_path": "R1_reexport_plus_mux_lane_a",
  "files": {
    "preserved_archive": "release-evidence/audio/incident-2026-05-26/tuesday_export.wav",
    "recovered_asset": "art/voice/facilitator/vo_line_01_v2.wav"
  },
  "consent_fields_recovered": {
    "consent_record_id": true,
    "consent_scope": true,
    "consent_expires": true,
    "opt_out": true
  },
  "cousin_receipts": {
    "playtest_clip_consent": "release-evidence/playtest/vod/PLAYTEST_CLIP_CONSENT_RECEIPT.json",
    "vo_consent_metadata": "release-evidence/audio/VO_CONSENT_METADATA_RECEIPT.json",
    "metadata_survives_mux": "release-evidence/audio/mux-challenge/2026-05-26-rc1/metadata_survives_mux_receipt_v1.json"
  },
  "gates": {
    "D1_legal_hold": "pass",
    "D2_strip_identified": "pass",
    "D3_reexport_or_lane": "pass",
    "D4_mux_challenge_M5": "pass",
    "D5_build_receipt": "pass"
  },
  "vo_ixml_recovery_ok": true,
  "legal_unblock": true
}

Update cousin vo_consent_metadata_receipt_v1.json:

"conversion_survival": {
  "metadata_survives": true,
  "recovery_receipt": "release-evidence/audio/vo_ixml_recovery_receipt_v1.json",
  "strip_point_documented": "loudness_macro_v3_then_aac_mux"
}

Thursday row review: VO / iXML recovery line GREEN with link to recovery receipt.

Evidence folder layout (after recovery)

release-evidence/audio/incident-2026-05-26/
  README.md
  strip_point_audit.log
  tuesday_export.wav
  post_macro.wav
  post_mux_extract.wav
  vo_line_01_v2.wav
  vo_ixml_recovery_receipt_v1.json
  legal_packet.zip          # redacted for external share

Release-evidence taxonomy audio/ subtree—do not file under marketing-and-demo/ alone.

What we did not do (anti-patterns)

  1. Re-open Lesson 243 and re-concat all MKVs when video manifest was already valid.
  2. Paste UUID into spreadsheet only without re-embedding in WAV.
  3. Mark BUILD_RECEIPT GREEN before M5 post-mux pass.
  4. Blame legal tooling without strip_point_audit.log.
  5. Delete post_macro.wav to “reduce clutter.”

Producer standup scripts (after D5)

PASS: “Legal unblock on build_label; strip point was loudness macro v3; R1 re-export + mux challenge M5 pass; recovery receipt filed.”

STILL BLOCKED: “M5 fail after R2—escalate to parallel WAV master; reel stays down.”

Facilitator contract addendum (prevention)

Add to multi-channel facilitator contract evidence section:

  • No third-party batch normalize on consent-tagged WAV without metadata-safe preset.
  • Post-conversion proof required before reel handoff (link mux challenge).

Relationship to automation and CI

Check Before incident After recovery
Hash MP4 only Passed Insufficient
Assert recovery receipt on promote Missing jq -e '.vo_ixml_recovery_ok' on incident close
Mux challenge on tag Optional Required on vo_consent_metadata column

Validate-packet scripts can grep for metadata_survives_mux_ok—human field reads may remain until RIFF tooling matures.

Engine and scope boundaries

Godot, Unity, and Construct do not write facilitator iXML—this incident is audio pipeline only. Playtest isolation still applies: recovered VO for fest_public must match surface on consent row.

Comparison to other “we recovered” case studies

Case study Lane
Mismatched save slots Persistence UI vs keys
MangoHud GPU idle Deck metrics
This URL VO iXML after conversion

Same synthesized ethics: pattern timing, no invented metrics.

Forward cluster (same spine)

Backlog Role
#17 July trend playbook—why waveform proof became non-optional
#19 ffprobe duration matrix when drift co-occurred
#21 opinion Metadata copy ≠ build artifact done
#23 Ten-minute ritual before mux

Mini exercise (team retrospective — 60 minutes)

  1. List every conversion between Audacity export and legal read.
  2. Run strip matrix on archived files if incident already happened.
  3. If no incident, run mux challenge once on production chain.
  4. Add strip_point line to CHALLENGE_LOG.md template.
  5. Schedule Friday Block 5 archive of incident folder after 8 weeks.

Field-by-field legal read (what inspectors check)

Legal tooling varies by studio; the synthesized checklist rhymes across reviewers:

Field Pass when Typical fail message
consent_record_id UUID matches consent_log.csv “No record id in WAV”
consent_scope highlight_reel or documented scope “Scope missing”
consent_expires ISO date ≥ reel publish date “Expired consent”
opt_out false for public lines “Opt-out line in reel”

Missing only consent_record_id after macro while other fields remain is still fail—do not argue partial credit.

Audacity Metadata Editor vs iXML block (beginner)

Teams screenshot the Metadata Editor window but legal parses iXML chunk bytes inside the file. Recovery includes:

  1. Open Metadata Editor on deliverable WAV (post all conversions).
  2. Export inspector text to deliverable_metadata_proof.txt.
  3. Compare to Tuesday archive—diff highlights strip.

Audacity manual — Metadata for UI; recovery receipt stores both UI proof and chunk type note.

ffmpeg extract lane that fooled teams (S2 deep dive)

Common command:

ffmpeg -i highlight.mp4 -vn -acodec pcm_s16le post_mux_extract.wav

If consent tags exist only on pre-mux parallel master, extract from MP4 will always fail M5—legal is correct, engineering proof was wrong lane.

Fix: Add vo_master_consent.wav to legal zip; keep MP4 for distribution.

Loudness macro variant (S1 deep dive)

Macro behavior Tags after macro
Normalize peak only Often survives
“Clean + export” chain Often strips
Third-party plugin batch Unpredictable

Document macro name and version in vo_ixml_recovery_receipt_v1.json strip_point string—future you will forget.

BUILD_RECEIPT before/after row (example structure)

Column Pre-incident Post-recovery
playtest_clip_consent_ok true true
wav_consent_metadata_ok true (stale) true (verified)
metadata_survives_mux_ok absent or false true
legal_hold n/a cleared D5

Stale true is worse than falseThursday review exists to catch drift.

Communication templates (no PII)

Legal (internal):

Subject: [build_label] VO iXML recovery complete
Strip: loudness_macro_v3 → AAC extract
Recovery: R1 re-export + mux M5 pass
Receipts: vo_ixml_recovery + updated VO_CONSENT_METADATA
Request: unblock public reel upload

Facilitator:

Do not run batch normalize on consent WAV.
Re-export lines 01-03 with PlaytestVOConsent2026 preset.
Drop files in release-evidence/audio/incident-<tag>/incoming/

Multi-line incident scope

When three VO lines failed but only one was in the reel:

Line In reel Recovery
vo_line_01 yes R1 full
vo_line_02 no Document opt_out or scope
vo_line_03 yes R1 full

Do not re-export entire library—scope to manifest + reel timeline.

Discord / community optics (qualitative)

Pattern observation: public channels calmed when studio posted “reel down for compliance fix, not content change” with no player data. Avoid debating legal tooling in public threads.

Relationship to Whisper and concat lanes

If symptom Route
Whisper batch skipped concat decision tree
Legal VO block This case study
Both Fix VOD first, then VO consent—order reduces confusion

Receipt hub cross-reference

Hub # This incident
#4 Unchanged if manifest valid
#5 Updated after recovery
#6–#7 Run after legal unblock before fest promote

Prevention calendar (after recovery)

Week Action
W0 Close incident D5
W1 Pin metadata-safe macro version
W2 All facilitators run mux challenge once
W3 Add strip matrix to onboarding doc
W4 July trend playbook backlog #17 when published

Synthesized metrics disclaimer (read once)

This article cites seven-day qualitative calm and five-day recovery timing as pattern observations from multiple micro-team postmortems—not a single measured study. Do not cite “GamineAI said X%” in press posts.

PowerShell helper — copy archived WAV set

$tag = "2026-05-26"
$dest = "release-evidence/audio/incident-$tag"
New-Item -ItemType Directory -Force -Path $dest
Copy-Item art/voice/facilitator/*.wav $dest

Run before re-export overwrites Tuesday files in place.

Gate checklist R1–R5 (recovery sprint)

Gate Owner Pass signal
R1 Producer Legal hold acknowledged; uploads stopped
R2 Audio lead strip_point_audit.log complete
R3 Audio lead vo_line_*_v2.wav passes V2–V3
R4 Reel lead Mux challenge M5 GREEN
R5 Producer vo_ixml_recovery_ok + BUILD_RECEIPT row

No gate may be skipped because “we understand the bug now.”

LIST vs iXML in recovery (developer)

Some teams export LIST/INFO tags; legal tooling expects iXML. Recovery may require:

  1. Document chunk_type change in receipt.
  2. Re-export with team policy iXML preset if legal mandates XML block.
  3. Re-run M5—chunk family may change while fields remain valid.

Do not assume LIST proof satisfies iXML-only reviewers—read your contract.

Incident retro questions (60-minute meeting)

  1. Why was BUILD_RECEIPT promoted before mux deliverable proof?
  2. Who approved batch macro on consent WAV?
  3. Did facilitator contract mention conversion survival?
  4. Was top 20 receipts hub indexed for new producers?
  5. Will ffmpeg version bump trigger re-challenge?

Write answers in incident-<tag>/retro.md—not in public devlog.

Extended FAQ — search phrasing

What does legal blocked reel mean when OBS consent passed

Marketing video fragments were allowed by clip manifest consent, but facilitator voice WAV in the deliverable lacked embedded consent metadata after a conversion step—fix the VO lane, not the MKV manifest.

How is vo_ixml_recovery_receipt different from vo_consent_metadata_receipt

Recovery receipt documents incident strip point and fix; cousin receipt remains the ongoing BUILD_RECEIPT boolean source after honest conversion_survival update.

Should we re-run playtest clip consent after VO recovery

Only if clip manifest was wrong—when #4 stayed GREEN, do not re-concat; focus on #5 and mux proof.

Timeline diagram (ASCII)

Tue: Audacity export (tags present) → receipt filed (premature)
Wed: Batch macro (tags stripped)     → no re-check
Thu: ffmpeg mux + upload             → legal opens deliverable
Fri: Legal BLOCK                     → D1 hold
Mon: Strip audit S1                  → R1 re-export
Tue: Mux challenge M5 PASS           → recovery receipt
Wed: BUILD_RECEIPT row + upload      → legal unblock

Use this shape in retro slides—timelines beat debating whose tool is “wrong.”

Pair with 18 playtest feedback tools

Feedback tools capture player sentiment; they do not replace consent receipts. Incidents where Discord said “great reel” while legal blocked are common—separate channels, separate artifacts.

Producer one-page incident summary (paste)

Incident: iXML stripped post VO conversion
Clip consent (243): GREEN — no re-concat
VO consent (250): recovered via R1 + mux M5
Strip point: [macro name] + [mux lane]
Receipts: vo_ixml_recovery + updated VO_CONSENT_METADATA
Legal: unblocked [date]
Next: ban batch macro on consent WAV; quarterly mux re-challenge

Developer diff habit (prevent recurrence)

After any VO processing change, run:

diff vo_line_01_pre_mux_proof.txt vo_line_01_post_mux_proof.txt

Non-empty diff on consent_record_id line blocks merge to fest_public branch until recovery gates pass—treat like failing unit tests.

Honest limits of synthesized case studies

Patterns compress many teams into one timeline; your strip point may be S3 only or a cloud re-encode not listed here. The recovery shape (audit → fix → mux proof → receipts) still applies—swap labels, keep gates.

Key takeaways

  1. OBS clip consent GREEN ≠ VO iXML GREEN—243 and 250 are separate receipts.
  2. Legal reads deliverable bytes—Tuesday screenshots are not proof.
  3. Strip point audit (S1 macro, S2 codec, S3 lane) names the failure.
  4. Recovery paths R1 re-export or R2 parallel WAV master.
  5. Mux challenge M5 is mandatory after fix—not optional.
  6. File vo_ixml_recovery_receipt_v1.json beside cousin receipts.
  7. Update conversion_survival on VO_CONSENT_METADATA_RECEIPT.json honestly.
  8. Thursday row review documents legal unblock.
  9. Prevention: VO tutorial + mux challenge.
  10. Synthesized pattern only—verify on your conversion chain.
  11. Archive Tuesday WAV before macros—incident folders need before/after bytes.
  12. Tag Lesson 239 vod_consent when routing similar tickets.

FAQ

Why was the reel legal-blocked when OBS consent passed

Video fragment consent (Lesson 243) does not prove facilitator VO consent_record_id survived conversion (Lesson 250).

What is the most common strip point in this pattern

Batch loudness normalize macros that rewrite WAV without metadata preset, followed by AAC mux that drops chunks on extracted audio.

How long did recovery take in the pattern

Five working days first time; one to two days when mux challenge was already pinned and strip matrix was routine.

Do we need a new receipt schema

Use vo_ixml_recovery_receipt_v1.json for incident recovery narrative; keep vo_consent_metadata_receipt_v1.json as ongoing BUILD_RECEIPT cousin.

Is this the same as metadata survives mux challenge

Challenge prevents recurrence; this case study describes legal block recovery after trusting pre-conversion proof.

Can we waive iXML if clip consent is GREEN

No for public marketing reels with facilitator VO—legal lane is independent; waiver belongs in release-evidence/cert-and-platform/waivers/ with explicit scope, not silent skip.

What file should legal receive after recovery

A zip with vo_ixml_recovery_receipt_v1.json, updated VO_CONSENT_METADATA_RECEIPT.json, metadata_survives_mux_receipt_v1.json, before/after metadata proof text files, and the actual deliverable WAV or parallel master legal reads—not only the MP4.

Does recovery require re-shooting playtest video

Usually no—re-export facilitator VO and remux; clip manifest from OBS remains valid when #4 was already GREEN and fragments unchanged.

Who owns strip point audit

Audio lead runs S1–S3 matrix; producer owns legal comms; reel lead owns mux challenge M4–M5. Clear ownership prevents three engineers repeating the same ffprobe without updating the audit log.


Legal blocked reels with GREEN OBS consent usually mean VO conversion stripped iXML—audit the strip point, re-prove post-mux, file recovery JSON, then promote BUILD_RECEIPT.