Wikilinks del vault: la Regla de Oro que aplica markeup-wikilinks
La skill markeup-wikilinks inserta y valida los enlaces internos: alias descriptivo en cada párrafo, densidad razonable y destino existente, para que la lectura no se corte.
Navegando en el blogver navegación en todos los blogs
La skill markeup-wikilinks —«Inserta y valida wikilinks [[slug|alias]] del vault»— es una de las
habilidades que el sistema MarkeUP tiene escritas para Hermes Agent y para Cline.
Esta página es su ficha pública: lo que sabe hacer, cuándo se usa y qué comandos ejecuta.
Los enlaces internos son la red del blog: esta skill los coloca bien y comprueba que ninguno apunte a la nada.
El texto de la sección «Instrucciones del canon» está transcrito del fichero fuente —que se escribe sin tildes por convención de su propio gate—, así que es exactamente lo que lee el agente cuando le pides algo. La cabecera y esta entradilla sí están redactadas para leerlas.
| Dato | Valor |
|---|---|
| Skill | markeup-wikilinks |
| Responsabilidad | Inserta y valida wikilinks `[[slug |
| Versión | 1.3.0 |
| Autoría | uriszarernesto-blip · licencia MIT |
| Plataformas | linux · macos |
| Tags del canon | wikilinks · enlaces · alias · densidad · huerfanos · markeup |
| Skills relacionadas | markeup-content · markeup-frontmatter · markeup-audit |
| Fuente | ~/.hermes/skills/markeup/markeup-wikilinks/SKILL.md |
Responsabilidad unica: decidir, insertar y validar wikilinks en un post.
No redacta (eso es markeup-content) ni genera frontmatter (markeup-frontmatter).
- Justo despues de redactar el cuerpo.
- Para enriquecer wikilinks de una nota existente.
- Cuando
npm run validate:wikilinksfalla.
Primero lee markeup-context y rules/wikilinks-spec.md.
Todo wikilink dentro del cuerpo de un parrafo DEBE llevar alias descriptivo.
[[slug]]sin alias no cumple la norma en parrafos. Solo se tolera sin alias en: headings, tablas, bloques de codigo, codigo inline y frontmatter.
El linter scripts/mjs/validate-wikilinks.mjs avisa (no bloquea) desde el 2026-10-03:
remark-wikilink ya pinta la etiqueta corta del destino (su concept), asi que lo que se
pierde es tu anchor text, no la lectura. Con --strict el aviso vuelve a bloquear (objetivo:
0 avisos). Lo unico que cambio es la severidad: el alias sigue siendo obligatorio.
| Uso | Sintaxis | Valido en parrafo |
|---|---|---|
| Enlace con alias | [[slug|Texto visible]] | ✅ El unico permitido |
| Enlace directo | [[slug]] | ❌ No cumple (aviso; --strict bloquea) |
| Alias redundante | [[slug|slug]] | ❌ No cumple (aviso) |
- Slugs existentes en
memory/vault-index.md. aliasesdel frontmatter de cualquier nota: el linter los indexa como destinos (validate-wikilinks.mjsconstruyevalidSlugsconslug+aliases).- Un destino que no aparece en ninguno de los dos es un huerfano (valido, pero no crea enlace HTML).
Enlaza primero los posts con wikilinks reales; los enlaces de texto plano a posts
existentes se convierten en <a href="/posts/slug"> y mejoran el SEO interno.
1. Leer el cuerpo completo y vault-index.md
2. Por cada parrafo, identificar conceptos enlazables
- SI: terminos tecnicos, conceptos con nota, autores, teorias, escuelas
- NO: palabras comunes (agua, fuego), verbos/adjetivos genericos,
terminos ya enlazados en el parrafo
3. Emparejar concepto -> slug o alias (match exacto o conceptual)
4. Elegir la frase exacta a enlazar (NO una subcadena)
5. Generar el alias segun la forma gramatical de la frase
6. Verificar densidad del parrafo
7. Aplicar solo la primera mencion relevante por concepto y por seccion
8. Validar con el linter
| Parrafo | Maximo |
|---|---|
| Corto (< 3 lineas) | 1 wikilink |
| Medio (3-6 lineas) | 2 wikilinks |
| Largo (> 6 lineas) | 3 wikilinks |
| Primer parrafo (intro) | 2-3 (excepcion permitida) |
La intro puede exceder ligeramente la densidad solo ahi (wikilinks-spec.md).
Densidad objetivo del post completo: 3-6 enlaces, todos con alias.
| Error | Incorrecto | Correcto |
|---|---|---|
| Enlace sin alias | [[el-aura]] en un parrafo | [[el-aura|el aura]] |
| Alias redundante | [[el-aura|el-aura]] | [[el-aura|el aura]] |
| Enlace parcial de frase | [[la-respiracion|respiracion]] en “tecnicas de respiracion” | [[la-respiracion|tecnicas de respiracion]] |
| Mayusculas en slug | [[El Aura]] | [[el-aura|El Aura]] |
| Tildes en slug | [[bioenergetica]] con tilde | sin tildes en el slug |
| Puntuacion en alias | [[teoria-polivagal|teoria polivagal.]] | [[teoria-polivagal|teoria polivagal]] |
| Sobre-enlazado | 6 enlaces en un parrafo corto | Respetar la densidad |
Un huerfano es un concepto sin nota propia. No son errores: marcan conceptos que merecen su nota en el futuro y tambien deben llevar alias.
Criterios (wikilinks-spec.md):
- Registrar en
memory/vault-index.mdcon: huerfano, alias recomendado, aparece en, categoria. - Prioritario si: aparece en 3+ notas distintas, o en 2+ categorias, o en la intro de varias.
- Categoria sugerida: la de la mayoria de notas donde aparece; si no esta claro,
Humano(la categoria mas grande). Nunca propongas una categoria fuera de las 5 validas (Humano,Documentacion,Literatura,Opinion,Maquina).
- Usar la forma gramatical de la frase (“la biodanza” ->
biodanza, minuscula salvo nombres propios). - Expandir siglas:
[[IA|Inteligencia Artificial]]. - Usar el titulo limpio de la nota destino como base.
- Ajustar al flujo: “…segun Reich…” -> alias
Reich. - Maximo 5-6 palabras. Nunca el slug como alias.
- Un mismo concepto usa el mismo alias en todo el post. Variar el alias (p. ej.
[[biodanza|esta disciplina]]) es valido para evitar keyword stuffing.
cd ~/markeup
npm run validate:wikilinks # por defecto: avisa (exit 0) — 0 sin alias es el objetivo
npm run validate:wikilinks -- --strict # modo estricto: el aviso bloquea (exit 1)
Comandos auxiliares:
npm run validate:slugs
npm run wikilinks:enrich # dry-run
npm run wikilinks:enrich:apply # aplicar
- Obsidian: muestra el diff (antes / despues) por linea; los huerfanos se marcan claramente.
- Telegram: envia solo el recuento (X nuevos, Y modificados, Z huerfanos) y la lista de huerfanos. No vuelques el texto completo.
- VS Code / Cline:
replace_in_filequirurgico, solo las lineas afectadas. Nunca reescribas la nota entera. - Hermes CLI: aplica y reporta el resultado del linter.
references/resolution-algorithm.md- algoritmo paso a paso con ejemplos reales.references/density-rules.md- tabla de densidad y casos limite.- Regla del vault:
rules/wikilinks-spec.md.
¿Quieres saber cómo se piden estas cosas? La guía completa está en skills de Hermes Agent, con la chuleta de objetivos y los casos paso a paso.
Wikilinks del vault
Explora las ramas del artículo
