Cómo una persona mantiene 40 repositorios en marcha
Cada mañana abro un agente de programación con IA por proyecto, le doy una sola línea y reviso lo que devuelve. Un agente de programación puede inspeccionar archivos, editar código y ejecutar verificaciones. Mis instrucciones reutilizables son archivos de texto plano llamados skills.
La versión más pequeña de este flujo
Mi setup completo creció con el tiempo. Puedes empezar con un proyecto, una tarea y cuatro hábitos.
Elige una tarea acotada
Elige un trabajo con un final claro y un resultado que puedas verificar. Mantén el primer cambio lo bastante pequeño para revisarlo.
Escribe las restricciones
Dile al agente qué debe seguir siendo cierto, qué comandos verifican el trabajo y qué no debe tocar.
Revisa el cambio
Lee el diff, cuestiona sus supuestos y ejecuta las verificaciones del proyecto. Una persona sigue siendo responsable de aceptarlo.
Conserva la lección
Convierte un fallo en un test o una regla escrita. La siguiente sesión no debe repetir el mismo error.
El comando desde el que empiezo
Esta es mi configuración madura de ingeniería. Cada ventana de tmux es un proyecto. ai-memory inicia el agente con las decisiones guardadas y los hooks de ese proyecto. El flujo mínimo de arriba no necesita nada de esto.
cd ~/Projects/ai-usagebarai-memory run claude# quota gone? same workstream, another agentai-memory run codex --yoloDespués escribo una de tres líneas, según cómo esté la cola:
run pr-audit and iss-audit, then run github-resolutionEl día normal: auditar todo lo abierto y después arreglar lo que las auditorías aprobaron.
... then run the release skillLa agrego cuando entró suficiente para una versión.
run pr-bump and releaseLos días en que la única cola es Dependabot.
El pipeline
Cada afirmación se verifica, ya venga de una persona o de un agente. Cada arreglo aprobado recibe un test de regresión, y la versión espera a que pasen todas las verificaciones automatizadas sobre esa versión exacta.

