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

5.6 KiB

Sprint v0.1.3 - Continuacion Real Despues Del Consolidado

Fecha: 2026-03-30

Este sprint reemplaza a docs/SPRINT_v0.1.2_NEXT.md como sprint activo.

Si eres Kimi K2:

  • lee este archivo despues de KIMI_K2_ACTIVE_HANDOFF.md
  • no asumas que docs/CONSOLIDADO_v0.1.1_v0.1.2_PARA_CODEX.md es exacto en todo
  • valida siempre contra diffs, codigo activo y runtime

Lo que se reviso

Se comparo:

  • docs/CONSOLIDADO_v0.1.1_v0.1.2_PARA_CODEX.md
  • git diff --stat
  • git diff --name-only
  • codigo activo en sample_selector.py, server.py, groove_extractor.py, abletonmcp_init.py

Lo que del consolidado si esta bien

  • clear_all_tracks existe en el runtime activo y los tests ad hoc pasan
  • zai_judges.py existe y esta integrado en server.py
  • groove_extractor.py ahora escanea recursivamente
  • temp\smoke_test_async.py existe
  • sample_selector.py tiene estructuras nuevas para same-pack, section context y joint scoring

Lo que el consolidado sobrevendio o no dijo bien

1. "Codigo implementado 100%"

Eso es falso.

Hay codigo nuevo, pero no todo esta cableado al flujo real.

2. "Selector por seccion implementado"

Esto esta incompleto.

Hecho real:

  • sample_selector.py tiene set_section_context()
  • tiene SECTION_ROLE_PROFILES
  • tiene JOINT_SCORING_GROUPS

Problema real:

  • no hay llamadas desde server.py ni desde el flujo principal que seteen self._section_context
  • por lo tanto, la logica por seccion y joint scoring esta mayormente muerta hoy

3. Regresion real que el consolidado no reporto

sample_selector.py quedo roto por merge:

  • desaparecio el metodo _calculate_repetition_penalty
  • su cuerpo quedo colgado despues de get_section_selections()
  • eso podia romper el selector en runtime aunque el archivo compilara

Eso ya fue corregido en este turno.

Arreglo aplicado en este turno

Archivo:

  • AbletonMCP_AI/AbletonMCP_AI/MCP_Server/sample_selector.py

Fix:

  • se restauro _calculate_repetition_penalty
  • se elimino el residuo muerto del merge
  • se dejo el modulo otra vez consistente para scoring real

Validacion hecha:

  • python test_same_pack_selection.py
  • python test_clear_tracks.py
  • python test_clear_messy.py
  • python AbletonMCP_AI/AbletonMCP_AI/MCP_Server/tests/test_sample_selector.py
  • compilacion local de los .py principales

Objetivo real de v0.1.3

Pasar de "hay estructuras nuevas" a "esas estructuras afectan la generacion real".

Tarea 1 - Cablear section-aware selection al flujo real

Problema:

  • la logica por seccion existe en sample_selector.py
  • pero no entra en juego en la generacion real porque nadie llama set_section_context()

Haz esto:

  1. encontrar el flujo real donde se seleccionan samples por rol
  2. setear section_context antes de cada bloque de seleccion
  3. limpiar el contexto al terminar
  4. verificar que record_section_selection() se use de verdad

Archivos probables:

  • AbletonMCP_AI/AbletonMCP_AI/MCP_Server/server.py
  • AbletonMCP_AI/AbletonMCP_AI/MCP_Server/sample_selector.py
  • AbletonMCP_AI/AbletonMCP_AI/MCP_Server/pack_brain.py

Criterio de salida:

  • logs muestran SECTION_CONTEXT y JOINT_SCORE en una generacion real
  • los picks cambian por seccion, no solo por rol global

Tarea 2 - Agregar test que capture la regresion del selector

Problema:

  • el archivo compilaba aunque le faltaba un metodo critico
  • los tests existentes no lo detectaron

Haz esto:

  1. agregar un test que llame el camino de scoring real
  2. cubrir _calculate_sample_score
  3. cubrir section context + joint scoring

Archivos:

  • AbletonMCP_AI/AbletonMCP_AI/MCP_Server/tests/test_sample_selector.py
  • o test nuevo en root si no puedes usar pytest

Criterio de salida:

  • si vuelve a faltar _calculate_repetition_penalty, el test falla

Tarea 3 - Validar de verdad el camino async con Live

Problema:

  • el consolidado reconoce que server.py sigue bloqueando en algunos casos
  • esto sigue siendo un riesgo real

Haz esto:

  1. ejecutar temp\smoke_test_async.py con Live abierto
  2. probar --use-track
  3. probar generate_song_async
  4. revisar get_generation_job_status
  5. confirmar si el bloqueo esta en job queue, transport o generacion larga

Archivos:

  • temp\smoke_test_async.py
  • AbletonMCP_AI/AbletonMCP_AI/MCP_Server/server.py

Criterio de salida:

  • job queued
  • job running
  • job completed
  • manifest util
  • sin falsos "success"

Tarea 4 - Bajar claims inflados de la documentacion

Problema:

  • el consolidado tiene verdad util, pero tambien claims demasiado fuertes

Haz esto:

  1. no borres el consolidado
  2. si corriges algo grande, agrega una seccion "Reality Check"
  3. cambia frases tipo "100% implementado" por estado verificable

Archivo:

  • docs/CONSOLIDADO_v0.1.1_v0.1.2_PARA_CODEX.md

Criterio de salida:

  • la doc no promete mas de lo que el runtime demuestra

Tarea 5 - Limpiar artefactos de trabajo del repo

Problema:

  • hay artefactos mezclados con codigo real
  • ejemplos: scan_log.txt, diversity_memory.json, scripts temporales y tests ad hoc en root

Haz esto:

  1. decidir que archivos son runtime real
  2. decidir que archivos son artefactos locales
  3. mover o ignorar lo que no deba versionarse

Archivos probables:

  • .gitignore
  • AbletonMCP_AI/.gitignore
  • root del repo

Criterio de salida:

  • menos ruido en git status
  • menos chance de que otro agente edite el archivo equivocado

Reglas duras para este sprint

  • no declares que section-aware selection funciona hasta verla en logs o runtime
  • no uses solo compilacion como prueba de salud
  • no confundas "codigo existe" con "codigo esta conectado"
  • si un claim del consolidado contradice el diff o el runtime, gana el runtime