forgegit 1.5.7 → 1.5.9

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/.forge/config.cmd CHANGED
@@ -1,15 +1,230 @@
1
- REM ============================================================
2
- REM forge-git / config.cmd
3
- REM Configuration - edit these values to customize
4
- REM Called from init.cmd via: call config.cmd
5
- REM ============================================================
6
-
7
- set "FG_VERSION=1.5.6"
8
- set "TAG_INITIAL=v1.0.0"
9
- set "TAG_MESSAGE=Primera version estable"
10
- set "BRANCH_MAIN=main"
11
- set "COMMIT_MESSAGE=chore: initial commit"
12
-
13
- REM --- Exclusions for subir.cmd (robocopy) ---
14
- set "EXCLUDE_DIRS=.git versiones old_versions backup backups node_modules __pycache__ venv .venv env dist build out cache .cache .parcel-cache .vite .vscode .idea"
15
- set "EXCLUDE_FILES=*.log *.tmp *.bak *.orig Thumbs.db .DS_Store"
1
+ # GRIDLOOCK Visual Engine — v0 (Rescate de Ideas)
2
+
3
+ Documento de rescate del 2026-09-17. Captura las ideas clave de la
4
+ conversacion con Gemini sobre visuales para sets de musica electronica
5
+ y el problema de la memoria humana al disenar sistemas complejos.
6
+
7
+ ---
8
+
9
+ ## 1. PROBLEMA ORIGINAL
10
+
11
+ - Sets de 36 tracks ≈ 36 cortometrajes.
12
+ - Visuales de VJ tradicionales no representan lo que la musica expresa.
13
+ - Hacer un video unico por track con IA es inviable (costo, consistencia).
14
+ - Marca: GRIDLOOCK.
15
+ - Objetivo: una imagen o miniatura que represente cada estado emocional
16
+ del set, NO cada track individual.
17
+
18
+ ### Ejes emocionales del set
19
+
20
+ - PASADO:
21
+ - ancla_nostalgia: objeto especifico que ya no esta
22
+ - ancla_melancolia: bruma, caminar sin rumbo
23
+ - PRESENTE:
24
+ - eje_nostalgia: el eco que aun flota pero no duele
25
+ - eje_melancolia: memoria colectiva procesandose en el beat
26
+ - eje_neutral: presencia pura, aqui y ahora sin carga
27
+ - FUTURO:
28
+ - proyeccion_tunel: euforia, velocidad frontal, liberacion
29
+
30
+ ---
31
+
32
+ ## 2. SISTEMA DE FACTORES VISUALES
33
+
34
+ ### Factores iniciales
35
+
36
+ | # | Factor | Opciones / Variables |
37
+ |---|--------|----------------------|
38
+ | 1 | Universalidad del Entorno | No-lugares (distritos financieros, tuneles, concreto, cristal) vs. entornos locales (Lima, bodegas, mototaxis) |
39
+ | 2 | Fase Temporal | Sunrise, Sun, Sunset, Sundown, Night |
40
+ | 3 | Perspectiva Psicologica | Seguimiento posterior / avatar, CCTV, silueta extrema, perfil introspectivo |
41
+ | 4 | Direccion de Movimiento | Viaje (avanzando) vs. estatico (perfil/lateral) |
42
+ | 5 | Lenguaje Corporal / Pose | Pose House, cruce de pies, brazos en suspension, caminata ritmica |
43
+ | 6 | Dinamicas Humanas | Aislamiento absoluto, pareja, amigos, grupos dispersos, solo en multitud, osmosis social |
44
+ | 7 | Vestimenta | Neutra/global (hoodie, beanie, jeans, mochila) vs. ajustes por subgenero |
45
+ | 8 | Decoracion / Instalacion efimera | Parlantes, truss metalico, ground-stack, instalacion tactica |
46
+ | 9 | Camara / Angulo | POV, seguimiento, picado, cenital, lateral |
47
+ | 10 | Clima exterior | Lluvia, neblina, seco |
48
+ | 11 | Cinematica de poses | Como se mueve el cuerpo segun el estado emocional |
49
+ | 12 | Densidad humana | Solitario, grupos, masa, multitud |
50
+
51
+ ### Regla de separacion de responsabilidades
52
+
53
+ - Factor 1: lienzo espacial (donde estamos)
54
+ - Factor 6: quienes estan ahi
55
+ - Factor 7: como se instalo la rave
56
+ - Factor 8: como se mira
57
+
58
+ NO se mezclan. Cada factor es independiente.
59
+
60
+ ---
61
+
62
+ ## 3. ARQUITECTURA DEL GENERADOR
63
+
64
+ ### Estructura JSON/YAML por factor
65
+
66
+ Cada opcion dentro de un factor debe tener:
67
+
68
+ - metadata
69
+ - locked_core_prompt: prompt base inmutable
70
+ - evolution_ideas[]: mejoras positivas
71
+ - exclusions[]: errores que la IA no debe cometer
72
+
73
+ ### Dos niveles
74
+
75
+ - GLOBAL: ideas/exclusiones que aplican a todo el factor
76
+ - LOCAL: ideas/exclusiones especificas de una opcion
77
+
78
+ ### Conceptos clave
79
+
80
+ - IDEAS ADITIVAS: mejoran sin romper la regla
81
+ - EXCLUSIONES: prohiben errores tipicos de la IA
82
+ - DESVIOS / OVERRIDES: excepciones explicitas a una regla global
83
+ (ej. "quiero que se parezca a Lima" aunque el factor sea universalidad)
84
+
85
+ ### Flujo
86
+
87
+ 1. Seleccionas opciones de cada factor
88
+ 2. El ensamblador compila un prompt maestro
89
+ 3. Ese prompt se le entrega a la IA generadora de imagenes
90
+
91
+ ---
92
+
93
+ ## 4. PROBLEMA DE LA MEMORIA HUMANA
94
+
95
+ ### El problema
96
+
97
+ - La mente opera con ALTA ENTROPIA y SALTOS DE CONTEXTO
98
+ - La memoria de trabajo se desborda (metafora del vaso con pelotitas)
99
+ - Se pierde el hilo, se olvidan terminos tecnicos
100
+ - Se depende de Ctrl+F para recuperar conceptos
101
+ - La redundancia linguistica existe porque la memoria es limitada
102
+ - Los terminos abstractos no tienen anclaje sensorial (no se huelen, no se ven, no se tocan), por eso se olvidan mas rapido
103
+
104
+ ### Ecuacion de sobrecarga
105
+
106
+ O = max(0, m - v - W)
107
+
108
+ Donde:
109
+ - O = sobrecarga
110
+ - m = elementos mentales necesarios
111
+ - v = elementos visibles en la interfaz
112
+ - W = limite biologico de la memoria de trabajo
113
+
114
+ Conclusion: necesitas externalizar memoria en una interfaz visual/persistente.
115
+
116
+ ---
117
+
118
+ ## 5. PROPUESTAS DE SOLUCION
119
+
120
+ ### HCI / UI Cognitiva
121
+
122
+ - State Rail: panel persistente con parametros activos
123
+ - Semantic Zoom y Ghost Layers: capas que muestran dependencias sin saturar
124
+ - Scaffolded Friction: obligar al usuario a clasificar sus ideas en tiempo real
125
+ - Reactive DAG: grafo aciclico dirigido para evitar bucles y permitir time-travel
126
+ - SQLite WAL + @ts-check: persistencia local y validacion tipada
127
+ - Neuroergonomia: adaptar la UI segun fatiga (adenosina, HRV, TEPR)
128
+
129
+ ### Mnemotecnia
130
+
131
+ - Cubo-personaje: cubos 3x3 hasta 32x32 con patrones zigzag
132
+ - Indexacion espaciotemporal 4D: ano, mes, dia, hora + colores y vectores
133
+ - Sistemas narrativos: ano = personaje, mes = accion, dia = item, hora = ambiente
134
+ - Simbolos ASCII, rotaciones, angulos, eliminacion de conectores gramaticales
135
+ - Voice-to-node: dictado continuo, segmentacion semantica, nodos automaticos
136
+
137
+ ### Prompt de investigacion avanzada
138
+
139
+ Ver archivos:
140
+ - Investigacion HCI Alta Entropia.docx
141
+ - Investigacion Arquitectura UI Cognitiva.docx
142
+
143
+ ---
144
+
145
+ ## 6. INVESTIGACIONES REALIZADAS
146
+
147
+ ### Investigacion 1: HCI Alta Entropia
148
+
149
+ - Memoria de trabajo: 4-7 elementos simultaneos
150
+ - State Rail, Semantic Zoom, Ghost Layers
151
+ - Scaffolded Friction: NXS-SLICER de ideas
152
+ - Grafos aciclicos dirigidos (DAG)
153
+ - SQLite WAL, @ts-check, AST JSON
154
+
155
+ ### Investigacion 2: Arquitectura UI Cognitiva
156
+
157
+ - Ecuacion de sobrecarga
158
+ - Efecto cerradura de UIs conversacionales
159
+ - Externalizacion dinamica (Orality, StepWrite)
160
+ - Decodificacion restringida por gramatica (AST, JSON)
161
+ - Neuroergonomia (TEPR, HRV)
162
+ - Modulos: Ingesta Restringida, Gestor de Estado Topologico,
163
+ Bucle de Supervision Activa, Auditor Metacognitivo
164
+
165
+ ---
166
+
167
+ ## 7. PROYECTOS ANTIGUOS RELACIONADOS
168
+
169
+ - Mnemotecnia Cubo-Personaje (motor grafico mental)
170
+ - Diccionario de simbolos / compresion de lenguaje
171
+ - Memoria virtual / mnemotecnia infinita
172
+
173
+ ---
174
+
175
+ ## 8. PROXIMOS PASOS (cuando se retome)
176
+
177
+ ### Corto plazo
178
+
179
+ - Definir el primer factor de forma completa (JSON con metadata,
180
+ locked_core_prompt, evolution_ideas, exclusions)
181
+ - Probar el ensamblaje manual en una IA generadora
182
+ - Validar que la miniatura resultante represente el estado emocional
183
+
184
+ ### Medio plazo
185
+
186
+ - Definir los 12 factores en JSON
187
+ - Implementar el ensamblador (script local, sin IA en tiempo real)
188
+ - Probar el flujo completo con un set real
189
+
190
+ ### Largo plazo
191
+
192
+ - Resolver el primer pilar (memoria/externalizacion cognitiva)
193
+ - Interfaz de captura de voz con segmentacion semantica
194
+ - Integracion de mnemotecnia visual
195
+
196
+ ---
197
+
198
+ ## 9. FILOSOFIA DEL PROYECTO
199
+
200
+ - La tecnica es el lenguaje, no el fin
201
+ - La curaduria es narrativa temporal y emocional
202
+ - El sistema debe permitir creatividad sin perderse en el caos
203
+ - La redundancia es un sintoma de memoria limitada
204
+ - La solucion no es "pensar menos", es "externalizar mejor"
205
+
206
+ ---
207
+
208
+ ## 10. LINKS Y REFERENCIAS
209
+
210
+ - Investigacion HCI Alta Entropia.docx
211
+ - Investigacion Arquitectura UI Cognitiva.docx
212
+ - Mnemotecnia Cubo-Personaje (motor grafico mental)
213
+ - ULTRA TOKEN JSON
214
+ - Arquitectura De Ensamblaje De Prompts.docx
215
+
216
+ ---
217
+
218
+ ## NOTAS FINALES
219
+
220
+ Este documento es un rescate de ideas del 2026-09-17.
221
+ No es la version final. Es un snapshot para no olvidar.
222
+
223
+ Cuando retomes el proyecto, empeza por el Factor 1 y el Factor 6.
224
+ Son los pilares de todo el sistema.
225
+
226
+ La investigacion cognitiva (primer pilar) queda pendiente.
227
+ No es urgente. El motor visual se puede construir sin ella.
228
+
229
+ Regla de oro: SIEMPRE separacion de responsabilidades.
230
+ Cada factor hace una sola cosa. Nada mas.
package/MANUAL.md CHANGED
@@ -17,12 +17,27 @@ Requisitos: Windows 10/11, Node.js 18+, Git 2.30+
17
17
  forge
