compensation-report
Skill de loop con entrega única: parte de una necesidad declarada por el
usuario (preparar una negociación, comparar una oferta, entender el mercado)
y produce un reporte de compensación accionable. El reporte siempre incluye
las cuatro representaciones de cada valor monetario (USD/año, USD/mes, COP/año,
COP/mes) porque el usuario lee en pesos colombianos pero negocia (o
contrasta) con cifras en dólares.
Principios
- Las cuatro formas siempre. Cada cifra salarial aparece en USD/año,
USD/mes, COP/año y COP/mes. Si una tabla omite una, el reporte no pasa la
verificación final. Esto se hace por hábito, no por configuración.
- Triangulación explícita. Ningún percentil se reporta con menos de
tres fuentes independientes. Si solo hay una fuente, se marca como
"estimación de fuente única" y se reduce la confianza.
- Empresa o mercado, no los dos a la fuerza. Si el usuario nombra
empleador, el reporte abre con perfil financiero de esa empresa. Si dice
"mercado general", se analiza el segmento (startup tech LATAM, consultora
regional, corporativo US, etc.) con cifras representativas.
- Stack como palanca, no como descarte. Las skills específicas del
usuario (ej. Tableau, dbt, Snowflake) se usan para anclar contra
publicaciones activas, no para excluir al candidato de un rango.
- Advertencias siempre al final. Varianzas grandes en los datos,
riesgos cambiarios, recortes activos, BATNA: todos van numerados en la
sección de advertencias. Negocia con datos, no con presión.
- Agnóstico del harness. El cuerpo describe comportamiento
("investigar", "triangular", "escribir archivo"); la herramienta concreta
la resuelve el adaptador.
Cuando usar este skill
- El usuario está por entrar a una negociación salarial y quiere argumentos.
- El usuario recibió una oferta y necesita evaluarla contra el mercado.
- El usuario quiere saber "¿cuánto debería ganar?" para uno o varios cargos
objetivo en una ubicación específica.
- El usuario pide explícitamente "reporte de compensación", "análisis
salarial", "bandas salariales" o variantes en español o inglés.
- El usuario tiene un stack claro (ej. "Tableau + SQL + Snowflake") y quiere
saber cuánto vale en el mercado LATAM remoto.
Cuando NO usar este skill
- El usuario quiere negociar pero no tiene contexto de cargo/empresa — pedir
contexto antes de proceder.
- El usuario quiere revisar su propio salario actual sin objetivo nuevo —
derivar a un análisis ad-hoc, no a este loop.
- El usuario pide datos de un cargo en una industria sin mercado público
transparente (ej. ONG pequeña, gobierno regional) — advertir limitación y
proceder solo con lo público.
Flujo de trabajo
1. Entrevista (obligatoria, una sola pregunta)
Recolectar los datos del usuario antes de investigar. Usar la herramienta
declarativa de preguntas (clarify) para pedir TODO en una sola llamada, no
preguntar uno por uno. Si el usuario ya mencionó algunos datos en su
mensaje inicial, no volver a preguntarlos.
Datos requeridos (bloquean el flujo si faltan):
- Cargo(s) objetivo — uno o varios. Ejemplos: "BI Analyst, BI Engineer,
Data Engineer" o "Analytics Director".
- Años de experiencia — número entero o rango (ej. "5", "6-8").
- Ubicación / modalidad — ciudad, país y si es remoto, híbrido u
on-site. Ejemplos: "Colombia/Remoto", "Bogotá/Híbrido", "México/Remoto".
- Empresa objetivo — nombre del empleador potencial o actual. Si no
aplica, escribir literalmente "mercado general" o "sin empresa
específica".
Datos opcionales (mejoran el reporte, no lo bloquean):
- Stack o skills destacadas — herramientas o dominios que el
usuario quiere usar como palanca. Ejemplos: "Tableau, SQL, Snowflake",
"dbt, Airflow, BigQuery".
- Salario actual — para calcular delta vs. bandas. Si no se quiere
compartir, omitir; el reporte no lo exigirá.
- Tipo de contratación — empleado directo, contratista independiente,
EOR, freelance. Default si se omite: empleado directo.
- Moneda de pago preferida — COP, USD, o ambas. Default: ambas.
- Ciudades específicas — para refinar la búsqueda a nivel local.
Default si se omite: país completo.
- Nivel del cargo objetivo — Junior (0-2 años), Mid (3-5), Senior
(6-9), Staff/Lead (10+). Default si se omite: inferir por años de
experiencia del usuario.
- Sector del empleador — fintech, retail, salud, etc. Si es
relevante, ayuda a calibrar la prima o descuento.
- Beneficios actuales que no quiere perder — lista de beneficios
existentes. Sirve para anclar la sección de estructura de compensación.
Valores por defecto (si el usuario no responde los opcionales):
- Sin stack → no filtrar por tecnología.
- Sin salario actual → no calcular delta.
- Sin tipo de contratación → asumir empleado directo.
- Sin moneda → reportar en COP y USD.
- Sin ciudades → buscar a nivel país.
- Sin nivel → inferir de años (0-2 Jr, 3-5 Mid, 6-9 Senior, 10+ Staff/Lead).
- Sin sector → usar mercado general.
- Sin beneficios actuales → listar los típicos del mercado objetivo.
2. Investigación de mercado (en paralelo)
Ejecutar todas las búsquedas en un solo turno (batch) para minimizar
latencia. Cuatro hilos de investigación:
Hilo A — Bandas salariales del cargo en la ubicación especificada.
Fuentes prioritarias (en orden):
- Glassdoor (filtrar por empresa y ciudad)
- Levels.fyi (filtrar por empresa y seniority)
- PayScale (filtro país y años de experiencia)
- SalaryExpert (ciudad específica)
- HireTalent.lat (datos remote-for-US en LATAM, marzo del año en curso)
- Indeed (publicaciones con salarios publicados)
- Get on Board (publicaciones LATAM)
- Howdy (payroll dataset LATAM con all-in)
Extraer con web_extract cuando el snippet no basta. Por cada cargo,
capturar P25, P50 y P75 en USD/año siempre que la fuente lo publique;
si no, registrar el rango o la mediana y marcarlos como tales.
Hilo B — Publicaciones de empleo activas que coincidan con el cargo +
stack + ubicación. Buscar el mismo día de generación. Priorizar
publicaciones que mencionen el stack del usuario (ej. "Tableau Developer
remoto Colombia"). Extraer: empresa, cargo, rango publicado (si está
visible), modalidad, fecha de publicación. Marcar como "publicación
reciente" solo las de los últimos 90 días.
Hilo C — Perfil financiero del empleador (solo si se nombró una
empresa en el paso 1). Fuentes:
- Investor relations de la empresa (si cotiza en bolsa)
- Macrotrends, Yahoo Finance, CompaniesMarketCap
- Noticias recientes sobre recortes, contrataciones, layoffs, class
actions
- Glassdoor/Comparably para tamaño aproximado y reviews de compensación
Capturar: ingresos anuales, guía de crecimiento, margen bruto, free cash
flow, market cap, empleados totales, eventos recientes que afecten
contratación.
Hilo D — Datos macro del día. TRM actual COP/USD, IPC Colombia del
último mes, salario mínimo legal vigente. Si la TRM no se puede extraer
de una fuente oficial, usar el cierre del día anterior como aproximación y
registrar la fuente y la fecha.
Reglas duras de investigación:
- Mínimo 3 fuentes independientes por cada percentil salarial publicado.
- Si solo hay 1 fuente, marcar como "estimación de fuente única" y reducir
la confianza.
- No inventar datos. Si una búsqueda no devuelve nada útil, escribir
"no disponible" en el reporte, no rellenar.
- Si la fuente tiene más de 12 meses, marcarla como "dato del año
anterior" y considerar complementar con publicación más reciente.
3. Cálculo de bandas
Para cada cargo objetivo, calcular tres percentiles:
- P25 — piso del rango, útil como "límite inferior aceptable".
- P50 — mediana del mercado, ancla neutral.
- P75+ — techo del rango senior, objetivo para alto desempeño.
Para cada percentil, calcular las cuatro formas:
- USD/año (de la fuente, sin convertir)
- USD/mes (USD/año ÷ 12)
- COP/año (USD/año × TRM)
- COP/mes (USD/año × TRM ÷ 12)
Usar la TRM capturada en el hilo D. Redondear COP a millón o decena de
millón más cercano; USD a centena más cercana. Anotar la TRM y la fecha
al inicio del reporte.
Si dos fuentes tienen P50 con diferencia mayor al 25%, no promediar —
reportar ambos y advertir alta dispersión.
4. Generación del reporte
Escribir el reporte como archivo markdown. Por tamaño esperado
(> 200 líneas), usar write_file para la primera sección (encabezado +
perfil financiero + inicio de bandas) y luego patch en bloques de menos
de 8K tokens para anexar el resto.
Ruta de guardado: compensation-report-<cargo-principal>-<YYYY-MM-DD>.md
en el directorio de trabajo del usuario. Si el usuario no está en un
directorio de proyecto, guardar en el home con timestamp para evitar
colisiones.
Estructura obligatoria (siete secciones, en este orden):
§1 Perfil Financiero del Empleador
- Tabla con: ingresos anuales, guía de crecimiento, margen bruto, market
cap, empleados totales.
- 2-4 viñetas de análisis de capacidad de pago y agresividad en mercado
de talento.
- Si no se nombró empleador, analizar el segmento (ej. "consultoras
tech LATAM", "startups US con remote-first").
§2 Bandas Salariales Estimadas
- Una subsección por cada cargo objetivo (3.1, 3.2, …).
- Tabla por cargo con columnas: Percentil | USD/año | COP/año | USD/mes
| COP/mes | Fuente principal.
- Subsección final "Resumen comparativo (P50)" con tabla de todos los
cargos en las cuatro formas.
- Citar fuente por cada fila de cada tabla.
§3 Publicaciones Activas Relevantes
- Tabla: Empresa | Cargo | Rango publicado | USD/mes (si está
publicado) | COP/mes (si está publicado) | Modalidad | Notas.
- 1-2 viñetas de lectura del mercado activo.
- Priorizar publicaciones que mencionen el stack del usuario.
§4 Estructura de Compensación
- 4.1: Desglose del empleador específico (si aplica) con
salario base %, bonos %, equity %, beneficios. Tabla con: Componente
| % del Total | USD/año | USD/mes | COP/año | COP/mes | Notas.
- 4.2: Comparación por tipo de empleador (consultora LATAM, startup US,
mid-size US SaaS, gran corporación) con las mismas columnas.
- 4.3: BATNA implícito del candidato con cifras concretas.
§5 Estrategia Defensiva: Tácticas de Negociación
- Exactamente 3 tácticas.
- Cada una con tres bloques:
- "Cuándo lo dicen": cita literal o paráfrasis del reclutador.
- "Respuesta": script sugerido (2-4 oraciones, listo para usar).
- "Por qué funciona": razonamiento táctico (1-2 oraciones).
- Adaptar las tácticas al empleador específico y al stack del candidato.
§6 Advertencias
- 3-5 advertencias numeradas, específicas al contexto (recortes activos,
varianza de datos, riesgo cambiario, BATNA, cláusulas de ajuste).
- Sin hedging genérico; cada advertencia es accionable.
§7 Fuentes Consultadas
- Tabla: Fuente | URL | Datos extraídos.
- Footer con fecha de generación y disclaimer sobre que los datos
reflejan información pública disponible a esa fecha.
5. Verificación final (antes de entregar)
Checklist de auditoría (no entregar hasta que todas pasen):
Si alguna verificación falla, corregir antes de mostrar el reporte al
usuario.
Anti-patrones
- No anclar con un solo número. El reporte siempre trabaja con
rangos, no con cifras puntuales, salvo que se trate de un dato
contractual real (ej. salario actual del usuario).
- No usar "depende" como respuesta. Si la varianza es alta,
reportar el rango completo y la fuente de cada extremo, no
escudarse en vaguedad.
- No inflar con fuentes secundarias. Glassdoor sin suficientes
reportes no vale lo mismo que Levels.fyi. Anotar la calidad de la
fuente, no solo la cantidad.
- No omitir la TRM. El reporte es para un usuario colombiano;
necesita poder convertir a pesos mentalmente.
- No usar BATNA como amenaza. La sección de BATNA describe la
alternativa real, no una posición de fuerza. La negociación efectiva
viene de los datos, no de los ultimátums.
Salida esperada
Un archivo markdown con el nombre compensation-report-<cargo>-<fecha>.md,
siete secciones, todas las cifras en las cuatro formas, y al menos 10
fuentes citadas entre §2, §3, §7. El usuario puede leerlo en 10-15 minutos
y usarlo directamente para preparar una conversación salarial.
1---2name: compensation-report3description: Entrevista al usuario para recolectar los datos del cargo objetivo (cargo(s), años de experiencia, ubicación/modalidad, empresa objetivo y stack tecnológico), investiga bandas salariales en vivo en múltiples fuentes, triangula los datos y genera un reporte de compensación en markdown con valores en COP y USD, anuales y mensuales, perfil financiero del empleador, estructura de compensación esperada, BATNA implícito y tres tácticas defensivas de negociación. Usa cuando el usuario pida un reporte de compensación, un análisis salarial para una negociación, bandas salariales para un cargo en una ubicación específica, o quiera preparar una conversación salarial con un empleador actual o potencial.4---56# compensation-report78Skill de loop con entrega única: parte de una necesidad declarada por el9usuario (preparar una negociación, comparar una oferta, entender el mercado)10y produce un reporte de compensación accionable. El reporte siempre incluye11las cuatro representaciones de cada valor monetario (USD/año, USD/mes, COP/año,12COP/mes) porque el usuario lee en pesos colombianos pero negocia (o13contrasta) con cifras en dólares.1415## Principios16171. **Las cuatro formas siempre.** Cada cifra salarial aparece en USD/año,18 USD/mes, COP/año y COP/mes. Si una tabla omite una, el reporte no pasa la19 verificación final. Esto se hace por hábito, no por configuración.202. **Triangulación explícita.** Ningún percentil se reporta con menos de21 tres fuentes independientes. Si solo hay una fuente, se marca como22 "estimación de fuente única" y se reduce la confianza.233. **Empresa o mercado, no los dos a la fuerza.** Si el usuario nombra24 empleador, el reporte abre con perfil financiero de esa empresa. Si dice25 "mercado general", se analiza el segmento (startup tech LATAM, consultora26 regional, corporativo US, etc.) con cifras representativas.274. **Stack como palanca, no como descarte.** Las skills específicas del28 usuario (ej. Tableau, dbt, Snowflake) se usan para anclar contra29 publicaciones activas, no para excluir al candidato de un rango.305. **Advertencias siempre al final.** Varianzas grandes en los datos,31 riesgos cambiarios, recortes activos, BATNA: todos van numerados en la32 sección de advertencias. Negocia con datos, no con presión.336. **Agnóstico del harness.** El cuerpo describe comportamiento34 ("investigar", "triangular", "escribir archivo"); la herramienta concreta35 la resuelve el adaptador.3637## Cuando usar este skill3839- El usuario está por entrar a una negociación salarial y quiere argumentos.40- El usuario recibió una oferta y necesita evaluarla contra el mercado.41- El usuario quiere saber "¿cuánto debería ganar?" para uno o varios cargos42 objetivo en una ubicación específica.43- El usuario pide explícitamente "reporte de compensación", "análisis44 salarial", "bandas salariales" o variantes en español o inglés.45- El usuario tiene un stack claro (ej. "Tableau + SQL + Snowflake") y quiere46 saber cuánto vale en el mercado LATAM remoto.4748## Cuando NO usar este skill4950- El usuario quiere negociar pero no tiene contexto de cargo/empresa — pedir51 contexto antes de proceder.52- El usuario quiere revisar su propio salario actual sin objetivo nuevo —53 derivar a un análisis ad-hoc, no a este loop.54- El usuario pide datos de un cargo en una industria sin mercado público55 transparente (ej. ONG pequeña, gobierno regional) — advertir limitación y56 proceder solo con lo público.5758## Flujo de trabajo5960### 1. Entrevista (obligatoria, una sola pregunta)6162Recolectar los datos del usuario antes de investigar. Usar la herramienta63declarativa de preguntas (clarify) para pedir TODO en una sola llamada, no64preguntar uno por uno. Si el usuario ya mencionó algunos datos en su65mensaje inicial, no volver a preguntarlos.6667**Datos requeridos (bloquean el flujo si faltan):**68691. **Cargo(s) objetivo** — uno o varios. Ejemplos: "BI Analyst, BI Engineer,70 Data Engineer" o "Analytics Director".712. **Años de experiencia** — número entero o rango (ej. "5", "6-8").723. **Ubicación / modalidad** — ciudad, país y si es remoto, híbrido u73 on-site. Ejemplos: "Colombia/Remoto", "Bogotá/Híbrido", "México/Remoto".744. **Empresa objetivo** — nombre del empleador potencial o actual. Si no75 aplica, escribir literalmente "mercado general" o "sin empresa76 específica".7778**Datos opcionales (mejoran el reporte, no lo bloquean):**79805. **Stack o skills destacadas** — herramientas o dominios que el81 usuario quiere usar como palanca. Ejemplos: "Tableau, SQL, Snowflake",82 "dbt, Airflow, BigQuery".836. **Salario actual** — para calcular delta vs. bandas. Si no se quiere84 compartir, omitir; el reporte no lo exigirá.857. **Tipo de contratación** — empleado directo, contratista independiente,86 EOR, freelance. Default si se omite: empleado directo.878. **Moneda de pago preferida** — COP, USD, o ambas. Default: ambas.889. **Ciudades específicas** — para refinar la búsqueda a nivel local.89 Default si se omite: país completo.9010. **Nivel del cargo objetivo** — Junior (0-2 años), Mid (3-5), Senior91 (6-9), Staff/Lead (10+). Default si se omite: inferir por años de92 experiencia del usuario.9311. **Sector del empleador** — fintech, retail, salud, etc. Si es94 relevante, ayuda a calibrar la prima o descuento.9512. **Beneficios actuales que no quiere perder** — lista de beneficios96 existentes. Sirve para anclar la sección de estructura de compensación.9798**Valores por defecto (si el usuario no responde los opcionales):**99- Sin stack → no filtrar por tecnología.100- Sin salario actual → no calcular delta.101- Sin tipo de contratación → asumir empleado directo.102- Sin moneda → reportar en COP y USD.103- Sin ciudades → buscar a nivel país.104- Sin nivel → inferir de años (0-2 Jr, 3-5 Mid, 6-9 Senior, 10+ Staff/Lead).105- Sin sector → usar mercado general.106- Sin beneficios actuales → listar los típicos del mercado objetivo.107108### 2. Investigación de mercado (en paralelo)109110Ejecutar todas las búsquedas en un solo turno (batch) para minimizar111latencia. Cuatro hilos de investigación:112113**Hilo A — Bandas salariales del cargo en la ubicación especificada.**114Fuentes prioritarias (en orden):115- Glassdoor (filtrar por empresa y ciudad)116- Levels.fyi (filtrar por empresa y seniority)117- PayScale (filtro país y años de experiencia)118- SalaryExpert (ciudad específica)119- HireTalent.lat (datos remote-for-US en LATAM, marzo del año en curso)120- Indeed (publicaciones con salarios publicados)121- Get on Board (publicaciones LATAM)122- Howdy (payroll dataset LATAM con all-in)123124Extraer con `web_extract` cuando el snippet no basta. Por cada cargo,125capturar P25, P50 y P75 en USD/año siempre que la fuente lo publique;126si no, registrar el rango o la mediana y marcarlos como tales.127128**Hilo B — Publicaciones de empleo activas que coincidan con el cargo +129stack + ubicación.** Buscar el mismo día de generación. Priorizar130publicaciones que mencionen el stack del usuario (ej. "Tableau Developer131remoto Colombia"). Extraer: empresa, cargo, rango publicado (si está132visible), modalidad, fecha de publicación. Marcar como "publicación133reciente" solo las de los últimos 90 días.134135**Hilo C — Perfil financiero del empleador (solo si se nombró una136empresa en el paso 1).** Fuentes:137- Investor relations de la empresa (si cotiza en bolsa)138- Macrotrends, Yahoo Finance, CompaniesMarketCap139- Noticias recientes sobre recortes, contrataciones, layoffs, class140 actions141- Glassdoor/Comparably para tamaño aproximado y reviews de compensación142143Capturar: ingresos anuales, guía de crecimiento, margen bruto, free cash144flow, market cap, empleados totales, eventos recientes que afecten145contratación.146147**Hilo D — Datos macro del día.** TRM actual COP/USD, IPC Colombia del148último mes, salario mínimo legal vigente. Si la TRM no se puede extraer149de una fuente oficial, usar el cierre del día anterior como aproximación y150registrar la fuente y la fecha.151152**Reglas duras de investigación:**153- Mínimo 3 fuentes independientes por cada percentil salarial publicado.154- Si solo hay 1 fuente, marcar como "estimación de fuente única" y reducir155 la confianza.156- No inventar datos. Si una búsqueda no devuelve nada útil, escribir157 "no disponible" en el reporte, no rellenar.158- Si la fuente tiene más de 12 meses, marcarla como "dato del año159 anterior" y considerar complementar con publicación más reciente.160161### 3. Cálculo de bandas162163Para cada cargo objetivo, calcular tres percentiles:164165- **P25** — piso del rango, útil como "límite inferior aceptable".166- **P50** — mediana del mercado, ancla neutral.167- **P75+** — techo del rango senior, objetivo para alto desempeño.168169Para cada percentil, calcular las cuatro formas:170- USD/año (de la fuente, sin convertir)171- USD/mes (USD/año ÷ 12)172- COP/año (USD/año × TRM)173- COP/mes (USD/año × TRM ÷ 12)174175Usar la TRM capturada en el hilo D. Redondear COP a millón o decena de176millón más cercano; USD a centena más cercana. Anotar la TRM y la fecha177al inicio del reporte.178179Si dos fuentes tienen P50 con diferencia mayor al 25%, no promediar —180reportar ambos y advertir alta dispersión.181182### 4. Generación del reporte183184Escribir el reporte como archivo markdown. Por tamaño esperado185(> 200 líneas), usar `write_file` para la primera sección (encabezado +186perfil financiero + inicio de bandas) y luego `patch` en bloques de menos187de 8K tokens para anexar el resto.188189**Ruta de guardado:** `compensation-report-<cargo-principal>-<YYYY-MM-DD>.md`190en el directorio de trabajo del usuario. Si el usuario no está en un191directorio de proyecto, guardar en el home con timestamp para evitar192colisiones.193194**Estructura obligatoria** (siete secciones, en este orden):195196#### §1 Perfil Financiero del Empleador197- Tabla con: ingresos anuales, guía de crecimiento, margen bruto, market198 cap, empleados totales.199- 2-4 viñetas de análisis de capacidad de pago y agresividad en mercado200 de talento.201- Si no se nombró empleador, analizar el segmento (ej. "consultoras202 tech LATAM", "startups US con remote-first").203204#### §2 Bandas Salariales Estimadas205- Una subsección por cada cargo objetivo (3.1, 3.2, …).206- Tabla por cargo con columnas: Percentil | USD/año | COP/año | USD/mes207 | COP/mes | Fuente principal.208- Subsección final "Resumen comparativo (P50)" con tabla de todos los209 cargos en las cuatro formas.210- Citar fuente por cada fila de cada tabla.211212#### §3 Publicaciones Activas Relevantes213- Tabla: Empresa | Cargo | Rango publicado | USD/mes (si está214 publicado) | COP/mes (si está publicado) | Modalidad | Notas.215- 1-2 viñetas de lectura del mercado activo.216- Priorizar publicaciones que mencionen el stack del usuario.217218#### §4 Estructura de Compensación219- 4.1: Desglose del empleador específico (si aplica) con220 salario base %, bonos %, equity %, beneficios. Tabla con: Componente221 | % del Total | USD/año | USD/mes | COP/año | COP/mes | Notas.222- 4.2: Comparación por tipo de empleador (consultora LATAM, startup US,223 mid-size US SaaS, gran corporación) con las mismas columnas.224- 4.3: BATNA implícito del candidato con cifras concretas.225226#### §5 Estrategia Defensiva: Tácticas de Negociación227- Exactamente 3 tácticas.228- Cada una con tres bloques:229 - "Cuándo lo dicen": cita literal o paráfrasis del reclutador.230 - "Respuesta": script sugerido (2-4 oraciones, listo para usar).231 - "Por qué funciona": razonamiento táctico (1-2 oraciones).232- Adaptar las tácticas al empleador específico y al stack del candidato.233234#### §6 Advertencias235- 3-5 advertencias numeradas, específicas al contexto (recortes activos,236 varianza de datos, riesgo cambiario, BATNA, cláusulas de ajuste).237- Sin hedging genérico; cada advertencia es accionable.238239#### §7 Fuentes Consultadas240- Tabla: Fuente | URL | Datos extraídos.241- Footer con fecha de generación y disclaimer sobre que los datos242 reflejan información pública disponible a esa fecha.243244### 5. Verificación final (antes de entregar)245246Checklist de auditoría (no entregar hasta que todas pasen):247248- [ ] ¿Todas las tablas salariales tienen las cuatro columnas (USD/año,249 USD/mes, COP/año, COP/mes)?250- [ ] ¿Hay al menos 3 fuentes citadas por cargo en §2?251- [ ] ¿El perfil financiero del empleador (si aplica) tiene datos del252 año en curso?253- [ ] ¿Las 3 tácticas de negociación son específicas al empleador y al254 stack del candidato, no genéricas?255- [ ] ¿La TRM está registrada con fecha en la cabecera?256- [ ] ¿Las publicaciones activas en §3 son de los últimos 90 días?257- [ ] ¿Las advertencias en §6 son accionables, no hedging?258- [ ] ¿El reporte no contiene nombres de harness, herramientas, ni259 sintaxis de slash-commands en el cuerpo?260261Si alguna verificación falla, corregir antes de mostrar el reporte al262usuario.263264## Anti-patrones265266- **No anclar con un solo número.** El reporte siempre trabaja con267 rangos, no con cifras puntuales, salvo que se trate de un dato268 contractual real (ej. salario actual del usuario).269- **No usar "depende" como respuesta.** Si la varianza es alta,270 reportar el rango completo y la fuente de cada extremo, no271 escudarse en vaguedad.272- **No inflar con fuentes secundarias.** Glassdoor sin suficientes273 reportes no vale lo mismo que Levels.fyi. Anotar la calidad de la274 fuente, no solo la cantidad.275- **No omitir la TRM.** El reporte es para un usuario colombiano;276 necesita poder convertir a pesos mentalmente.277- **No usar BATNA como amenaza.** La sección de BATNA describe la278 alternativa real, no una posición de fuerza. La negociación efectiva279 viene de los datos, no de los ultimátums.280281## Salida esperada282283Un archivo markdown con el nombre `compensation-report-<cargo>-<fecha>.md`,284siete secciones, todas las cifras en las cuatro formas, y al menos 10285fuentes citadas entre §2, §3, §7. El usuario puede leerlo en 10-15 minutos286y usarlo directamente para preparar una conversación salarial.