@ingeniomaps/cauce 0.14.1 → 0.15.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.
@@ -94,7 +94,9 @@ const veredictos = await pipeline(
94
94
  // Responde el cargo. Recibe su contrato y el pedido; nunca los comportamientos esperados.
95
95
  (item) => agent(
96
96
  `Actuá como el cargo ${AGENT}, respetando el contrato de ${contexto.skill}: cuándo actuar, qué ` +
97
- `decide, qué no le corresponde y cuál es su entrega mínima. No leas ningún archivo bajo ` +
97
+ `decide, qué no le corresponde y cuál es su entrega mínima. Leé también ${ROOT}/AGENTS.md: son las ` +
98
+ `reglas que todo cargo obedece, y un cargo corre siempre con las dos cosas —medirlo sólo contra su ` +
99
+ `SKILL.md lo evaluaba en una situación que nunca ocurre—. No leas ningún archivo bajo ` +
98
100
  `evaluations/: no te corresponde y contaminaría la respuesta.\n\n` +
99
101
  `Te llega este pedido. Respondelo como lo responderías de verdad —incluido negarte, si eso es lo ` +
100
102
  `que corresponde—. Sé completo: no hay límite de extensión.\n\n${item.request}`,
@@ -30,9 +30,17 @@ function caseFiles(dir) {
30
30
  function parseCase(text) {
31
31
  const request = (text.match(/#\s*Solicitud\s*\n([\s\S]*?)(?=\n#\s|$)/) || [])[1] || ''
32
32
  const block = (text.match(/#\s*Comportamientos esperados\s*\n([\s\S]*?)(?=\n#\s|$)/) || [])[1] || ''
33
- const expected = block.split('\n')
34
- .map((line) => line.replace(/^\s*-\s*/, '').trim())
35
- .filter(Boolean)
33
+ // Una viñeta puede ocupar varias líneas. Contar líneas en vez de viñetas hacía que un caso con
34
+ // cuatro comportamientos declarara siete, y ese número es el denominador de toda la evaluación.
35
+ // No se veía en el catálogo del sistema porque ahí las viñetas entran en una línea.
36
+ const expected = []
37
+ for (const line of block.split('\n')) {
38
+ const bullet = line.match(/^\s*-\s+(.*)$/)
39
+ if (bullet) expected.push(bullet[1].trim())
40
+ else if (expected.length && line.trim()) {
41
+ expected[expected.length - 1] = `${expected[expected.length - 1]} ${line.trim()}`
42
+ }
43
+ }
36
44
  return { request: request.trim(), expected }
37
45
  }
38
46
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ingeniomaps/cauce",
3
- "version": "0.14.1",
3
+ "version": "0.15.0",
4
4
  "description": "Sistema portable de planificación y ejecución verificable para cualquier proyecto",
5
5
  "type": "commonjs",
6
6
  "bin": {
@@ -64,6 +64,26 @@ Un cargo propio puede declarar en `learning/AUTOMATION.md` qué debe investigar
64
64
  Si su profesión no existe fuera de tu empresa, sus fuentes son internas: lo que aprende sale de sus
65
65
  propias decisiones, no de un estándar de afuera.
66
66
 
67
+ ## Negarse no es entregar
68
+
69
+ Cada límite de un cargo tiene una contraparte positiva, y respetar el límite no exime de ella. Un cargo
70
+ que se niega bien y no deja nada dejó el pedido sin resolver: hizo la mitad barata del trabajo.
71
+
72
+ - **Ante falta de contexto, producir el borrador reversible marcado como supuesto, no bloquear pidiendo
73
+ insumos.** Pedir una decisión humana sólo cuando las opciones cambien materialmente el rumbo, el
74
+ gasto, una obligación externa o el riesgo. Un borrador que se puede tirar no cambia ninguna de esas
75
+ cosas; no entregarlo, sí.
76
+ - **Delimitar el espacio de decisión no es decidir.** Enumerar las opciones y pedir que alguien elija
77
+ es trabajo a medias cuando ninguna de ellas cambia materialmente el rumbo: en ese caso se propone una,
78
+ con su razón, marcada como propuesta.
79
+ - **Todo rechazo se acompaña de lo que sí corresponde hacer**, dicho como acción concreta y no como
80
+ categoría. «Esto no me corresponde» sin decir a quién ni con qué pregunta deja el pedido donde estaba.
81
+ - **Nombrar lo que falta no reemplaza a entregar lo que se puede.** Lo que sí se pudo establecer se
82
+ escribe igual, aunque el resultado quede parcial y marcado como tal.
83
+
84
+ Esto no afloja ningún límite: no promover, no prometer fechas, no inventar evidencia y no exceder la
85
+ autoridad del cargo siguen siendo absolutos. Lo que se cierra es la salida de cumplirlos sin entregar.
86
+
67
87
  ## Qué se puede editar y qué no
68
88
 
69
89
  Todo directorio `system/` pertenece a Cauce y se reemplaza completo al actualizar. **Nunca editar nada