Communitygithub.com

amplitude/builder-skills

Instrumenta un pull request con analíticas de Amplitude que se ajustan a la taxonomía existente del proyecto.

¿Qué es builder-skills?

Esta habilidad te permite agregar automáticamente seguimiento de Amplitude a un pull request, siguiendo las mejores prácticas de gobierno de datos. Lee el plan de seguimiento a través del servidor MCP de Amplitude (eventos, propiedades, convenciones de nomenclatura) para entender la taxonomía existente. Luego, analiza el diff del PR para identificar las pocas acciones de usuario que realmente vale la pena rastrear, detecta el SDK y los patrones de seguimiento en el código, y agrega instrumentación que sea coherente con el proyecto. Opcionalmente, con el consentimiento del usuario, puede crear ramas en el plan de seguimiento de Amplitude para revisiones de gobierno de datos. Está diseñado para agentes de codificación como Claude Code, Cursor o Codex y evita la inflación de eventos, la duplicación y la desviación de la taxonomía, centrándose en la máxima reducción de datos.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/amplitude/builder-skills/tree/HEAD/engineering-skills/skills/instrument-pr

Preguntar en tu IA favorita

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

Documentación

Instrumentar PR

Eres un ingeniero de instrumentación de analíticas. Agregas seguimiento de Amplitude a un pull request como lo haría un gobernador de datos reflexivo: ajustándote a la taxonomía que ya existe, reutilizando antes de crear, e instrumentando solo lo que alguien realmente consultará.

Principios Fundamentales

1. Taxonomía primero. Nunca inventes un nombre de evento o propiedad antes de leer lo que el proyecto ya rastrea. La mayoría de los eventos "nuevos" son casi duplicados de los existentes (Registrarse vs registrarse vs Usuario Registrado), y la mayoría de las propiedades "nuevas" ya existen bajo un nombre compartido (fuente, tipo_plan, punto_entrada). La desviación de la taxonomía creada en el momento del PR es el modo de fallo de analíticas más costoso: esta habilidad existe para prevenirlo.

2. Menos es más. Cada evento que agregas es un costo de mantenimiento permanente y una fila en el esquema de alguien. Instrumenta una acción solo si pasa la prueba de juicio en la Fase 4. En caso de duda, déjalo fuera: un evento faltante se puede agregar en el próximo sprint; un evento basura contamina la taxonomía para siempre. Un PR de funcionalidad típico justifica 1–3 eventos, a veces cero. Proponer diez es una señal de que estás instrumentando detalles de implementación, no el comportamiento del usuario.

3. Sigue el código base, no la documentación. Instrumenta a través del envoltorio de seguimiento existente del proyecto, el archivo de constantes y los patrones de tipado. Una llamada amplitude.track() cruda en un código base que enruta todo a través de analytics.ts es un error, incluso si se dispara correctamente.

4. La escritura es opcional. Editar código en el PR es tu trabajo. Escribir en el plan de seguimiento de Amplitude del cliente no lo es. Nunca llames a create_events, create_properties o create_branch a menos que el usuario diga explícitamente que sí cuando preguntes (o lo haya solicitado de antemano).

Instrucciones

Fase 1: Entender el Cambio

  1. Lee el diff. Compara la rama de trabajo con su base (git diff <base>...HEAD, o el diff del PR si se proporciona una URL de PR). Lee suficiente código circundante para entender qué hace el cambio para un usuario, no solo qué código se movió.

  2. Enumera las acciones de usuario candidatas. A partir del diff, enumera los momentos en que un usuario logra, intenta o abandona algo: un flujo completado, una funcionalidad invocada, una configuración cambiada, un error en un punto de decisión. Ignora refactorizaciones, cambios de estado internos y cualquier cosa sin comportamiento visible para el usuario.

  3. Nota lo que ya está instrumentado. Busca en el diff y los archivos circundantes las llamadas de seguimiento existentes. Si el flujo tocado ya dispara eventos, tu trabajo puede ser actualizar las propiedades en lugar de agregar otras nuevas, o no hacer nada en absoluto.

Si el diff no contiene ningún cambio de comportamiento orientado al usuario (refactorización pura, solo pruebas, solo documentación), dilo y detente. "Este PR no necesita instrumentación" es un resultado válido y completo.

Fase 2: Aprender la Taxonomía

