Rastrum

Hoja de Ruta

Seis hitos de v0.1 MVP a v2.5 asistente AI en 30 meses.

92%

v1.0 lanzado el 2026-04-26 — 54/59 ítems hechos en v0.1 → v1.0

Construido en código abierto. Las fases siguen siendo concretas; las que están más allá de v1.0 dependen de licencias externas, dinero o gobernanza.

Última actualización: 2026-04-25

v0.1 → v1.0 código completo en este push. Los ítems marcados como done incluyen funcionalidades cuyo schema, RLS, Edge Function y UI ya están desplegados en main. Los ítems marcados como 'blocked' requieren una acción externa: API keys, licencia comercial de BirdNET, entrenamiento ML, cuenta Apple Developer, DNS de Cloudflare R2, etc. Las fases v1.5–v2.5 no cambian respecto al plan anterior.

v0.1 Alpha MVP (online-first) Lanzado

Meses 1–3

14/14

ítems

Esqueleto Astro + Tailwind + i18n
Esquema Supabase (observaciones, taxa, identificaciones, media) con PostGIS + RLS
Auth con enlace mágico Supabase + modo invitado
OAuth con Google + GitHub, OTP por correo, passkey, cerrar sesión en todos los dispositivos
CI/CD con GitHub Actions (typecheck, test, build, deploy)
Página de perfil + edición + dropdown de avatar (módulo 08)
Formulario de observación con GPS y auto-relleno EXIF
Integración con PlantNet para ID fotográfica
Cascada con Claude Haiku 4.5 (visión)
Mapa MapLibre con pines agrupados (OpenFreeMap; pmtiles en v0.3)
Exportación CSV Darwin Core con plantillas (SNIB, CONANP)
Manifiesto PWA + service worker con caché de shell
Outbox Dexie IndexedDB + motor de sincronización + disparador de identificación
Andamiaje de pruebas unitarias Vitest (9 tests sobre el mapeo Darwin Core)
v0.3 Inteligencia offline + actividad Lanzado

Meses 4–5

11/11

ítems

Feed de actividad + triggers del servidor (módulo 08)
Contador de no leídos en el dropdown del avatar
Aviso de oscurecimiento NOM-059 / CITES en el formulario de observación
Extracción automática de metadatos EXIF/XMP/ID3 en el formulario
API key de Anthropic propia (en el cliente, nunca persistida)
WebLLM Llama-3.2-1B para traducción + notas de campo (módulo 11)
Fallback ONNX base con EfficientNet-Lite0 (~18 MB INT8 alojado en R2)
Descarga de mapa offline pmtiles (México zoom 0–10, ~48 MB)
WebLLM como fallback de IA por defecto (sin opt-in, advertencia de descarga en primer uso)
Bloque de identificación visible en formulario (spinner + chip de resultado + campo manual)
GPS en dos pasos: ubicación rápida aproximada luego refinamiento de alta precisión
v0.5 Beta Parcial

Meses 6–8

lanzado (ingeniería); 2 ítems diferidos a acción del operador — ver bloqueadores de gbif-ipt y local-contexts

11/13

ítems

Observaciones con múltiples imágenes
Campos de evidencia ecológica (huella, excremento, madriguera, nido, pluma, hueso, sonido, cámara trampa)
39 insignias semilla + Edge Function de evaluación nocturna
ID de respaldo con WebLLM Phi-3.5-vision (opt-in, confianza ≤ 0.4)
Compuerta de calidad: research-grade requiere confianza ≥ 0.4
Consenso research-grade 2/3 identificadores + anti-sybil + peso experto 3×
API keys propias por plugin con guía de configuración (módulo 13)
ID de audio con BirdNET-Lite (Cornell Lab CC BY-NC-SA 4.0, ONNX en R2, inferencia en dispositivo vía onnxruntime-web)
!
Publicación piloto en GBIF IPT (Darwin Core Archive ZIP)

Bloqueado: GBIF publisher account + IPT host (DwC-A generator landed)

!
Integración con Avisos BC/TK de Local Contexts

Bloqueado: Governance track — community consent before code

Tokens de API de usuario (módulo 14) — tokens rst_xxxx personales, con scopes, hash SHA-256
API REST autenticada por token: /api/observe, /api/identify, /api/observations, /api/export
UI de gestión de tokens en /perfil/tokens (ES) y /profile/tokens (EN)
v1.0 Lanzamiento Público Parcial

Meses 9–14

lanzado (2026-04-26); 2 ítems diferidos — capacitor-ios es v1.2, oauth-custom-domain requiere Supabase Pro ($25/mes, diferido para meta de costo cero)

18/21

ítems

