@saulwade/swl-ses 1.6.0 → 1.6.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.
Files changed (82) hide show
  1. package/CLAUDE.md +32 -61
  2. package/README.md +4 -4
  3. package/agentes/_intent-spec.md +73 -0
  4. package/agentes/auto-evolucion-swl.md +24 -0
  5. package/agentes/cloud-infra-swl.md +25 -0
  6. package/agentes/datos-swl.md +24 -1
  7. package/agentes/devops-ci-swl.md +24 -0
  8. package/agentes/frontend-angular-swl.md +7 -7
  9. package/agentes/frontend-css-swl.md +4 -4
  10. package/agentes/frontend-react-swl.md +7 -7
  11. package/agentes/frontend-swl.md +9 -9
  12. package/agentes/frontend-tailwind-swl.md +4 -4
  13. package/agentes/migrador-swl.md +22 -0
  14. package/agentes/pagos-swl.md +25 -0
  15. package/agentes/release-manager-swl.md +24 -0
  16. package/agentes/rendimiento-swl.md +2 -2
  17. package/agentes/sre-swl.md +24 -0
  18. package/comandos/swl/brainstorm.md +1 -0
  19. package/comandos/swl/compactar.md +1 -1
  20. package/comandos/swl/discutir-fase.md +15 -1
  21. package/comandos/swl/mapear-codebase.md +1 -1
  22. package/comandos/swl/nemesis.md +29 -0
  23. package/comandos/swl/planear-fase.md +18 -2
  24. package/comandos/swl/verificar.md +4 -4
  25. package/habilidades/aprender-de-git-diff/SKILL.md +288 -0
  26. package/habilidades/aprendizaje-continuo/SKILL.md +7 -1
  27. package/habilidades/diseno-herramientas-agente/SKILL.md +17 -0
  28. package/habilidades/doc-sync/SKILL.md +441 -1
  29. package/habilidades/doubt-driven-review/SKILL.md +177 -171
  30. package/habilidades/feynman-auditor-swl/SKILL.md +129 -123
  31. package/habilidades/infra-github-actions/SKILL.md +172 -166
  32. package/habilidades/meta-skills-estandar/SKILL.md +6 -0
  33. package/habilidades/meta-skills-estandar/recursos/skill-judge-rubrica.md +281 -0
  34. package/habilidades/meta-skills-estandar/recursos/skills-as-agents.md +163 -163
  35. package/habilidades/nemesis-evaluacion-json/SKILL.md +5 -0
  36. package/habilidades/nemesis-redistribuir/SKILL.md +5 -0
  37. package/habilidades/node-experto/SKILL.md +197 -3
  38. package/habilidades/prevencion-racionalizacion/SKILL.md +1 -0
  39. package/habilidades/privacy-memoria/SKILL.md +1 -0
  40. package/habilidades/proceso-autoverificacion-evidencias/SKILL.md +258 -0
  41. package/habilidades/proceso-confianza-pre-implementacion/SKILL.md +246 -0
  42. package/habilidades/proceso-ddia-fundamentos/SKILL.md +255 -0
  43. package/habilidades/proceso-ddia-streaming/SKILL.md +231 -0
  44. package/habilidades/proceso-intent-engineering/SKILL.md +269 -0
  45. package/habilidades/reducir-entropia/SKILL.md +219 -0
  46. package/habilidades/sre-patrones/SKILL.md +1 -1
  47. package/habilidades/state-inconsistency-auditor-swl/SKILL.md +172 -166
  48. package/habilidades/tdd-workflow/SKILL.md +178 -3
  49. package/habilidades/verificacion-evidencia/SKILL.md +1 -0
  50. package/habilidades/web-fetcher-routing/SKILL.md +81 -75
  51. package/habilidades/workflow-claude-code/SKILL.md +2 -2
  52. package/hooks/lib/task-budget.js +218 -0
  53. package/hooks/validar-intent-spec.js +222 -0
  54. package/manifiestos/hooks-config.json +9 -0
  55. package/manifiestos/modulos.json +12 -2
  56. package/manifiestos/skills-lock.json +1191 -1142
  57. package/package.json +5 -3
  58. package/plugin.json +9 -2
  59. package/reglas/auditorias-documentales-estructurales.md +205 -0
  60. package/reglas/fragmentos-compartidos.md +26 -0
  61. package/reglas/intent-engineering.md +214 -0
  62. package/reglas/registro-componentes-nuevos.md +38 -0
  63. package/schemas/agent-frontmatter.schema.json +294 -167
  64. package/schemas/agent-message.schema.json +73 -53
  65. package/schemas/agent-output-implementacion.schema.json +114 -85
  66. package/schemas/agent-output-planificacion.schema.json +150 -113
  67. package/schemas/agent-output-review.schema.json +98 -78
  68. package/schemas/diary-entry.schema.json +42 -10
  69. package/schemas/hook-profiles.schema.json +54 -39
  70. package/schemas/hooks-config.schema.json +89 -74
  71. package/schemas/instinct.schema.json +152 -115
  72. package/schemas/modulos.schema.json +38 -29
  73. package/schemas/perfiles.schema.json +36 -28
  74. package/schemas/plugin.schema.json +77 -64
  75. package/schemas/skill-evals.schema.json +119 -95
  76. package/schemas/skill-frontmatter.schema.json +245 -170
  77. package/scripts/generar-inventario.js +452 -420
  78. package/scripts/lib/schema-version.js +164 -0
  79. package/scripts/validar-manifest.js +1 -1
  80. package/scripts/validar.js +3 -2
  81. package/scripts/verificar-docs-vs-codigo.js +654 -425
  82. package/scripts/verificar-evolucion.js +19 -3
