Capítulo 10 de 10 · 100 proyectos para hacer con tu coding agent
Bots, integraciones y rarezas (91-100)
El cajón de sastre: bots útiles, integraciones caseras, un motor de expresiones regulares y una hoja de cálculo con fórmulas.
El último capítulo es el cajón de sastre. Cosas que resuelven una molestia concreta, integraciones entre servicios que no se hablan entre sí, y tres o cuatro proyectos que están aquí simplemente porque son bonitos de escribir y no cabían en ningún otro sitio.
91. Bot que resume tus canales
Lee lo que te has perdido y te lo cuenta en cinco líneas. El antídoto contra volver de vacaciones y encontrarte 400 mensajes sin leer.
Construye un bot para Slack o Discord que resuma canales.
- Comando /resumen [canal] [desde ayer|esta semana].
- Recupera el historial respetando permisos y límites de la API.
- Resumen estructurado: temas tratados, decisiones, preguntas sin responder
y menciones que te afectan.
- Enlaces a los mensajes originales de cada punto.
- Resumen diario automático opcional, por mensaje directo.
Nunca resumas canales privados a los que quien pregunta no tiene acceso:
escribe un test de esa comprobación.
92. Automatizador de tu propio flujo de trabajo
Un IFTTT casero. Un motor de reglas del tipo «cuando pase X, haz Y», pero con los servicios que usas tú y sin depender de que una empresa siga existiendo.
Crea un motor de automatización personal con reglas declarativas.
reglas:
- cuando: {tipo: correo_recibido, de: "*@factura.com"}
entonces: [{guardar_adjunto: "~/Facturas/{año}/{mes}"}, {etiquetar: "facturas"}]
- Disparadores: temporizador, webhook, correo nuevo, fichero en carpeta, RSS.
- Acciones: HTTP, correo, notificación, mover fichero, ejecutar comando.
- Historial de ejecuciones con entrada, salida y errores, y reintento manual.
- Las credenciales, en el llavero del sistema, nunca en el YAML.
93. Motor de expresiones regulares
Del patrón al autómata. Cuando lo escribes, entiendes por qué algunas expresiones regulares tardan una eternidad y otras, aparentemente iguales, no.
Implementa un motor de expresiones regulares desde cero.
1. Parser del patrón a AST: concatenación, alternancia, *, +, ?, clases,
anclas y grupos.
2. Construcción de Thompson a NFA y simulación (sin backtracking).
3. Conversión a DFA con caché, y comparación de rendimiento.
4. Grupos de captura y búsqueda de todas las coincidencias.
Demuestra con un test que tu motor resuelve en tiempo lineal el caso
patológico (a?){30}a{30} contra "aaaa...", donde el motor de tu lenguaje
se queda colgado. Explica por qué.
94. Hoja de cálculo con fórmulas
Celdas, referencias, recálculo por dependencias y detección de ciclos. Un proyecto compacto y con una densidad de aprendizaje por línea altísima.
Construye una hoja de cálculo en el navegador.
- Cuadrícula con edición, selección de rangos, copiar y pegar.
- Fórmulas: aritmética, referencias A1 y rangos A1:B10, funciones
SUMA, PROMEDIO, SI, BUSCARV, CONTAR.SI.
- Grafo de dependencias: al cambiar una celda, recalcula solo lo afectado,
en orden topológico.
- Detección de referencias circulares con mensaje claro (#CIRCULAR!).
- Importación y exportación CSV.
Prueba con 10.000 celdas encadenadas: el recálculo debe ser instantáneo.
95. Generador de currículum desde un YAML
Un fichero de datos, varias plantillas y salida en PDF y HTML. Nunca más pelearte con Word para que la segunda página no se descuadre.
Haz un generador de currículum a partir de un fichero de datos.
- Fuente única en YAML/JSON con esquema validado.
- Varias plantillas intercambiables, en HTML+CSS pensadas para impresión.
- Exportación a PDF con saltos de página controlados y enlaces funcionando.
- Versión web con metaetiquetas y datos estructurados JSON-LD.
- Filtro por perfil: generar una versión enfocada a un tipo de puesto,
seleccionando qué secciones aparecen.
96. Panel de mando para tu casa
Una pantalla en el pasillo con el tiempo, el transporte, el calendario y lo que se te ocurra. La parte que no se ve es que tiene que aguantar semanas encendida sin morirse.
Construye un panel de información para una pantalla siempre encendida.
- Widgets configurables en una rejilla: tiempo, próximos transportes,
calendario, tareas, calidad del aire, contador de días.
- Cada widget con su propio intervalo de refresco y su caché.
- Si una fuente falla, el widget muestra el último dato con su antigüedad;
nunca una pantalla en blanco.
- Modo nocturno automático que baja el brillo y reduce el contenido.
- Configuración desde una página web accesible en la red local.
Debe funcionar durante semanas sin reiniciarse. Vigila las fugas de memoria.
97. Tablero kanban en la terminal
Todo el flujo con el teclado: mover tarjetas, filtrar, buscar. Y los datos en un fichero de texto que puedes versionar con git.
Crea un tablero kanban para la terminal.
- Columnas configurables, tarjetas con título, notas, etiquetas y fecha límite.
- Navegación y movimiento de tarjetas solo con teclado, tipo vim.
- Almacenamiento en un único fichero de texto legible y versionable con git.
- Filtros por etiqueta y búsqueda incremental.
- Vista de detalle con edición en tu $EDITOR.
Interfaz fluida en un terminal de 80 columnas y en uno de 200.
98. Diario de aprendizaje con repaso espaciado
Apuntas lo que aprendes y la herramienta te lo devuelve justo antes de que se te olvide. Un Anki de terminal para, por ejemplo, lo que vayas aprendiendo con estos proyectos.
Haz una herramienta de notas con repetición espaciada.
- Captura rápida desde la terminal: una nota, opcionalmente con pregunta/respuesta.
- Algoritmo de repaso (SM-2 o FSRS) con calidad de respuesta de 0 a 5.
- Sesión diaria de repaso, con límite de tarjetas configurable.
- Estadísticas: retención, carga futura prevista, tarjetas problemáticas.
- Todo en un SQLite local, con exportación a Anki.
Explícame en el README cómo funciona el algoritmo que hayas elegido.
99. Archivador personal de páginas web
Guarda las páginas que te importan como HTML autocontenido antes de que desaparezcan, que desaparecen. Después de unos años de enlaces rotos, se agradece.
Construye un archivador web personal.
- Guarda una URL como HTML autocontenido: CSS incrustado, imágenes en base64,
sin peticiones externas al abrirlo.
- Extracción del artículo legible, además de la copia fiel.
- Índice local con búsqueda de texto completo en el contenido guardado.
- Detección de páginas ya archivadas y versiones sucesivas de la misma URL.
- Importación de marcadores desde el navegador y archivado por lotes.
Prueba con 20 sitios distintos y arregla los que no se vean bien offline.
100. Un juego de aventura conversacional generado
Para cerrar, algo divertido. Un mundo persistente, un parser de comandos y un narrador que improvisa sin poder saltarse las reglas. Lo de «sin saltarse las reglas» es el problema técnico interesante.
Crea un juego de aventura de texto con narrador generativo.
- Mundo definido en datos: salas, objetos, personajes, estados y reglas.
- El motor es autoritativo: las acciones válidas y sus efectos los decide el
código, no el modelo. El modelo solo narra el resultado.
- Parser de comandos con sinónimos y desambiguación ("¿qué llave, la oxidada
o la dorada?").
- Guardar y cargar partida, con el historial narrativo.
- Un puzle de al menos tres pasos encadenados que sea imposible de saltarse.
Test importante: el jugador intenta convencer al narrador de que tiene un
objeto que no tiene. El estado del mundo no debe cambiar.
Y ahora, ¿qué?
Cien proyectos son muchos y no vas a hacerlos todos, ni falta que hace. Mi recomendación es que elijas tres. Uno que sepas hacer, para coger ritmo con el agente. Uno que te dé un poco de miedo, que es donde se aprende. Y uno que resuelva una molestia real de tu día a día, porque ese es el que vas a terminar.