# Sprint v0.1.4 - Cerrar Integracion Real y Evidencia Runtime Fecha: 2026-03-30 Este sprint reemplaza a `docs/SPRINT_v0.1.3_NEXT.md` como sprint activo. ## Objetivo Pasar de "hay wiring parcial y tests unitarios" a "hay evidencia runtime de que el flujo real usa esas mejoras". ## Estado de partida real - `reference_listener.py` mejoro: ahora setea contexto por seccion y pasa `section_kind`/`section_energy` en seleccion por variante. - `sample_selector.py` tiene `SECTION_ROLE_PROFILES`, `record_section_selection()` y `_calculate_joint_score()`. - No esta demostrado todavia que el `joint scoring` del `SampleSelector` afecte la generacion real end-to-end. - `temp\smoke_test_async.py` existe, pero Kimi lo habia dejado con `SERVER_PATH` roto; eso ya fue corregido. - `.gitignore` ahora vuelve a ignorar solo `temp/`; no debe volver a esconder scripts globalmente. ## Tarea 1 - Probar section-aware y joint scoring en el flujo real Problema: - hoy hay mejora parcial en `reference_listener.py` - pero no alcanza con que exista `set_section_context()` - hace falta demostrar que el flujo real cambia picks por seccion y que el scoring conjunto entra en juego Haz esto: 1. identificar el camino exacto de generacion que se usa en runtime 2. verificar si el scoring principal pasa por `SampleSelector._calculate_sample_score()` 3. si no pasa, cablearlo o dejar explicitamente documentado que `reference_listener.py` usa su propia heuristica 4. capturar logs reales de una generacion con `SECTION_CONTEXT` 5. capturar logs reales de `JOINT_SCORE`, o documentar con evidencia que esa parte sigue sin usarse Archivos probables: - `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/reference_listener.py` - `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/sample_selector.py` - `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/server.py` Criterio de salida: - hay evidencia runtime de `SECTION_CONTEXT` - queda claro si `JOINT_SCORE` participa o no participa del flujo real - no se vuelve a usar lenguaje tipo "activo" sin prueba ## Tarea 2 - Validar async con Live real Problema: - la infraestructura async existe - la validacion documentada sigue floja - el smoke test estuvo roto por path y eso invalida parte del claim anterior Haz esto: 1. ejecutar `python temp\smoke_test_async.py` con Live abierto 2. probar `generate_song_async` 3. probar `generate_track_async --use-track` 4. revisar polling, resultado final y tracks creados 5. guardar evidencia minima en el sprint o handoff Archivos: - `temp\smoke_test_async.py` - `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/server.py` Criterio de salida: - `queued -> running -> completed` o un fallo claro y reproducible - resultado util en `get_generation_job_status` - si falla, el bug queda localizado ## Tarea 3 - Unificar scripts y rutas canonicas Problema: - hay docs que todavia apuntan a `smoke_test_async.py` en root - el script real vive en `temp\` - esto vuelve a generar handoffs falsos o instrucciones rotas Haz esto: 1. corregir docs y handoffs para usar la ruta canonica real 2. revisar si conviene mantener el script en `temp\` o devolverlo a root 3. si lo dejas en `temp\`, asegurate de que la documentacion sea consistente 4. no vuelvas a ocultar scripts globalmente con `.gitignore` Archivos: - `SMOKE_TEST_ASYNC.md` - `KIMI_K2_ACTIVE_HANDOFF.md` - `KIMI_K2_BOOTSTRAP.md` - docs que mencionen `smoke_test_async.py` Criterio de salida: - una sola ruta canonica - sin referencias viejas en docs activas ## Tarea 4 - Endurecer la documentacion de evidencia Problema: - Kimi sigue marcando "completado" donde solo hay compile + narrativa - eso vuelve inutiles los handoffs Haz esto: 1. en cada cambio importante, separar: - codigo existe - codigo cableado - runtime validado 2. no uses porcentajes globales tipo `100%` 3. si falta runtime, decirlo literal 4. si un documento historico sobredeclara, agregar correccion en vez de ignorarlo Archivos: - `docs/SPRINT_v0.1.4_CHANGES.md` cuando cierres este sprint - `KIMI_K2_ACTIVE_HANDOFF.md` Criterio de salida: - proximo handoff usable por otro agente sin re-auditoria completa ## Tarea 5 - Solo despues: seguir mejorando seleccion musical No entres primero a esta tarea. Primero cierra integracion y validacion. Si Tareas 1-4 quedan bien, despues recien: 1. endurecer coherencia por pack entre secciones 2. validar que groove templates reales cambian el ritmo 3. revisar scoring musical sobre loops de reggaeton ## Reglas duras - usa PowerShell, no bash - usa rutas absolutas de Windows en docs - no declares exito por compilacion sola - no declares exito por logs inventados o esperados - si contradicen diff, codigo y doc, gana el codigo - si contradicen codigo y runtime, gana el runtime ## Comandos utiles ```powershell python temp\smoke_test_async.py --use-track python AbletonMCP_AI\AbletonMCP_AI\MCP_Server\tests\test_sample_selector.py Get-Content "$env:APPDATA\Ableton\Live 12.0.15\Preferences\Log.txt" -Tail 120 rg -n "smoke_test_async.py|SECTION_CONTEXT|JOINT_SCORE" . ```