Las skills que hacen el trabajo
Cada una es un archivo SKILL.md: un nombre, una descripción y un prompt largo y específico. El agente carga el cuerpo solo cuando decide usar la skill.
pr-audit
Evidencia antes que relato. Verifica cada afirmación de un pull request, busca bits de ejecución escondidos, homoglifos, actions sin versión fija, dependencias con typosquatting y prompt injection, y controla el semver.
iss-audit
La misma desconfianza para los issues. Nunca corre un comando copiado de un issue, separa lo observado del diagnóstico de quien lo reporta y reproduce con datos sintéticos en un sandbox.
github-resolution
Convierte los tickets aprobados en código mergeado, uno por vez, cada uno con un test de regresión escrito antes del arreglo, sin abstracciones especulativas ni refactors de paso.
security-audit
Un modelo de amenazas y una auditoría para un código base, un rango de commits o un pull request: inyección, bypass de autenticación, secretos, cadena de suministro, CI comprometido, denegación de servicio.
pr-bump
El camino rápido para Dependabot. Agrupa cada bump en una sola pasada de verificación, con un piso de cadena de suministro que manda cualquier cosa rara a una auditoría completa.
release
La versión sale del changelog: los arreglos son un patch, las novedades un minor, los cambios incompatibles un major. Solo crea tags con CI en verde y nunca reescribe un tag publicado.
Kaizen cierra el ciclo
Después de cada ronda miro lo que salió mal o tardó demasiado y arreglo el proceso, junto con el código. Lo llamo kaizen, la palabra japonesa para mejora continua, y es el paso que hace que la próxima ronda sea mejor que esta.
Skills
Una regla se agrega el día en que aparece un error. El historial de my-skills está lleno de ellas: agrupar los bumps de Dependabot en una sola pasada, dejar los pull requests rechazados en un estado limpio.
Instrucciones del harness
El AGENTS.md de cada proyecto junta los comandos, las invariantes y las trampas a medida que las encuentro, para que el próximo agente no tenga que redescubrirlas.
Herramientas
ai-usagebar, ghpending y tclock existen porque algo de mi rutina era lento o invisible. Siguen cambiando por la misma razón.
Setup
El escritorio, la terminal y el contenedor de juegos son código, así que una mejora es un commit que puedo revisar, conservar o revertir.
Cada línea de estas skills es una cicatriz.
En qué se traduce todo eso
Todo lo de abajo pasó en 2026, entre las herramientas de este sitio, mis proyectos personales Frank, la newsletter, el benchmark y el blog. Contado el 23 de septiembre de 2026. Casi todo pasó por agentes y estas skills, conmigo leyendo los informes y tomando las decisiones.
- 30
- proyectos con commits
- 6330
- commits
- 783
- pull requests mergeados
- 486
- issues cerrados
- 1,08 M
- líneas de código agregadas
- 121
- posts publicados en el blog
Las líneas de código son líneas agregadas a archivos de código. Los lockfiles, datos, fuentes, traducciones y archivos vendorizados o generados no cuentan, y tampoco la salida de los modelos del benchmark ni el contenido generado de la newsletter. FrankGeary y tclock son forks, así que solo cuentan mis propios cambios. Los pull requests e issues vienen de GitHub; frank_bazaar no tiene remoto en GitHub y akitando-news es privado.
Proyecto por proyecto
| Proyecto | Commits | PRs mergeados | Issues cerrados | Líneas de código agregadas |
|---|---|---|---|---|
| ai-memory | 1468 | 500 | 283 | 328.177 |
| akitaonrails.github.io | 637 | 9 | 5 | 121 posts |
| akitando-news (privado) | 577 | 1 | 0 | 80.602 |
| ai-usagebar | 553 | 146 | 42 | 132.932 |
| distrobox-gaming | 497 | 2 | 0 | 47.622 |
| FrankMD | 361 | 42 | 45 | 81.237 |
| llm-coding-benchmark | 359 | 5 | 7 | 17.636 |
| ai-jail | 353 | 44 | 83 | 41.666 |
| FrankYomik | 248 | 0 | 0 | 53.833 |
| frank_go | 220 | 3 | 1 | 16.725 |
| frank_investigator | 189 | 1 | 2 | 45.365 |
| FrankClaw | 189 | 3 | 2 | 69.114 |
| FrankSherlock | 121 | 2 | 8 | 48.930 |
| frank_karaoke | 102 | 4 | 0 | 10.465 |
| frank_fbi | 79 | 1 | 3 | 25.498 |
| FrankMega | 62 | 2 | 0 | 10.965 |
| clock-tui | 54 | 10 | 0 | 7276 |
| frank_type | 49 | 3 | 2 | 9815 |
| ghpending | 40 | 3 | 2 | 6081 |
| frank_geary | 34 | 1 | 0 | 1157 |
| tropicalruby-2026 | 30 | 0 | 0 | 2201 |
| ai-memory-web | 22 | 1 | 0 | 9775 |
| frank_scanlation | 21 | 0 | 0 | 8904 |
| omarchy-games-menu | 17 | 0 | 0 | 6951 |
| aitrepreneur-docker | 13 | 0 | 0 | 781 |
| google-calendar-tui | 12 | 0 | 1 | 3956 |
| ai-jail-web | 10 | 0 | 0 | 2887 |
| frank_lyrics | 9 | 0 | 0 | 2346 |
| ai-toolkit-web | 3 | 0 | 0 | 2778 |
| frank_bazaar | 1 | · | · | 1769 |
La IA es un espejo. Si eres bueno, te hace diez veces más rápido. Si eres malo, también te hace diez veces más rápido, para producir basura.
Una carpeta, todos los agentes
Las skills viven en un solo repositorio. La carpeta de skills de cada agente tiene enlaces simbólicos hacia él, así que un cambio llega a Claude Code, Codex, OpenCode y Kimi a la vez.

mkdir ~/Projects/my-skills/<name> # add a SKILL.mdfor h in ~/.claude/skills ~/.agents/skills ~/.codex/skills; do ln -s ~/Projects/my-skills/<name> "$h/<name>"doneDónde vive el resto del conocimiento
Las skills cubren procedimientos que se repiten igual. Todo lo demás vive en texto plano que los agentes pueden leer.
Una memoria por proyecto
ai-memory guarda las decisiones, trampas y traspasos de cada proyecto. Una sesión nueva, en cualquier agente, empieza desde ahí.
AGENTS.md en todas partes
Cada repositorio tiene sus propias instrucciones: los comandos, las invariantes, los errores que no hay que repetir.
Apunta a un ejemplo vivo
"Haz un workflow de AUR como el de ai-memory" funciona mejor que una skill sobre empaquetado para AUR, porque el ejemplo siempre está al día.
Anota lo que no se volvió código
La investigación, las alternativas descartadas, el motivo detrás de una decisión. Cada hora de investigación de un agente se vuelve un documento que puedo reutilizar.
Todo lo que hay aquí es código abierto
Las herramientas, las skills y el benchmark son repositorios públicos. Haz un fork y arma la versión que encaje con tu forma de trabajar.
