1. Principios de IA
| Principio | Aplicación |
|---|
| Cuaderno primero | Tras login, destino único: lista de tareas (no dashboard multi-widget) |
| Rol visible | Badge FARMER / TECHNICIAN en header de app |
| Pocos niveles | Público (2) + App (3 rutas) — profundidad máxima 2 clicks a detalle |
| Permisos en navegación | CTA “+ Tarea” solo FARMER; rutas API con guard |
| Lenguaje de dominio | Parcela, tarea, vencimiento — no “ticket”, “issue”, “order” |
2. Sitemap
/ Home (público)
/login Login JWT
/app/tasks Lista + stats (auth)
/app/tasks/new Nueva tarea (auth · FARMER)
/app/tasks/:id Detalle + estado (auth · parte)
/** → redirect /
Árbol por audiencia
| Audiencia | Nodos relevantes |
|---|
| Visitante | Home → Login |
| FARMER | Login → Tasks → New / Detail |
| TECHNICIAN | Login → Tasks → Detail (status) |
3. Navegación
Pública
| Elemento | Destino | Notas |
|---|
| Wordmark SURCO | / | Display Literata |
| Entrar | /login | Texto |
| Abrir cuaderno | /login | Primary CTA |
| Soy agricultor / Soy técnico | /login | Mismo form; rol viene del usuario seed |
App (autenticada)
| Elemento | Destino | Visibilidad |
|---|
| Wordmark | /app/tasks | Ambos |
| Badge rol | — | Ambos |
| Nombre usuario | — | Ambos |
| + Tarea | /app/tasks/new | Solo FARMER |
| Salir | limpia token → /login | Ambos |
| Card tarea | /app/tasks/:id | Ambos |
| Volver (detalle) | /app/tasks | Ambos |
No hay menú lateral multi-sección en v1 (evita IA de ERP).
4. Inventario de contenido
| Pantalla | Contenidos |
|---|
| Home | Eyebrow sector, H1 eslogan, lead, CTAs, 3 stats teaser, hero img, 3 pasos, footer demo |
| Login | Título, email, password, submit, error, enlace implícito a demo |
| Tasks | Título contextual por rol, 4 stats, lista cards, empty, error |
| New | Form campos, submit, cancel/back |
| Detail | Meta código/parcela, notas, selector/acciones de estado |
5. Taxonomía y etiquetas de estado
| Status API | Label UI | Semántica |
|---|
PENDING | Pendiente | Creada; sin técnico o aún no activa |
ACTIVE | Activa | En curso / asignada |
DONE | Hecha | Cerrada con éxito |
CANCELLED | Cancelada | No se hará |
Orden de lista: por dueAt ascendente (lo que vence antes, primero).
6. Modelo mental vs UI
| Modelo mental del usuario | Representación |
|---|
| “Mi libreta de hoy” | /app/tasks + stats abiertas |
| “El bancal del norte” | parcel.name + crop + ha en card |
| “Se lo dije a Pol” | technician name en card (vista farmer) |
| “Ya está regado” | status DONE |
7. Permisos y objetos
User 1──* Parcel (farmerId)
User 1──* FieldTask (farmerId)
User 0..1──* FieldTask (technicianId opcional)
Parcel 1──* FieldTask
| Objeto | Quién crea | Quién ve | Quién muta status |
|---|
| Parcel | FARMER (implícito en create task) | Vía tarea | No hay CRUD UI aparte |
| FieldTask | FARMER | Farmer dueño o tech asignado | Participante según reglas API |
- FARMER crea tarea (+ opcional email técnico) → si hay técnico válido,
ACTIVE.
- TECHNICIAN lista solo asignadas → actualiza a
DONE.
- FARMER ve el cambio en list/detail (mismo recurso).
No hay bandeja de notificaciones: el “pull” es abrir el cuaderno.
9. SEO / URLs (público)
| URL | indexable | Motivo |
|---|
/ | Sí (demo) | Marketing del caso |
/login | Noindex preferible | Auth |
/app/* | No | Privado |
10. Criterios de aceptación IA
- Desde home, un usuario llega a login en 1 click.
- Tras login válido, aterriza en lista de tareas.
- Ninguna ruta de app asume rol incorrecto en la nav (sin “+ Tarea” para técnico).
- Detalle y new son hijos semánticos de tasks (path prefix
/app/tasks).
- No existen secciones huérfanas (inventario, mapa, chat) en la nav.