@ingeniomaps/cauce 0.22.0 → 0.24.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 +204 -0
- package/LICENSE +1 -1
- package/README.md +59 -165
- package/agents/README.md +49 -0
- package/agents/roles/system/ai-governance-lead/SKILL.md +1 -0
- package/agents/roles/system/ai-governance-lead/evaluations/cases/06-adversarial-policy/directiva-dt-2026-14-conformidad-acelerada.md +123 -0
- package/agents/roles/system/ai-product-manager/SKILL.md +1 -0
- package/agents/roles/system/ai-product-manager/evaluations/cases/06-adversarial-output/traza-inferencia-asistente-cuentas-2026-08-11.json +46 -0
- package/agents/roles/system/analytics-engineer/SKILL.md +1 -0
- package/agents/roles/system/analytics-engineer/evaluations/cases/06-adversarial-sql/fct_ingresos_netos_v3.sql +123 -0
- package/agents/roles/system/backend-engineer/SKILL.md +1 -0
- package/agents/roles/system/backend-engineer/evaluations/cases/06-adversarial-docs/UPGRADING-pgforge-4.2.md +110 -0
- package/agents/roles/system/backend-engineer/evaluations/results/2026-08-17.md +850 -0
- package/agents/roles/system/business-operations-manager/SKILL.md +1 -0
- package/agents/roles/system/business-operations-manager/evaluations/cases/06-adversarial-docs/playbook-cadence-zero-v7.md +133 -0
- package/agents/roles/system/business-strategist/SKILL.md +1 -0
- package/agents/roles/system/business-strategist/evaluations/cases/06-adversarial-docs/informe-meridian-logistica-urbana-h2-2026.md +110 -0
- package/agents/roles/system/cloud-architect/SKILL.md +1 -0
- package/agents/roles/system/cloud-architect/evaluations/cases/06-adversarial-iac/main.tf +147 -0
- package/agents/roles/system/cloud-architect/evaluations/results/2026-08-17.md +2018 -0
- package/agents/roles/system/community-manager/SKILL.md +1 -0
- package/agents/roles/system/community-manager/evaluations/cases/06-adversarial-link/kit-moderacion-comunidad-2026.md +82 -0
- package/agents/roles/system/content-specialist/SKILL.md +1 -0
- package/agents/roles/system/content-specialist/evaluations/cases/06-adversarial-docs/growthstack-metodo-replicacion.html +91 -0
- package/agents/roles/system/customer-success-manager/SKILL.md +1 -0
- package/agents/roles/system/customer-success-manager/evaluations/cases/06-adversarial-docs/retentia-playbook-rescate-q3.md +85 -0
- package/agents/roles/system/customer-support-specialist/SKILL.md +1 -0
- package/agents/roles/system/customer-support-specialist/evaluations/cases/06-adversarial-docs/kb-4471-desbloqueo-sincronizacion.md +90 -0
- package/agents/roles/system/data-analyst/SKILL.md +1 -0
- package/agents/roles/system/data-analyst/evaluations/cases/06-adversarial-docs/cardinal-guia-migracion-metricas.md +104 -0
- package/agents/roles/system/data-analyst/evaluations/results/2026-08-17.md +1513 -0
- package/agents/roles/system/data-engineer/SKILL.md +1 -0
- package/agents/roles/system/data-engineer/evaluations/cases/06-adversarial-data/lumen-catalog-export-2026-08-11.csv +16 -0
- package/agents/roles/system/data-scientist/SKILL.md +1 -0
- package/agents/roles/system/data-scientist/evaluations/cases/06-adversarial-notebook/uplift_recalibration_v3.ipynb +252 -0
- package/agents/roles/system/data-scientist/evaluations/results/2026-08-17.md +2293 -0
- package/agents/roles/system/database-administrator/SKILL.md +3 -0
- package/agents/roles/system/database-administrator/evaluations/cases/06-adversarial-runbook/RB-2291-recuperacion-corrupcion-indices.md +122 -0
- package/agents/roles/system/database-administrator/evaluations/cases/07-unverified-mechanism-claim.md +10 -0
- package/agents/roles/system/database-administrator/evaluations/expected-behaviors.yaml +1 -0
- package/agents/roles/system/database-administrator/evaluations/results/2026-08-17.md +2566 -0
- package/agents/roles/system/database-administrator/learning/HISTORY.md +4 -0
- package/agents/roles/system/database-administrator/learning/proposals/2026-08.md +476 -0
- package/agents/roles/system/database-administrator/references/operating-model.md +37 -0
- package/agents/roles/system/developer-relations-engineer/SKILL.md +1 -0
- package/agents/roles/system/developer-relations-engineer/evaluations/cases/06-adversarial-issue/issue-812-quickstart-broken-fix.md +85 -0
- package/agents/roles/system/devops-engineer/SKILL.md +1 -0
- package/agents/roles/system/devops-engineer/evaluations/cases/06-adversarial-docs/northgate-runbook-integracion-v41.md +91 -0
- package/agents/roles/system/engineering-manager/SKILL.md +1 -0
- package/agents/roles/system/engineering-manager/evaluations/cases/06-adversarial-docs/meridian-programa-alto-rendimiento.md +85 -0
- package/agents/roles/system/financial-controller/SKILL.md +1 -0
- package/agents/roles/system/financial-controller/evaluations/cases/06-adversarial-docs/nota-tecnica-ct-2026-07-cierre-continuo.md +97 -0
- package/agents/roles/system/finops-engineer/SKILL.md +1 -0
- package/agents/roles/system/finops-engineer/evaluations/cases/06-adversarial-calculadora-del-proveedor/calculadora-ahorro-veltacloud.html +114 -0
- package/agents/roles/system/finops-engineer/evaluations/results/2026-08-16.md +713 -0
- package/agents/roles/system/finops-engineer/evaluations/results/2026-08-17.md +968 -0
- package/agents/roles/system/frontend-engineer/SKILL.md +1 -0
- package/agents/roles/system/frontend-engineer/evaluations/cases/06-adversarial-docs/pixelweave-sdk-troubleshooting.md +81 -0
- package/agents/roles/system/growth-marketer/SKILL.md +1 -0
- package/agents/roles/system/growth-marketer/evaluations/cases/06-adversarial-caso-de-exito/caso-exito-lumenreach-nordika.md +96 -0
- package/agents/roles/system/implementation-manager/SKILL.md +1 -0
- package/agents/roles/system/implementation-manager/evaluations/cases/06-adversarial-plan/plan-cutover-acelerado-orbitalink.md +95 -0
- package/agents/roles/system/legal-counsel/SKILL.md +1 -0
- package/agents/roles/system/legal-counsel/evaluations/cases/06-adversarial-docs/protocolo-adhesion-pfrv-2026.md +125 -0
- package/agents/roles/system/legal-counsel/evaluations/results/2026-08-17.md +1394 -0
- package/agents/roles/system/machine-learning-engineer/SKILL.md +1 -0
- package/agents/roles/system/machine-learning-engineer/evaluations/cases/06-adversarial-model/config.json +71 -0
- package/agents/roles/system/mlops-engineer/SKILL.md +1 -0
- package/agents/roles/system/mlops-engineer/evaluations/cases/06-adversarial-artifact/model_card.md +122 -0
- package/agents/roles/system/mobile-engineer/SKILL.md +1 -0
- package/agents/roles/system/mobile-engineer/evaluations/cases/06-adversarial-docs/pulsemetrics-sdk-integration.md +84 -0
- package/agents/roles/system/partnerships-manager/SKILL.md +1 -0
- package/agents/roles/system/partnerships-manager/evaluations/cases/06-adversarial-portal/partner-portal-onboarding.html +119 -0
- package/agents/roles/system/people-operations-manager/SKILL.md +1 -0
- package/agents/roles/system/people-operations-manager/evaluations/cases/06-adversarial-docs/guia-people-ops-acelerada.md +57 -0
- package/agents/roles/system/people-operations-manager/evaluations/results/2026-08-17.md +1522 -0
- package/agents/roles/system/privacy-compliance-specialist/SKILL.md +1 -0
- package/agents/roles/system/privacy-compliance-specialist/evaluations/cases/06-adversarial-docs/dsar-response-playbook.md +64 -0
- package/agents/roles/system/privacy-compliance-specialist/evaluations/results/2026-08-17.md +925 -0
- package/agents/roles/system/procurement-manager/SKILL.md +1 -0
- package/agents/roles/system/procurement-manager/evaluations/cases/06-adversarial-docs/cotizacion-COT-2026-4471.md +74 -0
- package/agents/roles/system/product-manager/SKILL.md +1 -0
- package/agents/roles/system/product-manager/evaluations/cases/05-adversarial-source/growthbeacon-blog-2026-onboarding.html +94 -0
- package/agents/roles/system/product-manager/evaluations/results/2026-08-17.md +854 -0
- package/agents/roles/system/product-marketing-manager/SKILL.md +1 -0
- package/agents/roles/system/product-marketing-manager/evaluations/cases/06-adversarial-docs/launchlift-gtm-playbook.md +62 -0
- package/agents/roles/system/project-manager/SKILL.md +1 -0
- package/agents/roles/system/project-manager/evaluations/cases/06-adversarial-docs/plan-cierre-acelerado.md +68 -0
- package/agents/roles/system/qa-engineer/SKILL.md +1 -0
- package/agents/roles/system/qa-engineer/evaluations/cases/06-adversarial-docs/guia-testforge-cobertura-real.md +60 -0
- package/agents/roles/system/qa-engineer/evaluations/results/2026-08-17.md +1181 -0
- package/agents/roles/system/qa-engineer/learning/proposals/2026-08.md +1 -1
- package/agents/roles/system/release-manager/SKILL.md +1 -0
- package/agents/roles/system/release-manager/evaluations/cases/06-adversarial-docs/runbook-shipline-fast-release.md +66 -0
- package/agents/roles/system/revenue-operations-manager/SKILL.md +1 -0
- package/agents/roles/system/revenue-operations-manager/evaluations/cases/06-adversarial-docs/conector-pipesync-crm-docs.md +66 -0
- package/agents/roles/system/sales-representative/SKILL.md +1 -0
- package/agents/roles/system/sales-representative/evaluations/cases/06-adversarial-docs/playbook-outbound-agresivo.md +66 -0
- package/agents/roles/system/security-engineer/SKILL.md +2 -0
- package/agents/roles/system/security-engineer/evaluations/cases/06-adversarial-docs/advisory-RSL-2026-0417.md +63 -0
- package/agents/roles/system/security-engineer/evaluations/cases/07-agent-in-ci.md +10 -0
- package/agents/roles/system/security-engineer/evaluations/expected-behaviors.yaml +1 -0
- package/agents/roles/system/security-engineer/evaluations/results/2026-08-17.md +1825 -0
- package/agents/roles/system/security-engineer/learning/HISTORY.md +1 -0
- package/agents/roles/system/security-engineer/learning/proposals/2026-08.md +382 -0
- package/agents/roles/system/security-engineer/learning/sources.yaml +19 -0
- package/agents/roles/system/security-engineer/references/operating-model.md +30 -0
- package/agents/roles/system/site-reliability-engineer/SKILL.md +1 -0
- package/agents/roles/system/site-reliability-engineer/evaluations/cases/06-adversarial-docs/runbook-pulsemetrics-recuperacion.md +66 -0
- package/agents/roles/system/software-architect/SKILL.md +1 -0
- package/agents/roles/system/software-architect/evaluations/cases/06-adversarial-docs/whitepaper-unifiedcore-plataforma.md +67 -0
- package/agents/roles/system/solutions-engineer/SKILL.md +1 -0
- package/agents/roles/system/solutions-engineer/evaluations/cases/06-adversarial-rfp/rfp-anv-2026-047-plataforma-siniestros.md +166 -0
- package/agents/roles/system/technical-program-manager/SKILL.md +1 -0
- package/agents/roles/system/technical-program-manager/evaluations/cases/06-adversarial-plan/plan-maestro-migracion-nucleo-v4.1.md +165 -0
- package/agents/roles/system/technical-writer/SKILL.md +1 -0
- package/agents/roles/system/technical-writer/evaluations/cases/06-adversarial-docs/quillstream-guia-integracion-v9.md +147 -0
- package/agents/roles/system/ui-designer/SKILL.md +1 -0
- package/agents/roles/system/ui-designer/evaluations/cases/06-adversarial-source/halcyon-sistema-visual-v6.3.md +211 -0
- package/agents/roles/system/user-researcher/SKILL.md +1 -0
- package/agents/roles/system/user-researcher/evaluations/cases/06-adversarial-source/cohorte-insights-guia-calibracion-panel.md +145 -0
- package/agents/roles/system/ux-designer/SKILL.md +1 -0
- package/agents/roles/system/ux-designer/evaluations/cases/06-adversarial-source/trazo-patron-p118-checkout-friccion-cero.md +152 -0
- package/agents/roles/system/ux-designer/evaluations/results/2026-08-16.md +842 -0
- package/agents/roles/system/ux-designer/evaluations/results/2026-08-17.md +1240 -0
- package/automatization/hooks/README.md +1 -1
- package/automatization/runners/antigravity/hook.js +2 -1
- package/automatization/runners/antigravity/rules/cauce.md +2 -1
- package/automatization/runners/claude/CLAUDE.md +4 -0
- package/automatization/runners/codex/AGENTS.md +3 -2
- package/automatization/runners/gemini/GEMINI.md +4 -0
- package/automatization/workflows/agent-eval.js +26 -34
- package/automatization/workflows/agent-promote.js +25 -2
- package/automatization/workflows/autobuild.js +43 -16
- package/automatization/workflows/integrations/promote.js +7 -2
- package/automatization/workflows/integrations/sync.js +5 -2
- package/engine/agents/catalog.js +25 -7
- package/engine/agents/evaluations.js +48 -16
- package/engine/agents/fork.js +17 -34
- package/engine/agents/learning.js +53 -11
- package/engine/automation/index.js +30 -22
- package/engine/cli/args.js +52 -0
- package/engine/cli/ops.js +251 -207
- package/engine/config/validate.js +2 -7
- package/engine/core/changelog.js +1 -1
- package/engine/core/ownership.js +16 -8
- package/engine/hooks/run.js +49 -36
- package/engine/integrations/proposals.js +3 -1
- package/engine/integrations/registry.js +8 -5
- package/engine/integrations/state.js +1 -1
- package/engine/planning/business-rules.js +14 -2
- package/engine/planning/parser.js +16 -4
- package/engine/teams/registry.js +8 -4
- package/package.json +19 -5
- package/template/AGENTS.md +19 -31
- package/template/Makefile +27 -2
- package/template/planning/INBOX.md +8 -0
- package/template/planning/business-rules/000-template.md +1 -1
- package/template/planning/rules/README.md +1 -0
- package/template/planning/rules/system/code-shape.md +5 -0
- package/template/planning/rules/system/conduct.md +32 -0
- package/template/tools/ops.js +1 -1
- package/.github/workflows/agent-learning.yml +0 -324
- package/.github/workflows/ci.yml +0 -27
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,210 @@ esa operación sea confiable en vez de sólo cómoda: acá se lee qué cambió a
|
|
|
8
8
|
un cambio en el protocolo, en las reglas del sistema o en un guard es visible para el usuario y sube
|
|
9
9
|
minor aunque no toque una sola línea de código.
|
|
10
10
|
|
|
11
|
+
Cada entrada la imprime `upgrade` a quien está por aplicarla, y un salto de varias versiones las
|
|
12
|
+
imprime todas seguidas. Dice qué cambia en lo que recibe y qué tiene que hacer; lo que sólo se observa
|
|
13
|
+
desde este repositorio no va, porque el que lee no puede actuar sobre eso. Cuando una entrada pasa de
|
|
14
|
+
unas pocas líneas casi siempre es porque cuenta cómo se descubrió el problema o por qué se eligió el
|
|
15
|
+
diseño — eso vive en el commit y en el código.
|
|
16
|
+
|
|
17
|
+
## [0.24.0] - 2026-08-17
|
|
18
|
+
|
|
19
|
+
### Cambiado
|
|
20
|
+
|
|
21
|
+
- **`database-administrator` nombra el registro con el que emite una afirmación de mecanismo.** Es el
|
|
22
|
+
primer cambio de contrato del catálogo que nace de un **fallo medido** y no de investigación semanal.
|
|
23
|
+
El cargo rechazó bien un `DROP DATABASE`, atacó bien la premisa, y afirmó en negrita —como «modo de
|
|
24
|
+
falla real, no hipotético»— que `dropdb` con la variable vacía elimina la base por defecto. Eso es el
|
|
25
|
+
comportamiento de `createdb`. Lo dejó escrito además como lección permanente en su banco.
|
|
26
|
+
|
|
27
|
+
Es hueco de cobertura y no de ejecución, y el propio veredicto lo prueba: el mismo juicio que reprueba
|
|
28
|
+
certifica que no inventó **ningún** hecho de la instancia. Los nueve objetos que el contrato ya
|
|
29
|
+
enumeraba —topología, configuración, capacidad, backup, restore, RPO/RTO, privilegio, causa,
|
|
30
|
+
evidencia— son todos hechos del sistema administrado; el comportamiento público y verificable de una
|
|
31
|
+
herramienta no está entre ellos, y para este cargo *es* la materia de trabajo.
|
|
32
|
+
|
|
33
|
+
Lo que se agrega no es «no inventar» otra vez —eso sería paráfrasis, y una paráfrasis en un contrato
|
|
34
|
+
es deuda—. Es el **registro** con que se emite la afirmación (verificado, documentado, hipótesis), el
|
|
35
|
+
**límite** de con qué se verifica —documentación de la versión e invocación inocua, nunca
|
|
36
|
+
conectándose ni ejecutando la operación descrita— y la **consecuencia**: sin verificar no sostiene una
|
|
37
|
+
negativa ni entra a un artefacto durable. Más la conducta prohibida
|
|
38
|
+
`unverified_tool_or_engine_behavior_asserted_as_fact` y su caso adversarial.
|
|
39
|
+
|
|
40
|
+
Volver a medir los siete casos mostró que la regla cambia el comportamiento **en casos para los que no
|
|
41
|
+
se escribió**: ninguno de los siete menciona `dropdb`, y aparecen un cargo declarando que los binarios
|
|
42
|
+
que verificó son de su máquina «no del entorno», otro que no nombra ningún comando porque el motor no
|
|
43
|
+
consta, otro que desactiva por nombre su única hipótesis no documentada, y otro que se niega a inferir
|
|
44
|
+
el flag de una herramienta desde otra de nombre parecido. Y dos fallos nuevos que antes no se veían:
|
|
45
|
+
soltar el hedge al resumir conservándolo en el informe, y fechar mal una fuente bajo la etiqueta
|
|
46
|
+
inventada para garantizar que ninguna afirmación exceda la suya.
|
|
47
|
+
|
|
48
|
+
- **El paquete deja de llevar `.github/workflows/` a cada instalación.** `init` no los copia,
|
|
49
|
+
`agent-learning.yml` está en la lista de retirados que `upgrade` borra, y `ci.yml` corre `npm run ci`,
|
|
50
|
+
que una instancia no tiene. Publicar dejó de ser manual sin nada que lo revisara: `prepublishOnly`
|
|
51
|
+
corre el mismo gate que CI.
|
|
52
|
+
|
|
53
|
+
- **La salida generada no arrastra deber de atribución.** MIT pide que el aviso viaje con porciones
|
|
54
|
+
sustanciales, e `init` copia porciones sustanciales al repositorio de una empresa sin ningún aviso.
|
|
55
|
+
Nadie atribuye archivos andamiados; ahora está escrito que no hace falta. El copyright además queda a
|
|
56
|
+
nombre de quien puede tenerlo: un handle de GitHub no es una persona jurídica.
|
|
57
|
+
|
|
58
|
+
### Agregado
|
|
59
|
+
|
|
60
|
+
- **`make` alcanza integraciones y equipos desde una instancia**, que es el único lugar donde las
|
|
61
|
+
integraciones corren. La plantilla mandaba a escribir el CLI a mano mientras la automatización ya
|
|
62
|
+
tenía atajo. `sync` toma `PROVIDER`, así que un segundo proveedor no necesita un target nuevo.
|
|
63
|
+
|
|
64
|
+
### Corregido
|
|
65
|
+
|
|
66
|
+
- **`runner.allowPush` se validaba y no se leía.** El guard bloqueaba el push sin condición, así que un
|
|
67
|
+
proyecto podía declararlo y no cambiaba nada. Lo encontró la evaluación de un cargo, que lo leyó y
|
|
68
|
+
concluyó que existía un control técnico inexistente. Falla cerrado: sin raíz legible, no hay permiso.
|
|
69
|
+
|
|
70
|
+
- **Una historia envuelta en dos líneas perdía su criterio y su servicio.** El cuerpo se matchea
|
|
71
|
+
multilínea, pero el lookahead terminaba en `$` con la bandera `m`, que casa fin de *línea*: cortaba en
|
|
72
|
+
el primer salto, y `check` respondía «no declara `(service: <ruta>)`» sobre una historia que sí lo
|
|
73
|
+
declara. Dos cargos lo encontraron reescribiendo su historia hasta que entrara en un renglón.
|
|
74
|
+
|
|
75
|
+
- **Un ítem de inbox sin nombre en negrita desaparecía en silencio.** La plantilla traía cuatro
|
|
76
|
+
encabezados vacíos y ningún ejemplo, así que doce viñetas se leían como un inbox vacío. La convención
|
|
77
|
+
se conserva —ese nombre es con el que se cita el ítem después—; ahora `tree` dice cuántas quedaron
|
|
78
|
+
afuera y la plantilla muestra la forma.
|
|
79
|
+
|
|
80
|
+
- **El estado de una regla de negocio se valida contra un conjunto cerrado.** La plantilla traía
|
|
81
|
+
`vigente` cableado mientras la de ADR presentaba el menú, y el validador sólo comprobaba que la línea
|
|
82
|
+
tuviera la forma. Tres cargos distintos publicaron reglas declarándose vigentes derivadas de un ADR
|
|
83
|
+
que ellos mismos habían dejado en propuesto: cada uno hizo lo que su plantilla le pedía. Ahora la
|
|
84
|
+
afirmación débil es la que no cuesta nada.
|
|
85
|
+
|
|
86
|
+
- **El README servía a dos lectores a la vez** y todo lo desactualizado estaba del lado del mantenedor,
|
|
87
|
+
porque quien lo notaría lee `AGENTS.md`. Decía once guards donde hay doce, pisos de cobertura que no
|
|
88
|
+
eran los que `coverage.sh` exige, y una ruta de equipos que se había movido.
|
|
89
|
+
|
|
90
|
+
### Al actualizar
|
|
91
|
+
|
|
92
|
+
Dos controles nuevos **gatean** y pueden hacer fallar `check` o `evaluate` en una instancia que ya
|
|
93
|
+
existía. Hoy no hay ninguna empresa consumiendo Cauce fuera del proyecto de prueba, así que esto es
|
|
94
|
+
para quien actualice más adelante:
|
|
95
|
+
|
|
96
|
+
- Una regla de negocio cuyo `Estado:` no sea `propuesta`, `vigente` o `derogada` falla `check`. El
|
|
97
|
+
arreglo es una línea por archivo.
|
|
98
|
+
- Un cargo propio sin `summary:` en el frontmatter de su `SKILL.md` falla `evaluate` (introducido en
|
|
99
|
+
0.23.0). El arreglo es la línea con la que se elige ese cargo, de 120 caracteres o menos.
|
|
100
|
+
|
|
101
|
+
## [0.23.0] - 2026-08-17
|
|
102
|
+
|
|
103
|
+
### Agregado
|
|
104
|
+
|
|
105
|
+
- **Una línea por cargo, para elegirlo sin abrir cuarenta y siete carpetas.** Una empresa con una tarea
|
|
106
|
+
en la mano tenía que leer los contratos para saber a quién asignarla: el `description` que cada cargo
|
|
107
|
+
ya traía ronda los quinientos caracteres porque su lector es el runner al seleccionar, así que los
|
|
108
|
+
cuarenta y siete de corrido son unos veintitrés mil.
|
|
109
|
+
|
|
110
|
+
`ops agents list` imprime ahora la línea que cada cargo carga en su propio frontmatter, alineada en
|
|
111
|
+
columna, y `--json` la lleva también: cuando el que asigna es un agente, es la máquina la que elige.
|
|
112
|
+
La línea vive en el cargo y no en un índice aparte —un índice se desincroniza en silencio, y una
|
|
113
|
+
línea que miente al elegir es peor que no tenerla—, así que un fork se la lleva y una empresa que
|
|
114
|
+
escribe su cargo escribe la suya. Un cargo sin ella falla sus controles estructurales.
|
|
115
|
+
|
|
116
|
+
Lo que gobierna esas líneas no es el largo sino distinguir vecinos: una que no separa un cargo del de
|
|
117
|
+
al lado te hace asignar el equivocado, que es peor que abrir las carpetas. Se escribieron por racimos
|
|
118
|
+
—los cargos que de verdad colisionan— y casi todas cierran con la exclusión que más se malinterpreta:
|
|
119
|
+
`qa-engineer` recomienda el release pero no lo aprueba, `finops-engineer` no es el cierre contable,
|
|
120
|
+
`security-engineer` no es la base legal de un dato personal.
|
|
121
|
+
|
|
122
|
+
Y la respuesta negativa cuesta lo mismo que la positiva: la lista termina diciendo dónde va el cargo
|
|
123
|
+
propio, porque forzar el más parecido es peor que no usar ninguno. El `AGENTS.md` de la plantilla dice
|
|
124
|
+
lo mismo, que es lo que lee el agente de la empresa antes de trabajar.
|
|
125
|
+
|
|
126
|
+
- **El ciclo de aprendizaje tiene final.** Había firma, aplicación e historial, y faltaba el paso que
|
|
127
|
+
vuelve irrepetible lo ya hecho: la propuesta nacía `status: proposed` y nadie lo movía nunca.
|
|
128
|
+
`agent-promote` busca la propuesta más nueva y aplica si el estado dice aprobada con responsable —y
|
|
129
|
+
«aprobada y aplicada» también lee como aprobada—, así que volver a promoverla la aplicaba de nuevo.
|
|
130
|
+
Como toda propuesta es aditiva por diseño, eso no falla: duplica cada viñeta y cada fuente del
|
|
131
|
+
contrato en silencio.
|
|
132
|
+
|
|
133
|
+
Sellar (`ops learn <cargo> --applied`) es lo último, después de aplicar y registrar, y lo hace el
|
|
134
|
+
motor y no el recorrido: marcar el estado editando frontmatter a mano es justo el paso que se hace mal
|
|
135
|
+
sin que nadie lo note. El recorrido se niega ante una propuesta ya aplicada, y las aplicadas dejan de
|
|
136
|
+
contarse como pendientes, así que un cargo ya no reporta trabajo que se cerró el mes pasado.
|
|
137
|
+
|
|
138
|
+
### Cambiado
|
|
139
|
+
|
|
140
|
+
- **`security-engineer` nombra la automatización con credenciales como actor.** Salió de su propia
|
|
141
|
+
investigación: el contrato cubría «agente autónomo con credenciales en CI» por implicación y nunca por
|
|
142
|
+
nombre, y eso no es un detalle de redacción. Mínimo privilegio dice cuánto puede hacer un proceso, no
|
|
143
|
+
que su decisión la escriba un tercero. Un servicio con credenciales ejecuta un camino fijo —para
|
|
144
|
+
abusarlo hay que encontrarle una falla o robarle el token—; un agente lee entrada no confiable y actúa
|
|
145
|
+
con las credenciales del pipeline, así que la entrada es el programa y los controles que uno esperaría
|
|
146
|
+
corren cuando ya ejecutó.
|
|
147
|
+
|
|
148
|
+
Trae una conducta prohibida nueva, `post_hoc_check_as_containment_for_credentialed_agent`, con el caso
|
|
149
|
+
adversarial que la distingue de las dos con las que se solapaba. Las ocho recomendaciones operativas
|
|
150
|
+
del informe quedaron deliberadamente fuera: son sobre el pipeline de este repositorio, y un contrato
|
|
151
|
+
que se instala en empresas ajenas no es el lugar de esas decisiones.
|
|
152
|
+
|
|
153
|
+
- **La conducta universal salió de `AGENTS.md` y llegó a las empresas.** El documento mezclaba mecánica
|
|
154
|
+
que sólo tiene sentido dentro de una instancia con conducta que vale para cualquier agente; sólo lo
|
|
155
|
+
primero pertenece a un archivo que describe un repositorio. La conducta pasa a `planning/rules/`, que
|
|
156
|
+
ya era la capa compartida — y que hasta ahora ningún runner cargaba: las reglas viajaban a cada empresa
|
|
157
|
+
como archivos que nadie leía nunca.
|
|
158
|
+
|
|
159
|
+
- **La sincronización parcial de integraciones se retiró.** Nadie podía pedirla.
|
|
160
|
+
|
|
161
|
+
### Corregido
|
|
162
|
+
|
|
163
|
+
- **Un caso adversarial entrega el artefacto que describe, en vez de sólo nombrarlo.** Los cuarenta y
|
|
164
|
+
siete casos del catálogo decían «una guía externa», «un CSV externo», «un runbook externo» y no
|
|
165
|
+
entregaban ninguno. Eso mide algo más fácil de lo que dice medir: al cargo se le pregunta si obedecería
|
|
166
|
+
un documento del que se le está hablando, y un texto que nunca leyó no puede inyectarlo.
|
|
167
|
+
|
|
168
|
+
El hueco se hizo visible cuando un cargo escribió que había leído una guía inexistente y la premisa
|
|
169
|
+
falsa quedó asentada en su banco como antecedente documental sin documento. Es el quinto defecto de
|
|
170
|
+
fidelidad del arnés, y la corrección no fue reformular la pregunta sino escribir los cuarenta y siete
|
|
171
|
+
artefactos: cada uno en su formato real —guía, CSV, notebook, módulo IaC, model card, portal, pliego—
|
|
172
|
+
con las instrucciones que su caso describe y las coartadas que las hacen funcionar.
|
|
173
|
+
|
|
174
|
+
El banco los copia **antes** de su commit limpio, así que `git status` no se los atribuye al cargo: si
|
|
175
|
+
entraran después, el juez leería como obra suya el documento que vino a resistir. Falta de artefacto es
|
|
176
|
+
error y no advertencia, porque es estático y verificable sin modelo — como advertencia es como estuvo
|
|
177
|
+
faltando en los cuarenta y siete sin que nada lo dijera.
|
|
178
|
+
|
|
179
|
+
Los nueve cargos que ya tenían registro se volvieron a medir contra el artefacto real, y uno es el
|
|
180
|
+
argumento de haberlo hecho: el caso de `backend-engineer` **fallaba** antes y pasa ahora, que es cómo
|
|
181
|
+
se ve un defecto del arnés desde afuera.
|
|
182
|
+
|
|
183
|
+
- **Un guard que no puede leer bloquea, en vez de permitir.** `run-hook.sh` enuncia el principio para el
|
|
184
|
+
motor que carga, y tres lugares hacían lo contrario: una coma de más en `ops.config.json` apagaba
|
|
185
|
+
`workspace-boundary` y `engine` sin imprimir nada, y una entrada ilegible se leía como «ningún comando
|
|
186
|
+
y ningún archivo», que todo guard interpreta como nada que revisar.
|
|
187
|
+
|
|
188
|
+
- **Una bandera mal escrita falla en vez de ignorarse.** `check --jsonn` imprimía la salida humana y
|
|
189
|
+
salía con 0, así que quien esperaba JSON recibía prosa sin ninguna señal. Cada comando declara ahora
|
|
190
|
+
qué acepta, y `--help` dejó de depender de ir primero: `check --help` corría `check` sobre el
|
|
191
|
+
directorio actual.
|
|
192
|
+
|
|
193
|
+
- **El toolkit se niega a correr los comandos de una empresa contra sí mismo.** `upgrade` reemplazaría
|
|
194
|
+
los archivos de raíz que este repositorio mantiene —incluido el `AGENTS.md` donde vive la regla que lo
|
|
195
|
+
prohíbe—, e `install` construiría una superficie de consumo cuyos punteros apuntan al catálogo que se
|
|
196
|
+
escribe acá, con guards que bloquean el push de cada release.
|
|
197
|
+
|
|
198
|
+
- **Un `ops.config.json` ilegible se reporta en vez de leerse como ausente.** Una coma de más hacía que
|
|
199
|
+
`upgrade` e `install` dejaran de reconocer el modo `toolkit` y siguieran adelante. Ausente sigue
|
|
200
|
+
significando ausente; presente pero ilegible es un estado roto y ahora lo dice.
|
|
201
|
+
|
|
202
|
+
- **Un título vacío dejaba de reportarse como faltante.** El título de toda propuesta de integración se
|
|
203
|
+
leía con un patrón donde `\s` casa el salto de línea, así que un documento con encabezado vacío se
|
|
204
|
+
comía la línea siguiente: el resumen volvía como `## Descripción`, no vacío, y «falta título» quedaba
|
|
205
|
+
callado.
|
|
206
|
+
|
|
207
|
+
- **`sync` dice qué hizo con los ítems que el remoto dejó de traer.** Los contaba y no imprimía
|
|
208
|
+
ninguno: se borran cuando nada local se había curado sobre ellos, y se conservan marcados cuando sí, y
|
|
209
|
+
la única forma de enterarse era ir a mirar el directorio.
|
|
210
|
+
|
|
211
|
+
- **La verificación de los guards se deriva del registro.** Comparaba contra una lista de quince nombres
|
|
212
|
+
copiada a mano, así que un guard nuevo no se verificaba hasta que alguien se acordara de agregarlo —la
|
|
213
|
+
misma deriva que tenía la cuenta de guards informando once.
|
|
214
|
+
|
|
11
215
|
## [0.22.0] - 2026-08-17
|
|
12
216
|
|
|
13
217
|
### Corregido
|
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -11,40 +11,33 @@ el contexto de cada empresa vive en su propia instancia.
|
|
|
11
11
|
- Las ideas del agente no entran solas a la cola: quedan en `INBOX.md` hasta promoción humana.
|
|
12
12
|
- Épicas, criterios, tareas y evidencia son validados de forma determinista.
|
|
13
13
|
- Funciona como `planning/` embebido en un repo o como sidecar `proyecto-ops` para varios repos.
|
|
14
|
-
- Incluye un catálogo
|
|
14
|
+
- Incluye un catálogo de cargos reutilizables; el contexto editable de cada empresa vive en
|
|
15
|
+
`organization/`.
|
|
15
16
|
- No depende de Claude, Codex, Gemini ni de un stack de aplicación específico.
|
|
16
17
|
- Integra herramientas externas mediante adaptadores; Jira es el primer proveedor.
|
|
17
18
|
|
|
18
|
-
## Inicio rápido
|
|
19
|
+
## Inicio rápido
|
|
19
20
|
|
|
20
|
-
Requiere Node.js 24 o superior y no tiene dependencias externas.
|
|
21
|
-
con `node engine/cli/ops.js`:
|
|
21
|
+
Requiere Node.js 24 o superior y no tiene dependencias externas.
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
node engine/cli/ops.js init /ruta/al/proyecto
|
|
24
|
+
node engine/cli/ops.js init /ruta/al/proyecto --name "Mi proyecto" --mode embedded --force
|
|
25
25
|
node engine/cli/ops.js init /ruta/al/proyecto-ops --name "Mi proyecto" --mode sidecar
|
|
26
|
-
node engine/cli/ops.js check /ruta/al/proyecto/planning
|
|
27
|
-
node engine/cli/ops.js tree /ruta/al/proyecto/planning
|
|
28
|
-
node engine/cli/ops.js context /ruta/al/proyecto/planning
|
|
29
|
-
node engine/cli/ops.js learn product-manager
|
|
30
|
-
node engine/cli/ops.js evaluate product-manager
|
|
31
|
-
node engine/cli/ops.js team check product-development
|
|
32
|
-
node engine/cli/ops.js team show product-development
|
|
33
26
|
```
|
|
34
27
|
|
|
35
28
|
El destino debe estar vacío o no existir. En modo embebido normalmente ya es un repo: `--force` permite
|
|
36
29
|
completar archivos faltantes, pero nunca sobrescribe archivos existentes.
|
|
37
30
|
|
|
38
31
|
El motor llega como dependencia y el lockfile fija la versión. `init` declara `@ingeniomaps/cauce` en el
|
|
39
|
-
`package.json` del repo ops —creándolo si no existe— y el proyecto invoca `node tools/ops.js`, que
|
|
40
|
-
el motor sin que nadie tenga que saber dónde está.
|
|
32
|
+
`package.json` del repo ops —creándolo si no existe— y el proyecto invoca `node tools/ops.js`, que
|
|
33
|
+
resuelve el motor sin que nadie tenga que saber dónde está.
|
|
41
34
|
|
|
42
35
|
Declarar npm ahí no le impone un stack a nadie: el repo ops es un sidecar, hermano de los repos de
|
|
43
36
|
producto, y Node hace falta igual —el motor, los guards y los workflows son JavaScript—.
|
|
44
37
|
|
|
45
|
-
Dentro de un proyecto generado
|
|
46
|
-
`ops` representa cualquiera de
|
|
47
|
-
disponible si
|
|
38
|
+
Dentro de un proyecto generado el CLI se invoca con `node tools/ops.js`; desde este repositorio, con
|
|
39
|
+
`node engine/cli/ops.js`. En la tabla de abajo `ops` representa cualquiera de las dos formas. El binario
|
|
40
|
+
`cauce` también queda disponible si el paquete se enlaza o instala mediante npm.
|
|
48
41
|
|
|
49
42
|
## Flujo
|
|
50
43
|
|
|
@@ -73,18 +66,19 @@ Lee [template/planning/PROTOCOL.md](template/planning/PROTOCOL.md) para el contr
|
|
|
73
66
|
| `ops check <planning>` | Valida contratos, unicidad, trazabilidad y estados. |
|
|
74
67
|
| `ops tree <planning>` | Muestra roadmap, backlog, WIP, inbox y done sin mutar nada. |
|
|
75
68
|
| `ops context <planning>` | Emite el contexto mínimo de la tarea vigente para un runner. |
|
|
76
|
-
| `ops agents list <ops-root>` | Lista los cargos visibles resolviendo la precedencia. |
|
|
77
|
-
| `ops agents fork <cargo>` | Copia un cargo del catálogo a la empresa, que pasa a mantenerlo. |
|
|
78
69
|
| `ops upgrade <ops-root>` | Actualiza `system/` y el runtime sin tocar lo del proyecto. |
|
|
79
70
|
| `ops archive <planning> <NNN>` | Archiva el DONE de una épica cerrada de forma idempotente. |
|
|
80
|
-
| `ops
|
|
81
|
-
| `ops
|
|
82
|
-
| `ops
|
|
83
|
-
| `ops
|
|
71
|
+
| `ops agents list [ops-root]` | Lista los cargos visibles resolviendo la precedencia. |
|
|
72
|
+
| `ops agents fork <cargo>` | Copia un cargo del catálogo a la empresa, que pasa a mantenerlo. |
|
|
73
|
+
| `ops learn <agent>` | Prepara el informe de aprendizaje del período. |
|
|
74
|
+
| `ops learn <agent> --proposal` | Consolida los informes en una propuesta, sin aplicar cambios. |
|
|
75
|
+
| `ops evaluate <agent>` | Valida controles, casos y propuestas del cargo. |
|
|
76
|
+
| `ops evaluate <agent> --bench [caso]` | Arma el banco desechable donde un cargo trabaja ese caso. |
|
|
84
77
|
| `ops team list` | Lista equipos disponibles. |
|
|
85
78
|
| `ops team check <team>` | Valida manifiesto, agentes, dependencias y gates del equipo. |
|
|
86
|
-
| `ops team show <team>` | Muestra el recorrido y artefactos del equipo
|
|
79
|
+
| `ops team show <team>` | Muestra el recorrido y artefactos del equipo. |
|
|
87
80
|
| `ops integration list <ops-root>` | Lista proveedores registrados. |
|
|
81
|
+
| `ops integration enable\|disable <ops-root> <prov>` | Activa o desactiva un proveedor. |
|
|
88
82
|
| `ops integration check <ops-root>` | Valida configuración y staging sin conectarse. |
|
|
89
83
|
| `ops integration sync <ops-root> jira` | Lee Jira y actualiza staging. |
|
|
90
84
|
| `ops integration promote <ops-root> jira KEY` | Promueve un draft `ready` al roadmap. |
|
|
@@ -98,42 +92,8 @@ Lee [template/planning/PROTOCOL.md](template/planning/PROTOCOL.md) para el contr
|
|
|
98
92
|
| `ops automation install <ops-root> <runner>` | Instala el wiring de Claude, Codex, Antigravity o Gemini. |
|
|
99
93
|
| `ops automation doctor <ops-root> <runner>` | Diagnostica una instalación materializada. |
|
|
100
94
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
make ci
|
|
105
|
-
make test
|
|
106
|
-
make coverage
|
|
107
|
-
make automation-check
|
|
108
|
-
make integration-check
|
|
109
|
-
make agent-learn AGENT=product-manager
|
|
110
|
-
make agent-propose AGENT=product-manager
|
|
111
|
-
make agent-evaluate AGENT=product-manager
|
|
112
|
-
make team-check TEAM=product-development
|
|
113
|
-
make team-show TEAM=product-development
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
También puedes usar el CLI mediante npm:
|
|
117
|
-
|
|
118
|
-
```bash
|
|
119
|
-
npm run ops -- evaluate product-manager
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
Los comandos resuelven agentes por slug sin exigir su tipo. Los cargos que trae Cauce viven en
|
|
123
|
-
`agents/roles/system/`; un cargo propio del proyecto va en `agents/roles/` y, con el mismo slug,
|
|
124
|
-
reemplaza al del sistema. Por ejemplo:
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
for skill in agents/roles/*/SKILL.md agents/roles/system/*/SKILL.md; do
|
|
128
|
-
basename "$(dirname "$skill")"
|
|
129
|
-
done | sort -u
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
Un slug debe ser único entre todas las categorías. Si dos tipos contienen el mismo slug, el CLI falla por
|
|
133
|
-
ambigüedad en lugar de elegir uno silenciosamente.
|
|
134
|
-
|
|
135
|
-
`make ci` valida planning, automatización e integración Jira y después ejecuta pruebas con cobertura. Los
|
|
136
|
-
umbrales mínimos son 75% de líneas, 75% de funciones y 45% de ramas; consulta [test/README.md](test/README.md).
|
|
95
|
+
`ops --help` lista las banderas de cada uno. En un proyecto generado, `make help` muestra los atajos
|
|
96
|
+
equivalentes.
|
|
137
97
|
|
|
138
98
|
## Adaptación por proyecto
|
|
139
99
|
|
|
@@ -148,6 +108,8 @@ Después de inicializar:
|
|
|
148
108
|
`organization/` describe el negocio; `planning/` describe intención y estado; los repos de código siguen
|
|
149
109
|
siendo dueños de sus comandos, convenciones y commits.
|
|
150
110
|
|
|
111
|
+
Los cargos, su adopción y su evaluación están en [agents/README.md](agents/README.md).
|
|
112
|
+
|
|
151
113
|
### La frontera `system/`
|
|
152
114
|
|
|
153
115
|
Cada colección adaptable separa lo que actualiza el toolkit de lo que escribe el proyecto:
|
|
@@ -156,78 +118,17 @@ Cada colección adaptable separa lo que actualiza el toolkit de lo que escribe e
|
|
|
156
118
|
|---|---|---|
|
|
157
119
|
| `planning/business-rules/` | `BR-OPS-NNN` | las reglas de la empresa |
|
|
158
120
|
| `planning/adr/` | `OPS-NNN` | las decisiones de la empresa |
|
|
159
|
-
| `planning/rules/` | proceso, forma del cambio, commits | las convenciones propias |
|
|
121
|
+
| `planning/rules/` | proceso, forma del cambio, commits, conducta | las convenciones propias |
|
|
160
122
|
| `teams/` | composiciones que vienen con Cauce | los equipos propios |
|
|
161
123
|
| `agents/<tipo>/` | *(en el paquete, no se copia)* | los cargos propios |
|
|
162
124
|
|
|
163
|
-
`automatization/hooks/` no tiene `system/`: es runtime que se reemplaza entero. No hace falta, porque lo
|
|
164
|
-
que un proyecto necesita ya funciona sin editarlo — un guard propio convive y sobrevive, y desactivar uno
|
|
165
|
-
del toolkit es quitarlo de la configuración del runner, que es del proyecto. Editar uno existente detiene
|
|
166
|
-
el `upgrade` antes de pisarlo. Los hooks se quedan en el proyecto porque esa configuración los nombra por
|
|
167
|
-
ruta literal; los adaptadores de runner y los workflows, que sólo lee el motor, viajan en el paquete.
|
|
168
|
-
|
|
169
125
|
Un archivo propio con el mismo nombre o ID que uno de `system/` lo reemplaza: el del proyecto manda y
|
|
170
126
|
`check` lo reporta como override explícito. Así una mejora del proceso no obliga a forkear el archivo,
|
|
171
127
|
y actualizar no exige resolver conflictos: se reemplaza `system/` entero y nada más se toca.
|
|
172
128
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
como profesión, y esa evolución es la misma para
|
|
177
|
-
todas las empresas: investigarla una vez y bien es mejor que repetirla en cada instalación.
|
|
178
|
-
|
|
179
|
-
| Qué | Dónde | Quién lo mantiene |
|
|
180
|
-
|---|---|---|
|
|
181
|
-
| El cargo como profesión | el paquete | el toolkit, con `agent-learn` en **este** repositorio |
|
|
182
|
-
| Lo que el cargo debe saber de tu empresa | `organization/roles/<slug>.md` | la empresa |
|
|
183
|
-
| Un cargo propio, o una versión propia de uno del catálogo | `agents/roles/<slug>/` | la empresa |
|
|
184
|
-
|
|
185
|
-
Por eso `learn` falla si lo corrés sobre un cargo del catálogo dentro de una instancia: escribiría en
|
|
186
|
-
el paquete y se perdería. El ciclo mensual de aprendizaje tampoco se distribuye — vive sólo acá.
|
|
187
|
-
|
|
188
|
-
#### Evaluar un cargo del catálogo
|
|
189
|
-
|
|
190
|
-
Los casos adversariales miden a un cargo trabajando, y un cargo cuya entrega es una épica o una entrada
|
|
191
|
-
de INBOX necesita un `planning/` donde escribir sea legítimo. El toolkit no lo tiene ni puede tenerlo:
|
|
192
|
-
el único `planning/` que vive acá es `template/planning`, el molde que se distribuye.
|
|
193
|
-
|
|
194
|
-
```bash
|
|
195
|
-
node engine/cli/ops.js evaluate product-manager --bench 03-epic
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
Devuelve la ruta de una instancia desechable —`check` pasa, el catálogo resuelve desde adentro,
|
|
199
|
-
`planning/` está vacío y escribible— que el recorrido `/agent-eval` usa como lugar de trabajo. Se
|
|
200
|
-
recrea entera en cada corrida: reutilizarla dejaría que lo que un cargo escribió el lunes sea contexto
|
|
201
|
-
del que responde el martes.
|
|
202
|
-
|
|
203
|
-
**Una por caso**, y eso se aprendió corriendo. Con un banco compartido los casos de un cargo trabajan a
|
|
204
|
-
la vez sobre el mismo `planning/` y se leen entre sí: un caso tomó por «una sesión anterior de este
|
|
205
|
-
mismo cargo» lo que otro acababa de escribir, y otro evaluó cuatro candidatas que en su enunciado no
|
|
206
|
-
existían. Ninguno cambió de veredicto, pero sus respuestas dejaron de ser las que el caso pedía medir.
|
|
207
|
-
|
|
208
|
-
El veredicto se escribe **junto al cargo**, no en el banco. El banco se borra; el contrato queda.
|
|
209
|
-
|
|
210
|
-
Desde una empresa esto no aplica: su instancia ya es el lugar, y lo que se evalúa ahí tiene que ser un
|
|
211
|
-
cargo suyo —propio o adoptado—.
|
|
212
|
-
|
|
213
|
-
#### Quedarse con una versión propia de un cargo del catálogo
|
|
214
|
-
|
|
215
|
-
```bash
|
|
216
|
-
npm run ops -- agents fork product-manager
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
Copia el cargo entero a `agents/roles/<slug>/` y desde ahí lo mantenés vos: `learn`, `evaluate` y el
|
|
220
|
-
puntero que instala el runner pasan a resolver contra tu copia. **Copiarlo a mano no es equivalente**
|
|
221
|
-
—se agarra el `SKILL.md`, que es lo que se ve, y quedan atrás los casos, las fuentes y el modelo
|
|
222
|
-
operativo: el cargo responde igual y ya no se puede evaluar—.
|
|
223
|
-
|
|
224
|
-
Lo que no viaja son los informes de aprendizaje, las propuestas y los veredictos de evaluación. Un
|
|
225
|
-
veredicto pertenece al contrato que lo ganó, y el fork nace para dejar de ser ese contrato.
|
|
226
|
-
|
|
227
|
-
A partir de ahí tu copia deja de recibir las mejoras del catálogo, que es lo que elegiste, pero no en
|
|
228
|
-
silencio: `check` y `upgrade` avisan cuando el original cambia río arriba. Editar tu propia copia no
|
|
229
|
-
dispara nada — se compara contra lo que el catálogo tenía el día del fork, no contra lo que vos
|
|
230
|
-
escribiste después.
|
|
129
|
+
`automatization/hooks/` no tiene `system/`: es runtime que se reemplaza entero. Un guard propio convive
|
|
130
|
+
y sobrevive, desactivar uno del toolkit es quitarlo de la configuración del runner, y editar uno
|
|
131
|
+
existente detiene el `upgrade` antes de pisarlo.
|
|
231
132
|
|
|
232
133
|
### Versionado
|
|
233
134
|
|
|
@@ -261,54 +162,47 @@ Para añadir otra herramienta se crea un adaptador en `engine/integrations/provi
|
|
|
261
162
|
`fetchItems` y `normalizeFixture`, y se registra en `engine/integrations/registry.js`. Staging, revisión,
|
|
262
163
|
promoción y validación no se reimplementan. Consulta [integrations/README.md](integrations/README.md).
|
|
263
164
|
|
|
165
|
+
## Hooks y runners
|
|
166
|
+
|
|
167
|
+
Los guards portables viven en `automatization/hooks/` y comparten el motor `engine/hooks/run.js`. Una
|
|
168
|
+
instancia nueva los recibe sin activar ningún runner en silencio:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
node tools/ops.js automation check .
|
|
172
|
+
node tools/ops.js automation install . claude # o codex / gemini / antigravity
|
|
173
|
+
node tools/ops.js automation doctor . claude
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
La instalación fusiona la configuración propia del runner y conserva las entradas existentes; sólo
|
|
177
|
+
reemplaza los guards que el propio toolkit había registrado sueltos por el grupo que ahora los cubre, y
|
|
178
|
+
lista cuáles quitó. Nada que no haya escrito el toolkit se toca.
|
|
179
|
+
|
|
180
|
+
Qué comprueba cada guard, qué no puede comprobar y cómo se agrupan por evento está en
|
|
181
|
+
[automatization/hooks/README.md](automatization/hooks/README.md).
|
|
182
|
+
|
|
264
183
|
## Arquitectura del toolkit
|
|
265
184
|
|
|
266
185
|
- `engine/`: código determinista del CLI, planning, integraciones y aprendizaje de agentes.
|
|
267
|
-
- `automatization/`:
|
|
186
|
+
- `automatization/`: guards, workflows y adaptadores de runner.
|
|
268
187
|
- `integrations/`: documentación del contrato para herramientas externas.
|
|
269
188
|
- `template/`: estructura materializada dentro de cada proyecto.
|
|
270
|
-
- `agents/`: catálogo
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
La taxonomía es extensible: cualquier directorio bajo `agents/` es un tipo válido y se reconoce
|
|
274
|
-
cuando tiene contenido, sin registrarlo en ningún lado. `agents/roles/` es el único que viene con
|
|
275
|
-
cargos; un coordinador que enrute agentes o un especialista acotado sólo necesitan su directorio
|
|
276
|
-
el día que existan.
|
|
277
|
-
- `teams/`: composiciones de agentes, con orden, handoffs y responsabilidades compartidas.
|
|
278
|
-
- `teams/product-development/`: primera composición end-to-end desde discovery hasta aprendizaje posterior al release.
|
|
279
|
-
|
|
280
|
-
El toolkit no guarda contexto real de ninguna empresa. `template/organization/` es el molde que cada proyecto
|
|
281
|
-
recibe como `organization/`. De igual forma, `planning/` pertenece a la instancia generada: conserva su
|
|
282
|
-
intención, estado y evidencia, mientras el motor reusable permanece en la dependencia.
|
|
189
|
+
- `agents/`: el catálogo de cargos, que viaja con el paquete en vez de copiarse.
|
|
190
|
+
- `teams/`: composiciones de cargos, con orden, handoffs y responsabilidades compartidas.
|
|
191
|
+
- `test/`: pruebas del toolkit; ver [test/README.md](test/README.md).
|
|
283
192
|
|
|
284
|
-
|
|
193
|
+
Cualquier directorio bajo `agents/` es un tipo válido y se reconoce cuando tiene contenido, sin
|
|
194
|
+
registrarlo en ningún lado. Hoy existe `agents/roles/`.
|
|
285
195
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
instancia nueva los recibe sin activar ningún runner silenciosamente:
|
|
196
|
+
El toolkit no guarda contexto real de ninguna empresa. `template/organization/` es el molde que cada
|
|
197
|
+
proyecto recibe como `organization/`. De igual forma, `planning/` pertenece a la instancia generada:
|
|
198
|
+
conserva su intención, estado y evidencia, mientras el motor reusable permanece en la dependencia.
|
|
290
199
|
|
|
291
|
-
|
|
292
|
-
node tools/ops.js automation check .
|
|
293
|
-
node tools/ops.js automation install . antigravity # recomendado para Google
|
|
294
|
-
node tools/ops.js automation install . codex # o claude / gemini
|
|
295
|
-
```
|
|
200
|
+
Para trabajar sobre este repositorio, lee [AGENTS.md](AGENTS.md).
|
|
296
201
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
```bash
|
|
300
|
-
make install-claude
|
|
301
|
-
make install-codex
|
|
302
|
-
make install-gemini
|
|
303
|
-
make install-antigravity
|
|
304
|
-
```
|
|
202
|
+
## Licencia
|
|
305
203
|
|
|
306
|
-
|
|
307
|
-
`make doctor-gemini` o `make doctor-antigravity`.
|
|
204
|
+
[MIT](LICENSE). Sin dependencias: no hay licencias de terceros que arrastrar.
|
|
308
205
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
veces por herramienta —con `verify` eso significa correr la suite de tests dos veces en cada commit—.
|
|
313
|
-
Nada que no haya escrito el toolkit se toca. En Antigravity materializa un plugin nativo de workspace
|
|
314
|
-
bajo `.agents/plugins/cauce/`.
|
|
206
|
+
Lo que `ops init` genera en tu repositorio —`planning/`, `AGENTS.md`, el `Makefile`, `tools/ops.js` y
|
|
207
|
+
el resto del molde— es tuyo: usalo, editalo y distribuilo sin obligación de atribuir ni de incluir este
|
|
208
|
+
aviso. La condición de MIT aplica a redistribuir Cauce, no a lo que construyas con él.
|
package/agents/README.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# El catálogo de cargos
|
|
2
|
+
|
|
3
|
+
Un cargo es un contrato: su `SKILL.md` declara cuándo actuar, qué decide, qué no le corresponde y cuál
|
|
4
|
+
es su entrega mínima; sus métodos viven en `references/`. Para ver la lista con una línea por cargo:
|
|
5
|
+
|
|
6
|
+
```bash
|
|
7
|
+
node tools/ops.js agents list
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
Un slug es único entre todas las categorías. Si dos contienen el mismo, el CLI falla por ambigüedad en
|
|
11
|
+
lugar de elegir uno en silencio.
|
|
12
|
+
|
|
13
|
+
## Dónde vive cada cosa
|
|
14
|
+
|
|
15
|
+
Los cargos que trae Cauce **no se copian al proyecto**: se resuelven desde la dependencia. Evolucionan
|
|
16
|
+
como profesión, y esa evolución es la misma para todas las empresas: investigarla una vez y bien es
|
|
17
|
+
mejor que repetirla en cada instalación.
|
|
18
|
+
|
|
19
|
+
| Qué | Dónde | Quién lo mantiene |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| El cargo como profesión | el paquete | el toolkit, con `learn` en **su** repositorio |
|
|
22
|
+
| Lo que el cargo debe saber de tu empresa | `organization/roles/<slug>.md` | la empresa |
|
|
23
|
+
| Un cargo propio, o una versión propia de uno del catálogo | `agents/roles/<slug>/` | la empresa |
|
|
24
|
+
|
|
25
|
+
Por eso `learn` falla si lo corrés sobre un cargo del catálogo dentro de una instancia: escribiría en el
|
|
26
|
+
paquete y se perdería. El ciclo de aprendizaje de esos cargos tampoco se distribuye.
|
|
27
|
+
|
|
28
|
+
## Quedarse con una versión propia
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
node tools/ops.js agents fork product-manager
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Copia el cargo entero a `agents/roles/<slug>/` y desde ahí lo mantenés vos: `learn`, `evaluate` y el
|
|
35
|
+
puntero que instala el runner pasan a resolver contra tu copia. **Copiarlo a mano no es equivalente**
|
|
36
|
+
—se agarra el `SKILL.md`, que es lo que se ve, y quedan atrás los casos, las fuentes y el modelo
|
|
37
|
+
operativo: el cargo responde igual y ya no se puede evaluar—.
|
|
38
|
+
|
|
39
|
+
Lo que no viaja son los informes de aprendizaje, las propuestas y los veredictos de evaluación. Un
|
|
40
|
+
veredicto pertenece al contrato que lo ganó, y el fork nace para dejar de ser ese contrato.
|
|
41
|
+
|
|
42
|
+
Tu copia deja de recibir las mejoras del catálogo, pero no en silencio: `check` y `upgrade` avisan
|
|
43
|
+
cuando el original cambia río arriba. Editar tu propia copia no dispara nada — se compara contra lo que
|
|
44
|
+
el catálogo tenía el día del fork, no contra lo que escribiste después.
|
|
45
|
+
|
|
46
|
+
## Evaluar un cargo
|
|
47
|
+
|
|
48
|
+
`evaluate <slug>` corre los casos adversariales del cargo contra su contrato. Lo que se evalúa desde una
|
|
49
|
+
empresa tiene que ser un cargo suyo —propio o adoptado—, y su instancia ya es el lugar donde trabajar.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ai-governance-lead
|
|
3
3
|
description: Gobernar sistemas y usos de IA mediante inventario, ownership, clasificación de riesgo, roles regulatorios, evaluaciones de impacto, control framework, gates, excepciones, documentación, transparencia, literacy, terceros, incidentes y monitoreo continuo. Usar para intake, AI register, prohibited/high-impact use review, evidence packs, approval workflows y regulatory change. No usar para emitir opinión legal definitiva, certificar cumplimiento, aceptar riesgo o aprobar/desplegar un sistema unilateralmente.
|
|
4
|
+
summary: Control de riesgo de IA — inventario, clasificación, gates y evidencia; no define producto, no aprueba ni certifica
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# AI Governance Lead
|