wbdou2006/ClaudeSkills

Investiga qué tan lejos están las acciones o ETFs de su máximo de 52 semanas, por qué cayeron, y los casos alcista y bajista, luego publica un informe HTML consistente y, si el usuario proporciona un correo electrónico, prepara un correo listo para enviar. Sin tickers específicos, usa una lista de seguimiento predeterminada (XLK, FTEC, QQQ, SMH, ARTY, S&P 500, Dow Jones). Úsalo siempre que el usuario liste tickers o pida un chequeo de mercado, máximos de 52 semanas, caídas, 'cuánto ha bajado X', análisis de retroceso, o un informe de caída/alcista/bajista, incluso si no dice 'informe'.

¿Qué es ClaudeSkills?

Esta habilidad para agentes de IA (como Claude Code, Cursor, Codex) genera un informe detallado de drawdown de 52 semanas para acciones, ETFs e índices. Es ideal para inversores y traders que necesitan un análisis rápido y estandarizado de por qué un activo ha caído desde su máximo anual. El agente automatiza la recopilación de datos, cálculos numéricos y generación de informes HTML y correo electrónico, mientras que el usuario se enfoca en la investigación y verificación. Soporta múltiples tickers paralelamente, usa scripts Python para todo el procesamiento numérico (drawdown, rendimientos, verificación), y produce un informe visual profesional con gráficos semanales, drivers de caída y casos alcista/bajista. También puede preparar un correo electrónico listo para enviar si el usuario proporciona una dirección. Es útil para revisiones periódicas de cartera, análisis técnico de fortaleza relativa, y comunicaciones de inversión. Funciona en cualquier sistema con Python 3.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wbdou2006/ClaudeSkills/tree/HEAD/stock-analysis

Installed? Explore more Investigación y análisis de datos skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Análisis de acciones

Esta habilidad produce el mismo informe cada vez:

  • una tabla de resumen
  • un panel por ticker, que contiene:
    • hechos
    • un gráfico semanal contra el máximo de 52 semanas
    • rendimientos
    • los impulsores de la caída
    • los casos alcista y bajista
    • tenencias, brechas de datos y el registro de cálculos

Los scripts hacen toda la aritmética y el HTML. Tu trabajo es la investigación y la verificación. No rediseñes la página ni escribas HTML a mano.

SKILL_DIR es la carpeta que contiene este archivo. Encuéntrala una vez con dirname en la ruta de este SKILL.md.

Archivos

RutaPropósito
scripts/compute_drawdown.pyCSV diario → máximo y mínimo de 52 semanas, % de caída, rendimientos, cierres semanales
scripts/verify.pyRe-deriva cada número destacado de los CSV, verifica campos y fuentes, escribe verified.json, sale con 1 ante cualquier problema
scripts/build_report.pyWorker JSON + verified.json → una página HTML autocontenida (usa assets/report.css)
scripts/build_email.pymismos números verificados → correo listo para enviar drawdown_report.eml (HTML seguro + texto plano, informe adjunto); valida la dirección
scripts/send_email.pypara que el usuario ejecute en su propia computadora: envía el .eml por SMTP con un aviso de confirmación y una contraseña de aplicación ingresada localmente
defaults.jsonla lista de seguimiento predeterminada usada cuando el usuario no nombra tickers (editable por el usuario)
references/worker_brief.mdel resumen que sigue cada trabajador (rellena los marcadores {…})
references/schema.mdel contrato <TICKER>.json
examples/run-2026-10-16/una ejecución de referencia completa (FTEC, QQQ, SMH, ARTY): cuatro JSON de trabajadores y el report.html terminado. Úsalo como referencia de profundidad, tono y estilo de citación.

Flujo de trabajo

1. Configuración

  1. Lee la lista de tickers de la solicitud del usuario.
    • Sin tickers nombrados ("ejecuta mi análisis de acciones", "¿cómo está el mercado vs los máximos?"): lee $SKILL_DIR/defaults.json y usa su default_watchlist, en ese orden. Di en tu primera línea que estás usando la lista predeterminada y enumérala.
    • Tickers nombrados: usa exactamente esos; no agregues los predeterminados a menos que el usuario lo pida (ej. "los de siempre más NVDA").
    • Índices (S&P 500, Dow Jones, Nasdaq Composite…): investiga el nivel del índice en sí mismo, usando el id de defaults.json (SPX, DJI) o una etiqueta corta como COMP como ticker en los nombres de archivo. Indica al trabajador que es un índice (consulta las notas del índice en el resumen).
  2. Crea una carpeta de trabajo: WORK_DIR=$PWD/drawdown-<AAAA-MM-DD>.
  3. Crea una lista de tareas con:
    • una tarea por ticker
    • "Verificar números"
    • "Construir y publicar informe"

2. Distribuir

