## Asset Header

- **Asset ID:** TP-MPX-AI-SherpaOS-BCBDistiller-v01
- **Version:** v01
- **Status:** Draft
- **Owner:** Victor Heredia
- **IntellBank:** IB-MPX-MasterPlaybooks
- **Tipo:** TP — Transfer Packet
- **Propósito:** AI-SherpaOS-TP-BCBDistiller-v01
- **Última actualización:** 2026-04-11

---

# AI-SherpaOS-TP-BCBDistiller-v01

**Asset ID:** AI-SherpaOS-TP-BCBDistiller-v01

**Para:** Alex, Jesús, Gus

**De:** Victor Heredia + Sherpa IA

**Status:** Operativo | **Fecha:** 2026-04-08

**Propósito:** Actualizar el prompt maestro del Sherpa IA para usar los entregables del BCB Book Distiller en lugar de cargar libros completos. Incluye arquitectura de memoria, manejo de tokens y plan de implementación.

---

## 1. El problema que resuelve

Cargar un PDF o MADTOWN completo en el contexto del Sherpa es el antipatrón **"Dump and Pray"**: un libro de 300 páginas puede superar los 100,000 tokens de ruido mezclado con señal.

Incluso con ventanas de contexto grandes, el modelo pierde precisión en información ubicada en el centro del texto — fenómeno conocido como **"Lost in the Middle"**. Más contexto no es mejor contexto.

**La solución:** tres capas de memoria jerarquizada que reemplazan el libro completo con entre 800 y 6,000 tokens de señal pura.

---

## 2. Arquitectura de memoria — Las 3 capas BCB

```
┌─────────────────────────────────────────────────────────┐
│  CORE MEMORY          (~500–800 tokens)                 │
│  Siempre en el system prompt. El Sherpa la lleva        │
│  en cada conversación, sin importar el tema.            │
├─────────────────────────────────────────────────────────┤
│  WORKING MEMORY       (~3,000–5,000 tokens)             │
│  Se carga cuando la consulta del usuario es             │
│  relevante para ese libro. Condicional.                 │
├─────────────────────────────────────────────────────────┤
│  ARCHIVAL MEMORY      (modular / ilimitado)             │
│  Chunks por capítulo en el vector DB.                   │
│  Se recuperan por similitud semántica (RAG).            │
└─────────────────────────────────────────────────────────┘
```

**Regla del 80/20:** El Sherpa debe responder el 80% de las preguntas sobre un libro usando solo Core + Working Memory. El Archival Memory existe para profundidad quirúrgica — preguntas muy específicas sobre un capítulo o concepto concreto.

> ⚠️ **NUNCA cargar el libro completo.** Si el Archival Memory requiere más de 3 chunks por consulta, la destilación está incompleta. Volver a ejecutar las Pasadas 2 y 3 del Book Distiller.

---

## 3. Los entregables BCB — Qué es cada archivo

El destilador genera hasta 5 archivos por libro. Aquí está exactamente qué contiene cada uno y su función en el sistema:

| Archivo | Contenido | Rol en el sistema |
|---|---|---|
| `BCB-[LIBRO]-Core-Memory-v01.md` | Tesis central, 5 conceptos maestros, firma cognitiva del autor, Activation Prompt, anti-patrones. | Va en el system prompt. Siempre presente. |
| `BCB-[LIBRO]-Working-ConceptMap-v01.md` | Hasta 12 conceptos clave definidos en términos del propio autor, frameworks, relaciones entre conceptos. | Se inyecta cuando el libro es relevante a la consulta. |
| `BCB-[LIBRO]-Working-CognitiveStack-v01.md` | Lentes cognitivos, modelos mentales, principios invariantes, reglas de pensamiento, algoritmo cognitivo del autor. | Se inyecta junto al ConceptMap (Working Memory completa). |
| `BCB-[LIBRO]-Working-CrossSynthesis-v01.md` | Solo antologías: mapa temático, espectro de posiciones, argumento emergente, índice de navegación. | Reemplaza ConceptMap + CognitiveStack en modo antología. |
| `BCB-[LIBRO]-Archival-ChapterSnap-v01.md` | Un bloque por capítulo: argumento central, concepto clave, cita destacada, conexiones. | Se fragmenta en chunks en el vector DB. Recuperación por RAG. |

