claude-code-arcane 2.0.0 → 2.1.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 (44) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +4 -3
  3. package/docs/SKILLS-CATALOG.md +25 -2
  4. package/docs/USER-GUIDE.md +2 -2
  5. package/package.json +1 -1
  6. package/profiles/second-brain.yaml +37 -0
  7. package/rules/vault-conventions.md +144 -0
  8. package/skills/brain-dump/SKILL.md +53 -0
  9. package/skills/hub-note/SKILL.md +68 -0
  10. package/skills/obsidian-bases/SKILL.md +85 -0
  11. package/skills/obsidian-bases/references/bases-syntax.md +123 -0
  12. package/skills/obsidian-canvas/SKILL.md +91 -0
  13. package/skills/obsidian-markdown/SKILL.md +110 -0
  14. package/skills/pdf-generator/scripts/fill_inspect.py +2 -0
  15. package/skills/pdf-generator/scripts/render_body.py +2 -0
  16. package/skills/review-dump/SKILL.md +108 -0
  17. package/skills/review-monthly/SKILL.md +56 -0
  18. package/skills/review-weekly/SKILL.md +91 -0
  19. package/skills/second-brain/SKILL.md +211 -0
  20. package/skills/second-brain/hooks/hooks.json +16 -0
  21. package/skills/second-brain/hooks/validate-note.sh +85 -0
  22. package/skills/second-brain/references/cross-project.md +57 -0
  23. package/skills/second-brain/references/templates/Atomic.md +22 -0
  24. package/skills/second-brain/references/templates/Daily.md +25 -0
  25. package/skills/second-brain/references/templates/Dashboard.base +70 -0
  26. package/skills/second-brain/references/templates/Dump.md +11 -0
  27. package/skills/second-brain/references/templates/Hub.md +22 -0
  28. package/skills/second-brain/references/templates/Monthly.md +29 -0
  29. package/skills/second-brain/references/templates/Weekly.md +29 -0
  30. package/skills/second-brain/references/templates/codebases.md +37 -0
  31. package/skills/second-brain/references/templates/hot.md +37 -0
  32. package/skills/second-brain/references/templates/vault-CLAUDE.md +127 -0
  33. package/skills/vault-audit/SKILL.md +72 -0
  34. package/skills/vault-audit/scripts/vault_audit.py +539 -0
  35. package/skills/vault-clip/SKILL.md +73 -0
  36. package/skills/vault-recall/SKILL.md +82 -0
  37. package/skills/vault-recall/scripts/vault_index.py +626 -0
  38. package/skills/vault-tidy/SKILL.md +76 -0
  39. package/skills/xlsx-generator/scripts/formula_check.py +2 -0
  40. package/skills/xlsx-generator/scripts/libreoffice_recalc.py +2 -0
  41. package/skills/xlsx-generator/scripts/xlsx_add_column.py +2 -0
  42. package/skills/xlsx-generator/scripts/xlsx_insert_row.py +2 -0
  43. package/skills/xlsx-generator/scripts/xlsx_reader.py +2 -0
  44. package/skills/zettel/SKILL.md +66 -0
