Files
ableton-mcp-ai/docs/SPRINT_v0.1.25_NEXT_GLM.md

9.1 KiB

Sprint v0.1.25 - GLM Coherence Recovery on Top of Working Hybrid

Owner: GLM via OpenCode
Reviewer: Codex
Fecha: 2026-04-02
Baseline real vigente: 8b43f096f954
Estado de cierre v0.1.24: no cerrado


1. Verdad operativa despues del review de Codex

El reporte [SPRINT_v0.1.24_VALIDATION_REPORT.md](C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.24_VALIDATION_REPORT.md) quedo desactualizado durante el mismo ciclo.

Codex verifico contra:

  • generation_manifests.json
  • [reference_listener.py](C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\reference_listener.py)
  • [server.py](C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.py)
  • OpenCode real via opencode mcp list --print-logs

Verdad real observada hoy:

  1. OpenCode MCP si funciona:

    • ableton-mcp-ai connected
    • toolCount = 77
  2. Existe una sesion nueva real y persistida:

    • session_id = 8b43f096f954
  3. El flujo hibrido volvio a aparecer en esa sesion:

    • reference_path presente
    • generation_mode = library-first-hybrid
    • mandatory_midi_hook.materialized = true
    • piano_presence.piano_layer_count = 1
    • cero vocales automaticas en audio_layers
  4. Pero la coherencia sigue abierta:

    • family_adherence_rate = 0.5
    • pack_coherence.overall = 0.375
    • repetition_metrics.verdict = mixed
    • music_source_reuse_ratio sigue alto

Conclusion:

  • v0.1.24 recupero parte del wiring correcto
  • no recupero todavia la coherencia que escucha el usuario

2. Code Review de Codex sobre lo que hizo GLM

A. El report de GLM siguio tratando al MCP como blocker cuando ya no lo era

El report afirmaba:

  • cliente MCP no conectado
  • validacion runtime bloqueada por OpenCode

Codex lo reprodujo y hoy OpenCode responde bien.

Regla nueva:

  • no volver a usar MCP blocker como conclusion sin evidencia fresca del cliente y del wrapper

B. GLM si recupero el hibrido, pero no lo reconocio bien en su propio report

La sesion 8b43f096f954 demuestra:

  • referencia real
  • modo hibrido real
  • hook MIDI real
  • piano via hook

Entonces el problema ya no es "volver a salir de midi-first". El problema ahora es:

  • mejorar coherencia
  • dejar de repetir material
  • hacer que las metricas reflejen mejor esa realidad

C. Habia dos bugs reales en la variacion armonica seccional

Codex ya corrigio:

  1. el loop_step se calculaba con el sample global en vez del sample alternativo real
  2. el layer podia quedar persistido como si hubiera usado el asset global aunque el sample real fuese otro

Eso quedo cubierto con test real.

D. Habia dos bugs reales en las metricas de coherencia/repeticion

Codex ya corrigio:

  1. repetition_metrics agrupaba demasiadas fuentes como unknown
  2. la extraccion de pack en reference_listener.py devolvia valores basura como:
    • snare
    • pad
    • perc_loop

Eso hacia que:

  • dominant_packs quedara contaminado
  • la coherencia por buses fuera poco confiable
  • el analisis anti-loop perdiera precision

E. El foco correcto ya cambio

No quiero otro sprint centrado en:

  • reference fallback
  • hook inexistente
  • MCP blocker

Eso ya no es el cuello principal.

Ahora el cuello principal es:

  • coherencia musical real
  • coherencia de packs real
  • reducir la sensacion de misma cancion

3. Fixes ya aplicados por Codex en este turno

server.py

Codex agrego _extract_music_source_key() y lo conecto a repetition_metrics para que use metadata real de source/pack/path en vez de agrupar todo como unknown.

reference_listener.py

Codex unifico la extraccion de pack hacia _extract_pack_from_path() y corrigio heuristicas para reconocer mejor:

  • ss_rnbl
  • midilatino
  • sentimientolatino2025
  • reggaeton 3
  • bigcayu
  • dastin
  • drumloops

Ademas elimino la degradacion a nombres de rol como snare, kick, pad, perc_loop.

test_piano_forward.py

Codex endurecio tests para verificar:

  1. variacion armonica usando el sample real
  2. extraccion de source key desde paths reales
  3. extraccion de pack desde paths reales

GLM no debe revertir estos cambios.


4. Objetivo real del sprint

Con el hibrido ya recuperado, el objetivo ahora es elevar coherencia real y reducir la sensacion de track repetido.

Prioridades:

  1. mejorar coherencia armonica
  2. mejorar coherencia de packs por bus
  3. mantener creatividad sin volver al mismo tema
  4. conservar el flujo library-first-hybrid
  5. mantener cero vocales automaticas

