Un Claude Skill que minea conversaciones de win/loss en Gong, las reconcilia contra los outcomes de deals en Salesforce y produce una battlecard interna que un rep puede leer en el camino a la call. La card es estructurada: resumen de posicionamiento, dónde ganas, dónde pierdes, talk-tracks por objeción (cada uno marcado interno o customer-facing), y una lista corta de “trampas a evitar”. Reemplaza la battlecard escrita por PMM que era cierta el día que se publicó y que está desactualizada al trimestre siguiente.
Cuándo usarlo
Usa este skill cuando un deal activo en pipeline nombre a un competidor que ya trackeas y la card existente tenga más de ~30 días. El rep necesita una hoja de manejo de objeciones hoy, no en el próximo sprint. El skill corre en aproximadamente 90 segundos contra una ventana de Gong de 180 días y produce una card en Markdown que el rep puede pegar en el registro del deal.
El bundle en apps/web/public/artifacts/competitive-battlecard-skill/ contiene:
SKILL.md— la definición del Skill con seccionesWhen to invoke,Inputs,Method,Output formatyWatch-outs.references/1-battlecard-format.md— el esqueleto Markdown literal que el Skill rellena, con reglas de orden de secciones.references/2-objection-talk-track-library.md— handlers canónicos para los cinco patrones recurrentes de objeciones (pricing-aggression, integration-depth, migration-effort, support-quality, security-and-compliance) más la excepción de genuine-feature-gap.references/3-internal-vs-external.md— las reglas de clasificación que deciden qué líneas pueden salir de la empresa, incluyendo la blocklist de métricas internas y el comportamiento de auto-redacción.
Cuándo NO usarlo
Salta el skill en cualquiera de estos casos — correrlo igual produce un artefacto que pierde el tiempo del rep o, peor, despacha FUD.
- El competidor tiene menos de ~5 menciones en la ventana de lookback. El Skill devuelve “señal insuficiente” en lugar de rellenar; no vuelvas a correrlo con una ventana más amplia esperando más datos.
- Necesitas una página comparativa customer-facing. Este Skill emite una battlecard interna. Las reglas de clasificación en
references/3-internal-vs-external.mdexisten precisamente para que las líneas internas nunca se filtren; para páginas comparativas customer-facing, construye un artefacto separado revisado por PMM y legal. - El “competidor” es el statu quo (Excel, script in-house, ninguna herramienta). Vender contra el statu quo es un movimiento distinto — no hay un posicionamiento de competidor nombrado para extraer. Usa un script de discovery en su lugar.
- Solo tienes deals ganados taggeados. Sin datos de pérdida el Skill no puede extraer patrones de pérdida, y una battlecard que solo describe victorias es reconfortante pero inútil.
Setup
- Taggea los deals. Cada deal Closed Won y Closed Lost de los últimos 12 meses necesita al menos un competidor poblado en Opportunity. Si la cobertura está por debajo de ~70%, corre un backfill único — Claude puede leer las notas del deal y proponer tags de competidor para aprobación humana. Haz esto primero; todo lo downstream depende de la cobertura de tagging.
- Instala el Skill. Coloca el bundle en
~/.claude/skills/(o el equivalente con scope de proyecto). DefineGONG_API_KEYySFDC_TOKENen tu entorno. Confirma con/skillsque el Skillcompetitive-battlecardresuelve y la descripción se renderiza. - Configura el scope. Edita
references/competitor-list.md(lo creas a partir del stub de plantilla) con los 3-5 competidores que trackeas activamente, sus alias (variantes de mayúsculas/minúsculas y de módulo de producto —Competitor X — CoreversusCompetitor X — Enterprise— explícitamente), y la sales motion que cada uno lidera. - Reemplaza las references de plantilla. Los
objection-talk-track-library.mdyinternal-vs-external.mdque vienen son plantillas con handlers placeholder. PMM y legal revisan y reemplazan con los handlers reales de tu equipo y la blocklist real de tu equipo antes de la primera generación. No saltes este paso — el Skill rellena alegremente las plantillas con especificidad alucinada si el contenido de las references es genérico. - Genera. Invoca
competitive-battlecard(competitor="competitor-x", lookback_days=180). Pasadeal_idsi la card es para un deal vivo específico, así los talk-tracks se ponderan hacia las objeciones planteadas en ese hilo. Pasaprior_card_pathpara obtener un diff de “qué cambió desde el último refresh” anexado. - Refresca con cadencia de 30 días por competidor. Programa la generación. Más viejo que 30 días y la card antepone un banner de “verificar antes de usar” — eso es feature, no bug, pero molesta a los reps.
Qué hace realmente el skill
Cinco pasos, en orden, sin paralelismo — los pasos posteriores dependen del contexto de los anteriores.
- Tirar el corpus de calls. Consulta Gong por cada call en la ventana de lookback donde el competidor o uno de sus alias (según
references/competitor-list.md) sea mencionado. Extrae una ventana de transcripción de 60 segundos a cada lado de la mención. Hard cap en 200 calls; por encima de eso, estrecha la ventana antes de samplear. - Reconciliar a outcomes de Salesforce. Une el deal ID de cada call contra Opportunity. Bucketiza en
won,lost,openyunknown(sin match en SFDC). El bucketunknownse descarta de la síntesis — el sesgo de selección es demasiado alto — pero el conteo se reporta como nota a pie de calidad de datos. - Extraer patrones de pérdida. Dos pasadas. La primera pasada clasifica cada snippet de deal-perdido en uno de los patrones canónicos de
references/2-objection-talk-track-library.mdoother. La segunda pasada promueve un patrón nuevo solo si el mismo tema aparece en 3+ deals; debajo de ese umbral las citas se publican crudas, no generalizadas. El umbral de tres deals es la línea de “ruido versus señal” — cualquier cosa más baja inventa patrones a partir de una o dos anécdotas. - Extraer patrones de victoria. Mismo enfoque de dos pasadas contra el bucket de ganados. La cita “te elegimos porque…” es el artefacto de mayor señal y se publica verbatim con el ID de la call.
- Ensamblar la card y clasificar cada línea. Rellena el esqueleto de
references/1-battlecard-format.md. Estampa cada línea con[INTERNAL]o[EXTERNAL_OK]según las reglas enreferences/3-internal-vs-external.md. Auto-redacta métricas internas de las líneas[EXTERNAL_OK]para que el talk-track siga siendo usable frente al cliente sin filtrar el número subyacente.
Realidad de costos
Una corrida típica tira ventanas de transcripción de 60 segundos de 50-150 calls, más las páginas públicas del competidor (pricing, producto, posts de blog recientes). El costo de tokens aterriza en aproximadamente 40-80k tokens de entrada y 8-15k tokens de salida por battlecard, o cerca de $0,20-$0,50 de Claude Sonnet al pricing actual. Tres competidores refrescados mensualmente está bien por debajo de $5/mes; la historia de costo está dominada por el tiempo humano ahorrado (una battlecard escrita por PMM es medio día de trabajo), no por el modelo.
El costo no trivial es la cadencia de refresh de 30 días por competidor trackeado. Si trackeas 3 competidores, eso es una generación cada diez días en promedio. Prográmala; no corras a demanda o lo olvidarás. La card lleva un banner de “verificar antes de usar” en cuanto cualquier fuente pública en ella tiene más de 30 días, que es el watchdog para cuando la cadencia se afloja.
El costo oculto es la revisión de PMM y legal de las references antes de la primera corrida. Una instalación inicial requiere ~2 horas de tiempo de PMM reemplazando la plantilla de talk-track-library con los handlers reales de tu equipo, y ~1 hora de tiempo de legal confirmando la blocklist interno-versus-externo. Saltarte esto y el Skill despacha handlers genéricos con especificidad de aspecto confiado, que es el peor modo de falla posible.
Métrica de éxito
Dos métricas que vale la pena trackear, ninguna de ellas “battlecards generadas”:
- Win rate contra el competidor nombrado, medido trimestralmente, acotado a deals donde el rep usó la battlecard más reciente (trackea vía un campo “battlecard version” en Opportunity). El baseline es tu win rate existente; la barra a superar es +5 puntos porcentuales dentro de dos trimestres de la adopción. Por debajo de ese delta, o las battlecards no se están leyendo o los datos por debajo son demasiado ralos — diagnostica antes de continuar.
- Tiempo-a-refresh-de-battlecard, medido como la edad mediana de la card usada en un deal al momento del cierre del deal. Antes del Skill, esa mediana es lo que sea la cadencia de PMM — usualmente trimestres. Después, debería estar bajo 30 días. Si no lo está, el schedule está roto y el banner de “verificar antes de usar” se está ignorando.
vs alternativas
vs Klue / Crayon (plataformas de inteligencia competitiva off-the-shelf): Klue y Crayon son más fuertes del lado de fuente pública — crawlean páginas de pricing y features del competidor en un schedule y exponen diffs sin que tengas que cablearlo. Son más débiles del lado del corpus de calls internas; la integración con Gong + Salesforce existe pero no es el centro de gravedad del producto, y las battlecards resultantes se inclinan hacia “lo que dice su sitio” en lugar de “lo que tus clientes realmente dijeron en la sala”. Este Skill es el inverso: corpus-interno-primero, fuente-pública-aumentado. La elección es de qué lado de los datos confías más — para una sales motion donde el factor decisivo es manejo de objeciones anclado en evidencia interna, ese es este Skill. Para un panorama competitivo de 50 competidores donde la amplitud importa más que la profundidad en cada uno, esos son Klue o Crayon.
vs battlecards escritas por PMM en Notion/Confluence: la card escrita por PMM tiene mejor prosa y un posicionamiento más ajustado. También se desactualiza a una cadencia trimestral en el mejor caso, y representa lo que PMM cree que dicen los clientes en lugar de lo que los clientes realmente dijeron. Usa la salida del Skill como input para la card escrita por PMM — deja que PMM cure la voz y la estructura, pero ancla cada afirmación en los patrones + citas + IDs de call de Gong del Skill. La motion combinada es más fuerte que cualquiera por sí sola.
vs DIY (analistas en un Google Doc): puedes hacer esto con personas y una tarde por competidor por trimestre. La razón para automatizar es la cadencia — las battlecards una-vez-por-trimestre están desactualizadas para el segundo mes — no el costo por card.
Watch-outs
- Riesgo de difamación. Cada afirmación comparativa sobre el producto, pricing o soporte del competidor debe trazarse a una fuente pública que el competidor haya publicado. Guard: el Skill rechaza cualquier línea
[EXTERNAL_OK]que no lleve una URL fuente fetched en la corrida actual; voltea la línea a[INTERNAL]y registra la razón en el apéndice de auditoría. - Datos públicos desactualizados. Las páginas de pricing del competidor cambian sin aviso. Una battlecard construida sobre un screenshot de hace 6 meses avergonzará al rep en la call. Guard: cada URL de fuente pública en la card lleva una fecha
fetched; si cualquier fuente tiene más de 30 días al momento de la generación, la card antepone un banner de “verificar antes de usar”. - FUD versus hecho. Los reps quieren one-liners que aplasten al competidor; Claude está feliz de complacer salvo que se le restrinja. Guard: el Skill rechaza cualquier handler cuyo sujeto sea el competidor y cuyo predicado no sea directamente atribuible a una cita de cliente o a una fuente pública del competidor. Si ninguna existe, el handler se reescribe en positivo-de-producto (“así es como hacemos X”) en lugar de negativo-de-competidor (“ellos no pueden hacer X”).
- Filtración interno-versus-externo. Un handler marcado
[EXTERNAL_OK]puede aún incrustar un dato solo-interno (conteos de deals, win rates, benchmarks de pricing internos). Guard: la pasada de clasificación escanea cada línea[EXTERNAL_OK]contra la blocklist enreferences/3-internal-vs-external.mdy auto-redacta los matches como[REDACTED — internal metric]para que el talk-track siga siendo usable sin filtrar el número. - Sesgo de selección en el tagging de pérdida. Los reps sub-loguean al competidor en deals perdidos — las pérdidas dolorosas son las menos probables de ser taggeadas. Guard: la nota a pie de calidad de datos siempre reporta el conteo de
unknown; cuando excede el 20% de las calls tiradas, la card antepone un banner de “la cobertura de tagging del competidor es baja — interpretar los patrones de pérdida con cautela”. - Precisión de citas. La transcripción de Gong destroza términos técnicos. Guard: el Skill marca cualquier cita cuyo confidence score de Gong esté por debajo de 0,85 con
[low-confidence transcript]; los reps están instruidos en el header de formato a verificar esas antes de usar. - Sprawl de battlecards. Tres a cinco competidores vivos es suficiente. Más allá, produces artefactos que ningún rep lee, y el costo de mantenerlas refrescadas excede el lift en win rate. Capa la lista de competidores explícitamente y poda anualmente.
Stack
- Gong — corpus de calls y voz del cliente; la evidencia de citas
won/lostviene de aquí. - Salesforce — verdad de outcome del deal; el bucketing de calls en won/lost/open/unknown depende de los datos de Opportunity.
- Claude — extracción, clasificación, adaptación de talk-track, estampado interno-versus-externo.
- Notion o Confluence (opcional) — destino para la card curada por PMM si corres la salida del Skill a través de una capa editada por humano; el Skill emite Markdown que se pega limpiamente en cualquiera.