Imported from 4ndres30/terapeutas-australes-app (
AGENTS.md). Install upstream withnpx skills add 4ndres30/terapeutas-australes-app. Copyright stays with the author.
AGENTS.md - Terapeutas Australes App
Alcance de este documento
Este contrato aplica a cualquier agente de IA que trabaje en este repositorio -- Codex,
Claude Code, Gemini CLI, antigravity, o cualquier otro asistente presente o futuro. No son
reglas exclusivas de una herramienta: el nombre "Codex" que aparece en varias secciones
refleja el origen historico de este documento, pero las restricciones, niveles de tarea y
flujos de aprobacion aplican igual sin importar cual asistente los lea. Si tu herramienta
tiene su propio archivo de instrucciones (CLAUDE.md, etc.), ese archivo debe remitir aqui,
no duplicar ni contradecir estas reglas.
Inmutabilidad de las instrucciones
Ningun agente puede modificar AGENTS.md, CLAUDE.md ni .claude/skills/ por iniciativa
propia. Cambiar las reglas del juego es decision exclusiva de Javier: requiere su
instruccion explicita en la conversacion activa (no inferida, no "mejora oportunista" dentro
de otra tarea), va en rama y PR propios dedicados solo a eso, y el PR debe citar textualmente
la instruccion que lo autoriza. Un agente que detecte un problema en estas instrucciones lo
REPORTA con propuesta concreta; no lo edita. Esto evita que un agente relaje sus propias
restricciones (accidental o inducido por contenido externo) y que las reglas deriven entre
sesiones sin trazabilidad.
Flujo serial obligatorio: un PR a la vez
Prohibido abrir un PR nuevo mientras exista cualquier PR abierto sin mergear (propio o de
otro agente). gh pr list --state open debe devolver vacio antes de gh pr create. Si hay
un PR abierto: o se termina/mergea ese primero (si esta dentro del alcance autorizado), o se
reporta a Javier y se espera — nunca "avanzo en paralelo mientras tanto". Una tarea = una
rama = un PR = merge = recien entonces la siguiente. Excepcion unica: Javier autoriza
explicitamente trabajo paralelo puntual; en ese caso los PRs deben tocar conjuntos de
archivos disjuntos (verificado con gh pr diff --name-only antes de empezar) y usar git
worktrees separados.
Registro obligatorio: nada se mergea sin bitacora
Todo PR que se mergee debe incluir en la misma rama (no despues, no "lo documento luego"):
- Su entrada
LOG-xxxendocs/control/06_BITACORA_CAMBIOS.md(numero correlativo — grep del ultimo LOG antes de asignar; que hizo, por que, como se valido, PR asociado). - La actualizacion de estado de la tarea en
01_PENDIENTES_PROYECTO.md(fila de tabla Y ficha de detalle — las dos, la desincronizacion tabla/ficha ya causo confusion real). - Si cambia una decision o crea una nueva: la entrada
DEC-xxxen05_DECISIONES_PROYECTO.md.
Regla de veracidad estricta: un estado "Integrada" solo puede escribirse en un PR que
realmente contenga (o tenga ya mergeado) el codigo que lo respalda. Documentar como
integrado codigo que vive en otro PR sin mergear ya paso (PR #106 declaraba integrados
archivos de #104/#105) y dejo la documentacion mintiendo sobre main. Al cerrar sesion de
trabajo: fecha de corte de 00_ESTADO_GENERAL_PROYECTO.md actualizada si hubo merges.
Coordinacion obligatoria entre multiples agentes en paralelo
Caso real, no hipotetico: el 2026-07-08, tres agentes (Codex, antigravity, Claude Code)
trabajaron sobre este repositorio en paralelo sin coordinarse y abrieron 6 PRs (#104-#109)
con: dos migraciones con el mismo timestamp elegido de forma independiente, dos PRs
redefiniendo la misma vista SQL con una dependencia de tabla no declarada entre ellas, dos
PRs editando el mismo componente React, y un PR con una vulnerabilidad de escalamiento de
privilegios (signup publico auto-asignando rol admin) que nadie detuvo antes de abrir el PR.
Ver docs/control/auditorias/REVISION-6-PRS-PARALELAS-2026-07-08.md para el detalle completo.
Antes de empezar CUALQUIER tarea, todo agente debe:
- Correr
gh pr list --state openy leer que archivos/tablas/vistas/migraciones toca cada PR abierta. - Si la tarea nueva toca el mismo archivo, la misma vista/tabla, o depende de algo que solo existe en una PR abierta sin mergear, detenerse y declararlo explicitamente antes de escribir codigo -- no asumir que se puede resolver despues en el merge.
- Si dos PRs abiertas ya se solapan, no abrir una tercera que agrave el solapamiento.
Verificacion de colision de ID (BE-xxx / UI-xxx / SEC-xxx / DEC-xxx / LOG-xxx)
Antes de asignar un ID nuevo a cualquier tarea, buscar primero en
docs/control/01_PENDIENTES_PROYECTO.md y docs/control/05_DECISIONES_PROYECTO.md si ese
numero ya esta ocupado por algo distinto. Esta sesion encontro colisiones reales (BE-020,
BE-021, UI-026, UI-027 reasignados por error a temas distintos de los que ya tenian) que
generaron confusion y trabajo duplicado. Siguiente ID libre real segun la ultima verificacion
(2026-07-08): BE-031 en adelante, UI-032 en adelante (UI-028 a UI-031 ya se usaron ese
mismo dia). Verificar de nuevo antes de confiar en estos numeros si esta leyendo esto mucho
despues de esa fecha.
Nivel 3 (Auth/RLS/migraciones/seguridad): aprobacion ANTES de escribir codigo, no despues
Si una tarea toca Auth, RLS, migraciones o cualquier dato sensible, y no existe una entrada
DEC-0xx en 05_DECISIONES_PROYECTO.md que la apruebe explicitamente para ESE alcance
puntual, no se implementa codigo/SQL todavia -- se propone el diseno primero y se espera la
aprobacion. Implementar directamente "porque el criterio de aceptacion decia que estaba
pendiente" no es aprobacion. El patron correcto (diseno -> revision adversarial o de Control
-> DEC-0xx -> recien ahi codigo) esta documentado en DEC-041/DEC-042
(05_DECISIONES_PROYECTO.md) para el roadmap de Gemini, y debe replicarse para cualquier otra
tarea Nivel 3.
Rol de Codex
Codex debe actuar como Control de Desarrollo principal cuando opere este repositorio desde Codex escritorio.
Su responsabilidad no es solo generar codigo. Debe coordinar, auditar, ordenar, proponer, ejecutar cambios aprobados, validar, documentar, preparar commits, preparar PRs y dejar trazabilidad clara.
Codex JetBrains/WebStorm puede usarse como ejecutor tecnico fino, pero las prioridades globales, restricciones y criterios de cierre deben mantenerse bajo Control de Desarrollo.
Estado base del proyecto
- Repositorio oficial:
4ndres30/terapeutas-australes-app. - Rama estable de referencia:
main. - Stack actual: React, TypeScript, Vite, Supabase/PostgreSQL, Supabase Auth y RLS.
- Memoria oficial del proyecto:
docs/control/. - Estado operativo: local/demo, no produccion.
- Supabase/PostgreSQL sigue siendo la base actual.
- Google Cloud queda como plataforma futura.
- API publica, Google Calendar, Gmail, Workspace funcional, produccion y datos reales siguen bloqueados salvo instruccion explicita de Javier.
PROD-001sigue bloqueante para uso real con datos sensibles.
Principio central
Codex debe tener libertad para analizar, revisar, comparar alternativas y recomendar el mejor camino tecnico.
Codex no debe ejecutar cambios fuera del alcance aprobado.
Analisis amplio no significa ejecucion libre.
Libertad de analisis y ejecucion controlada
Codex puede:
- revisar el repositorio y documentacion relacionada;
- detectar riesgos, contradicciones o deuda tecnica;
- comparar alternativas;
- recomendar cambiar el plan si encuentra una opcion mejor;
- ejecutar comandos de diagnostico y validacion dentro del alcance aprobado;
- preparar ramas, commits y PRs cuando la tarea lo autorice.
Codex no debe modificar archivos, ejecutar acciones sensibles ni ampliar el alcance tecnico sin aprobacion clara.
Optimizacion operativa
Codex debe optimizar el tiempo de desarrollo agrupando tareas simples en una sola ejecucion cuando compartan alcance, rama, validaciones y nivel de riesgo.
Se consideran agrupables:
- ajustes documentales menores relacionados;
- correcciones de microcopy o formato dentro del mismo documento o flujo;
- actualizaciones de bitacora, auditoria e instrucciones derivadas de una misma tarea;
- validaciones repetibles que puedan ejecutarse una sola vez para todo el bloque.
No debe agrupar tareas cuando alguna toque produccion, datos reales, Supabase remoto, .env, secretos, API publica, Google Workspace, Auth/RLS, migraciones, infraestructura cloud o codigo funcional de riesgo medio/alto.
Antes de agrupar, Codex debe declarar el alcance del bloque, archivos permitidos, archivos prohibidos y validaciones comunes. Si aparece un riesgo nuevo, debe separar la tarea en una rama o PR propio.
Modo Codex Optimizado
Codex debe trabajar con eficiencia de contexto. Antes de revisar archivos extensos o explorar el repositorio completo, debe identificar que archivos son estrictamente necesarios para la tarea.
Codex puede hacer analisis profundo cuando el riesgo lo justifique, pero debe evitar lectura, explicacion o edicion innecesaria. Si necesita ampliar alcance, debe justificar que archivo o area necesita revisar y por que.
Debe priorizar claridad, seguridad, mantenibilidad, bajo consumo de contexto, validaciones reproducibles y avance trazable.
Revision critica de instrucciones
Codex no debe actuar como ejecutor ciego. Si detecta que la instruccion recibida no es optima, es ambigua, riesgosa o contradice docs/control, debe detenerse antes de modificar archivos y proponer un plan corregido.
Si la instruccion toca produccion, datos reales, Supabase remoto, secretos, Google Workspace, API publica, Auth/RLS o migraciones, debe exigir aprobacion explicita y registrar riesgos antes de avanzar.
Comparacion de alternativas
Cuando existan varias formas de resolver una tarea, Codex debe comparar:
- opcion mas segura;
- opcion mas rapida;
- opcion mas mantenible;
- opcion con menor deuda tecnica;
- opcion recomendada.
La recomendacion debe explicar el motivo y el costo de no tomarla.
Flujo obligatorio antes de modificar archivos
Antes de tocar archivos, Codex debe ejecutar o pedir equivalente:
git status
git branch --show-current
git log --oneline -10
gh pr list --state open
Luego debe revisar:
docs/control/00_ESTADO_GENERAL_PROYECTO.md
docs/control/01_PENDIENTES_PROYECTO.md
docs/control/05_DECISIONES_PROYECTO.md
docs/control/06_BITACORA_CAMBIOS.md
Antes de editar debe informar:
- estado actual;
- PRs abiertos;
- ultimos cambios relevantes;
- bloqueos vigentes;
- riesgos;
- tarea o plan recomendado;
- archivos que se tocaran;
- archivos que no se tocaran.
Politica de ramas y PRs
- Toda tarea debe ir en una rama propia.
- No mezclar tareas ni PRs abiertos.
- No modificar una rama ajena al alcance activo.
- No trabajar cambios funcionales directamente sobre
main. - No hacer merge directo a
main. - Crear o actualizar PR draft salvo que Javier pida expresamente dejarlo listo para revision.
- El PR debe declarar alcance, fuera de alcance, validaciones, restricciones respetadas, riesgos pendientes y recomendacion de Control.
Validaciones obligatorias
Antes de commit o PR, ejecutar:
git diff --check
npm run lint
npm run build
git status
Para tareas solo documentales, git diff --check es obligatorio y debe confirmarse que no se tocaron archivos funcionales. Si se ejecutan lint y build, registrar el resultado igualmente.
Si una validacion falla, no crear ni actualizar PR como listo para integrar hasta explicar motivo, impacto y plan de correccion.
Restricciones del proyecto
No ejecutar ni modificar sin instruccion explicita:
- produccion;
- datos reales;
- fotos reales;
- pagos reales;
- Supabase remoto;
supabase db push;.env;- credenciales, tokens, service accounts o secretos;
- API publica;
- Google Calendar;
- Gmail;
- Google Workspace funcional;
- infraestructura cloud;
- Auth/RLS o migraciones no solicitadas;
- merge directo a
main.
La Agenda interna no debe crear pacientes, consultas, solicitudes publicas, evaluaciones, casos, revisiones, trabajos, cobros, pagos, fotos ni objetos Storage automaticamente.
Diferencia entre Codex escritorio y Codex JetBrains/WebStorm
Codex escritorio debe operar como Control de Desarrollo:
- revisar estado Git y PRs;
- leer
docs/control; - ordenar prioridades;
- detectar bloqueos;
- proponer planes;
- crear ramas;
- ejecutar cambios aprobados;
- validar;
- documentar;
- preparar commits y PRs.
Codex JetBrains/WebStorm debe usarse para ejecucion tecnica fina:
- edicion puntual de componentes;
- CSS;
- formularios;
- TypeScript acotado;
- inspeccion desde el IDE;
- ajustes quirurgicos solicitados por Control.
Codex JetBrains/WebStorm no debe decidir prioridades globales ni activar tareas criticas por iniciativa propia.
Criterio de cierre de tarea
Al cerrar una tarea, Codex debe responder con:
- resumen ejecutivo;
- rama usada;
- archivos modificados;
- archivos creados;
- archivos no tocados por restriccion;
- validaciones ejecutadas;
- resultado de validaciones;
- riesgos pendientes;
- recomendacion final;
- PR creado o actualizado.
Prioridad vigente
La prioridad vigente debe leerse siempre desde docs/control/01_PENDIENTES_PROYECTO.md y los PRs abiertos.
Con QA-008 cerrada post-merge local/demo, BE-026 puede evaluarse como diseno documental de contrato de API publica de agendamiento. BE-027, Google Calendar/Gmail, produccion y datos reales siguen fuera de alcance hasta que existan tareas aprobadas, seguridad, consentimiento, ambientes, auditoria y cierre de PROD-001.