# INSTRUCCIONES ESTRICTAS PARA KIMI - GRANULAR SPRINT PART 2
**Destinatario:** KIMI (K2.5 u otro modelo executor)
**Orquestador:** Antigravity (tu supervisor de software)
**Fecha:** 2026-04-05

¡Hola, Kimi! Soy el arquitecto del proyecto. Necesito que te encargues de ejecutar el **100% de las tareas** descritas en el archivo maestro:
📁 `docs/GRANULAR_SPRINT_PART2_T101_T200.md`

Antes de empezar a programar y realizar modificaciones, debes grabar a fuego las siguientes **Reglas Críticas de Sistema** para este Sprint, ya que estarás modificando la base estructural del servidor MCP de Ableton:

## 1. Contexto de Entorno (¡NO ESTAMOS EN WSL!)
En el sprint anterior hiciste un gran trabajo implementando el motor espectral, pero **modificaste `server.py` y `abletonmcp_init.py` para usar WSL (0.0.0.0 y parseo de IPs en bash)**. 
- ❌ **YO YA LO REVERTÍ.** He devuelto todo a nativo Windows (`HOST = "127.0.0.1"`). 
- **NO INTENTES** bajo ningún concepto volver a tocar el `HOST` para WSL, ni usar rutas de Linux (`/mnt/c/...`). Quédate en modo Windows Nativo Absoluto (`C:\ProgramData\...`).

## 2. Precaución con la Indentación en Python (¡BUG CRÍTICO PREVIO!)
En la **Tarea 46** del sprint de ayer, creaste la función `_create_clap_pattern` en `song_generator.py` pero la insertaste en el "NIVEL RAIZ" (columna 0), destruyendo por completo la clase y generando un `IndentationError` masivo que inhabilitaba el servidor entero.
- ❌ NO repitas este error. 
- ✔️ Cuando agregues métodos de clase, asegúrate de añadir **exactamente 4 espacios iniciales** (`    def mi_metodo(self):`). Revisa tus reemplazos de texto cuidadosamente.

## 3. Manejo de "Access Denied" en `coherence_analyzer.py`
Han quedado tareas "colgadas" (T072 - T080 relacionadas con `MirrorSectionMetric`) del Bloque D del informe. 
- Intenta hacerlas aplicando tus reemplazos al archivo `coherence_analyzer.py` pero **SI OpenCode te arroja `Access Denied` o permisos insuficientes... IGNÓRALO**. 
- No te enfrasques intentando usar powershell o comandos administrativos para sobreescribirlo si el sistema se resiste. Simplemente anótalo en tu reporte final como "Requiere bypass de usuario por bloqueo Admin" y **salta directamente a avanzar la Tarea T101**. No destruyas tu ejecución por culpa de ese archivo.

## 4. Librosa y Errores de Numba Caching
Cuando llegues a la parte de añadir `extract_grain()` y demás bondades de Texturización Granular (Bloque G), vas a lidiar con `librosa`. 
- Durante la ejecución o testeo de librerías, es muy posible que Python lance un Warning `PermissionError: [Errno 13] Permission denied: 'C:\Python314\Lib\site-packages\numba...'` buscando grabar caché.
- Es completamente normal en un entorno no-administrador. Usa tus "Graceful Fallbacks" (tus envoltorios de bloque try/except) que ya pusiste para `librosa` para que el código **no crashee la ejecución real ni cuelgue los scripts al ser testeado**, tal y como te lo dictamina la T140.

---

## 🚀 PASOS A SEGUIR AHORA MISMO

1. **Lectura Completa:** Abre y lee todo `docs/GRANULAR_SPRINT_PART2_T101_T200.md`.
2. **Implementación Secuencial:** Ve haciéndolo por Bloques. Tu lista incluye tareas extensas (T101 a T200):
   - **Bloque F:** Gain Staging. Todo se define en `sample_selector.py` y validación de outputs.
   - **Bloque G:** Escribe un archivo COM-PLE-TA-MEN-TE NUEVO para `melody_generator.py`. Lee los requerimientos del plan y mapea toda la generación de acordes.
   - **Bloque H:** Automatizaciones y FX en `arrangement_intelligence.py` (Crashes, Builds, etc).
   - **Bloque I & J:** Setup final, QA Post-Master y tests.
3. **No uses `bash` de Linux para tests, usa Pytest** pero acuérdate que como estamos en Windows usa:
   - `python -m unittest discover tests\` en lugar de `pytest` si este último dice que el módulo no se encuentra. También usa la compilación nativa de python: `python -m py_compile module.py`.
4. **Reporte Final:** Escribe un reporte en `docs/SPRINT_GRANULAR_PART2_COMPLETION_REPORT.md` igual de detallado que el de ayer.

Entendido esto: ¡Arranca tu análisis, procesa el Sprint maestro al pie de la letra y demuestra por qué te contratamos! 🛠️
