Files
ableton-mcp-ai/docs/SPRINT_v0.1.4_NEXT.md

156 lines
4.9 KiB
Markdown

# 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" .
```