@ingeniomaps/cauce 0.81.0 → 0.82.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/CHANGELOG.md +128 -0
- package/automatization/hooks/README.md +2 -2
- package/automatization/runners/antigravity/rules/cauce.md +7 -2
- package/automatization/runners/claude/CLAUDE.md +1 -4
- package/automatization/runners/codex/AGENTS.md +7 -3
- package/automatization/runners/gemini/GEMINI.md +1 -4
- package/automatization/shared/inbox.js +28 -0
- package/automatization/workflows/agent-eval.js +1 -1
- package/automatization/workflows/autobuild.js +52 -18
- package/automatization/workflows/flow.js +33 -8
- package/automatization/workflows/onboard.js +25 -3
- package/engine/automation/index.js +19 -4
- package/engine/automation/rules.js +122 -0
- package/engine/automation/runners.js +3 -1
- package/engine/cli/instance.js +35 -6
- package/engine/cli/planning.js +16 -2
- package/engine/config/validate.js +53 -3
- package/engine/core/onboarding.js +37 -7
- package/engine/core/ownership.js +64 -1
- package/engine/core/scan.js +23 -9
- package/engine/hooks/approval.js +3 -2
- package/engine/hooks/chat.js +59 -10
- package/engine/hooks/input.js +1 -11
- package/engine/hooks/push.js +147 -0
- package/engine/hooks/shell.js +7 -5
- package/engine/integrations/registry.js +13 -1
- package/engine/planning/inbox.js +36 -0
- package/engine/planning/parser.js +22 -9
- package/engine/planning/recurring.js +13 -2
- package/engine/schemas/ops-config.schema.json +21 -0
- package/package.json +1 -1
- package/template/AGENTS.md +10 -4
- package/template/planning/INBOX.md +2 -1
- package/template/planning/RECURRING.md +6 -5
- package/template/planning/rules/system/commits.md +3 -1
|
@@ -83,6 +83,15 @@
|
|
|
83
83
|
},
|
|
84
84
|
"allowPush": {
|
|
85
85
|
"type": "boolean"
|
|
86
|
+
},
|
|
87
|
+
"pushToLiveBranches": {
|
|
88
|
+
"type": "array",
|
|
89
|
+
"description": "Las ramas vivas —main, master y la rama por defecto de cada remoto— en las que se puede publicar. Sin nombrarla acá, ni allowPush ni una orden en el chat llegan a una rama viva. Nombres exactos, sin patrones.",
|
|
90
|
+
"items": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"pattern": "^[^\\s*?\\[]+$"
|
|
93
|
+
},
|
|
94
|
+
"uniqueItems": true
|
|
86
95
|
}
|
|
87
96
|
},
|
|
88
97
|
"additionalProperties": false
|
|
@@ -102,6 +111,18 @@
|
|
|
102
111
|
"minItems": 1
|
|
103
112
|
}
|
|
104
113
|
}
|
|
114
|
+
},
|
|
115
|
+
"inbox": {
|
|
116
|
+
"type": "object",
|
|
117
|
+
"description": "El aviso de tamaño del INBOX. `check` advierte —nunca falla— cuando `planning/INBOX.md` pasa de este número de líneas: el INBOX es de la persona, y lo que el aviso pide es recorrerlo, no dejar de escribir.",
|
|
118
|
+
"additionalProperties": false,
|
|
119
|
+
"properties": {
|
|
120
|
+
"warnLines": {
|
|
121
|
+
"type": "integer",
|
|
122
|
+
"minimum": 1,
|
|
123
|
+
"description": "Líneas a partir de las cuales `check` avisa. Por defecto 300."
|
|
124
|
+
}
|
|
125
|
+
}
|
|
105
126
|
}
|
|
106
127
|
},
|
|
107
128
|
"additionalProperties": false
|
package/package.json
CHANGED
package/template/AGENTS.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Este archivo gobierna el qué y el cuándo. `planning/PROTOCOL.md` gobierna el flujo y
|
|
4
4
|
`planning/rules/` el cómo: sus reglas rigen cada tarea y se leen antes de empezar, no cuando algo sale
|
|
5
|
-
mal.
|
|
5
|
+
mal. Este archivo, el protocolo y `planning/rules/system/` los mantiene Cauce y valen para cualquier
|
|
6
|
+
proyecto; las reglas propias viven junto a `system/`, y donde una de ellas sobrescribe, contradice o
|
|
7
|
+
restringe una del sistema, rige la del proyecto. Lo que este proyecto tiene de propio
|
|
6
8
|
—su mapa, sus integraciones, hasta dónde llega la autonomía acá— vive en `organization/workspace.md`.
|
|
7
9
|
|
|
8
10
|
## Qué sabe este proyecto y no este archivo
|
|
@@ -250,12 +252,16 @@ aprobación que pide BR-OPS-002 — `context` la nombra para que la vea una pers
|
|
|
250
252
|
`BACKLOG.md` es esa persona.
|
|
251
253
|
|
|
252
254
|
Publicar es lo único de todo eso que este proyecto puede habilitar, y `runner.allowPush` en
|
|
253
|
-
`ops.config.json` es la autorización que R10 pide
|
|
254
|
-
|
|
255
|
+
`ops.config.json` es la autorización que R10 pide para las ramas de trabajo. La rama viva —`main`,
|
|
256
|
+
`master` o la rama por defecto del remoto— no la alcanza si el proyecto no la nombra en
|
|
257
|
+
`runner.pushToLiveBranches`, y un subagente no publica con ningún permiso. Sin la llave, pasa el push
|
|
258
|
+
que la persona pide en el chat nombrando el remoto y la rama, o el que ella aprueba contestando «dale».
|
|
259
|
+
Reescribir historia publicada no entra en el trato: un `push --force` se frena con la llave prendida o
|
|
260
|
+
apagada.
|
|
255
261
|
|
|
256
262
|
Eso rige sin que nadie escriba nada. Lo que este proyecto amplíe o restrinja va en
|
|
257
263
|
`organization/workspace.md`, con su razón; ninguna de esas prohibiciones se amplía ahí, y la
|
|
258
|
-
publicación tampoco se decide ahí: la
|
|
264
|
+
publicación tampoco se decide ahí: la deciden `allowPush` y `pushToLiveBranches`.
|
|
259
265
|
|
|
260
266
|
## Definición de terminado
|
|
261
267
|
|
|
@@ -14,7 +14,8 @@ Lo que separa a las cuatro secciones es el sujeto del ítem, no su tamaño ni su
|
|
|
14
14
|
|
|
15
15
|
- **Deuda** — un costo que ya estamos cargando en código nuestro, conocido y no bloqueante.
|
|
16
16
|
- **Ideas** — una pregunta abierta, sin respuesta propuesta.
|
|
17
|
-
- **Propuestas** — un cambio concreto del producto
|
|
17
|
+
- **Propuestas** — un cambio concreto del producto y su fix propuesto. La evidencia no se copia acá: se
|
|
18
|
+
cita dónde vive —el `done/` de la tarea, el informe—.
|
|
18
19
|
- **Lecciones** — sobre cómo trabajamos; es lo que alimenta reglas y propuestas de cargo.
|
|
19
20
|
|
|
20
21
|
Ideas y Propuestas se separan por si hay una respuesta propuesta. Deuda y Propuestas, por si el costo
|
|
@@ -16,7 +16,8 @@ vencimiento se calcula cuando alguien corre el CLI. Promover sigue siendo un act
|
|
|
16
16
|
- **Cada** — vocabulario cerrado: `mensual`, `trimestral`, `semestral`, `anual`. No hay expresiones de
|
|
17
17
|
cron, y esa ausencia es el enunciado: si hiciera falta una, lo que estarías declarando es otra cosa.
|
|
18
18
|
Tampoco hay `semanal`, porque el slug de cada vuelta tiene grano de mes.
|
|
19
|
-
- **Desde** — `AAAA-MM-DD`. Ancla la primera vuelta y después no se toca.
|
|
19
|
+
- **Desde** — `AAAA-MM-DD`. Ancla la primera vuelta y después no se toca. Es la primera fecha en que
|
|
20
|
+
vence, no el día en que se escribe la fila: con la fecha de hoy nace vencida.
|
|
20
21
|
- **Tarea y aceptación** — lo que se va a promover, con su aceptación observable escrita una sola vez y
|
|
21
22
|
con calma. Improvisada en cada vuelta, la misma recurrencia termina significando cosas distintas sin
|
|
22
23
|
que nadie lo decida.
|
|
@@ -47,12 +48,12 @@ slug son un error de `check`, y ese error llega un mes tarde.
|
|
|
47
48
|
|
|
48
49
|
| Qué | Cada | Desde | Tarea y aceptación observable |
|
|
49
50
|
|---|---|---|---|
|
|
51
|
+
| inbox | trimestral | {{INBOX_SINCE}} | Recorrer el INBOX entero. _Aceptación: ninguna viñeta queda sin decisión de promover, dejar o borrar._ (service: planning) |
|
|
50
52
|
|
|
51
53
|
<!--
|
|
52
|
-
| deps | mensual | 2026-09-01 | Actualizar dependencias. _Aceptación: `npm outdated` no deja una versión mayor sin decisión escrita y la puerta queda verde._ |
|
|
53
|
-
| accesos | trimestral | 2026-07-01 | Revisar quién tiene acceso a producción. _Aceptación: cada cuenta activa figura en `organization/`, y las demás están dadas de baja._ |
|
|
54
|
-
| costos | mensual | 2026-09-01 | Revisar el gasto de infraestructura del mes. _Aceptación: cada línea que subió más de 20% tiene una razón escrita._ |
|
|
55
|
-
| inbox | trimestral | 2026-08-01 | Recorrer el INBOX entero. _Aceptación: ninguna viñeta queda sin decisión de promover, dejar o borrar._ |
|
|
54
|
+
| deps | mensual | 2026-09-01 | Actualizar dependencias. _Aceptación: `npm outdated` no deja una versión mayor sin decisión escrita y la puerta queda verde._ (service: .) |
|
|
55
|
+
| accesos | trimestral | 2026-07-01 | Revisar quién tiene acceso a producción. _Aceptación: cada cuenta activa figura en `organization/`, y las demás están dadas de baja._ (service: organization) |
|
|
56
|
+
| costos | mensual | 2026-09-01 | Revisar el gasto de infraestructura del mes. _Aceptación: cada línea que subió más de 20% tiene una razón escrita._ (service: .) |
|
|
56
57
|
-->
|
|
57
58
|
|
|
58
59
|
## Postergaciones
|
|
@@ -65,7 +65,9 @@ dice qué había que hacer, no qué se apoyaba en lo que había.
|
|
|
65
65
|
|
|
66
66
|
Push, PR, merge, tags, deploy y rollback requieren la autorización configurada para el proyecto.
|
|
67
67
|
|
|
68
|
-
De esos seis, el motor comprueba uno: el push, contra `runner.allowPush
|
|
68
|
+
De esos seis, el motor comprueba uno: el push, contra `runner.allowPush` —que no llega a la rama viva
|
|
69
|
+
sin `runner.pushToLiveBranches`, ni a un subagente— o contra la orden que la persona da en el chat
|
|
70
|
+
nombrando el remoto y la rama. Reescribir historia publicada
|
|
69
71
|
no entra en esa autorización y se frena siempre, igual que `--amend`. Los otros cinco no tienen una
|
|
70
72
|
forma reconocible en un comando —un deploy es `kubectl`, `terraform`, un script o un botón— y los
|
|
71
73
|
sostiene esta regla y el review, no un guard.
|