Andavant Radar CLI
Black-box agent-only skill · GEO visibility audits · LLM mention tracking
Operar Radar CLI como black-box agent-only: discovery por versión con
--help, lectura de envelope JSON canónico, y ejecución segura de setup/studies/runs/prompts/analytics sin asumir comandos legacy.
Reglas base
- No inventes comandos: descubre todo con
radar --helpyradar <cmd> --help. - Tratar la salida JSON como contrato:
ok,data,warnings,error,meta. - Si
ok=false, inspeccionaerror.code,error.message,error.detailsyerror.suggestionsantes de continuar. - Si
error.code=INTERACTION_REQUIRED, pedir aprobación explícita y reintentar con el flag requerido (ej.--approve). - En ejecución de runs, mantener secuencia segura:
preflight → estimate → launch --approve → progress. - En analytics y prompts, usar solo subcomandos y flags visibles en la versión instalada.
- Mantener comandos agnósticos a marca/proyecto (todo parametrizado).
Principios operativos
- Discovery primero, ejecución después: no reutilizar memoria de otra máquina/versión.
- Black-box real: no depender de código interno para decidir comandos.
- Idempotencia práctica: antes de crear, listar/validar para evitar duplicados y errores de IDs.
- Trazabilidad: reportar comando exacto, parámetros, resultado y siguiente acción técnica.
- Escalar por evidencia: cuando falle parsing/HTTP, capturar salida con
--debugy cualquiermetadisponible.
Conceptos clave
| Concepto | Descripción |
|---|---|
| GEO | Generative Engine Optimization. Auditoría de visibilidad orgánica en LLMs. Los prompts deben ser neutrales (no mencionar la marca) para medir menciones espontáneas. |
| Proyecto | Contenedor principal del análisis (marca/producto/tema). |
| Entidad | Marca/producto/destino a rastrear. |
| Funnel | Etapa del customer journey: awareness / consideration / decision. |
| Product line | Línea de producto/servicio. |
| Persona | Perfil de usuario. Si no se especifica, usar persona neutral. |
| Study | Agrupa personas/prompts para un objetivo de medición. |
| Run | Ejecución concreta de un estudio o set de prompts. |
Flujo recomendado
- Bootstrap de proyecto: entidades, atributos, funnels, product-lines, personas.
studies preflight→runs preflight→runs estimate→runs launch --approve→runs progress.- Analytics con
query/schema/export.
⚠️ Métricas cuantitativas vs verbatims
NUNCA uses archivos de verbatims para contar menciones o medir sentiment. Los verbatims son samples cualitativos (~50–100 ejemplos). Los KPIs son datos agregados completos.
| Pregunta | ✅ Archivo CORRECTO | ❌ Incorrecto |
|---|---|---|
| ¿Cuántas menciones negativas? | kpis/kpis_by_brand.csv → avg_sentiment_score | verbatims_negative.csv |
| ¿Sentiment por tema? | product_lines/kpis_by_product_line.csv | Contar líneas de verbatims |
| ¿Menciones totales? | kpis/kpis_by_brand.csv → total_mentions | grep en verbatims |
| ¿Desglose por persona? | personas/personas_metrics.csv | verbatims_by_persona.csv |
Escala de sentiment
entity_mentions
1 – 5
1=muy neg · 3=neutral · 5=muy pos
entity_metrics
-1 → +1
normalizado · 0=neutral
Queries SQL de referencia
Menciones por marca (negativas / positivas)
radar analytics query --sql "SELECT
entity_identifier as brand,
SUM(CASE WHEN sentiment <= 2 THEN 1 ELSE 0 END) as negative,
SUM(CASE WHEN sentiment = 3 THEN 1 ELSE 0 END) as neutral,
SUM(CASE WHEN sentiment >= 4 THEN 1 ELSE 0 END) as positive,
COUNT(*) as total
FROM entity_mentions
WHERE project_id = '<PROJECT_ID>'
AND entity_identifier IN ('marca1','marca2')
GROUP BY brand
ORDER BY total DESC"
entity_identifier vs entity_name: Usa siempre
entity_identifier (slug/alias que agrupa variaciones) para queries agregadas. entity_name es el nombre literal detectado.
Ver aliases detectados por marca
SELECT entity_identifier, entity_name, count() as cnt
FROM entity_mentions
WHERE project_id = '<PROJECT_ID>' AND entity_identifier = 'marca'
GROUP BY entity_identifier, entity_name
ORDER BY cnt DESC
Filtrar por prompt tags
Los prompts tienen tags estructurados:
product:resfriado persona:medico-es funnel:decision funnel:awareness
-- Filtrar por tag específico
SELECT entity_identifier, avg(sentiment) as avg_sent
FROM entity_mentions
WHERE project_id = '<PROJECT_ID>'
AND has(prompt_tags, 'product:resfriado')
AND entity_identifier IN ('cinfa','normon')
GROUP BY entity_identifier
-- Extraer valor de un tag
SELECT arrayFilter(x -> x LIKE 'persona:%', prompt_tags)[1] as persona,
count() as cnt
FROM entity_mentions
WHERE project_id = '<PROJECT_ID>'
GROUP BY persona
Fuentes citadas (response_sources)
Gemini:
source_domain es vertexaisearch.cloud.google.com — el dominio real está en source_title. Usar CASE para normalizar.
-- Top dominios citados (corregido para Gemini)
SELECT
CASE
WHEN source_domain = 'vertexaisearch.cloud.google.com' THEN source_title
ELSE source_domain
END as dominio_real,
count() as citations
FROM response_sources
WHERE project_id = '<PROJECT_ID>'
GROUP BY dominio_real
ORDER BY citations DESC LIMIT 25
-- Fuentes cuando se menciona la marca
SELECT source_domain, count() as cnt
FROM response_sources
WHERE project_id = '<PROJECT_ID>'
AND response_id IN (
SELECT DISTINCT response_id FROM entity_mentions
WHERE project_id = '<PROJECT_ID>' AND entity_identifier = 'cinfa'
)
GROUP BY source_domain
ORDER BY cnt DESC
Analytics Pack
Exporta todas las tablas de analytics de un run a CSVs organizados.
radar analytics pack \
--run-id <uuid> \
--out ./data \
--target-brand <slug> \
--official-domain-like "%<dominio>%"
Estructura generada
output/
├── attributes/ # Atributos por marca
├── cooccurrence/ # Co-apariciones entre marcas
├── destinations/ # Métricas por destino
├── funnels/ # Métricas por etapa del funnel
├── kpis/ # BIS, SOV, sentiment por marca
├── origins/ # Métricas por origen
├── personas/ # Métricas por persona
├── product_lines/ # Métricas por línea de producto
├── sources/ # Fuentes citadas
├── verbatims/ # Respuestas textuales
└── ANALYTICS_REFERENCE.md
Opciones principales
| Flag | Descripción |
|---|---|
--run-id | ID del run a exportar |
--project-id | Alternativo a run-id |
--out | Carpeta de salida |
--target-brand | Slug de la marca objetivo |
--official-domain-like | Patrón para dominios oficiales (ej: %cinfa%) |
--dry-run | Previsualizar sin ejecutar |
S.A.M. — Semantic Alignment Machine
S.A.M. es el flujo de validación semántica de contenido: dado un texto, encuentra los prompts del estudio más similares por embeddings ("RAG inverso"). Permite medir cobertura, detectar gaps y predecir ganancia de afinidad antes de publicar.
Comando base
radar prompts recommend \
--project <project_id> \
--text "<texto a validar>" \
--limit 20
Flags disponibles
| Flag | Descripción |
|---|---|
--project | ID del proyecto (obligatorio) |
--text | Texto de input (repetible) |
--limit | Máx. recomendaciones (1–50, default 5) |
--min-similarity | Threshold mínimo (0–1) |
--persona | Filtrar por persona ID |
--funnel | Filtrar por funnel ID |
--product-line | Filtrar por product-line ID |
--entity | Filtrar por entity ID |
--tags | Filtrar por tags (comma-separated) |
--tags-match | any (default) o all |
Métricas S.A.M.
| Similarity | Interpretación |
|---|---|
| > 0.85 | Bien cubierto — el contenido responde directamente |
| 0.70 – 0.85 | Cobertura parcial — responde tangencialmente |
| 0.50 – 0.70 | Cobertura débil — toca el tema pero no responde |
| < 0.50 | Sin cobertura — no relevante |
| Métrica | Cálculo |
|---|---|
| Matching Score | avg(similarity) de los top-N prompts relevantes |
| Cobertura | count(similarity > 0.70) |
| Gaps | Prompts del cluster esperado con similarity < 0.50 |
| Ruido | Prompts irrelevantes con similarity > 0.70 (contenido ambiguo) |
| ΔAfinidad | MatchingScore_nuevo - MatchingScore_anterior (tras edición) |
Flujo S.A.M. paso a paso
- Extraer texto limpio de la pieza (sin HTML/markdown).
- Ejecutar
prompts recommendcon--limit 20. - Evaluar cobertura: contar prompts bien cubiertos, gaps y ruido.
- Filtrar por segmento (opcional):
--persona,--funnel,--product-line. - Optimizar: modificar contenido para cerrar gaps, re-ejecutar, comparar ΔAfinidad.
- Heatmap (opcional): fragmentar texto en párrafos, pasar cada uno por separado.
Integración con flujo GEO
- GeoRadar → auditoría (qué dicen los LLMs)
- Prompt Atlas → dataset (qué preguntan los usuarios)
- S.A.M. → validación (¿el contenido responde a esos prompts?)
- Publicar solo contenido con Matching Score > threshold
- Re-run GeoRadar para medir impacto post-publicación
Requisitos: Radar CLI ≥ 0.1.7 · Proyecto con prompts generados y embeddings indexados. Si da 404: los embeddings del proyecto no están listos aún.
Referencias (carga recomendada)
Core
| # | Archivo | Contenido |
|---|---|---|
| 1 | json-contract.md | Envelope JSON canónico y errores estructurados |
| 2 | command-surface.md | Superficie real por versión (discovery con --help) |
| 3 | execution-workflows.md | Secuencias E2E (bootstrap, study/run, analytics) |
| 4 | geo-process.md | Proceso GEO end-to-end y reglas de prompts neutrales |
| 5 | idempotency-db.md | Constraints de DB que previenen duplicados |
Operativo
| # | Archivo | Contenido |
|---|---|---|
| 6 | prompt-generation-playbook.md | Sesiones de generación, filtros, volumen y planes |
| 7 | personas-funnels-product-lines-playbook.md | Crear/actualizar scope de segmentación |
| 8 | prompt-tags.md | Usar tags solo desde lo observable en CLI |
Analytics
| # | Archivo | Contenido |
|---|---|---|
| 9 | analytics-playbook.md | query/schema/export, tablas y variaciones |
| 10 | analytics-deep-dive.md | SQL avanzado (métricas, fuentes, posición, verbatims) |
| 11 | entity-metrics-system.md | Fórmulas BIS, sentiment, position decay |
| 12 | source-analysis.md | Análisis de fuentes/dominios/partners |
| 13 | comparing-runs.md | Comparativas entre engines, temporal, A/B |
| 14 | export-reporting.md | Exportar datos para slides y reportes |
| 15 | troubleshooting.md | Errores, diagnóstico SQL y escenarios reales |
Checklist obligatorio antes de reportar
- Abrir
kpis/kpis_by_brand.csvpara totales - Abrir
product_lines/kpis_by_product_line.csvpara desglose por tema - Verificar columnas:
total_mentions,avg_sentiment_score,responses - Cruzar con verbatims solo para ejemplos cualitativos
- NUNCA contar líneas de archivos de verbatims como métrica
Andavant Radar CLI Skill · 498Advance · GEO Agent