18
18
 
19
19
  El proyecto queda con Git, .gitignore, README.md, commit inicial,
20
- tag v1.0.0 y 7 helpers en .forge/commands/.
20
+ tag v1.0.0 y 8 helpers en .forge/commands/.
21
+
22
+ ## Uso en un proyecto existente
23
+
24
+ Si el proyecto ya tiene forgeGit instalado:
25
+
26
+ cd ruta\del\proyecto
27
+ forge <comando>
28
+
29
+ El comando global detecta el forge.cmd local y delega automaticamente.
21
30
 
22
31
  ## Comandos disponibles
23
32
 
24
33
  | Comando | Descripcion |
25
34
  |---------|-------------|
35
+ | forge | Instala forgeGit en la carpeta actual |
36
+ | forge update | Actualiza .forge/ desde el kit global |
37
+ | forge version | Muestra la version instalada |
38
+ | forge help | Ayuda completa |
39
+ | forge init | Re-bootstrap (idempotente) |
40
+ | forge init --force | Regenerar todo |
26
41
  | forge save | Commit de cambios |
27
42
  | forge push | Push a GitHub |
28
43
  | forge log | Ver commits recientes |
@@ -30,7 +45,6 @@ tag v1.0.0 y 7 helpers en .forge/commands/.
30
45
  | forge audit | Generar reporte diff |
