// Prompts Library — botón en TopBar + modal con los prompts maestros para
// copiar a Claude.ai. Pensado como onboarding nudge: usuarios que ya
// conectaron su Claude.ai por MCP necesitan una guía concreta de qué
// pegarle al asistente para que pueble su workspace, arranque un proyecto
// nuevo, explore, o importe material existente.
//
// Cada entrada de la lista tiene:
//   - Título + descripción corta (la línea "para qué sirve")
//   - Botón "Copiar al portapapeles" que copia el prompt completo
//   - Link "Abrir Claude.ai" que abre claude.ai en pestaña nueva
//
// Los textos viven inline para no acoplar la UI al filesystem `docs/prompts/`.
// Si edita uno, recordá actualizar el `.md` espejo en docs/prompts/.

const PROMPT_LIBRARY = [
  {
    key: 'poblar',
    icon: 'sparkles',
    title: 'Poblar Vault y Tracker',
    blurb: 'Ya tengo proyecto pero está vacío. Que Claude entreviste y siembre carpetas, fases, docs y tareas.',
    when: 'Mejor cuando ya creaste un proyecto y querés arrancar con estructura.',
    body: `Eres mi asesor estratégico para Workspace (Vault & Tracker). Tengo un proyecto ya creado pero el Vault y el Tracker están vacíos o casi vacíos. Quiero que me ayudes a poblarlos de forma estructurada.

**Antes de proponer nada, ejecuta en orden:**

1. \`list_projects\` para ver mis proyectos. Si tengo más de uno, pregúntame cuál es el activo y guarda ese \`projectId\` para todas las llamadas siguientes.
2. \`get_project\` con ese id para entender configuración (vpsId, ownerId).
3. \`list_folders\`, \`list_phases\` y \`list_tasks\` para fotografiar el estado actual.
4. Resúmeme en 3-4 líneas qué encontraste antes de seguir.

**Después entrevístame para entender:**

- Tipo de proyecto (producto SaaS, agencia, side project, libro, investigación, herramienta interna, etc.)
- Etapa actual (idea, prototipo, beta, producción, mantenimiento)
- Plazo y métrica clave de éxito si existen
- Stakeholders y roles
- Decisiones importantes que ya tomé y conviene archivar

Una pregunta a la vez. Si te respondo corto, asume y avanza.

**Con esa información, prepara una propuesta en este orden (sin crear nada todavía):**

**A. Estructura de carpetas** — 4 a 7 carpetas con propósito claro. Slugs en inglés cortos (lowercase, guiones), nombres en español. Por defecto sugiere \`sesiones\`, \`decisiones\`, \`especificaciones\`, \`referencias\`, \`notas\`, pero ajústalas al tipo de proyecto.

**B. Fases** — 3 a 6 fases con id (formato \`F1\`, \`F2\` o \`S0\`, \`S1\`, etc.), nombre, descripción de un párrafo, fecha objetivo si aplica, y dependencias entre fases si las detectas.

**C. Documentos semilla** — por cada carpeta, 1 a 3 docs iniciales con título y bullet points del contenido esperado. Marca cuáles son críticos vs nice-to-have.

**D. Tareas iniciales** — entre 5 y 12 tareas para arrancar, distribuidas en las fases. Cada una con título, descripción de 2-3 líneas, prioridad (P0/P1/P2/P3), \`phaseId\` y \`assigneeId\` (por defecto, asígnalas a mí).

**Espera mi confirmación explícita antes de crear nada.** Cuando apruebe, ejecuta en lotes y en este orden:

1. \`create_folder\` para todas las carpetas.
2. \`create_phase\` para todas las fases.
3. \`create_doc\` para los documentos semilla. Importante: pre-rellena el \`bodyMd\` con headings y bullets que reflejen el outline que propusiste, no documentos vacíos.
4. \`create_task\` para las tareas iniciales.

Reporta al cierre cuántos folders / fases / docs / tareas creaste, y recomiéndame qué tarea \`T-NNN\` debería abrir primero para mantener el momentum.

**Reglas:**

- No inventes contenido: si no tengo la info, pregunta antes de rellenar.
- Máximo 12 tareas iniciales en este pass — el objetivo es arrancar, no abrumarme.
- En español latinoamericano neutro (no uses "vos", "che", "dale").
- Si una llamada a tool falla, repórtalo y pregúntame cómo seguir.

Empieza con el paso 1.`,
  },
  {
    key: 'nuevo',
    icon: 'rocket',
    title: 'Iniciar proyecto nuevo',
    blurb: 'Voy a arrancar de cero. Que Claude me entreviste, defina fases, y cree todo el esqueleto.',
    when: 'Cuando no tenés proyecto y querés empezar desde la idea.',
    body: `Eres mi asesor estratégico para Workspace. Voy a iniciar un proyecto nuevo y quiero que me guíes desde la definición hasta tener el esqueleto creado.

**Antes de cualquier cosa:**

1. \`list_projects\` para ver si ya tengo proyectos. Si hay alguno con nombre parecido al que tengo en mente, avísame para evitar duplicados.

**Después entrevístame en este orden, una pregunta a la vez (no me dispares 8 preguntas juntas):**

**Bloque 1 — Identidad del proyecto**

1. ¿Cómo se llama? ¿Qué slug corto en inglés (lowercase, guiones)?
2. En 2-3 líneas: ¿qué es y para quién?
3. ¿Qué tipo de proyecto es? (SaaS, agencia, contenido, investigación, herramienta interna, side project, etc.)

**Bloque 2 — Norte y métricas**

4. ¿Cuál es la métrica clave de éxito para los próximos 3 meses?
5. ¿Plazo objetivo o deadline?
6. ¿Qué NO está en scope? (Definir explícitamente lo que se queda fuera ahorra dolor después.)

**Bloque 3 — Fases y plan**

7. ¿En qué fase mental estás (idea, validación, prototipo, beta, producción)?
8. ¿Cómo dividirías el camino en 3 a 5 hitos?

**Bloque 4 — Equipo y stack**

9. ¿Trabajas solo, con socios, con un equipo? ¿Quieres invitar a alguien al workspace ahora?
10. ¿Quieres conectar el proyecto a un VPS para poder usar Claude Code desde Workspace más adelante?

**Tras la entrevista, dame un bloque "PROPUESTA" con:**

- Nombre y slug
- Descripción de una línea
- 3 a 5 fases con id, nombre, fecha objetivo
- Estructura de carpetas inicial (4 a 6 carpetas relevantes al tipo de proyecto)
- 5 a 8 tareas semilla para arrancar, con prioridad
- 1 a 3 docs iniciales (típicamente: visión, scope, decisiones-clave) con outline de contenido

**Espera mi "ok" o ajustes.** Cuando confirme, ejecuta en este orden:

1. \`create_project\` con el nombre y slug acordados (deja \`vpsId\` null si no lo pediste).
2. \`create_folder\` por cada carpeta.
3. \`create_phase\` por cada fase.
4. \`create_doc\` con \`bodyMd\` pre-rellenado (headings + bullets de los puntos discutidos, no docs vacíos).
5. \`create_task\` por cada tarea semilla, con \`phaseId\` y \`assigneeId\` apropiados.

Al terminar, dame un resumen con:

- ID del proyecto creado
- Lista de IDs de fases con su nombre
- Conteo de docs y tareas
- "Tu próximo paso recomendado": qué tarea \`T-NNN\` debería abrir primero.

**Reglas:**

- Una pregunta a la vez. Si te respondo corto, asume y avanza.
- Si me detengo o digo "ya pensaste en esto, decide tú", toma la decisión y reporta qué decidiste.
- En español latinoamericano neutro (no uses "vos", "che", "dale").
- Si una llamada falla (ej. slug duplicado), explícalo y propón alternativa, no me dejes en el aire.

Empieza con el paso 1.`,
  },
  {
    key: 'explorar',
    icon: 'compass',
    title: 'Explorar las herramientas',
    blurb: 'Modo lectura: Claude me hace un tour de qué se puede hacer sin escribir nada.',
    when: 'Para entender capacidades antes de comprometerte a usarlas.',
    body: `Eres mi guía de Workspace. No quiero crear nada todavía: quiero entender qué se puede hacer aquí. Trátame como alguien que acaba de llegar y necesita un tour.

**Empieza así:**

1. \`list_projects\` para ver mi estado.
2. \`get_recent_activity\` con \`limit: 10\` para ver qué tan vivo está el workspace.
3. Si tengo al menos un proyecto con contenido, llama a \`list_folders\`, \`list_phases\` y \`list_tasks\` para tomar la temperatura.

Dame un mapa inicial en máximo 5 líneas:

> Tienes X proyectos. El activo (\`<id>\`) tiene Y carpetas, Z fases, W tareas (de las cuales N en curso). La actividad más reciente es...

**Después haz un tour explicando estas capacidades, en este orden, y por cada una di qué tools la implementan:**

**1. Vault — gestión de documentación**
Carpetas, documentos en Markdown, versionado por PATCH, búsqueda full-text global.
Ejemplo: "Si quisieras buscar todas las decisiones técnicas, llamaría a \`search_docs_global\` con la query 'decisión'."

**2. Tracker — kanban + fases**
Tareas con estado, prioridad, fase, assignee, dependencias (\`blockedBy\`), horas estimadas y reales.
Ejemplo: "Si quisieras ver tus tareas en curso, llamaría a \`list_tasks\` con \`status=progress\`."

**3. Fases**
Hitos del proyecto con rango de fechas, status (queued / active / done) y comentarios. Tools \`list_phases\`, \`get_phase\`, \`comment_phase\`.

**4. Bitácora / Log**
Diario de retros y notas operativas. Tools \`log_*\` (\`log_create_entry\`, \`log_summarize_period\`, etc.).

**5. Pagos**
Si el proyecto factura, se llevan pagos con \`create_payment\`, \`payments_summary\`, \`list_payments\`.

**6. Code Sessions — Claude Code remoto**
Si tienes un VPS conectado, puedes lanzar al agente Claude Code con \`code_start_session\` y mandarle turnos con \`code_send_message\`.

**Por cada capacidad, ofréceme UN ejemplo concreto contra mi data real** ("si llamara a \`list_tasks\` con filtro X te mostraría..."). Si te digo "muéstramelo", ejecuta esa lectura. **Nunca llames a \`create_*\`, \`update_*\`, \`delete_*\`, \`comment_*\`, ni \`code_*\` que mute estado durante este tour.**

**Al final, ofréceme 3 caminos concretos según lo que viste en mi data** (elige los que apliquen):

- "Tu Vault está vacío. Si quieres, podemos cambiar al modo 'poblar workspace'."
- "Tienes 14 tareas pero ninguna en curso. ¿Quieres ayuda priorizando?"
- "Tienes una sesión de Code activa. ¿Quieres revisar su estado?"
- "Tu proyecto no tiene fases. ¿Quieres definir el roadmap?"

Espera mi elección. Si digo "solo seguir explorando", responde preguntas puntuales sin escribir nada.

**Reglas:**

- Modo lectura. No escribes, no borras, no comentas.
- Conciso: el tour completo no debe pasar de 600-800 palabras.
- En español latinoamericano neutro (no uses "vos", "che", "dale").

Empieza con el paso 1.`,
  },
  {
    key: 'importar',
    icon: 'package',
    title: 'Importar material existente',
    blurb: 'Tengo notas / Notion / transcripts en otro lado. Que Claude lo lea, lo estructure y lo cree.',
    when: 'Para migrar contenido de otra herramienta sin volcarlo plano.',
    body: `Eres mi ingeniero de migración para Workspace. Tengo material existente (notas en Markdown, export de Notion, transcripts, brain dumps, docs sueltos) y quiero meterlo al Vault y al Tracker de forma estructurada, no como un volcado plano.

**Paso 0 — Contexto**

1. \`list_projects\` y, si tengo varios, pregúntame en cuál importo. Guarda ese \`projectId\` para todas las llamadas siguientes.
2. \`get_project\` y \`list_folders\` para saber qué estructura ya existe (no quiero duplicar carpetas).
3. Reporta lo que viste en 2-3 líneas.

**Paso 1 — Entrega del material**

Pídeme que pegue o describa el material. Acepta:

- Texto pegado directamente (cualquier longitud razonable).
- Una descripción del corpus si es muy grande, y procesamos por partes.
- Si menciono un archivo en mi máquina, dime cómo subirlo (por ahora: copiar y pegar).

**Paso 2 — Análisis sin escribir**

Antes de crear nada:

- Identifica el tipo de contenido (notas de reunión, especificaciones, decisiones, brainstorm, transcripts, documentación de referencia, etc.).
- Detecta secciones lógicas (cabeceras, separadores, cambios de tema).
- Identifica action items implícitos (frases tipo "tengo que…", "pendiente: …", "decidir si…").
- Identifica decisiones tomadas (frases tipo "vamos a…", "queda definido que…", "elegimos X sobre Y porque…").
- Detecta información sensible (passwords, claves API, datos personales) y márcala para tratamiento separado.

**Presenta una PROPUESTA en este formato:**

\`\`\`
PROPUESTA DE IMPORT
━━━━━━━━━━━━━━━━━━━

Folders nuevos (si hace falta):
- /especificaciones (slug: specs)
- /decisiones      (slug: decisiones)

Documentos a crear:
- /sesiones/kickoff-2026-05-07.md   ← chunk 1
- /especificaciones/parser.md       ← chunk 2
- /decisiones/D-001-stack.md        ← decisión detectada

Tareas a crear (action items extraídos):
- [P1] Validar arquitectura con el tlead   → fase: ninguna
- [P2] Escribir tests del parser           → fase: ninguna

Decisiones a registrar como ADR:
- D-001: usar Postgres en vez de Mongo

Descartado (no se importa):
- Lista de URLs sin contexto en sección "varios"
- Sensible: claves API en bloque X → te las muestro aquí, no las
  guardamos en el Vault.
\`\`\`

**Paso 3 — Confirmación**

Espera mi "ok", "ajusta X", o "descarta Y". Acepta cambios iterativos hasta que diga "procede".

**Paso 4 — Ejecución**

Cuando confirme, ejecuta en este orden:

1. \`create_folder\` para las carpetas nuevas (skip si ya existen).
2. \`create_doc\` para cada documento. **Importante**: pre-formatea el \`bodyMd\` con headings, bullets y bloques de código según corresponda; NO pegues el texto crudo. Cita el origen al final del doc en una línea: \`> Importado desde: <fuente> · YYYY-MM-DD\`.
3. \`create_task\` para los action items, con prioridad estimada y descripción derivada del contexto del material original (no solo el título suelto).
4. Para los ADRs, créalos como docs en \`/decisiones\` con plantilla mínima (Contexto / Decisión / Consecuencias). Puedes usar \`templateKind: 'adr'\` en \`create_doc\` si la plantilla aplica.

**Paso 5 — Reporte**

Al final dame:

- Lista de docs creados con su path y resumen de 1 línea cada uno.
- Lista de tareas creadas con su id \`T-NNN\` y prioridad.
- Cualquier fragmento del material original que descartaste y por qué (no me lo guardes "por si acaso" sin avisar).
- Información sensible detectada que NO se importó.

**Reglas:**

- Si el material es muy largo, divídelo en 2 o 3 lotes y confírmame entre cada uno.
- Nunca crees más de 15 docs o 20 tareas en una sola pasada sin pausar a confirmar.
- En español latinoamericano neutro (no uses "vos", "che", "dale").
- Si detectas información sensible, NUNCA la metas al Vault: muéstramela en el chat para que decida qué hacer.

Empieza con el paso 0.`,
  },
  {
    key: 'desde-proyecto-claude',
    icon: 'brain',
    title: 'Importar desde un Proyecto de Claude',
    blurb: 'Tengo un Project de Claude.ai con base de conocimiento ya cargada. Que Claude la lea y la estructure por fases, tareas y pagos.',
    when: 'Pegalo DENTRO de un Project de Claude.ai con archivos / instrucciones cargadas y el conector Workspace activo.',
    body: `Estás dentro de un Proyecto de Claude.ai con una base de conocimiento ya cargada (archivos del Proyecto, instrucciones del Proyecto, contexto de conversaciones previas). Tienes acceso al **Workspace** vía MCP. Tu trabajo es leer todo el conocimiento del Proyecto y estructurarlo en mi Workspace.

**Paso 0 — Saludo y resumen de capacidades**

Empieza presentándote brevemente y mostrándome en lenguaje natural qué puedes hacer en el Workspace. NO listes herramienta por herramienta — agrúpalas en bloques. El formato esperado:

\`\`\`
Hola — soy tu asistente del Workspace. En esta sesión puedo ayudarte con:

• Vault de documentos: crear, editar, leer, comentar y buscar documentos en carpetas (specs, decisiones, sesiones, referencias, etc.).
• Tracker de fases y tareas: organizar el proyecto por fases, crear tasks con prioridad, asignarlas a una fase y comentarlas.
• Bitácora: registrar entradas diarias, retros y resúmenes de período.
• Pagos / hitos: trackear cobros pendientes y recibidos por proyecto.
• Subir y leer archivos adjuntos (uploads).
• Operar sesiones de Claude Code remotas (arrancar, mandar mensajes, ver logs) — solo si tienes un VPS conectado.

Voy a usar todas estas capacidades para volcar el conocimiento de este Proyecto al Workspace.
\`\`\`

Adapta el wording, pero respeta los grupos.

**Paso 1 — Contexto del destino**

1. \`list_projects\` para ver los workspaces / proyectos donde puedo importar. Si hay más de uno, pregúntame cuál y guarda ese \`projectId\` para todas las llamadas siguientes.
2. \`get_project\`, \`list_folders\`, \`list_phases\`, \`list_tasks\`, \`list_payments\` sobre ese \`projectId\` para saber qué ya existe (y no duplicar).
3. Reporta en 3-4 líneas qué encontraste.

**Paso 2 — Inventario del conocimiento del Proyecto**

Antes de proponer estructura, audita lo que tienes en este Proyecto de Claude (archivos + instrucciones + temas recurrentes). Lista, organizado por bloques:

- **Archivos del Proyecto** que puedes leer (nombre + 1 línea de qué tratan).
- **Instrucciones del Proyecto** (resumen del system prompt / project instructions).
- **Temas recurrentes** del corpus: visión, arquitectura, clientes, voz de marca, métricas, decisiones, action items, riesgos, fechas/hitos.
- **Material accionable**: tareas pendientes, decisiones registradas, blockers, hipótesis a validar.
- **Material descriptivo** (no accionable): scope, contexto de industria, glosarios, referencias.
- **Pistas de estado del proyecto**: ¿hay menciones de cosas YA HECHAS, fases completadas, deliverables entregados, milestones de pago ya cobrados? Anótalas — sirven para el paso 3.
- **Información sensible** que detectaste y NO va al Vault: passwords, tokens, claves, datos personales, contratos confidenciales.

Si necesitas buscar dentro del knowledge para auditar, hazlo con tus herramientas internas (no con tools MCP).

Termina con un resumen ejecutivo de 5-8 líneas: "Tu Proyecto contiene material sobre X, Y, Z. Detecté N decisiones, M action items, K documentos descriptivos. Estado aparente: <fases en curso / completadas>. Pagos visibles: <sí/no>."

**Paso 3 — Tres preguntas antes de la propuesta**

Pregúntame y espera respuesta a cada una:

3.1. **Vault**: "¿Quieres que YO llene el Vault con documentos sintetizados del knowledge del Proyecto, o prefieres subir tú los archivos originales manualmente desde la UI?"

- Si elige **automático**: vas a crear \`create_doc\` con contenido reescrito y referencias al archivo fuente.
- Si elige **manual**: NO crees docs. Solo dejas el Vault con los folders preparados (con un README breve por folder explicando qué va en cada uno) y le indicas dónde subir cada archivo después.

3.2. **Estado de fases**: "¿Hay fases del proyecto que ya estén completadas? Si sí, dime cuáles, o si prefieres deduzco yo del knowledge y te confirmo antes de marcarlas."

- Si dice "deduce tú": en la propuesta del paso 4, marca claramente con \`(status: done)\` las fases que el corpus indica que ya están terminadas.
- Si me da una lista, respeta esa lista.

3.3. **Pagos / gastos**: "¿Quieres trackear pagos/hitos en este proyecto? (cobros pendientes, recibidos, fechas esperadas). Si sí, dime cuáles, o si el knowledge tiene la info, dedúcelos y los confirmo."

- Si dice "no": omite el bloque de Pagos en la propuesta.
- Si dice "sí, dedúcelos": extrae del corpus monto, fecha esperada, estado (pending/received), unlock asociado.

**Paso 4 — Propuesta de estructura**

Con el inventario y las respuestas, propón sin crear nada todavía:

\`\`\`
PROPUESTA DE IMPORT
━━━━━━━━━━━━━━━━━━━

Fases (en orden cronológico, con status):
- F1 — Validación de mercado            (status: done — completada Q1)
- F2 — Beta privada                     (status: done — cerrada en abr)
- F3 — Lanzamiento público              (status: active)
- F4 — Crecimiento                      (status: queued)
... (cada una con 1 línea de descripción)

Tareas por fase (con prioridad y origen):
F2 (done):
  - [P0] (closed) Cerrar contrato cliente piloto       ← mencionado en call 15-abr
  - [P1] (closed) Soft-launch a beta interna           ← brief-v2.pdf
F3 (active):
  - [P0] Lanzar landing pública                        ← roadmap.md
  - [P1] Cerrar contrato cliente X                     ← call 28-abr
F4 (queued):
  - [P2] Definir métricas de growth                    ← perf-notes.md
... (lista completa)

Vault:
  Modo: AUTOMÁTICO  (o MANUAL, según lo que respondiste)

  Si AUTOMÁTICO:
    Folders nuevos:
    - /specs        — material de producto y arquitectura
    - /decisiones   — ADRs derivados del corpus
    - /sesiones     — transcripts y notas de calls
    - /referencias  — material de contexto/industria

    Documentos a crear:
    - /specs/producto-overview.md       ← brief-v2.pdf + instrucciones del Proyecto
    - /decisiones/D-001-stack.md        ← arquitectura.md
    - /sesiones/2026-04-15-cliente-x.md ← call-clientex.txt
    ... (lista completa)

  Si MANUAL:
    Folders nuevos (solo carpetas, sin docs):
    - /specs
    - /decisiones
    - /sesiones
    - /referencias

    Vas a recibir un README en cada folder explicando qué tipo de archivo subir manualmente desde la UI del Workspace.

Pagos / hitos (si dijiste "sí"):
- $5,000 MXN — Anticipo Cliente X        (status: received, fecha: 2026-03-15)
- $5,000 MXN — Entrega beta privada      (status: received, fecha: 2026-04-30)
- $10,000 MXN — Lanzamiento público      (status: pending, fecha esp.: 2026-06-15)

Decisiones (ADR) detectadas:
- D-001: stack Postgres + Fastify
- D-002: voz de marca tuteo neutro
... (con Contexto / Decisión / Consecuencias por cada una)

Descartado / no se importa:
- URLs sueltas sin contexto en "links.txt"
- Sensible: tokens en "secretos.md" → te los muestro en chat, NO van al Vault.
\`\`\`

**Paso 5 — Confirmación**

Espera mi "ok", "ajusta X", o "descarta Y". Acepta iteraciones hasta que diga "procede".

**Paso 6 — Ejecución**

Cuando confirme, ejecuta en este orden:

1. \`create_folder\` para las carpetas nuevas (skip si existen).
2. \`create_phase\` para CADA fase de la propuesta. Marca \`status: 'done'\` las que confirmamos como completadas.
3. **Vault**:
   - Si modo AUTOMÁTICO: \`create_doc\` para cada documento. **Importante**:
     - El \`bodyMd\` debe ser **contenido sintetizado y reescrito**, no copia-pega. Headings, bullets, tablas, bloques de código según corresponda.
     - Si un doc consolida varias fuentes, lístalas al final: \`> Fuentes en el Proyecto: brief-v2.pdf, arquitectura.md\`.
     - Para ADRs, usa \`templateKind: 'adr'\` en \`create_doc\` y rellena Contexto / Decisión / Consecuencias.
   - Si modo MANUAL: para cada folder, \`create_doc\` UNO solo llamado \`README.md\` con un párrafo breve: "Acá van archivos de tipo X (briefs, decisiones, transcripts, referencias). Súbelos desde /<folder> en la UI del Workspace."
4. \`create_task\` para los action items de cada fase. Para tareas que el corpus indica como YA TERMINADAS, llámala con \`status: 'closed'\`. Cita la fuente en la descripción: "Origen: <archivo>. Contexto: ..."
5. \`create_payment\` para cada hito de pago si confirmaste tracking de pagos.

**Paso 7 — Reporte final**

Al cerrar dame:

- Conteo de fases / tareas / docs / pagos creados, separando completados vs en curso vs pendientes.
- Tabla de fases con su estado.
- Tabla de docs (path → fuente) — si fue modo AUTOMÁTICO.
- Tabla de tareas con \`T-NNN\` → fase → status → fuente.
- Tabla de pagos con monto / estado / fecha esperada.
- Material descartado y por qué.
- Información sensible detectada que NO se importó.
- **Recomendación de la primera tarea \`T-NNN\` activa** que debería abrir ahora.

**Reglas:**

- Si tu base de conocimiento es grande (más de ~20 archivos o ~50 páginas), procesa en 2-3 lotes y pausa entre cada lote.
- Nunca crees más de 20 docs, 30 tareas, o 10 pagos en una sola pasada sin pausar.
- Material sensible NUNCA va al Vault. Muéstralo en el chat.
- En español latinoamericano neutro (no uses "vos", "che", "dale").
- Si una llamada MCP falla, repórtalo y pregunta cómo seguir; no retries en silencio.

Empieza con el paso 0.`,
  },
];