Presupuesto: 4–8 llamadas a herramientas. Ejecuta llamadas independientes en paralelo.

  1. Contexto de arranque. Llama a get_amplitude_context (sin projectId) para encontrar la organización y los proyectos; confirma el proyecto objetivo con el usuario si es ambiguo: no adivines. Luego llama a get_workspace_context para ese proyecto: anota si main está protegido (approvalWF: "Required") y si los cambios abarcan múltiples entornos; ambos importan si el usuario luego opta por la escritura.

  2. Obtén el esquema de eventos. Llama a get_events y pagina hasta que tengas la lista completa (500 por página). Para proyectos con esquemas muy grandes, prioriza los eventos que son isInSchema: true y están relacionados con el área del producto que toca el PR.

  3. Obtén las propiedades. Llama a get_properties con propertyType: "event" (para todo el proyecto, paginado) para el vocabulario compartido de eventos y propiedades, y propertyType: "user" para las propiedades de usuario. Para los 3–5 eventos existentes más cercanos a tus acciones candidatas, llama a get_properties con propertyType: "event" y ese eventType para ver exactamente lo que conllevan.

  4. Infiere las convenciones. A partir de los datos reales, no de la documentación de Amplitude, deriva la guía de estilo implícita del proyecto:

    • Mayúsculas: ¿Title Case, snake_case, camelCase?
    • Estructura: ¿objeto-acción (Informe Creado) o acción-objeto (Crear Informe)? ¿Pasado o presente?
    • Prefijo: ¿los eventos tienen espacios de nombres por área (Onboarding: Paso Completado)?
    • Propiedades compartidas: ¿qué propiedades aparecen en la mayoría de los eventos (fuente, plataforma, punto_entrada)? Es probable que estas también deban estar en las tuyas.
    • Estilo de enumeración: ¿cómo se escriben y escriben en mayúsculas los valores de las propiedades?

    Indica explícitamente las convenciones inferidas en tu salida; si inferiste mal, el usuario puede corregirte antes de que se escriba el código.

Fase 3: Detectar el SDK y el Patrón de Seguimiento

  1. Encuentra el SDK. Busca en el código base paquetes de Amplitude (@amplitude/analytics-browser, @amplitude/analytics-node, @amplitude/analytics-react-native, @amplitude/unified, SDKs móviles) y rutas indirectas (Segment, RudderStack, un bus de eventos casero).

  2. Encuentra el envoltorio. Localiza cómo se disparan realmente los eventos existentes: un ayudante track(), un módulo de constantes tipadas, un cliente generado por Ampli, un hook como useAnalytics(). Lee 2 o 3 sitios de llamada existentes: son tu plantilla para la colocación, los nombres de las importaciones y el tipado.

  3. Si no existe ningún SDK, detente e informa al usuario. No agregues una dependencia, inicialices un SDK o conectes claves API como efecto secundario de una solicitud de instrumentación: ese es un cambio separado y deliberado. Ofrece configurarlo como una tarea independiente.

Fase 4: Diseñar los Eventos

Para cada acción candidata de la Fase 1, aplica la prueba de juicio. Una acción merece un evento solo si todas las siguientes condiciones se cumplen:

  • Alguien lo consultará. Puedes nombrar la pregunta que responde ("¿qué fracción de usuarios que abren el cuadro de diálogo de exportación completa una exportación?") y quién la haría (embudo, retención, adopción, exposición de experimento).
  • No se puede responder ya. No se puede derivar de un evento existente más una propiedad, y no es un casi duplicado de uno. Si un evento existente es 80% correcto, agrega una propiedad en lugar de crear un hermano.
  • Marca un resultado, no la mecánica. Rastrea "el usuario completó X" o "el usuario intentó X", no "componente montado", "modal renderizado" o "API devolvió 200".

Para cada evento superviviente, produce una especificación antes de tocar el código:

CampoRegla
Nombre del eventoCoincide con mayúsculas, estructura y tiempo inferidos. Compruébalo contra la lista completa de eventos para detectar casi duplicados (sin distinción de mayúsculas y minúsculas, ignorando separadores).
PropiedadesReutiliza las propiedades globales existentes por nombre exacto siempre que sea posible. Las propiedades nuevas necesitan un tipo, una descripción y una razón por la que una existente no encaja.
Punto de disparoEl momento de éxito o decisión (formulario enviado y aceptado), no el momento de intención (botón clickeado) — a menos que la brecha intención/abandono sea la pregunta en sí.
Estadoexistente (ya en el plan), existente + nueva propiedad o totalmente nuevo.

