Skill de Seguimiento de Cartera Guiado
Lo que Construye Esta Skill
Para cualquier cartera proporcionada por el usuario, esta skill produce:
- MonitoringConfig — un objeto JSON estructurado escrito en ALFS, la fuente única de verdad para la lista de tickers, horizonte, modo de guía y nota de preferencias.
- Dos automatizaciones de fuente —
gpw-fundamentals(historial financiero) ygpw-monitor(análisis de eventos diarios + alertas push), ambas leyendo la configuración en tiempo de ejecución. - Un Manual de Estrategia —
guided-portfolio-watch, disponible enhttps://alva.ai/u/{username}/playbooks/guided-portfolio-watch. - Alertas diarias — notificaciones con explicaciones iniciales cuando ocurren eventos materiales.
La skill es reutilizable: cambiar config.json y volver a ejecutar las fuentes produce un Manual de Estrategia y un pipeline de alertas completos para cualquier cartera nueva sin cambios de código.
Paso 1 — Analizar la Intención del Usuario
Ejecuta src/intent-to-config.js (o aplica su lógica) para extraer un MonitoringConfig del mensaje del usuario. Haz esto antes de hacer cualquier pregunta.
Extracción de Tickers
Busca secuencias de 1 a 5 letras mayúsculas o patrones como BRK.B. Acepta solo acciones estadounidenses listadas. Rechaza ETFs, cripto (ej., BTC, ETH, SOL), opciones y tickers no estadounidenses — informa al usuario y continúa con los símbolos aceptados.
Lista de bloqueo de palabras comunes (rechazar incluso si están en mayúsculas): I, A, AN, OR, FOR, AND, AT, IN, ON, MY, ME, THE.
Modo de Guía (inferencia de preferencia — no afirmación de experiencia)
Aplica este orden de prioridad. Detente en la primera coincidencia.
1. PREFERENCIA EXPLÍCITA (siempre gana):
"en lenguaje sencillo" / "explícame" / "Soy nuevo en inversiones"
"No entiendo" / "ayúdame a entender" → guiado
"Quiero detalles técnicos" / "asume que sé de finanzas"
"salta lo básico" / "análisis técnico" (como preferencia) → estándar
2. SEÑALES CONTEXTUALES (solo cuando no hay preferencia explícita):
Uso correcto de: EBITDA, FCF, NIM, P/E, puntos base, margen de interés neto,
apalancamiento operativo, CAGR → estándar
"¿debería preocuparme?" / "¿qué significa esto para mí?" / "¿es esto malo?" → guiado
3. PREDETERMINADO (señales mixtas, conflictivas o ausentes):
→ neutral
Nunca preguntes "¿eres principiante?" o "¿cuál es tu nivel de experiencia?". NEUTRAL usa el diseño guiado por defecto; el usuario puede cambiarlo mediante AGENTS.md.
Horizonte
- Palabras clave: "largo plazo", "3–5 años", "mantener para siempre", "jubilación" →
long-term - Palabras clave: "medio plazo", "1–3 años", "próximos años" →
medium-term - Palabras clave: "day trade", "swing trade", "corto plazo", "< 1 año" → no compatible. Informa al usuario; pregunta si el monitoreo a largo plazo es aceptable antes de continuar.
- Valor predeterminado (sin señal):
long-term.
Clasificación de Propiedad
- "tengo", "compré", "mi posición", "poseo" →
holding - "observando", "siguiendo", "echar un ojo" →
watchlist - Ambiguo →
holding(predeterminado más seguro; evita decirle a un tenedor que no posee esto)
La propiedad solo afecta el lenguaje de las alertas. El pipeline trata todos los símbolos de manera idéntica.
Pesos (Opcional)
Analiza patrones de porcentajes explícitos: "50% NVDA, 30% TSLA, 20% AAPL". Si se proporcionan, almacénalos como objeto weights (valores 0–1, deben sumar 1.0 ± 0.02; normaliza si hay error de redondeo). Si no se proporcionan, omite weights de la configuración.
Paso 2 — Aclarar si es Necesario (como máximo una pregunta)
Pregunta solo si la respuesta cambia materialmente lo que se construye:
| Situación | Pregunta |
|---|---|
| No se proporcionaron tickers | "¿Qué empresas te gustaría monitorear?" |
| Conflictos de horizonte (day trading) | Informa + confirma que el seguimiento a largo plazo es aceptable |
No preguntes sobre: número de acciones, costo base, metas financieras, nivel de experiencia. No hagas una segunda pregunta.
Paso 3 — Ensamblar MonitoringConfig
Construye el objeto MonitoringConfig completo (consulta config/monitoring-config.schema.json).
sectorFocusAreas — obtén los detalles de la empresa para cada ticker mediante arrays-data-api-equity-fundamentals. Usa los campos sector + industry y la tabla de búsqueda en src/intent-to-config.js para generar una nota de enfoque de una oración por ticker. Si la llamada a la API falla o el sector es desconocido, usa el valor predeterminado genérico: "Monitorear: ingresos, ganancias y desarrollos específicos del negocio.". Nunca inventes un área de enfoque.
preferencesNote — ensámblala a partir de los campos de configuración usando esta plantilla:
El usuario [posee/sigue] [LISTA DE TICKERS]. Horizonte de inversión: [HORIZONTE].
[Si GUIADO:] Usa lenguaje sencillo y sin jerga. Define los términos financieros cuando aparezcan por primera vez.
Enmarca todo en torno a lo que el usuario debe prestar atención y por qué.
[Si ESTÁNDAR:] Asume alfabetización financiera intermedia. Usa terminología financiera estándar.
[Si NEUTRAL:] Usa un lenguaje claro y accesible. Evita la jerga sin explicación.
Política de alertas: Enfócate solo en desarrollos materiales del negocio a largo plazo.
Excluye: movimientos de precios puros, análisis técnico, rumores sin fundamento.
Incluye: cambios en ganancias/guía, eventos regulatorios/legales, anuncios estratégicos,
y cambios en la cadena de suministro o producto con impacto empresarial a varios años.
[Si se proporcionaron pesos:] Asignación ilustrativa: [TICKER] [PCT]%, ... (escenario proporcionado por el usuario; no son pesos actuales verificados.)
[Áreas de enfoque por ticker:]
[TICKER]: [sectorFocusArea]
...
[Si hay entradas desconocidas:] No se conocen las cantidades, costos base ni el valor total de la cartera. No calcules ni impliques cifras de rendimiento a nivel de cartera.
Paso 4 — Escribir Configuración en ALFS
# Serializa la configuración en un archivo temporal local, luego escribe en ALFS
alva fs write --path '~/feeds/gpw-monitor/v1/config.json' --file /tmp/gpw-config.json --mkdir-parents
Confirma que la escritura se realizó correctamente con:
alva fs read --path '~/feeds/gpw-monitor/v1/config.json'
También escribe la configuración en ~/feeds/gpw-fundamentals/v1/config.json (mismo contenido — ambas fuentes leen de su propia ruta para mantenerse desacopladas).
Paso 5 — Desplegar Fuentes (Requiere Aprobación del Usuario)
Lee references/setup-workflow.md antes de desplegar. No despliegues hasta que el usuario haya confirmado que el MonitoringConfig es correcto.
Fuente 1: gpw-fundamentals (usa la plantilla templates/gpw-fundamentals.stub.js)
- Cron:
15 6 * * * - Salida:
fundamentals/snapshot(blob JSON) - Sin salida de alertas
Fuente 2: gpw-monitor (usa la plantilla templates/gpw-monitor.stub.js)
- Cron:
30 6 * * * - Salida:
analysis/decision+alerts/daily(V2 alertOutput) - Desplegar con
--push-notify
Paso 6 — Construir y Publicar el Manual de Estrategia (Requiere Aprobación del Usuario)
Usa la plantilla templates/gpw-playbook.stub.html. Rellena todos los marcadores [GPW-*].
Sigue el ciclo de vida completo: alva lint playbook → alva release playbook-draft → alva release playbook → alva screenshot.
Paso 7 — Habilitar Entrega de Alertas (Requiere Aprobación del Usuario)
La publicación crea automáticamente un enlace de alerta FEED para el propietario. Confirma la entrega:
alva alert history --automation gpw-monitor
# Esperado: al menos una fila con estado = "sent"
Criterios de Aceptación
La skill está completa cuando:
alva lint playbookpasa sin erroresalva screenshotmuestra datos visibles (no un marco en blanco)alva alert historymuestra una fila con estadosentdentro de las 24h posteriores a una ejecución programada- Cambiar los tickers en
config.jsony volver a ejecutar gpw-fundamentals produce nuevas secciones de empresa sin referencias a tickers antiguos
Lo Que Esta Skill NO Construye
- Gráficos de precios o monitoreo de precios intradiario
- Recomendaciones de compra / venta / retención
- Calendario de ganancias
- Rendimiento vs. índice de referencia
- Ejecución de órdenes o trading