@zosmaai/pi-llm-wiki 0.10.7 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.de.md +35 -4
  3. package/README.es.md +260 -170
  4. package/README.fr.md +35 -4
  5. package/README.hi.md +35 -4
  6. package/README.ja.md +35 -4
  7. package/README.ko.md +35 -4
  8. package/README.md +38 -3
  9. package/README.pt.md +35 -4
  10. package/README.ru.md +35 -4
  11. package/README.zh.md +260 -170
  12. package/assets/demo.gif +0 -0
  13. package/dist/extensions/llm-wiki/lib/bootstrap.js +71 -0
  14. package/dist/extensions/llm-wiki/lib/embeddings.js +401 -0
  15. package/dist/extensions/llm-wiki/lib/guardrails.js +232 -0
  16. package/dist/extensions/llm-wiki/lib/indexing.js +78 -0
  17. package/dist/extensions/llm-wiki/lib/ingest-worker.js +310 -0
  18. package/dist/extensions/llm-wiki/lib/inject.js +65 -0
  19. package/dist/extensions/llm-wiki/lib/knowledge-document.js +442 -0
  20. package/dist/extensions/llm-wiki/lib/knowledge-links.js +206 -0
  21. package/dist/extensions/llm-wiki/lib/legacy-repair.js +443 -0
  22. package/dist/extensions/llm-wiki/lib/metadata.js +499 -0
  23. package/dist/extensions/llm-wiki/lib/model-command.js +86 -0
  24. package/dist/extensions/llm-wiki/lib/observation.js +283 -0
  25. package/dist/extensions/llm-wiki/lib/recall.js +875 -0
  26. package/dist/extensions/llm-wiki/lib/retro.js +158 -0
  27. package/dist/extensions/llm-wiki/lib/runtime.js +191 -0
  28. package/dist/extensions/llm-wiki/lib/source-extractors.js +426 -0
  29. package/dist/extensions/llm-wiki/lib/source-packet.js +229 -0
  30. package/dist/extensions/llm-wiki/lib/subagent.js +41 -0
  31. package/dist/extensions/llm-wiki/lib/task-config.js +172 -0
  32. package/dist/extensions/llm-wiki/lib/tools.js +1192 -0
  33. package/dist/extensions/llm-wiki/lib/trajectories-command.js +51 -0
  34. package/dist/extensions/llm-wiki/lib/trajectory.js +467 -0
  35. package/dist/extensions/llm-wiki/lib/utils.js +347 -0
  36. package/dist/extensions/llm-wiki/lib/vault-format.js +247 -0
  37. package/dist/extensions/llm-wiki/lib/visible-status.js +31 -0
  38. package/dist/extensions/llm-wiki/lib/wiki-service.js +128 -0
  39. package/dist/mcp/exec.js +121 -0
  40. package/dist/mcp/index.js +229 -0
  41. package/dist/mcp/operations.js +130 -0
  42. package/dist/package.json +1 -0
  43. package/docs/superpowers/plans/2026-08-02-okf-foundation.md +1579 -0
  44. package/docs/superpowers/plans/2026-08-03-okf-foundation-remediation.md +3005 -0
  45. package/docs/superpowers/plans/2026-08-06-okf-foundation-release-remediation.md +1174 -0
  46. package/docs/superpowers/specs/2026-08-02-okf-foundation-design.md +578 -0
  47. package/docs/superpowers/specs/2026-08-02-okf-v0.2-interoperability-design.md +538 -0
  48. package/extensions/llm-wiki/index.ts +22 -36
  49. package/extensions/llm-wiki/lib/bootstrap.ts +84 -0
  50. package/extensions/llm-wiki/lib/embeddings.ts +9 -3
  51. package/extensions/llm-wiki/lib/guardrails.ts +174 -29
  52. package/extensions/llm-wiki/lib/indexing.ts +2 -1
  53. package/extensions/llm-wiki/lib/ingest-worker.ts +170 -29
  54. package/extensions/llm-wiki/lib/knowledge-document.ts +661 -0
  55. package/extensions/llm-wiki/lib/knowledge-links.ts +282 -0
  56. package/extensions/llm-wiki/lib/legacy-repair.ts +572 -0
  57. package/extensions/llm-wiki/lib/metadata.ts +531 -116
  58. package/extensions/llm-wiki/lib/observation.ts +37 -43
  59. package/extensions/llm-wiki/lib/recall.ts +61 -33
  60. package/extensions/llm-wiki/lib/retro.ts +65 -41
  61. package/extensions/llm-wiki/lib/source-extractors.ts +12 -17
  62. package/extensions/llm-wiki/lib/source-packet.ts +44 -31
  63. package/extensions/llm-wiki/lib/tools.ts +406 -348
  64. package/extensions/llm-wiki/lib/trajectory.ts +15 -1
  65. package/extensions/llm-wiki/lib/utils.ts +121 -130
  66. package/extensions/llm-wiki/lib/vault-format.ts +363 -0
  67. package/extensions/llm-wiki/lib/wiki-service.ts +183 -0
  68. package/mcp/exec.ts +122 -0
  69. package/mcp/index.ts +60 -250
  70. package/mcp/operations.ts +176 -0
  71. package/package.json +8 -2
  72. package/scripts/migrate-llm-wiki.js +801 -0
  73. package/skills/llm-wiki/SKILL.md +8 -6
