Communitygithub.com

chiptsui/guided-portfolio-watch

Cria e mantém um Acompanhamento de Portfólio Guiado para qualquer carteira de ações dos EUA. Gera um Playbook, feeds de monitoramento diários e alertas com explicações. Otimizado para investimento prático e amigável para iniciantes, sem exigir experiência em análise financeira.

O que é guided-portfolio-watch?

O Guided Portfolio Watch é uma skill reutilizável que automatiza a construção e manutenção de um sistema completo de monitoramento de portfólio para ações de capital aberto listadas nos EUA. Ela analisa a intenção do usuário para extrair tickers, horizonte de investimento e modo de orientação (guiado, padrão ou neutro), montando um arquivo de configuração JSON (MonitoringConfig) que serve como fonte única da verdade. A skill implanta dois feeds automatizados: um para coleta de dados financeiros históricos (gpw-fundamentals) e outro para análise diária de eventos com alertas explicativos (gpw-monitor), gerando também um Playbook visual no Alva. Ideal para investidores que desejam um acompanhamento de portfólio 'mãos-livres', a skill prioriza explicações claras e foco em eventos materiais de longo prazo, evitando recomendações de compra/venda ou análises técnicas. O suporte principal é a plataforma Alva (utilizando ALFS para armazenamento de configuração e implantação de feeds), com foco total em simplicidade e usabilidade para usuários sem experiência em finanças.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/chiptsui/alva-guided-portfolio-watch/tree/main/.agents/skills/guided-portfolio-watch

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Skill de Acompanhamento de Portfólio Guiado

O Que Esta Skill Constrói

Para qualquer portfólio fornecido pelo usuário, esta skill produz:

  1. 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.
  2. Duas automatizações de feed — gpw-fundamentals (histórico financeiro) e gpw-monitor (análise diária de eventos + alertas push), ambos lendo a configuração em tempo de execução.
  3. Um Playbook — guided-portfolio-watch, disponível em https://alva.ai/u/{username}/playbooks/guided-portfolio-watch.
  4. 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çãoPerguntar
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 playbook passa sem erros
  • alva screenshot mostra dados visíveis (não um quadro em branco)
  • alva alert history mostra uma linha sent dentro 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

Habilidades Relacionadas