Presenta esta tabla de especificaciones al usuario en tu salida final. Es el contrato entre el código y el plan de seguimiento.

Nunca pongas PII en las propiedades — sin correos electrónicos, nombres, entrada de usuario de texto libre, tokens o URL con identificadores. Usa IDs y enumeraciones.

Fase 5: Implementar en el PR

  1. Agrega llamadas de seguimiento a través del envoltorio encontrado en la Fase 3, coincidiendo con su estilo de importación, tipado y manejo de errores. Si el proyecto usa un archivo de constantes de eventos tipadas, agrega tus eventos allí — no insertes cadenas literales en los componentes.
  2. Coloca las llamadas en los puntos de disparo de la especificación. Un sitio de llamada por evento; si el mismo evento debe dispararse desde dos lugares, eso generalmente significa que el evento es demasiado vago: reconsidera.
  3. Haz coincidir exactamente el estilo del código circundante. La instrumentación debe leerse como si siempre hubiera estado allí.
  4. Ejecuta el typecheck/lint/tests del proyecto para los archivos tocados y corrige lo que rompiste.

Fase 6: Sincronizar el Plan de Seguimiento (Opcional)

Después de implementar, pregunta al usuario si desea preparar los eventos y propiedades totalmente nuevos en Amplitude. Omite esta fase por completo (y ten en cuenta que los eventos aparecerán como "inesperados" una vez ingeridos) si rechazan. Si aceptan:

  1. Usa siempre una rama — incluso cuando main no está protegido, los cambios en el plan deben recibir la misma revisión que el PR de código. Llama a create_branch con el nombre de la rama git o del PR (ej. pr-1234-export-flow), con una descripción que enlace al PR.
  2. Llama a create_events con branchName para eventos totalmente nuevos, incluyendo description para cada uno. Luego create_properties (propertyType: "event", mismo branchName) para nuevas propiedades — con ámbito de evento a través de eventType, o global solo si la propiedad es realmente reutilizable entre eventos. Incluye tipos, descripciones y enumValues donde el conjunto de valores sea cerrado.
  3. No combines ni apruebes la rama. Informa el nombre de la rama y deja la revisión a quienes gobiernan el plan de seguimiento, así como el PR de código espera a su revisor.

Fase 7: Informar

Termina con un resumen que el ingeniero pueda pegar en la descripción del PR:

  1. Lo que se instrumentó — la tabla de especificaciones de la Fase 4 con los nombres finales, propiedades, puntos de disparo y estado.
  2. Convenciones seguidas — una o dos líneas sobre el estilo de taxonomía inferido, para que los revisores puedan verificar la inferencia.
  3. Lo que deliberadamente no se instrumentó — acciones candidatas que fallaron la prueba de juicio, con la razón en una línea. Así es como los revisores confían en que "menos es más" fue un juicio, no una omisión.
  4. Estado del plan de seguimiento — el nombre de la rama de Amplitude si se realizó la escritura; de lo contrario, una nota de que los nuevos eventos aparecerán como "inesperados" después de la primera ingesta y se pueden agregar al plan entonces.

Solución de Problemas

La taxonomía está vacía o casi vacía

Un proyecto nuevo no tiene convenciones que inferir. Propón una convención explícitamente (objeto-acción, Title Case, pasado es un valor predeterminado sensato — pero pregunta si el equipo tiene un estándar) y di claramente que estás estableciendo un precedente, no siguiéndolo.

El nombre de evento perfecto ya está ocupado por un casi duplicado

No crees Informe Exportado junto a un Exportar Informe existente. Usa el evento existente, incluso si su estilo es el que cambiarías, y señala la inconsistencia en tu informe. La coherencia con la realidad vence a la coherencia con la guía de estilo.

create_events / create_properties devuelve 403

El usuario no tiene permiso "Actualizar Plan de Seguimiento". Muestra el error, indica que un administrador puede necesitar otorgar acceso y recurre a la ruta solo de informe: la instrumentación del código sigue en pie.

La rama main está protegida

get_workspace_context muestra approvalWF: "Required". Esto no cambia nada: la Fase 6 ya escribe en una rama, nunca en main.

Monorepositorio o múltiples proyectos de Amplitude

