Convenciones

Reglas que cualquier instancia de Claude Code o Claude Chat debe seguir al crear o editar páginas en esta wiki. Esteban solo consulta — nunca edita directamente — así que la consistencia depende enteramente de que el agente siga esto sin excepción.

Estructura de carpetas

content/
  personal-hub/
  conkafecito/
  trivasa/
  meta/
  index.md

Subcarpetas dentro de cada proyecto por dominio técnico, no por fecha ni por herramienta suelta. Cada carpeta de proyecto lleva un index.md (página MOC) que enlaza a sus subpáginas clave — le da nodos centrales bien conectados al grafo de Quartz y un punto de entrada natural para Esteban.

Nombre de archivo

kebab-case descriptivo, nunca genérico. content/conkafecito/cloudflare/vm-ubuntu-tunnel.md, no content/conkafecito/tunnel1.md.

Frontmatter obligatorio

---
title: Túnel Cloudflare vm-ubuntu (Conkafecito)
project: conkafecito
host: vm-ubuntu
tags: [cloudflare, tunnel, on-premise, networking]
status: active
updated: 2026-07-30
---
  • title — descriptivo, no repite el nombre de archivo literal.
  • project — uno de personal-hub | conkafecito | trivasa | meta.
  • host — identificador canónico de hosts.md, o host: none si la página no está asociada a ninguna máquina (decisiones de diseño, comparativas, notas conceptuales). Si involucra genuinamente más de un host: hosts: [host-a, host-b] — excepción, no regla.
  • tags — solo del vocabulario controlado en tags.md.
  • statusactive | deprecated | planned.
  • updated — fecha de la última edición real. Sirve para que el agente priorice la versión más reciente si hay contradicción entre páginas.

Registro de tags y hosts nuevos

Si una tarea introduce un tag o un host que no está en tags.md o hosts.md, se agrega ahí en el mismo commit en que se usa por primera vez. Nunca se usa un tag o host suelto sin registrarlo — la lista es la fuente de verdad; si no está ahí, no existe.

Estilo de redacción

  1. Tercera persona descriptiva, no bitácora de sesión. El hecho vive como estado actual del sistema, no como evento que pasó.

    • Así sí: “Corre en Docker (network_mode: host) para llegar a un servicio bindeado en localhost del propio host.”
    • Así no: “Hoy configuré esto en Docker con network_mode host porque no llegaba al servicio.”
  2. Explicar el porqué, no solo el qué. No basta con documentar el patrón usado; hay que explicar el problema que resuelve, para que la página sea consultable sin reconstruir el razonamiento.

    • Así sí: “El patrón network_mode: host se repite en tres servicios de este host, siempre por el mismo motivo: un contenedor en la red bridge por default de Docker no puede llegar a un servicio bindeado en 127.0.0.1 o en la IP de NetBird del host (hairpin NAT).”
    • Así no: “Se usa network_mode: host en el docker-compose.”
  3. La fecha/historial vive en el frontmatter (updated), no en la prosa. El texto se mantiene en presente; evita que se llene de “actualmente” / “por ahora” que envejecen mal.

  4. Cross-referencia explícita al cierre (“Véase también”), además de lo que el grafo conecte solo. Cada página termina con una sección corta de enlaces relacionados.

  5. Cada entrada de “Véase también” lleva una anotación breve del porqué, no solo el link pelón.

    • Así sí: “[Docker] — mismo patrón de network_mode: host”
    • Así no: “[Docker]“

Manejo de status desactualizado

Si una página describe algo que deja de estar vigente (servicio decomisionado, decisión revertida), se cambia status: deprecated en el frontmatter en vez de borrar la página — mantiene el historial consultable sin que el agente la cite como verdad actual.