Vigilância de sismos
O script scripts/sismos.py (somente Python padrão, 3.9+) consulta as fontes sísmicas e calcula
para a localização do usuário a distância, a direção e a intensidade estimada (Mercalli).
Antes de responder: o que NÃO pode fazer
Nenhum sistema pode prever terremotos, nem mesmo o GlobalQuake. O que esta skill faz é avisar assim que possível quando um sismo já foi detectado. Se o usuário pedir "me avise quando vai tremer", diga isso em uma frase e ofereça a vigilância. Com USGS e EMSC o aviso chega entre 1 e 20 minutos após o sismo. Somente com GlobalQuake pode chegar em segundos. Para emergências, a fonte oficial no Chile é o SAE da SENAPRED e o CSN (sismologia.cl).
Localização e limiares
Por padrão: Copiapó (-27.3668, -70.3314), raio 500 km, M≥6.0 em todo o mundo, ignora M<3.0.
Se o usuário mencionar outra cidade ou coordenadas, passe-as com --lat --lon --lugar (use coordenadas
que você conheça da cidade). Também podem ser definidas com as variáveis SISMOS_LAT, SISMOS_LON,
SISMOS_LUGAR, SISMOS_RADIO_KM, SISMOS_MAG_GLOBAL, SISMOS_MAG_MIN.
Nos comandos abaixo, SKILL_DIR é o diretório base desta skill (aparece ao carregá-la):
~/.claude/skills/sismos se instalada para o usuário, ou .claude/skills/sismos dentro de um
projeto. Substitua pelo caminho real.
Pergunta pontual: "houve tremores?"
python3 SKILL_DIR/scripts/sismos.py agora --horas 24
Use --json se precisar processar os dados. Resuma para o usuário: os sismos mais relevantes
(os de maior intensidade estimada primeiro), com magnitude, distância, direção, hora do Chile e
intensidade. Se não houve nenhum, diga. Se o script escrever ERROR fonte ..., avise que essa fonte
falhou. Com código de saída 2, as duas fontes falharam: não diga "não houve sismos".
Vigilância contínua: "me avise se tremer"
- Inicie o monitor com a ferramenta Monitor (não com Bash):
command:python3 -u SKILL_DIR/scripts/sismos.py vigiar(adicione--lat/--lon/--lugarse necessário)description:sismos perto de <lugar>timeout_ms:1800000(máximo)
- Confirme ao usuário em uma linha o que está monitorando (local, raio, magnitude) e que o aviso chega com o atraso das fontes.
- Cada linha do monitor é um evento:
VIGIANDO ...→ inicialização correta, não precisa dizer mais nada.SISMO nivel=ALERTA ...→ envie primeiro uma notificação com a ferramenta PushNotification (status: "proactive", uma linha de menos de 200 caracteres, p. ex.Sismo M5.4 a 42 km ao O de Copiapó, intensidade V. Hora 18:03). Se a ferramenta não estiver carregada, carregue-a com ToolSearch (select:PushNotification). Em seguida, avise no chat imediatamente, primeiro o essencial: magnitude, distância, intensidade estimada e hora. Se a intensidade for V ou maior, adicione em 2-3 linhas as medidas de autoproteção (abaixar-se, cobrir-se e segurar-se; afastar-se de janelas; se estiver na costa e o movimento foi forte ou longo, evacuar para uma área elevada sem esperar o alerta oficial) e que revise SENAPRED e o SHOA.SISMO nivel=INFO ...→ avise-o de forma breve no chat (sismo distante ou fraco em sua localização). Envie PushNotification apenas se a magnitude for 6.0 ou mais.- Se a linha disser
(atualização)→ a magnitude foi corrigida ou o nível subiu. Avise a mudança. - Se a linha incluir
SEM_CONFIRMAR→ detecção preliminar (GlobalQuake). Diga isso. ESTADO fonte=X QUEDA→ avise que essa fonte não responde e que a vigilância pode não ver sismos. ComRECUPERADA, avise em uma linha que voltou.
- O monitor expira após 30 minutos: quando chegar o aviso de expiração, reinicie-o com o
mesmo comando sem perguntar, a menos que o usuário tenha pedido para parar. O script lembra o que já
foi avisado (
~/.cache/claude-skill-sismos/estado.json), então ao reiniciar não repete sismos. - Se o usuário pedir para parar, interrompa o monitor com TaskStop.
Para testar se o aviso funciona sem esperar um sismo real:
python3 SKILL_DIR/scripts/sismos.py teste imprime um sismo fictício com o mesmo formato.
GlobalQuake (detecção em segundos)
O código aberto do GlobalQuake está descontinuado desde a 1.0.0 (continua em globalquake.net como projeto proprietário). GlobalQuake Server 0.11 traz uma API FDSNWS-event, desligada por padrão:
- Em suas configurações:
autoStartFDSNWSEventServer=true(portaFDSNWSEventPort, por padrão 8080). - Exporte
SISMOS_GQ_URL=http://localhost:8080(ou passe--gq-url). O vigilante o consulta a cada 5 s e também continua consultando USGS/EMSC. Seus sismos aparecem comofontes=globalquake SEM_CONFIRMARaté que um catálogo os confirme. GlobalQuake é experimental: diga isso ao avisar.
Alternativa: o backend sismo-rt/ deste repositório (WebSocket do EMSC em tempo real + GlobalQuake) com
SISMOS_RT_URL=http://localhost:8000 (ou --rt-url). O vigilante escuta seu fluxo SSE e, se cair,
volta a consultar apenas USGS/EMSC. Detalhes em sismo-rt/docs/GLOBALQUAKE.md.
Rede necessária
Hosts: earthquake.usgs.gov e www.seismicportal.eu (e os do GlobalQuake ou sismo-rt se usados). Se ambos falharem
com 403 ou um erro de túnel em uma sessão na nuvem, a política de rede do ambiente os está
bloqueando. Diga isso ao usuário e que os permita na configuração do ambiente, ou que use a skill
diretamente do Claude Code em seu computador.