12 KiB
12 KiB
HST - Roadmap de Implementación
Versión: 1.0
Fecha: 2025-12-07
Estado: Borrador para maduración
Visión General
El sistema HST (Hash Semantic Tagging) evolucionará en 4 fases, desde especificación formal hasta una aplicación cliente universal de drag & drop.
Fase 0 Fase 1 Fase 2 Fase 3
SPEC → Servidor → Descentralización → App Cliente
(Documentos) (KVM1 Hostinger) (Filecoin/IPFS) (Drag & Drop)
Fase 0: Especificación Formal
Objetivo
Documento definitivo que describe el sistema completo antes de cualquier implementación.
Entregables
| Documento | Descripción | Estado |
|---|---|---|
SPEC.md |
Especificación técnica completa del sistema HST | Pendiente |
SCHEMA.md |
Modelo de datos para NocoDB/PostgreSQL | Pendiente |
TAGS_v1.csv |
Listado consolidado de etiquetas (~850) | En progreso |
HIERARCHY.md |
Árbol jerárquico de categorías | Pendiente |
RELATIONS.md |
Grafo de relaciones entre etiquetas | Pendiente |
API.md |
Especificación de endpoints REST | Pendiente |
STYLES.md |
Tabla de estilos (4096 skins) | Pendiente |
Contenido de SPEC.md
- Filosofía del sistema
- Imagen primigenia (reglas)
- Hash maestro (H_maestro)
- Extensiones (EXT, HSU, SP, SPU, PRJ)
- Sistema de estilos (hash visible)
- Cadena de metadatos (jerarquía)
- Propiedad y acceso (H_propiedad, H_acceso)
- Bibliotecas (sistema, empresa, usuario)
- Pipeline de importación
- Integración con ecosistema (SFE, IA, n8n)
Criterios de salida
- Todos los documentos revisados y aprobados
- Sin ambigüedades técnicas
- Listado de etiquetas limpio y categorizado
Fase 1: Servidor Centralizado
Objetivo
Primera implementación funcional en servidor KVM1 de Hostinger.
Infraestructura
KVM1 Hostinger
├── Docker
│ ├── NocoDB (metadatos)
│ ├── PostgreSQL (base de datos)
│ └── API HST (FastAPI/Node)
├── /hst/
│ ├── primigenias/{H_maestro}.png
│ └── skins/{hash_visible}.png
└── Nginx (proxy + SSL)
Componentes
| Componente | Tecnología | Función |
|---|---|---|
| Base de datos | PostgreSQL | Almacén principal |
| Interfaz datos | NocoDB | Gestión visual de etiquetas |
| API REST | FastAPI | Consulta/servicio de etiquetas |
| Almacenamiento | Sistema de archivos | Imágenes primigenias y skins |
| Proxy | Nginx | SSL + routing |
| Orquestación | n8n (Alfred) | Pipelines de importación |
Funcionalidades
1. Gestión de etiquetas
- CRUD completo vía NocoDB
- Validación de imagen primigenia (sin metadatos)
- Cálculo automático de H_maestro
- Generación de skins
2. API REST
GET /api/v1/tags # Listar etiquetas
GET /api/v1/tags/{h_maestro} # Obtener etiqueta
GET /api/v1/tags/{h_maestro}/image # Obtener imagen
GET /api/v1/tags/{h_maestro}/skins # Listar skins
POST /api/v1/tags # Crear etiqueta
GET /api/v1/search?q=... # Buscar por nombre/código
GET /api/v1/hierarchy/{ref} # Obtener árbol jerárquico
3. Pipeline de importación
- Leer desde Airtable (fuente actual)
- Descargar imagen
- Limpiar metadatos
- Calcular SHA-256 → H_maestro
- Generar estructura de metadatos
- Subir primigenia
- Generar skins (según tabla de estilos)
- Registrar en NocoDB
4. Subdominio
hst.tzzr.prootags.tzzr.pro
Criterios de salida
- API funcional con todos los endpoints
- ~850 etiquetas migradas desde Airtable
- Pipeline de importación automatizado
- Documentación de API generada
Fase 2: Descentralización
Objetivo
Servicio multi-usuario escalable con almacenamiento descentralizado.
Arquitectura
┌─────────────────────────────────────────────────────────┐
│ CAPA DE USUARIOS │
│ App Web │ App Desktop │ App Móvil │ Extensión │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ API GATEWAY │
│ Auth + Rate Limiting + Routing │
└─────────────────────────────────────────────────────────┘
│
┌─────────────┼─────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────┐ ┌─────────────────┐
│ NocoDB/PostgreSQL │ │ Redis │ │ Filecoin/IPFS │
│ (Índice/Metadatos)│ │ (Cache) │ │ (Imágenes) │
└─────────────────┘ └─────────────┘ └─────────────────┘
Componentes nuevos
| Componente | Función |
|---|---|
| Filecoin/IPFS | Almacenamiento descentralizado de imágenes |
| CID (Content ID) | Referencia inmutable a cada imagen |
| Sistema de bibliotecas | Pública, privada, por usuario |
| Autenticación | JWT + H_propiedad |
| Permisos | Control por H_acceso |
| Rate limiting | Protección de API pública |
Tipos de biblioteca
| Tipo | Propiedad | Acceso | Descripción |
|---|---|---|---|
| Sistema | HST | Público | Etiquetas base universales |
| Empresa | Organización | Miembros | Etiquetas corporativas |
| Usuario | Individual | Personal | Etiquetas propias |
| Compartida | Múltiple | Definido | Colaboración entre usuarios |
Modelo de datos extendido
Etiqueta {
h_maestro: string (PK)
codigo_corto: string
nombres: { es, en, zh... }
extension: EXT | HSU | SP | SPU | PRJ
# Almacenamiento
cid_primigenia: string # IPFS/Filecoin
cid_skins: [string] # Array de CIDs
# Metadatos
cadena_metadatos: [string] # Jerarquía de hashes
h_propiedad: string # Biblioteca propietaria
h_acceso: string # Nivel de acceso
# Auditoría
created_at: timestamp
created_by: string
version: int
}
Flujo de resolución
1. Cliente solicita etiqueta por H_maestro
2. API busca en caché Redis
3. Si no existe → busca en NocoDB (índice)
4. Obtiene CID de Filecoin/IPFS
5. Resuelve imagen desde red descentralizada
6. Cachea resultado
7. Retorna al cliente
Criterios de salida
- Imágenes almacenadas en Filecoin/IPFS
- Sistema de bibliotecas funcionando
- Autenticación y permisos implementados
- API pública documentada y protegida
- Al menos 3 bibliotecas de prueba (sistema, empresa, usuario)
Fase 3: Aplicación Cliente
Objetivo
Aplicación universal de drag & drop para usar etiquetas HST en cualquier software.
Plataformas
| Plataforma | Tecnología | Prioridad |
|---|---|---|
| Desktop (Windows/Mac/Linux) | Tauri o Electron | Alta |
| Web | React/Vue | Alta |
| Móvil (iOS/Android) | React Native o Flutter | Media |
| Extensión Chrome/Firefox | WebExtension | Media |
| Plugin Office | Office Add-in | Baja |
| Plugin Figma | Figma API | Baja |
Funcionalidades core
1. Navegador de etiquetas
- Vista en árbol (jerarquía)
- Vista en grid (visual)
- Búsqueda por nombre/código/hash
- Filtros por extensión/biblioteca
2. Drag & Drop
- Arrastrar etiqueta a cualquier aplicación
- Formatos de salida:
- Imagen PNG
- Código corto (texto)
- Hash (texto)
- Markdown
 - HTML
