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
| Capa | Tecnología |
|------|-----------|
| Frontend | Vue 3 + TypeScript + Vite |
| Runtime | **Bun** (1.3+) |
| Estado | Pinia |
| Capa | Tecnología | Versión |
|------|-----------|---------|
| Desktop shell | Tauri v2 | 2.11 |
| Frontend | Vue 3 + TypeScript + Vite | 3.4 / 5.x |
| Runtime JS | Bun | 1.3+ |
| Estado | Pinia | 2.1 |
| BD local | Turso (libSQL) | Embedded |
| HTTP | fetch() directo a KAPPA (proxy Vite en dev) |
| 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)