Análise de ações
Esta skill produz o mesmo relatório sempre:
- uma tabela geral
- um painel por ticker, contendo:
- fatos
- um gráfico semanal em relação à máxima de 52 semanas
- retornos
- os drivers da queda
- os casos otimista e pessimista
- participações, lacunas de dados e o registro de cálculos
Os scripts fazem toda a aritmética e o HTML. Seu trabalho é a pesquisa e a verificação. Não redesenhe a página nem escreva HTML manualmente.
SKILL_DIR é a pasta que contém este arquivo. Encontre-a uma vez com dirname neste caminho de SKILL.md.
Arquivos
| Caminho | Propósito |
|---|---|
scripts/compute_drawdown.py | CSV diário → máxima e mínima de 52 semanas, % de queda, retornos, fechamentos semanais |
scripts/verify.py | rederiva cada número principal dos CSVs, verifica campos e fontes, escreve verified.json, retorna 1 em qualquer problema |
scripts/build_report.py | JSON do worker + verified.json → uma página HTML autocontida (usa assets/report.css) |
scripts/build_email.py | mesmos números verificados → drawdown_report.eml pronto para envio (HTML seguro para e-mail + texto, relatório anexado); valida o endereço |
scripts/send_email.py | para o usuário executar em seu próprio computador: envia o .eml via SMTP com um prompt de confirmação e uma senha de aplicativo inserida localmente |
defaults.json | a lista de observação padrão usada quando o usuário não nomeia tickers (editável pelo usuário) |
references/worker_brief.md | o briefing que cada worker segue (preencha os placeholders {…}) |
references/schema.md | o contrato <TICKER>.json |
examples/run-2026-10-16/ | uma execução de referência completa (FTEC, QQQ, SMH, ARTY): quatro JSONs de worker e o report.html finalizado. Use como referência de profundidade, tom e estilo de citação. |
Fluxo de trabalho
1. Configuração
- Leia a lista de tickers da solicitação do usuário.
- Nenhum ticker nomeado ("execute minha análise de ações", "como está o mercado vs máximas?"): leia
$SKILL_DIR/defaults.jsone use suadefault_watchlist, nessa ordem. Diga em sua primeira linha que está usando a lista de observação padrão e liste-a. - Tickers nomeados: use exatamente esses; não adicione os padrões a menos que o usuário peça (por exemplo, "os de sempre mais NVDA").
- Índices (S&P 500, Dow Jones, Nasdaq Composite…): pesquise o próprio nível do índice, usando o
iddedefaults.json(SPX, DJI) ou um rótulo curto comoCOMPcomo ticker nos nomes de arquivo. Informe ao worker que é um índice (veja as notas sobre índices no briefing).
- Nenhum ticker nomeado ("execute minha análise de ações", "como está o mercado vs máximas?"): leia
- Crie uma pasta de trabalho:
WORK_DIR=$PWD/drawdown-<YYYY-MM-DD>. - Crie uma lista de tarefas com:
- uma tarefa por ticker
- "Verificar números"
- "Construir e publicar relatório"
2. Distribuir
Crie um subagente por ticker, em paralelo e em segundo plano. O prompt de cada um é:
- o texto completo de
references/worker_brief.md, - com
{TICKER},{WORK_DIR},{SKILL_DIR}e{TODAY}preenchidos, - mais quaisquer ângulos específicos do ticker que valham a pena verificar. Para um fundo de chips, por exemplo: controles de exportação, capex de hyperscalers, ciclo de memória.
Quando o usuário nomeia apenas um ou dois tickers e não pediu subagentes, você pode fazer a pesquisa você mesmo seguindo o mesmo briefing.
3. Aguardar
Quando um worker terminar, marque sua tarefa como concluída e publique uma linha: o ticker, sua % de queda e a data de sua máxima. Não leia as transcrições dos workers.
4. Verificar
Execute:
python3 $SKILL_DIR/scripts/verify.py --dir $WORK_DIR --tickers <T...>
Se relatar MISMATCH, MISSING ou NO SOURCE/TS, corrija o problema antes de construir:
- Erros aritméticos ou de cópia manual: execute
compute_drawdown.pynovamente e corrija o JSON de<T>_metrics.json. - Pesquisa faltando: envie o worker de volta com SendMessage.
UNCITED e NO CROSS-CHECK são avisos. Mencione-os em sua resposta se permanecerem.
5. Construir
Execute:
python3 $SKILL_DIR/scripts/build_report.py --dir $WORK_DIR --tickers <T...> \
--out $WORK_DIR/drawdown_report.html --title "<nome de 2 a 4 palavras>" --eyebrow "<ex. Revisão de drawdown de ETFs>"
Escolhendo o título: escolha um nome curto e específico, como "Drawdowns de ETFs de Tecnologia" ou "Quedas de Ações de Chips". Use o mesmo título para execuções repetidas na mesma cesta.
6. Publicar
Publique o HTML com a ferramenta Artifact, usando icon: "chart" e uma descrição de uma frase que nomeie os tickers e a data de referência.
- Execução repetida na mesma cesta: se o usuário quiser manter o link antigo, republique no URL desse artifact.
- Não edite o HTML gerado. Alterações no relatório pertencem a
build_report.pyouassets/report.css.
7. E-mail (apenas quando o usuário forneceu um endereço)
Pule esta etapa a menos que a mensagem do usuário inclua um endereço de e-mail, por exemplo, "…e envie por e-mail para [email protected]". Se ele disser "envie por e-mail para mim" sem um endereço, peça um; nunca adivinhe ou reuse um endereço de outro lugar.
Sem conectores. Não use Gmail, Outlook ou qualquer outro conector de e-mail ou automação de navegador, e nunca peça ou manipule uma senha de e-mail. O envio acontece do lado do usuário: você prepara uma mensagem pronta para envio, o usuário a envia.
- Construa o e-mail.
O código de saída 2 significa que o endereço é inválido: peça ao usuário para corrigi-lo. O script escrevepython3 $SKILL_DIR/scripts/build_email.py --dir $WORK_DIR --tickers <T...> --to <endereço...> \ --report $WORK_DIR/drawdown_report.html --artifact-url <link publicado> --title "<mesmo título>"drawdown_report.eml(HTML + texto simples, relatório anexado, destinatários e assunto preenchidos), além deemail_body.html,email_body.txteemail.json. - Entregue-o. Envie
drawdown_report.emlcom SendUserFile (exibaattach). - Diga ao usuário como enviá-lo, em duas ou três linhas:
- Abra o
.emlno Outlook (abre como rascunho) ou Apple Mail (Message → Send Again), verifique e pressione Enviar. - Ou, no Terminal do próprio computador:
python3 send_email.py drawdown_report.eml --from <seu e-mail>. O script mostra os destinatários, pede confirmação e solicita uma senha de aplicativo. Enviescripts/send_email.pytambém se ele pedir.
- Abra o
- Privacidade do link. O artifact é privado para o usuário. Se o destinatário for outra pessoa, informe que dependerá do relatório anexado, a menos que o usuário compartilhe a página.
8. Responder
Mantenha a resposta curta:
- Uma frase dizendo o que é a página.
- Uma tabela markdown ordenada por queda, com colunas: ticker, último fechamento, máxima de 52 semanas (data), queda.
- Dois ou três tópicos com as principais conclusões entre os tickers.
- Uma nota curta "Lacunas de dados" cobrindo as falhas de ferramenta que afetaram a execução.
- Se um e-mail foi solicitado: uma linha dizendo que o
.emlestá pronto para envio e como.
Não recapitule as etapas.
Inegociáveis
- Cada número vem de uma chamada de ferramenta, com sua fonte e seu timestamp.
- "Sem dados" é melhor que um palpite.
- Toda a matemática é feita nos scripts.
- Ferramentas somente leitura. Nunca toque em ferramentas de ordem, alerta ou lista de observação. Nunca envie e-mail você mesmo; a etapa 7 apenas prepara uma mensagem para o usuário enviar.
- Nenhuma recomendação de compra ou venda. Apresente ambos os casos de forma justa.