// PromptsButton — pill en TopBar (pareja del SupportButton). Color violeta
// para diferenciarse del soporte (azul) y del Claude Code badge (también
// violeta pero más apagado). Abre PromptsModal.
function PromptsButton() {
  const [open, setOpen] = React.useState(false);
  return (
    <>
      <button className="btn-reset" onClick={() => setOpen(true)}
        title="Prompts maestros para tu Claude.ai"
        style={{
          height: 28, padding: '0 10px',
          display: 'flex', alignItems: 'center', gap: 6,
          borderRadius: 14,
          background: 'linear-gradient(135deg, #A855F7 0%, #7C3AED 100%)',
          color: '#fff', fontSize: 12, fontWeight: 600,
          boxShadow: '0 4px 10px -2px rgba(124,58,237,.45), inset 0 1px 0 rgba(255,255,255,.25)',
          border: '1px solid rgba(255,255,255,.15)',
        }}
        onMouseEnter={(e) => e.currentTarget.style.filter = 'brightness(1.1)'}
        onMouseLeave={(e) => e.currentTarget.style.filter = 'brightness(1)'}>
        <Icon name="sparkles" size={13} color="#fff" />
        <span>Prompts</span>
      </button>
      {open && <PromptsModal onClose={() => setOpen(false)} />}
    </>
  );
}