5. Reglas no negociables

  1. Trabajar solo en el arbol canonico:

    • C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts
  2. No reabrir vocals automaticas.

  3. No romper el flujo recuperado:

    • reference_path presente
    • generation_mode = library-first-hybrid
    • mandatory_midi_hook.materialized = true
  4. No usar MCP blocker como comodin.

  5. No cerrar el sprint si las metricas mejoran solo por parsing pero el audio sigue igual.

  6. No aceptar dominant_packs con nombres de rol o placeholders.


6. Trabajo obligatorio para GLM

P0. Mejorar coherencia sobre el flujo hibrido que ya funciona

Tomar 8b43f096f954 como baseline real.

Objetivos minimos:

  • family_adherence_rate subir de 0.5 a >= 0.75
  • pack_coherence.overall subir de 0.375 a >= 0.6
  • mantener library-first-hybrid

P1. Arreglar coherencia de packs por bus de verdad

Usando los fixes de Codex ya integrados, GLM tiene que revisar por que:

  • drums
  • music
  • fx

siguen mezclando material de forma poco consistente.

Quiero especial foco en:

  • dominant_packs
  • pack_coherence
  • seleccion de drum layers
  • seleccion de material armonico principal

No me sirve una cancion donde:

  • el hook esta bien
  • pero drums/music/fx parecen venir de mundos distintos

P2. Reducir sensacion de misma cancion sin destruir coherencia

Ahora que synth_loop y bass_loop ya pueden variar:

  • validar que la diversidad se escuche en el material principal
  • no solo en FX y adornos

Tenes que demostrar contraste real entre:

  • intro
  • build
  • drop
  • break

pero sin bajar la coherencia armonica.

P3. Validar con metricas que ya no sean ciegas

Con los fixes de Codex, el proximo report ya no puede decir:

  • unknown para casi todo
  • dominant_pack inventado por rol

Tenes que mostrar:

  • source_distribution util
  • dominant_packs plausibles
  • pack_coherence consistente con el material seleccionado

P4. OpenCode / MCP

No hay que rediseñar la config. OpenCode hoy conecta.

Solo si vuelve a fallar, documenta:

  • comando exacto
  • hora
  • salida real
  • si opencode mcp list --print-logs conecta o no

Sin eso, no lo uses como blocker.


7. Casos de test obligatorios

Minimo tenes que dejar o endurecer tests para:

  1. dominant_packs no use nombres de rol como pack
  2. _extract_pack_from_path() resuelva tokens reales de libreria
  3. repetition_metrics.source_distribution no colapse en unknown
  4. pack_coherence mantenga shape correcto
  5. el flujo con referencia siga en library-first-hybrid
  6. el hook MIDI siga materializandose
  7. cero vocales automaticas siga estable

No borres tests de Codex.


8. Validacion final obligatoria

Al final del sprint tenes que generar una sesion nueva real con:

  • genre = reggaeton
  • style = perreo duro vieja escuela tipo safaera
  • referencia:
    • libreria\reggaeton\ejemplo.mp3

Y demostrar con session_id nuevo y persistido:

  1. reference_path presente
  2. generation_mode = library-first-hybrid
  3. mandatory_midi_hook.materialized = true
  4. piano_presence.piano_layer_count >= 1
  5. family_adherence_rate >= 0.75
  6. pack_coherence.overall >= 0.6
  7. repetition_metrics.verdict != repetitive
  8. cero vocals automaticas

Criterio auditivo obligatorio

En el report final tenes que explicar:

  1. que mejoro en coherencia respecto de 8b43f096f954
  2. que material principal dejo de sonar tan repetido
  3. por que la cancion sigue siendo una misma obra coherente y no un collage

Si no podes justificar eso claramente, no esta cerrado.


9. Formato obligatorio del validation report

El archivo final debe llamarse:

  • SPRINT_v0.1.25_VALIDATION_REPORT.md

Y debe tener estas secciones, en este orden:

  1. Runtime Truth
  2. Code Changes
  3. Bugs Fixed From Codex Review
  4. Fresh Session Evidence
  5. Manifest Metrics
  6. Coherence Delta vs 8b43f096f954
  7. Anti-Same-Song Validation
  8. Manual Vocal Policy Validation
  9. Open Issues
  10. Verdict

Reglas del report

  1. No decir que OpenCode esta bloqueado sin evidencia reproducible.
  2. No usar una sesion vieja si ya existe una mas nueva.
  3. No usar lenguaje hipotetico tipo should now.
  4. Si la coherencia sigue floja, decirlo.
  5. Si algun dominant pack sale con nombre de rol, marcarlo como bug.

10. Definicion de done real

Este sprint solo cierra si:

  1. el flujo hibrido sigue estable
  2. la coherencia sube de forma medible
  3. las metricas dejan de mentir sobre packs y fuentes
  4. la cancion deja de sentirse como la misma de siempre
  5. no reaparecen vocals automaticas

Si falla cualquiera de esos cinco puntos, no esta cerrado.