@ingeniomaps/cauce 0.97.0 → 0.99.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.
Files changed (93) hide show
  1. package/CHANGELOG.md +162 -0
  2. package/README.md +1 -0
  3. package/agents/roles/system/accounting-specialist/learning/AUTOMATION.md +2 -2
  4. package/agents/roles/system/ai-governance-lead/learning/AUTOMATION.md +1 -1
  5. package/agents/roles/system/ai-product-manager/learning/AUTOMATION.md +1 -1
  6. package/agents/roles/system/analytics-engineer/learning/AUTOMATION.md +1 -1
  7. package/agents/roles/system/backend-engineer/learning/AUTOMATION.md +2 -2
  8. package/agents/roles/system/business-strategist/learning/AUTOMATION.md +2 -2
  9. package/agents/roles/system/cloud-architect/learning/AUTOMATION.md +1 -1
  10. package/agents/roles/system/community-manager/learning/AUTOMATION.md +1 -1
  11. package/agents/roles/system/content-specialist/learning/AUTOMATION.md +2 -2
  12. package/agents/roles/system/customer-success-manager/learning/AUTOMATION.md +2 -2
  13. package/agents/roles/system/customer-support-specialist/learning/AUTOMATION.md +2 -2
  14. package/agents/roles/system/data-analyst/learning/AUTOMATION.md +2 -2
  15. package/agents/roles/system/data-engineer/learning/AUTOMATION.md +1 -1
  16. package/agents/roles/system/data-governance-steward/learning/AUTOMATION.md +2 -2
  17. package/agents/roles/system/data-scientist/learning/AUTOMATION.md +1 -1
  18. package/agents/roles/system/database-administrator/learning/AUTOMATION.md +1 -1
  19. package/agents/roles/system/developer-relations-engineer/learning/AUTOMATION.md +1 -1
  20. package/agents/roles/system/devops-engineer/learning/AUTOMATION.md +2 -2
  21. package/agents/roles/system/engineering-manager/learning/AUTOMATION.md +1 -1
  22. package/agents/roles/system/financial-controller/learning/AUTOMATION.md +2 -2
  23. package/agents/roles/system/finops-engineer/learning/AUTOMATION.md +2 -2
  24. package/agents/roles/system/fraud-risk-analyst/learning/AUTOMATION.md +2 -2
  25. package/agents/roles/system/frontend-engineer/learning/AUTOMATION.md +2 -2
  26. package/agents/roles/system/growth-marketer/learning/AUTOMATION.md +2 -2
  27. package/agents/roles/system/implementation-manager/learning/AUTOMATION.md +1 -1
  28. package/agents/roles/system/integrations-engineer/learning/AUTOMATION.md +3 -3
  29. package/agents/roles/system/kyc-aml-specialist/learning/AUTOMATION.md +3 -3
  30. package/agents/roles/system/legal-counsel/learning/AUTOMATION.md +1 -1
  31. package/agents/roles/system/logistics-operations-manager/learning/AUTOMATION.md +2 -2
  32. package/agents/roles/system/machine-learning-engineer/learning/AUTOMATION.md +1 -1
  33. package/agents/roles/system/mlops-engineer/learning/AUTOMATION.md +1 -1
  34. package/agents/roles/system/mobile-engineer/learning/AUTOMATION.md +2 -2
  35. package/agents/roles/system/partnerships-manager/learning/AUTOMATION.md +1 -1
  36. package/agents/roles/system/people-operations-manager/learning/AUTOMATION.md +1 -1
  37. package/agents/roles/system/privacy-compliance-specialist/learning/AUTOMATION.md +2 -2
  38. package/agents/roles/system/procurement-manager/learning/AUTOMATION.md +1 -1
  39. package/agents/roles/system/product-manager/learning/AUTOMATION.md +3 -3
  40. package/agents/roles/system/product-marketing-manager/learning/AUTOMATION.md +2 -2
  41. package/agents/roles/system/project-manager/learning/AUTOMATION.md +1 -1
  42. package/agents/roles/system/qa-engineer/learning/AUTOMATION.md +2 -2
  43. package/agents/roles/system/release-manager/learning/AUTOMATION.md +1 -1
  44. package/agents/roles/system/sales-representative/learning/AUTOMATION.md +2 -2
  45. package/agents/roles/system/security-engineer/learning/AUTOMATION.md +2 -2
  46. package/agents/roles/system/site-reliability-engineer/learning/AUTOMATION.md +2 -2
  47. package/agents/roles/system/software-architect/learning/AUTOMATION.md +2 -2
  48. package/agents/roles/system/solutions-engineer/learning/AUTOMATION.md +1 -1
  49. package/agents/roles/system/tech-lead/learning/AUTOMATION.md +2 -2
  50. package/agents/roles/system/technical-program-manager/learning/AUTOMATION.md +1 -1
  51. package/agents/roles/system/technical-writer/learning/AUTOMATION.md +1 -1
  52. package/agents/roles/system/treasury-analyst/learning/AUTOMATION.md +2 -2
  53. package/agents/roles/system/ui-designer/learning/AUTOMATION.md +3 -3
  54. package/agents/roles/system/user-researcher/learning/AUTOMATION.md +3 -3
  55. package/agents/roles/system/ux-designer/learning/AUTOMATION.md +3 -3
  56. package/automatization/hooks/README.md +10 -5
  57. package/automatization/runners/antigravity/README.md +4 -1
  58. package/automatization/runners/antigravity/hook.js +84 -22
  59. package/automatization/runners/antigravity/manifest.json +1 -0
  60. package/automatization/shared/acceptance.js +26 -0
  61. package/automatization/workflows/agent-propose.js +2 -2
  62. package/automatization/workflows/autobuild.js +121 -38
  63. package/engine/agents/learning-files.js +18 -0
  64. package/engine/agents/learning-seal.js +24 -12
  65. package/engine/agents/learning-sources.js +12 -10
  66. package/engine/agents/learning.js +29 -7
  67. package/engine/automation/index.js +11 -2
  68. package/engine/automation/registration.js +89 -0
  69. package/engine/cli/args.js +2 -2
  70. package/engine/cli/catalog.js +12 -12
  71. package/engine/cli/ops.js +2 -1
  72. package/engine/cli/validate.js +3 -0
  73. package/engine/cli/wiring.js +1 -1
  74. package/engine/config/validate.js +30 -11
  75. package/engine/core/migrations.js +275 -0
  76. package/engine/core/repos.js +18 -4
  77. package/engine/hooks/approval.js +38 -7
  78. package/engine/hooks/chat.js +97 -27
  79. package/engine/hooks/files.js +6 -104
  80. package/engine/hooks/input.js +67 -11
  81. package/engine/hooks/migrations.js +93 -0
  82. package/engine/hooks/push.js +8 -5
  83. package/engine/hooks/run.js +10 -5
  84. package/engine/hooks/self-approval.js +2 -2
  85. package/engine/hooks/shell.js +34 -0
  86. package/engine/hooks/verify.js +79 -22
  87. package/engine/planning/acceptance.js +18 -0
  88. package/engine/planning/contracts.js +78 -45
  89. package/engine/schemas/ops-config.schema.json +9 -0
  90. package/package.json +1 -1
  91. package/template/AGENTS.md +8 -5
  92. package/template/Makefile +1 -1
  93. package/template/planning/PROTOCOL.md +6 -2