Rachas opt-in + ventana de gracia + Edge Function de recomputo
Edge Function para tarjetas OG share/obs/{id}.png + página pública
Esquema de seguidores + comentarios + listas de seguimiento (UI pendiente)
Ponderación experta (3×) en el cálculo del consenso
Eventos bioblitz — esquema (tabla de eventos + polígono de región + RLS)
!
Eventos bioblitz — UI (página de detalle, agregados en vivo, insignias de participación)

Bloqueado: Build when first community organizer requests one — speculative without a pilot event

Plantillas CSV DwC + SNIB + CONANP
Flag credentialed_researcher + RLS para coordenadas precisas en observaciones sensibles
Edge Function de fase lunar + clima OpenMeteo (se ejecuta al sincronizar)
Soporte de video ≤30s (H.265/AV1)
Ingesta de cámara trampa (MegaDetector v5a INT8 ONNX en R2, importador batch en /perfil/importar/camara-trampa, plugin en cascada para evidence_type='camera_trap')
!
Wrapper iOS Capacitor para App Store (v1.2)

Bloqueado: Apple Developer Program ($99/yr) + Capacitor build pipeline

UI de seguidores + comentarios anidados + alertas de seguimiento
Selector de ubicación con mapa interactivo (arrastrar pin, tocar para colocar, buscar localidad)
Página de historial de observaciones personales (/perfil/observaciones) con estado y miniaturas
Cámara en app vía API getUserMedia con fallback a input type=file capture=environment
Importador masivo de fotos con extracción de GPS/fecha EXIF (módulo 19) — Google Fotos, Drive, subida de archivos
!
Dominio personalizado en OAuth de Supabase (auth.rastrum.org en lugar de URL cruda de Supabase)

Bloqueado: Supabase Pro plan ($25/mo) — deferred for zero-cost target

Servidor MCP para agentes de IA (JSON-RPC sobre HTTP en /functions/v1/mcp)
Migrar dominio canónico a rastrum.org (antes rastrum.artemiop.com)
Renovación UX PR 1: arquitectura + chrome
v1.0.x Pulido post-lanzamiento En progreso

Semanas posteriores al lanzamiento 2026-04-26

0/16

ítems

Actualizar el SVG de cascada en arquitectura para mostrar la carrera paralela (actualmente muestra cascada serial)
Mover runParallelIdentify a la Edge Function identify para paridad server-side (actualmente solo cliente)
!
Reintroducir cámara getUserMedia in-app como ruta secundaria 'preview' con la cámara del sistema como primaria

Bloqueado: Awaits feedback from real users — deferred from v1.0 because system camera is more reliable on test devices. GitHub issue #18

UI admin para revisar expert_applications (schema en v1.0; falta UX para aprobar/rechazar)
!
UI de detalle de evento bioblitz — construir cuando un organizador comunitario lo solicite

Bloqueado: Speculative without a pilot event. Reshelved here from v1.0 alongside its schema sibling.

Chat: cargar automáticamente el Phi-3.5-vision en caché en lugar de pedir consentimiento de nuevo a usuarios que vuelven
Aviso de instalación PWA más temprano + tutorial de 'Agregar a inicio' en iOS (GIF animado o tour guiado)
Alertas / dashboard para uso de cuota diaria de PlantNet (500/día compartido); manejar agotamiento sin romper UX
!
Subir logo Rastrum + URLs de privacidad/términos en la pantalla de consentimiento OAuth de Google Cloud Console

Bloqueado: Manual operator action — see GitHub issue #3

!
Subir logo Rastrum en la app OAuth en GitHub Developer Settings

Bloqueado: Manual operator action — see GitHub issue #3

Profundizar la granularidad de subtareas en tasks.json donde el relleno actual es escaso (especialmente social + tokens en v1.0)
!
Retest del GPS en el Android de Eugenio — fix enviado, esperando confirmación

Bloqueado: Awaits real-device retest — see GitHub issue #5

!
Retest de 'Tomar foto' en el Android de Eugenio — hint específico para Android enviado, esperando confirmación

Bloqueado: Awaits real-device retest — see GitHub issue #18

Prueba humo Playwright contra rastrum.org disparada por cron nocturno (actualmente solo en PRs)
UI para selección de licencia por observación (CC-BY por defecto; opciones CC0, CC-BY-NC, derechos reservados)
!
Barra horizontal sticky con TOC scrollspy en docs móviles (extrae h2 automáticamente, estado activo vía IntersectionObserver)

Bloqueado: Open PR #23 — pending rebase + aria-current fix; reviewed and approved-with-comments

v1.1 Pulido de UX (lluvia de ideas post-lanzamiento) Planeado

Semanas 2–6 tras lanzamiento (2026-05-02 → 2026-06-06)

0/15

ítems

