| name | registrar-movimiento-financiero |
| description | Interpreta, valida, confirma y registra un gasto o ingreso personal cuando el usuario comunica claramente un movimiento financiero. |
Registrar movimiento financiero
Descripción
Procesa un gasto o ingreso personal desde el mensaje inicial hasta su registro confirmado y verificado.
El flujo obligatorio es:
interpretar → completar → clasificar → revisar → confirmar → comprobar duplicados → registrar → verificar.
Un mensaje recibido nunca equivale por sí solo a autorización para registrar.
Cuándo usar
Usar cuando el usuario comunique claramente un gasto o ingreso personal.
Ejemplos:
- "Gasté 500 en el antro."
- "Hoy pagué 300 de gasolina."
- "Me depositaron mi sueldo."
- "Recibí 1,000 pesos de una venta."
Continuar la misma skill cuando el usuario:
- complete un dato faltante;
- corrija el movimiento pendiente;
- confirme;
- cancele;
- responda sobre un posible duplicado.
Cuándo no usar
No activar solo porque se menciona dinero.
Ejemplos:
- "¿Cuánto cuesta ir al antro?"
- "¿Crees que gasto mucho?"
- "Explícame mis categorías."
- "¿Qué método de pago es mejor?"
Si no está claro que exista un movimiento real, pedir aclaración.
Prerrequisitos
Antes de registrar:
- consultar las reglas operativas de
AGENTS.md;
- usar únicamente el destino y herramientas definidos en
TOOLS.md;
- disponer de la conexión autorizada de Google Sheets.
Para utilizar preferencias privadas:
- la conversación debe ser DM;
MEMORY.md debe estar permitido.
No guardar ni solicitar dentro de esta skill:
- contraseñas;
- tokens;
- API keys;
- credenciales.
Procedimiento paso a paso
1. Detectar el movimiento
Determinar si existe realmente:
Si no está claro, pedir aclaración y detenerse.
2. Crear el movimiento pendiente
Extraer los datos disponibles:
- fecha;
- tipo;
- monto;
- categoría;
- descripción;
- método de pago;
- lugar/comercio.
No generar fecha de registro hasta el momento de guardar.
No registrar todavía.
3. Validar los datos
No inventar información.
Si falta un dato obligatorio:
- preguntar únicamente por el dato necesario;
- conservar temporalmente los demás datos válidos;
- detenerse con estado
ESPERANDO_DATO.
lugar/comercio es opcional y puede quedar vacío.
4. Proponer la categoría
Usar:
- las categorías y reglas aprobadas en
AGENTS.md;
- la descripción del movimiento;
- las preferencias confirmadas de
MEMORY.md solo cuando esté permitido.
No crear categorías nuevas si ya existe una adecuada.
Si no hay suficiente seguridad, preguntar.
5. Mostrar vista previa
Cuando los datos obligatorios estén completos, mostrar:
Movimiento detectado
Fecha:
Tipo:
Monto:
Categoría propuesta:
Descripción:
Método de pago:
Lugar/comercio:
¿Lo registro así o quieres cambiar algo?
Detenerse con estado:
ESPERANDO_CONFIRMACION
No escribir todavía.
6. Procesar la respuesta
Si confirma
Continuar con la revisión de duplicados.
Si corrige
- actualizar únicamente el movimiento pendiente;
- conservar los demás datos válidos;
- mostrar nuevamente la vista previa;
- pedir nueva confirmación.
Una corrección invalida cualquier confirmación anterior.
Si cancela
- no escribir nada;
- descartar el movimiento pendiente;
- confirmar la cancelación.
Finalizar con:
CANCELADO
Si la respuesta es ambigua
Pedir confirmación clara.
No interpretar silencio o ambigüedad como autorización.
7. Revisar posibles duplicados
Antes de escribir, consultar los movimientos necesarios en el destino oficial.
Comparar, cuando estén disponibles:
- fecha;
- tipo;
- monto;
- descripción;
- lugar/comercio.
Si existe una coincidencia razonable:
- detener el registro;
- advertir al usuario;
- pedir confirmación específica para registrar de todos modos.
Finalizar temporalmente con:
POSIBLE_DUPLICADO
No eliminar ni modificar registros existentes.
8. Registrar
Antes de escribir, comprobar:
- confirmación explícita válida;
- datos obligatorios completos;
- posible duplicado resuelto;
- herramienta disponible.
Usar exactamente el archivo, pestaña, columnas y orden definidos en TOOLS.md.
Escribir exactamente una fila.
No repetir automáticamente la escritura.
9. Verificar
Después de escribir:
- comprobar el resultado de la herramienta;
- confirmar que la operación terminó correctamente.
Si existe incertidumbre sobre si la escritura ocurrió:
- no volver a escribir;
- revisar primero el destino oficial.
10. Cerrar
Solo cuando la escritura esté verificada:
- informar
✅ Movimiento registrado correctamente.;
- cerrar el movimiento pendiente;
- finalizar con estado
REGISTRADO.
Salida esperada verificable
La skill debe terminar o pausarse en uno de estos estados:
REGISTRADO
CANCELADO
ESPERANDO_DATO
ESPERANDO_CONFIRMACION
POSIBLE_DUPLICADO
ERROR_DE_HERRAMIENTA
Único resultado exitoso de registro
REGISTRADO
Solo puede declararse cuando:
- existe confirmación explícita;
- los datos obligatorios están completos;
- se revisaron posibles duplicados;
- se escribió exactamente una fila;
- se utilizó el destino oficial;
- la operación fue verificada.
Casos especiales
Falta un dato obligatorio
Preguntar y detenerse con:
ESPERANDO_DATO
Falta lugar/comercio
Dejar vacío y continuar.
El usuario corrige
Actualizar, mostrar otra vista previa y pedir nueva confirmación.
El usuario cancela
No escribir y finalizar con:
CANCELADO
Posible duplicado
Advertir y detenerse con:
POSIBLE_DUPLICADO
Falla Google Sheets o Composio
No afirmar éxito.
No repetir automáticamente una escritura incierta.
Finalizar con:
ERROR_DE_HERRAMIENTA
Falta la conexión autorizada
No pedir secretos por chat.
Informar que la conexión necesaria no está disponible.
Finalizar con:
ERROR_DE_HERRAMIENTA
Se pierde el contexto pendiente
No asumir que existía confirmación.
Pedir al usuario que revise el movimiento nuevamente.
El mensaje contiene varios movimientos
Separarlos.
No combinar varios movimientos en una sola fila.
Cada movimiento debe tener su propia revisión y confirmación.
Dependencias
Herramientas
- Telegram.
- Google Sheets mediante Composio.
Archivos
AGENTS.md
TOOLS.md
MEMORY.md, solo cuando esté permitido.
No necesarias por ahora
docs.md
scripts/
references/
- MCP adicional
- acceso adicional a Google Drive
Registro de varios movimientos
Si existen varios movimientos confirmados:
- registrarlos uno por uno;
- no ejecutar escrituras en paralelo;
- después de cada escritura, verificar que terminó correctamente;
- volver a determinar el siguiente destino disponible antes de escribir el siguiente movimiento;
- no asumir que varias escrituras pueden usar filas calculadas al mismo tiempo.
Cada movimiento debe completar este ciclo:
escribir → verificar → continuar con el siguiente.
El mensaje contiene varios movimientos
Separarlos y confirmarlos claramente.
Después de la confirmación:
- registrarlos de forma secuencial;
- nunca escribir varios movimientos en paralelo;
- verificar cada escritura antes de continuar con la siguiente.
Si una escritura falla:
- detener los movimientos restantes;
- verificar cuáles sí fueron registrados;
- no repetir automáticamente los ya guardados.