---

## 4. Cómo modificar el prompt maestro del Sherpa

La modificación al chatbot existente es mínima: se cambia la función que ensambla el contexto antes de llamar al LLM. No se reescribe el chatbot.

### 4.1 Estructura del prompt — ANTES (sin BCB)

```javascript
// ANTES — prompt actual (problema: demasiado ruido)
const prompt = [
  { role: 'system', content: systemInstructions },
  { role: 'system', content: fullBookContent },   // ← 50k–150k tokens de ruido
  { role: 'user',   content: userMessage }
];
```

### 4.2 Estructura del prompt — DESPUÉS (con BCB)

```javascript
// DESPUÉS — prompt con arquitectura BCB (señal pura)

// 1. Core Memory: siempre presente, cacheada al iniciar el Sherpa
const coreMemory = await loadFile('BCB-[LIBRO]-Core-Memory-v01.md');
// ~800 tokens — Se carga una sola vez al iniciar la sesión

// 2. Working Memory: condicional según relevancia
const isBookRelevant = await checkRelevance(userMessage, bookTopics);
const workingMemory = isBookRelevant
  ? await loadFile('BCB-[LIBRO]-Working-ConceptMap-v01.md')
    + await loadFile('BCB-[LIBRO]-Working-CognitiveStack-v01.md')
  : '';
// ~4,000–5,000 tokens adicionales — Solo cuando se necesita

// 3. Archival Memory: RAG sobre los chunks del ChapterSnap
const archivalChunks = await vectorSearch({
  query:     userMessage,
  filter:    { book: '[LIBRO]', source_type: 'bcb' },
  limit:     2,        // Máximo 2 chunks — no más
  threshold: 0.78      // Solo chunks con match semántico real
});
// ~400–800 tokens adicionales — Solo si hay match

// 4. Ensamblar prompt final
const prompt = [
  { role: 'system', content: systemInstructions },
  { role: 'system', content: coreMemory },
  { role: 'system', content: workingMemory },    // condicional
  { role: 'system', content: archivalChunks },   // condicional
  ...conversationHistory,
  { role: 'user',   content: userMessage }
];
```

### 4.3 Función checkRelevance — dos opciones

**Opción A — Keyword match (simple, recomendada para empezar)**

```javascript
// Rápido, sin costo de tokens extra
async function checkRelevance(userMessage, bookTopics) {
  const msg = userMessage.toLowerCase();
  return bookTopics.some(topic => msg.includes(topic));
}

// bookTopics se extrae de la Core Memory al cargarla.
// Ejemplo para Human Design:
const bookTopics = [
  'human design', 'diseño humano', 'autoridad', 'tipo', 'estrategia',
  'perfil', 'centros', 'canales', 'definición', 'mandala'
];
```

**Opción B — Embedding similarity (más preciso)**

```javascript
// Mayor precisión, costo mínimo (~0.0001 USD por consulta)
async function checkRelevance(userMessage, bookEmbedding) {
  const msgEmbedding = await getEmbedding(userMessage);
  const similarity = cosineSimilarity(msgEmbedding, bookEmbedding);
  return similarity > 0.65;  // Ajustar umbral según el libro
}
// bookEmbedding: embedding pre-calculado del párrafo de tesis del Core Memory.
// Se calcula una sola vez al indexar el libro.
```

---

## 5. Indexación del Archival Memory en el vector DB

El archivo `BCB-[LIBRO]-Archival-ChapterSnap-v01.md` debe fragmentarse en chunks individuales (uno por capítulo) y cargarse en MySQL/Supabase con metadatos enriquecidos.

### 5.1 Schema de metadatos por chunk

```javascript
{
  id:        'bcb-humandesign-cap03',
  content:   '...',   // El bloque del capítulo destilado
  embedding: [...],   // Vector: text-embedding-3-small
  metadata: {
    source_type:   'bcb',                          // Diferencia de playbook chunks
    book_id:       'human-design',
    book_title:    'Código Estratégico de Vida',
    chapter:       3,
    chapter_title: 'Los Tipos y sus Estrategias',
    key_concept:   'Estrategia de Tipo',
    topics:        ['tipo', 'estrategia', 'respuesta emocional']
  }
}
```