31
46
  | forge open | Abrir en VS Code |
32
47
  | forge serve | Servidor de desarrollo (auto-detect) |
33
- | forge help | Ayuda completa |
34
48
 
35
49
  ## Estructura del proyecto
36
50
 
@@ -39,7 +53,7 @@ tag v1.0.0 y 7 helpers en .forge/commands/.
39
53
  |-- .forge/
40
54
  | |-- init.cmd Bootstrap
41
55
  | |-- config.cmd Configuracion
42
- | |-- commands/ 7 helpers
56
+ | |-- commands/ 8 helpers
43
57
  | |-- lib/ Modulos internos
44
58
  | |-- templates/ Fuentes .tpl
45
59
  | +-- serve-static.js
@@ -47,17 +61,212 @@ tag v1.0.0 y 7 helpers en .forge/commands/.
47
61
  |-- audits/ Reportes diff
48
62
  +-- (tus archivos)
49
63
 
64
+ ## Los 8 helpers
65
+
66
+ | Helper | Descripcion |
67
+ |--------|-------------|
68
+ | save.cmd | Commit local de cambios |
69
+ | push.cmd | Push a GitHub |
70
+ | snapshots.cmd | Crear/restaurar snapshots |
71
+ | historial.cmd | Ver commits recientes |
72
+ | auditar.cmd | Generar reporte diff |
73
+ | abrir.cmd | Abrir en VS Code |
74
+ | serve.cmd | Servidor de desarrollo (auto-detect) |
75
+ | init.cmd | Re-bootstrap (idempotente) |
76
+
50
77
  ## Actualizar
51
78
 
52
79
  npm install -g forgegit@latest
80
+ cd ruta\del\proyecto
53
81
  forge update
54
82
 