package/README.es.md CHANGED
@@ -7,7 +7,7 @@
7
7
  [![CI](https://github.com/zosmaai/pi-llm-wiki/actions/workflows/ci.yml/badge.svg)](https://github.com/zosmaai/pi-llm-wiki/actions/workflows/ci.yml)
8
8
  [![npm](https://img.shields.io/npm/v/@zosmaai/pi-llm-wiki)](https://www.npmjs.com/package/@zosmaai/pi-llm-wiki)
9
9
  [![npm downloads](https://img.shields.io/npm/dm/@zosmaai/pi-llm-wiki)](https://www.npmjs.com/package/@zosmaai/pi-llm-wiki)
10
- [![Coverage](https://codecov.io/gh/zosmaai/pi-llm-wiki/branch/main/graph/badge.svg)](https://codecov.io/gh/zosmaai/pi-llm-wiki)
10
+ [![Coverage](https://img.shields.io/badge/coverage-85.09%25-brightgreen.svg)](https://codecov.io/gh/zosmaai/pi-llm-wiki)
11
11
  [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
12
12
  [![CodeQL](https://github.com/zosmaai/pi-llm-wiki/actions/workflows/codeql.yml/badge.svg)](https://github.com/zosmaai/pi-llm-wiki/actions/workflows/codeql.yml)
13
13
  [![GitHub Repo Stars](https://img.shields.io/github/stars/zosmaai/pi-llm-wiki?style=social)](https://github.com/zosmaai/pi-llm-wiki/stargazers)
@@ -16,24 +16,30 @@
16
16
 
17
17
  <br/>
18
18
 
19
- <div align="center">
20
- <a href="https://github.com/zosmaai/pi-llm-wiki/stargazers">
21
- <img src="./assets/thank-you-for-the-star.png" alt="Thank you for starring pi-llm-wiki!" width="100%" />
22
- </a>
23
- <br/>
24
- <sub>
25
- If you find pi-llm-wiki useful,
26
- <a href="https://github.com/zosmaai/pi-llm-wiki">⭐ star the repo</a> —
27
- it lets us know we're building something that matters.
28
- </sub>
29
- </div>
19
+ **Base de conocimiento autogestionable, compatible con Obsidian, para [pi](https://pi.dev).**
20
+ Sigue el patrón LLM Wiki de Andrej Karpathy: [LLM Wiki pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f).
30
21
 
31
- <br/>
22
+ Convierte fuentes sin procesar (URLs, PDFs, Markdown, JSON, XML) en un wiki duradero, interconectado y mantenido por LLM que se acumula con el tiempo.
23
+
24
+ ### Soporte nativo para Open Knowledge Format (OKF) v0.2
32
25
 
33
- **Base de conocimiento autogestionable compatible con Obsidian para [pi](https://pi.dev). Sigue el patrón LLM Wiki de Andrej Karpathy.**
34
- Follows Andrej Karpathy's [LLM Wiki pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f).
26
+ Construye una base de conocimiento que puedes llevar contigo no otra exportación cerrada y específica de una aplicación:
35
27
 
36
- Convierte fuentes sin procesar (URLs, PDFs, markdown, JSON, XML) en un wiki duradero, interconectado y mantenido por LLM que se acumula con el tiempo.
28
+ - **Crea documentos portátiles OKF v0.2** con frontmatter canónico, enlaces Markdown estándar y citas de fuentes estables.
29
+ - **Lee tanto páginas legacy como OKF** para que los vaults existentes sigan funcionando sin migración automática ni reescritura.
30
+ - **Genera índices y registros deterministas** desde páginas autoritativas, manteniendo la navegación y los metadatos reproducibles.
31
+ - **Usa el mismo modelo de conocimiento desde Pi o MCP** con Claude Code, Cursor, Windsurf y otros clientes MCP.
32
+ - **Mantente compatible con Obsidian** mientras mantienes tu conocimiento listo para herramientas que soporten Open Knowledge Format.
33
+
34
+ Comienza con un nuevo vault OKF, o apunta pi-llm-wiki a un vault existente y adopta el formato a tu ritmo. Consulta la [especificación OKF Foundation](docs/superpowers/specs/2026-08-02-okf-foundation-design.md) para detalles de implementación.
35
+
36
+ ---
37
+
38
+ ## Demo
39
+
40
+ <div align="center">
41
+ <img src="./assets/demo.gif" alt="pi-llm-wiki demo" width="1920" />
42
+ </div>
37
43
 
38
44
  ---
39
45
 
@@ -43,7 +49,7 @@ Convierte fuentes sin procesar (URLs, PDFs, markdown, JSON, XML) en un wiki dura
43
49
  pi install npm:@zosmaai/pi-llm-wiki
44
50
  ```
45
51
 
46
- The extension will proactively suggest creating a wiki on your first session. Alternatively:
52
+ La extensión sugerirá proactivamente crear un wiki en tu primera sesión. Alternativamente:
47
53
 
48
54
  ```
49
55
  /wiki-init "AI Engineering"
@@ -55,93 +61,104 @@ The extension will proactively suggest creating a wiki on your first session. Al
55
61
 
56
62
  ## ¿Por qué este paquete?
57
63
 
58
- La mayoría de los flujos de trabajo LLM basados en archivos se comportan como RAG de un solo uso: el modelo busca documentos en bruto cada vez que haces una pregunta. La síntesis es efímera.
64
+ La mayoría de los flujos de trabajo basados en archivos con LLM se comportan como RAG de un solo tiro: el modelo busca documentos sin procesar cada vez que haces una pregunta. La síntesis es efímera.
59
65
 
60
66
  **pi-llm-wiki** crea una capa intermedia:
61
67
 
62
- - **Los paquetes de fuente sin procesar preservan las entradas originales**
63
- - **Las páginas de fuente resumen lo que cada fuente dice**
64
- - **Las páginas canónicas del wiki rastrean lo que el wiki cree actualmente**
65
- - **Los metadatos generados mantienen todo buscable y navegable**
68
+ - **Paquetes de fuentes crudas** preservan las entradas de origen de verdad
69
+ - **Páginas de fuentes** resumen lo que cada fuente dice
70
+ - **Páginas canónicas del wiki** rastrean lo que el wiki actualmente cree
71
+ - **Metadatos generados** mantienen todo buscable y navegable
66
72
 
67
- El resultado es un wiki que se acumula a medida que capturas fuentes, haces preguntas y archivas análisis duraderos.
73
+ El resultado es un wiki que **se acumula** mientras capturas fuentes, haces preguntas y archivas análisis duraderos.
68
74
 
69
75
  ---
70
76
 
71
77
  ## Características
72
78
 
73
- | Capability | Description |
74
- |------------|-------------|
75
- | 🏠 **Personal fallback** | Always-on `~/.llm-wiki/` vault knowledge compounds across projects even when no project wiki exists |
76
- | 🔗 **Immutable source capture** | URLs, local files (PDF/md/txt/html/XML/JSON), or pasted textstructured source packets |
77
- | 🧠 **Automated ingestion** | `wiki_ingest` batch-processes sources into concept, entity, synthesis & analysis pages |
78
- | 🔍 **Full-text search** | Generated registry with keyword lookup across all pages and sources |
79
- | 🩺 **Mechanical linting** | Orphans, broken links, duplicate aliases, coverage gaps, stale captures |
80
- | 📊 **Dashboard** | `wiki_status` — counts, source states, recent activity |
81
- | 🤖 **Auto-update watch** | `wiki_watch` — print a `crontab` line that runs the full cycle on a schedule |
82
- | 🧠 **Layered recall** | Searches both personal (`~/.llm-wiki/`) and project (`.llm-wiki/`) vaults — personal knowledge follows you everywhere |
83
- | 📝 **Auto-bootstrap** | Extension suggests creating a wiki when none exists in the current directory |
84
- | 💾 **Lightweight capture** | `wiki_retro` — save atomic insights as a single markdown file; full 4-layer pipeline also available via `wiki_capture_source` |
85
- | 🌐 **MCP Server** | Use with Claude Code, Cursor, Windsurf via stdio MCP transport |
86
- | 📝 **Obsidian-friendly** | Folder-qualified wikilinks, stable source-ID citations, compatible vault |
87
- | 🛡️ **Guardrails** | Blocks direct edits to raw sources and generated metadata |
88
- | 🔧 **Configurable PDF extraction** | MarkItDown timeout via `WIKI_MARKITDOWN_TIMEOUT_MS` env var |
89
- | 🧪 **38+ tests, CI, CodeQL** | TypeScript, Vitest, Biome, Codecov |
79
+ | Capacidad | Descripción |
80
+ |-----------|-------------|
81
+ | 🏠 **Fallback personal** | Vault siempre activo en `~/.llm-wiki/` — el conocimiento se acumula entre proyectos incluso cuando no existe un wiki del proyecto |
82
+ | 🔗 **Captura de fuentes inmutable** | URLs, archivos locales (PDF/md/txt/html/XML/JSON) o texto pegadopaquetes de fuentes estructurados |
83
+ | 🧠 **Ingesta automatizada** | `wiki_ingest` procesa por lotes fuentes en páginas de conceptos, entidades, síntesis y análisis |
84
+ | 🔍 **Búsqueda de texto completo** | Registro generado con búsqueda por palabras clave en todas las páginas y fuentes |
85
+ | 🩺 **Linting mecánico** | Huérfanos, enlaces rotos, alias duplicados, lagunas de cobertura, capturas obsoletas |
86
+ | 📊 **Panel de control** | `wiki_status` — conteos, estados de fuentes, actividad reciente |
87
+ | 🤖 **Vigilancia de auto-actualización** | `wiki_watch` — imprime una línea `crontab` que ejecuta el ciclo completo según un horario |
88
+ | 🧠 **Recuerdo en capas** | Busca tanto en vaults personales (`~/.llm-wiki/`) como del proyecto (`.llm-wiki/`) — el conocimiento personal te sigue a todas partes |
89
+ | 📝 **Auto-inicialización** | La extensión sugiere crear un wiki cuando no existe ninguno en el directorio actual |
90
+ | 💾 **Captura ligera** | `wiki_retro` — guarda ideas atómicas como un solo archivo Markdown; también disponible el pipeline completo de 4 capas vía `wiki_capture_source` |
91
+ | 🧭 **Memoria de trabajo del agente** _(opcional)_ | `wiki_capture_trajectory` registra *cómo* se resolvió una tarea (trayectoria de llamadas de herramientas) → destila en páginas reutilizables de `skill`/`case` → `wiki_recall_skill` las muestra la próxima vez. Desactivado por defecto; activa con `/wiki-trajectories on` |
92
+ | 🌐 **OKF v0.2 nativo** | Documentos portátiles Open Knowledge Format, compatibilidad dual de lectura legacy, proyecciones deterministas |
93
+ | 🌐 **Servidor MCP** | Usa el mismo wiki consciente de OKF desde Claude Code, Cursor, Windsurf vía transporte MCP por stdio |
94
+ | 📝 **Amigable con Obsidian** | Wikilinks calificados por carpeta, citas estables de ID de fuente, vault compatible |
95
+ | 🛡️ **Barreras de seguridad** | Bloquea ediciones directas a fuentes crudas y metadatos generados |
96
+ | 🔧 **Extracción de PDF configurable** | Timeout de MarkItDown vía variable de entorno `WIKI_MARKITDOWN_TIMEOUT_MS` |
97
+ | 🧪 **562 pruebas, 85.09% de cobertura** | TypeScript, Vitest, Biome, Codecov, CodeQL |
90
98
 
91
99
  ---
92
100
 
93
101
  ## Herramientas
94
102
 
95
- | Tool | Description |
96
- |------|-------------|
97
- | `wiki_bootstrap` | Initialize a new wiki vault with config, templates, schema, and metadata |
98
- | `wiki_capture_source` | Capture a URL, local file, or pasted text into an immutable source packet |
99
- | `wiki_recall` | Search wiki for task-relevant pagessearches both personal (`~/.llm-wiki/`) and project (`.llm-wiki/`) vaults, deduplicated |
100
- | `wiki_retro` | Save atomic insights from completed tasks into the wiki |
101
- | `wiki_ingest` | Process uningested source packets into wiki pages (batch) |
102
- | `wiki_ensure_page` | Resolve or safely create entity / concept / synthesis / analysis pages |
103
- | `wiki_search` | Search the generated wiki registry |
104
- | `wiki_lint` | Deterministic health checks (orphans, gaps, contradictions, auto-fix) |
105
- | `wiki_status` | Show counts, source states, and recent activity |
106
- | `wiki_rebuild_meta` | Force a full metadata rebuild (registry, backlinks, index, log) |
107
- | `wiki_log_event` | Append a structured event to the wiki activity log |
108
- | `wiki_watch` | Print a `crontab` line for automatic wiki updates (daily / weekly / hourly) — does not install it |
103
+ | Herramienta | Descripción |
104
+ |-------------|-------------|
105
+ | `wiki_bootstrap` | Inicializa un nuevo vault de wiki con configuración, plantillas, esquema y metadatos |
106
+ | `wiki_capture_source` | Captura una URL, archivo local o texto pegado en un paquete de fuente inmutable |
107
+ | `wiki_recall` | Busca en el wiki páginas relevantes para la tarea busca en vaults personales y del proyecto, deduplicadas |
108
+ | `wiki_retro` | Guarda ideas atómicas de tareas completadas en el wiki |
109
+ | `wiki_ingest` | Procesa paquetes de fuentes no ingeridos en páginas del wiki (por lotes) |
110
+ | `wiki_ensure_page` | Resuelve o crea de forma segura páginas de entidad / concepto / síntesis / análisis |
111
+ | `wiki_search` | Busca en el registro generado del wiki |
112
+ | `wiki_lint` | Comprobaciones de salud deterministas (huérfanos, lagunas, contradicciones, auto-reparación) |
113
+ | `wiki_status` | Muestra conteos, estados de fuentes y actividad reciente |
114
+ | `wiki_rebuild_meta` | Fuerza una reconstrucción completa de metadatos (registro, backlinks, índice, registro) |
115
+ | `wiki_log_event` | Adjunta un evento estructurado al registro de actividad del wiki |
116
+ | `wiki_watch` | Imprime una línea `crontab` para actualizaciones automáticas del wiki (diaria / semanal / horaria) — no la instala |
117
+ | `wiki_capture_trajectory` _(opcional)_ | Captura la trayectoria de llamadas de herramientas de la tarea completada (memoria de trabajo del agente) |
118
+ | `wiki_distill_skills` _(opcional)_ | Procesa por lotes trayectorias no destiladas para síntesis en páginas de habilidades reutilizables |
119
+ | `wiki_recall_skill` _(opcional)_ | Recuerda habilidades destiladas + casos similares pasados — "¿he hecho esto antes?" |
120
+
121
+ > Las tres herramientas de trayectoria del agente están **desactivadas por defecto** (issue #80). Actívalas con `/wiki-trajectories on` (establece `llm-wiki.trajectories`); cuando están apagadas no se registran en absoluto.
109
122
 
110
123
  ### Comandos de Barra
111
124
 
112
- | Command | Description |
125
+ | Comando | Descripción |
113
126
  |---------|-------------|
114
- | `/wiki-init <topic>` | Initialize a new LLM Wiki vault |
115
- | `/wiki-ingest [path]` | Process new source files and update the wiki |
116
- | `/wiki-query <question>` | Ask questions against the wiki with citations |
117
- | `/wiki-discover [--topic <topic>]` | Auto-discover new sources from the web |
118
- | `/wiki-run [--schedule daily\|weekly]` | Full cycle: discoveringest → lint |
119
- | `/wiki-lint [--fix]` | Health check (orphans, contradictions, gaps) |
120
- | `/wiki-status` | Show a concise operational summary |
121
- | `/wiki-digest [--period daily\|weekly]` | Generate a digest of recent activity |
122
- | `/wiki-retro` | Save atomic insights from completed tasks |
127
+ | `/wiki-init <topic>` | Inicializa un nuevo vault LLM Wiki |
128
+ | `/wiki-ingest [path]` | Procesa nuevos archivos de fuente y actualiza el wiki |
129
+ | `/wiki-query <question>` | Haz preguntas al wiki con citas |
130
+ | `/wiki-discover [--topic <topic>]` | Descubre automáticamente nuevas fuentes de la web |
131
+ | `/wiki-run [--schedule daily\|weekly]` | Ciclo completo: descubriringerir → lint |
132
+ | `/wiki-lint [--fix]` | Comprobación de salud (huérfanos, contradicciones, lagunas) |
133
+ | `/wiki-status` | Muestra un resumen operativo conciso |
134
+ | `/wiki-digest [--period daily\|weekly]` | Genera un resumen de actividad reciente |
135
+ | `/wiki-retro` | Guarda ideas atómicas de tareas completadas |
136
+ | `/wiki-req <concept>` | Descompone un concepto en páginas de requisitos atómicas y rastreables |
137
+ | `/wiki-trajectories <on\|off>` | Activa/desactiva la memoria de trabajo del agente (opcional, desactivada por defecto) |
138
+ | `/wiki-record <title>` | Captura la trayectoria de la tarea completada (requiere trayectorias activadas) |
139
+ | `/wiki-skills [query]` | Busca habilidades destiladas + casos pasados (requiere trayectorias activadas) |
123
140
 
124
141
  ---
125
142
 
126
143
  ## Arquitectura de Vault en Capas
127
144
 
128
- Knowledge follows you everywhere. pi-llm-wiki uses a layered vault system:
145
+ El conocimiento te sigue a todas partes. pi-llm-wiki usa un sistema de vault en capas:
129
146
 
130
- | Layer | Location | Purpose |
131
- |-------|----------|---------|
132
- | 🏠 **Personal** | `~/.llm-wiki/` | Always active. Zero setup. Knowledge compounds across all your sessionsregardless of which project you're in. |
133
- | 📁 **Project** | `{project}/.llm-wiki/` | Explicit opt-in. Dedicated wiki per project, sharing personal knowledge when relevant. |
134
- | 🏢 **Company** (future) | git-tracked | Shared wiki across a team. `wiki_publish` promotes personal/project pages to the company wiki. |
147
+ | Capa | Ubicación | Propósito |
148
+ |------|-----------|-----------|
149
+ | 🏠 **Personal** | `~/.llm-wiki/` | Siempre activo. Configuración cero. El conocimiento se acumula en todas tus sesiones independientemente del proyecto en el que estés. |
150
+ | 📁 **Proyecto** | `{project}/.llm-wiki/` | Opt-in explícito. Wiki dedicado por proyecto, compartiendo conocimiento personal cuando es relevante. |
151
+ | 🏢 **Empresa** (futuro) | rastreado por git | Wiki compartido entre un equipo. `wiki_publish` promueve páginas personales/de proyecto al wiki de la empresa. |
135
152
 
136
153
  **Cómo funciona:**
137
154
 
138
- 1. `resolveVaultRoot()` checks: cwd → walk up for `.llm-wiki/` → `~/.llm-wiki/`
139
- 2. `wiki_recall` (layered) searches **both** personal and project vaults, merging results with vault labels
140
- 3. Personal results are shown first in recall output, tagged as "📓 personal"
141
- 4. `wiki_retro` writes to whichever vault is active (project takes priority)
142
- 5. Set `WIKI_HOME` env var to override the personal wiki location
155
+ 1. `resolveVaultRoot()` verifica: cwd → subir buscando `.llm-wiki/` → `~/.llm-wiki/`
156
+ 2. `wiki_recall` (en capas) busca en **ambos** vaults personal y del proyecto, fusionando resultados con etiquetas de vault
157
+ 3. Los resultados personales se muestran primero en la salida de recall, etiquetados como "📓 personal"
158
+ 4. `wiki_retro` escribe en el vault que esté activo (el proyecto tiene prioridad)
159
+ 5. Establece la variable de entorno `WIKI_HOME` para sobrescribir la ubicación del wiki personal
143
160
 
144
- This means: you can have a project wiki for team documentation **and** a personal wiki for your own notes, and recall searches both simultaneously.
161
+ Esto significa: puedes tener un wiki del proyecto para documentación del equipo **y** un wiki personal para tus propias notas, y recall busca ambos simultáneamente.
145
162
 
146
163
  ---
147
164
 
@@ -155,13 +172,13 @@ cd my-wiki
155
172
  pi
156
173
  ```
157
174
 
158
- Pregúntale a pi:
175
+ Pregunta a pi:
159
176
 
160
177
  ```
161
178
  Initialize an llm wiki here for AI research.
162
179
  ```
163
180
 
164
- This calls `wiki_bootstrap` and creates:
181
+ Esto llama a `wiki_bootstrap` y crea:
165
182
 
166
183
  ```
167
184
  .llm-wiki/
@@ -189,13 +206,13 @@ Capture these notes into the wiki: ...pasted text...
189
206
 
190
207
  ### 3) Integrar la fuente
191
208
 
192
- 1. Capture the source
193
- 2. Read `.llm-wiki/wiki/sources/SRC-*.md`
194
- 3. Update that source page
195
- 4. Search for impacted canonical pages with `wiki_search`
196
- 5. Create missing pages with `wiki_ensure_page`
197
- 6. Update concept / entity / synthesis pages with citations
198
- 7. Mark the integration with `wiki_log_event kind=integrate`
209
+ 1. Captura la fuente
210
+ 2. Lee `.llm-wiki/wiki/sources/SRC-*.md`
211
+ 3. Actualiza esa página de fuente
212
+ 4. Busca páginas canónicas afectadas con `wiki_search`
213
+ 5. Crea páginas faltantes con `wiki_ensure_page`
214
+ 6. Actualiza páginas de concepto / entidad / síntesis con citas
215
+ 7. Marca la integración con `wiki_log_event kind=integrate`
199
216
 
200
217
  ### 4) Consultar el wiki
201
218
 
@@ -203,7 +220,7 @@ Capture these notes into the wiki: ...pasted text...
203
220
  Based on the wiki, what are the main tradeoffs between long-context models and RAG?
204
221
  ```
205
222
 
206
- By default, query mode is **read-only**. To file a durable answer:
223
+ Por defecto, el modo de consulta es **de solo lectura**. Para archivar una respuesta duradera:
207
224
 
208
225
  ```
209
226
  Answer the question and file the result as an analysis page.
@@ -211,51 +228,49 @@ Answer the question and file the result as an analysis page.
211
228
 
212
229
  ---
213
230
 
214
- ## Diseño del Vault
231
+ ## Estructura del Vault
215
232
 
216
233
  ```
217
234
  my-wiki/
218
235
  └─ .llm-wiki/
219
- ├─ config.json # Vault config
220
- ├─ templates/ # Page templates
236
+ ├─ config.json # Configuración del vault
237
+ ├─ templates/ # Plantillas de páginas
221
238
  ├─ raw/
222
239
  │ └─ sources/
223
240
  │ └─ SRC-2026-05-11-001/
224
241
  │ ├─ manifest.json
225
- │ ├─ original/ # Original artifact
226
- │ ├─ extracted.md # Normalized text
242
+ │ ├─ original/ # Artefacto original
243
+ │ ├─ extracted.md # Texto normalizado
227
244
  │ └─ attachments/
228
245
  ├─ wiki/
229
- │ ├─ sources/ # Source pages (what each source says)
230
- │ ├─ concepts/ # Concepts and recurring ideas
231
- │ ├─ entities/ # People, orgs, products, papers, systems
232
- │ ├─ syntheses/ # Cross-source theses and tensions
233
- │ └─ analyses/ # Durable filed answers from queries
246
+ │ ├─ sources/ # Páginas de fuentes (lo que dice cada fuente)
247
+ │ ├─ concepts/ # Conceptos e ideas recurrentes
248
+ │ ├─ entities/ # Personas, organizaciones, productos, papers, sistemas
249
+ │ ├─ syntheses/ # Teses y tensiones entre fuentes
250
+ │ └─ analyses/ # Respuestas archivadas duraderas de consultas
234
251
  ├─ meta/
235
- │ ├─ registry.json # Auto-generated search index
252
+ │ ├─ registry.json # Índice de búsqueda auto-generado
236
253
  │ ├─ backlinks.json
237
254
  │ ├─ index.md
238
- │ ├─ events.jsonl # Append-only event log
255
+ │ ├─ events.jsonl # Registro de eventos de solo adjunción
239
256
  │ ├─ log.md
240
257
  │ └─ lint-report.md
241
- └─ WIKI_SCHEMA.md # Operating manual
258
+ └─ WIKI_SCHEMA.md # Manual de operaciones
242
259
  ```
243
260
 
244
261
  ### Modelo de Propiedad
245
262
 
246
- | Path | Owner | Rule |
247
- |------|-------|------|
248
- | Path | Owner | Rule |
249
- |------|-------|------|
250
- | `.llm-wiki/raw/**` | Extension tools | Immutable after capture |
251
- | `.llm-wiki/wiki/**` | Model + user | Editable knowledge pages |
252
- | `.llm-wiki/meta/registry.json` | Extension | Generated |
253
- | `.llm-wiki/meta/backlinks.json` | Extension | Generated |
254
- | `.llm-wiki/meta/index.md` | Extension | Generated |
255
- | `.llm-wiki/meta/events.jsonl` | Extension / tool | Append-only |
256
- | `.llm-wiki/meta/log.md` | Extension | Generated from events |
257
- | `.llm-wiki/meta/lint-report.md` | Extension | Generated |
258
- | `.llm-wiki/WIKI_SCHEMA.md` | Human + explicit request | Operating manual |
263
+ | Ruta | Propietario | Regla |
264
+ |------|-------------|-------|
265
+ | `.llm-wiki/raw/**` | Herramientas de extensión | Inmutable tras la captura |
266
+ | `.llm-wiki/wiki/**` | Modelo + usuario | Páginas de conocimiento editables |
267
+ | `.llm-wiki/meta/registry.json` | Extensión | Generado |
268
+ | `.llm-wiki/meta/backlinks.json` | Extensión | Generado |
269
+ | `.llm-wiki/meta/index.md` | Extensión | Generado |
270
+ | `.llm-wiki/meta/events.jsonl` | Extensión / herramienta | Solo adjunción |
271
+ | `.llm-wiki/meta/log.md` | Extensión | Generado desde eventos |
272
+ | `.llm-wiki/meta/lint-report.md` | Extensión | Generado |
273
+ | `.llm-wiki/WIKI_SCHEMA.md` | Humano + solicitud explícita | Manual de operaciones |
259
274
 
260
275
  ---
261
276
 
@@ -269,21 +284,21 @@ my-wiki/
269
284
  [[syntheses/long-context-vs-rag]]
270
285
  ```
271
286
 
272
- ### Citas de Hechos
287
+ ### Citas Factuales
273
288
 
274
289
  ```markdown
275
290
  [[sources/SRC-2026-04-04-001|SRC-2026-04-04-001]]
276
291
  ```
277
292
 
278
- Stable source-page IDs keep provenance stable even if titles change.
293
+ Los IDs estables de páginas de fuente mantienen la procedencia estable incluso si los títulos cambian.
279
294
 
280
295
  ---
281
296
 
282
- ## Guardarraíles
297
+ ## Barreras de Seguridad
283
298
 
284
- The extension **blocks** direct tool-call edits to:
299
+ La extensión **bloquea** ediciones directas por llamada de herramienta a:
285
300
 
286
- - `.llm-wiki/raw/**` — immutable source artifacts
301
+ - `.llm-wiki/raw/**` — artefactos de fuente inmutables
287
302
  - `.llm-wiki/meta/registry.json`
288
303
  - `.llm-wiki/meta/backlinks.json`
289
304
  - `.llm-wiki/meta/events.jsonl`
@@ -291,116 +306,191 @@ The extension **blocks** direct tool-call edits to:
291
306
  - `.llm-wiki/meta/log.md`
292
307
  - `.llm-wiki/meta/lint-report.md`
293
308
 
294
- If the model directly edits `.llm-wiki/wiki/**` using Pi's built-in `write` or `edit` tools, the extension **automatically rebuilds** generated metadata at the end of the agent turn.
309
+ Si el modelo edita directamente `.llm-wiki/wiki/**` usando las herramientas integradas `write` o `edit` de Pi, la extensión **reconstruye automáticamente** los metadatos generados al final del turno del agente.
295
310
 
296
311
  ---
297
312
 
298
313
  ## Formato de Paquete de Fuente
299
314
 
300
- Each captured source is stored as a structured packet:
315
+ Cada fuente capturada se almacena como un paquete estructurado:
301
316
 
302
317
  ```
303
318
  .llm-wiki/raw/sources/SRC-YYYY-MM-DD-NNN/
304
- ├─ manifest.json # Capture metadata (title, URL, format, timestamp)
305
- ├─ original/ # Original artifact (preserved as-is)
306
- ├─ extracted.md # Normalized text (PDF→md, XML→md, JSON→md, etc.)
307
- └─ attachments/ # Future attachment downloads
319
+ ├─ manifest.json # Metadatos de captura (título, URL, formato, marca de tiempo)
320
+ ├─ original/ # Artefacto original (preservado tal cual)
321
+ ├─ extracted.md # Texto normalizado (PDF→md, XML→md, JSON→md, etc.)
322
+ └─ attachments/ # Descargas futuras de adjuntos
308
323
  ```
309
324
 
310
- This preserves both the **original artifact** and a **normalized extracted view** for reading.
325
+ Esto preserva tanto el **artefacto original** como una **vista extraída normalizada** para lectura.
311
326
 
312
327
  ---
313
328
 
314
329
  ## Servidor MCP
315
330
 
316
- Use the wiki from **any MCP-compatible tool** — Claude Code, Cursor, Windsurf, and others.
331
+ Usa el wiki desde **cualquier herramienta compatible con MCP** — Claude Code, Cursor, Windsurf y otras.
317
332
 
318
- The package ships a standalone MCP server exposing 5 wiki tools over stdio:
333
+ El paquete incluye un servidor MCP independiente que expone 5 herramientas de wiki por stdio:
319
334
 
320
- | Tool | Description |
321
- |------|-------------|
322
- | `wiki_recall` | Search wiki for task-relevant pages |
323
- | `wiki_search` | Full registry search |
324
- | `wiki_status` | Wiki stats (page counts, type breakdown) |
325
- | `wiki_retro` | Save atomic insights |
326
- | `wiki_capture_source` | Capture text as a source packet |
335
+ | Herramienta | Descripción |
336
+ |-------------|-------------|
337
+ | `wiki_recall` | Busca en el wiki páginas relevantes para la tarea |
338
+ | `wiki_search` | Búsqueda completa del registro |
339
+ | `wiki_status` | Estadísticas del wiki (conteos de páginas, desglose por tipo) |
340
+ | `wiki_retro` | Guarda ideas atómicas |
341
+ | `wiki_capture_source` | Captura texto como paquete de fuente |
327
342
 
328
343
  ### Uso
329
344
 
330
345
  ```bash
331
- # Auto-discovered by pi:
346
+ # Auto-descubierto por pi:
332
347
  pi install npm:@zosmaai/pi-llm-wiki
333
348
 
334
- # Standalone with any MCP client:
349
+ # Independiente con cualquier cliente MCP:
335
350
  WIKI_ROOT=~/my-wiki node node_modules/@zosmaai/pi-llm-wiki/mcp/index.js
336
351
  ```
337
352
 
338
- Set `WIKI_ROOT` to your wiki vault directory. If unset, the server auto-detects from the current working directory.
353
+ Establece `WIKI_ROOT` en el directorio de tu vault de wiki. Si no está establecido, el servidor lo detecta automáticamente desde el directorio de trabajo actual.
339
354
 
340
355
  ---
341
356
 
342
- ## Comportamiento de la Skill
357
+ ## Comportamiento de la Habilidad
343
358
 
344
- The bundled `llm-wiki` skill teaches the model to:
359
+ La habilidad `llm-wiki` incluida enseña al modelo a:
345
360
 
346
- - ❌ Never edit raw sources directly
347
- - ❌ Never edit generated metadata files
348
- - ✅ Capture first, integrate second
349
- - ✅ Search before creating new canonical pages
350
- - ✅ Cite facts using source-page IDs
351
- - ✅ Keep query mode read-only by default
352
- - ✅ Use "Tensions / caveats" and "Open questions" when evidence is mixed
361
+ - ❌ Nunca editar fuentes crudas directamente
362
+ - ❌ Nunca editar archivos de metadatos generados
363
+ - ✅ Capturar primero, integrar después
364
+ - ✅ Buscar antes de crear nuevas páginas canónicas
365
+ - ✅ Citar hechos usando IDs de páginas de fuente
366
+ - ✅ Mantener el modo de consulta de solo lectura por defecto
367
+ - ✅ Usar "Tensiones / advertencias" y "Preguntas abiertas" cuando la evidencia es mixta
353
368
 
354
369
  ---
355
370
 
356
371
  ## Arquitectura
357
372
 
358
- ### Capas de Vault
373
+ ### Capas del Vault
359
374
 
360
- See the [Layered Vault Architecture](#layered-vault-architecture) section above for the personal/project/company layering.
375
+ Consulta la sección [Arquitectura de Vault en Capas](#arquitectura-de-vault-en-capas) anterior para el apilamiento personal/proyecto/empresa.
361
376
 
362
- ### Modelo de Página de Cuatro Capas
377
+ ### Modelo de Páginas de Cuatro Capas
363
378
 
364
- Each wiki vault has four layers with clear ownership:
379
+ Cada vault de wiki tiene cuatro capas con propiedad clara:
365
380
 
366
381
  ```
367
- .llm-wiki/raw/sources/SRC-*/ # Immutable source packets (extension-owned)
368
- .llm-wiki/wiki/ # Editable knowledge pages (you + LLM)
369
- .llm-wiki/meta/ # Auto-generated registry, backlinks, index, log
370
- .llm-wiki/ # Config and templates
382
+ .llm-wiki/raw/sources/SRC-*/ # Paquetes de fuente inmutables (propiedad de la extensión)
383
+ .llm-wiki/wiki/ # Páginas de conocimiento editables ( + LLM)
384
+ .llm-wiki/meta/ # Registro, backlinks, índice, registro auto-generados
385
+ .llm-wiki/ # Configuración y plantillas
371
386
  ```
372
387
 
373
- Read [docs/architecture.md](docs/architecture.md) for the full design document.
388
+ Lee [docs/architecture.md](docs/architecture.md) para el documento de diseño completo.
374
389
 
375
390
  ---
376
391
 
377
392
  ## Documentación
378
393
 
379
- | Document | What it covers |
380
- |----------|---------------|
381
- | [Architecture](docs/architecture.md) | How the four layers work, ownership model |
382
- | [Commands](docs/commands.md) | All slash commands and tool reference |
383
- | [Obsidian Integration](docs/obsidian.md) | Vault setup and recommended plugins |
384
- | [Configuration](docs/configuration.md) | Wiki modes, topics, environment variables |
385
- | [API](docs/api.md) | Extension tool parameter reference |
394
+ | Documento | Qué cubre |
395
+ |-----------|-----------|
396
+ | [Arquitectura](docs/architecture.md) | Cómo funcionan las cuatro capas, modelo de propiedad |
397
+ | [Comandos](docs/commands.md) | Todos los comandos de barra y referencia de herramientas |
398
+ | [Integración con Obsidian](docs/obsidian.md) | Configuración del vault y plugins recomendados |
399
+ | [Configuración](docs/configuration.md) | Modos de wiki, temas, variables de entorno |
400
+ | [API](docs/api.md) | Referencia de parámetros de herramientas de extensión |
386
401
 
387
402
  ---
388
403
 
389
404
  ## Contribuir
390
405
 
391
- See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, test patterns, and PR workflow.
406
+ Consulta [CONTRIBUTING.md](CONTRIBUTING.md) para la configuración de desarrollo, patrones de prueba y flujo de trabajo de PR.
392
407
 
393
408
  ---
394
409
 
395
- ## Historial de Estrellas
396
-
397
- [![Star History Chart](https://api.star-history.com/svg?repos=zosmaai/pi-llm-wiki&type=Date)](https://star-history.com/#zosmaai/pi-llm-wiki&Date)
410
+ <div align="center">
411
+ <a href="https://github.com/zosmaai/pi-llm-wiki/stargazers">
412
+ <img src="./assets/thank-you-for-the-star.png" alt="Thank you for starring pi-llm-wiki!" width="100%" />
413
+ </a>
414
+ <br/>
415
+ <sub>
416
+ If you find pi-llm-wiki useful,
417
+ <a href="https://github.com/zosmaai/pi-llm-wiki">⭐ star the repo</a> —
418
+ it lets us know we're building something that matters.
419
+ </sub>
420
+ </div>
398
421
 
399
- ## Contribuidores
422
+ <br/>
400
423
 
401
- <a href="https://github.com/zosmaai/pi-llm-wiki/graphs/contributors">
402
- <img src="https://contrib.rocks/image?repo=zosmaai/pi-llm-wiki" alt="Contributors" />
403
- </a>
424
+ ## Contribuyentes
425
+
426
+ ¡Gracias a todos los que han contribuido! Esta lista se regenera automáticamente por [`.github/workflows/contributors.yml`](.github/workflows/contributors.yml) — consulta [#60](https://github.com/zosmaai/pi-llm-wiki/issues/60) para la justificación.
427
+
428
+ <!-- readme: contributors -start -->
429
+ <table>
430
+ <tbody>
431
+ <tr>
432
+ <td align="center">
433
+ <a href="https://github.com/arjun-zosma">
434
+ <img src="https://avatars.githubusercontent.com/u/25246034?v=4" width="64;" alt="arjun-zosma"/>
435
+ <br />
436
+ <sub><b>Arjun Nayak</b></sub>
437
+ </a>
438
+ </td>
439
+ <td align="center">
440
+ <a href="https://github.com/Shanvit7">
441
+ <img src="https://avatars.githubusercontent.com/u/64424817?v=4" width="64;" alt="Shanvit7"/>
442
+ <br />
443
+ <sub><b>Shanvit S Shetty</b></sub>
444
+ </a>
445
+ </td>
446
+ <td align="center">
447
+ <a href="https://github.com/jfraser">
448
+ <img src="https://avatars.githubusercontent.com/u/165964?v=4" width="64;" alt="jfraser"/>
449
+ <br />
450
+ <sub><b>James Fraser</b></sub>
451
+ </a>
452
+ </td>
453
+ <td align="center">
454
+ <a href="https://github.com/CelestialCreator">
455
+ <img src="https://avatars.githubusercontent.com/u/177931942?v=4" width="64;" alt="CelestialCreator"/>
456
+ <br />
457
+ <sub><b>Akshay</b></sub>
458
+ </a>
459
+ </td>
460
+ <td align="center">
461
+ <a href="https://github.com/xcsf">
462
+ <img src="https://avatars.githubusercontent.com/u/43439835?v=4" width="64;" alt="xcsf"/>
463
+ <br />
464
+ <sub><b>xcsf</b></sub>
465
+ </a>
466
+ </td>
467
+ <td align="center">
468
+ <a href="https://github.com/danielnaab">
469
+ <img src="https://avatars.githubusercontent.com/u/136512?v=4" width="64;" alt="danielnaab"/>
470
+ <br />
471
+ <sub><b>Daniel Naab</b></sub>
472
+ </a>
473
+ </td>
474
+ <td align="center">
475
+ <a href="https://github.com/deestax">
476
+ <img src="https://avatars.githubusercontent.com/u/152369481?v=4" width="64;" alt="deestax"/>
477
+ <br />
478
+ <sub><b>Superdao</b></sub>
479
+ </a>
480
+ </td>
481
+ <td align="center">
482
+ <a href="https://github.com/mystery4f">
483
+ <img src="https://avatars.githubusercontent.com/u/40482524?v=4" width="64;" alt="mystery4f"/>
484
+ <br />
485
+ <sub><b>标准萌新</b></sub>
486
+ </a>
487
+ </td>
488
+ </tr>
489
+ <tbody>
490
+ </table>
491
+ <!-- readme: contributors -end -->
492
+
493
+ <sub>Full history: [contributors graph](https://github.com/zosmaai/pi-llm-wiki/graphs/contributors).</sub>
404
494
 
405
495
  ---
406
496
 
@@ -409,6 +499,6 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, test patterns, and
409
499
  <a href="https://pi.dev">pi.dev</a> · <a href="https://github.com/zosmaai/pi-llm-wiki/issues">Issues</a>
410
500
  </div>
411
501
 
412
- ## Licencia
502
+ ## License
413
503
 
414
504
  MIT