Sync: Complete project state with all MEGA SPRINT V1-V3 features and Codex stubs
This commit is contained in:
355
docs/SPRINT_v0.1.32_NEXT_KIMI.md
Normal file
355
docs/SPRINT_v0.1.32_NEXT_KIMI.md
Normal file
@@ -0,0 +1,355 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user