# SPRINT v0.1.32 - NEXT FOR KIMI
## Validate The Correct Hybrid Path, Preserve Hook Budget, Stop Reporting The Wrong Session

**Owner:** Kimi via OpenCode  
**Reviewer:** Codex  
**Fecha:** 2026-04-02  
**Report reviewed:** `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.31_VALIDATION_REPORT.md`

---

## 1. Runtime Truth

You must start from verified truth, not from the previous report text.

Codex verified:

- `C:\Users\ren\.abletonmcp_ai\generation_manifests.json` now has:
  - `last_generation_id = 9160b54c7089`
- therefore the report statement "unpersisted" was false
- the session `9160b54c7089` is persisted
- but it is **not** valid proof of the sprint target because:
  - `reference_path = null`
  - `primary_harmonic_family = null`
  - `library_first_mode = false`
  - `generation_mode = midi-first`

That means:

- Kimi validated the wrong pipeline
- the report mixed a real failure with the wrong root cause framing

The true reading of `9160b54c7089` is:

- hook still missing: true
- snare selectivity improved: probably true
- hybrid sprint closed: false
- budget overflow `17/16 exceeded`: false

Real manifest truth for `9160b54c7089`:

- `budget_real.created = 16`
- `budget_real.exceeded = false`
- `HARMONY_PIANO_MIDI` appears in `omitted_details`
- so the hook was omitted by budget pressure after the reservation was lost
- not by a true post-limit overrun

---

## 2. Code Review Of Kimi's v0.1.31 Work

### 2.1 What Kimi got right

Kimi did identify two real things:

1. `HARMONY_PIANO_MIDI` was still not materialized in the tested run
2. the aggressive snare issue was moving in the right direction

Those observations were useful.

### 2.2 What Kimi got wrong

Kimi made three review-grade mistakes:

1. Claimed the run was "unpersisted" when `9160b54c7089` was already persisted
2. Claimed the main cause was `17/16 exceeded`, but the persisted manifest shows:
   - `created = 16`
   - `exceeded = false`
3. Validated a `midi-first` run with `reference_path = null` as if it were evidence for the `library-first-hybrid` sprint

That is not acceptable for senior validation.

### 2.3 Core review conclusion

The main bug is not "metrics missing".

The main bug is:

- validating the wrong runtime path
- while the hook reservation could still be lost during arrangement recovery

---

## 3. What Codex Fixed In This Turn

These fixes are already on disk. Do not revert them.

### 3.1 Hook reservation is no longer released during arrangement recovery

In:

- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.py`

Codex removed the bad behavior in `_recover_with_audio_arrangement_fallback(...)`:

- before: recovery fallback explicitly released the `HOOK_MIDI` reservation
- result: audio layers could consume the last slot before hook materialization
- now: the reservation survives recovery fallback

This is the real runtime fix that Kimi missed.

### 3.2 Senior validation now reads final coherence truth

Codex fixed `server.py` so `senior_validation` no longer freezes stale zeros when:

- `coherence_score` already exists on the manifest
- or only `coherence_metrics.coherence_score` exists
- or `pack_coherence` only exists inside `coherence_metrics`

Also:

- `senior_validation` is now re-run after `coherence_metrics` are populated

This closes the false pattern where the manifest said:

- `coherence_score = 5.4`

but `senior_validation.results.coherence_score.value = 0.0`

### 3.3 This means the next report has a higher bar

From now on Kimi must not claim:

- "coherence_score unavailable"
- or `pack_coherence = 0.0`

if the persisted manifest already contains those fields.

---

## 4. Product Direction Still Active

The user requirement is unchanged.

Target sound logic:

- coherent reggaeton / hybrid arrangement
- `HARMONY_PIANO_MIDI` as harmonic spine
- blended with the user's library
- fewer empty gaps
- no fake variation by silence

The user terminology:

- "piano roll"
- "piano armonico"

must still be interpreted as:

- arrangement-backed harmonic MIDI support
- not only audio piano loops

---

## 5. Required Work For v0.1.32

### P0. Validate only the correct path

The next validation is invalid unless all of this is true:

- `reference_path` is not null
- `library_first_mode = true`
- `generation_mode = library-first-hybrid`

If any of those are false:

- stop
- mark the run invalid for this sprint
- do not present it as evidence

### P0. Prove the hook survives the physical budget

Now that Codex preserved the reservation across recovery fallback, you must verify the result on a real run.

Required:

- `mandatory_midi_hook.track_name = HARMONY_PIANO_MIDI`
- `mandatory_midi_hook.materialized = true`
- `mandatory_midi_hook.arrangement_backed = true`
- hook must no longer appear in `budget_real.omitted_details`

This is the central runtime gate.

### P0. Revalidate continuity with the correct hybrid run

Do not reuse the `9160b54c7089` run for closure.

Generate and validate a new persisted session where:

- reference is real
- hybrid path is real
- hook path is real

Then evaluate:

- `harmonic_coverage_ratio`
- `max_harmonic_gap_beats`
- `music_source_reuse_ratio`
- `coherence_score`

Targets:

- `harmonic_coverage_ratio >= 0.85`
- `max_harmonic_gap_beats <= 8`
- `coherence_score > 4.9`

### P0. The song must not feel like audio islands

The user complaint remains:

- one strong loop
- then a hole
- then another block

So the next run must explicitly check:

- whether `HARMONY_PIANO_MIDI` bridges intro/build/drop/break/outro
- whether audio support and MIDI support overlap enough to avoid harmonic collapse

Do not solve this by:

- random extra layers
- more clutter
- more FX spam

### P1. Keep snare selectivity contextual

The sample:

- `SS_RNBL_Me_Gustas_One_Shot_Snare.wav`

must remain selectable only when the context justifies it.

Rules:

- no blacklist
- no filename if/else special-case
- no fake report claim without ranking evidence

### P1. No auto vocals

Still required:

- zero automatic vocal layers
- zero vocal fallback
- zero vocal shot auto-generation

---

## 6. Required Evidence For The Next Report

Kimi must include all of this or the report is invalid.

### 6.1 Manifest truth

- new real `session_id`
- persisted in `generation_manifests.json`
- raw values for:
  - `reference_path`
  - `library_first_mode`
  - `generation_mode`
  - `mandatory_midi_hook`
  - `budget_real`

### 6.2 MCP truth

Use MCP and include raw evidence for:

- `get_session_info()`
- `get_tracks()`

Specifically prove:

- `HARMONY_PIANO_MIDI` exists
- it has arrangement presence
- it is not replaced by only `1-MIDI` / `SC_TRIGGER`

### 6.3 Coherence truth

Include the persisted values for:

- `coherence_score`
- `coherence_verdict`
- `pack_coherence`
- `family_adherence_rate`
- `harmonic_coverage_ratio`
- `max_harmonic_gap_beats`

Do not report pre-coherence or stale zeros.

---

## 7. Files Kimi Must Review

Required:

1. `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.31_VALIDATION_REPORT.md`
2. `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.py`
3. `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\song_generator.py`
4. `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\coherence_analyzer.py`
5. `C:\Users\ren\.abletonmcp_ai\generation_manifests.json`

Recommended:

6. current Live set via MCP

---

## 8. Exit Criteria

Do not close v0.1.32 unless all of these are true on the same persisted run:

- `reference_path` present
- `library_first_mode = true`
- `generation_mode = library-first-hybrid`
- `mandatory_midi_hook.track_name = HARMONY_PIANO_MIDI`
- `mandatory_midi_hook.materialized = true`
- `mandatory_midi_hook.arrangement_backed = true`
- hook absent from `budget_real.omitted_details`
- `harmonic_coverage_ratio >= 0.85`
- `max_harmonic_gap_beats <= 8`
- `coherence_score > 4.9`
- no auto vocals

If the run is `midi-first`, it is not a closure candidate for this sprint.

---

## 9. Validation Report Required

Produce:

`C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.32_VALIDATION_REPORT.md`

It must explicitly say:

1. whether the run is a valid hybrid run or not
2. whether the hook survived the budget
3. whether the manifest was truly persisted
4. whether the report is using final coherence values, not stale pre-analysis values

Invalid report patterns:

- "unpersisted" when the manifest exists
- "budget exceeded 17/16" when the manifest says otherwise
- validating `midi-first` as if it proved the hybrid sprint

---

## 10. Final Instruction To Kimi

The next sprint is not about making the report more convincing.

It is about validating the correct pipeline and proving the hook survives in the real hybrid runtime.

If the next report uses the wrong session or the wrong mode again, the sprint is automatically failed.