@@ -1,10 +1,16 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://swl-ses.dev/schemas/diary-entry.json",
4
+ "$schemaVersion": "1.0.0",
4
5
  "title": "SWL Diary Entry",
5
6
  "description": "Diario estructurado por sesion. Captura logros, decisiones, challenges y aprendizajes clave en formato consumible por /swl:aprender.",
6
7
  "type": "object",
7
- "required": ["id", "sessionId", "date", "createdAt"],
8
+ "required": [
9
+ "id",
10
+ "sessionId",
11
+ "date",
12
+ "createdAt"
13
+ ],
8
14
  "properties": {
9
15
  "id": {
10
16
  "type": "string",
@@ -17,7 +23,10 @@
17
23
  "description": "ID de la sesion de Claude Code que origina el diario"
18
24
  },
19
25
  "agent": {
20
- "type": ["string", "null"],
26
+ "type": [
27
+ "string",
28
+ "null"
29
+ ],
21
30
  "description": "Agente principal de la sesion (si aplica)"
22
31
  },
23
32
  "date": {
@@ -26,49 +35,72 @@
26
35
  "description": "Fecha de la sesion en formato YYYY-MM-DD"
27
36
  },
28
37
  "startTime": {
29
- "type": ["string", "null"],
38
+ "type": [
39
+ "string",
40
+ "null"
41
+ ],
30
42
  "format": "date-time",
31
43
  "description": "Inicio de la sesion en ISO 8601"
32
44
  },
33
45
  "endTime": {
34
- "type": ["string", "null"],
46
+ "type": [
47
+ "string",
48
+ "null"
49
+ ],
35
50
  "format": "date-time",
36
51
  "description": "Fin de la sesion en ISO 8601 (null si esta abierta)"
37
52
  },
38
53
  "accomplishments": {
39
54
  "type": "array",
40
55
  "maxItems": 20,
41
- "items": { "type": "string", "maxLength": 500 },
56
+ "items": {
57
+ "type": "string",
58
+ "maxLength": 500
59
+ },
42
60
  "description": "Logros concretos de la sesion"
43
61
  },
44
62
  "decisions": {
45
63
  "type": "array",
46
64
  "maxItems": 20,
47
- "items": { "type": "string", "maxLength": 500 },
65
+ "items": {
66
+ "type": "string",
67
+ "maxLength": 500
68
+ },
48
69
  "description": "Decisiones tomadas con su justificacion breve"
49
70
  },
50
71
  "challenges": {
51
72
  "type": "array",
52
73
  "maxItems": 20,
53
- "items": { "type": "string", "maxLength": 500 },
74
+ "items": {
75
+ "type": "string",
76
+ "maxLength": 500
77
+ },
54
78
  "description": "Bloqueos o problemas encontrados"
55
79
  },
56
80
  "keyLearnings": {
57
81
  "type": "array",
58
82
  "maxItems": 20,
59
- "items": { "type": "string", "maxLength": 500 },
83
+ "items": {
84
+ "type": "string",
85
+ "maxLength": 500
86
+ },
60
87
  "description": "Aprendizajes clave que alimentan APRENDIZAJES.md o instintos"
61
88
  },
62
89
  "tags": {
63
90
  "type": "array",
64
91
  "maxItems": 20,
65
- "items": { "type": "string", "maxLength": 500 },
92
+ "items": {
93
+ "type": "string",
94
+ "maxLength": 500
95
+ },
66
96
  "description": "Etiquetas para clasificacion y busqueda"
67
97
  },
68
98
  "sourceAgents": {
69
99
  "type": "array",
70
100
  "uniqueItems": true,
71
- "items": { "type": "string" },
101
+ "items": {
102
+ "type": "string"
103
+ },
72
104
  "description": "Agentes que contribuyeron a la sesion (cross-agent enrichment)"
73
105
  },
74
106
  "createdAt": {
@@ -1,39 +1,54 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://swl-ses.dev/schemas/hook-profiles.json",
4
- "title": "SWL Hook Profiles",
5
- "description": "Schema para hook-profiles.json del sistema SWL",
6
- "type": "object",
7
- "required": ["descripcion", "perfilActivo", "perfiles"],
8
- "properties": {
9
- "descripcion": {
10
- "type": "string"
11
- },
12
- "perfilActivo": {
13
- "type": "string",
14
- "enum": ["minimal", "standard", "strict", "custom"]
15
- },
16
- "perfiles": {
17
- "type": "object",
18
- "additionalProperties": {
19
- "type": "object",
20
- "required": ["descripcion", "hooks"],
21
- "properties": {
22
- "descripcion": {
23
- "type": "string"
24
- },
25
- "hooks": {
26
- "type": "array",
27
- "items": { "type": "string" }
28
- },
29
- "overrides": {
30
- "type": "object"
31
- }
32
- }
33
- }
34
- },
35
- "variablesEntorno": {
36
- "type": "object"
37
- }
38
- }
39
- }
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://swl-ses.dev/schemas/hook-profiles.json",
4
+ "$schemaVersion": "1.0.0",
5
+ "title": "SWL Hook Profiles",
6
+ "description": "Schema para hook-profiles.json del sistema SWL",
7
+ "type": "object",
8
+ "required": [
9
+ "descripcion",
10
+ "perfilActivo",
11
+ "perfiles"
12
+ ],
13
+ "properties": {
14
+ "descripcion": {
15
+ "type": "string"
16
+ },
17
+ "perfilActivo": {
18
+ "type": "string",
19
+ "enum": [
20
+ "minimal",
21
+ "standard",
22
+ "strict",
23
+ "custom"
24
+ ]
25
+ },
26
+ "perfiles": {
27
+ "type": "object",
28
+ "additionalProperties": {
29
+ "type": "object",
30
+ "required": [
31
+ "descripcion",
32
+ "hooks"
33
+ ],
34
+ "properties": {
35
+ "descripcion": {
36
+ "type": "string"
37
+ },
38
+ "hooks": {
39
+ "type": "array",
40
+ "items": {
41
+ "type": "string"
42
+ }
43
+ },
44
+ "overrides": {
45
+ "type": "object"
46
+ }
47
+ }
48
+ }
49
+ },
50
+ "variablesEntorno": {
51
+ "type": "object"
52
+ }
53
+ }
54
+ }
@@ -1,74 +1,89 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://swl-ses.dev/schemas/hooks-config.json",
4
- "title": "SWL Hooks Config",
5
- "description": "Schema para hooks-config.json del sistema SWL",
6
- "type": "object",
7
- "required": ["descripcion", "hooks"],
8
- "properties": {
9
- "descripcion": {
10
- "type": "string"
11
- },
12
- "riskThresholds": {
13
- "type": "object",
14
- "required": ["allow", "review", "confirm"],
15
- "properties": {
16
- "allow": {
17
- "type": "number",
18
- "minimum": 0,
19
- "maximum": 1
20
- },
21
- "review": {
22
- "type": "number",
23
- "minimum": 0,
24
- "maximum": 1
25
- },
26
- "confirm": {
27
- "type": "number",
28
- "minimum": 0,
29
- "maximum": 1
30
- }
31
- }
32
- },
33
- "costBudget": {
34
- "type": "object",
35
- "properties": {
36
- "maxUsd": {
37
- "type": "number",
38
- "minimum": 0
39
- },
40
- "maxTokens": {
41
- "type": "integer",
42
- "minimum": 0
43
- },
44
- "alertAt": {
45
- "type": "number",
46
- "minimum": 0,
47
- "maximum": 1
48
- }
49
- }
50
- },
51
- "hooks": {
52
- "type": "object",
53
- "additionalProperties": {
54
- "type": "object",
55
- "required": ["event", "description", "blocking"],
56
- "properties": {
57
- "event": {
58
- "type": "string",
59
- "enum": ["PreToolUse", "PostToolUse"]
60
- },
61
- "matcher": {
62
- "type": "string"
63
- },
64
- "description": {
65
- "type": "string"
66
- },
67
- "blocking": {
68
- "type": "boolean"
69
- }
70
- }
71
- }
72
- }
73
- }
74
- }
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://swl-ses.dev/schemas/hooks-config.json",
4
+ "$schemaVersion": "1.0.0",
5
+ "title": "SWL Hooks Config",
6
+ "description": "Schema para hooks-config.json del sistema SWL",
7
+ "type": "object",
8
+ "required": [
9
+ "descripcion",
10
+ "hooks"
11
+ ],
12
+ "properties": {
13
+ "descripcion": {
14
+ "type": "string"
15
+ },
16
+ "riskThresholds": {
17
+ "type": "object",
18
+ "required": [
19
+ "allow",
20
+ "review",
21
+ "confirm"
22
+ ],
23
+ "properties": {
24
+ "allow": {
25
+ "type": "number",
26
+ "minimum": 0,
27
+ "maximum": 1
28
+ },
29
+ "review": {
30
+ "type": "number",
31
+ "minimum": 0,
32
+ "maximum": 1
33
+ },
34
+ "confirm": {
35
+ "type": "number",
36
+ "minimum": 0,
37
+ "maximum": 1
38
+ }
39
+ }
40
+ },
41
+ "costBudget": {
42
+ "type": "object",
43
+ "properties": {
44
+ "maxUsd": {
45
+ "type": "number",
46
+ "minimum": 0
47
+ },
48
+ "maxTokens": {
49
+ "type": "integer",
50
+ "minimum": 0
51
+ },
52
+ "alertAt": {
53
+ "type": "number",
54
+ "minimum": 0,
55
+ "maximum": 1
56
+ }
57
+ }
58
+ },
59
+ "hooks": {
60
+ "type": "object",
61
+ "additionalProperties": {
62
+ "type": "object",
63
+ "required": [
64
+ "event",
65
+ "description",
66
+ "blocking"
67
+ ],
68
+ "properties": {
69
+ "event": {
70
+ "type": "string",
71
+ "enum": [
72
+ "PreToolUse",
73
+ "PostToolUse"
74
+ ]
75
+ },
76
+ "matcher": {
77
+ "type": "string"
78
+ },
79
+ "description": {
80
+ "type": "string"
81
+ },
82
+ "blocking": {
83
+ "type": "boolean"
84
+ }
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
@@ -1,115 +1,152 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://swl-ses.dev/schemas/instinct.json",
4
- "title": "SWL Instinct",
5
- "description": "Schema de validacion para instintos YAML del sistema SWL",
6
- "type": "object",
7
- "required": ["version", "instintos"],
8
- "properties": {
9
- "version": { "type": "string" },
10
- "generado": { "type": "string" },
11
- "total_instintos": { "type": "integer", "minimum": 0 },
12
- "instintos": {
13
- "type": "array",
14
- "items": {
15
- "type": "object",
16
- "required": ["id", "pattern", "confidence", "scope", "status"],
17
- "properties": {
18
- "id": {
19
- "type": "string",
20
- "pattern": "^inst-\\d{3,}$",
21
- "description": "Identificador unico secuencial"
22
- },
23
- "pattern": {
24
- "type": "string",
25
- "minLength": 10,
26
- "maxLength": 500,
27
- "description": "Descripcion del patron observado"
28
- },
29
- "confidence": {
30
- "type": "number",
31
- "minimum": 0.0,
32
- "maximum": 1.0,
33
- "description": "Nivel de confianza (0.0 bajo, 1.0 certeza)"
34
- },
35
- "scope": {
36
- "type": "string",
37
- "enum": ["project", "domain", "global"],
38
- "description": "Alcance del instinto"
39
- },
40
- "source": {
41
- "type": "string",
42
- "description": "ID de sesion o 'manual'"
43
- },
44
- "evidence_count": {
45
- "type": "integer",
46
- "minimum": 0,
47
- "description": "Veces que el patron ha sido observado"
48
- },
49
- "last_validated": {
50
- "type": "string",
51
- "description": "Fecha de ultima validacion (YYYY-MM-DD)"
52
- },
53
- "contradictions": {
54
- "type": "integer",
55
- "minimum": 0,
56
- "description": "Veces que el patron ha sido contradicho"
57
- },
58
- "status": {
59
- "type": "string",
60
- "enum": ["active", "degraded", "promoted", "archived"],
61
- "description": "Estado actual del instinto"
62
- },
63
- "tags": {
64
- "type": "array",
65
- "items": { "type": "string" },
66
- "description": "Etiquetas para clasificacion"
67
- },
68
- "created_at": {
69
- "type": "string",
70
- "description": "Fecha de creacion (YYYY-MM-DD)"
71
- },
72
- "decay_half_life_days": {
73
- "type": "integer",
74
- "minimum": 1,
75
- "default": 90,
76
- "description": "Dias para que la confianza decaiga a la mitad. 90 dias por defecto."
77
- },
78
- "helpful_count": {
79
- "type": "integer",
80
- "minimum": 0,
81
- "default": 0,
82
- "description": "Numero de veces que el instinto fue util en una sesion"
83
- },
84
- "harmful_count": {
85
- "type": "integer",
86
- "minimum": 0,
87
- "default": 0,
88
- "description": "Numero de veces que el instinto guio a un resultado incorrecto"
89
- },
90
- "last_validated_at": {
91
- "type": "string",
92
- "description": "Timestamp ISO o YYYY-MM-DD de la ultima validacion via feedback (sustituye a last_validated en sistemas con scoring)"
93
- },
94
- "source_sessions": {
95
- "type": "array",
96
- "items": { "type": "string" },
97
- "uniqueItems": true,
98
- "description": "IDs de sesiones que contribuyeron a este instinto (para priorizacion por evidencia multiple)"
99
- },
100
- "source_agents": {
101
- "type": "array",
102
- "items": { "type": "string" },
103
- "uniqueItems": true,
104
- "description": "Nombres de agentes que validaron este instinto (cross-agent enrichment)"
105
- },
106
- "maturity": {
107
- "type": "string",
108
- "enum": ["candidate", "established", "proven", "deprecated"],
109
- "description": "Estado de maduracion derivado (computado, no persistente). Ver scripts/lib/scoring-instintos.js"
110
- }
111
- }
112
- }
113
- }
114
- }
115
- }
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://swl-ses.dev/schemas/instinct.json",
4
+ "$schemaVersion": "1.0.0",
5
+ "title": "SWL Instinct",
6
+ "description": "Schema de validacion para instintos YAML del sistema SWL",
7
+ "type": "object",
8
+ "required": [
9
+ "version",
10
+ "instintos"
11
+ ],
12
+ "properties": {
13
+ "version": {
14
+ "type": "string"
15
+ },
16
+ "generado": {
17
+ "type": "string"
18
+ },
19
+ "total_instintos": {
20
+ "type": "integer",
21
+ "minimum": 0
22
+ },
23
+ "instintos": {
24
+ "type": "array",
25
+ "items": {
26
+ "type": "object",
27
+ "required": [
28
+ "id",
29
+ "pattern",
30
+ "confidence",
31
+ "scope",
32
+ "status"
33
+ ],
34
+ "properties": {
35
+ "id": {
36
+ "type": "string",
37
+ "pattern": "^inst-\\d{3,}$",
38
+ "description": "Identificador unico secuencial"
39
+ },
40
+ "pattern": {
41
+ "type": "string",
42
+ "minLength": 10,
43
+ "maxLength": 500,
44
+ "description": "Descripcion del patron observado"
45
+ },
46
+ "confidence": {
47
+ "type": "number",
48
+ "minimum": 0,
49
+ "maximum": 1,
50
+ "description": "Nivel de confianza (0.0 bajo, 1.0 certeza)"
51
+ },
52
+ "scope": {
53
+ "type": "string",
54
+ "enum": [
55
+ "project",
56
+ "domain",
57
+ "global"
58
+ ],
59
+ "description": "Alcance del instinto"
60
+ },
61
+ "source": {
62
+ "type": "string",
63
+ "description": "ID de sesion o 'manual'"
64
+ },
65
+ "evidence_count": {
66
+ "type": "integer",
67
+ "minimum": 0,
68
+ "description": "Veces que el patron ha sido observado"
69
+ },
70
+ "last_validated": {
71
+ "type": "string",
72
+ "description": "Fecha de ultima validacion (YYYY-MM-DD)"
73
+ },
74
+ "contradictions": {
75
+ "type": "integer",
76
+ "minimum": 0,
77
+ "description": "Veces que el patron ha sido contradicho"
78
+ },
79
+ "status": {
80
+ "type": "string",
81
+ "enum": [
82
+ "active",
83
+ "degraded",
84
+ "promoted",
85
+ "archived"
86
+ ],
87
+ "description": "Estado actual del instinto"
88
+ },
89
+ "tags": {
90
+ "type": "array",
91
+ "items": {
92
+ "type": "string"
93
+ },
94
+ "description": "Etiquetas para clasificacion"
95
+ },
96
+ "created_at": {
97
+ "type": "string",
98
+ "description": "Fecha de creacion (YYYY-MM-DD)"
99
+ },
100
+ "decay_half_life_days": {
101
+ "type": "integer",
102
+ "minimum": 1,
103
+ "default": 90,
104
+ "description": "Dias para que la confianza decaiga a la mitad. 90 dias por defecto."
105
+ },
106
+ "helpful_count": {
107
+ "type": "integer",
108
+ "minimum": 0,
109
+ "default": 0,
110
+ "description": "Numero de veces que el instinto fue util en una sesion"
111
+ },
112
+ "harmful_count": {
113
+ "type": "integer",
114
+ "minimum": 0,
115
+ "default": 0,
116
+ "description": "Numero de veces que el instinto guio a un resultado incorrecto"
117
+ },
118
+ "last_validated_at": {
119
+ "type": "string",
120
+ "description": "Timestamp ISO o YYYY-MM-DD de la ultima validacion via feedback (sustituye a last_validated en sistemas con scoring)"
121
+ },
122
+ "source_sessions": {
123
+ "type": "array",
124
+ "items": {
125
+ "type": "string"
126
+ },
127
+ "uniqueItems": true,
128
+ "description": "IDs de sesiones que contribuyeron a este instinto (para priorizacion por evidencia multiple)"
129
+ },
130
+ "source_agents": {
131
+ "type": "array",
132
+ "items": {
133
+ "type": "string"
134
+ },
135
+ "uniqueItems": true,
136
+ "description": "Nombres de agentes que validaron este instinto (cross-agent enrichment)"
137
+ },
138
+ "maturity": {
139
+ "type": "string",
140
+ "enum": [
141
+ "candidate",
142
+ "established",
143
+ "proven",
144
+ "deprecated"
145
+ ],
146
+ "description": "Estado de maduracion derivado (computado, no persistente). Ver scripts/lib/scoring-instintos.js"
147
+ }
148
+ }
149
+ }
150
+ }
151
+ }
152
+ }