83
+ ## Actualizar el kit y un proyecto
84
+
85
+ Actualizar el kit global:
86
+
87
+ npm install -g forgegit@latest
88
+
89
+ Actualizar un proyecto especifico:
90
+
91
+ cd ruta\del\proyecto
92
+ forge update
93
+
94
+ Esto copia forge.cmd y .forge/ desde el kit global al proyecto,
95
+ sin tocar tus archivos ni los helpers pre-generados.
96
+
97
+ ## Desinstalar
98
+
99
+ npm uninstall -g forgegit
100
+
101
+ ## Filosofia
102
+
103
+ - **Idempotente**: seguro de ejecutar multiples veces
104
+ - **Modular**: templates en archivos .tpl
105
+ - **Portable**: funciona en cualquier carpeta Windows
106
+ - **Configurable**: editar .forge/config.cmd
107
+ - **Autodocumentado**: salida de terminal con colores
108
+
55
109
  ## Links
56
110
 
57
111
  - Repo: https://github.com/vloitz/forgeGit
58
112
  - npm: https://www.npmjs.com/package/forgegit
59
113
  - Releases: https://github.com/vloitz/forgeGit/releases
114
+ - Workflow IA: WORKFLOW.md
115
+ - Roadmap: FUTURE.md
60
116
 
61
117
  ## Licencia
62
118
 
63
- MIT
119
+ MIT
120
+ ```
121
+
122
+ **Guardá con `Ctrl+S`.**
123
+
124
+ ---
125
+
126
+ ## 🎬 Fix 5 — `README.md`
127
+
128
+ **En VS Code, abrí `README.md`.**
129
+
130
+ **`Ctrl+H`** para Buscar/Reemplazar.
131
+
132
+ ### Reemplazo 1 — Versión
133
+
134
+ **Buscar:**
135
+ ```
136
+ - Version: 1.2.2
137
+ ```
138
+
139
+ **Reemplazar:**
140
+ ```
141
+ - Version: 1.5.8
142
+ ```
143
+
144
+ ### Reemplazo 2 — Tests
145
+
146
+ **Buscar:**
147
+ ```
148
+ - Tests: 14/14 passing
149
+ ```
150
+
151
+ **Reemplazar:**
152
+ ```
153
+ - Tests: 16/16 passing
154
+ ```
155
+
156
+ ### Reemplazo 3 — Estructura del proyecto
157
+
158
+ **Buscar exactamente:**
159
+ ```
160
+ forgeGit/
161
+ ├── init.cmd Entry point (14 steps)
162
+ ├── config.cmd Configuration values
163
+ ├── MANUAL.md Full user manual
164
+ ├── FUTURE.md Roadmap / ideas
165
+ ├── lib/ Internal modules
166
+ │ ├── ui.cmd Terminal UI helpers
167
+ │ ├── git-ops.cmd Git operations
168
+ │ └── templates.cmd Template renderer
169
+ ├── templates/ Source templates (.tpl)
170
+ ├── tools/ Author tools
171
+ │ ├── install.cmd Install forge globally
172
+ │ ├── uninstall.cmd Uninstall forge
173
+ │ ├── restore.cmd Restore PATH from backup
174
+ │ ├── pack.cmd Build clean distribution
175
+ │ ├── release.cmd Build ZIP + open GitHub
176
+ │ └── bin/forge.cmd Global command
177
+ └── tests/ Automated tests (14/14)
178
+ ```
179
+
180
+ **Reemplazarlo exactamente por:**
181
+ ```
182
+ forgeGit/
183
+ ├── forge.cmd Menu + CLI (unico .cmd visible)
184
+ ├── .forge/ Infraestructura oculta
185
+ │ ├── init.cmd Bootstrap (17 pasos)
186
+ │ ├── config.cmd Configuration values
187
+ │ ├── lib/ Internal modules
188
+ │ ├── templates/ Source templates (.tpl)
189
+ │ ├── commands/ 8 helpers generados
190
+ │ └── serve-static.js Servidor Node
191
+ ├── MANUAL.md Full user manual
192
+ ├── WORKFLOW.md AI workflow rules
193
+ ├── README.md This file
194
+ ├── tools/ Author tools
195
+ │ ├── install.cmd Install forge globally
196
+ │ ├── uninstall.cmd Uninstall forge
197
+ │ ├── restore.cmd Restore PATH from backup
198
+ │ ├── pack.cmd Build clean distribution
199
+ │ ├── release.cmd Build ZIP + open GitHub
200
+ │ └── bin/forge.cmd Global command
201
+ └── tests/ Automated tests (16/16)
202
+ ```
203
+
204
+ ### Reemplazo 4 — Los 7 helpers
205
+
206
+ **Buscar exactamente:**
207
+ ```
208
+ ## The 7 helpers
209
+
210
+ | File | Purpose |
211
+ |------|---------|
212
+ | `guardar.cmd` | Commit changes locally |
213
+ | `subir.cmd` | Push to GitHub |
214
+ | `snapshots.cmd` | Create/restore full project snapshots |
215
+ | `historial.cmd` | View recent commits |
216
+ | `auditar.cmd` | Generate diff reports (for AI review) |
217
+ | `abrir.cmd` | Open project in VS Code |
218
+ | `init.cmd` | Re-bootstrap (idempotent) |
219
+ ```
220
+
221
+ **Reemplazarlo exactamente por:**
222
+ ```
223
+ ## The 8 helpers
224
+
225
+ | File | Purpose |
226
+ |------|---------|
227
+ | `save.cmd` | Commit changes locally |
228
+ | `push.cmd` | Push to GitHub |
229
+ | `snapshots.cmd` | Create/restore full project snapshots |
230
+ | `historial.cmd` | View recent commits |
231
+ | `auditar.cmd` | Generate diff reports (for AI review) |
232
+ | `abrir.cmd` | Open project in VS Code |
233
+ | `serve.cmd` | Dev server (auto-detect stack) |
234
+ | `init.cmd` | Re-bootstrap (idempotent) |
235
+ ```
236
+
237
+ ### Reemplazo 5 — What it does
238
+
239
+ **Buscar exactamente:**
240
+ ```
241
+ - Generates 7 helper commands in the project
242
+ ```
243
+
244
+ **Reemplazarlo exactamente por:**
245
+ ```
246
+ - Generates 8 helper commands in `.forge/commands/`
247
+ ```
248
+
249
+ ### Reemplazo 6 — Global commands (sección)
250
+
251
+ **Buscar exactamente:**
252
+ ```
253
+ ## Global commands
254
+
255
+ ```cmd
256
+ forge Bootstrap current directory
257
+ forge update Sync templates from kit
258
+ forge help Show help
259
+ ```
260
+ ```
261
+
262
+ **Reemplazarlo exactamente por:**
263
+ ```
264
+ ## Global commands
265
+
266
+ ```cmd
267
+ forge Bootstrap current directory
268
+ forge update Sync .forge/ from kit
269
+ forge version Show version
270
+ forge help Show help
271
+ ```
272
+ ```
package/README.md CHANGED
@@ -26,18 +26,19 @@ Running `forge` in an empty folder:
26
26
  - Creates a universal `.gitignore` (covers Node, Python, Rust, Go)
27
27
  - Generates an adaptive `README.md`
28
28
  - Creates initial commit + tag `v1.0.0`
29
- - Generates 7 helper commands in the project
29
+ - Generates 8 helper commands in `.forge/commands/`
30
30
 
31
- ## The 7 helpers
31
+ ## The 8 helpers
32
32
 
33
33
  | File | Purpose |
34
34
  |------|---------|
35
- | `guardar.cmd` | Commit changes locally |
36
- | `subir.cmd` | Push to GitHub |
35
+ | `save.cmd` | Commit changes locally |
36
+ | `push.cmd` | Push to GitHub |
37
37
  | `snapshots.cmd` | Create/restore full project snapshots |
38
38
  | `historial.cmd` | View recent commits |
39
39
  | `auditar.cmd` | Generate diff reports (for AI review) |
40
40
  | `abrir.cmd` | Open project in VS Code |
41
+ | `serve.cmd` | Dev server (auto-detect stack) |
41
42
  | `init.cmd` | Re-bootstrap (idempotent) |
42
43
 
43
44
  ## Install
@@ -68,7 +69,8 @@ The folder becomes a fully configured Git repository with helpers.
68
69
 
69
70
  ```cmd
