@saulwade/swl-ses 1.3.3 → 1.3.4
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/habilidades/swl-claudemd/SKILL.md +2 -2
- package/hooks/extraccion-aprendizajes.js +24 -0
- package/manifiestos/skills-lock.json +1093 -1093
- package/package.json +1 -1
- package/plugin.json +1 -1
package/CLAUDE.md
CHANGED
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: swl-claudemd
|
|
3
|
-
description:
|
|
4
|
-
version: "1.0.
|
|
3
|
+
description: Conocimiento operacional para auditar y mantener archivos CLAUDE.md — contrato canónico de secciones (best practices Anthropic, ADR-0016), umbrales de bloat (líneas totales, bullets gigantes, placeholders, @references rotas), reglas de extracción a archivos referenciados con @, y plantillas de inicialización (init-user para ~/.claude/CLAUDE.md, init-project para CLAUDE.md raíz detectando stack). Provee las reglas; el comando /swl:claudemd ejecuta el flujo. Cargar desde ese comando o cuando el hook claudemd-bloat-detector sugiera intervención.
|
|
4
|
+
version: "1.0.1"
|
|
5
5
|
herramientasPermitidas: [Read, Write, Edit, Bash, Glob, Grep]
|
|
6
6
|
exclusiones:
|
|
7
7
|
- "No cargar para editar reglas globales en ~/.claude/rules/ — usar Edit directo."
|
|
@@ -623,6 +623,17 @@ const PATRONES_ARCHIVO_SWL_EXCLUIDO = [
|
|
|
623
623
|
/[\\/]INSTALACION\.md$/i,
|
|
624
624
|
/[\\/]INVENTARIO\.md$/i,
|
|
625
625
|
/[\\/]SALUD\.md$/i,
|
|
626
|
+
// Artefactos meta del flujo de release/planning. Su contenido suele
|
|
627
|
+
// ser narrativa de proceso (estructura, headings, listas) que el hook
|
|
628
|
+
// confunde con aprendizajes genuinos. Ver L-NN (2026-05-11) en
|
|
629
|
+
// APRENDIZAJES.md sobre el bug recurrente del placeholder generado.
|
|
630
|
+
/[\\/]RELEASE-NOTES[-_].*\.md$/i,
|
|
631
|
+
/[\\/]RELEASE_NOTES\.md$/i,
|
|
632
|
+
/[\\/]RESUMEN\.md$/i,
|
|
633
|
+
/[\\/]PLAN\.md$/i,
|
|
634
|
+
/[\\/]CONTEXTO\.md$/i,
|
|
635
|
+
/[\\/]ROADMAP.*\.md$/i,
|
|
636
|
+
/[\\/]MAPEO[_-].*\.md$/i,
|
|
626
637
|
/[\\/]package\.json$/,
|
|
627
638
|
/[\\/]plugin\.json$/,
|
|
628
639
|
/[\\/]package-lock\.json$/,
|
|
@@ -672,6 +683,19 @@ function pareceContenidoEstructuralSwl(contexto) {
|
|
|
672
683
|
return true;
|
|
673
684
|
}
|
|
674
685
|
|
|
686
|
+
// Contexto compuesto mayoritariamente de headings sin cuerpo. Detecta
|
|
687
|
+
// placeholders auto-generados al hacer Write de archivos meta (RELEASE-NOTES,
|
|
688
|
+
// RESUMEN, PLAN) cuya estructura es solo `## Sección 1`, `## Sección 2`...
|
|
689
|
+
// sin párrafos sustantivos. Acepta tanto headings desnudos (`## Titulo`)
|
|
690
|
+
// como indentados como blockquote (`> ## Titulo`) porque el hook envuelve
|
|
691
|
+
// el contexto con `> ` antes de evaluar el resultado.
|
|
692
|
+
if (noVacias.length >= 3) {
|
|
693
|
+
const headings = noVacias.filter(l => /^(>\s*)?#{1,6}\s+\S/.test(l));
|
|
694
|
+
if (headings.length / noVacias.length > 0.6) {
|
|
695
|
+
return true;
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
|
|
675
699
|
return false;
|
|
676
700
|
}
|
|
677
701
|
|