diff --git a/AGENTS.md b/AGENTS.md index 77b6419..d561acb 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -25,6 +25,7 @@ 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). 5. **Toda función debe tener observabilidad**: loguear entrada con `[Alpha]` + acción + datos clave, loguear errores con `[Alpha]` + descripción + error completo. Sin logs no se puede diagnosticar. +6. **IDs jerárquicos obligatorios en componentes**: todo elemento raíz de sección debe tener `id="{view}-{section}-{element}"` en kebab-case. Ej: `dashboard-stats-epics`, `login-card`, `users-table`. Permite ubicar cualquier componente por su ID sin ambigüedad. ## Sincronización entre máquinas (Mac Mini ↔ MacBook Air) diff --git a/README.md b/README.md index 8fab930..37c529c 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,8 @@ kappa-hub/ 2. **KAPPA retorna tipos mixtos** — usar `String()` siempre 3. **No silenciar errores** — siempre `console.error()` 4. **Observabilidad obligatoria** — toda función debe loguear `[Alpha]` + acción + datos clave + errores completos -5. **Build verde siempre** — `bun run build` + `cargo build` sin errores +5. **IDs jerárquicos** — componentes con `id="{view}-{section}-{element}"` en kebab-case. Ej: `dashboard-stats-epics` +6. **Build verde siempre** — `bun run build` + `cargo build` sin errores ## Documentos clave diff --git a/src/views/DashboardView.vue b/src/views/DashboardView.vue index 0b6eb20..04c63fd 100644 --- a/src/views/DashboardView.vue +++ b/src/views/DashboardView.vue @@ -66,8 +66,8 @@ const statusLabel = (status: unknown) => { -
- +
+ {{ t('dashboard.epics') }} @@ -78,7 +78,7 @@ const statusLabel = (status: unknown) => { - + {{ t('dashboard.hus') }} @@ -89,7 +89,7 @@ const statusLabel = (status: unknown) => { - + {{ t('dashboard.inProgress') }} @@ -100,7 +100,7 @@ const statusLabel = (status: unknown) => { - + {{ t('dashboard.sessions') }} @@ -113,7 +113,7 @@ const statusLabel = (status: unknown) => {
- + {{ t('dashboard.description') }} @@ -140,7 +140,7 @@ const statusLabel = (status: unknown) => { - + {{ t('dashboard.userStoriesTitle') }} {{ t('dashboard.husCount', { count: workItems.userStories.length }) }} diff --git a/src/views/LoginView.vue b/src/views/LoginView.vue index 46a6c0c..b427dfe 100644 --- a/src/views/LoginView.vue +++ b/src/views/LoginView.vue @@ -41,7 +41,7 @@ async function handleLogin() {
Alpha - + {{ t('login.title') }} diff --git a/src/views/ProjectListView.vue b/src/views/ProjectListView.vue index 44a29da..68b92c8 100644 --- a/src/views/ProjectListView.vue +++ b/src/views/ProjectListView.vue @@ -80,7 +80,7 @@ function getStatusVariant(status?: string) {
-
+
{