Sync: Complete project state with all MEGA SPRINT V1-V3 features and Codex stubs

This commit is contained in:
renato97
2026-04-08 17:58:47 -03:00
parent c9d3528900
commit 6d080d43b3
372 changed files with 189715 additions and 8590 deletions

View File

@@ -0,0 +1,357 @@
# 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](C:\Users\ren\.abletonmcp_ai\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.