### 5.2 Script de indexación

```javascript
const fs = require('fs');

async function indexChapterSnap(filePath, bookId, bookTitle) {
  const content  = fs.readFileSync(filePath, 'utf8');
  // Separar en bloques por capítulo — delimitador: línea '---'
  const chapters = content.split(/^---$/m).filter(Boolean);

  for (let i = 0; i < chapters.length; i++) {
    const chapterText = chapters[i].trim();
    const embedding   = await getEmbedding(chapterText);

    await db.insert({
      id:        `bcb-${bookId}-cap${String(i + 1).padStart(2, '0')}`,
      content:   chapterText,
      embedding,
      metadata: {
        source_type: 'bcb',
        book_id:     bookId,
        book_title:  bookTitle,
        chapter:     i + 1,
      }
    });

    console.log(`Indexed chapter ${i + 1} of ${chapters.length}`);
  }
}

// Llamada:
indexChapterSnap(
  './BCB-HumanDesign-Archival-ChapterSnap-v01.md',
  'human-design',
  'Código Estratégico de Vida'
);
```

---

## 6. Optimización de tokens — El impacto real

| Componente | ANTES (libro completo) | DESPUÉS (BCB) |
|---|---|---|
| Sistema base | ~2,000 tokens | ~2,000 tokens |
| Conocimiento del libro | 80,000–150,000 tokens | 800 tokens (Core, siempre) |
| Contexto adicional | — | 0–5,000 tokens (Working, condicional) |
| RAG chunks | No aplica | 0–800 tokens (Archival, condicional) |
| Historial de conversación | ~3,000 tokens | ~3,000 tokens |
| **TOTAL POR CICLO** | **~85,000–155,000 tokens** | **~5,800–11,600 tokens** |
| **Ahorro estimado** | — | **85–93% reducción** |

A ~$3 por millón de tokens de input (Claude Sonnet), el ahorro es de $0.24–$0.43 por conversación. A 1,000 conversaciones diarias: entre $240 y $430 de ahorro diario.

---

## 7. Reglas de configuración del system prompt

### 7.1 Orden obligatorio de bloques

```
// El modelo presta más atención al inicio y al final del contexto.
// NUNCA intercalar historial de conversación entre bloques de libro.

1. [system]  Instrucciones base del Sherpa (quién es, cómo responde)
2. [system]  CORE MEMORY del libro                ← SIEMPRE PRIMERO
3. [system]  WORKING MEMORY (si es relevante)     ← DESPUÉS DEL CORE
4. [system]  ARCHIVAL CHUNKS (si hay match RAG)   ← AL FINAL del contexto
5. [user/assistant] Historial de conversación
6. [user]    Mensaje actual del usuario            ← SIEMPRE AL FINAL
```

### 7.2 Template del system prompt con BCB

```javascript
const systemPrompt = `
Eres el Sherpa IA de MasterPlaybooks, especializado en guiar a CEO y
emprendedores a implementar las metodologías de sus playbooks.

=== CONOCIMIENTO BASE: [TÍTULO DEL LIBRO] ===
${coreMemory}

${workingMemory ? `=== CONTEXTO EXTENDIDO ===\n${workingMemory}` : ''}

${archivalChunks ? `=== REFERENCIA ESPECÍFICA ===\n${archivalChunks}` : ''}

Usa el conocimiento anterior para responder con precisión.
Si la respuesta no está en el contexto proporcionado, dilo claramente
en lugar de inventar información.
`;
```

### 7.3 Parámetros de recuperación RAG

| Parámetro | Valor recomendado | Razón |
|---|---|---|
| Límite de chunks | 2 máximo | Más de 2 introduce ruido y degrada la precisión |
| Umbral de similitud | 0.75–0.80 | Por debajo de 0.75 los chunks son irrelevantes |
| Filtro de metadata | `book_id` + `source_type='bcb'` | Evita mezclar chunks de libro con chunks de playbook |
| Modelo de embedding | `text-embedding-3-small` | Consistencia: mismo modelo usado al indexar |
| Posición en el prompt | Después de Working Memory | Efecto de recencia: chunks al final del contexto |