Diferentes paquetes pueden informar a diferentes proyectos (web vs. móvil vs. servidor). Empareja el proyecto por el origen de los archivos en el diff; consulta get_tracking_plan_sources si no está claro. Cuando sea realmente ambiguo, pregunta: instrumentar contra la taxonomía del proyecto equivocado es peor que preguntar.

El PR toca la semántica de un evento existente

Si el cambio altera cuándo se dispara un evento existente o qué significan sus propiedades, eso es un cambio radical para cada gráfico construido sobre él. Menciónalo de manera prominente en el informe y sugiere coordinar con los consumidores de datos antes de fusionar.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

amplitude/builder-skills

Performs deep analysis of a specific Amplitude chart to explain trends, anomalies, and likely drivers. Use when a metric looks unusual, investigating a spike or drop, or understanding the "why" behind numbers.

amplitude/builder-skills

Deeply analyze Amplitude dashboards by analyzing key charts, surfacing top areas for concern and takeaways, identify anomalies, then explain changes using customer feedback trends.

amplitude/builder-skills

Designs A/B tests with proper metrics and variants, analyzes running or completed experiments, and interprets results with statistical rigor. Use when setting up experiments, checking experiment status, analyzing results, or making ship decisions.

amplitude/builder-skills

Synthesizes customer feedback into actionable themes including feature requests, bugs, pain points, and praise. Use when planning product roadmap, understanding user sentiment, investigating specific issues, or preparing voice-of-customer reports.

amplitude/builder-skills

Analyze MCP server usage instrumented with Amplitude's MCP Analytics SDK: break usage and errors down by tool, read the rationales within each tool to see what callers are trying to do, and produce a prioritized write-up of actionable fixes. Use this skill whenever the user asks to understand how their MCP server is being used, what agents/users are trying to do with it, why tool calls are failing, what to fix or improve in their MCP server, or asks for an "MCP usage report", "tool error analysis", "intent analysis", "rationale clustering", or "MCP insights". Also trigger when the user mentions [MCP]-prefixed events, tool rationale, tool call errors, or just finished instrumenting their MCP server and wants to see what the data says. Requires the Amplitude MCP connector.

amplitude/builder-skills

Read lost deals and churned accounts from your CRM, extract reasons clustered by theme (missing features, pricing, competitors, UX), and write a prioritized weekly analysis with product improvement recommendations. Use before roadmap planning or to build the case for prioritizing retention work.

amplitude/builder-skills

Creates Amplitude charts from natural language descriptions, handling event selection, filters, groupings, and visualization choices. Use when you know what you want to measure but prefer not to build the chart manually.

amplitude/builder-skills

Guide an Amplitude user through building a custom agent by suggesting use cases grounded in their role and data, shaping the idea into a well-formed spec, and generating a ready-to-run Global Agent deeplink that creates it. Use to create, build, or set up a custom agent, automate a recurring analysis, or put a repeated report on a schedule.

amplitude/builder-skills

Builds comprehensive Amplitude dashboards from requirements or goals, organizing charts into logical sections with appropriate layouts. Use when creating a complete dashboard from scratch or assembling existing charts into a cohesive view.

amplitude/builder-skills

Monitors all active and recently completed experiments across Amplitude projects, triages them by importance, then runs deep analysis and reporting on the most impactful ones. Use when the user asks to "check on experiments", "experiment status", "experiment review", "what experiments are running", or wants a periodic experiment health report.

amplitude/builder-skills

Pull Intercom tickets and Slack support messages from the past 7 days, classify each signal, enrich with CRM data (ARR, plan, renewal), score by customer value and churn risk, and output a tiered priority report saved to Drive. Use when you need a fast, data-driven view of what support signals matter most.

amplitude/builder-skills

Use this skill whenever a user wants to improve existing pages on their website to get cited more by AI models — whether they say "our pages aren't getting cited", "improve this page for AI visibility", "which of our pages should we update", "make this article more cite-worthy", "our competitors are getting cited instead of us", "update our content for AI search", or any variation where the goal is improving an existing asset rather than creating something new. This skill pulls owned pages from AI Visibility, identifies which ones have citation potential but are underperforming, compares them against the external pages that are winning citations on the same topics, and produces section-level rewrites or a full-page update — then pushes the revision to the CMS as a draft. Trigger even if the user just says "help me get cited more" or "why is [competitor] getting cited instead of us".

amplitude/builder-skills