@@ -0,0 +1,127 @@
1
+ # <NOMBRE DEL VAULT>
2
+
3
+ Vault de Obsidian usado como segundo cerebro. Este archivo es el contrato: Claude Code lo lee al inicio de cada sesión y de acá saca dónde va cada cosa. Si una convención cambia, se cambia acá primero.
4
+
5
+ ## Quién soy
6
+
7
+ <Rol, en qué proyectos estoy, qué temas me interesan. Dos o tres líneas: sirve para que las síntesis tengan contexto y no sean genéricas.>
8
+
9
+ ## Rutas
10
+
11
+ Contrato de rutas: los skills escriben en **roles**, y esta tabla dice qué carpeta es cada rol en este vault. Si cambiás una carpeta de lugar, se cambia acá y todo lo demás sigue funcionando.
12
+
13
+ | Rol | Ruta en este vault |
14
+ |---|---|
15
+ | `inbox` | `_inbox` |
16
+ | `daily` | `Reflect/Daily` |
17
+ | `weekly` | `Reflect/Weekly` |
18
+ | `monthly` | `Reflect/Monthly` |
19
+ | `atomic` | `03_Resources` |
20
+ | `hubs` | `Hubs` |
21
+ | `projects` | `01_Projects` |
22
+ | `areas` | `02_Areas` |
23
+ | `archive` | `04_Archive` |
24
+ | `templates` | `Templates` |
25
+
26
+ Y tres archivos fijos en la raíz: este `CLAUDE.md` (el contrato), `hot.md` (el caché de contexto reciente, lo reescribe `/review-dump`) y `codebases.md` (el puente a los repos, si hay código).
27
+
28
+ Un rol que este vault no usa se marca `(no usa)` en vez de borrar la fila: así queda explícito que la ausencia fue una decisión.
29
+
30
+ Los scripts reciben esto por flag: `--role hubs=Hubs --role atomic=03_Resources`.
31
+
32
+ ## Estructura
33
+
34
+ | Carpeta | Qué vive acá |
35
+ |---|---|
36
+ | `_inbox/` | Captura cruda, un archivo por día (`YYYY-MM-DD dump.md`). Sin estructura, sin tags, sin pensar. El sufijo evita que el nombre choque con el del daily. |
37
+ | `Reflect/Daily/` | Síntesis del día (`YYYY-MM-DD.md`), la crea `/review-dump`. |
38
+ | `Reflect/Weekly/` | Retrospectiva semanal (`YYYY-Www.md`). |
39
+ | `Reflect/Monthly/` | Balance del mes (`YYYY-MM.md`). |
40
+ | `01_Projects/` | Algo con deadline o resultado definido. Cuando cierra, va a `04_Archive/`. |
41
+ | `02_Areas/` | Responsabilidad continua sin fecha de fin (salud, finanzas, un rol). |
42
+ | `03_Resources/` | Notas atómicas: una idea por nota, plano, sin subcarpetas. |
43
+ | `04_Archive/` | Cerrado. Nunca se borra nada, se archiva. |
44
+ | `Hubs/` | Una nota por entidad que importa: persona, herramienta, concepto, empresa. |
45
+ | `Bases/` | Vistas `.base`. |
46
+ | `Templates/` | Mis plantillas. Claude no las edita. |
47
+
48
+ ## Contrato de frontmatter
49
+
50
+ Todo campo que se escriba tiene que estar acá. Un campo que no está declarado no se inventa: se propone y se agrega primero.
51
+
52
+ ```yaml
53
+ ---
54
+ created: YYYY-MM-DD # ISO, nunca se reescribe
55
+ type: daily # daily | weekly | monthly | dump | atomic | hub | project | area | clip
56
+ status: seed # madurez, solo en atomic, hub y clip (ver abajo)
57
+ tags: []
58
+ ---
59
+ ```
60
+
61
+ ### `status`: madurez de la nota
62
+
63
+ Solo para `atomic`, `hub` y `clip`. Las notas periódicas (`daily`, `weekly`, `monthly`, `dump`) no lo llevan: son registro, no conocimiento, y no maduran.
64
+
65
+ | Valor | Significa | Efecto |
66
+ |---|---|---|
67
+ | `seed` | Apenas plantada, incompleta a propósito | No cuenta como hueca. Si sigue `seed` a los 30 días, el audit la marca: una semilla que no crecio es la falla clasica del vault. |
68
+ | `provisional` | Tiene cuerpo pero no la sostendría en una discusión | Default de una nota recién escrita con contenido |
69
+ | `evergreen` | Dice lo que tiene que decir. Puede quedarse quieta años | **No cuenta como stale.** Es lo que distingue una nota que ya hizo su trabajo de una abandonada. |
70
+ | `contested` | Contradice a otra nota del vault y no está resuelto | El audit la lista para que un review la mire. La contradicción se preserva, no se resuelve sola. |
71
+ | `archived` | Cerrada | Fuera del alcance del audit, viva donde viva |
72
+
73
+ Sin este campo el audit no puede distinguir una nota de referencia que terminó su trabajo de un stub que nunca creció, y reporta las dos como stale.
74
+
75
+ **Los proyectos usan el mismo campo con otro vocabulario** (`activo | pausado | cerrado`): es su ciclo de vida, no su madurez. El audit solo interpreta los cinco valores de arriba, así que un `activo` le resulta inerte y el proyecto se evalúa como cualquier otra nota. Si eso te molesta, renombralo acá y el contrato manda.
76
+
77
+ Campos adicionales por tipo:
78
+
79
+ | `type` | Campos propios |
80
+ |---|---|
81
+ | `project` | `status: activo \| pausado \| cerrado`, `deadline` (opcional), `repos:` si tiene código |
82
+ | `clip` | `source` (URL), `author` (opcional) |
83
+ | `hub` | `aliases` (nombres alternativos de la entidad), `repos:` si la entidad tiene código |
84
+
85
+ `repos:` es el puente al código: la lista de repos que implementan esa entidad. Se traduce a path local en `codebases.md`. **El vault apunta, no copia:** la arquitectura vive en el repo.
86
+
87
+ ## Reglas de link
88
+
89
+ - **Los links van hacia arriba, nunca hacia abajo.** Dump linkea a hubs y proyectos. Daily linkea al dump. Weekly linkea a los dailies. Monthly linkea a los weeklies. Los backlinks de Obsidian dan la dirección inversa gratis.
90
+ - **Ninguna nota se cierra sin al menos un `[[wikilink]]`.** Si no hay a qué linkearla, falta un hub file.
91
+ - `[[wikilinks]]` para lo interno, `[texto](url)` solo para URLs externas.
92
+
93
+ ## Tareas
94
+
95
+ Las tareas viven en la nota a la que pertenecen, no en una lista central. Una tarea de un proyecto vive en la nota del proyecto; una que apareció en el día vive en el dump de ese día.
96
+
97
+ **Una tarea abierta no se arrastra al día siguiente.** Queda en su día marcada como cancelada (`- [-]`) y se crea de nuevo donde corresponda. No haber hecho algo un día es información.
98
+
99
+ ## Qué puede hacer Claude
100
+
101
+ - Crear y editar notas, clasificar el dump, actualizar hub files, generar dailies/weeklies/monthlies, buscar en el vault, proponer links.
102
+
103
+ ## Qué no puede hacer Claude
104
+
105
+ - Borrar notas (mueve a `04_Archive/`).
106
+ - Renombrar o mover notas sin que yo lo apruebe.
107
+ - Editar `Templates/` ni nada dentro de `.obsidian/`.
108
+ - Escribir la sección de reflexión de los reviews: los hechos los sintetiza Claude, la interpretación la escribo yo.
109
+ - Editar en masa: los cambios que afectan muchas notas van por `/vault-tidy` con approval.
110
+
111
+ ## Plugins instalados
112
+
113
+ <Completado por `/second-brain setup` con la detección real. Lo que no está en esta lista no se usa en las notas.>
114
+
115
+ ## Quién escribe qué
116
+
117
+ - **Autorado** (lo escribo yo, Claude no lo toca sin approval): dumps, notas atómicas, hubs, clips, proyectos, este archivo, y la `## Reflexión` de los reviews.
118
+ - **Sintetizado** (Claude lo escribe con mi OK y queda como nota): dailies, weeklies, monthlies, el `## Historial` de los hubs.
119
+ - **Proyectado** (Claude lo reescribe sin preguntar, es derivado y descartable): `hot.md`, `.vault-index.json`, las vistas `.base`. No los edito a mano porque se pisan.
120
+
121
+ ## Uso desde otros proyectos
122
+
123
+ Otros repos pueden leer este vault. El orden de lectura es `hot.md` → búsqueda con `vault_index.py` → el hub del tema → la nota. **No se lee el vault para preguntas generales de programación**, y no se escribe en él desde otro proyecto salvo pedido explícito. Receta completa: `/second-brain link`.
124
+
125
+ ## Git
126
+
127
+ Este vault es un repo git. Antes de una corrida que escribe varias notas, el árbol tiene que estar limpio: es el único undo confiable.
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: vault-audit
3
+ description: "Reporte de salud del vault de Obsidian via script Python: huerfanas, links roto, notas stale, tag sprawl, nombres duplicados y frontmatter fuera de contrato. Read-only, no escribe nada. Triggers: auditar el vault, salud del vault, notas huerfanas, links roto, vault audit, que tan sano esta mi vault."
4
+ argument-hint: "[--vault <path>] [--stale-days N] [--seed-days N] [--exempt <dir>] [-n 0]"
5
+ category: "pkm"
6
+ user-invocable: true
7
+ allowed-tools: Read, Glob, Grep, Bash
8
+ ---
9
+
10
+ # Vault Audit - Salud del vault
11
+
12
+ Medís el estado real del vault y explicás qué significan los números. **Este skill es read-only:** no escribe ni una línea en el vault. Los arreglos necesitan approval del usuario y los aplica `/vault-tidy`.
13
+
14
+ Flags: `$ARGUMENTS`
15
+
16
+ ## Fase 1 - Correr el script
17
+
18
+ El conteo lo hace Python, no vos: leer nota por nota para contar links cuesta cientos de miles de tokens en un vault real y da números peores.
19
+
20
+ ```bash
21
+ python .claude/skills/vault-audit/scripts/vault_audit.py "<vault>" --format json
22
+ ```
23
+
24
+ Flags útiles: `--stale-days N` (default 180), `--hollow-words N` (default 30), `--task-days N` (default 7), `--seed-days N` (default 30), `--require <campo>` (repetible, default `created` y `type`), `--exempt <carpeta>` (repetible, default `Templates` y `04_Archive`), `-n 0` para no truncar listas, `--audit-all` para auditar también las carpetas exentas.
25
+
26
+ El script solo lee el filesystem: sin dependencias, corre sobre miles de notas en segundos.
27
+
28
+ **Los defaults no son la verdad del vault: el `CLAUDE.md` lo es.** Antes de correr, leer su contrato y traducirlo a flags: los campos de frontmatter a `--require`, y los roles `templates` y `archive` a `--exempt`. Auditar un vault adoptado con los defaults produce hallazgos falsos (sus plantillas aparecen como huérfanas huecas) y esconde los reales.
29
+
30
+ ## Fase 2 - Interpretar
31
+
32
+ Un hallazgo no es un problema hasta que sabés por qué está ahí. Las lecturas que importan:
33
+
34
+ | Hallazgo | Qué suele significar | Cuándo NO es un problema |
35
+ |---|---|---|
36
+ | `orphans` | Notas que nadie linkea y que no linkean nada: el síntoma del vault-cementerio | Casi nunca. Es el hallazgo que más vale atacar. |
37
+ | `no_backlinks` | Nada apunta a la nota, aunque ella sí apunta a otras | Notas de entrada (dashboards, hubs de primer nivel) |
38
+ | `broken_links` | Link a una nota que no existe. Los `aliases` del frontmatter ya se resuelven, igual que en Obsidian, así que un `[[Nacho]]` que apunta al hub "Ignacio Martinez" no aparece acá | **Un link roto es muchas veces una intención, no un error:** es la nota que el usuario todavía no escribió. Distinguí typo de intención antes de proponer nada. |
39
+ | `ambiguous_names` | Dos archivos con el mismo nombre en carpetas distintas | Nunca: hace que todo `[[link corto]]` a ese nombre resuelva de forma impredecible. Es el hallazgo más urgente aunque parezca menor. |
40
+ | `stale` | Sin tocar en 180 días o más. Las `evergreen` **no** aparecen acá: ya dijeron lo que tenían que decir | Referencia que ya hizo su trabajo pero que nadie marcó `evergreen` todavía |
41
+ | `stale_seeds` | Notas en `seed` hace más de 30 días | Casi nunca. Es la falla clásica del vault: las semillas nunca maduran. Es más grave que una huérfana porque no se ve. |
42
+ | `contested` | Notas marcadas como contradictorias y sin resolver | Nunca es un error del vault: es el vault haciendo su trabajo. Va al `/review-monthly`, no a `/vault-tidy`. |
43
+ | `hollow` | Menos de 30 palabras | Semilla reciente. Dejala crecer. |
44
+ | `single_use_tags` | Tags usados una sola vez | Inocuo salvo que sean cientos: ahí hay confusión de vocabulario, no organización. |
45
+ | `stale_open_tasks` | Tareas abiertas en un día que ya cerró | Es la regla de arrastre incumplida: había que cancelarlas en su día. |
46
+ | `missing_frontmatter` | Campos del contrato ausentes | Notas viejas anteriores al contrato |
47
+ | `orphan_attachments` | Imágenes y PDFs que nadie embebe | Ocupan espacio, no rompen nada |
48
+
49
+ El campo `status` del contrato (`seed | provisional | evergreen | contested | archived`) es lo que hace accionables a `stale` y `hollow`: sin él, una nota de referencia que ya cumplió y un stub abandonado se reportan igual. `counts.by_status` te dice cuánto del vault está declarado y cuánto no.
50
+
51
+ Dos métricas de tendencia valen más que cualquier lista: **`avg_links_per_note`** (si es baja, el vault es un archivo de documentos, no una red de ideas) y **`orphan_rate`**. Compará contra el monthly anterior si existe.
52
+
53
+ ## Fase 3 - Reportar
54
+
55
+ 1. Los conteos primero, en una tabla corta. Sin adornos.
56
+ 2. Los 3 a 5 hallazgos que valen la pena, ordenados por impacto real: `ambiguous_names` y `orphans` arriba, `hollow` y `single_use_tags` abajo o directamente omitidos si son ruido.
57
+ 3. **Si el reporte trae `truncated`, decirlo con el total real.** Un reporte truncado que no se anuncia se lee como un vault sano, y esa es la única mentira que este skill no puede cometer.
58
+ 4. Cerrar con una recomendación concreta: qué arreglaría primero y por qué.
59
+
60
+ Audit COMPLETE cuando el usuario sabe los números, cuáles importan y cuál es el primer arreglo.
61
+
62
+ ## Reglas
63
+
64
+ - No escribir en el vault. Ni una nota, ni un frontmatter, ni un link. Para eso está `/vault-tidy`.
65
+ - No dramatizar los números: un vault de 2000 notas con 40 huérfanas está sano.
66
+ - No proponer plugins como solución a un problema de higiene: menos plugins es más sano.
67
+ - No sugerir borrar nada. El vocabulario es archivar.
68
+ - Sin guiones largos en el reporte.
69
+
70
+ ## Handoff
71
+
72
+ Con el reporte listo, el siguiente paso es `/vault-tidy` para aplicar los arreglos elegidos con approval item por item. Si el audit muestra muchas huérfanas del mismo tema, el arreglo real es `/hub-note` para el hub que falta. `/review-monthly` corre este audit como parte del cierre del mes.