# Plan: Mejorar docmost-context para lectura selectiva

## Contexto

La skill `docmost-context` actual lee **todas** las páginas de alta prioridad sin límite. En un space con muchas páginas, esto desperdicia contexto en páginas que son importantes pero no críticas. El usuario quiere que el skill sea quirúrgico: listar páginas primero, identificar las verdaderamente clave (arquitectura, estructura, estilo de código, tecnologías) y leer solo esas.

El usuario confirmó un enfoque **combinado**: siempre leer las páginas clave de arquitectura/estructura, y además leer páginas relevantes al contexto de lo que el usuario va a hacer.

## Diseño propuesto

### Cambios principales

1. **Sistema de scoring en lugar de clasificación plana** — cada página recibe un score basado en múltiples factores, no solo keywords.

2. **Lectura en dos pasos**:
   - **Paso A**: Listar todas las páginas y calcular score (solo con `list_pages`, sin leer contenido)
   - **Paso B**: Leer solo las páginas seleccionadas por score

3. **Límite hard de 5 páginas completas** — nunca leer más de 5 páginas en detalle.

4. **Adaptación al contexto del usuario** — si el usuario menciona testing, deploy, database, etc., se aplica un bonus a las páginas relevantes a ese tema.

5. **Lectura parcial para páginas "importantes"** — en lugar de leer todas las de media prioridad, leer solo título + snippet y decidir si vale la pena leer más.

### Estructura del scoring

```
score = keyword_score + depth_score + name_quality + topic_bonus

keyword_score: 2 puntos por cada keyword que coincida (arquitectura, estructura, stack, etc.)
depth_score:   3 para páginas raíz, 2 para nivel 1, 1 para nivel 2, 0 para nivel 3+
name_quality:  1 si el nombre es significativo, 0 si es "Untitled" o vacío
topic_bonus:   2 si la página coincide con el tema del usuario (testing, deploy, etc.)
```

**Tiers:**
- **Crítico (score >= 8)**: Leer completo. Máximo 5 páginas.
- **Importante (score 4-7)**: Leer título + snippet. Expandir solo si el snippet es relevante.
- **Nice-to-know (score < 4)**: Solo anotar título. No leer contenido.

### Reglas de selección por tamaño del space

| Total páginas | Completas | Snippets | Ignorar |
|---|---|---|---|
| 0-3 | Todas | 0 | 0 |
| 4-10 | Top 3-5 | Resto | 0 |
| 11+ | Top 5 | Siguientes 5 | Resto |

### Temas del usuario (topic bonus)

| Tema | Keywords de bonus |
|---|---|
| Testing | test, jest, vitest, cypress, playwright, e2e |
| Deploy/CI | deploy, CI/CD, pipeline, docker, vercel, github actions |
| Database | database, schema, migration, prisma, drizzle, kysely |
| UI/Components | component, design system, tailwind, theme, layout |
| API | API, endpoint, route, controller, service |

### Cambios en el SKILL.md

El archivo `SKILL.md` se reestructura en:

1. **Secciones 1-3**: Detectar proyecto, listar spaces, buscar coincidencia — **sin cambios**.
2. **Sección 4 nueva**: "Dos pasos: puntuar y leer" — reemplaza la clasificación actual.
   - Paso A: Puntuar con la fórmula y los factores descritos arriba.
   - Paso B: Reglas de selección según tamaño del space.
   - Lectura parcial con contenido-gated expansion.
   - Bonus temático basado en el contexto del usuario.
3. **Sección 5**: "Leer solo lo seleccionado" — reemplaza la lectura actual de "todas las de alta prioridad".
4. **Sección 6**: "Reportar, no transcribir" — **sin cambios**.
5. **Sección 7**: "Una sola vez" — **sin cambios**.

### Archivo a modificar

- `/home/aleleba/.claude/skills/docmost-context/SKILL.md` — el único archivo a modificar.

## Verificación

1. Invocar la skill con `Skill` tool para verificar que:
   - El scoring produce resultados razonables.
   - El límite de 5 páginas se respeta.
   - La adaptación por tema funciona cuando el usuario menciona testing/deploy/etc.
   - Los edge cases (pocas páginas, muchas páginas, sin coincidencias) se manejan bien.
