Skill de Acompanhamento de Portfólio Guiado
O Que Esta Skill Constrói
Para qualquer portfólio fornecido pelo usuário, esta skill produz:
- MonitoringConfig — um objeto JSON estruturado gravado no ALFS, a fonte única da verdade para a lista de tickers, horizonte, modo de orientação e nota de preferências.
- Duas automatizações de feed —
gpw-fundamentals(histórico financeiro) egpw-monitor(análise diária de eventos + alertas push), ambos lendo a configuração em tempo de execução. - Um Playbook —
guided-portfolio-watch, disponível emhttps://alva.ai/u/{username}/playbooks/guided-portfolio-watch. - Alertas diários — notificações com explicações quando eventos materiais ocorrem.
A Skill é reutilizável: alterar o config.json e reexecutar os feeds produz um Playbook completo e um pipeline de alertas para qualquer novo portfólio, sem necessidade de alterações no código.
Etapa 1 — Interpretar a Intenção do Usuário
Execute src/intent-to-config.js (ou aplique sua lógica) para extrair um MonitoringConfig da mensagem do usuário. Faça isso antes de fazer qualquer pergunta.
Extração de Tickers
Varra sequências de 1 a 5 letras maiúsculas ou padrões como BRK.B. Aceite apenas ações listadas nos EUA. Rejeite ETFs, criptomoedas (ex.: BTC, ETH, SOL), opções e tickers não americanos — informe o usuário e continue com os símbolos aceitos.
Lista de bloqueio de palavras comuns (rejeite mesmo se maiúsculas): I, A, AN, OR, FOR, AND, AT, IN, ON, MY, ME, THE.
Modo de Orientação (inferência de preferência — não alegação de especialista)
Aplique esta ordem de prioridade. Pare na primeira correspondência.
1. PREFERÊNCIA EXPLÍCITA (sempre vence):
"em português claro" / "explique para mim" / "sou novo em investimentos"
"não entendo" / "me ajude a entender" → guiado
"quero detalhes técnicos" / "presuma que conheço finanças"
"pule o básico" / "análise técnica" (como uma preferência) → padrão
2. SINAIS CONTEXTUAIS (apenas quando não há preferência explícita):
Uso correto de: EBITDA, FCF, NIM, P/L, pontos-base, margem de juros líquida,
alavancagem operacional, CAGR → padrão
"devo me preocupar?" / "o que isso significa para mim?" / "isso é ruim?" → guiado
3. PADRÃO (sinais mistos, conflitantes ou ausentes):
→ neutro
Nunca pergunte "você é iniciante?" ou "qual é o seu nível de experiência?". NEUTRO usa o layout guiado por padrão; o usuário pode alterar via AGENTS.md.
Horizonte
- Palavras-chave: "longo prazo", "3–5 anos", "manter para sempre", "aposentadoria" →
long-term - Palavras-chave: "médio prazo", "1–3 anos", "próximos anos" →
medium-term - Palavras-chave: "day trade", "swing trade", "curto prazo", "< 1 ano" → não suportado. Informe o usuário; pergunte se o monitoramento de longo prazo é aceitável antes de continuar.
- Padrão (sem sinal):
long-term.
Classificação de Propriedade
- "Eu possuo", "comprei", "minha posição", "tenho" →
holding - "observando", "acompanhando", "ficar de olho" →
watchlist - Ambíguo →
holding(padrão mais seguro; evita dizer a um titular que ele não possui isso)
A propriedade afeta apenas a linguagem do texto do alerta. O pipeline trata todos os símbolos de forma idêntica.
Pesos (Opcional)
Analise padrões de porcentagem explícitos: "50% NVDA, 30% TSLA, 20% AAPL". Se fornecidos, armazene como objeto weights (valores entre 0 e 1, devem somar 1,0 ± 0,02; normalize se houver erro de arredondamento). Se não fornecidos, omita weights da configuração.
Etapa 2 — Esclareça se Necessário (no máximo uma pergunta)
Pergunte apenas se a resposta alterar materialmente o que será construído:
| Situação | Perguntar |
|---|---|
| Nenhum ticker fornecido | "Quais empresas você gostaria de monitorar?" |
| Conflitos de horizonte (day trading) | Informe + confirme se o monitoramento de longo prazo é aceitável |
Não pergunte sobre: número de ações, custo base, objetivos financeiros, nível de experiência. Não faça uma segunda pergunta.
Etapa 3 — Montar o MonitoringConfig
Construa o objeto MonitoringConfig completo (consulte config/monitoring-config.schema.json).
sectorFocusAreas — obtenha os detalhes da empresa para cada ticker via arrays-data-api-equity-fundamentals. Use os campos sector + industry e a tabela de consulta em src/intent-to-config.js para gerar uma nota de foco de uma frase por ticker. Se a chamada à API falhar ou o setor for desconhecido, use o fallback genérico: "Watch: revenue, earnings, and business-specific developments." Nunca invente uma área de foco.
preferencesNote — monte a partir dos campos de configuração usando este modelo:
O usuário [possui/está acompanhando] [LISTA DE TICKERS]. Horizonte de investimento: [HORIZONTE].
[Se GUIADO:] Use inglês simples e sem jargões. Defina termos financeiros na primeira aparição.
Enquadre tudo em torno do que o usuário deve prestar atenção e por quê.
[Se PADRÃO:] Presuma alfabetização financeira intermediária. Use terminologia financeira padrão.
[Se NEUTRO:] Use linguagem clara e acessível. Evite jargões não explicados.
Política de alertas: Foco apenas em desenvolvimentos materiais de negócios de longo prazo.
Excluir: movimentos puros de preço, análise técnica, boatos infundados.
Incluir: mudanças em lucros/orientação, eventos regulatórios/jurídicos, anúncios estratégicos,
e mudanças na cadeia de suprimentos ou de produtos com impacto de negócios plurianual.
[Se pesos fornecidos:] Alocação ilustrativa: [TICKER] [PCT]%, ... (cenário fornecido pelo usuário; não são pesos atuais verificados.)
[Áreas de foco por ticker:]
[TICKER]: [sectorFocusArea]
...
[Se houver entradas desconhecidas:] Quantidades, custos base e valor total do portfólio não são conhecidos. Não calcule ou implique métricas de desempenho de portfólio.
Etapa 4 — Gravar Configuração no ALFS
# Serializar config para arquivo temporário local e depois gravar no ALFS
alva fs write --path '~/feeds/gpw-monitor/v1/config.json' --file /tmp/gpw-config.json --mkdir-parents
Confirme se a gravação foi bem-sucedida com:
alva fs read --path '~/feeds/gpw-monitor/v1/config.json'
Grave também a configuração em ~/feeds/gpw-fundamentals/v1/config.json (mesmo conteúdo — ambos os feeds leem de seus próprios caminhos para permanecerem desacoplados).
Etapa 5 — Implantar Feeds (Requer Aprovação do Usuário)
Leia references/setup-workflow.md antes de implantar. Não implante até que o usuário confirme que o MonitoringConfig está correto.
Feed 1: gpw-fundamentals (use o template templates/gpw-fundamentals.stub.js)
- Cron:
15 6 * * * - Saída:
fundamentals/snapshot(bloco JSON) - Sem saída de alerta
Feed 2: gpw-monitor (use o template templates/gpw-monitor.stub.js)
- Cron:
30 6 * * * - Saída:
analysis/decision+alerts/daily(V2 alertOutput) - Implantar com
--push-notify
Etapa 6 — Construir e Publicar o Playbook (Requer Aprovação do Usuário)
Use o template templates/gpw-playbook.stub.html. Preencha todos os marcadores [GPW-*].
Siga o ciclo de vida completo: alva lint playbook → alva release playbook-draft → alva release playbook → alva screenshot.
Etapa 7 — Habilitar Entrega de Alertas (Requer Aprovação do Usuário)
Publicar cria automaticamente uma vinculação de alerta FEED do proprietário. Confirme a entrega:
alva alert history --automation gpw-monitor
# Esperado: pelo menos uma linha com status = "sent"
Critérios de Aceitação
A Skill está completa quando:
alva lint playbookpassa sem errosalva screenshotmostra dados visíveis (não um quadro em branco)alva alert historymostra uma linhasentdentro de 24 horas após uma execução programada- Alterar os tickers no config.json e reexecutar o gpw-fundamentals produz novas seções de empresa sem referências a tickers antigos
O Que Esta Skill NÃO Constrói
- Gráficos de preço ou monitoramento de preço intradiário
- Recomendações de compra / venda / manutenção
- Calendário de lucros
- Desempenho vs. benchmark
- Execução de negociação ou ordens