8.9 KiB
Sprint v0.1.16 - Bus-Aware Coherence and Piano Hybrid Truth
Owner: Kimi via OpenCode
Reviewer: Codex
Fecha: 2026-04-01
Baseline real: e3c3691cc922
Estado de cierre v0.1.15: runtime corregido parcialmente, no cerrado en coherencia
1. Verdad operativa hoy
Lo que quedó realmente validado por Codex:
library-firstya materializa audio real de librería en Arrangement.- El hook armónico híbrido ya se materializa de verdad antes de agotar budget.
- En la última validación real, el hook quedó como
HARMONY_PIANO_MIDIymandatory_midi_hook.materialized = true. - El parser de familias ya no devuelve nombres de pack como familia armónica para
pluck/pad/piano. - La métrica de
piano_presenceya fue corregida para poder contar un hook MIDI piano materializado.
Lo que sigue abierto:
coherence_scoresigue bajo. Última sesión real:e3c3691cc922, score4.6, verdictWEAK.pack_coherence_ratiosigue pobre porque el sistema sigue intentando resolver coherencia con undominant_packglobal.- El selector sigue mezclando drums de un pack, armonía de otro y vocals/FX de terceros sin una política bus-aware explícita.
- La auditoría histórica de Kimi volvió a inflar claims:
SPRINT_v0.1.15_VALIDATION_REPORT.mdcitaa74bc42ec332, pero ese session id no existe engeneration_manifests.json.
Conclusión senior:
- No se puede seguir reportando
COMPLETEmientras el manifest real quedeWEAK. - El bug principal ya no es “no genera nada”.
- El bug principal ahora es “genera, pero no decide con criterio de palette/coherence por bus”.
2. Objetivo del sprint
Cerrar la siguiente transición:
- De
library-first-hybrid que ya suena - A
library-first-hybrid coherente por buses, con armonía principal clara, soporte piano real cuando corresponde y menos mezcla arbitraria de packs
Este sprint no es para agregar features nuevas. Es para corregir criterio de selección.
3. Reglas no negociables
-
Trabajar solo sobre el árbol canónico:
C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts
-
No tocar wrappers/config MCP salvo que rompas algo.
toolCount=77en OpenCode debe seguir intacto.
-
No reportar session ids inexistentes.
- Toda validación debe cruzarse contra
C:\Users\ren\.abletonmcp_ai\generation_manifests.json.
- Toda validación debe cruzarse contra
-
No cerrar el sprint con
PASSsi:coherence_score < 6.5- o
mandatory_midi_hook.materialized != trueenlibrary-first-hybrid - o
pack_coherence_ratiosigue siendo claramente pobre sin explicación bus-aware
-
No “resolver” coherencia matando la librería del usuario.
- La salida sigue siendo library-first.
- El MIDI hook es soporte armónico, no reemplazo del audio library-first.
-
No forzar piano audio si la librería/reference no lo soporta.
- Sí es obligatorio mantener un soporte armónico MIDI piano/keys cuando
preferred_secondary_familieslo prioriza y el hook híbrido existe.
- Sí es obligatorio mantener un soporte armónico MIDI piano/keys cuando
4. Problemas concretos a resolver
P0. Reemplazar coherencia global por coherencia por bus
Problema:
select_dominant_palette()sigue intentando resolver un solodominant_packpara todo.- En reggaetón real eso es una abstracción pobre:
- drums pueden venir de
drumloops/16bloody/ss_rnbl - music/harmony de
midilatino_* - FX/vocals de un subconjunto distinto
- drums pueden venir de
Qué tenés que hacer:
- Diseñar y aplicar una política
bus-aware pack coherence. - Mínimo esperado:
drumsse evalúan contra un grupo dominante de drum packsmusic/harmonicse evalúan contra un grupo dominante musicalfx/vocalsno pueden destruir el score general por venir de un tercer pack si son pocos y justificables
No quiero:
- un solo
dominant_packglobal maquillado con bonuses - ni un sistema que castigue kicks por no pertenecer al mismo pack que el synth loop
Entregable técnico:
- manifest con métricas por bus, no solo globales
- ejemplo:
pack_coherence.drumspack_coherence.musicpack_coherence.fxpack_coherence.overall
P1. Hacer que la auditoría mida coherencia útil
Problema:
- Ya corregimos que no se mida familia armónica sobre
kick/snare/hat, pero la auditoría sigue siendo pobre como instrumento de decisión final.
Qué hacer:
-
endurecer
SelectionAuditorpara que diferencie:- roles armónicos
- roles rítmicos
- roles de apoyo/FX
-
family_adherence_ratedebe seguir midiendo solo capas armónicas. -
pack_coherence_ratiodebe tener lectura por bus y no castigar igual unkicky unvocal build.
P2. Política explícita de “piano hybrid truth”
Problema:
- El sistema ya materializa
HARMONY_PIANO_MIDI, pero todavía puede quedarpiano_presencebajo si no hay audio piano. - Eso es aceptable solo si el manifest lo explica bien.
Qué hacer:
-
Formalizar que en
library-first-hybridhay dos maneras válidas de cumplir “piano support”:midi_support_family in {piano, keys}- o una capa armónica de audio piano/keys real
-
Manifest esperado:
- distinguir
audio_piano_presencedehybrid_piano_presence - si el soporte piano viene del hook MIDI, tiene que verse explícito
- distinguir
No quiero:
- un
piano_presence = 0cuando el set sí tieneHARMONY_PIANO_MIDI
P3. Añadir una única capa armónica secundaria cuando tenga sentido
Problema:
- Hoy el híbrido puede quedar con pluck/lead audio + piano MIDI, pero sin una capa secundaria clara de apoyo.
Qué hacer:
- Si
preferred_secondary_familiesincluyepianookeysy hay material usable en librería, permitir como máximo 1 capa secundaria armónica adicional. - Debe ser una capa con justificación musical, no un relleno KPI.
Restricciones:
- máximo 1 capa secundaria nueva
- no duplicar familias sin función
- no degradar el hook principal ni la claridad del pluck anchor
P4. Bajar redundancia y fragmentación sin perder intención
Problema:
- En
e3c3691cc922la sesión sonó, pero apareció redundancia:- dos
PERC MAIN - dos
TOP LOOP - dos
SYNTH PEAK - vocals duplicadas
- dos
Qué hacer:
- revisar si esas duplicaciones agregan contraste real o solo suman clutter
- si no agregan contraste claro, consolidar o eliminar
Salida esperada:
- menos layers repetidas con distinto nombre
- más intención estructural
P5. Verificación senior real
No alcanza con “generate_track devolvió success”.
Tenés que validar:
- manifest persistido existe
- session id existe en
generation_manifests.json mandatory_midi_hook.materialized == truegeneration_mode == library-first-hybridcoherence_score >= 6.5pack_coherence.overall >= 0.50pack_coherence.music >= 0.65harmonic_layers_evaluated >= 2family_adherence_rate >= 0.60en capas armónicas
Si no llegás a esos umbrales:
- no pongas
COMPLETE - documentá exactamente por qué
5. Archivos probables a tocar
AbletonMCP_AI\AbletonMCP_AI\MCP_Server\reference_listener.pyAbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.py- tests nuevos o extendidos en:
AbletonMCP_AI\AbletonMCP_AI\MCP_Server\tests\test_selection_coherence.pyAbletonMCP_AI\AbletonMCP_AI\MCP_Server\tests\test_piano_forward.py
6. Casos de test obligatorios
- Un test donde drums y music usen packs distintos pero coherentes por bus, y el sistema no los castigue como si fuera incoherencia total.
- Un test donde
HARMONY_PIANO_MIDImaterializado cuente como soporte piano híbrido válido. - Un test donde
pack_coherence.musicsuba aunquepack_coherence.drumsvenga de otro pack dominante. - Un test donde el manifest no permita cerrar con session id inexistente.
7. Validación final obligatoria
Generar una canción real usando:
- género:
reggaeton - style:
perreo duro vieja escuela tipo safaera - referencia:
libreria\reggaeton\ejemplo.mp3
Tenés que reportar:
session_idcoherence_scorepack_coherence.overallpack_coherence.drumspack_coherence.musicmandatory_midi_hookprimary_harmonic_anchorpiano_presence- lista real de audio layers y fuente
Y además:
- confirmar que el
session_idexiste realmente engeneration_manifests.json
8. Formato de entrega
Archivo obligatorio:
docs/SPRINT_v0.1.16_VALIDATION_REPORT.md
Ese md debe incluir:
- qué arreglaste realmente
- qué no cerró
- session id real
- métricas reales
- citas literales de logs solo si son relevantes
No acepto:
- reportes con “todo ok” y sin session persistida
- reportes con claims auditivos sin manifest real
- reportes donde
WEAKqueda escondido en una nota menor
9. Criterio de cierre
Solo podés cerrar el sprint si:
- la generación real queda persistida
- el híbrido library-first mantiene librería + soporte MIDI piano/keys
- la coherencia deja de depender de un único pack global
- el manifest cuenta la verdad de lo que pasó
Si no llegás a eso, dejá el sistema mejor que hoy, pero no lo declares terminado.