<img src="url">
3. Gestión de bibliotecas
- Ver bibliotecas disponibles
- Suscribirse a bibliotecas públicas
- Crear biblioteca personal
- Sincronización offline
4. Creación de etiquetas (usuarios)
- Subir imagen primigenia
- Asignar código y nombres
- Seleccionar extensión (HSU, SPU, PRJ)
- Proponer para validación (opcional)
Flujo de usuario
1. Usuario abre app HST
2. Navega/busca etiqueta deseada
3. Arrastra etiqueta
4. Suelta en aplicación destino (Word, Figma, etc.)
5. La etiqueta se inserta como imagen/texto según contexto
Integración con sistema operativo
| OS | Método |
|---|---|
| Windows | Clipboard API + Shell Extension |
| macOS | NSPasteboard + Finder Extension |
| Linux | X11/Wayland Clipboard |
Modelo de monetización (futuro)
| Tier | Precio | Incluye |
|---|---|---|
| Free | 0€ | Biblioteca pública, 10 etiquetas propias |
| Pro | 5€/mes | Bibliotecas ilimitadas, skins premium |
| Enterprise | Personalizado | Bibliotecas privadas, soporte, SLA |
Criterios de salida
- App desktop funcional (1 plataforma mínimo)
- Drag & drop funcionando en apps comunes
- Sincronización con servidor HST
- Documentación de usuario
Dependencias entre fases
Fase 0 ──────► Fase 1 ──────► Fase 2 ──────► Fase 3
│ │ │ │
│ │ │ │
▼ ▼ ▼ ▼
SPEC.md Servidor Filecoin App
SCHEMA.md NocoDB Auth Desktop
TAGS.csv API REST Bibliotecas Drag&Drop
Pipeline Permisos Móvil
H_propiedad y H_acceso (PENDIENTE DEFINIR)
H_propiedad - Definición parcial
Identifica el propietario/origen de la etiqueta.
| Grupo | H_propiedad |
|---|---|
hst |
Hash de la etiqueta "hst" (sistema) |
spe |
Hash de la etiqueta "especificación" (sistema) |
hsu |
Hash del usuario creador |
msu |
Hash del usuario creador |
H_acceso - Por definir
Llave de acceso para descarga de imagen. Relacionado con:
- Sistema de monetización futuro
- Compartición de bibliotecas entre usuarios
- Colaboración en proyectos (msu)
Notas:
- Se exploró embeber en metadatos PNG pero no está validado
- Inicialmente innecesario: la cadena estará en NocoDB
- Los grupos hsu/msu permiten compartición (por definir mecanismo)
- Diferenciación de grupos define reglas de acceso diferentes
TODO para próximas revisiones:
- Definir mecanismo de compartición de bibliotecas usuario
- Definir modelo de monetización y su relación con H_acceso
- Validar si metadatos embebidos en PNG son viables
- Definir permisos de colaboración en proyectos (msu)
Preguntas abiertas (a resolver)
Fase 0
- ¿Formato definitivo de código corto? → Variable según grupo
- ¿Cuántos estilos iniciales implementar?
- ¿Estructura exacta de cadena_metadatos? → Definida parcialmente
Fase 1
- ¿Dominio/subdominio para el servicio?
- ¿Migración completa desde Airtable o parcial?
- ¿Autenticación desde Fase 1 o solo Fase 2?
Fase 2
- ¿Filecoin vs IPFS vs ambos?
- ¿Modelo de costos de almacenamiento descentralizado?
- ¿Política de bibliotecas públicas (quién puede publicar)?
Fase 3
- ¿Prioridad de plataformas?
- ¿Modelo freemium desde el inicio?
- ¿Integración con marketplaces de plugins?
Timeline estimado
| Fase | Duración estimada | Dependencias |
|---|---|---|
| Fase 0 | 1-2 semanas | Ninguna |
| Fase 1 | 2-4 semanas | Fase 0 completa |
| Fase 2 | 4-8 semanas | Fase 1 estable |
| Fase 3 | 8-12 semanas | Fase 2 funcional |
Total estimado: 4-6 meses para MVP completo
Notas
- Este roadmap es un documento vivo que evolucionará
- Cada fase tiene criterios de salida claros
- Las fases pueden solaparse parcialmente
- Priorizar funcionalidad sobre perfección en cada fase
Próximo paso: Consolidar SPEC.md (Fase 0)