@saulwade/swl-ses 1.1.2 → 1.1.3
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/CLAUDE.md +1 -1
- package/README.md +1 -1
- package/comandos/swl/exportar-vault.md +103 -1
- package/manifiestos/skills-lock.json +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
package/CLAUDE.md
CHANGED
package/README.md
CHANGED
|
@@ -44,6 +44,86 @@ Normaliza el slug del proyecto a kebab-case sin acentos. Ejemplos válidos:
|
|
|
44
44
|
- `swl-software-engineering-system`
|
|
45
45
|
- `ecosistema-multi-agente-ia`
|
|
46
46
|
|
|
47
|
+
## Paso 1.5 — Resolución del nombre canónico desde el vault (CRÍTICO)
|
|
48
|
+
|
|
49
|
+
Antes de redactar el frontmatter, **debes resolver el nombre canónico exacto** del proyecto leyendo `02-Projects/` del vault. Sin esto, el campo `related_vault_project` queda con un nombre fabricado que no enlaza con ningún nodo del grafo de Obsidian.
|
|
50
|
+
|
|
51
|
+
Listar proyectos del vault:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
ls "F:/Google Drive/Developer/Obsidian/Vault/SWL/02-Projects/" 2>/dev/null
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Resultado típico:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
DEV - Ecosistema Multi-Agente IA OIC-INE.md
|
|
61
|
+
DEV - SIGAF.md
|
|
62
|
+
DEV - SIGM.md
|
|
63
|
+
META - SWL Software Engineering System.md
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Algoritmo de match (en cascada — cada pasada solo se ejecuta si la anterior no resolvió match único):
|
|
67
|
+
|
|
68
|
+
**Normaliza ambos lados** a comparación robusta antes de cualquier pasada:
|
|
69
|
+
- Strip extensión `.md`.
|
|
70
|
+
- Strip prefijo `DEV - ` o `META - ` (cualquier prefijo seguido de ` - `).
|
|
71
|
+
- Lowercase.
|
|
72
|
+
- Sin acentos.
|
|
73
|
+
- Reemplaza espacios y guiones por nada (compactar).
|
|
74
|
+
|
|
75
|
+
Aplica el mismo procesamiento al slug del proyecto local.
|
|
76
|
+
|
|
77
|
+
**Pasada 1 — Match exacto**:
|
|
78
|
+
- Si la cadena normalizada del slug local coincide carácter a carácter con la de algún canónico, ese es el match. Caso típico: `sigaf` ↔ `DEV - SIGAF`.
|
|
79
|
+
|
|
80
|
+
**Pasada 2 — Match por prefijo bidireccional**:
|
|
81
|
+
- Si la cadena del slug local es **prefijo** de la cadena de algún canónico, ese canónico matchea. Ej: `ecosistemamultiagenteia` es prefijo de `ecosistemamultiagenteiaoicine` → match con `DEV - Ecosistema Multi-Agente IA OIC-INE`.
|
|
82
|
+
- Inversamente: si la cadena de algún canónico es prefijo de la del slug local, también matchea (cubre el caso opuesto: vault con nombre más corto que el slug del proyecto).
|
|
83
|
+
- Solo se acepta el match si la pasada produce **exactamente 1** candidato. Si hay 2+ ambiguos, NO usar — pasar a siguiente pasada con el alias o fallback final, listando los candidatos en el WARNING del Paso 5.
|
|
84
|
+
|
|
85
|
+
**Pasada 3 — Aliases conocidos**:
|
|
86
|
+
- Si ninguna pasada anterior resolvió, intenta con sinónimos del slug local antes del fallback (ver lista de aliases más abajo). Para cada alias, repite Pasada 1 y Pasada 2.
|
|
87
|
+
|
|
88
|
+
**Pasada 4 — Fallback**:
|
|
89
|
+
- Si todo lo anterior es vacío:
|
|
90
|
+
- Usar como `related_vault_project` el valor `[[DEV - {Nombre-Title-Case}]]` (fallback antiguo).
|
|
91
|
+
- **Reportar warning explícito al usuario** en el paso 5 indicando que no se encontró nodo canónico y sugerir crear `02-Projects/DEV - {Nombre}.md` en el vault.
|
|
92
|
+
|
|
93
|
+
Resultado del algoritmo: el nombre canónico es el basename del archivo sin `.md` (con su prefijo `DEV - ` o `META - ` original intacto).
|
|
94
|
+
|
|
95
|
+
Ejemplos de match esperado (con la pasada que lo resuelve):
|
|
96
|
+
|
|
97
|
+
| Slug local | Normalizado local | Canónico que matchea | Pasada | Nombre canónico resuelto |
|
|
98
|
+
|------------|-------------------|----------------------|--------|--------------------------|
|
|
99
|
+
| `sigaf` | `sigaf` | `sigaf` | 1 (exacto) | `DEV - SIGAF` |
|
|
100
|
+
| `sigm` | `sigm` | `sigm` | 1 (exacto) | `DEV - SIGM` |
|
|
101
|
+
| `swl-software-engineering-system` | `swlsoftwareengineeringsystem` | `swlsoftwareengineeringsystem` | 1 (exacto) | `META - SWL Software Engineering System` |
|
|
102
|
+
| `ecosistema-multi-agente-ia` | `ecosistemamultiagenteia` | `ecosistemamultiagenteiaoicine` | 2 (prefijo del slug en canónico) | `DEV - Ecosistema Multi-Agente IA OIC-INE` |
|
|
103
|
+
| `swl-ses` | `swlses` | ninguno (ver nota) | 3 (alias → reemplaza slug por `swlsoftwareengineeringsystem` y repite 1) | `META - SWL Software Engineering System` |
|
|
104
|
+
|
|
105
|
+
**Nota sobre el caso `swl-ses`** — un lector cuidadoso puede preguntarse por qué Pasada 2 (prefijo) no captura este caso, dado que `swlses` y `swlsoftwareengineeringsystem` comparten el inicio `swls`. La verificación carácter a carácter:
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
pos: 0 1 2 3 4 5
|
|
109
|
+
swlses: s w l s e s
|
|
110
|
+
swlsof: s w l s o f t w a r e ...
|
|
111
|
+
^
|
|
112
|
+
divergen aquí (e vs o)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
`swlses` **no es prefijo** de `swlsoftwareengineeringsystem` — comparten 4 caracteres pero divergen en la posición 4. Por eso Pasada 2 falla y se necesita la sustitución de alias en Pasada 3. Esta nota existe para prevenir el malentendido común de que "comparten algunas letras iniciales" implica "uno es prefijo del otro".
|
|
116
|
+
|
|
117
|
+
**Aliases conocidos** — si el slug local no matchea directo, intenta estos sinónimos antes del fallback:
|
|
118
|
+
|
|
119
|
+
- `swl-ses` → buscar `swl-software-engineering-system` o `swlsoftwareengineeringsystem`.
|
|
120
|
+
- Cualquier slug que empiece con `swl-` y termine en `-ses` o `-software-engineering-system` → trata como `swl-software-engineering-system`.
|
|
121
|
+
|
|
122
|
+
Guarda el resultado en dos variables internas para usar más abajo:
|
|
123
|
+
|
|
124
|
+
- `nombre_canonico_completo` — ej. `META - SWL Software Engineering System`. Va dentro de `[[ ]]` en el frontmatter.
|
|
125
|
+
- `proyecto_slug` — el slug original sin alterar. Va en el filename y en tags.
|
|
126
|
+
|
|
47
127
|
## Paso 2 — Recolección del contenido de la sesión
|
|
48
128
|
|
|
49
129
|
Junta estas fuentes (las que existan):
|
|
@@ -67,7 +147,7 @@ created: {fecha-hoy YYYY-MM-DD}
|
|
|
67
147
|
source: swl-ses
|
|
68
148
|
project: "{nombre-proyecto}"
|
|
69
149
|
project_path: "{ruta-absoluta}"
|
|
70
|
-
related_vault_project: "[[
|
|
150
|
+
related_vault_project: "[[{nombre_canonico_completo}]]"
|
|
71
151
|
reviewed: false
|
|
72
152
|
---
|
|
73
153
|
|
|
@@ -150,8 +230,30 @@ Reporta al usuario:
|
|
|
150
230
|
|
|
151
231
|
- Ruta exacta del archivo creado.
|
|
152
232
|
- Conteo de palabras.
|
|
233
|
+
- **Nombre canónico resuelto**: indicar qué nodo de `02-Projects/` enlazó el export. Si no hubo match, marcar el warning explícito.
|
|
153
234
|
- Recordatorio: "Al abrir el vault en tu próxima sesión, ejecuta `/sync-projects {proyecto-slug}` para integrar formalmente estos cambios."
|
|
154
235
|
|
|
236
|
+
Formato esperado cuando hay match:
|
|
237
|
+
|
|
238
|
+
```
|
|
239
|
+
[OK] Export creado: F:\...\2026-05-04_1748_export-swl-ses.md (487 palabras)
|
|
240
|
+
[OK] Enlace canónico: [[META - SWL Software Engineering System]]
|
|
241
|
+
|
|
242
|
+
Próximo paso: al abrir el vault, ejecuta:
|
|
243
|
+
/sync-projects swl-ses
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Formato esperado cuando NO hay match:
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
[OK] Export creado: F:\...\2026-05-04_1748_export-mi-proyecto.md (487 palabras)
|
|
250
|
+
[WARNING] No se encontró nodo canónico en 02-Projects/. Usado fallback: [[DEV - Mi Proyecto]]
|
|
251
|
+
Sugerencia: crear F:\...\02-Projects\DEV - Mi Proyecto.md en el vault para que el grafo conecte el export con el proyecto.
|
|
252
|
+
|
|
253
|
+
Próximo paso: al abrir el vault, ejecuta:
|
|
254
|
+
/sync-projects mi-proyecto
|
|
255
|
+
```
|
|
256
|
+
|
|
155
257
|
## Restricciones
|
|
156
258
|
|
|
157
259
|
- **No sobrescribir** archivos existentes con el mismo nombre. Si por azar existe uno con el mismo timestamp (raro), agrega sufijo `_b`.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saulwade/swl-ses",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "Sistema de ingenieria de software auto-evolutivo multi-runtime polyglot con 59 agentes, 151 habilidades, 42 comandos, 60 reglas y 37 hooks. Soporta 11 lenguajes y 5 runtimes: Claude Code, Copilot, OpenCode, Codex y Gemini CLI. 100% en espanol (Mexico). Incluye gateway bidireccional con relay Telegram a Claude Code.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"swl-ses": "bin/swl-ses.js",
|
package/plugin.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "swl-ses",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "Sistema de ingenieria de software auto-evolutivo multi-runtime polyglot. 59 agentes, 151 habilidades, 42 comandos, 60 reglas y 37 hooks. 60 librerias. 11 lenguajes. Soporta Claude Code, Copilot, OpenCode, Codex y Gemini CLI.",
|
|
5
5
|
"author": "Saul Wade Leon",
|
|
6
6
|
"license": "MIT",
|