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.
- package/CHANGELOG.md +17 -0
- package/README.md +4 -3
- package/docs/SKILLS-CATALOG.md +25 -2
- package/docs/USER-GUIDE.md +2 -2
- package/package.json +1 -1
- package/profiles/second-brain.yaml +37 -0
- package/rules/vault-conventions.md +144 -0
- package/skills/brain-dump/SKILL.md +53 -0
- package/skills/hub-note/SKILL.md +68 -0
- package/skills/obsidian-bases/SKILL.md +85 -0
- package/skills/obsidian-bases/references/bases-syntax.md +123 -0
- package/skills/obsidian-canvas/SKILL.md +91 -0
- package/skills/obsidian-markdown/SKILL.md +110 -0
- package/skills/pdf-generator/scripts/fill_inspect.py +2 -0
- package/skills/pdf-generator/scripts/render_body.py +2 -0
- package/skills/review-dump/SKILL.md +108 -0
- package/skills/review-monthly/SKILL.md +56 -0
- package/skills/review-weekly/SKILL.md +91 -0
- package/skills/second-brain/SKILL.md +211 -0
- package/skills/second-brain/hooks/hooks.json +16 -0
- package/skills/second-brain/hooks/validate-note.sh +85 -0
- package/skills/second-brain/references/cross-project.md +57 -0
- package/skills/second-brain/references/templates/Atomic.md +22 -0
- package/skills/second-brain/references/templates/Daily.md +25 -0
- package/skills/second-brain/references/templates/Dashboard.base +70 -0
- package/skills/second-brain/references/templates/Dump.md +11 -0
- package/skills/second-brain/references/templates/Hub.md +22 -0
- package/skills/second-brain/references/templates/Monthly.md +29 -0
- package/skills/second-brain/references/templates/Weekly.md +29 -0
- package/skills/second-brain/references/templates/codebases.md +37 -0
- package/skills/second-brain/references/templates/hot.md +37 -0
- package/skills/second-brain/references/templates/vault-CLAUDE.md +127 -0
- package/skills/vault-audit/SKILL.md +72 -0
- package/skills/vault-audit/scripts/vault_audit.py +539 -0
- package/skills/vault-clip/SKILL.md +73 -0
- package/skills/vault-recall/SKILL.md +82 -0
- package/skills/vault-recall/scripts/vault_index.py +626 -0
- package/skills/vault-tidy/SKILL.md +76 -0
- package/skills/xlsx-generator/scripts/formula_check.py +2 -0
- package/skills/xlsx-generator/scripts/libreoffice_recalc.py +2 -0
- package/skills/xlsx-generator/scripts/xlsx_add_column.py +2 -0
- package/skills/xlsx-generator/scripts/xlsx_insert_row.py +2 -0
- package/skills/xlsx-generator/scripts/xlsx_reader.py +2 -0
- package/skills/zettel/SKILL.md +66 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vault-tidy
|
|
3
|
+
description: "Aplica los arreglos que reporto /vault-audit con approval item por item: linkear huerfanas, resolver nombres duplicados, cancelar tareas arrastradas, completar frontmatter y archivar. Nunca borra. Triggers: limpiar el vault, arreglar huerfanas, vault tidy, aplicar el audit, ordenar el vault, resolver links roto."
|
|
4
|
+
argument-hint: "[orphans | broken | duplicates | tasks | frontmatter | archive | all]"
|
|
5
|
+
category: "pkm"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
allowed-tools: Read, Glob, Grep, Bash, Write, Edit
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Vault Tidy - Aplicar los arreglos
|
|
11
|
+
|
|
12
|
+
Sos la única skill del profile que edita notas existentes en volumen, y por eso la más peligrosa. Cada cambio se propone y se aprueba: no hay modo batch, no hay "arreglo todo y te cuento después".
|
|
13
|
+
|
|
14
|
+
Categoría a arreglar: `$ARGUMENTS` (default: preguntar cuál, nunca `all` por omisión)
|
|
15
|
+
|
|
16
|
+
Aplica la rule `vault-conventions`.
|
|
17
|
+
|
|
18
|
+
**Rutas por rol:** los destinos se nombran por rol y la ruta real de cada uno sale del `## Rutas` del `CLAUDE.md` del vault. Los defaults entre paréntesis solo aplican si el vault no declara otra cosa.
|
|
19
|
+
|
|
20
|
+
## Fase 1 - Antes de tocar nada
|
|
21
|
+
|
|
22
|
+
1. **Ubicar el vault** y leer su `CLAUDE.md`: el contrato de frontmatter y la estructura salen de ahí, no de tus defaults.
|
|
23
|
+
2. **Verificar git.** Si el vault es un repo y el árbol está sucio, parar y pedir commit primero. Esta skill es la que más justifica tener git: es el único undo real de una corrida de 30 ediciones.
|
|
24
|
+
3. **Correr `/vault-audit`** y trabajar sobre esos hallazgos. Nunca decidir a ojo qué arreglar.
|
|
25
|
+
4. **Acotar la corrida.** Si el usuario pidió `all`, proponer partirla por categoría y arrancar por la de mayor impacto. Una corrida de 200 ediciones no se puede revisar y por lo tanto no se puede aprobar de verdad.
|
|
26
|
+
|
|
27
|
+
## Fase 2 - Los arreglos, por categoría
|
|
28
|
+
|
|
29
|
+
### `duplicates` - Nombres duplicados
|
|
30
|
+
El más urgente: dos archivos con el mismo nombre hacen que todo `[[link corto]]` a ese nombre resuelva impredecible.
|
|
31
|
+
|
|
32
|
+
Para cada par: mostrar las dos notas y proponer renombrar la menos linkeada, o fusionarlas si son la misma cosa. **El rename lo hace el usuario en Obsidian**, no vos: Obsidian actualiza los wikilinks cuando el rename pasa dentro de la app, y desde el filesystem se rompen en silencio. Tu entregable acá es la lista de renames a hacer y el orden.
|
|
33
|
+
|
|
34
|
+
### `orphans` - Huérfanas
|
|
35
|
+
Para cada huérfana: leerla, proponer el hub o la nota desde donde linkearla, y agregar el link **en el hub**, no en la huérfana. El link entrante es el que la hace encontrable.
|
|
36
|
+
|
|
37
|
+
Si varias huérfanas son del mismo tema, el arreglo no es linkearlas una por una: es crear el hub que falta con `/hub-note` y linkearlas desde ahí. Decilo antes de empezar a parchear.
|
|
38
|
+
|
|
39
|
+
### `broken` - Links roto
|
|
40
|
+
Clasificar cada uno antes de tocarlo:
|
|
41
|
+
|
|
42
|
+
- **Typo:** el target existe con otro nombre. Corregir el link.
|
|
43
|
+
- **Intención:** la nota no existe todavía y el link es un recordatorio. **Se deja.** Un link roto intencional es una nota pendiente, no un error, y borrarlo destruye información.
|
|
44
|
+
- **Basura:** link a algo que ya no aplica. Quitar el link, dejar el texto.
|
|
45
|
+
|
|
46
|
+
Preguntá cuál es cuando no se pueda deducir del contexto. No adivines.
|
|
47
|
+
|
|
48
|
+
### `tasks` - Tareas arrastradas
|
|
49
|
+
Para cada tarea abierta en un día que ya cerró: marcarla `- [-]` en su día original y preguntar si sigue vigente. Si sigue, crearla en la nota del proyecto o en el dump de hoy. Nunca mover la original.
|
|
50
|
+
|
|
51
|
+
### `frontmatter` - Contrato
|
|
52
|
+
Completar los campos ausentes del contrato del vault. `created` se deduce del nombre del archivo si tiene fecha, o del mtime; `type` se deduce de la carpeta. Si no se puede deducir, preguntar. **Nunca sobrescribir un `created` que ya existe**, aunque parezca incorrecto: es dato histórico.
|
|
53
|
+
|
|
54
|
+
### `archive` - Archivar
|
|
55
|
+
Mover al rol `archive` (default `04_Archive/`) lo que el usuario confirme cerrado, preservando el nombre. **Nunca borrar nada.** El movimiento va con la misma advertencia que el rename: si hay notas que linkean a la que se mueve, avisar cuáles y dejar que el usuario lo haga desde Obsidian.
|
|
56
|
+
|
|
57
|
+
## Fase 3 - Aplicar y reportar
|
|
58
|
+
|
|
59
|
+
1. Proponer los cambios en una tabla: nota, qué cambia, por qué. Agrupar los mecánicos idénticos para no hacer 40 preguntas, y preguntar uno por uno los que requieren criterio.
|
|
60
|
+
2. Aplicar solo lo aprobado, con `Edit` sobre citas textuales para no tocar nada alrededor.
|
|
61
|
+
3. Reportar qué se cambió y qué quedó pendiente, y recordar el commit.
|
|
62
|
+
|
|
63
|
+
Tidy COMPLETE cuando los cambios aprobados están aplicados y el resto quedó explícitamente pendiente, no olvidado.
|
|
64
|
+
|
|
65
|
+
## Reglas
|
|
66
|
+
|
|
67
|
+
- **Nunca borrar una nota.** Archivar.
|
|
68
|
+
- **Nunca renombrar ni mover desde el filesystem** sin avisar que rompe wikilinks: proponé que lo haga el usuario desde Obsidian.
|
|
69
|
+
- Nada de ediciones en masa sin approval, ni siquiera las triviales.
|
|
70
|
+
- No tocar el rol `templates` (default `Templates/`) ni `.obsidian/`.
|
|
71
|
+
- No reescribir contenido del usuario: agregás links y frontmatter, no editás su prosa.
|
|
72
|
+
- Sin guiones largos.
|
|
73
|
+
|
|
74
|
+
## Handoff
|
|
75
|
+
|
|
76
|
+
Con los arreglos aplicados, volver a correr `/vault-audit` para confirmar que los números se movieron: si un hallazgo sigue igual, el arreglo no era el correcto. Si la corrida dejó al descubierto temas sin hub, el siguiente paso es `/hub-note`.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zettel
|
|
3
|
+
description: "Crea una nota atomica en el vault a partir de una idea, un fragmento del dump o una nota de proyecto, con el criterio de cuando algo merece nota propia y a que linkearla. Triggers: nota atomica, zettel, esto merece nota propia, crear nota permanente, graduar esta idea, nota de concepto."
|
|
4
|
+
argument-hint: "[idea | ruta#seccion | dump YYYY-MM-DD]"
|
|
5
|
+
category: "pkm"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
allowed-tools: Read, Glob, Grep, Write, Edit
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Zettel - Nota atómica
|
|
11
|
+
|
|
12
|
+
Creás una nota que contiene **una** idea, escrita para que se entienda sola en dos años y linkeada al resto del vault. La mitad del trabajo es decidir si la nota tiene que existir.
|
|
13
|
+
|
|
14
|
+
Idea o fuente: `$ARGUMENTS`
|
|
15
|
+
|
|
16
|
+
Aplica la rule `vault-conventions`.
|
|
17
|
+
|
|
18
|
+
**Rutas por rol:** los destinos se nombran por rol y la ruta real de cada uno sale del `## Rutas` del `CLAUDE.md` del vault (leelo antes de escribir). Los defaults entre paréntesis solo aplican si el vault no declara otra cosa.
|
|
19
|
+
|
|
20
|
+
## Fase 1 - Decidir si merece nota propia
|
|
21
|
+
|
|
22
|
+
Una idea merece nota atómica propia cuando pasa **las tres**:
|
|
23
|
+
|
|
24
|
+
1. **Es verdadera fuera del contexto que la produjo.** Si solo tiene sentido dentro del proyecto donde apareció, es una nota de proyecto y se queda ahí.
|
|
25
|
+
2. **La linkearías desde otra nota.** Si no se te ocurre ni un lugar desde donde apuntar a esto, todavía no es conocimiento: es un registro.
|
|
26
|
+
3. **El título puede afirmar algo.** "Los índices parciales pagan en tablas con lecturas sesgadas" es una idea. "Postgres" es un tema, y los temas son hub files, no notas atómicas.
|
|
27
|
+
|
|
28
|
+
Si falla alguna, decirlo y proponer el destino real: se queda en el dump, va a la nota del proyecto, o va al `## Historial` de un hub. Verdict de esta fase: PASS solo si las tres se cumplen. No crear la nota para no dejar al usuario con las manos vacías: una nota atómica de más ensucia el grafo para siempre.
|
|
29
|
+
|
|
30
|
+
## Fase 2 - Buscar duplicados
|
|
31
|
+
|
|
32
|
+
Antes de escribir, buscar duplicados con `/vault-recall` si está disponible (rankea, y encuentra la nota que usó otro nombre), o `Grep` en `<atomic>` (default `03_Resources/`) por los términos del título y sus sinónimos obvios. Si ya hay una nota que cubre la idea:
|
|
33
|
+
|
|
34
|
+
- **Misma idea:** proponer ampliar la nota existente en vez de crear otra. Es el caso más frecuente y el que evita el vault con cinco notas del mismo concepto bajo cinco nombres.
|
|
35
|
+
- **Idea relacionada pero distinta:** crear la nueva y linkear ambas explícitamente, con una línea de por qué se distinguen.
|
|
36
|
+
|
|
37
|
+
## Fase 3 - Escribir
|
|
38
|
+
|
|
39
|
+
Con approval sobre el título y el destino, crear la nota en `<atomic>` (default `03_Resources/`) desde `<templates>/Atomic.md`:
|
|
40
|
+
|
|
41
|
+
- **Título como afirmación**, no como etiqueta. Es el nombre del archivo y lo que vas a ver en el autocompletado de links dentro de tres años.
|
|
42
|
+
- **La idea en las palabras del usuario**, no en las de la fuente. Si es una cita, va entre comillas con su fuente; el cuerpo de la nota es la reformulación.
|
|
43
|
+
- **Sección `## Por qué me importa`:** una o dos líneas sobre qué problema del usuario toca. Es lo que separa una nota atómica de un resumen de Wikipedia. Si el usuario no lo dijo, preguntar en una línea, no inventarlo.
|
|
44
|
+
- **Sección `## Relacionado`:** al menos un `[[wikilink]]`, siempre. Si no hay a qué linkear, falta el hub del tema: crearlo con `/hub-note` antes de cerrar esta nota.
|
|
45
|
+
- **Sección `## Fuente`:** el clip, el libro, la conversación, o "propia" si salió del usuario.
|
|
46
|
+
- **`status` del frontmatter:** `seed` si la nota queda como semilla a propósito, `provisional` si ya tiene cuerpo. **Nunca pongas `evergreen` vos:** eso lo decide el usuario cuando la nota deja de moverse, y es lo que hace que el audit no la reporte como stale.
|
|
47
|
+
|
|
48
|
+
Si la idea vino de una nota de proyecto o de un dump, **la fuente no se vacía**: la línea original se queda donde estaba y se le agrega el link a la nota nueva.
|
|
49
|
+
|
|
50
|
+
## Fase 4 - Conectar
|
|
51
|
+
|
|
52
|
+
1. Linkear la nota desde el hub del tema (sección `## Notas` del hub). El link del hub a la nota es el que la hace encontrable.
|
|
53
|
+
2. Si la nota discute o contradice otra nota atómica, linkearlas entre sí con una línea de por qué. Las conexiones entre notas atómicas son laterales y sí son bidireccionales: es el único caso donde la regla de "links hacia arriba" no aplica, porque acá no hay jerarquía.
|
|
54
|
+
|
|
55
|
+
Nota COMPLETE cuando existe, tiene al menos un link entrante desde un hub y al menos uno saliente.
|
|
56
|
+
|
|
57
|
+
## Reglas
|
|
58
|
+
|
|
59
|
+
- Una idea por nota. Si necesitás dos `##` que no se relacionan, son dos notas.
|
|
60
|
+
- Nunca vaciar la fuente de la que salió la idea.
|
|
61
|
+
- No crear la nota si falla el criterio de graduación, aunque el usuario lo haya pedido: explicá por qué y proponé el destino correcto. Si insiste, se crea.
|
|
62
|
+
- Sin guiones largos.
|
|
63
|
+
|
|
64
|
+
## Handoff
|
|
65
|
+
|
|
66
|
+
Con la nota creada, el siguiente paso es `/hub-note` si el tema todavía no tiene hub, o volver a `/review-dump` si esto salió en medio de procesar un día. Al cierre de la semana `/review-weekly` va a levantar la nota como parte de lo que creció.
|