actualizar AGENTS.md con reglas i18n, tipos KAPPA mixtos y stack actualizado

This commit is contained in:
2026-05-27 20:40:45 -05:00
parent f39faf61a2
commit 1d057cdcae
+17 -6
View File
@@ -5,14 +5,25 @@
## Stack ## Stack
| Capa | Tecnología | | Capa | Tecnología | Versión |
|------|-----------| |------|-----------|---------|
| Frontend | Vue 3 + TypeScript + Vite | | Desktop shell | Tauri v2 | 2.11 |
| Runtime | **Bun** (1.3+) | | Frontend | Vue 3 + TypeScript + Vite | 3.4 / 5.x |
| Estado | Pinia | | Runtime JS | Bun | 1.3+ |
| Estado | Pinia | 2.1 |
| BD local | Turso (libSQL) | Embedded |
| HTTP | fetch() directo a KAPPA (proxy Vite en dev) | | HTTP | fetch() directo a KAPPA (proxy Vite en dev) |
| Auth | Bearer token (POST /api/users/login/) | | Auth | Bearer token (POST /api/users/login/) |
| Almacenamiento | localStorage (token, last project) → Dexie (futuro) | | UI | shadcn-vue (New York) + Tailwind CSS v4 | 2.7 |
| Tablas | AG Grid Community + tanstack/vue-table | 35.3 |
| i18n | vue-i18n (es.json + en.json) — **PROHIBIDO hardcodear texto** | 11.4 |
## Reglas de código
1. **PROHIBIDO hardcodear texto visible al usuario.** Todo texto debe usar `t('clave')` de vue-i18n. Si no existe la clave, agregarla a `es.json` y `en.json`.
2. **KAPPA retorna tipos mixtos**: strings, números y booleanos para el mismo campo (ej: `status` puede ser `"active"`, `true`, o `3`). Siempre usar `String(valor)` o `safeStr()` antes de operar.
3. **No usar `.catch(() => {})`** sin loguear el error. Siempre `console.error()`.
4. **Los nombres de funciones y archivos van en español** cuando son semánticos del dominio (ej: `syncHUsToTurso` → OK, pero labels visibles van en i18n).
## Sincronización entre máquinas (Mac Mini ↔ MacBook Air) ## Sincronización entre máquinas (Mac Mini ↔ MacBook Air)