@ingeniomaps/cauce 0.9.0 → 0.9.2

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 CHANGED
@@ -8,6 +8,28 @@ 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
+ ## [0.9.2] - 2026-08-15
12
+
13
+ ### Corregido
14
+
15
+ - Una instancia ya no recibe un `.github/workflows/` vacío. `init` lo copiaba salteando los dos
16
+ únicos archivos que existen —`ci.yml` valida el toolkit y el ciclo de aprendizaje dejó de
17
+ distribuirse en 0.4.0—, así que creaba dos directorios y no ponía nada adentro.
18
+
19
+ ## [0.9.1] - 2026-08-15
20
+
21
+ ### Corregido
22
+
23
+ - **Una instancia no recibía `.gitignore`.** En modo dependencia eso significa commitear
24
+ `node_modules/` —el paquete entero— dentro del repo de la empresa, y sus credenciales con él. El
25
+ archivo viaja sin punto y se restituye al copiar: npm **excluye** cualquier `.gitignore` de un
26
+ tarball, así que puesto con punto habría existido en el repo del toolkit y desaparecido para todo
27
+ consumidor real.
28
+ - **`AGENTS.md` y `Makefile` se actualizan con el toolkit.** Son las reglas que un agente obedece y
29
+ los atajos que envuelven al CLI; ninguno tiene una línea de la empresa. Envejecidos mienten: el
30
+ `AGENTS.md` de una instancia seguía describiendo `automatization/runners/` como runtime del
31
+ proyecto cuatro versiones después de que `upgrade` lo retirara.
32
+
11
33
  ## [0.9.0] - 2026-08-15
12
34
 
13
35
  ### Añadido
package/engine/cli/ops.js CHANGED
@@ -83,7 +83,9 @@ function copyTemplate(source, target, replacements, force, skip = []) {
83
83
  for (const entry of fs.readdirSync(source, { withFileTypes: true })) {
84
84
  if (skip.includes(entry.name)) continue
85
85
  const from = path.join(source, entry.name)
86
- const to = path.join(target, entry.name)
86
+ // npm no incluye un `.gitignore` dentro de un tarball, así que viaja sin punto y se restituye
87
+ // acá. Sin esto el archivo existe en el repo del toolkit y desaparece para todo consumidor real.
88
+ const to = path.join(target, entry.name === 'gitignore' ? '.gitignore' : entry.name)
87
89
  if (entry.isDirectory()) copyTemplate(from, to, replacements, force, skip)
88
90
  else {
89
91
  if (fs.existsSync(to)) {
@@ -155,13 +157,9 @@ function init(target) {
155
157
  '{{PLANNING_DIR}}': 'planning',
156
158
  '{{WORKSPACE_PATH}}': mode === 'embedded' ? '.' : '..',
157
159
  }, process.argv.includes('--force'), providerNames())
158
- // `ci.yml` valida el toolkit con `npm run ci`; una instancia no tiene ese script ni sus pruebas.
159
- copyTemplate(path.join(PROJECT_ROOT, '.github', 'workflows'), path.join(root, '.github', 'workflows'), {
160
- '{{PROJECT_NAME}}': name,
161
- '{{MODE}}': mode,
162
- '{{PLANNING_DIR}}': 'planning',
163
- '{{WORKSPACE_PATH}}': mode === 'embedded' ? '.' : '..',
164
- }, process.argv.includes('--force'), ['ci.yml', 'agent-learning.yml'])
160
+ // No se copia `.github/`: `ci.yml` valida el toolkit con `npm run ci` —que una instancia no tiene y
161
+ // el ciclo de aprendizaje dejó de distribuirse en 0.4.0. Copiar salteando los dos únicos archivos
162
+ // que existen dejaba `.github/workflows/` vacío en cada instancia.
165
163
  const preserve = process.argv.includes('--force')
166
164
  copyRuntime(
167
165
  path.join(PROJECT_ROOT, 'automatization', 'hooks'),
@@ -30,6 +30,11 @@ const SYSTEM_FILES = [
30
30
  'integrations/README.md',
31
31
  'integrations/AGENTS.md',
32
32
  'organization/README.md',
33
+ // Las reglas que un agente obedece y los atajos que envuelven al CLI. Ninguno tiene una línea de la
34
+ // empresa, y envejecidos mienten: el `AGENTS.md` de una instancia seguía describiendo carpetas que
35
+ // `upgrade` había retirado, y el Makefile llama 16 veces a comandos que cambian.
36
+ 'AGENTS.md',
37
+ 'Makefile',
33
38
  // El shim no tiene una línea de la empresa —dice él mismo que no se edita— y es por donde entra
34
39
  // cada comando. Sin declararlo, envejecía para siempre en la instancia.
35
40
  'tools/ops.js',
@@ -65,7 +70,12 @@ const TEMPLATE_PREFIXES = [
65
70
  'tools/',
66
71
  ]
67
72
 
73
+ // Archivos que la instancia recibe en su raíz y que el paquete tiene por duplicado: el propio del
74
+ // toolkit y el de la plantilla. Gana el de la plantilla, que es el que le habla a la instancia.
75
+ const TEMPLATE_FILES = new Set(['AGENTS.md', 'Makefile'])
76
+
68
77
  function sourceOf(relative) {
78
+ if (TEMPLATE_FILES.has(relative)) return path.join('template', relative)
69
79
  // `.ops/` es el paquete vendorizado: cada ruta de ahí adentro se llama igual en el origen.
70
80
  if (relative.startsWith('.ops/')) return relative.slice('.ops/'.length)
71
81
  // El runtime sale de la raíz del paquete aunque su prefijo sea de plantilla: `automatization/`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ingeniomaps/cauce",
3
- "version": "0.9.0",
3
+ "version": "0.9.2",
4
4
  "description": "Sistema portable de planificación y ejecución verificable para cualquier proyecto",
5
5
  "type": "commonjs",
6
6
  "bin": {
@@ -1,4 +1,4 @@
1
- # {{PROJECT_NAME}} — reglas de construcción
1
+ # Reglas de construcción
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.
@@ -0,0 +1,9 @@
1
+ node_modules/
2
+
3
+ # Credenciales. Un repo de planning es de los que más se comparte: nada de esto entra a la historia.
4
+ .env
5
+ .env.*
6
+ !.env.example
7
+
8
+ *.tgz
9
+ .DS_Store