vtasks-automate-cli 0.9.9 → 1.0.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 (3) hide show
  1. package/README.md +108 -94
  2. package/init.js +17 -0
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,94 +1,108 @@
1
- # vtasks-automate-cli
2
-
3
- Automatizá el flujo de trabajo de tus tareas en **vTasks** con un solo comando.
4
-
5
- ---
6
-
7
- ## 🚀 ¿Qué hace este CLI?
8
-
9
- `vtasks-automate-cli` es una herramienta diseñada para integrarse fácilmente en tu proyecto con frontend (Next.js o create-react-app) y backend (Node.js), y así automatizar el movimiento de tarjetas en **vTasks** mientras trabajás con ramas vinculadas a tareas.
10
-
11
- Con solo ejecutar el comando en la raíz del proyecto:
12
-
13
- ```bash
14
- npx vtasks-automate-cli
15
- ```
16
-
17
- La herramienta hará lo siguiente:
18
-
19
- 1. 📦 **Instalará automáticamente la dependencia de automatización** en el frontend y el backend del proyecto.
20
- 2. 🔧 **Modificarán los scripts de ejecución**:
21
- - En el backend: actualiza `npm start`
22
- - En el frontend (Next.js): actualiza `npm run dev` (o si el proyecto aun utiliza create-react-app actaualiza `npm start`)
23
- 3. 🛠️ Agrega un githook para detectar los cambios de ramas y notificar que cambiaste la tarea en la que estas trabajando
24
- 4. ⚙️ Al quedar configurado, **las tarjetas de vTasks se moverán automáticamente** a medida que que estés trabajando en las distintas ramas.
25
-
26
- ---
27
-
28
- ## 📦 Instalación
29
-
30
- Solo ejecutá:
31
-
32
- ```bash
33
- npx vtasks-automate-cli
34
- ```
35
-
36
- Te pedira una confirmación para instalar los paquetes necesarios. Basta con aceptar.
37
-
38
- Este comando detectará automáticamente tus carpetas de frontend y backend, instalará lo necesario, y actualizará los scripts.
39
-
40
- ---
41
-
42
- ## 🧠 ¿Cómo funciona?
43
-
44
- El paquete se integra en el ciclo de desarrollo de tu equipo. Cuando ejecutás los scripts habituales (`npm start` o `npm run dev`), se activa el sistema de automatización, que:
45
-
46
- - Detecta la rama en la que estás trabajando.
47
- - Detecta el usuario y el nombre del proyecto desde la configuración de git.
48
- - Se comunica con la API de **vTasks**.
49
- - Mueve la tarjeta correspondiente al estado "En Progreso".
50
-
51
- ---
52
-
53
- ## 🛠️ Requisitos
54
-
55
- - Un proyecto con:
56
- - Backend con Node.js y script `npm start` o
57
- - Backend de React y script `npm start` o
58
- - Frontend con Next.js y script `npm run dev`
59
- - Tener ramas creadas a través de **vTasks**, siguiendo el formato sugerido por la plataforma.
60
-
61
- ## 🔄 Actualizar versión
62
-
63
- Para actualizar la versión del paquete **vtasks-automate-cli** en los proyectos, seguí estos pasos:
64
-
65
- 1. Ir a las carpetas donde se ejecutan los programas, por ejemplo:
66
-
67
- - `server`
68
- - `client`
69
- - `client-nextjs`
70
- (según correspondan o existan en tu entorno)
71
-
72
- 2. En **cada una** de esas carpetas, ejecutar el siguiente comando para instalar la última versión del paquete:
73
-
74
- ```bash
75
- npm i vtasks-automate-cli@latest
76
-
77
- ```
78
-
79
- 3. Verificar que la instalación se haya completado correctamente y que el paquete se haya actualizado en el package.json de cada proyecto.
80
-
81
- ⚠️ **Importante:**
82
- **No ejecutar** este comando en la raíz del proyecto.
83
- Por ejemplo, **no** correrlo en:
84
-
85
- ```
86
- /Venturing-Fullstack-Boilerplate
87
- ```
88
-
89
- Sino en las rutas específicas:
90
-
91
- ```
92
- /Venturing-Fullstack-Boilerplate/server
93
- /Venturing-Fullstack-Boilerplate/client
94
- ```
1
+ # vtasks-automate-cli
2
+
3
+ Automatizá el flujo de trabajo de tus tareas en **vTasks** con un solo comando.
4
+
5
+ ---
6
+
7
+ ## ¿Qué hace este CLI?
8
+
9
+ `vtasks-automate-cli` se integra en proyectos con una carpeta `/client` (frontend) y `/server` (backend), y automatiza el movimiento de tarjetas en **vTasks** mientras trabajás con ramas vinculadas a tareas.
10
+
11
+ Con solo ejecutar el comando en la raíz del proyecto:
12
+
13
+ ```bash
14
+ npx vtasks-automate-cli
15
+ ```
16
+
17
+ La herramienta hará lo siguiente:
18
+
19
+ 1. **Se auto-actualiza**: si el paquete ya estaba instalado en el root con una versión anterior, se actualiza a la más reciente y re-ejecuta el setup con el nuevo código.
20
+ 2. **Instala o actualiza la dependencia** en `/client` y `/server`. Si ya está instalada y es la última versión, no hace nada.
21
+ 3. **Parchea el script `dev`** en el `package.json` de cada carpeta para que `vtasks-automate-cli` se ejecute automáticamente antes de iniciar la app. Solo lo agrega si no estaba ya — es idempotente.
22
+ 4. **Sincroniza los git hooks** en `.githooks/` con los últimos disponibles.
23
+
24
+ ---
25
+
26
+ ## Requisitos
27
+
28
+ - Un proyecto con las carpetas `/client` y/o `/server` en la raíz (solo estas dos son soportadas).
29
+ - Cada carpeta debe tener un script `"dev"` en su `package.json`. Es el único script que se modifica.
30
+ - Ramas con el formato `{número}_{descripción}` para que el número de issue sea detectado automáticamente (ej: `12_fix-login`).
31
+
32
+ ---
33
+
34
+ ## Cómo funciona en el día a día
35
+
36
+ Una vez configurado, el sistema actúa en dos momentos:
37
+
38
+ ### Al correr `npm run dev`
39
+ Antes de iniciar el servidor o el frontend, el script:
40
+ - Verifica si hay una nueva versión del paquete. Si la hay, se actualiza y sincroniza los git hooks.
41
+ - Lee la rama actual y extrae el número de issue.
42
+ - Si la rama es `qa`, `dev`, `master`, o no sigue el formato de issue, omite la notificación y continúa.
43
+ - Llama a la API de **vTasks** para mover la tarjeta correspondiente a "En Progreso".
44
+
45
+ ### Al cambiar de rama (`git checkout` / `git switch`)
46
+ El hook `post-checkout` detecta el cambio y también notifica a vTasks sobre la nueva tarea activa.
47
+
48
+ ---
49
+
50
+ ## Git hooks instalados
51
+
52
+ El setup crea y mantiene actualizados los siguientes archivos en `.githooks/`:
53
+
54
+ | Hook | Cuándo corre | Qué hace |
55
+ |---|---|---|
56
+ | `post-checkout` | Al cambiar de rama | Notifica a vTasks qué tarea está activa |
57
+ | `commit-msg` | Al hacer commit | Augmenta el mensaje con un resumen generado por Claude CLI; agrega el número de issue en la primera línea y al final del mensaje |
58
+ | `post-commit` | Después de cada commit | Refresca el índice de git (`git update-index -g`) |
59
+ | `pre-commit` | Antes de cada commit | Valida archivos `.dist` y aplica prettier a los archivos staged |
60
+ | `pre-push` | Antes de cada push | Compila `/client` y `/server` con `npm run build` para detectar errores antes de subir |
61
+ | `validate-config-dist.js` | Llamado por `pre-commit` | Script auxiliar que verifica que los archivos `.dist` estén sincronizados con sus pares reales |
62
+
63
+ > Para que los hooks funcionen, git debe estar configurado para usar la carpeta `.githooks`:
64
+ > ```bash
65
+ > git config core.hooksPath .githooks
66
+ > ```
67
+
68
+ ---
69
+
70
+ ## Auto-actualización
71
+
72
+ El paquete es auto-actualizable una vez instalado:
73
+
74
+ - **Al correr `npm run dev`** en `/client` o `/server`: verifica la versión instalada contra la última en npm. Si hay una más nueva, la instala y sincroniza los git hooks automáticamente.
75
+ - **Al correr `npx vtasks-automate-cli`**: si el paquete ya estaba instalado en el root con una versión antigua, se actualiza y re-ejecuta el setup completo con el código nuevo.
76
+
77
+ ---
78
+
79
+ ## Actualizar manualmente
80
+
81
+ Para actualizar todo de una vez — root, `/client`, `/server` y git hooks — correr desde la raíz del proyecto:
82
+
83
+ ```bash
84
+ npx vtasks-automate-cli@latest
85
+ ```
86
+
87
+ Esto fuerza la descarga de la última versión y ejecuta el setup completo con el código nuevo, independientemente de qué versión haya instalada localmente.
88
+
89
+ ---
90
+
91
+ ## Estructura interna del paquete
92
+
93
+ ```
94
+ vtasks-automate-cli/
95
+ hooks/ ← contenido fuente de cada git hook
96
+ post-checkout
97
+ commit-msg
98
+ post-commit
99
+ pre-commit
100
+ pre-push
101
+ validate-config-dist.js
102
+ lib/
103
+ hooks.js ← lógica de sincronización de hooks
104
+ update-hooks.js ← script standalone para actualizar hooks desde content/index.js
105
+ content/
106
+ index.js ← runtime: notifica a vTasks y maneja auto-update
107
+ init.js ← entry point del npx
108
+ ```
package/init.js CHANGED
@@ -115,7 +115,24 @@ function patchDevScript(folderPath, folderName) {
115
115
  console.log(LOG_COLORS.GREEN, `${folderName}: "dev" script patched`);
116
116
  }
