@saulwade/swl-ses 2.4.3 → 2.5.2
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 +194 -241
- package/README.md +600 -597
- package/agentes/_intent-spec.md +73 -73
- package/agentes/_propose-step.md +90 -90
- package/agentes/abogado-diablo-swl.md +145 -0
- package/agentes/accesibilidad-wcag-swl.md +690 -690
- package/agentes/arquitecto-swl.md +267 -267
- package/agentes/auto-evolucion-swl.md +908 -908
- package/agentes/backend-api-swl.md +1 -1
- package/agentes/backend-csharp-swl.md +420 -420
- package/agentes/backend-go-swl.md +390 -390
- package/agentes/backend-java-swl.md +281 -281
- package/agentes/backend-node-swl.md +1 -1
- package/agentes/backend-python-swl.md +1 -1
- package/agentes/backend-rust-swl.md +364 -364
- package/agentes/backend-workers-swl.md +482 -482
- package/agentes/cloud-infra-swl.md +509 -509
- package/agentes/consolidador-swl.md +541 -541
- package/agentes/datos-swl.md +1 -1
- package/agentes/depurador-swl.md +352 -352
- package/agentes/devops-ci-swl.md +400 -400
- package/agentes/disenador-ui-swl.md +569 -569
- package/agentes/documentador-swl.md +345 -345
- package/agentes/frontend-angular-swl.md +621 -621
- package/agentes/frontend-css-swl.md +716 -716
- package/agentes/frontend-react-swl.md +692 -692
- package/agentes/frontend-swl.md +496 -496
- package/agentes/frontend-tailwind-swl.md +826 -826
- package/agentes/gh-fix-ci-swl.md +6 -1
- package/agentes/implementador-swl.md +1 -1
- package/agentes/investigador-swl.md +432 -432
- package/agentes/investigador-ux-swl.md +505 -505
- package/agentes/llm-apps-swl.md +1 -1
- package/agentes/migrador-swl.md +442 -442
- package/agentes/mobile-android-swl.md +511 -511
- package/agentes/mobile-cross-swl.md +541 -541
- package/agentes/mobile-ios-swl.md +502 -502
- package/agentes/mobile-testing-swl.md +302 -302
- package/agentes/nemesis-auditor-swl.md +285 -285
- package/agentes/notificador-swl.md +1 -1
- package/agentes/observabilidad-swl.md +438 -438
- package/agentes/pagos-swl.md +310 -310
- package/agentes/perfilador-usuario-swl.md +321 -321
- package/agentes/planificador-swl.md +399 -399
- package/agentes/producto-prd-swl.md +589 -589
- package/agentes/red-team-swl.md +218 -218
- package/agentes/release-manager-swl.md +590 -590
- package/agentes/rendimiento-swl.md +713 -713
- package/agentes/resolutor-build-swl.md +10 -1
- package/agentes/revisor-angular-swl.md +278 -278
- package/agentes/revisor-codigo-swl.md +1 -1
- package/agentes/revisor-csharp-swl.md +264 -264
- package/agentes/revisor-go-swl.md +259 -259
- package/agentes/revisor-java-swl.md +257 -257
- package/agentes/revisor-kotlin-swl.md +273 -273
- package/agentes/revisor-nextjs-swl.md +281 -281
- package/agentes/revisor-php-swl.md +271 -271
- package/agentes/revisor-react-swl.md +278 -278
- package/agentes/revisor-rust-swl.md +346 -346
- package/agentes/revisor-seguridad-swl.md +399 -399
- package/agentes/revisor-swift-swl.md +268 -268
- package/agentes/revisor-typescript-swl.md +346 -346
- package/agentes/sre-swl.md +1 -1
- package/agentes/tdd-qa-swl.md +393 -393
- package/bin/lib/bot-comandos.js +1 -1
- package/bin/swl-ses.js +6 -0
- package/comandos/swl/adoptar-proyecto.md +14 -2
- package/comandos/swl/configurar-ci.md +8 -1
- package/comandos/swl/deuda-codigo.md +97 -97
- package/comandos/swl/discutir-fase.md +22 -118
- package/comandos/swl/fix.md +118 -0
- package/comandos/swl/nuevo-proyecto.md +54 -3
- package/comandos/swl/predecir.md +32 -2
- package/comandos/swl/seguridad.md +189 -0
- package/comandos/swl/status.md +5 -3
- package/habilidades/aprendizaje-continuo/SKILL.md +3 -1
- package/habilidades/discutir-fase/SKILL.md +84 -81
- package/habilidades/discutir-fase/recursos/plantilla-contexto.md +136 -0
- package/habilidades/doc-sync/SKILL.md +3 -1
- package/habilidades/doubt-driven-review/SKILL.md +15 -1
- package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
- package/habilidades/estructura-proyecto-claude/SKILL.md +11 -2
- package/habilidades/harness-claude-code/SKILL.md +3 -1
- package/habilidades/instalar-sistema/SKILL.md +3 -1
- package/habilidades/meta-reglas-extendido/SKILL.md +92 -0
- package/habilidades/meta-reglas-extendido/recursos/analisis-previo-tareas-grandes.md +186 -0
- package/habilidades/meta-reglas-extendido/recursos/analizar-directorios-antes-de-escribir.md +235 -0
- package/habilidades/meta-reglas-extendido/recursos/api-diseno.md +413 -0
- package/habilidades/meta-reglas-extendido/recursos/arquitectura.md +491 -0
- package/habilidades/meta-reglas-extendido/recursos/arreglar-al-detectar.md +264 -0
- package/habilidades/meta-reglas-extendido/recursos/debatir-antes-de-aceptar.md +152 -0
- package/habilidades/meta-reglas-extendido/recursos/git-workflow.md +259 -0
- package/habilidades/meta-reglas-extendido/recursos/gobernanza.md +291 -0
- package/habilidades/meta-reglas-extendido/recursos/memoria-consolidada.md +263 -0
- package/habilidades/meta-reglas-extendido/recursos/seguridad-agentes.md +443 -0
- package/habilidades/meta-reglas-extendido/recursos/sesiones-paralelas.md +190 -0
- package/habilidades/meta-reglas-extendido/recursos/sin-duplicacion-reglas-globales.md +179 -0
- package/habilidades/meta-reglas-extendido/recursos/skills-estandar.md +394 -0
- package/habilidades/meta-reglas-extendido/recursos/usar-code-review-graph.md +156 -0
- package/habilidades/meta-reglas-extendido/recursos/usar-context7.md +236 -0
- package/habilidades/meta-reglas-extendido/recursos/usar-sistema-swl.md +253 -0
- package/habilidades/meta-reglas-extendido/recursos/verificar-citas-normativas.md +527 -0
- package/habilidades/meta-skills-estandar/SKILL.md +3 -1
- package/habilidades/nuevo-proyecto/SKILL.md +20 -3
- package/habilidades/php-experto/SKILL.md +10 -3
- package/habilidades/{filament-admin/SKILL.md → php-experto/recursos/filament-admin.md} +23 -39
- package/habilidades/prevencion-sobreingenieria/recursos/soluciones-nativas.md +166 -166
- package/habilidades/prevencion-sobreingenieria/recursos/variables-residuales-post-refactor.md +85 -85
- package/habilidades/proceso-debate-adversarial/recursos/personas.md +5 -4
- package/habilidades/proceso-ingenieria-requerimientos/SKILL.md +147 -0
- package/hooks/check-update.js +19 -10
- package/hooks/contexto-subagente.js +68 -68
- package/hooks/degradacion-instintos.js +1 -1
- package/hooks/extraccion-aprendizajes.js +2 -2
- package/hooks/lib/briefing.js +3 -3
- package/hooks/lib/nudge-tracker.js +1 -1
- package/hooks/lib/otlp-exporter.js +1 -1
- package/hooks/lib/webhook-dedup.js +1 -1
- package/hooks/session-briefing.js +1 -1
- package/llms.txt +6 -6
- package/manifiestos/canonical-hashes.json +1043 -52
- package/manifiestos/hooks-config.json +469 -469
- package/manifiestos/invariantes-criticos.json +30 -30
- package/manifiestos/modulos.json +168 -135
- package/manifiestos/perfiles.json +0 -2
- package/manifiestos/skills-lock.json +49 -56
- package/package.json +7 -5
- package/plantillas/github-workflows/README.md +15 -1
- package/plantillas/github-workflows/swl-devsecops.yml +70 -0
- package/plugin.json +5 -5
- package/reglas/analisis-previo-tareas-grandes.md +30 -156
- package/reglas/analizar-directorios-antes-de-escribir.md +30 -211
- package/reglas/api-diseno.md +28 -398
- package/reglas/arquitectura.md +35 -456
- package/reglas/arreglar-al-detectar.md +30 -230
- package/reglas/debatir-antes-de-aceptar.md +30 -143
- package/reglas/docs.md +7 -0
- package/reglas/estilo-codigo.md +9 -0
- package/reglas/fragmentos-compartidos.md +6 -0
- package/reglas/git-workflow.md +44 -240
- package/reglas/gobernanza.md +23 -262
- package/reglas/memoria-consolidada.md +34 -228
- package/reglas/performance.md +8 -0
- package/reglas/pruebas.md +12 -0
- package/reglas/seguridad-agentes.md +37 -418
- package/reglas/seguridad.md +12 -0
- package/reglas/sesiones-paralelas.md +29 -162
- package/reglas/sin-duplicacion-reglas-globales.md +25 -166
- package/reglas/skills-estandar.md +23 -373
- package/reglas/usar-code-review-graph.md +31 -140
- package/reglas/usar-context7.md +30 -208
- package/reglas/usar-sistema-swl.md +47 -242
- package/reglas/verificar-citas-normativas.md +47 -537
- package/scripts/actualizar.js +253 -253
- package/scripts/audit-tools/auditar-relleno-inventario.js +145 -0
- package/scripts/auditar-clases-conocidas.js +106 -0
- package/scripts/bootstrap-instintos.js +2 -2
- package/scripts/canario-hooks.js +166 -0
- package/scripts/cli/configurar-ci.js +2 -1
- package/scripts/evidencia-valor.js +101 -0
- package/scripts/field-report.js +18 -2
- package/scripts/generar-comandos.js +143 -0
- package/scripts/generar-inventario.js +236 -23
- package/scripts/generar-matriz-lenguajes.js +1 -1
- package/scripts/instalador.js +15 -1
- package/scripts/instalar-git-hook.js +8 -1
- package/scripts/lib/configurar-ci.js +10 -3
- package/scripts/lib/diary-entry.js +3 -1
- package/scripts/lib/drift-detector.js +1 -1
- package/scripts/lib/evidencia-valor.js +228 -0
- package/scripts/lib/expandir-targets.js +71 -71
- package/scripts/lib/frontmatter-md.js +63 -0
- package/scripts/lib/parsear-opciones.js +2 -0
- package/scripts/lib/prune-componentes.js +180 -0
- package/scripts/lib/reglas-globales-conocidas.json +16 -2
- package/scripts/lib/scoring-instintos.js +2 -2
- package/scripts/lib/toml-merge.js +204 -204
- package/scripts/lib/transformadores/claude.js +1 -1
- package/scripts/lib/transformadores/codex.js +1 -1
- package/scripts/lib/transformadores/copilot.js +1 -1
- package/scripts/lib/transformadores/cursor.js +1 -1
- package/scripts/lib/transformadores/gemini.js +22 -2
- package/scripts/lib/transformadores/opencode.js +1 -1
- package/scripts/mcp-server/auth.js +105 -105
- package/scripts/mcp-server/cache.js +106 -106
- package/scripts/prune.js +102 -0
- package/scripts/publicar.js +18 -2
- package/scripts/tui/index.js +10 -1
- package/scripts/tui/pantallas/inspect.js +175 -175
- package/scripts/tui/pantallas/install-wizard.js +21 -8
- package/scripts/tui/pantallas/uninstall-wizard.js +210 -210
- package/scripts/tui/pantallas/update-wizard.js +234 -234
- package/scripts/tui/pantallas/welcome.js +188 -189
- package/habilidades/paid-media-tracking/SKILL.md +0 -269
- package/habilidades/paid-media-tracking/recursos/auditoria-tracking.md +0 -220
- package/habilidades/paid-media-tracking/recursos/google-ads-api.md +0 -215
- package/habilidades/tracking-measurement/SKILL.md +0 -239
- package/habilidades/tracking-measurement/recursos/consent-mode.md +0 -231
- package/habilidades/tracking-measurement/recursos/gtm-datalayer.md +0 -216
- package/habilidades/tracking-measurement/recursos/meta-capi.md +0 -262
package/reglas/usar-context7.md
CHANGED
|
@@ -1,226 +1,48 @@
|
|
|
1
1
|
# Regla: Consultar Context7 antes de generar código con dependencias externas
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
`
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
recomendación, hoy puede estar:
|
|
16
|
-
|
|
17
|
-
- En una versión Y mayor con cambios incompatibles
|
|
18
|
-
- Deprecada y reemplazada por otra librería
|
|
19
|
-
- Con vulnerabilidades conocidas que requieren un parche
|
|
20
|
-
- Renombrada o migrada a otra organización
|
|
21
|
-
|
|
22
|
-
Generar código sin verificar la versión actual genera tres clases de
|
|
23
|
-
defectos en producción:
|
|
24
|
-
|
|
25
|
-
1. **Imports a APIs deprecadas** que arrastran warnings o se eliminan
|
|
26
|
-
en próximas versiones (ejemplo histórico: `@xenova/transformers`
|
|
27
|
-
migrado a `@huggingface/transformers`).
|
|
28
|
-
2. **Dependencias transitivas obsoletas** que el usuario ve como
|
|
29
|
-
warnings al instalar (ejemplo: `prebuild-install@7.1.3` arrastrada
|
|
30
|
-
por una librería que el sistema eligió sin verificar la salud).
|
|
31
|
-
3. **Vulnerabilidades CVE conocidas** que están parchadas en versiones
|
|
32
|
-
más nuevas que el modelo no conoce.
|
|
33
|
-
|
|
34
|
-
Context7 (MCP `mcp__claude_ai_Context7__query-docs` y
|
|
35
|
-
`mcp__claude_ai_Context7__resolve-library-id`) provee documentación
|
|
36
|
-
actualizada de librerías y frameworks. Su uso es la primera línea de
|
|
37
|
-
defensa contra estos tres problemas.
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## Cuándo consultar Context7 (OBLIGATORIO)
|
|
42
|
-
|
|
43
|
-
Antes de:
|
|
44
|
-
|
|
45
|
-
1. **Agregar una nueva dependencia** a `package.json`, `requirements.txt`,
|
|
46
|
-
`pom.xml`, `Cargo.toml`, `go.mod`, `composer.json`, `Package.swift` o
|
|
47
|
-
equivalente.
|
|
48
|
-
2. **Generar código que importe o use una librería externa** que no
|
|
49
|
-
estaba ya en uso en el proyecto, aunque la librería ya esté
|
|
50
|
-
instalada.
|
|
3
|
+
Regla OBLIGATORIA para todo agente o skill SWL que genere código con librerías,
|
|
4
|
+
frameworks, SDKs o APIs externas — se carga automáticamente para los agentes de stack
|
|
5
|
+
(`backend-*-swl`, `frontend-*-swl`, `mobile-*-swl`, `implementador-swl`, `llm-apps-swl`,
|
|
6
|
+
`pagos-swl`, `datos-swl`) y skills de implementación. El conocimiento del modelo tiene
|
|
7
|
+
fecha de corte: generar código sin verificar produce imports a APIs deprecadas,
|
|
8
|
+
dependencias transitivas obsoletas y CVEs ya parchados en versiones que el modelo no
|
|
9
|
+
conoce. Context7 (MCP `resolve-library-id` + `query-docs`) es la primera línea de defensa.
|
|
10
|
+
|
|
11
|
+
## Cuándo consultar (OBLIGATORIO) — antes de:
|
|
12
|
+
|
|
13
|
+
1. **Agregar una dependencia nueva** a `package.json`, `requirements.txt`, `pom.xml`, `Cargo.toml`, `go.mod`, `composer.json`, `Package.swift` o equivalente.
|
|
14
|
+
2. **Generar código que importe una librería externa** no usada aún en el proyecto, aunque ya esté instalada.
|
|
51
15
|
3. **Actualizar la versión** de una dependencia existente.
|
|
52
|
-
4. **Migrar de una librería a otra** alternativa (ej.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
transitiva.
|
|
56
|
-
6. **Implementar un patrón nuevo** del framework (ej. Server Actions
|
|
57
|
-
en Next.js, Signals en Angular, Suspense en React) — la API
|
|
58
|
-
correcta cambia rápido.
|
|
16
|
+
4. **Migrar de una librería a otra** alternativa (ej. `axios` → `fetch`, `moment` → `date-fns`, `jest` → `vitest`).
|
|
17
|
+
5. **Resolver un warning de deprecación** de una dependencia transitiva.
|
|
18
|
+
6. **Implementar un patrón nuevo del framework** (Server Actions, Signals, Suspense) — la API correcta cambia rápido.
|
|
59
19
|
|
|
60
|
-
NO es necesario
|
|
20
|
+
NO es necesario cuando:
|
|
61
21
|
|
|
62
|
-
- La librería es interna al proyecto SWL (`scripts/lib/*`,
|
|
63
|
-
|
|
64
|
-
- Es
|
|
65
|
-
- Es código que no usa dependencias externas (algoritmos, lógica de
|
|
66
|
-
negocio sin librerías de terceros).
|
|
22
|
+
- La librería es interna al proyecto SWL (`scripts/lib/*`, `hooks/lib/*`).
|
|
23
|
+
- Es biblioteca estándar del lenguaje (Node `fs`, Python `os`).
|
|
24
|
+
- Es código sin dependencias externas (algoritmos, lógica de negocio pura).
|
|
67
25
|
- El cambio es trivial (renombrar variable, formatear).
|
|
68
26
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
## Cómo consultar Context7
|
|
72
|
-
|
|
73
|
-
El MCP de Context7 expone dos herramientas principales:
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
mcp__claude_ai_Context7__resolve-library-id(libraryName)
|
|
77
|
-
→ Resuelve un nombre de librería (ej. "react", "next.js") al ID
|
|
78
|
-
canónico que Context7 usa internamente.
|
|
79
|
-
|
|
80
|
-
mcp__claude_ai_Context7__query-docs(library, topic, version?)
|
|
81
|
-
→ Devuelve documentación actualizada de la librería sobre el
|
|
82
|
-
topic específico. Acepta versión opcional.
|
|
83
|
-
```
|
|
27
|
+
## Flujo mínimo
|
|
84
28
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
1. Resolver el ID de la librería:
|
|
88
|
-
```
|
|
89
|
-
const id = mcp__claude_ai_Context7__resolve-library-id({
|
|
90
|
-
libraryName: "next.js"
|
|
91
|
-
});
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
2. Consultar el tema específico:
|
|
95
|
-
```
|
|
96
|
-
const docs = mcp__claude_ai_Context7__query-docs({
|
|
97
|
-
library: id,
|
|
98
|
-
topic: "Server Actions",
|
|
99
|
-
version: "16"
|
|
100
|
-
});
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
3. Verificar:
|
|
104
|
-
- ¿La librería sigue siendo la recomendada o está deprecada?
|
|
105
|
-
- ¿Hay una alternativa migrada que deberíamos usar?
|
|
106
|
-
- ¿La API que voy a generar es la actual o cambió?
|
|
107
|
-
- ¿La versión que recomienda Context7 coincide con la del
|
|
108
|
-
`package.json` del proyecto?
|
|
109
|
-
|
|
110
|
-
---
|
|
29
|
+
1. `resolve-library-id(libraryName)` → ID canónico; luego `query-docs(library, topic, version?)`.
|
|
30
|
+
2. Verificar: ¿sigue recomendada o está deprecada? ¿hay alternativa migrada? ¿la API que voy a generar es la actual? ¿la versión coincide con la del proyecto?
|
|
111
31
|
|
|
112
32
|
## Reglas estrictas
|
|
113
33
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
`go get <paquete>` o equivalente:
|
|
118
|
-
|
|
119
|
-
- Consultar Context7 para confirmar que la librería sigue activa.
|
|
120
|
-
- Confirmar la versión más reciente compatible con el resto del
|
|
121
|
-
stack del proyecto.
|
|
122
|
-
- Si Context7 reporta deprecación, **NO la uses**. Buscar la
|
|
123
|
-
alternativa migrada.
|
|
124
|
-
|
|
125
|
-
### NUNCA generar código con API obsoleta
|
|
126
|
-
|
|
127
|
-
Si el usuario pide implementar X usando librería Y:
|
|
128
|
-
|
|
129
|
-
- Consultar Context7 sobre cómo se hace X en la versión actual de Y.
|
|
130
|
-
- Si la API que aparece en el contexto del modelo difiere de la que
|
|
131
|
-
Context7 reporta como actual, **usar la de Context7**.
|
|
132
|
-
- Documentar en un comentario corto la versión consultada y la
|
|
133
|
-
fecha si la API es notable.
|
|
134
|
-
|
|
135
|
-
### NUNCA copiar ejemplos de la web sin verificar versión
|
|
136
|
-
|
|
137
|
-
Stack Overflow, blogs y tutoriales tienen alta probabilidad de
|
|
138
|
-
mostrar código deprecado. Si el agente consulta una web (vía
|
|
139
|
-
WebSearch o WebFetch) y obtiene un ejemplo, ese ejemplo debe
|
|
140
|
-
validarse contra Context7 antes de incorporarlo.
|
|
141
|
-
|
|
142
|
-
---
|
|
34
|
+
- **NUNCA agregar dependencia sin verificar**: confirmar que sigue activa y la versión más reciente compatible con el stack; si Context7 reporta deprecación, NO usarla — buscar la alternativa migrada.
|
|
35
|
+
- **NUNCA generar código con API obsoleta**: si el contexto del modelo difiere de lo que Context7 reporta como actual, usar lo de Context7 (documentar en comentario corto la versión consultada si la API es notable).
|
|
36
|
+
- **NUNCA copiar ejemplos de la web sin verificar versión**: todo ejemplo obtenido vía WebSearch/WebFetch (Stack Overflow, blogs, tutoriales) se valida contra Context7 antes de incorporarlo.
|
|
143
37
|
|
|
144
38
|
## Excepción: Context7 no responde o no tiene la librería
|
|
145
39
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
1. **Documentar en el código** que Context7 no respondió y la API se
|
|
150
|
-
tomó de la fuente oficial (npm registry, docs del repo).
|
|
151
|
-
2. **Verificar al menos**: la librería existe, no está deprecada en
|
|
152
|
-
npm/PyPI, su última publicación es reciente (≤ 12 meses).
|
|
153
|
-
3. **NO bloquear** el flujo del usuario por este caso — proceder con
|
|
154
|
-
diligencia razonable.
|
|
155
|
-
|
|
156
|
-
---
|
|
40
|
+
Documentar en el código que la API se tomó de la fuente oficial (npm registry, docs del repo);
|
|
41
|
+
verificar al menos que la librería existe, no está deprecada en npm/PyPI y su última
|
|
42
|
+
publicación es reciente (≤ 12 meses). NO bloquear el flujo del usuario — diligencia razonable.
|
|
157
43
|
|
|
158
44
|
## Auditoría retroactiva
|
|
159
45
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
- Si durante un refactor se detecta una dependencia que arrastra
|
|
163
|
-
warnings de deprecación, abrir un ticket para auditarla con
|
|
164
|
-
Context7 y migrar si hay alternativa actual.
|
|
165
|
-
- El comando `/swl:auditar-deps` (cuando esté disponible) debe
|
|
166
|
-
cruzar las dependencias del proyecto contra Context7 para
|
|
167
|
-
detectar deprecaciones silenciosas.
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
## Aplicabilidad por agente
|
|
172
|
-
|
|
173
|
-
| Agente | Aplica | Cuándo |
|
|
174
|
-
|---|---|---|
|
|
175
|
-
| `backend-python-swl` | SÍ | Al generar código FastAPI/Django/SQLAlchemy |
|
|
176
|
-
| `backend-node-swl` | SÍ | Al generar código Express/Fastify/NestJS |
|
|
177
|
-
| `backend-java-swl` | SÍ | Al generar código Spring Boot/JPA |
|
|
178
|
-
| `backend-go-swl` | SÍ | Al generar código Go con frameworks |
|
|
179
|
-
| `backend-rust-swl` | SÍ | Al generar código Axum/Actix |
|
|
180
|
-
| `backend-csharp-swl` | SÍ | Al generar código ASP.NET Core |
|
|
181
|
-
| `frontend-react-swl` | SÍ | Al generar código React/Next.js |
|
|
182
|
-
| `frontend-angular-swl` | SÍ | Al generar código Angular |
|
|
183
|
-
| `frontend-css-swl` | SÍ | Al usar PostCSS/Tailwind plugins |
|
|
184
|
-
| `frontend-tailwind-swl` | SÍ | Al usar Tailwind v4+ APIs |
|
|
185
|
-
| `frontend-swl` | SÍ | Al usar Vue/Svelte/Lit |
|
|
186
|
-
| `mobile-android-swl` | SÍ | Al usar Jetpack Compose libs |
|
|
187
|
-
| `mobile-ios-swl` | SÍ | Al usar SwiftUI/Combine |
|
|
188
|
-
| `mobile-cross-swl` | SÍ | Al usar React Native/Flutter |
|
|
189
|
-
| `implementador-swl` | SÍ | Generalista — siempre |
|
|
190
|
-
| `llm-apps-swl` | SÍ | LangChain, OpenAI SDK, Anthropic SDK |
|
|
191
|
-
| `pagos-swl` | SÍ | Stripe SDK actualizado |
|
|
192
|
-
| `datos-swl` | SÍ | ORMs y drivers de BD |
|
|
193
|
-
| `arquitecto-swl` | RECOMENDADO | Al evaluar tradeoffs entre librerías |
|
|
194
|
-
| `revisor-codigo-swl` | RECOMENDADO | Al detectar deps deprecadas en review |
|
|
195
|
-
| `revisor-seguridad-swl` | OBLIGATORIO | Al verificar CVEs de dependencias |
|
|
196
|
-
| Resto de agentes | NO | No generan código con dependencias externas |
|
|
197
|
-
|
|
198
|
-
---
|
|
199
|
-
|
|
200
|
-
## Checklist de consulta Context7
|
|
201
|
-
|
|
202
|
-
Antes de marcar una tarea como completa:
|
|
203
|
-
|
|
204
|
-
- [ ] ¿Las dependencias agregadas/usadas se verificaron contra Context7?
|
|
205
|
-
- [ ] ¿La versión usada está alineada con la que Context7 reporta como actual?
|
|
206
|
-
- [ ] ¿No hay imports de APIs deprecadas según Context7?
|
|
207
|
-
- [ ] ¿Las dependencias transitivas conocidas no son warnings de
|
|
208
|
-
deprecación al instalar?
|
|
209
|
-
- [ ] Si Context7 no tenía la librería, ¿se documentó el motivo?
|
|
210
|
-
|
|
211
|
-
---
|
|
212
|
-
|
|
213
|
-
## Origen de esta regla
|
|
214
|
-
|
|
215
|
-
Esta regla se formalizó tras observar en la primera instalación pública
|
|
216
|
-
de `@saulwade/swl-ses@1.0.0` (2026-04-30) un warning de
|
|
217
|
-
`prebuild-install@7.1.3 deprecated` arrastrado por
|
|
218
|
-
`@xenova/transformers` que estaba en `optionalDependencies`. La
|
|
219
|
-
dependencia se eligió en una iteración anterior sin verificar Context7;
|
|
220
|
-
la migración oficial era `@huggingface/transformers`. El warning se vio
|
|
221
|
-
en cada `npm install` del paquete distribuido. Resuelto en v1.0.1
|
|
222
|
-
eliminando la dependencia opcional y elevando esta regla a obligatoria
|
|
223
|
-
para que no se repita.
|
|
46
|
+
Aplica también al código existente: dependencia con warnings de deprecación detectada en refactor → ticket para auditarla con Context7 y migrar si hay alternativa actual (`/swl:auditar-deps` cruza dependencias contra Context7).
|
|
224
47
|
|
|
225
|
-
|
|
226
|
-
usuario, formalizada como regla).
|
|
48
|
+
Detalle extendido (los 3 tipos de defectos con casos, flujo con ejemplos de tools, tabla de aplicabilidad por agente, checklist, caso de origen `prebuild-install`): `Skill("meta-reglas-extendido")` → `recursos/usar-context7.md`.
|
|
@@ -1,251 +1,56 @@
|
|
|
1
1
|
# Regla: Uso obligatorio del sistema SWL
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
cualquier proyecto donde el sistema SWL esté instalado (presencia de
|
|
5
|
-
`agentes/`, `habilidades/`, `comandos/swl/`, `reglas/` o `plugin.json` con
|
|
6
|
-
`name: "@saulwade/swl-ses"`).
|
|
7
|
-
|
|
8
|
-
Tiene prioridad sobre la inercia natural del modelo a hacer trabajo directo
|
|
9
|
-
con Read/Write/Edit/Bash cuando existe un agente, skill o comando SWL
|
|
10
|
-
específico para la tarea.
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## Por qué existe esta regla
|
|
15
|
-
|
|
16
|
-
El sistema SWL se instaló específicamente para que Claude **no haga trabajo
|
|
17
|
-
directo cuando hay un componente especializado**. El patrón recurrente que
|
|
18
|
-
esta regla cierra es:
|
|
19
|
-
|
|
20
|
-
- Implementar con Read/Write/Edit en vez de invocar `implementador-swl` o el
|
|
21
|
-
agente de stack (`backend-python-swl`, `frontend-react-swl`, etc.).
|
|
22
|
-
- Hacer commits sin invocar `revisor-codigo-swl` ni `revisor-seguridad-swl`.
|
|
23
|
-
- Escribir código sin cargar el skill de stack correspondiente
|
|
24
|
-
(`fastapi-experto`, `react-experto`, `angular-moderno`).
|
|
25
|
-
- Implementar features sin pasar por `/swl:discutir-fase` → `/swl:planear-fase`
|
|
26
|
-
→ `/swl:ejecutar-fase` cuando el alcance lo justifica.
|
|
27
|
-
- Diferir scope (entregar read-only cuando el plan decía CRUD) sin invocar al
|
|
28
|
-
planificador ni crear DA formal — viola `arreglar-al-detectar.md`.
|
|
29
|
-
|
|
30
|
-
El patrón es costoso y reproducible. La regla `arreglar-al-detectar.md`
|
|
31
|
-
prohíbe la deuda silenciosa; esta regla cierra la causa raíz: saltarse el
|
|
32
|
-
flujo SWL desde el inicio.
|
|
33
|
-
|
|
34
|
-
---
|
|
3
|
+
Regla **OBLIGATORIA** en todo proyecto con SWL instalado (presencia de `agentes/`, `habilidades/`, `comandos/swl/`, `reglas/` o `plugin.json` con `name: "@saulwade/swl-ses"`). Tiene prioridad sobre la inercia de hacer trabajo directo con Read/Write/Edit/Bash cuando existe un componente SWL específico para la tarea.
|
|
35
4
|
|
|
36
5
|
## Principio
|
|
37
6
|
|
|
38
|
-
> Cuando exista un agente, skill o comando SWL aplicable a la tarea actual,
|
|
39
|
-
> **usarlo es obligatorio**. Hacer trabajo directo con herramientas básicas
|
|
40
|
-
> (Read/Write/Edit/Bash/Grep/Glob) cuando un componente especializado lo
|
|
41
|
-
> cubre mejor es violación de esta regla.
|
|
42
|
-
|
|
43
|
-
El sistema SWL es la herramienta del usuario — saltársela sin justificación
|
|
44
|
-
es decisión que la regla `debatir-antes-de-aceptar.md` exige debatir antes
|
|
45
|
-
de ejecutar.
|
|
7
|
+
> Cuando exista un agente, skill o comando SWL aplicable a la tarea actual, **usarlo es obligatorio**. El trabajo directo con herramientas básicas solo procede dentro de las excepciones legítimas; saltarse SWL sin justificación es decisión que `debatir-antes-de-aceptar.md` exige debatir antes de ejecutar.
|
|
46
8
|
|
|
47
|
-
|
|
9
|
+
**PASO 0 obligatorio** antes de la primera tool call sustantiva: consultar memoria previa (`Skill("memoria-busqueda")`, APRENDIZAJES.md, `.planning/adrs/`, vault Obsidian si aplica) — empezar sin consultar es reabrir decisiones cerradas. Después: ¿la tarea cabe en la matriz? → identificar el componente → cargar el skill ANTES de implementar → revisar antes de commit.
|
|
48
10
|
|
|
49
11
|
## Matriz operacional: cuándo usar qué
|
|
50
12
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
NO aplicar esta regla cuando:
|
|
97
|
-
|
|
98
|
-
1. **Tarea trivial de 1-2 archivos**: rename, fix de typo, ajuste de comentario,
|
|
99
|
-
formato. El overhead de invocar agente supera el valor.
|
|
100
|
-
2. **Pregunta de lectura pura**: "¿qué hace este archivo?", "¿dónde se define
|
|
101
|
-
X?". Usar Read/Grep directos.
|
|
102
|
-
3. **Comando de shell puro**: `git status`, `npm install`, `gh pr list`.
|
|
103
|
-
4. **Sesión exploratoria explícita**: el usuario pidió "explora", "echa un
|
|
104
|
-
vistazo", "investiga sin tocar nada".
|
|
105
|
-
5. **Override explícito del usuario**: "no uses agentes, hazlo directo".
|
|
106
|
-
Respetar la instrucción explícita; registrar la excepción si tiene impacto
|
|
107
|
-
en flujo posterior.
|
|
108
|
-
6. **Fix urgente de producción** con incidente activo: aplicar fix mínimo,
|
|
109
|
-
el agente puede esperar al post-mortem.
|
|
110
|
-
7. **Proyecto sin SWL instalado**: si no hay `plugin.json` ni `agentes/` en
|
|
111
|
-
el proyecto, la regla no aplica.
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
## Anti-patrones explícitos
|
|
116
|
-
|
|
117
|
-
### Anti-patrón 1: implementar feature compleja con Read+Write directo
|
|
118
|
-
|
|
119
|
-
❌ **MAL**: el usuario pide "agrega CRUD para entidad X", Claude empieza a
|
|
120
|
-
escribir el modelo + endpoint + frontend + tests con Read+Write secuenciales,
|
|
121
|
-
sin pasar por `/swl:planear-fase` ni invocar `backend-python-swl`.
|
|
122
|
-
|
|
123
|
-
✅ **BIEN**: invocar `/swl:discutir-fase` para extraer decisiones,
|
|
124
|
-
`/swl:planear-fase` para descomponer en tareas atómicas, `/swl:ejecutar-fase`
|
|
125
|
-
que delega a `implementador-swl` o agente de stack con skill cargado.
|
|
126
|
-
|
|
127
|
-
### Anti-patrón 2: commit sin revisión
|
|
128
|
-
|
|
129
|
-
❌ **MAL**: terminar implementación y hacer `git add . && git commit` sin
|
|
130
|
-
pasar por `revisor-codigo-swl` ni `revisor-seguridad-swl`.
|
|
131
|
-
|
|
132
|
-
✅ **BIEN**: `/swl:revisar` antes del commit. Score ≥ 9.0 obligatorio. Si
|
|
133
|
-
hay veto items, corregir antes de mergear.
|
|
134
|
-
|
|
135
|
-
### Anti-patrón 3: divergir del plan sin reconfirmar scope
|
|
136
|
-
|
|
137
|
-
❌ **MAL**: plan decía "CRUD completo", entregar read-only documentando en
|
|
138
|
-
commit "la edición se agrega en iteración posterior". Es deuda silenciosa
|
|
139
|
-
prohibida por `arreglar-al-detectar.md`.
|
|
140
|
-
|
|
141
|
-
✅ **BIEN**: si durante ejecución se detecta que el scope original es muy
|
|
142
|
-
grande, pausar, invocar `planificador-swl` para re-planificar, o crear DA
|
|
143
|
-
formal con trigger verificable. NUNCA diferir scope en commit silencioso.
|
|
144
|
-
|
|
145
|
-
### Anti-patrón 4: implementar con framework sin cargar el skill correspondiente
|
|
146
|
-
|
|
147
|
-
❌ **MAL**: escribir FastAPI con SQLAlchemy async sin cargar
|
|
148
|
-
`Skill("fastapi-experto")` — alta probabilidad de incurrir en MissingGreenlet
|
|
149
|
-
por lazy loading.
|
|
150
|
-
|
|
151
|
-
✅ **BIEN**: cargar el skill ANTES de la primera línea. El skill trae los
|
|
152
|
-
gotchas específicos que el modelo no recuerda solo.
|
|
153
|
-
|
|
154
|
-
### Anti-patrón 5: detectar funcionalidad duplicada y commitearla igual
|
|
155
|
-
|
|
156
|
-
❌ **MAL**: durante implementación detectar que `/catalogos` ya tiene lo
|
|
157
|
-
mismo que se está agregando en `/catalogos-contratacion` pero commitearlo
|
|
158
|
-
porque "el plan decía implementarlo aquí". Pérdida de DRY.
|
|
159
|
-
|
|
160
|
-
✅ **BIEN**: pausar, invocar `revisor-codigo-swl` o `Skill("swl-revisar-impacto")`,
|
|
161
|
-
reportar la duplicación al usuario, esperar decisión de scope.
|
|
162
|
-
|
|
163
|
-
### Anti-patrón 6: usar agente especializado como "etiqueta cosmética"
|
|
164
|
-
|
|
165
|
-
❌ **MAL**: decir "estoy invocando implementador-swl" pero seguir trabajando
|
|
166
|
-
con Read+Write+Edit personalmente sin lanzar el Agent tool.
|
|
167
|
-
|
|
168
|
-
✅ **BIEN**: invocación real con el tool Agent. El sub-agente recibe contexto
|
|
169
|
-
acotado, opera con sus permisos declarados y devuelve resultado.
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
## Checklist antes de empezar cualquier tarea
|
|
174
|
-
|
|
175
|
-
Antes de la primera tool call sustantiva:
|
|
176
|
-
|
|
177
|
-
- [ ] **PASO 0 — Consultar memoria previa** (`Skill("memoria-busqueda")`,
|
|
178
|
-
APRENDIZAJES.md, `.planning/adrs/`, vault Obsidian si aplica). El
|
|
179
|
-
proyecto tiene decisiones ya tomadas y patrones validados que se
|
|
180
|
-
repiten. Empezar sin consultar es reabrir decisiones cerradas.
|
|
181
|
-
- [ ] ¿La tarea cabe en alguna fila de la **matriz operacional**?
|
|
182
|
-
- [ ] Si sí: ¿identifiqué el agente, skill o comando SWL correspondiente?
|
|
183
|
-
- [ ] ¿Cargué el skill relevante con `Skill("nombre")` antes de implementar?
|
|
184
|
-
- [ ] Si la tarea es no trivial: ¿pasó por el flujo discutir → planear → ejecutar?
|
|
185
|
-
- [ ] Si voy a hacer trabajo directo: ¿estoy dentro de las **excepciones
|
|
186
|
-
legítimas**? Si no, esta regla me obliga a usar el componente SWL.
|
|
187
|
-
- [ ] Antes de commit: ¿pasé por revisor de código + seguridad?
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## Cómo recuperarse si ya empecé directo
|
|
192
|
-
|
|
193
|
-
Si avancé con trabajo directo y al revisar esta regla detecto que debí usar
|
|
194
|
-
un componente SWL:
|
|
195
|
-
|
|
196
|
-
1. **Trabajo trivial y reversible**: aceptar el atajo, registrar la
|
|
197
|
-
excepción mentalmente, terminar.
|
|
198
|
-
2. **Trabajo sustantivo pero sin commit**: invocar el componente SWL ahora
|
|
199
|
-
(revisor / verificar / planificador retrospectivo) antes del commit. Aún
|
|
200
|
-
se gana cobertura.
|
|
201
|
-
3. **Ya se commiteó**: ejecutar `/swl:verificar` post-hoc. Si encuentra
|
|
202
|
-
hallazgos, corregir en commit siguiente bajo `arreglar-al-detectar.md`.
|
|
203
|
-
4. **El patrón se repite en la sesión**: invocar `/swl:aprender` para
|
|
204
|
-
capturar el feedback explícitamente y reforzar el comportamiento futuro.
|
|
205
|
-
|
|
206
|
-
---
|
|
207
|
-
|
|
208
|
-
## Aplicabilidad
|
|
209
|
-
|
|
210
|
-
Aplica a:
|
|
211
|
-
|
|
212
|
-
- Claude Code (CLI, Desktop, IDE) operando dentro de proyectos con SWL
|
|
213
|
-
instalado.
|
|
214
|
-
- Sesiones de implementación, debugging, refactor, revisión, planning.
|
|
215
|
-
- Cualquier ciclo GSD (Goal-Seeking Development).
|
|
216
|
-
|
|
217
|
-
NO aplica a:
|
|
218
|
-
|
|
219
|
-
- Proyectos sin SWL instalado.
|
|
220
|
-
- Repos de terceros, exploración de código ajeno (`temp/`, dependencias
|
|
221
|
-
npm/pip).
|
|
222
|
-
- Tareas administrativas puras del sistema (instalar SWL, configurar Claude
|
|
223
|
-
Code).
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
## Relación con otras reglas
|
|
228
|
-
|
|
229
|
-
- `arreglar-al-detectar.md` — la deuda silenciosa de scope (anti-patrón 3
|
|
230
|
-
aquí) es exactamente lo que prohíbe esa regla.
|
|
231
|
-
- `debatir-antes-de-aceptar.md` — saltarse SWL sin justificación es decisión
|
|
232
|
-
que choca con regla documentada → exige debate, no ejecución silenciosa.
|
|
233
|
-
- `brevedad-output.md` — cubre idioma y eficiencia de tokens; esta regla
|
|
234
|
-
cubre flujo de trabajo.
|
|
235
|
-
- `skills-estandar.md` — cubre cómo escribir skills (autor); esta regla
|
|
236
|
-
cubre cómo usarlos (consumidor).
|
|
237
|
-
- `usar-context7.md` — regla hermana: consultar documentación de librerías
|
|
238
|
-
externas antes de implementar.
|
|
239
|
-
|
|
240
|
-
---
|
|
241
|
-
|
|
242
|
-
## Checklist de auto-verificación al final del turno
|
|
243
|
-
|
|
244
|
-
Al cerrar un turno con trabajo sustantivo:
|
|
245
|
-
|
|
246
|
-
- [ ] ¿Invoqué los agentes/skills/comandos SWL aplicables o estuve dentro
|
|
247
|
-
de las excepciones legítimas?
|
|
248
|
-
- [ ] Si hice trabajo directo: ¿la decisión está justificada por una
|
|
249
|
-
excepción concreta, no por inercia?
|
|
250
|
-
- [ ] Si detecto que omití un componente que debí usar: ¿lo invoco
|
|
251
|
-
retrospectivamente antes del commit final?
|
|
13
|
+
**Desarrollo**
|
|
14
|
+
- Feature nueva >50 LOC o multi-archivo → `/swl:discutir-fase` → `/swl:planear-fase` → `/swl:ejecutar-fase` u `orquestador-swl` (sin discovery el scope queda implícito y diverge).
|
|
15
|
+
- Implementación por stack (backend Python/Node/Java/Go/Rust/C#; frontend React/Angular/Vue/Svelte; mobile Android/iOS/RN/Flutter) → agente `backend-*` / `frontend-*` / `mobile-*-swl` + `Skill("<framework>-experto")` (los skills traen gotchas y patrones modernos que el modelo no actualiza solo).
|
|
16
|
+
- Bug con stack trace o reproducible → `depurador-swl` (método científico; saltar al fix sin hipótesis aislada falla con frecuencia).
|
|
17
|
+
- Refactor masivo o migración de schema → `migrador-swl` (plan de rollback + expand-contract, no improvisar).
|
|
18
|
+
|
|
19
|
+
**Calidad**
|
|
20
|
+
- Pre-merge a main → `/swl:revisar` o `revisor-codigo-swl` + `revisor-seguridad-swl`.
|
|
21
|
+
- Verificación post-fase → `/swl:verificar` con `Skill("verificar-trabajo")` (goal-backward 4 niveles).
|
|
22
|
+
- Auditoría de calidad → `Skill("checklist-calidad")` score ≥9.0; de seguridad → `Skill("checklist-seguridad")` (OWASP Top 10 + A11).
|
|
23
|
+
- Tests nuevos → `tdd-qa-swl` (ciclo RED→GREEN→REFACTOR).
|
|
24
|
+
- Funcionalidad duplicada → `Skill("swl-revisar-impacto")` o `revisor-codigo-swl` con veto DRY mayor.
|
|
25
|
+
|
|
26
|
+
**Proceso**
|
|
27
|
+
- Cierre de sesión productiva → `/swl:compactar` + `/swl:aprender`; aprendizaje recurrente → `/swl:aprender` → APRENDIZAJES.md → posible promoción a regla/skill.
|
|
28
|
+
- Release con bump → `/swl:release`; documentación viva post-feature → `documentador-swl`; diagnóstico del sistema → `/swl:status salud`.
|
|
29
|
+
|
|
30
|
+
**Búsqueda y contexto**
|
|
31
|
+
- Contexto de dominio previo → `Skill("memoria-busqueda")` sobre `.planning/sessions/` y APRENDIZAJES.md.
|
|
32
|
+
- Investigación tecnológica → `investigador-swl` (WebSearch/WebFetch + `Skill("agent-browser")`); dependencia externa → Context7 (`usar-context7.md`).
|
|
33
|
+
- Decisiones repetibles del proyecto → revisar `.planning/adrs/`, APRENDIZAJES.md, `instintos/proyecto.yaml` ANTES de proponer solución.
|
|
34
|
+
|
|
35
|
+
## Excepciones legítimas (las únicas)
|
|
36
|
+
|
|
37
|
+
1. Tarea trivial de 1-2 archivos (rename, typo, comentario, formato) — el overhead de invocar agente supera el valor.
|
|
38
|
+
2. Pregunta de lectura pura ("¿qué hace este archivo?", "¿dónde se define X?") — Read/Grep directos.
|
|
39
|
+
3. Comando de shell puro (`git status`, `npm install`, `gh pr list`).
|
|
40
|
+
4. Sesión exploratoria explícita ("explora", "echa un vistazo", "investiga sin tocar nada").
|
|
41
|
+
5. Override explícito del usuario ("no uses agentes, hazlo directo") — respetar; registrar la excepción si impacta el flujo posterior.
|
|
42
|
+
6. Fix urgente de producción con incidente activo — fix mínimo; el agente puede esperar al post-mortem.
|
|
43
|
+
7. Proyecto sin SWL instalado (sin `plugin.json` ni `agentes/`) — la regla no aplica.
|
|
44
|
+
|
|
45
|
+
## Anti-patrones (prohibidos)
|
|
46
|
+
|
|
47
|
+
- Implementar feature compleja con Read+Write directo sin pasar por discutir → planear → ejecutar.
|
|
48
|
+
- Commit sin revisor de código + seguridad (score ≥9.0 obligatorio; veto items corregidos antes de mergear).
|
|
49
|
+
- Divergir del plan sin re-planificar ni DA formal con trigger verificable — deuda silenciosa (`arreglar-al-detectar.md`).
|
|
50
|
+
- Implementar con framework sin cargar su skill ANTES de la primera línea.
|
|
51
|
+
- Detectar funcionalidad duplicada y commitearla igual "porque el plan decía implementarlo aquí".
|
|
52
|
+
- "Etiqueta cosmética": decir que invocas un agente sin lanzar el Agent tool real — la invocación debe ser efectiva, con contexto acotado y permisos declarados.
|
|
53
|
+
|
|
54
|
+
Si ya empezaste directo: invocar el componente retrospectivamente antes del commit (revisor / verificar / planificador); si ya se commiteó, `/swl:verificar` post-hoc y corregir hallazgos en el commit siguiente.
|
|
55
|
+
|
|
56
|
+
Detalle extendido (por qué existe, matriz con justificaciones, anti-patrones MAL/BIEN, recuperación completa, checklists, aplicabilidad, relación con otras reglas): `Skill("meta-reglas-extendido")` → `recursos/usar-sistema-swl.md`.
|