---

## 8. Plan de implementación — 3 días

### Día 1 — Preparar los archivos BCB

1. Recibir de Victor los archivos BCB del libro a integrar (Core, Working, Archival).
2. Verificar límites de tokens: Core < 900, Working < 5,500.
3. Fragmentar el ChapterSnap en bloques separados por el delimitador `---`.
4. Ejecutar el script de indexación (Sección 5.2) con metadatos BCB.

### Día 2 — Modificar el constructor de prompts

1. Localizar la función que ensambla el prompt antes de llamar al LLM.
2. Implementar `loadCoreMemory()`: leer el archivo Core Memory y cachearlo al iniciar el Sherpa.
3. Implementar `checkRelevance()` con Opción A (keyword match) como primera versión.
4. Implementar `loadWorkingMemory()`: concatenar ConceptMap + CognitiveStack cuando `checkRelevance()` es `true`.
5. Modificar la llamada RAG para filtrar por `source_type='bcb'` y limitar a 2 chunks con umbral 0.75.
6. Actualizar el template del system prompt con el orden definido en la Sección 7.1.

### Día 3 — Testing y calibración

1. Preparar 10 preguntas de prueba: 5 que el Core Memory debe responder solo, 3 que requieran Working Memory, 2 que requieran Archival (RAG).
2. Verificar que los conteos de tokens por ciclo estén dentro de los rangos de la Sección 6.
3. Ajustar el umbral de relevancia y el umbral de similitud RAG según los resultados.
4. Si alguna pregunta del Core Memory falla, la destilación está incompleta — re-destilar.

> **Checklist de Go-Live:**
> - [ ] Core Memory < 900 tokens
> - [ ] Working Memory < 5,500 tokens
> - [ ] RAG no retorna más de 2 chunks por consulta
> - [ ] El Sherpa responde correctamente las 10 preguntas de prueba sin cargar el libro completo
> - [ ] Los chunks en el DB tienen metadatos `source_type='bcb'` correctamente asignados

---

## 9. Glosario

| Término | Definición |
|---|---|
| **BCB** | Brain Code Books — categoría de assets con el conocimiento destilado de libros y antologías. |
| **Core Memory** | Fragmento mínimo irreducible de un libro. Siempre en el system prompt. |
| **Working Memory** | Frameworks y modelos del autor. Carga condicional según relevancia. |
| **Archival Memory** | Chunks por capítulo en el vector DB. Recuperados por RAG. |
| **Book Distiller** | Pipeline de 4 pasadas (`BCB-TP-BookDistiller-v01`) que genera los 3 outputs de memoria. |
| **Dump and Pray** | Antipatrón: cargar el libro completo esperando que el modelo lo entienda. |
| **Lost in the Middle** | Fenómeno donde el LLM pierde atención a información en el centro del contexto. |
| **RAG** | Retrieval-Augmented Generation — recuperación semántica de fragmentos antes de generar la respuesta. |
| **Threshold** | Valor mínimo de similitud semántica para incluir un chunk en el prompt. |

---

## 10. Documentos de referencia

| Asset ID | Descripción | Ubicación |
|---|---|---|
| `BCB-TP-BookDistiller-v01.md` | El destilador — pipeline de 4 pasadas para libros y antologías. | `BC-BrainCodes/` |
| `AI-SherpaOS-TP-Alex-Implementacion-v01.md` | Arquitectura técnica del Sherpa OS — Modos 1, 2 y 3. | `AI Sherpa OS/` |
| `ai_sherpa_os_canonical_v0.1.md` | Documento canónico del sistema — principios y flujo operativo. | `AI Sherpa OS/` |
| `BCV-Context Engineering y Memoria Virtual.md` | Brain Code sobre Context Engineering y jerarquía de memoria. | `BC-BrainCodes/` |

---

_`AI-SherpaOS-TP-BCBDistiller-v01` · EmpowerLabs / MasterPlaybooks · 2026-04-08_

_Generado por Victor Heredia + Sherpa IA — Intelligence Distiller Design Room_