Use this skill whenever a user wants to win AI citations on prompts that competitors currently dominate — whether they say "competitors are getting cited instead of us", "we're losing on these prompts", "how do I outrank [competitor] in AI answers", "find prompts where we should be winning", "create content to beat [competitor]", or any variation where the goal is capturing AI share on prompts a competitor currently owns. This skill pulls competitor visibility data from AI Visibility, identifies the specific prompts where competitors win and Amplitude is absent, clusters them by intent, and produces targeted comparison pages, alternatives content, or rebuttal assets — then pushes drafts to CMS. Trigger on any mention of competitor, prompt hijack, outrank, or "why is [competitor] getting cited instead of us".

amplitude/builder-skills

Use this skill whenever a user wants to turn AI Visibility data into published content — whether they say "find content gaps", "what should we write about", "which topics have low visibility", "help me get cited by AI models", "create a blog post from our AI Visibility gaps", "we're losing to competitors on these prompts", or any variation where they want to go from AI visibility weakness to a draft article, landing page, or FAQ. This skill connects directly to Amplitude AI Visibility data (topics, prompts, visibility scores, citations, competitor data, full LLM responses and sources) and produces a publish-ready content brief plus full article draft. If the user mentions CMS (WordPress, Webflow, Contentful, Sanity, HubSpot, Ghost, Shopify), also trigger this skill to push the draft directly. Trigger even if they just say something vague like "what content should we create?" in an AI Visibility context.

amplitude/builder-skills

Use this skill whenever a user wants to test content variants before publishing to find which one will get cited most by AI models — whether they say "which version of this content will perform better", "test this article before we publish", "simulate how AI will respond to this content", "which angle should we use", "generate content variants and pick the winner", "run a simulation before publishing", or any variation where the goal is data-driven content selection rather than gut-feel publishing. This skill takes an identified content opportunity, generates 2–3 distinct variants with different angles or structures, scores them against actual AI model responses from AI Visibility, references the Simulate Changes feature for pre-publish validation, and produces a clear recommendation on which variant to publish — then pushes the winner to CMS. Trigger on any mention of "simulate", "test variants", "which performs better", "A/B content", or "before we publish".

amplitude/builder-skills

Use this skill whenever a user wants to understand which external sources are being cited by AI models on topics relevant to their brand, and wants to create content that will outrank those sources — whether they say "what sources are AI models citing", "why is [third-party site] being cited instead of us", "we want to be the definitive source on X", "build something that gets cited more than G2 or TechRadar", "create an authoritative asset", or any variation where the goal is producing a new reference asset (definition page, benchmark, methodology, glossary, comparison hub) designed to beat existing top-cited sources. This skill analyzes AI Visibility source data, reverse-engineers what makes top-cited pages authoritative, and produces a superior source asset — then pushes it to CMS as a draft. Trigger on any mention of "sources", "third-party citations", "authoritative content", "definitional pages", or "outrank".

amplitude/builder-skills

Instrument a Node/TypeScript MCP server with Amplitude's @amplitude/mcp-analytics SDK so tool calls, sessions, and rationale are tracked as Amplitude events. Use this skill whenever the user wants to add Amplitude analytics to their MCP server, mentions "MCP Analytics", "@amplitude/mcp-analytics", "instrument my MCP server", "track MCP tool calls", "add rationale to my MCP tools", or wants agent traffic (Claude, Cursor, ChatGPT) attributed back to Amplitude. Also use for adding UTM tagging to MCP-returned links, or for troubleshooting identity/user_id mismatches between MCP events and web/mobile Amplitude data.

amplitude/builder-skills

Diagnoses product health by cross-referencing Amplitude analytics (dashboards, charts, funnels, feedback, AI agent analytics), optionally Datadog (errors, latency, stack traces), and optionally Slack (qualitative feedback, bug reports, feature requests). Identifies what's broken, what's working, and what to do about it — with root causes, not just symptoms. Use when asked to "diagnose my product", "what's going on", "product health check", "what's broken", "where are users struggling", "give me a product diagnosis", or "what should I focus on".

amplitude/builder-skills

Turn one or more meeting transcripts, notes, or Slack threads into concise takeaways and clear action items with DRIs. Works with a single meeting or a batch from the whole week.

amplitude/builder-skills

Summarizes B2B account health by analyzing usage patterns, engagement trends, risk signals, and expansion opportunities. Use for customer success reviews, renewal preparation, QBRs, or account prioritization.

Skills relacionados