// PromptsModal — lista de prompts maestros con copy-to-clipboard.
function PromptsModal({ onClose }) {
  const [copied, setCopied] = React.useState(null); // key del prompt copiado

  const copy = async (p) => {
    try {
      await navigator.clipboard.writeText(p.body);
      setCopied(p.key);
      setTimeout(() => setCopied((c) => (c === p.key ? null : c)), 2400);
    } catch {
      // Fallback para browsers sin Clipboard API: textarea + execCommand.
      const ta = document.createElement('textarea');
      ta.value = p.body;
      ta.style.position = 'fixed';
      ta.style.left = '-1000px';
      document.body.appendChild(ta);
      ta.select();
      try { document.execCommand('copy'); setCopied(p.key); } catch {}
      document.body.removeChild(ta);
    }
  };

  return (
    <Modal title="Prompts maestros para Claude.ai" onClose={onClose} width={640}
      footer={<Button variant="ghost" onClick={onClose}>Cerrar</Button>}>
      <div style={{ fontSize: 12.5, color: 'var(--text-2)', lineHeight: 1.5, marginBottom: 14 }}>
        Copia uno y pégalo en una conversación nueva de{' '}
        <a href="https://claude.ai/new" target="_blank" rel="noreferrer" style={{ color: 'var(--accent)' }}>
          claude.ai
        </a>{' '}
        que tenga el conector de Workspace activo. Claude se encarga del resto.
      </div>
      <div style={{ display: 'flex', flexDirection: 'column', gap: 10 }}>
        {PROMPT_LIBRARY.map((p) => {
          const isCopied = copied === p.key;
          return (
            <div key={p.key} style={{
              padding: 14,
              background: 'var(--bg-2)',
              border: '1px solid var(--border)',
              borderRadius: 8,
              display: 'flex', alignItems: 'flex-start', gap: 12,
            }}>
              <div style={{
                width: 36, height: 36, flexShrink: 0,
                background: 'rgba(168,85,247,.12)',
                color: '#A855F7',
                borderRadius: 8,
                display: 'flex', alignItems: 'center', justifyContent: 'center',
              }}>
                <Icon name={p.icon} size={18} />
              </div>
              <div style={{ flex: 1, minWidth: 0 }}>
                <div style={{ fontSize: 13.5, fontWeight: 600, color: 'var(--text-0)', marginBottom: 2 }}>
                  {p.title}
                </div>
                <div style={{ fontSize: 12, color: 'var(--text-1)', lineHeight: 1.5, marginBottom: 4 }}>
                  {p.blurb}
                </div>
                <div style={{ fontSize: 11, color: 'var(--text-3)', fontStyle: 'italic', marginBottom: 10 }}>
                  {p.when}
                </div>
                <div style={{ display: 'flex', gap: 8 }}>
                  <button className="btn-reset" onClick={() => copy(p)}
                    style={{
                      display: 'flex', alignItems: 'center', gap: 6,
                      height: 28, padding: '0 12px',
                      background: isCopied ? 'rgba(16,185,129,.15)' : 'var(--accent)',
                      color: isCopied ? 'var(--success)' : '#0A0E1A',
                      border: '1px solid ' + (isCopied ? 'rgba(16,185,129,.35)' : 'transparent'),
                      borderRadius: 6, fontSize: 12, fontWeight: 500, cursor: 'pointer',
                    }}>
                    <Icon name={isCopied ? 'check' : 'clipboard'} size={12} />
                    <span>{isCopied ? 'Copiado' : 'Copiar prompt'}</span>
                  </button>
                  <a href="https://claude.ai/new" target="_blank" rel="noreferrer"
                    style={{
                      display: 'flex', alignItems: 'center', gap: 6,
                      height: 28, padding: '0 12px',
                      background: 'transparent',
                      color: 'var(--text-1)',
                      border: '1px solid var(--border)',
                      borderRadius: 6, fontSize: 12, fontWeight: 500,
                      textDecoration: 'none',
                    }}>
                    <Icon name="external-link" size={12} />
                    <span>Abrir Claude.ai</span>
                  </a>
                </div>
              </div>
            </div>
          );
        })}
      </div>
    </Modal>
  );
}