Anillo de confianza (arco SVG en emerald→ámbar→rojo) en lugar de pastilla con porcentaje — más fácil de leer para no-técnicos
Íconos rápidos de taxón bajo el subidor de fotos (🌿 planta · 🐦 ave · 🐾 mamífero · 🐛 insecto · 🍄 hongo) — orienta la cascada y fija expectativas honestas
Compresión automática de fotos > 4 MP a 4 MP vía canvas antes de subir — reduce R2 4×, acelera la sincronización en redes lentas, sin pérdida de calidad de ID
Botón de compartir en la tarjeta de resultado → /share/obs/<id> con la OG card existente; clave para difusión viral durante el lanzamiento familiar
Guardar observación como borrador sin GPS — el formulario actual bloquea el submit si falta ubicación, lo que rompe el flujo en zonas sin señal
Onboarding al primer registro — 3 tarjetas descartables (instala la PWA → toma una foto → mira tu perfil); saltable; sin repeticiones
Chips de sugerencia de seguimiento bajo cada respuesta de IA en chat (¿Es venenosa?, ¿Cómo distinguir de X?, Hábitat) — reduce fricción de arranque
Persistir historial de chat por dispositivo en Dexie — actualmente se pierde al recargar
Deslizador temporal en el mapa /explore — arrastra meses para ver patrones fenológicos; impacta visualmente a nuevos visitantes
Reemplazar spinners desnudos con esqueletos en /observations, /explore y perfil — la plataforma se siente más ágil en su conjunto
Entrada de voz vía SpeechRecognition en /chat — accesibilidad, sobre todo para hablantes nativos de lenguas indígenas
Confetti + banner 'Bienvenido a Rastrum 🌱' en la primera observación sincronizada del usuario
!
Búsqueda de taxón en lenguas indígenas (Zapoteco / Náhuatl / Maya / Mixteco / Tseltal → nombre científico); requiere corpus + gobernanza per local-contexts

Bloqueado: Needs corpus partnership (CONABIO + community Co-PIs) and governance review before code lands

Deduplicación de imágenes al enviar — hash perceptual avisa cuando se re-sube la misma foto
Notificación push a las 20:00 hora local cuando una racha está a 1 día de romperse — opcional, una notificación nocturna
v1.5 Capa Territorial Planeado

Meses 12–16 (paralelo a v1.0)

0/6

ítems

!
Rastrum Scout v0 (ID conversacional, RAG con pgvector)

Bloqueado: pgvector extension on Supabase + embedding corpus (taxa descriptions) — separate ML project; reshelved from v0.5 to v1.5 since core photo/audio cascade is sufficient for v1.0

Senderos de Biodiversidad con waypoints GPS + métricas de diversidad
PITs + anclas QR/NFC (Puntos de Información Territorial)
Análisis espacial: capas GeoJSON ANP/INEGI/INAH
Índices de diversidad: S, H', D, Chao1, Pielou J
Exportación PDF de senderos (estilo guía de campo)
v2.0 Institucional Planeado

Meses 17–22

0/6

ítems

Cámara trampa: modelado de ocupación, histogramas de actividad
Publicador de datasets GBIF + generación de DOI
Pipeline de entrenamiento ML regional (enfoque endémicas de Oaxaca)
!
Paquetes ONNX regionales (Oaxaca, Yucatán) — salida del pipeline regional-ml

Bloqueado: Depends on regional-ml training pipeline; reshelved from v0.5 to v2.0 since the generic onnx-base (EfficientNet-Lite0) covers v1.0

Dashboard B2G SaaS para CONANP / agencias estatales
Puente de importación/exportación con iNaturalist
v2.5 IA + RA Planeado

Meses 23–32

0/4

ítems

Rastrum Scout — IA conversacional de campo completa (RAG + pgvector)
Superposición AR de especies en el visor de la cámara
Entrada/salida de voz en lenguas indígenas (Zapoteco, Mixteco, Maya, Náhuatl)
APIs formales de alianza CONABIO/CONANP/INAH

Gobernanza y soberanía (paralelo a todas las fases del producto)

El trabajo de gobernanza corre en paralelo a todo el roadmap. Los hitos no tienen fecha de lanzamiento — se completan cuando aterrizan el consentimiento comunitario y la revisión legal.

Piloto de UI en Zapoteco — proceso de Consentimiento Libre, Previo e Informado
Integración con Avisos BC/TK de Local Contexts
Política de Soberanía de Datos Indígenas (principios CARE)
Marco de licencias del observador (CC BY / BY-NC / CC0) + compuertas de entrenamiento ML
Licencia comercial de BirdNET de Cornell (sólo para el dashboard B2G v2.0)

Para actualizar: edita docs/progress.json en el repositorio. La página se reconstruye en cada push.

Reportar un problema

Incluiremos esto en tu reporte