# 📤 Compartir Visiones entre Palantíri
## Menú principal
**Usar AskUserQuestion**:
```json
{
"questions": [{
"header": "Compartir Visiones",
"question": "¿Qué deseas hacer con las visiones del Palantír?",
"multiSelect": false,
"options": [
{
"label": "📥 Importar visiones",
"description": "Cargar configuraciones desde un fichero o texto pegado"
},
{
"label": "📤 Exportar visiones",
"description": "Volcar toda tu configuración actual a un fichero .md portable"
},
{
"label": "🗑️ Eliminar característica",
"description": "Borrar una configuración existente con análisis previo"
},
{
"label": "🔙 Volver al menú de Palantír",
"description": ""
}
]
}]
}
```
---
## OPCIÓN 1: Importar visiones
### PASO 1: Obtener contenido a importar
**Usar AskUserQuestion**:
```json
{
"questions": [{
"header": "Importar",
"question": "¿Cómo quieres proporcionar el contenido a importar?",
"multiSelect": false,
"options": [
{
"label": "📂 Proporcionar ruta de fichero",
"description": "Indica la ruta absoluta al fichero .md exportado"
},
{
"label": "📝 Pegar contenido directamente",
"description": "Escribe o pega el contenido del exportado en el chat"
}
]
}]
}
```
- Si elige ruta: pedir la ruta y leer el fichero con Read tool
- Si elige pegar: indicar `Pega el contenido ahora:` y esperar input libre
---
### PASO 2: Cargar documentación oficial (condicional)
@prompts/palantir/sections/00-docs-official.md
---
### PASO 3: Análisis del contenido importado
Con el contenido obtenido y la documentación oficial, analizar:
1. **Validez estructural**: ¿El formato es reconocible como configuración de Claude Code?
2. **Extracción de características**: Identificar cada característica individual (regla, permiso, hook, instrucción...) — NO por fichero, sino por ítem
3. **Conflictos**: ¿Alguna característica contradice o duplica algo ya en la config actual?
4. **Mejoras**: ¿Alguna característica podría expresarse mejor según las docs oficiales?
5. **Errores**: ¿Algo claramente incorrecto, peligroso o mal formado?
Mostrar resumen del análisis:
```
📊 ANÁLISIS DE IMPORTACIÓN
══════════════════════════════════════════════════════
📦 Características encontradas: [N]
✅ Válidas sin conflicto: [N]
⚠️ Con conflicto o mejora: [N]
❌ Errores o formatos inválidos: [N]
══════════════════════════════════════════════════════
```
---
### PASO 4: Menú de acción
**Si hay conflictos, mejoras o errores** (AskUserQuestion con 4 opciones):
```json
{
"questions": [{
"header": "Acción",
"question": "¿Cómo deseas proceder con la importación?",
"multiSelect": false,
"options": [
{
"label": "✅ Aplicar todas de golpe",
"description": "Importar todo tal cual — sobreescribe configuraciones existentes"
},
{
"label": "🛡️ Una a una (modo seguro)",
"description": "Revisar e importar característica a característica con confirmación"
},
{
"label": "✨ Mejorar importación",
"description": "Ver y aplicar mejoras sobre el contenido antes de importar"
},
{
"label": "🚫 Cancelar",
"description": "Volver al menú principal sin importar nada"
}
]
}]
}
```
**Si no hay conflictos ni mejoras** (AskUserQuestion con 3 opciones):
```json
{
"questions": [{
"header": "Acción",
"question": "¿Cómo deseas proceder con la importación?",
"multiSelect": false,
"options": [
{
"label": "✅ Aplicar todas de golpe",
"description": "Importar todo tal cual — sobreescribe configuraciones existentes"
},
{
"label": "🛡️ Una a una (modo seguro)",
"description": "Revisar e importar característica a característica con confirmación"
},
{
"label": "🚫 Cancelar",
"description": "Volver al menú principal sin importar nada"
}
]
}]
}
```
---
### PASO 5a: Mejorar importación
Mostrar los cambios propuestos sobre el contenido a importar:
```
✨ MEJORAS PROPUESTAS SOBRE LA IMPORTACIÓN
══════════════════════════════════════════════════════
[Para cada mejora/corrección detectada:]
#[N] [tipo: CORRECCIÓN / MEJORA / CONFLICTO]
─────────────────────────────────────────────
Característica: [descripción]
Problema: [qué está mal o puede mejorarse]
Cambio: [qué se modificaría en el contenido]
══════════════════════════════════════════════════════
```
**AskUserQuestion**:
```json
{
"questions": [{
"header": "Mejorar importación",
"question": "¿Aplicamos estas mejoras al contenido antes de importar?",
"multiSelect": false,
"options": [
{
"label": "✅ Aplicar mejoras y continuar",
"description": "Actualizar el contenido con las mejoras y volver al menú de acción"
},
{
"label": "🚫 Cancelar",
"description": "Volver al menú principal sin importar nada"
}
]
}]
}
```
- Si acepta: aplicar mejoras sobre el contenido en memoria y **volver al PASO 4** con el contenido mejorado
---
### PASO 5b: Una a una (modo seguro)
Iterar por cada característica extraída en orden. Para cada una:
```
🔮 Palantír examina la característica #[X]...
📥 IMPORTACIÓN [X/N]
══════════════════════════════════════════════════════
📦 Característica: [descripción clara del ítem]
📁 Tipo: [instrucción CLAUDE.md / rule / hook / settings / memoria]
🌍 Scope sugerido: [Global (~/.claude/) / Proyecto (.claude/)]
Motivo: [justificación según docs oficiales y config actual]
📍 Ubicación: [ruta exacta del fichero donde se añadiría]
⚠️ Impacto detectado:
[conflictos, solapamientos o "Ninguno detectado"]
══════════════════════════════════════════════════════
```
**AskUserQuestion por cada característica**:
```json
{
"questions": [{
"header": "Importación [X/N]",
"question": "¿Qué hacemos con esta característica?",
"multiSelect": false,
"options": [
{
"label": "✅ Aplicar en scope sugerido",
"description": "Importar en la ubicación recomendada"
},
{
"label": "🔄 Cambiar scope",
"description": "Aplicar en global en lugar de proyecto o viceversa"
},
{
"label": "⏭️ Saltar",
"description": "Dejar esta característica sin importar"
},
{
"label": "🚫 Cancelar todo",
"description": "Abortar la importación completa"
}
]
}]
}
```
- **Aplicar**: importar en la ubicación sugerida, mostrar frase de lore breve, pasar a la siguiente
- **Cambiar scope**: preguntar a cuál cambiar, actualizar propuesta y aplicar
- **Saltar**: `🔮 Palantír ignoró esta visión por el momento.` — siguiente
- **Cancelar todo**: mostrar resumen parcial y volver al menú principal
---
### PASO 5c: Aplicar todas de golpe
Aplicar todas las características en sus ubicaciones naturales (según análisis de docs y config actual), sobreescribiendo lo existente si hay conflicto.
Mostrar progreso y confirmar con frase épica al terminar.
---
### PASO 6: Resumen de importación
```
📋 RESUMEN DE IMPORTACIÓN
══════════════════════════════════════════════════════
✅ Importadas: [N]
⏭️ Saltadas: [N]
❌ Errores: [N]
══════════════════════════════════════════════════════
```
Volver automáticamente al **menú principal de Compartir visiones**.
---
## OPCIÓN 2: Exportar visiones
### PASO 1: Seleccionar scope
**Usar AskUserQuestion**:
```json
{
"questions": [{
"header": "Exportar",
"question": "¿Qué configuraciones deseas exportar?",
"multiSelect": false,
"options": [
{
"label": "🏠 Solo local (.claude/)",
"description": "Exportar únicamente la configuración del proyecto actual"
},
{
"label": "🌍 Solo global (~/.claude/)",
"description": "Exportar únicamente la configuración global del usuario"
},
{
"label": "🌐 Local y global",
"description": "Exportar toda la configuración disponible"
}
]
}]
}
```
---
### PASO 2: Leer configuración del scope elegido
Leer silenciosamente todos los ficheros relevantes según el scope:
- `CLAUDE.md` (global y/o proyecto según scope)
- `settings.json` (global y/o proyecto)
- `rules/*.md` (global y/o proyecto)
- Hooks definidos en settings.json
- `MEMORY.md` (solo 200 primeras líneas)
---
### PASO 3: Pedir path de destino
Mostrar:
```
📤 Exportación lista.
¿Dónde deseas guardar el fichero exportado?
Ejemplo: ~/tlotp-backup-2026-03-12.md
Path de destino:
```
Obtener input libre del usuario.
---
### PASO 4: Generar fichero exportado
Crear el fichero `.md` con la siguiente estructura:
```markdown
# 📤 Exportación de Configuración Claude Code
# Generado por Palantír — TLOTP
# Fecha: [fecha actual]
# Scope: [Local / Global / Local y Global]
---
## 📄 CLAUDE.md — [scope]
# Fichero: [ruta completa]
[contenido completo]
---
## ⚙️ settings.json — [scope]
# Fichero: [ruta completa]
[contenido completo]
---
## 📁 rules/ — [scope]
# Directorio: [ruta completa]
### [nombre-regla.md]
# Fichero: [ruta completa]
[contenido completo]
---
## 🪝 Hooks — [scope]
# Definidos en: [ruta settings.json]
[sección hooks extraída del settings.json]
---
## 🧠 MEMORY.md
# Fichero: [ruta completa]
# Nota: Solo se exportan las primeras 200 líneas (límite de carga de Claude Code)
[primeras 200 líneas]
```
Crear el fichero en la ruta indicada y confirmar con frase épica:
*"Las visiones han sido grabadas en piedra. El Palantír las guardará para la eternidad."*
Volver automáticamente al **menú principal de Compartir visiones**.
---
## OPCIÓN 3: Eliminar característica
### PASO 1: Seleccionar scope
**Usar AskUserQuestion**:
```json
{
"questions": [{
"header": "Eliminar",
"question": "¿Qué configuraciones deseas inspeccionar para eliminar?",
"multiSelect": false,
"options": [
{
"label": "🏠 Local (.claude/)",
"description": "Ver solo configuraciones del proyecto actual"
},
{
"label": "🌍 Global (~/.claude/)",
"description": "Ver solo configuraciones globales del usuario"
},
{
"label": "🌐 Mostrar todas",
"description": "Ver todas las configuraciones disponibles (local y global)"
}
]
}]
}
```
---
### PASO 2: Construir lista numerada de características
Leer todos los ficheros del scope elegido y extraer cada característica individualmente (no por fichero). Mostrar en formato listado:
```
🗑️ CARACTERÍSTICAS DISPONIBLES
══════════════════════════════════════════════════════
# TIPO FICHERO DESCRIPCIÓN
───────────────────────────────────────────────────────────────────
1. Instrucción CLAUDE.md [global] "No usar sudo directamente"
2. Instrucción CLAUDE.md [global] "Conventional Commits: type(scope)"
3. Rule (paths:*.ts) rules/typescript.md [global] "Strict typing en TypeScript"
4. Permiso settings.json [global] allowedTools: Bash
5. Hook settings.json [global] PostToolUse → git-commit-check.sh
6. Instrucción CLAUDE.md [proyecto] "Stack: PHP/Symfony hexagonal"
...
══════════════════════════════════════════════════════
Indica el número de la característica que deseas eliminar:
```
Obtener número del usuario.
---
### PASO 3: Cargar documentación oficial (condicional)
Si no está en contexto de esta sesión, obtener los 6 WebFetch en el mismo orden que en el módulo de Importar (PASO 2 de Importar).
---
### PASO 4: Análisis de eliminación
Con la característica seleccionada y la documentación oficial:
1. **¿Es seguro eliminarla?** — ¿Qué impacto tendría en el comportamiento de Claude?
2. **¿Está duplicada?** — ¿Existe otra regla/config que cubra lo mismo?
3. **¿Hay dependencias?** — ¿Algún otro ítem de la config depende de este?
4. **¿Alternativa posible?** — ¿Podría modificarse en lugar de eliminarse para mejor resultado?
Mostrar:
```
🔍 ANÁLISIS DE ELIMINACIÓN
══════════════════════════════════════════════════════
📍 Característica: [descripción]
📁 Fichero: [ruta completa]
⚠️ Impacto de eliminar:
[qué cambiaría en el comportamiento de Claude Code]
💡 Recomendación:
[✅ Seguro eliminar / ⚠️ Eliminar con precaución / ❌ No recomendado]
[justificación según docs oficiales]
══════════════════════════════════════════════════════
```
---
### PASO 5: Menú de decisión
**Usar AskUserQuestion**:
```json
{
"questions": [{
"header": "Eliminar característica",
"question": "¿Qué hacemos con esta característica?",
"multiSelect": false,
"options": [
{
"label": "🗑️ Eliminar",
"description": "Borrar definitivamente esta característica"
},
{
"label": "✏️ Proponer alternativa",
"description": "Claude sugerirá una modificación en lugar de eliminar"
},
{
"label": "🚫 Cancelar",
"description": "No tocar nada y volver al menú"
}
]
}]
}
```
**Si elige Eliminar**: aplicar, confirmar con frase épica breve, volver al menú de Compartir visiones
**Si elige Proponer alternativa**:
- Mostrar propuesta de modificación en lugar de eliminación
- AskUserQuestion: `✅ Aplicar alternativa` / `🗑️ Eliminar igualmente` / `🚫 Cancelar`
- Aplicar según elección
**Si elige Cancelar**: `🔮 Palantír retuvo esta visión.` — volver al menú de Compartir visiones
---
## OPCIÓN 4: Volver al menú de Palantír
Volver a @prompts/palantir/sections/00-menu-principal.md (PASO 2).