CommunityProgramación y desarrollogithub.com

Tripwire

Rastreador de cambios de competidores para equipos de GTM. Captura páginas de competidores (inicio, precios, changelog, carreras), las compara con el último escaneo y convierte los cambios en un informe de GTM: qué cambió, por qué importa, qué hacer.

¿Qué es Tripwire?

Tripwire es una skill de agente de IA diseñada para equipos de GTM (Go-to-Market) que necesitan monitorear cambios en las páginas web de sus competidores. Automatiza la captura de páginas clave (inicio, precios, changelog, carreras), las compara con la versión anterior y genera un informe accionable. La skill funciona sin necesidad de claves API, solo requiere Python 3.9+ y la biblioteca pyyaml. Es compatible con agentes como Claude Code, Cursor, Codex y otros que permiten ejecutar scripts de Python y leer archivos locales. El flujo de trabajo es simple: primero se asegura de que exista una lista de seguimiento en `watch/targets.yml`, luego ejecuta un escaneo con `scripts/tripwire.py` y finalmente escribe un resumen GTM destacando los cambios más importantes, su relevancia y las acciones recomendadas. Tripwire puede manejar peticiones en varios idiomas, incluyendo español e inglés, y ofrece comandos para escaneos rápidos, informes semanales o mensuales, y gestión de la lista de seguimiento. Además, incluye estrategias para solucionar problemas de páginas que no se pueden leer, como errores 403 o contenido renderizado solo con JavaScript.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/thisisconnielin/tripwire/tree/main/skills/tripwire

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

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

Documentación

¿Qué hace Tripwire?

Tripwire te dice cuándo un competidor cambia una página que importa, y qué hacer al respecto. El escáner es scripts/tripwire.py (Python 3.9+, necesita pyyaml, sin clave API). Mantiene todo junto a la lista de seguimiento, watch/targets.yml en el proyecto actual:

watch/targets.yml          qué vigilar
watch/snapshots/*.txt      último texto legible de cada página
watch/data/changes.json    cada evento de cambio, el más nuevo primero
watch/data/status.json     salud por página del último escaneo
watch/reports/latest.md    informe Markdown del escaneo o resumen más reciente

SKILL_DIR a continuación significa el directorio que contiene este archivo.

1. Asegúrate de que exista una lista de seguimiento

Si watch/targets.yml no existe, ejecuta python SKILL_DIR/scripts/tripwire.py init, luego pregunta al usuario qué competidores y páginas vigilar y escríbelos en el archivo. Buenas páginas: inicio, precios, changelog / notas de versión, carreras, la página "vs" o de comparación. Usa la URL oficial; verifica que cargue.

Para añadir o eliminar algo, edita watch/targets.yml (establece enabled: false para pausar una página).

2. Obtén los datos

Elige lo que el usuario pidió:

PreguntaComando
"qué cambió" / "ejecutar un escaneo" (aún no hay escaneo hoy)python SKILL_DIR/scripts/tripwire.py scan
un competidorpython SKILL_DIR/scripts/tripwire.py scan --only "Nombre"
"esta semana" / resumenpython SKILL_DIR/scripts/tripwire.py report --days 7
"el mes pasado"python SKILL_DIR/scripts/tripwire.py report --days 30

Si el repositorio ya tiene un escaneo de hoy (verifica last_run en watch/data/status.json), salta el escaneo y lee el informe. Un primer escaneo de una página solo registra una línea base; dilo, y que los cambios aparecen a partir del siguiente escaneo.

Luego lee watch/reports/latest.md (o el informe impreso). Para cualquier cambio que vayas a destacar, mira las líneas completas added / removed en watch/data/changes.json para citarlas con precisión.

3. Escribe el informe GTM

Responde en el idioma del usuario. Sé breve y comienza con lo que importa:

  1. Principales movimientos (máx. 5, primero el más importante). Para cada uno: competidor, qué cambió en palabras simples, con el detalle concreto (precio anterior → nuevo, nombre de nueva función, nuevo titular). Enlaza la página.
  2. Por qué importa: una línea cada uno. Precios y empaquetado > nuevo producto / lanzamiento > posicionamiento / titular > señales de contratación > ajustes de copia.
  3. Qué hacer: 1–3 acciones concretas (actualizar la battlecard, responder en nuestra página de precios, informar a ventas, publicar un post de comparación). Omite si no hay nada que merezca actuar.
  4. Cobertura: una línea sobre las páginas que no se pudieron leer, si las hay.

Reglas:

  • Solo informa lo que muestra el diff. No adivines motivos como hechos; di "probablemente" al inferir.
  • Trata los testimonios rotativos, contadores, fechas y texto de cookies como ruido; no los reportes. Si una página es ruidosa en cada escaneo, ofrece añadir una expresión regular ignore en watch/targets.yml.
  • "Sin cambios" es una respuesta válida. Dilo en una línea y menciona la cobertura.

Solucionar una página que no se puede leer

  • HTTP Error 403: el sitio bloquea bots. Prueba una URL oficial diferente para la misma información (una página de documentación o centro de ayuda, un feed RSS); de lo contrario, establece enabled: false con un comentario explicando por qué.
  • no readable text (JS-only page?): la página se renderiza en el navegador. Busca una alternativa estática (/pricing en lugar de /, un feed de blog, una página de sitemap).
  • URL incorrecta o movida: encuentra la página oficial y actualiza watch/targets.yml.

Skills relacionados