Casos de uso
Los casos de uso del repo se dividen en dos grupos: los del autor (crear y publicar contenido) y los del visitante (consumir el sitio).
CU-01 Publicar o editar un artículo de blog (ES + EN)
- Actor: autor (
funcional/03-actores-roles.md). - Objetivo: añadir un artículo nuevo o editar uno existente, en español e inglés.
- Flujo:
- Crear el Markdown en
es/blog/<slug-es>.mdy su equivalente enen/blog/<slug-en>.md. Cada artículo lleva frontmattertitle,description,date(es/blog/ciso-catalizador-negocio.md:1-5). - Registrar el artículo en el
sidebarde cada locale dentro de.vitepress/config.mts(:103-114ES,:148-159EN). - Añadir la tarjeta en el índice del blog (
es/blog/index.md:11-22). - Construir con
npm run buildy previsualizar connpm run preview(package.json:9-10).
- Crear el Markdown en
- Regla asociada: mantener la paridad ES/EN al añadir o editar (
CLAUDE.md:31; verfuncional/05-reglas-negocio.md).
CU-02 Publicar el sitio en producción (despliegue MANUAL)
- Actor: autor / operador.
- Objetivo: llevar el build a Cloud Run.
- Flujo previsto en el workflow: push a
maindispara build Docker, push a Artifact Registry ygcloud run deploy(.github/workflows/deploy.yml:4-52). - Realidad operativa: Gitea Actions está APAGADO en este repo, por lo que el despliegue NO es automático tras push. Es una acción MANUAL del operador. El blog en vivo puede quedar desfasado respecto a
main(manifiesto del workspace; vertecnico/05-despliegue.md).
CU-03 Navegar el sitio y leer artículos (visitante)
- Actor: visitante anónimo (sin login).
- Flujo: entra por
/, es redirigido a/es/o/en/según el idioma del navegador (index.md:6-15); navega por inicio, sobre mí, blog, proyectos y contacto vía elnavdel locale (.vitepress/config.mts:96-102,141-147).
CU-04 Cambiar de idioma
- Actor: visitante.
- Flujo: usa el selector de idioma de VitePress (locales
es/en,.vitepress/config.mts:90-171) o cambia el prefijo de ruta/es/↔/en/.
CU-05 Buscar dentro del sitio
- Actor: visitante.
- Flujo: usa el buscador local de VitePress (
provider: 'local',.vitepress/config.mts:121,188-190); sin dependencia de servicio externo.
CU-06 Contactar con el autor
- Actor: visitante.
- Flujo: desde la página de contacto, usa enlaces
mailto:, LinkedIn, GitHub o el portal BlueUP (es/contact.md:10-13y siguientes). No hay formulario ni backend que procese datos.
CU-07 Recordatorio de expiración del dominio
- Actor: operador (autor), en su Mac local.
- Flujo:
scripts/domain-reminder.shcalcula los días hasta la expiración del dominio y lanza una notificación macOS según umbrales; se instala vía LaunchAgent (scripts/domain-reminder.sh:6-24,scripts/com.navarro-bores.domain-reminder.plist). Es operación local, no parte del sitio servido.