---
name: informe-corto
description: >-
  Drafts the auditamia short AI-spend verdict from pasted figures: tool, euros
  per month, billed seats, and seats that open. Use when the user pastes those
  figures or asks for the informe corto, unused seats, or overlap between
  ChatGPT, Claude, Copilot, and Cursor. Do not use it to read an invoice, judge
  privacy, or draft the 290 or 590 euro reports.
---

# Informe corto

Draft a short seat verdict from figures the user already has. Do not ask for an email, a company name, a login, or an API key. Do not send the result anywhere, including to auditamia. Do not store it outside this chat, and do not set a cookie or an identifier. The auditamia site does not use advertising cookies. A voluntary measurement cookie is set only if the person accepts it on the website. This count stays in the chat and does not set a cookie. Do not suggest a newsletter or a follow-up sequence.

If the paste contains an email address, an IBAN, a card number, a phone number, or a Spanish tax id, stop. Ask them to remove it. Do not repeat the sensitive string.

This skill stops at seats and overlap. Do not read an invoice, a PDF, a screenshot, or a usage export. Do not write privacy findings. Do not mention the 290 euro stack report or the 590 euro review.

At most five tools. If they paste more, say the short pass covers five and stop.

## When this repository is open

Do not redo the arithmetic. From the repository root, run `buildShortReport` in `lib/informe-corto/rules.ts` with `npx tsx`. Map each line to `{ tool, etiqueta, coste_mensual, seats_facturados, seats_activos, plan, tokens_usados, tokens_incluidos, precio_plan_menor }`.

Tools: `chatgpt`, `copilot`, `claude`, `cursor`, `api`, `otra`. Use `otra` only for a named tool, with `etiqueta` of at most 60 characters and no personal data. Leave `etiqueta` null otherwise. If they did not give a seat count, pass `null`, not zero.

`plan`, `tokens_usados`, `tokens_incluidos`, and `precio_plan_menor` are only for `chatgpt` (OpenAI) and `claude` (Anthropic). Leave them null for Copilot, Cursor, the API, and any other tool. Do not look up how many tokens a plan includes. If they did not paste both token counts, pass null.

Locale `es` when they write in Spanish. Otherwise `en`.

Print the function's fields in prose: `aviso`, the total, each line (`nombre`, `veredicto`, `frase`, and `cupo` when it is set), `solapes`, `nota_api` when it is set, and `accion` when it is set. Then one closing sentence, once:

- Spanish: El informe de 99 € lee la factura y el export que enviáis vosotros.
- English: The €99 report reads the invoice and the export you send.

## When the repository is not open

Apply the same rules.

Round money to the cent. A whole number of euros stays whole.

Names: ChatGPT, Copilot, Claude, Cursor, API. Any other tool keeps the label they gave.

For each line:

- API: verdict `vigilar`, savings 0, unused seats null. Spanish: "La API no se recorta por asientos. El pico sale en la factura, no en esta cuenta." English: "The API is not cut by seats. The spike is on the invoice, not in this sum."
- Missing either seat count: `vigilar`, savings 0. Spanish: "Sin saber cuántos entran, no hay recorte. No es un veredicto." English: "Without how many people open it, there is nothing to cut. That is not a verdict."
- Active seats higher than billed seats: `vigilar`, savings 0. Spanish: "Habéis marcado más asientos activos que facturados. Esa cifra no cuadra hasta ver la factura." English: "Active seats are higher than billed seats. That figure does not add up until the invoice is checked."
- Active equals billed: `mantener`, savings 0, unused 0. If billed is above zero, say the price per seat. Spanish: "Quien tiene asiento entra. El asiento sale a {precio}. Aquí no recortaría." English: "Everyone with a seat uses it. A seat costs {price}. I would not cut it here."
- Active below billed: `reducir`. Unused = billed − active. If nobody opens it, the saving is the whole monthly cost. Otherwise saving = cost × unused / billed. Spanish, nobody: "Nadie entra. Los {unused} asientos se pueden bajar: {ahorro} al mes." Spanish, some: "Bajad {unused} asientos. Quien entra os cuesta {coste por activo} al mes; el asiento en la factura sale a {precio por asiento}." English follows the same split: "Nobody opens it…" or "Drop {unused} seats…"

Sort lines by monthly saving, then by monthly cost, both descending.

Overlaps, only when both tools have a monthly cost above zero:

- ChatGPT and Claude. Spanish: "ChatGPT y Claude son dos chats de pago. Si el equipo no necesita los dos, uno sobra."
- Cursor and Copilot. Spanish: "Cursor y Copilot son dos asistentes para escribir código. Quedaos con el que de verdad se abre."
- ChatGPT and Copilot. Spanish: "ChatGPT y Copilot se pisan en el chat de cada día."
- Claude and Copilot. Spanish: "Claude y Copilot se pisan en el chat de cada día."

English for those four: "ChatGPT and Claude are two paid chats. If the team does not need both, one is spare." / "Cursor and Copilot are two coding assistants. Keep the one people actually open." / "ChatGPT and Copilot overlap in everyday chat." / "Claude and Copilot overlap in everyday chat."

If the API has a cost and another tool also has a cost, add one note. Spanish: "La API son {importe} al mes en otra factura. Quitar asientos no la baja." English: "The API is {amount} a month on a separate bill. Cutting seats does not reduce it."

The week's action is the first `reducir` line after sorting that has a saving and unused seats. Spanish: "Esta semana: bajad {unused} asientos de {nombre}. Son {ahorro} al mes, {ahorro × 12} al año." English: "This week: drop {unused} {name} seats. That is {saving} a month, {saving × 12} a year." If no line qualifies, do not invent a seat action.

## Tokens included, OpenAI and Anthropic only

Ask for these only on ChatGPT and Claude, and only if the user already has them: plan name, tokens used this period, tokens included on that plan, and, if they know it, the monthly price of the smaller plan. Copilot, Cursor, and the API stay on seats. Do not invent a vendor quota.

Skip the quota sentence unless both token counts are present and included is above zero.

- Used above included. Spanish: "Habéis usado {usados} tokens y el plan {plan} incluye {incluidos}. Bajar asientos no quita ese extra." English: "You used {used} tokens and the {plan} plan includes {included}. Dropping seats does not remove that extra." The seat verdict stays.
- Used under half of included. Spanish: "Habéis usado {usados} de {incluidos} tokens incluidos en el plan {plan}. El plan es más grande que el uso de este periodo." English: "You used {used} of {included} included tokens on the {plan} plan. The plan is larger than this period's use." If they pasted a smaller-plan price below this bill, add the gap in euros. Do not add that gap to the seat saving.
- Otherwise the use fits. Spanish: "El uso, {usados} tokens, cabe en los {incluidos} incluidos del plan {plan}." English: "Use, {used} tokens, fits in the {included} included on the {plan} plan."

If there is no seat action and a smaller-plan price leaves a gap, the week's action names that tool and the gap. A seat cut stays the week's action when both exist.

Open with the warning. Spanish: "Estimación con lo que habéis escrito. No hemos visto la factura." English: "Estimate from what you typed. We have not seen the invoice."

Close with the same 99 euro sentence as above, once.

## Check

ChatGPT at 80 euros, 8 billed seats, 3 seats that open: verdict `reducir`, 5 unused seats, 50 euros a month, 600 euros a year. The action names ChatGPT and those 5 seats.
