00-day-brief.md
00 — Day brief · 2026-08-14 · DERIVA
Decisiones ALS-2 BRIEF
| Campo | Valor |
|---|---|
| Fecha | 2026-08-14 |
| Nombre | DERIVA |
| Complejidad | Nivel 1 (no L2 consecutivo tras PIZARRA) |
| Sector | Turismo / patrimonio vecinal |
| Tipo | Mapa-first de micro-paseos + solicitud a guía + inbox GUIDE JWT |
| Plataforma | Web responsive (split mapa+lista visitante · desktop guía) |
| Registro | R-IN — mapa como superficie, usable y AA |
| Shell | S-SPLIT — plano persistente | ficha o lista |
| Home | H-MAP — el mapa es la home |
| Flujo | F-MAP — pin → ficha → solicitud |
| Por qué no PIZARRA | No S-CMD / H-SEARCH / F-SEARCH; no educación cívica; no catálogo search-first |
| Por qué no PRIMA | No S-SIDE / H-DATA / F-KAN; no seguros |
Terna unicidad
R-IN · S-SPLIT · H-MAP · F-MAP
Cumple memory §6.5: 0 códigos iguales a N−1 (PIZARRA) y ≥2 distintos vs N−2 (PRIMA). Ventana de 4 días ya tenía R-CL; hoy R-IN. Experimento §8: mapa como superficie.
Directivas aplicadas
- D-P0-01…09, D-P1-01 (≥12 UX), D-P0-08 (≥10 UI), D-P1-05 JWT GUIDE
- Tipografía Lora + Karla (evitar Newsreader, Atkinson, Outfit, Archivo, Fraunces)
- Paleta dusk cartográfico — crema / índigo anochecer / terracota / arena — no chalky, no slate/teal, no limestone, no wine
- Home no es hero 2-col ni search bar (AP-12). Superficie = plano + rail de paseos.
Alcance L1 must
- Home split: mapa con pines + rail de 4–6 paseos
- Ficha de paseo (foto, duración, punto de encuentro, guía)
- Formulario público de solicitud (solicitud ≠ plaza confirmada)
- Success con código
DV-MMDD-NNN - Login + inbox GUIDE JWT (NEW → CONTACTED → CONFIRMED / WAITLIST / CANCELLED)
- Empty / loading / error / mobile mapa apilado
- ≥12 UX + ≥10 UI Paper
Supuestos
- S1: Un barrio tipo Lavapiés–Embajadores sostiene 4–8 micro-paseos activos (rango operativo).
- S2: El visitante llega con “qué hay a 15 minutos a pie”, no con marca turística.
- S3: El guía vecinal necesita cola con estado, no un CRM de tours.
- S4: La plaza se confirma fuera (WhatsApp/presencial); DERIVA no cobra.
Hipótesis
| ID | Hipótesis | Señal |
|---|---|---|
| H1 | El plano reduce abandono vs listado de rutas | % sesiones con click en pin |
| H2 | Copy “solicitud, no plaza” baja expectativas rotas | ↓ “pensé que estaba apuntado” |
| H3 | Inbox CONFIRMED nunca supera seats | invariante de aforo |
Mood visual
- Elegido: dusk cartográfico (no el primer instinto “postal turística azul”)
- Paleta:
#E2EEF0crema ·#1C2430índigo anochecer ·#C45C26terracota ·#E8D5B5arena ·#7BA3B0agua de plano - Tipo: Lora 52/36/24 display · Karla 16/14 UI
00-paper-reference.md
Paper reference · DERIVA
| URL | https://app.paper.design/file/01KZZH8RQ81CVYTMH05PZKQ1GS |
| File ID | 01KZZH8RQ81CVYTMH05PZKQ1GS |
UX-count: 12 UI-count: 11
UX process (prefijo UX- · mínimo 12)
| ID | Nombre | Contenido |
|---|---|---|
| UX-00 | Cover | Terna + problema mapa-first |
| UX-01 | Stakeholders | Visitante, guía, asociación, ayto |
| UX-02 | Personas | Nora / Iago |
| UX-03 | JTBD | Funcional, emocional, social, guía |
| UX-04 | Stories | Must pin/solicitud/inbox |
| UX-05 | Journey | 4 fases sábado |
| UX-06 | Blueprint | Front/back/sistemas/fallo |
| UX-07 | Site map / IA | Público + guía |
| UX-08 | Flujos | Must + staff + errores + events |
| UX-09 | Datos + permisos | Walk, request, user |
| UX-10 | Métricas | North star solicitudes honestas |
| UX-11 | Research | Comprobado / supuesto / decisión |
UI producto (prefijo UI- · mínimo 10)
| ID | Nombre | Flujo |
|---|---|---|
| UI-00 | Tokens DS | Dusk cartográfico |
| UI-01 | Mapa home split | Must |
| UI-02 | Ficha paseo | Must |
| UI-03 | Solicitud | Must |
| UI-04 | Success | Must |
| UI-05 | Login guía | Staff |
| UI-06 | Inbox guía | Staff |
| UI-07 | Empty | Estado |
| UI-08 | Error | Estado |
| UI-09 | Loading | Estado |
| UI-10 | Mobile mapa | Mobile core |
01-project-definition.md
01 — Definición · DERIVA
Nombre: DERIVA — deriva urbana, paseo con intención.
Eslogan: El barrio se lee en un plano.
Una frase: Mapa de micro-paseos vecinales con solicitud a un guía.
Sector: Turismo / patrimonio vecinal. Tipo: Web mapa-first L1.
Plataforma: Web responsive. Idioma: ES.
Problema (hipótesis): las rutas de barrio viven en PDF y WhatsApp; el visitante no ve dónde pisar.
Objetivos: activar pin → solicitud honesta; guía con aforo.
No objetivos: pagos, GPS en vivo, reseñas, CMS de rutas.
North star: paseos con ≥1 solicitud que no se confunde con reserva.
02-ux-research-strategy.md
02 — Investigación
Comprobado (secundario): productos municipales y asociaciones publican rutas en PDF o hilos.
Supuestos: 4–8 paseos activos; guía vecinal no usa CRM.
Hipótesis H1–H3: ver 00-day-brief.md.
Personas: Nora (visitante, familia) · Iago (guía).
JTBD: Cuando estoy en un barrio nuevo, quiero ver paseos en un plano, para decidir en 2 minutos.
03-information-architecture.md
03 — IA
Público: / split mapa+rail · /walks/:slug · /walks/:slug/pedir · /ok/:code
Guía: /login · /inbox
Permisos: visitante GET walks + POST request. Guía JWT GET/PATCH requests.
04-user-flows.md
04 — Flujos
Must: mapa → pin → ficha → formulario → DV-MMDD-NNN.
Staff: login → inbox NEW → CONTACTED / CONFIRMED / WAITLIST / CANCELLED.
Errores: red, email, aforo, sesión. Empty: 0 paseos. Loading: plano.
05-data-model.md
05 — Datos
Walk(id, slug, title, barrio, duration_min, distance_m, meeting, lat, lng, seats, image, description)
Request(id, code, walk_id, name, email, party_size, preferred_date, note, status)
User + Session JWT. CONFIRMED count ≤ seats (invariante de producto).
06-tech-stack.md
06 — Stack
Angular 22 + Tailwind + Nest 11 + Neon serverless + JWT. Puerto API 3014.
Plantilla angular-nest-neon (pnpm). Auth guía email/password.
07-creative-direction.md
07 — Dirección
Mood dusk cartográfico. Paleta crema/índigo/terracota. Lora + Karla. Radius 0.
08-design-system.md
08 — DS
Tokens: cream #E2EEF0, ink #1C2430, terracotta #C45C26, sand #E8D5B5, water #7BA3B0.
Botón primario terracota, secundario outline ink. Split 420 + flex mapa.
09-content-guide.md
09 — Contenido
«Solicitud» nunca «reserva». Success: «aún no hay plaza». Inbox: estados en mayúsculas cortas.
10-accessibility.md
10 — A11y
Contraste ink/cream AA. Pins con rail textual (no solo color). Focus visible. Mapa no es el único camino.
11-privacy-security.md
11 — Privacidad
Email de solicitud: finalidad contacto del guía. JWT 24h. Sin pagos. RGPD: no se declara cumplimiento definitivo.
12-analytics.md
12 — Analítica
map_pin_click, request_submit, request_status_change. North star: solicitudes honestas por paseo.
13-qa-test-plan.md
13 — QA
GET /api/walks 200. POST /api/requests 201 + code. Login guía + GET /api/requests 200. Copy no-reserva visible.
14-dev-handoff.md
14 — Handoff
Repo deriva-app. .env DATABASE_URL JWT_SECRET. Seed al boot. Rutas Angular = IA. Tokens Tailwind cream/ink/terracotta.
15-roadmap.md
15 — Roadmap
L1 cerrado: mapa + solicitud + inbox. L+1 (fuera de hoy): pagos, i18n, más barrios.
16-interaction-specs.md
16 — Interacción
Pin seleccionado = borde cream. Rail hover ink. Form submit deshabilitado si email vacío. Inbox PATCH inmediato.
17-prototype-map.md
17 — Prototipo
El prototipo vivo es la app Angular. Paper no es clicable.
18-completeness-audit.md
18 — Auditoría
UX 12 · UI 11 · JWT · GET+POST · Paper URL · Neon project. Gate paper-reference.
19-backlog-completo.md
19 — Backlog
Dentro de L1: nada pendiente de producto. Fuera: GPS, pagos.
20-implementation.md
20 — Implementación
deriva-app desde plantilla pnpm. API :3014. Guía iago@deriva.barrio / password123.