70
71
  forge Bootstrap current directory
71
- forge update Sync templates from kit
72
+ forge update Sync .forge/ from kit
73
+ forge version Show version
72
74
  forge help Show help
73
75
  ```
74
76
 
@@ -85,15 +87,17 @@ forge help Show help
85
87
 
86
88
  ```
87
89
  forgeGit/
88
- ├── init.cmd Entry point (14 steps)
89
- ├── config.cmd Configuration values
90
+ ├── forge.cmd Menu + CLI (unico .cmd visible)
91
+ ├── .forge/ Infraestructura oculta
92
+ │ ├── init.cmd Bootstrap (17 pasos)
93
+ │ ├── config.cmd Configuration values
94
+ │ ├── lib/ Internal modules
95
+ │ ├── templates/ Source templates (.tpl)
96
+ │ ├── commands/ 8 helpers generados
97
+ │ └── serve-static.js Servidor Node
90
98
  ├── MANUAL.md Full user manual
91
- ├── FUTURE.md Roadmap / ideas
92
- ├── lib/ Internal modules
93
- │ ├── ui.cmd Terminal UI helpers
94
- │ ├── git-ops.cmd Git operations
95
- │ └── templates.cmd Template renderer
96
- ├── templates/ Source templates (.tpl)
99
+ ├── WORKFLOW.md AI workflow rules
100
+ ├── README.md This file
97
101
  ├── tools/ Author tools
98
102
  │ ├── install.cmd Install forge globally
99
103
  │ ├── uninstall.cmd Uninstall forge
@@ -101,7 +105,7 @@ forgeGit/
101
105
  │ ├── pack.cmd Build clean distribution
102
106
  │ ├── release.cmd Build ZIP + open GitHub
103
107
  │ └── bin/forge.cmd Global command
