# Nucleo.3 - AGENT ENTRYPOINT

Este archivo es el punto de entrada para cualquier agente LLM en este repositorio.

## Carga obligatoria
Lee y aplica tambien los siguientes archivos:

- `.agents/CLAUDE.md`
- `.agents/STRUCTURE.md`
- `.agents/BUG_MAPS_SYSTEMS.md`
- `.agents/TEST_PLAN_CUSTOMERS.md`
- `.agents/design.md`
- `.agents/git.md`
- `.agents/database.md`

# Principios de trabajo

## 🧠 Pensar antes de codear
Si algo es ambiguo → preguntar, no asumir. Mostrar el tradeoff, detenerse si hay confusión.

## ⚙️ Simplicidad primero
El mínimo código que resuelve el problema. Sin abstracciones especulativas ni "flexibilidad" que nadie pidió.

### Referencia de simplificación
Tomar `groups.js` como modelo de lectura y estructura: variables arriba, `Index` claro, CRUD y `getData` directos, y acciones de botones separadas y fáciles de seguir.
Preferir ese formato antes que modales o flujos largos cuando el módulo pueda resolverse con lista, formulario simple e ինտերacciones puntuales.

## 🔬 Cambios quirúrgicos
Solo tocar lo que la tarea requiere. No "mejorar" código vecino, no refactorizar lo que funciona.

## 🎯 Ejecución orientada al objetivo
Transformar instrucciones vagas en metas verificables antes de escribir una línea. "Agregar validación" → escribir tests para inputs inválidos y hacerlos pasar.

## 🚫 Base de datos — Solo tablas limpias
- **PROHIBIDO** crear o modificar: triggers, stored procedures, events, views, funciones SQL.
- Solo se trabaja con **tablas planas** (`CREATE TABLE`) e índices (`KEY`, `INDEX`).
- Si en el futuro se necesita lógica en BD, el humano lo decide explícitamente.

## 🚫 Base de datos — PROHIBIDO tocar directamente
- **NUNCA** conectarse a la BD online (ni por SSH + mysql ni por ningún otro medio).
- **NUNCA** ejecutar SQL directamente: ni CREATE, DROP, INSERT, UPDATE, DELETE, ni siquiera en BDs de prueba.
- Toda revisión de estructura se hace **leyendo archivos `.sql` locales** del repositorio (`models/querys/` o `systems/MODULO/models/querys/`).
- Cuando se requiera ejecutar SQL, entregar al usuario el **comando listo para copiar/pegar** y esperar a que él lo corra. Nunca ejecutar automáticamente.
- Todo SQL nuevo (estructura, seeds, registros en `modules`/`systems`) va en el archivo `MODULO.sql` del módulo — nunca SQL suelto fuera del repo.
- Para tablas globales (`modules`, `systems`, `roles_*`) usar `INSERT ... ON DUPLICATE KEY UPDATE`, nunca `DROP + INSERT`.

## 🏷️ Identidad en commits
- Claude Code siempre usa `[claudecode]` — nunca `[developer]`.
- `[developer]` es exclusivo del humano (Hermany Terrazas).
- Ejemplo: `git commit -m "[claudecode] descripcion breve"`

---

---

## Reglas base inmediatas
- MVC estricto: `controllers` (request/json), `models` (CRUD/getData), `views` (HTML puro), `components` (JS funcional).
- Base de datos: trabajar solo con SQL del repo (`models/querys/` y `modules/*/models/querys/`).
- No conectar ni ejecutar cambios directamente en BD online.
- No usar triggers, procedures, events, views ni foreign keys.
- Consolidar SQL por modulo en `modules/MODULO/models/querys/MODULO.sql`.
- Usar `INSERT ... ON DUPLICATE KEY UPDATE` para tablas globales (`systems`, `modules`, `roles_*`).
- Al editar `.less`, compilar a `assets/css/dist/`.
- Ignorar archivos `._*` de macOS.

## Diseño — reglas obligatorias
- Todo formulario usa **2 columnas**: `<div class="formGroup formGroupTwoColumns">`.
- Ver `.agents/design.md` para convenciones completas de iconos, tokens y LESS.

## Contexto rapido
- Proyecto: framework MVC propio PHP + JS vanilla.
- Servidor: Ubuntu 24.04, Apache, MySQL.
- Dominio: `dev.io`.
- Volumen local: `/Volumes/dev.io/www/nucleo/nucleo.3`.
