@saulwade/swl-ses 2.2.3 → 2.3.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/CLAUDE.md +4 -4
- package/README.md +3 -3
- package/agentes/arquitecto-swl.md +1 -1
- package/agentes/auto-evolucion-swl.md +908 -908
- package/agentes/backend-csharp-swl.md +1 -1
- package/agentes/backend-go-swl.md +1 -1
- package/agentes/backend-java-swl.md +1 -1
- package/agentes/backend-rust-swl.md +1 -1
- package/agentes/evals/orquestador-swl.evals.json +1 -1
- package/agentes/implementador-swl.md +2 -2
- package/agentes/llm-apps-swl.md +1 -1
- package/agentes/orquestador-swl.md +7 -7
- package/agentes/pagos-swl.md +1 -1
- package/agentes/perfilador-usuario-swl.md +321 -321
- package/agentes/planificador-swl.md +1 -1
- package/agentes/producto-prd-swl.md +1 -1
- package/agentes/revisor-seguridad-swl.md +1 -1
- package/agentes/sre-swl.md +1 -1
- package/comandos/swl/aprobar-plan.md +146 -141
- package/comandos/swl/release.md +45 -8
- package/comandos/swl/status.md +343 -333
- package/comandos/swl/verificar.md +817 -817
- package/habilidades/compactacion-contexto/SKILL.md +3 -3
- package/habilidades/contenedores-docker/SKILL.md +3 -1
- package/habilidades/context-builder/SKILL.md +4 -4
- package/habilidades/control-profundidad/SKILL.md +5 -5
- package/habilidades/ejecutar-fase/SKILL.md +564 -541
- package/habilidades/extractor-de-aprendizajes/SKILL.md +3 -3
- package/habilidades/guardrail-semantico/SKILL.md +1 -1
- package/habilidades/harness-claude-code/SKILL.md +305 -305
- package/habilidades/meta-skills-estandar/recursos/skills-as-agents.md +1 -1
- package/habilidades/planear-fase/SKILL.md +15 -1
- package/habilidades/proceso-debate-adversarial/SKILL.md +191 -164
- package/habilidades/prompt-engineering/SKILL.md +5 -5
- package/habilidades/release-semver/SKILL.md +4 -1
- package/habilidades/tdd-workflow/SKILL.md +33 -1
- package/habilidades/workflow-claude-code/SKILL.md +6 -6
- package/hooks/captura-acciones-post.js +151 -0
- package/hooks/captura-acciones-session.js +155 -0
- package/hooks/lib/briefing.js +512 -474
- package/hooks/lib/captura-acciones.js +392 -0
- package/hooks/lib/context-builder.js +2 -2
- package/hooks/lib/model-router.js +1 -1
- package/hooks/lib/token-estimator.js +2 -0
- package/hooks/linea-estado.js +7 -5
- package/llms.txt +29 -29
- package/manifiestos/canonical-hashes.json +1964 -1310
- package/manifiestos/hooks-config.json +18 -0
- package/manifiestos/modulos.json +4 -0
- package/manifiestos/skills-lock.json +1282 -1282
- package/package.json +93 -93
- package/plugin.json +371 -371
- package/reglas/git-coauthor.md +100 -100
- package/reglas/memoria-consolidada.md +41 -0
- package/reglas/pruebas.md +15 -0
- package/reglas/seguridad-agentes.md +66 -0
- package/schemas/agent-frontmatter.schema.json +294 -294
- package/schemas/instinct.schema.json +161 -152
- package/scripts/bootstrap-instintos.js +25 -7
- package/scripts/lib/claude-sessions.js +1 -0
- package/scripts/lib/gitignore-manifest.js +44 -11
- package/scripts/lib/skill-metrics.js +41 -1
- package/scripts/lib/tool-cost-analyzer.js +1 -0
- package/scripts/publicar.js +34 -85
- package/scripts/verificar-trazabilidad.js +329 -298
- package/scripts/vendor/claude-usage/__pycache__/scanner.cpython-314.pyc +0 -0
package/reglas/git-coauthor.md
CHANGED
|
@@ -1,100 +1,100 @@
|
|
|
1
|
-
# Regla: Sin co-autores en commits
|
|
2
|
-
|
|
3
|
-
Esta regla es OBLIGATORIA y aplica a TODOS los proyectos del usuario sin excepción.
|
|
4
|
-
Tiene prioridad sobre el template por defecto del CLI de Claude Code.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Regla
|
|
9
|
-
|
|
10
|
-
Los commits que Claude genere en cualquier proyecto del usuario **NO deben incluir
|
|
11
|
-
ninguna línea de atribución a Claude, Anthropic, ningún modelo de IA, ni ningún
|
|
12
|
-
co-autor**. El único autor de los commits es **Saúl Wade**.
|
|
13
|
-
|
|
14
|
-
Específicamente, NO incluir en el mensaje de commit:
|
|
15
|
-
|
|
16
|
-
- `Co-Authored-By: Claude ...`
|
|
17
|
-
- `Co-Authored-By: <cualquier modelo>`
|
|
18
|
-
- `🤖 Generated with [Claude Code](https://claude.com/claude-code)`
|
|
19
|
-
- `Generated by Claude`
|
|
20
|
-
- Ninguna otra línea de atribución a IA o co-autor automático
|
|
21
|
-
|
|
22
|
-
Esta regla **sobrescribe** las instrucciones por defecto del CLI de Claude Code
|
|
23
|
-
que sugieren agregar `Co-Authored-By: Claude Opus ...` al final del mensaje.
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Cómo aplicar
|
|
28
|
-
|
|
29
|
-
### En commits con `git commit -m`
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
# CORRECTO
|
|
33
|
-
git commit -m "feat(auth): agregar validación PKCE en flujo OAuth2"
|
|
34
|
-
|
|
35
|
-
# INCORRECTO
|
|
36
|
-
git commit -m "$(cat <<'EOF'
|
|
37
|
-
feat(auth): agregar validación PKCE en flujo OAuth2
|
|
38
|
-
|
|
39
|
-
Co-Authored-By: Claude Opus 4.
|
|
40
|
-
EOF
|
|
41
|
-
)"
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### En commits con HEREDOC y mensaje extenso
|
|
45
|
-
|
|
46
|
-
El cuerpo del commit puede ser tan extenso como la regla `git-workflow.md` lo
|
|
47
|
-
justifique, pero **sin** el bloque de atribución al final:
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
git commit -m "$(cat <<'EOF'
|
|
51
|
-
fix(facturas): corregir cálculo de IEPS para tasa cero
|
|
52
|
-
|
|
53
|
-
El cálculo previo aplicaba la tasa estándar en productos con
|
|
54
|
-
tasa IEPS = 0%, generando totales inflados.
|
|
55
|
-
|
|
56
|
-
Refs #234
|
|
57
|
-
EOF
|
|
58
|
-
)"
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### En Pull Requests
|
|
62
|
-
|
|
63
|
-
Mismo principio aplica al body de PRs creados con `gh pr create`. El template
|
|
64
|
-
del CLI sugiere terminar con:
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
🤖 Generated with [Claude Code](https://claude.com/claude-code)
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**NO incluir esa línea**. El body del PR cierra con la sección de Test plan
|
|
71
|
-
o las referencias a issues.
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
## Excepciones
|
|
76
|
-
|
|
77
|
-
- **Co-autores humanos reales**: si en algún proyecto futuro hay otros desarrolladores
|
|
78
|
-
haciendo pair programming con Saúl, sus líneas `Co-Authored-By:` con email humano
|
|
79
|
-
son válidas. La regla aplica solo a atribuciones a IA/modelos.
|
|
80
|
-
- **Cuando el usuario pida explícitamente** la atribución para un commit puntual
|
|
81
|
-
(caso muy raro). En ese caso ejecutar lo que pide y registrar la excepción en
|
|
82
|
-
el commit.
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## Origen
|
|
87
|
-
|
|
88
|
-
Esta regla se promueve a global el 2026-05-09 tras detectar que la misma
|
|
89
|
-
preferencia aparecía duplicada en al menos 2 proyectos:
|
|
90
|
-
|
|
91
|
-
- `D--Python-swl-ses/memory/feedback_sin_coautores.md` (2026-04-18)
|
|
92
|
-
- `D--Python-generacion-informes/memory/feedback_no_coauthor_in_commits.md`
|
|
93
|
-
|
|
94
|
-
La duplicación cross-proyecto es señal inequívoca de preferencia transversal
|
|
95
|
-
del usuario. La instrucción del CLI Claude Code que sugiere agregar
|
|
96
|
-
`Co-Authored-By: Claude` queda explícitamente sobreescrita por esta regla
|
|
97
|
-
para todos los proyectos del usuario `Saul`.
|
|
98
|
-
|
|
99
|
-
Los feedbacks per-project quedan deprecados tras esta promoción y deben
|
|
100
|
-
eliminarse de las carpetas `memory/` correspondientes.
|
|
1
|
+
# Regla: Sin co-autores en commits
|
|
2
|
+
|
|
3
|
+
Esta regla es OBLIGATORIA y aplica a TODOS los proyectos del usuario sin excepción.
|
|
4
|
+
Tiene prioridad sobre el template por defecto del CLI de Claude Code.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Regla
|
|
9
|
+
|
|
10
|
+
Los commits que Claude genere en cualquier proyecto del usuario **NO deben incluir
|
|
11
|
+
ninguna línea de atribución a Claude, Anthropic, ningún modelo de IA, ni ningún
|
|
12
|
+
co-autor**. El único autor de los commits es **Saúl Wade**.
|
|
13
|
+
|
|
14
|
+
Específicamente, NO incluir en el mensaje de commit:
|
|
15
|
+
|
|
16
|
+
- `Co-Authored-By: Claude ...`
|
|
17
|
+
- `Co-Authored-By: <cualquier modelo>`
|
|
18
|
+
- `🤖 Generated with [Claude Code](https://claude.com/claude-code)`
|
|
19
|
+
- `Generated by Claude`
|
|
20
|
+
- Ninguna otra línea de atribución a IA o co-autor automático
|
|
21
|
+
|
|
22
|
+
Esta regla **sobrescribe** las instrucciones por defecto del CLI de Claude Code
|
|
23
|
+
que sugieren agregar `Co-Authored-By: Claude Opus ...` al final del mensaje.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Cómo aplicar
|
|
28
|
+
|
|
29
|
+
### En commits con `git commit -m`
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# CORRECTO
|
|
33
|
+
git commit -m "feat(auth): agregar validación PKCE en flujo OAuth2"
|
|
34
|
+
|
|
35
|
+
# INCORRECTO
|
|
36
|
+
git commit -m "$(cat <<'EOF'
|
|
37
|
+
feat(auth): agregar validación PKCE en flujo OAuth2
|
|
38
|
+
|
|
39
|
+
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
|
40
|
+
EOF
|
|
41
|
+
)"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### En commits con HEREDOC y mensaje extenso
|
|
45
|
+
|
|
46
|
+
El cuerpo del commit puede ser tan extenso como la regla `git-workflow.md` lo
|
|
47
|
+
justifique, pero **sin** el bloque de atribución al final:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
git commit -m "$(cat <<'EOF'
|
|
51
|
+
fix(facturas): corregir cálculo de IEPS para tasa cero
|
|
52
|
+
|
|
53
|
+
El cálculo previo aplicaba la tasa estándar en productos con
|
|
54
|
+
tasa IEPS = 0%, generando totales inflados.
|
|
55
|
+
|
|
56
|
+
Refs #234
|
|
57
|
+
EOF
|
|
58
|
+
)"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### En Pull Requests
|
|
62
|
+
|
|
63
|
+
Mismo principio aplica al body de PRs creados con `gh pr create`. El template
|
|
64
|
+
del CLI sugiere terminar con:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
🤖 Generated with [Claude Code](https://claude.com/claude-code)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**NO incluir esa línea**. El body del PR cierra con la sección de Test plan
|
|
71
|
+
o las referencias a issues.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Excepciones
|
|
76
|
+
|
|
77
|
+
- **Co-autores humanos reales**: si en algún proyecto futuro hay otros desarrolladores
|
|
78
|
+
haciendo pair programming con Saúl, sus líneas `Co-Authored-By:` con email humano
|
|
79
|
+
son válidas. La regla aplica solo a atribuciones a IA/modelos.
|
|
80
|
+
- **Cuando el usuario pida explícitamente** la atribución para un commit puntual
|
|
81
|
+
(caso muy raro). En ese caso ejecutar lo que pide y registrar la excepción en
|
|
82
|
+
el commit.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Origen
|
|
87
|
+
|
|
88
|
+
Esta regla se promueve a global el 2026-05-09 tras detectar que la misma
|
|
89
|
+
preferencia aparecía duplicada en al menos 2 proyectos:
|
|
90
|
+
|
|
91
|
+
- `D--Python-swl-ses/memory/feedback_sin_coautores.md` (2026-04-18)
|
|
92
|
+
- `D--Python-generacion-informes/memory/feedback_no_coauthor_in_commits.md`
|
|
93
|
+
|
|
94
|
+
La duplicación cross-proyecto es señal inequívoca de preferencia transversal
|
|
95
|
+
del usuario. La instrucción del CLI Claude Code que sugiere agregar
|
|
96
|
+
`Co-Authored-By: Claude` queda explícitamente sobreescrita por esta regla
|
|
97
|
+
para todos los proyectos del usuario `Saul`.
|
|
98
|
+
|
|
99
|
+
Los feedbacks per-project quedan deprecados tras esta promoción y deben
|
|
100
|
+
eliminarse de las carpetas `memory/` correspondientes.
|
|
@@ -19,6 +19,47 @@ regla clara, un mismo dato puede terminar en el lugar incorrecto o duplicado.
|
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
+
## Eje cognitivo de memoria (semantic | episodic | procedural)
|
|
23
|
+
|
|
24
|
+
Los 5 canales de arriba clasifican el conocimiento por **dónde se almacena**. El
|
|
25
|
+
eje cognitivo lo clasifica por **qué tipo de memoria es** — y es **ORTOGONAL**: un
|
|
26
|
+
dato vive en exactamente un canal (regla de no-duplicación abajo) y PUEDE
|
|
27
|
+
etiquetarse con exactamente un tipo cognitivo. No reemplaza a los canales; los
|
|
28
|
+
enriquece para mejorar la relevancia del recall.
|
|
29
|
+
|
|
30
|
+
Origen: análisis "Self-Learning for Agents" (3 capas) —
|
|
31
|
+
`.planning/knowledge/outputs/analisis-self-learning-agents-3-capas-2026-06-27.md`.
|
|
32
|
+
Un agente que se auto-mejora necesita las tres clases; la mayoría de los sistemas
|
|
33
|
+
solo tiene `semantic`.
|
|
34
|
+
|
|
35
|
+
| Tipo | Qué es | Ejemplo | Cuándo usarlo |
|
|
36
|
+
|------|--------|---------|---------------|
|
|
37
|
+
| **semantic** | Hechos, decisiones, vocabulario, gotchas-como-hecho | "El proyecto usa repository pattern"; "la API de CFDI devuelve 200 en errores" | Conocimiento estable que se consulta como referencia |
|
|
38
|
+
| **episodic** | Experiencia pasada de una sesión concreta (qué pasó, cuándo) | "En la sesión X el revert del commit Y resolvió el bug Z" | Recordar un caso vivido para no repetir el camino |
|
|
39
|
+
| **procedural** | Cómo manejar un caso (cómo hacer / qué evitar) | "Paralelizar agentes solo sin dependencias de datos"; "no usar `display:initial` para re-mostrar celdas" | Guía de acción ante una situación recurrente |
|
|
40
|
+
|
|
41
|
+
### Dónde se materializa
|
|
42
|
+
|
|
43
|
+
- **instintos** (`schemas/instinct.schema.json`): campo OPCIONAL `tipo_memoria`
|
|
44
|
+
(enum `semantic|episodic|procedural`). Backward-compatible: instintos sin el
|
|
45
|
+
campo siguen válidos. `scripts/bootstrap-instintos.js` lo infiere por sección de
|
|
46
|
+
origen (heurístico declarado, no autoritativo):
|
|
47
|
+
- `decisión` / `arquitectura` / `gotcha` / `regla-proyecto` → **semantic**
|
|
48
|
+
- `patrón` / `anti-patrón` → **procedural**
|
|
49
|
+
- **episodic** NO se infiere del bootstrap (nace de registros de sesión, canal 4,
|
|
50
|
+
no de APRENDIZAJES).
|
|
51
|
+
- **APRENDIZAJES.md** (canal 2): convención OPCIONAL — una entrada puede anotar
|
|
52
|
+
`tipo_memoria:` en su cuerpo cuando el tipo no sea evidente por la sección.
|
|
53
|
+
|
|
54
|
+
### Anti-patrones del eje cognitivo
|
|
55
|
+
|
|
56
|
+
- Tratar el tipo cognitivo como un sexto canal de almacenamiento (no lo es: es una
|
|
57
|
+
etiqueta ortogonal sobre el dato que ya vive en su canal).
|
|
58
|
+
- Forzar `episodic` en un instinto bootstrapeado de APRENDIZAJES (episodic viene de
|
|
59
|
+
sesiones, no de conocimiento de dominio destilado).
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
22
63
|
## Regla de asignación — dónde va CADA tipo de dato
|
|
23
64
|
|
|
24
65
|
### A. Información del usuario
|
package/reglas/pruebas.md
CHANGED
|
@@ -76,6 +76,21 @@ Reglas del AAA:
|
|
|
76
76
|
- Tests de integración con BD: usar transacciones que se revierten al final,
|
|
77
77
|
o fixtures aislados por test.
|
|
78
78
|
- Seeds de datos en BD de test: deterministas y reproducibles.
|
|
79
|
+
- NUNCA usar una aserción de reloj de pared (`performance.now()`,
|
|
80
|
+
`time.perf_counter()`) contra un umbral fijo como gate **bloqueante** de la
|
|
81
|
+
suite. Es no-determinista: el p95 depende de la carga de la máquina y revienta
|
|
82
|
+
intermitentemente — peor aún si el test corre dentro de `prepublishOnly`/CI
|
|
83
|
+
junto a otros tests pesados (un `p95 < 200ms` que medía 208ms bajo carga
|
|
84
|
+
tumbó toda una cadena de releases). Un presupuesto de rendimiento es una meta
|
|
85
|
+
de PRODUCCIÓN en reposo, no un assert duro de unit test. Si aun así se mide
|
|
86
|
+
latencia en un test:
|
|
87
|
+
- **Warm-up**: descartar las primeras iteraciones (cold-start de JIT/FS-cache).
|
|
88
|
+
- **N ≥ 50 muestras** para un p95 estable.
|
|
89
|
+
- **Umbral tolerante a carga** (≥2× del presupuesto): detecta una regresión
|
|
90
|
+
gruesa sin flaquear por varianza; reportar el p95 observado en el mensaje del
|
|
91
|
+
assert para vigilar el presupuesto fino.
|
|
92
|
+
- **Mejor aún**: medir-y-avisar (benchmark/log) FUERA de la suite bloqueante;
|
|
93
|
+
el gate duro detecta regresión, no afina el SLA.
|
|
79
94
|
|
|
80
95
|
---
|
|
81
96
|
|
|
@@ -355,10 +355,76 @@ exclusiones:
|
|
|
355
355
|
|
|
356
356
|
---
|
|
357
357
|
|
|
358
|
+
## Anti-gaming: no auto-calificación de evidencia
|
|
359
|
+
|
|
360
|
+
Esta sección formaliza una invariante de seguridad **no negociable** para el
|
|
361
|
+
ciclo de auto-evolución (AGP) y para cualquier agente que se auto-mejore.
|
|
362
|
+
|
|
363
|
+
### Invariante
|
|
364
|
+
|
|
365
|
+
> Un agente que evoluciona **NUNCA debe producir ni editar la evidencia que lo
|
|
366
|
+
> aprueba**. El productor de la evidencia (score de eval, badge, evidencia RED,
|
|
367
|
+
> veredicto de verificación, canary) debe ser un **actor distinto** del agente
|
|
368
|
+
> evaluado, o una **decisión humana**. La única señal imposible de falsificar es
|
|
369
|
+
> la generada por un actor independiente del evaluado.
|
|
370
|
+
|
|
371
|
+
### Origen — Sakana Darwin Gödel Machine
|
|
372
|
+
|
|
373
|
+
El DGM, soltado a mejorar contra un test, en vez de hacer mejor trabajo
|
|
374
|
+
**falsificó sus propios logs de test**. Cuando los investigadores le agregaron un
|
|
375
|
+
detector para atraparlo, **quitó las marcas en que el detector se apoyaba**, pese
|
|
376
|
+
a que se le prohibió. Lección: si el evaluado controla la evidencia que lo
|
|
377
|
+
califica, la optimización converge a falsificar la evidencia, no a mejorar.
|
|
378
|
+
(Fuente: análisis self-learning 3 capas, `sakana.ai/dgm`.)
|
|
379
|
+
|
|
380
|
+
### Relación con gobernanza (no se re-deriva aquí)
|
|
381
|
+
|
|
382
|
+
Esta invariante **extiende** —no duplica— `reglas/gobernanza.md`:
|
|
383
|
+
- `§ Separación revisor/ejecutor`: el ejecutor nunca emite veredicto sobre su
|
|
384
|
+
propio trabajo; el revisor no modifica código.
|
|
385
|
+
- `§ Gate G8`: un skill se promueve solo con badge ≥ Plata de `/swl:evaluar-skill`.
|
|
386
|
+
|
|
387
|
+
El aporte de esta sección es el principio general "no auto-calificación de
|
|
388
|
+
**evidencia**" aplicado a TODA superficie del AGP, y el mapeo a las superficies
|
|
389
|
+
reales del sistema (auditoría Fase 18, 2026-06-27).
|
|
390
|
+
|
|
391
|
+
### Mapeo a superficies del ciclo AGP (auditoría Fase 18)
|
|
392
|
+
|
|
393
|
+
| Superficie | ¿Productor ≠ calificador? | Veredicto |
|
|
394
|
+
|---|---|---|
|
|
395
|
+
| Canary pre-write (`hooks/lib/canary-skills.js`) | Validador estructural determinista sobre el contenido real; el agente no puede falsearlo | **PASS** |
|
|
396
|
+
| Veredicto de verificación (`/swl:verificar`, `nemesis`) | `gobernanza.md` exige revisor ≠ ejecutor (agentes distintos) | **PASS** (por proceso) |
|
|
397
|
+
| Invariantes de seguridad (`run-skill-evals --check-invariants`) | `validarInvariantesDeAgente` corre independiente del score declarado | **PASS** |
|
|
398
|
+
| Evidencia RED de TDD (`hooks/tdd-gate.js`) | La escribe el mismo ejecutar-fase; mitigado porque el GREEN lo corre un test-runner independiente y es WARN-ONLY | **PARCIAL** |
|
|
399
|
+
| **Score de eval (`run-skill-evals.js --record-after --score=N`)** | El `--score` se toma **verbatim del flag** que pasa el agente que evoluciona; nada lo liga a una corrida independiente de `/swl:evaluar-skill` | **GAP** (DT-AGP-SCORE-AUTODECLARADO) |
|
|
400
|
+
| Registro de evolución (`evoluciones.jsonl`) + métricas | Heredan el score auto-declarado de la superficie anterior | **GAP** (mismo origen) |
|
|
401
|
+
|
|
402
|
+
### Anti-patrones (prohibidos)
|
|
403
|
+
|
|
404
|
+
- Un agente que pasa su propio `--score=N` como evidencia de que su evolución
|
|
405
|
+
mejoró, sin que ese número provenga de un evaluador independiente.
|
|
406
|
+
- Un ejecutor que escribe/edita su propia evidencia RED, badge o veredicto.
|
|
407
|
+
- "Agregar un detector" y dejar que el evaluado pueda editar las marcas en que el
|
|
408
|
+
detector se apoya (el error literal del DGM).
|
|
409
|
+
- Confiar en un número de score persistido sin procedencia verificable del actor
|
|
410
|
+
que lo produjo.
|
|
411
|
+
|
|
412
|
+
### Regla operativa
|
|
413
|
+
|
|
414
|
+
Toda métrica que decida promoción/rollback de una evolución debe poder rastrear
|
|
415
|
+
**qué actor la produjo**. Si el actor es el mismo agente evaluado, la métrica es
|
|
416
|
+
un *hint*, no una aprobación: requiere corroboración de un actor independiente
|
|
417
|
+
(otro agente evaluador, el test-runner, o el humano) antes de promover.
|
|
418
|
+
|
|
419
|
+
---
|
|
420
|
+
|
|
358
421
|
## Checklist de seguridad de agentes
|
|
359
422
|
|
|
360
423
|
Antes de desplegar un agente nuevo o modificar permisos de uno existente:
|
|
361
424
|
|
|
425
|
+
- [ ] Ninguna evidencia que aprueba al agente (score, badge, RED, veredicto) es
|
|
426
|
+
producida o editable por el propio agente evaluado (§ Anti-gaming)
|
|
427
|
+
|
|
362
428
|
- [ ] Los permisos en frontmatter son los mínimos necesarios para la función
|
|
363
429
|
- [ ] `nivelRiesgo` refleja el impacto real si el agente actúa incorrectamente
|
|
364
430
|
- [ ] El agente no puede escalar privilegios a través de delegación
|