Genera un subagente por ticker, en paralelo y en segundo plano. El mensaje de cada uno es:

  • el texto completo de references/worker_brief.md,
  • con {TICKER}, {WORK_DIR}, {SKILL_DIR} y {TODAY} rellenados,
  • más cualquier ángulo específico del ticker que valga la pena verificar. Para un fondo de chips, por ejemplo: controles de exportación, gasto de capital de hiperescaladores, ciclo de memoria.

Cuando el usuario nombra solo uno o dos tickers y no ha solicitado subagentes, puedes hacer la investigación tú mismo siguiendo el mismo resumen.

3. Esperar

Cuando un trabajador termina, marca su tarea como completada y publica una línea: el ticker, su % de caída y la fecha de su máximo. No leas las transcripciones de los trabajadores.

4. Verificar

Ejecuta:

python3 $SKILL_DIR/scripts/verify.py --dir $WORK_DIR --tickers <T...>

Si reporta MISMATCH, MISSING o NO SOURCE/TS, corrige el problema antes de construir:

  • Errores aritméticos o de copia manual: vuelve a ejecutar compute_drawdown.py y corrige el JSON desde <T>_metrics.json.
  • Investigación faltante: envía al trabajador de vuelta con SendMessage.

UNCITED y NO CROSS-CHECK son advertencias. Menciónalas en tu respuesta si persisten.

5. Construir

Ejecuta:

python3 $SKILL_DIR/scripts/build_report.py --dir $WORK_DIR --tickers <T...> \
  --out $WORK_DIR/drawdown_report.html --title "<nombre de 2-4 palabras>" --eyebrow "<ej. Revisión de drawdown de ETFs>"

Elegir el título: escoge un nombre corto y específico, como "Drawdowns de ETFs Tecnológicos" o "Retrocesos de Acciones de Chips". Usa el mismo título para ejecuciones repetidas en la misma canasta.

6. Publicar

Publica el HTML con la herramienta Artifact, usando icon: "chart" y una descripción de una oración que nombre los tickers y la fecha de corte.

  • Ejecución repetida en la misma canasta: si el usuario quiere mantener el enlace anterior, vuelve a publicar en la URL de ese artifact.
  • No edites el HTML generado. Los cambios a nivel de informe pertenecen a build_report.py o assets/report.css.

7. Correo electrónico (solo cuando el usuario proporcionó una dirección)

Omite este paso a menos que el mensaje del usuario incluya una dirección de correo electrónico, ej. "…y envíalo por correo a [email protected]". Si dicen "envíamelo por correo" sin una dirección, pide una; nunca adivines ni reutilices una dirección de otro lugar.

Sin conectores. No uses Gmail, Outlook ni ningún otro conector de correo o automatización de navegador, y nunca pidas ni manejes una contraseña de correo. El envío ocurre del lado del usuario: tú preparas un mensaje listo para enviar, el usuario lo envía.

  1. Construye el correo.
    python3 $SKILL_DIR/scripts/build_email.py --dir $WORK_DIR --tickers <T...> --to <dirección...> \
      --report $WORK_DIR/drawdown_report.html --artifact-url <enlace publicado> --title "<mismo título>"
    
    El código de salida 2 significa que la dirección no es válida: pide al usuario que la corrija. El script escribe drawdown_report.eml (HTML + texto plano, informe adjunto, destinatarios y asunto completados), además de email_body.html, email_body.txt y email.json.
  2. Entrégalo. Envía drawdown_report.eml con SendUserFile (mostrar attach).
  3. Dile al usuario cómo enviarlo, en dos o tres líneas:
    • Abre el .eml en Outlook (se abre como borrador) o Apple Mail (Message → Send Again), revísalo y presiona Enviar.
    • O, desde la Terminal en su propia computadora: python3 send_email.py drawdown_report.eml --from <su dirección>. El script muestra los destinatarios, pide confirmación y solicita una contraseña de aplicación. Envía scripts/send_email.py también si lo piden.
  4. Privacidad del enlace. El artifact es privado para el usuario. Si el destinatario es otra persona, di que dependerán del informe adjunto a menos que el usuario comparta la página.

8. Responder

Mantén la respuesta breve:

  1. Una oración que diga qué es la página.
  2. Una tabla markdown ordenada por caída, con columnas: ticker, último cierre, máximo de 52 semanas (fecha), caída.
  3. Dos o tres viñetas con los hallazgos principales entre los tickers.
  4. Una nota breve de "Brechas de datos" que cubra las fallas de herramientas que afectaron la ejecución.
  5. Si se solicitó un correo: una línea que diga que el .eml está listo para enviar y cómo.

No recapitules los pasos.

No negociables

  1. Cada número proviene de una llamada a herramienta, con su fuente y su marca de tiempo.
  2. "Sin datos" es mejor que una suposición.
  3. Todas las matemáticas se hacen en los scripts.
  4. Solo herramientas de solo lectura. Nunca toques herramientas de órdenes, alertas o listas de seguimiento. Nunca envíes correo tú mismo; el paso 7 solo prepara un mensaje para que el usuario lo envíe.
  5. Sin recomendación de compra o venta. Presenta ambos casos de manera justa.

Skills relacionados