104
- └── tests/ Automated tests (14/14)
108
+ └── tests/ Automated tests (16/16)
105
109
  ```
106
110
 
107
111
  ## Requirements
@@ -113,9 +117,9 @@ forgeGit/
113
117
 
114
118
  ## Status
115
119
 
116
- - Version: 1.2.2
120
+ - Version: 1.5.8
117
121
  - Published: npm + GitHub Release
118
- - Tests: 14/14 passing
122
+ - Tests: 16/16 passing
119
123
  - Platform: Windows only (Linux/Mac planned as Node.js CLI)
120
124
 
121
125
  ## Roadmap
@@ -132,4 +136,5 @@ cross-platform Node.js CLI (zero friction, no .cmd files in projects).
132
136
 
133
137
  ## License
134
138
 
135
- MIT
139
+ MIT
140
+ ```
package/WORKFLOW.md CHANGED
@@ -30,6 +30,103 @@ Toda instruccion para modificar codigo DEBE ser:
30
30
  2. Ubicacion exacta (busca / reemplaza / pega debajo)
31
31
  3. Sin ambiguedad
32
32
 
33
+ ---
34
+
35
+ ## Regla crítica: bloques VERBATIM
36
+
37
+ ### El problema
38
+
39
+ La IA tiende a "limpiar" visualmente el código antes de darlo como
40
+ bloque de búsqueda: quita líneas en blanco, normaliza espacios,
41
+ reindenta. El humano busca ese bloque en VS Code con Ctrl+H y NO LO
42
+ ENCUENTRA, porque el código real tiene 1 línea en blanco de más, o
43
+ un espacio extra, o una indentación distinta.
44
+
45
+ El humano pierde tiempo reportando el bloque actual, la IA da otro
46
+ bloque "corregido" que también falla, y el ciclo se repite.
47
+
48
+ ### La regla
49
+
50
+ Cuando la IA va a dar un bloque de búsqueda (Ctrl+H), DEBE usar el
51
+ código EXACTO que el humano pegó en el chat, copiado carácter por
52
+ carácter, incluyendo:
53
+
54
+ - Líneas en blanco en su posición exacta
55
+ - Indentación exacta (2 espacios, 4 espacios, tabs)
56
+ - Espacios antes de llaves, después de comas, etc.
57
+ - Saltos de línea donde estén
58
+ - Comentarios tal cual
59
+
60
+ La IA NO debe:
61
+ - Quitar líneas en blanco "para que quede más limpio"
62
+ - Reindentar "para que quede más legible"
63
+ - Normalizar espacios "para que sea consistente"
64
+ - Resumir el bloque si es largo
65
+ - Omitir partes con "..." o "// resto igual"
66
+
67
+ ### Protocolo
68
+
69
+ 1. El humano pega en el chat la función o bloque completo (Ctrl+A
70
+ dentro del bloque, Ctrl+C, pegar en chat).
71
+
72
+ 2. La IA copia ese bloque VERBATIM en su respuesta, cambia SOLO
73
+ las líneas que hay que cambiar, y lo devuelve.
74
+
75
+ 3. Si la IA necesita modificar 3 líneas de 40, las otras 37 van
76
+ IDÉNTICAS, carácter por carácter, incluidas líneas en blanco
77
+ entre bloques lógicos.
78
+
79
+ ### Ejemplo de lo prohibido
80
+
81
+ Humano pega:
82
+
83
+ function foo() {
84
+ const x = 1;
85
+
86
+ if (x) {
87
+ return true;
88
+ }
89
+ }
90
+
91
+ IA responde (MAL, quitó línea en blanco):
92
+
93
+ Busca exactamente:
94
+ function foo() {
95
+ const x = 1;
96
+ if (x) {
97
+ return true;
98
+ }
99
+ }
100
+
101
+ IA responde (BIEN, verbatim):
102
+
103
+ Busca exactamente:
104
+ function foo() {
105
+ const x = 1;
106
+
107
+ if (x) {
108
+ return true;
109
+ }
110
+ }
111
+
112
+ ### Si el bloque no matchea
113
+
114
+ Si el humano reporta "busqué X, NO EXISTE, el código actual tiene Y":
115
+
116
+ - La IA NO debe reescribir el bloque "adivinando" el formato.
117
+ - La IA DEBE pedirle al humano que pegue el bloque actual completo.
118
+ - La IA DEBE devolver el bloque nuevo usando ESE pegado como base,
119
+ verbatim.
120
+
121
+ ### Por qué esto importa
122
+
123
+ El propósito de forgeGit es que los cambios sean trazables y
124
+ reversibles. Si la IA formatea distinto, el bloque no matchea, el
125
+ cambio se aplica a mano, se cometen typos, y la trazabilidad se
126
+ pierde. Verbatim garantiza que busca/reemplaza funcione siempre.
127
+
128
+ ---
129
+
33
130
  ### Formato obligatorio para REEMPLAZAR
34
131
 
35
132
  Busca exactamente este codigo:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forgegit",
3
- "version": "1.5.7",
3
+ "version": "1.5.9",
4
4
  "description": "Universal Git bootstrap kit for Windows",