117
117
 
118
+ function selfUpdate() {
119
+ const installed = getInstalledVersion(process.cwd());
120
+ if (!installed) return;
121
+
122
+ const latest = getLatestVersion(process.cwd());
123
+ if (!latest || installed === latest) return;
124
+
125
+ console.log(LOG_COLORS.BLUE, `Updating ${VTASKS_PKG} in root (${installed} → ${latest})...`);
126
+ execSync(`npm install ${VTASKS_PKG}@latest`, { cwd: process.cwd(), stdio: "inherit" });
127
+ console.log(LOG_COLORS.GREEN, `Root updated. Re-running with ${VTASKS_PKG}@${latest}...\n`);
128
+
129
+ execSync(`node node_modules/${VTASKS_PKG}/init.js`, { cwd: process.cwd(), stdio: "inherit" });
130
+ process.exit(0);
131
+ }
132
+
118
133
  const main = async () => {
134
+ selfUpdate();
135
+
119
136
  console.log(LOG_COLORS.BLUE, "Setting up vtasks-automate-cli...\n");
120
137
 
121
138
  const existingFolders = FOLDERS.filter((folder) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vtasks-automate-cli",
3
- "version": "0.9.9",
3
+ "version": "1.0.0",
4
4
  "description": "Automate your vTasks workflow with ease — move tasks between states without opening the app",
5
5
  "bin": {
6
6
  "vtasks-automate": "init.js"