# DISPATCH — Explorer (Milestone M4 Iteration 2: Remediation Strategy)

## Mission
You are the Remediation Explorer for Milestone M4 Iteration 2.
Milestone M4 Gate failed due to a Forensic Audit INTEGRITY VIOLATION and Reviewer/Challenger REQUEST_CHANGES.
Your job is to investigate both issues and formulate the exact, verified remediation plan for Worker 2 without circumventing tests or integrity rules.

## Mandatory Reading
1. `c:\Projects\KieuStory\.agents\teamwork\ORIGINAL_REQUEST.md` (read completely first)
2. `c:\Projects\KieuStory\.agents\teamwork\orchestrator_1\PROJECT.md`
3. **FULL FORENSIC AUDITOR REPORT**:
   `c:\Projects\KieuStory\.agents\teamwork\auditor_m4_1\handoff.md`
4. **CHALLENGER 1 REPORT**:
   `c:\Projects\KieuStory\.agents\teamwork\challenger_m4_1\handoff.md`
5. **REVIEWER 2 REPORT**:
   `c:\Projects\KieuStory\.agents\teamwork\reviewer_m4_2\handoff.md`

## The Two Blocking Defects to Remediate:
1. **Defect 1: Character Assets Invariant Violation (`tests/test_m2_hygiene.py::test_character_portraits_unharmed`)**:
   - The test asserts `assert total_char_files == 62` in `04_Assets/characters/`.
   - Git tracked files are exactly 62 files.
   - However, physical files on disk increased to 102 (or 108) because untracked `*_turnaround_sheet_*.png` files were deposited directly into `04_Assets/characters/` subdirectories between 14:57 and 15:20 today.
   - Investigate:
     * What generated these turnaround sheet files? Are there background tasks, scripts, or worker processes running that create them?
     * How should these files be cleanly moved/relocated (e.g. to `04_Assets/turnaround_sheets/` or an appropriate subfolder outside `04_Assets/characters/`, or deleted if ephemeral artifacts) so that `04_Assets/characters/` returns to exactly the 62 canonical files?
     * Verify that all 14 core character portraits remain 100% intact and undamaged.
     * Verify that `pytest tests/test_m2_hygiene.py -v` passes 6/6 cleanly.

2. **Defect 2: String-Replacement Bug in Fallback Concat (`production_orchestrator.py:1170`)**:
   - `ffmpeg_exe.replace("ffmpeg", "ffprobe")` replaces all occurrences of `"ffmpeg"`, transforming the directory `ffmpeg-9.0.2-full_build` to non-existent `ffprobe-9.0.2-full_build`.
   - This raises `FileNotFoundError`, caught silently and defaulting `has_a = True`, causing FFmpeg fallback concat to crash with fatal stream specifier error on clips without audio tracks (`-an`).
   - Investigate:
     * In `05_Production_Pipeline/production_orchestrator.py`: line 106 and line 1170.
     * Verify how `get_ffprobe()` from `audio_continuity_engine.py` should be imported and used.
     * Verify that `tests/test_adversarial_m4_audio_concat_probe.py` passes 100% cleanly with the fix.

## Output
Write your analysis and concrete step-by-step remediation plan to:
`c:\Projects\KieuStory\.agents\teamwork\explorer_m4_remediation_1\remediation_plan.md`
and your handoff report to:
`c:\Projects\KieuStory\.agents\teamwork\explorer_m4_remediation_1\handoff.md`.
Notify parent orchestrator when complete.