// EmptyWorkspaceNudge — banner contextual que aparece cuando el usuario
// tiene Claude.ai conectado pero el workspace está vacío. Lo monta el
// vault home y el tracker home, pasando el resumen de su data. Si el user
// no tiene Claude.ai conectado todavía, mostramos otro CTA distinto que
// lleva al wizard / a la pestaña de OAuth en lugar de a los prompts.
function EmptyWorkspaceNudge({ kind = 'vault' }) {
  const [open, setOpen] = React.useState(false);
  const [dismissed, setDismissed] = React.useState(() => {
    try { return localStorage.getItem('ws.nudge.promptsDismissed') === '1'; }
    catch { return false; }
  });
  if (dismissed) return null;
  const dismiss = () => {
    try { localStorage.setItem('ws.nudge.promptsDismissed', '1'); } catch {}
    setDismissed(true);
  };
  const headline = kind === 'tracker'
    ? 'Tu tablero está vacío — pídele a Claude que lo llene'
    : 'Tu Vault está vacío — pídele a Claude que lo siembre';
  return (
    <>
      <div style={{
        margin: '0 0 18px',
        padding: 16,
        background: 'linear-gradient(135deg, rgba(168,85,247,.10) 0%, rgba(79,142,255,.08) 100%)',
        border: '1px solid rgba(168,85,247,.30)',
        borderRadius: 10,
        display: 'flex', alignItems: 'flex-start', gap: 14,
      }}>
        <div style={{
          width: 40, height: 40, flexShrink: 0,
          background: 'rgba(168,85,247,.15)',
          color: '#A855F7',
          borderRadius: 8,
          display: 'flex', alignItems: 'center', justifyContent: 'center',
        }}>
          <Icon name="sparkles" size={20} />
        </div>
        <div style={{ flex: 1, minWidth: 0 }}>
          <div style={{ fontSize: 14, fontWeight: 600, color: 'var(--text-0)', marginBottom: 4 }}>
            {headline}
          </div>
          <div style={{ fontSize: 12.5, color: 'var(--text-1)', lineHeight: 1.55, marginBottom: 10 }}>
            Tenemos prompts listos para que copies y pegues a tu Claude.ai conectado.
            Te entrevista, propone estructura, y crea folders, fases, docs y tareas
            por ti.
          </div>
          <div style={{ display: 'flex', gap: 8 }}>
            <button className="btn-reset" onClick={() => setOpen(true)}
              style={{
                display: 'flex', alignItems: 'center', gap: 6,
                height: 30, padding: '0 14px',
                background: 'linear-gradient(135deg, #A855F7 0%, #7C3AED 100%)',
                color: '#fff', fontSize: 12.5, fontWeight: 600,
                border: 'none', borderRadius: 6, cursor: 'pointer',
                boxShadow: '0 4px 10px -2px rgba(124,58,237,.45)',
              }}>
              <Icon name="sparkles" size={13} />
              <span>Ver prompts</span>
            </button>
            <button className="btn-reset" onClick={dismiss}
              style={{
                height: 30, padding: '0 12px',
                background: 'transparent',
                color: 'var(--text-2)',
                border: '1px solid var(--border)',
                borderRadius: 6, fontSize: 12, fontWeight: 500, cursor: 'pointer',
              }}>
              Ocultar
            </button>
          </div>
        </div>
      </div>
      {open && <PromptsModal onClose={() => setOpen(false)} />}
    </>
  );
}

Object.assign(window, { PromptsButton, PromptsModal, EmptyWorkspaceNudge, PROMPT_LIBRARY });