5
5
  "bin": {
6
6
  "forge": "./tools/bin/forge.cmd"
package/tests/test.cmd CHANGED
@@ -4,7 +4,7 @@ chcp 65001 >nul 2>nul
4
4
 
5
5
  echo.
6
6
  echo ============================================
7
- echo forgeGit - Tests
7
+ echo forgeGit - Tests v1.5.8
8
8
  echo ============================================
9
9
  echo.
10
10
 
@@ -25,47 +25,55 @@ echo [TEST 1] Ejecutando forge...
25
25
  call "%FORGE_HOME%\tools\bin\forge.cmd" < nul >nul 2>nul
26
26
 
27
27
  REM Check archivos core
28
- if exist "init.cmd" (
29
- echo [OK] init.cmd creado
28
+ if exist "forge.cmd" (
29
+ echo [OK] forge.cmd creado
30
30
  set /a PASS+=1
31
31
  ) else (
32
- echo [X] init.cmd NO creado
32
+ echo [X] forge.cmd NO creado
33
33
  set /a FAIL+=1
34
34
  )
35
35
 
36
- if exist "config.cmd" (
37
- echo [OK] config.cmd creado
36
+ if exist ".forge\init.cmd" (
37
+ echo [OK] .forge\init.cmd presente
38
38
  set /a PASS+=1
39
39
  ) else (
40
- echo [X] config.cmd NO creado
40
+ echo [X] .forge\init.cmd NO presente
41
+ set /a FAIL+=1
42
+ )
43
+
44
+ if exist ".forge\config.cmd" (
45
+ echo [OK] .forge\config.cmd presente
46
+ set /a PASS+=1
47
+ ) else (
48
+ echo [X] .forge\config.cmd NO presente
41
49
  set /a FAIL+=1
42
50
  )
43
51
 
44
52
  REM Check 7 helpers
45
- for %%F in (guardar subir snapshots historial abrir auditar) do (
46
- if exist "%%F.cmd" (
47
- echo [OK] %%F.cmd creado
53
+ for %%F in (save push snapshots historial abrir auditar serve) do (
54
+ if exist ".forge\commands\%%F.cmd" (
55
+ echo [OK] .forge\commands\%%F.cmd creado
48
56
  set /a PASS+=1
49
57
  ) else (
50
- echo [X] %%F.cmd NO creado
58
+ echo [X] .forge\commands\%%F.cmd NO creado
51
59
  set /a FAIL+=1
52
60
  )
53
61
  )
54
62
 
55
63
  REM Check carpetas
56
- if exist "lib\ui.cmd" (
57
- echo [OK] lib\ui.cmd presente
64
+ if exist ".forge\lib\ui.cmd" (
65
+ echo [OK] .forge\lib\ui.cmd presente
58
66
  set /a PASS+=1
59
67
  ) else (
60
- echo [X] lib\ui.cmd NO presente
68
+ echo [X] .forge\lib\ui.cmd NO presente
61
69
  set /a FAIL+=1
62
70
  )
63
71
 
64
- if exist "templates\abrir.cmd.tpl" (
65
- echo [OK] templates\abrir.cmd.tpl presente
72
+ if exist ".forge\templates\abrir.cmd.tpl" (
73
+ echo [OK] .forge\templates\abrir.cmd.tpl presente
66
74
  set /a PASS+=1
67
75
  ) else (
68
- echo [X] templates\abrir.cmd.tpl NO presente
76
+ echo [X] .forge\templates\abrir.cmd.tpl NO presente
69
77
  set /a FAIL+=1
70
78
  )
71
79
 
@@ -95,29 +103,28 @@ echo.
95
103
  echo [TEST 2] Ejecutando forge update...
96
104
  call "%FORGE_HOME%\tools\bin\forge.cmd" update < nul >nul 2>nul
97
105
 
98
- if exist "init.cmd" (
99
- echo [OK] init.cmd sigue presente
106
+ if exist "forge.cmd" (
107
+ echo [OK] forge.cmd sigue presente
100
108
  set /a PASS+=1
101
109
  ) else (
102
- echo [X] init.cmd desaparecio
110
+ echo [X] forge.cmd desaparecio
103
111
  set /a FAIL+=1
104
112
  )
105
113
 
106
- REM ============================================================
107
- REM TEST 3: forge detecta instalacion previa
108
- REM ============================================================
109
- echo.
110
- echo [TEST 3] Ejecutando forge de nuevo (sin confirmar)...
111
- echo n | call "%FORGE_HOME%\tools\bin\forge.cmd" >nul 2>nul
112
-
113
- if exist "init.cmd" (
114
- echo [OK] init.cmd intacto tras cancelacion
114
+ if exist ".forge\init.cmd" (
115
+ echo [OK] .forge\init.cmd sigue presente
115
116
  set /a PASS+=1
116
117
  ) else (
117
- echo [X] init.cmd se corrompio
118
+ echo [X] .forge\init.cmd desaparecio
118
119
  set /a FAIL+=1
119
120
  )
120
121
 
122
+ REM ============================================================
123
+ REM TEST 3: omitido (delegacion interactiva no automatizable)
124
+ REM ============================================================
125
+ echo.
126
+ echo [TEST 3] Omitido (test manual requerido)
127
+
121
128
  REM ============================================================
122
129
  REM CLEANUP
123
130
  REM ============================================================
@@ -6,6 +6,14 @@ REM --- FORGE_HOME desde tools/bin/ ---
6
6
  for %%I in ("%~dp0..\..") do set "FORGE_HOME=%%~fI"
7
7
  set "TARGET=%CD%"
8
8
 
9
+ REM --- Subcomandos propios del global (NO delegar) ---
10
+ if /i "%~1"=="update" goto :update
11
+ if /i "%~1"=="help" goto :help
12
+ if /i "%~1"=="--help" goto :help
13
+ if /i "%~1"=="-h" goto :help
14
+ if /i "%~1"=="version" goto :version
15
+ if /i "%~1"=="--version" goto :version
16
+
9
17
  REM --- Deteccion de proyecto local ---
10
18
  REM Si existe forge.cmd en el directorio actual, delegar a el
11
19
  if exist "%TARGET%\forge.cmd" (
@@ -13,14 +21,6 @@ if exist "%TARGET%\forge.cmd" (
13
21
  exit /b %ERRORLEVEL%
14
22
  )
15
23
 
16
- REM --- Subcomandos ---
17
- if /i "%~1"=="update" goto :update
18
- if /i "%~1"=="help" goto :help
19
- if /i "%~1"=="--help" goto :help
20
- if /i "%~1"=="-h" goto :help
21
- if /i "%~1"=="version" goto :version
22
- if /i "%~1"=="--version" goto :version
23
-
24
24
  goto :install
25
25
 
26
26
  :version
package/tools/pack.cmd CHANGED
@@ -6,7 +6,7 @@ cd /d "%~dp0"
6
6
 
7
7
  echo.
8
8
  echo ============================================
9
- echo Pack - Distribucion limpia
9
+ echo Pack - Distribucion limpia (v1.5.8)
10
10
  echo ============================================
11
11
  echo.
12
12
 
@@ -18,28 +18,37 @@ REM --- Limpiar destino previo ---
18
18
  if exist "%DIST%" rmdir /s /q "%DIST%"
19
19
 
20
20
  mkdir "%OUT%"
21
- mkdir "%OUT%\lib"
22
- mkdir "%OUT%\templates"
21
+ mkdir "%OUT%\.forge"
22
+ mkdir "%OUT%\.forge\lib"
23
+ mkdir "%OUT%\.forge\templates"
24
+ mkdir "%OUT%\.forge\commands"
23
25
  mkdir "%OUT%\tools"
24
26
  mkdir "%OUT%\tools\bin"
25
27
  mkdir "%OUT%\tests"
26
28
 
27
29
  echo Copiando archivos core...
28
- copy /Y "%ROOT%\init.cmd" "%OUT%\" >nul
29
- copy /Y "%ROOT%\config.cmd" "%OUT%\" >nul
30
- copy /Y "%ROOT%\README.md" "%OUT%\" >nul
30
+ copy /Y "%ROOT%\forge.cmd" "%OUT%\" >nul
31
+ copy /Y "%ROOT%\README.md" "%OUT%\" >nul
32
+ copy /Y "%ROOT%\MANUAL.md" "%OUT%\" >nul
33
+ copy /Y "%ROOT%\WORKFLOW.md" "%OUT%\" >nul
31
34
 
32
- echo Copiando modulos internos...
33
- copy /Y "%ROOT%\lib\*.cmd" "%OUT%\lib\" >nul
35
+ echo Copiando .forge/...
36
+ copy /Y "%ROOT%\.forge\init.cmd" "%OUT%\.forge\" >nul
37
+ copy /Y "%ROOT%\.forge\config.cmd" "%OUT%\.forge\" >nul
38
+ copy /Y "%ROOT%\.forge\serve-static.js" "%OUT%\.forge\" >nul
34
39
 
35
- echo Copiando templates...
36
- copy /Y "%ROOT%\templates\*.tpl" "%OUT%\templates\" >nul
40
+ echo Copiando .forge/lib/...
41
+ copy /Y "%ROOT%\.forge\lib\*.cmd" "%OUT%\.forge\lib\" >nul
37
42
 
38
- echo Copiando tools...
43
+ echo Copiando .forge/templates/...
44
+ copy /Y "%ROOT%\.forge\templates\*.tpl" "%OUT%\.forge\templates\" >nul
45
+ copy /Y "%ROOT%\.forge\templates\serve-static.js" "%OUT%\.forge\templates\" >nul
46
+
47
+ echo Copiando tools/...
39
48
  copy /Y "%ROOT%\tools\*.cmd" "%OUT%\tools\" >nul
40
49
  copy /Y "%ROOT%\tools\bin\*.cmd" "%OUT%\tools\bin\" >nul
41
50
 
42
- echo Copiando tests...
51
+ echo Copiando tests/...
43
52
  copy /Y "%ROOT%\tests\*.cmd" "%OUT%\tests\" >nul
44
53
 
45
54
  echo.
package/tools/release.cmd CHANGED
@@ -6,15 +6,15 @@ cd /d "%~dp0"
6
6
 
7
7
  echo.
8
8
  echo ============================================
9
- echo Release - Empaquetar y comprimir
9
+ echo Release - Empaquetar y comprimir (v1.5.8)
10
10
  echo ============================================
11
11
  echo.
12
12
 
13
13
  REM --- 1. Pack ---
14
14
  call "%~dp0pack.cmd"
15
15
 
16
- REM --- 2. Leer version ---
17
- call "%~dp0..\config.cmd"
16
+ REM --- 2. Leer version desde .forge/config.cmd ---
17
+ call "%~dp0..\.forge\config.cmd"
18
18
  set "ZIP=%~dp0..\..\forgeGit-v%FG_VERSION%.zip"
19
19
 
20
20
  REM --- 3. Comprimir ---