@@ -118,6 +118,15 @@
118
118
  "pattern": "^[a-z0-9]+$"
119
119
  },
120
120
  "minItems": 1
121
+ },
122
+ "paths": {
123
+ "type": "array",
124
+ "description": "Carpetas donde viven las migraciones, relativas y sin «.» ni «..»: el guard las reconoce en cualquier lugar de la ruta, así que \"alembic/versions\" también alcanza a \"api/alembic/versions\". Declararlas reemplaza el default [\"migrations\", \"migration\", \"migrate\"], y `check` avisa la que no alcanza a ningún archivo.",
125
+ "items": {
126
+ "type": "string",
127
+ "pattern": "^[A-Za-z0-9_-][A-Za-z0-9._-]*(?:/[A-Za-z0-9_-][A-Za-z0-9._-]*)*$"
128
+ },
129
+ "minItems": 1
121
130
  }
122
131
  }
123
132
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ingeniomaps/cauce",
3
- "version": "0.97.0",
3
+ "version": "0.99.0",
4
4
  "description": "Sistema portable de planificación y ejecución verificable para cualquier proyecto",
5
5
  "keywords": [
6
6
  "planning",
@@ -57,7 +57,7 @@ comando, sin cron —activarlo en tu repositorio es decisión tuya—:
57
57
 
58
58
  ```bash
59
59
  node tools/ops.js agents list --own # sólo los tuyos, sin los del catálogo
60
- node tools/ops.js learn <slug> # arma el informe de la semana
60
+ node tools/ops.js learn <slug> # arma el informe de investigación
61
61
  /agent-propose <slug> # escribe el cambio concreto sobre esos informes
62
62
  # ↑ firmá «Aprobación humana» en la propuesta antes de seguir
63
63
  /agent-promote <slug> # lo aplica, registra y manda a verificar
@@ -108,12 +108,15 @@ te frena es el peor para elegir bien.
108
108
  **Si lo pediste vos en el chat, no hace falta nada.** Los guards contienen al agente cuando decide solo o
109
109
  cuando trabaja dentro de un recorrido; lo que vos pedís directo no se frena. Nombrá lo que querés que
110
110
  toque —«borrá la prueba de altas», «reescribí la migración 004»— y pasa sin preguntarte de nuevo. Si tu
111
- pedido no lo nombraba y algo se frena, el agente te dice qué y por qué: contestá «dale» y pasa exactamente
112
- eso. **Con los gates de un commit se pregunta cada vez**, como con publicar: gobernanza, los gates del
111
+ pedido no lo nombraba y algo se frena, el agente te dice qué y por qué: confirmalo con tus palabras —un
112
+ «dale» alcanza, pero no hace falta esa palabra— y pasa exactamente eso. Si contestás negando, frenando o
113
+ preguntando, no pasa. **Con los gates de un commit se pregunta cada vez**, como con publicar: gobernanza, los gates del
113
114
  stack y los lockfiles no heredan lo que autorizaste en un mensaje anterior, porque cada commit es otra
114
115
  operación. Y `plan-first` no te pide un plan cuando el cambio lo pediste vos: el plan es para el trabajo que va
115
116
  por tareas. Funciona en Claude Code, Codex y Gemini, que le avisan a Cauce cuando mandás un mensaje; en
116
- Antigravity, y cuando nadie está en el chat —CI, un recorrido, un subagente—, queda el archivo de abajo.
117
+ Antigravity, y cuando nadie está en el chat —CI, un recorrido—, queda el archivo de abajo. Si lo frenado
118
+ lo hacía un subagente, tu confirmación le llega igual; un pedido tuyo que lo nombraba, no: ése vale sólo
119
+ para el agente con el que hablás.
117
120
 
118
121
  **Sin chat, la salida de todos ellos es la misma**: escribir en `planning/.ops-approval` las rutas que
119
122
  autorizás, una por línea, con `#` para lo que no sea una ruta. En sidecar es el `planning/` de la
@@ -258,7 +261,7 @@ Publicar es lo único de todo eso que este proyecto puede habilitar, y `runner.a
258
261
  `ops.config.json` es la autorización que R10 pide para las ramas de trabajo. La rama viva —`main`,
259
262
  `master` o la rama por defecto del remoto— no la alcanza si el proyecto no la nombra en
260
263
  `runner.pushToLiveBranches`, y un subagente no publica con ningún permiso. Sin la llave, pasa el push
261
- que la persona pide en el chat nombrando el remoto y la rama, o el que ella aprueba contestando «dale».
264
+ que la persona pide en el chat nombrando el remoto y la rama, o el que ella confirma cuando se frena.
262
265
  Reescribir historia publicada no entra en el trato: un `push --force` se frena con la llave prendida o
263
266
  apagada.
264
267
 
package/template/Makefile CHANGED
@@ -53,7 +53,7 @@ integration-promote: require-key ## Promueve el draft KEY=<clave> al roadmap
53
53
  require-agent:
54
54
  @test -n "$(AGENT)" || (echo "Falta AGENT=<slug>" >&2; exit 2)
55
55
 
56
- agent-learn: require-agent ## Prepara el informe semanal de AGENT=<slug>
56
+ agent-learn: require-agent ## Prepara el informe de investigación de AGENT=<slug>
57
57
  @node tools/ops.js learn "$(AGENT)"
58
58
 
59
59
  agent-propose: require-agent ## Consolida una propuesta para AGENT=<slug>
@@ -16,7 +16,8 @@ invariantes.
16
16
  reclamo, `done/` o la evidencia registrada pide algo que todavía no existe cuando se la mira, y su lugar
17
17
  son los campos `tests:`, `qa:` y `commit:` de DONE, que ya lo exigen. `check` lo avisa sobre la cola. Si
18
18
  aun así corresponde dejarla ahí, se declara en la propia condición con `(fuera de verify: <razón>)` —la
19
- misma salida explícita que `(sin partir: …)` y que `n/a — razón`— y deja de avisarse.
19
+ misma salida explícita que `(sin partir: …)` y que `n/a — razón`— y deja de avisarse. El recorrido la
20
+ saca de lo que manda a Verify y a QA, y la lleva a Done para que quede cumplida en esos campos.
20
21
  - DONE: un archivo por tarea cerrada, `done/<slug>.md`, con su entrada `[x]` y los campos `acept:`,
21
22
  `fecha:` en AAAA-MM-DD, `done:`, `qa:`, `tests:`, `commit:` y `lane:`. `lane:` repite el carril con el
22
23
  que la tarea corrió —`express`, `directo`, `lite`, `full`— o `sin clasificar` si su línea no lo
@@ -28,7 +29,10 @@ invariantes.
28
29
  que convoca revisor con una revisión que no corrió es la ADR incumplida, escrita en el propio registro. La fecha es la del cierre, y es lo que
29
30
  ordena una evidencia que ya no depende de su posición dentro de un archivo. `tests:` enlaza cada criterio
30
31
  mediante `CN → prueba`; usa `A → prueba` cuando no hay épica o `n/a — razón` si no existe una
31
- superficie ejecutable. `decisions:` es opcional y, si aparece, cita `[fuente: ...]` o
32
+ superficie ejecutable. Un `tests:` que sea todo `n/a` es un error de `check` si su `commit:` toca algún
33
+ archivo que no sea un documento (`.md`, `.txt`, `.adoc`) o una imagen (`.png`, `.jpg`, `.jpeg`, `.gif`,
34
+ `.svg`, `.webp`): lo demás se ejecuta y se prueba, también lo que no tiene extensión, como un `Makefile`.
35
+ Rige para lo cerrado desde el 2026-09-24; lo anterior no se juzga con ella. `decisions:` es opcional y, si aparece, cita `[fuente: ...]` o
32
36
  `[supuesto: ...]`. `commit:` apunta a `<sha> <asunto>`, o a `n/a — razón` cuando la tarea no
33
37
  produce commit.
34
38
  - Acción humana: fila `| tarea | estado | origen | acción y condición de desbloqueo |`, con el estado