@samline/notify 0.1.1 → 0.1.6

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.
@@ -0,0 +1,63 @@
1
+ # Agent Index
2
+
3
+ ## Instrucción Para La IA
4
+
5
+ Este es el índice interno que la IA debe leer después de pasar por AGENTS.md en la raíz del repositorio.
6
+
7
+ La función de este archivo es actuar como índice maestro de los documentos internos en .local y orientar qué archivos revisar según el tipo de tarea.
8
+
9
+ ## Regla Principal
10
+
11
+ Antes de comenzar cualquier tarea en este repositorio, la IA debe leer este archivo y usarlo para decidir qué otros documentos internos necesita revisar.
12
+
13
+ La memoria de sesión del chat no debe considerarse la fuente única de verdad para reglas, pendientes, lecciones o preferencias del proyecto. Si la IA guarda algo relevante allí, también debe llevarlo al documento persistente correspondiente dentro de .local.
14
+
15
+ ## Nota Sobre AGENTS.md
16
+
17
+ AGENTS.md en la raíz funciona como bootstrap local para dirigir a la IA hacia este índice interno.
18
+
19
+ Ese archivo no debe versionarse ni subirse al repositorio. Debe tratarse como una instrucción local de arranque para la IA.
20
+
21
+ ## Índice De Archivos Internos
22
+
23
+ ### Siempre revisar según el contexto
24
+
25
+ 1. package-replication-guide.md
26
+ Usar cuando se vaya a replicar este scaffold para otro paquete o producto similar.
27
+
28
+ 2. deploy-and-release-guide.md
29
+ Usar cuando la tarea implique versionado, release, deploy, publicación npm, tags o GitHub Actions de publicación.
30
+
31
+ 3. todo.md
32
+ Usar para revisar tareas pendientes, mejoras futuras, bugs por corregir y trabajo que el usuario dejó explícitamente pendiente.
33
+
34
+ 4. lessons.md
35
+ Usar para revisar errores, correcciones, sugerencias y preferencias del usuario que la IA no debe olvidar ni repetir.
36
+
37
+ ## Orden Recomendado De Lectura
38
+
39
+ ### Si la tarea es general
40
+
41
+ 1. agent-index.md
42
+ 2. todo.md
43
+ 3. lessons.md
44
+
45
+ ### Si la tarea es crear un paquete o scaffold nuevo
46
+
47
+ 1. agent-index.md
48
+ 2. package-replication-guide.md
49
+ 3. todo.md
50
+ 4. lessons.md
51
+
52
+ ### Si la tarea es publicar o hacer release
53
+
54
+ 1. agent-index.md
55
+ 2. deploy-and-release-guide.md
56
+ 3. todo.md
57
+ 4. lessons.md
58
+
59
+ ## Alcance Actual
60
+
61
+ Por ahora este archivo solo funciona como índice de entrada para la IA.
62
+
63
+ En el futuro puede ampliarse con más instrucciones operativas, prioridades, reglas de lectura o flujos especializados.
@@ -0,0 +1,277 @@
1
+ # Guía Interna De Release, Deploy Y Tags Para La IA
2
+
3
+ ## Instrucción Para La IA
4
+
5
+ Este archivo existe para que la IA pueda revisar el proceso correcto de versionado, release, publicación y tags antes de intentar desplegar una nueva versión del paquete.
6
+
7
+ Cuando una conversación pida publicar, desplegar, versionar o empujar un tag, la IA debe leer este documento y validar que el flujo propuesto coincide con el estado real del repositorio.
8
+
9
+ ## Objetivo
10
+
11
+ Definir un playbook operativo para:
12
+
13
+ 1. revisar si los cambios corresponden a major, minor o patch
14
+ 2. actualizar la versión del paquete con criterio semver
15
+ 3. preparar el release
16
+ 4. empujar el commit y el tag correctos
17
+ 5. disparar el workflow de publicación del repositorio
18
+
19
+ ## Recomendación Previa Obligatoria
20
+
21
+ Antes de automatizar releases desde GitHub, se recomienda tener ya configurado en GitHub el secreto NPM_TOKEN.
22
+
23
+ Este repositorio ya tiene un workflow de publicación que depende de ese secreto. Si NPM_TOKEN no existe o no tiene permisos válidos, el tag se puede empujar correctamente pero la publicación en npm fallará.
24
+
25
+ ## Nota Sobre npm publish --provenance
26
+
27
+ No usar `npm publish --provenance` en este repositorio a menos que primero se configure correctamente trusted publishing entre GitHub Actions y npm.
28
+
29
+ Contexto operativo:
30
+
31
+ 1. el workflow llegó a validar tag, instalación, build, typecheck, tests y credenciales npm
32
+ 2. aun así, el paso `Publish to npm` falló usando `--provenance`
33
+ 3. el publish volvió a funcionar al cambiar el workflow a `npm publish`
34
+
35
+ Regla práctica:
36
+
37
+ 1. mientras este repositorio dependa de `NPM_TOKEN`, usar `npm publish`
38
+ 2. solo reintroducir `--provenance` si también se configura y verifica trusted publishing end-to-end
39
+ 3. si se vuelve a intentar, validar primero en una release real o en documentación oficial actual de npm y GitHub Actions
40
+
41
+ ## Flujo Real Del Repositorio
42
+
43
+ El workflow actual publica en npm cuando se hace push de un tag con formato v\*.
44
+
45
+ Resumen del flujo real:
46
+
47
+ 1. se activa con push de tags tipo v1.2.3
48
+ 2. valida que el tag coincida exactamente con la versión en package.json
49
+ 3. ejecuta npm ci
50
+ 4. ejecuta build
51
+ 5. ejecuta typecheck
52
+ 6. ejecuta tests
53
+ 7. comprueba si esa versión ya existe en npm
54
+ 8. publica con npm publish --provenance usando NPM_TOKEN solo si la versión todavía no existe
55
+
56
+ ## Regla Inicial Antes De Versionar
57
+
58
+ La IA no debe subir una nueva versión sin revisar primero el tipo de cambio.
59
+
60
+ Primero debe clasificar los cambios en una de estas categorías:
61
+
62
+ ### Patch
63
+
64
+ Usar patch cuando hay:
65
+
66
+ - correcciones de bugs sin romper compatibilidad
67
+ - mejoras internas sin cambios en la API pública
68
+ - documentación o ajustes pequeños si también van acompañados de una corrección publicada
69
+ - fixes de build o testing que no cambian el contrato público
70
+
71
+ Ejemplo:
72
+
73
+ - 0.5.0 -> 0.5.1
74
+
75
+ ### Minor
76
+
77
+ Usar minor cuando hay:
78
+
79
+ - nuevas funciones compatibles hacia atrás
80
+ - nuevos exports o nuevos helpers sin romper la API actual
81
+ - soporte adicional para otro entorno o framework sin cambiar contratos existentes
82
+ - mejoras relevantes del producto manteniendo compatibilidad
83
+
84
+ Ejemplo:
85
+
86
+ - 0.5.0 -> 0.6.0
87
+
88
+ ### Major
89
+
90
+ Usar major cuando hay:
91
+
92
+ - cambios incompatibles con la API actual
93
+ - eliminación o renombre de funciones públicas
94
+ - cambios de comportamiento que puedan romper consumidores existentes
95
+ - cambios de runtime mínimo o de estrategia de imports que obliguen migración
96
+
97
+ Ejemplo:
98
+
99
+ - 0.5.0 -> 1.0.0
100
+
101
+ ## Checklist De Evaluación Semver
102
+
103
+ Antes de decidir la nueva versión, la IA debe responder:
104
+
105
+ 1. ¿La API pública cambió de forma incompatible?
106
+ 2. ¿Se eliminó o renombró algún export?
107
+ 3. ¿Se añadió funcionalidad nueva sin romper compatibilidad?
108
+ 4. ¿Solo se corrigieron bugs o detalles internos?
109
+ 5. ¿Cambió la versión mínima de Node o alguna dependencia crítica?
110
+ 6. ¿Cambió el comportamiento por defecto de una función pública?
111
+ 7. ¿La documentación describe una nueva capacidad o una ruptura?
112
+
113
+ Regla práctica:
114
+
115
+ 1. Si hay ruptura, major.
116
+ 2. Si no hay ruptura pero sí nueva capacidad, minor.
117
+ 3. Si solo hay corrección o ajuste compatible, patch.
118
+
119
+ ## Secuencia Recomendada De Release
120
+
121
+ ### Paso 1: revisar el estado del repositorio
122
+
123
+ La IA debe comprobar:
124
+
125
+ 1. rama actual
126
+ 2. cambios sin commit
127
+ 3. si el branch está alineado con origin
128
+ 4. si hay tags locales o remotos pendientes de considerar
129
+
130
+ ### Paso 2: revisar el alcance del cambio
131
+
132
+ La IA debe leer el diff o el resumen de cambios y clasificar el release como major, minor o patch.
133
+
134
+ No debe saltar directamente a npm version sin esa revisión.
135
+
136
+ ### Paso 3: validar que el repositorio está listo
137
+
138
+ Antes de versionar, comprobar:
139
+
140
+ 1. npm run build
141
+ 2. npm run typecheck
142
+ 3. npm test
143
+
144
+ Si alguno falla, no se debe crear versión ni tag.
145
+
146
+ ### Paso 4: actualizar la versión
147
+
148
+ Usar una de estas rutas según el caso:
149
+
150
+ ```bash
151
+ npm version patch
152
+ npm version minor
153
+ npm version major
154
+ ```
155
+
156
+ Si se requiere controlar el mensaje de commit o separar pasos, la IA puede actualizar package.json manualmente y crear el tag después, pero el camino simple recomendado es usar npm version.
157
+
158
+ ### Paso 5: verificar la versión resultante
159
+
160
+ Después de cambiar la versión, confirmar:
161
+
162
+ 1. package.json actualizado
163
+ 2. commit de versionado creado, si aplica
164
+ 3. tag local creado con formato vX.Y.Z
165
+
166
+ ### Paso 6: empujar commit y tag
167
+
168
+ Flujo recomendado:
169
+
170
+ ```bash
171
+ git push origin main
172
+ git push origin vX.Y.Z
173
+ ```
174
+
175
+ También puede usarse:
176
+
177
+ ```bash
178
+ git push origin main --follow-tags
179
+ ```
180
+
181
+ si el tag ya quedó asociado al commit local correcto.
182
+
183
+ ### Paso 7: verificar publicación
184
+
185
+ Una vez empujado el tag, la IA debe confirmar:
186
+
187
+ 1. que GitHub Actions se disparó
188
+ 2. que el workflow validó el tag contra package.json
189
+ 3. que build, typecheck y tests pasaron
190
+ 4. que npm publish terminó sin error
191
+
192
+ ## Relación Entre Tag Y package.json
193
+
194
+ Este repositorio tiene una validación explícita: el tag debe coincidir exactamente con la versión en package.json.
195
+
196
+ Ejemplo válido:
197
+
198
+ - package.json version: 0.5.1
199
+ - tag: v0.5.1
200
+
201
+ Ejemplos inválidos:
202
+
203
+ - package.json version: 0.5.1 y tag: v0.5.2
204
+ - package.json version: 0.5.1 y tag: 0.5.1
205
+
206
+ Si no coinciden, el workflow falla antes de publicar.
207
+
208
+ ## Casos En Los Que No Debe Hacerse Release
209
+
210
+ La IA no debe crear versión nueva si ocurre alguno de estos casos:
211
+
212
+ 1. solo hay cambios locales sin commit y no se pidió release real
213
+ 2. el tipo de cambio todavía no está claro
214
+ 3. build, typecheck o tests fallan
215
+ 4. package.json no está alineado con el release propuesto
216
+ 5. no existe NPM_TOKEN válido en GitHub y el objetivo es publicar automáticamente
217
+ 6. el repositorio local no está en el commit correcto para etiquetar
218
+
219
+ ## Comportamiento Cuando La Versión Ya Existe
220
+
221
+ Si la versión del tag ya fue publicada manualmente en npm antes de que corra GitHub Actions, el workflow no debe fallar por intentar republicarla.
222
+
223
+ Debe:
224
+
225
+ 1. validar igualmente que tag y package.json coincidan
226
+ 2. ejecutar npm ci, build, typecheck y tests
227
+ 3. detectar que la versión ya existe en npm
228
+ 4. omitir el paso de npm publish sin marcar error
229
+
230
+ Esto evita falsos negativos en releases donde la publicación manual y el tag ocurrieron en momentos distintos.
231
+
232
+ ## Recomendación Para Controlar Mejor El Historial
233
+
234
+ Antes de cada release, la IA debería revisar si los cambios del periodo ameritan major, minor o patch para mantener un historial semántico confiable.
235
+
236
+ No conviene tratar todas las publicaciones como patch por costumbre. Eso degrada el valor del versionado y complica la expectativa del consumidor.
237
+
238
+ ## Comandos De Referencia
239
+
240
+ ### Revisar estado
241
+
242
+ ```bash
243
+ git status --short --branch
244
+ git log --oneline --decorate -5
245
+ git tag --sort=-version:refname | head
246
+ ```
247
+
248
+ ### Validar proyecto antes de release
249
+
250
+ ```bash
251
+ npm run build
252
+ npm run typecheck
253
+ npm test
254
+ ```
255
+
256
+ ### Versionar y publicar por tag
257
+
258
+ ```bash
259
+ npm version patch
260
+ git push origin main
261
+ git push origin vX.Y.Z
262
+ ```
263
+
264
+ Reemplazar patch por minor o major cuando corresponda.
265
+
266
+ ## Regla Operativa Final Para La IA
267
+
268
+ Si una conversación futura pide publicar una nueva versión, la IA debe:
269
+
270
+ 1. revisar este documento
271
+ 2. clasificar el release como major, minor o patch
272
+ 3. verificar build, typecheck y tests
273
+ 4. confirmar que package.json y el tag coinciden
274
+ 5. empujar commit y tag
275
+ 6. asumir que la publicación depende del workflow y del secreto NPM_TOKEN en GitHub
276
+
277
+ No debe tratar release, tag y deploy como un solo paso ciego.
@@ -0,0 +1,76 @@
1
+ # Lessons
2
+
3
+ ## Instrucción Para La IA
4
+
5
+ Este archivo guarda lecciones operativas del proyecto para evitar repetir errores y para mantener presentes las recomendaciones del usuario durante futuras tareas.
6
+
7
+ La IA debe revisarlo antes de ejecutar trabajo importante y actualizarlo cuando el usuario marque un comportamiento como incorrecto, mejorable o deseable.
8
+
9
+ ## Qué Debe Guardarse Aquí
10
+
11
+ 1. errores de la IA que el usuario indique como tales
12
+ 2. comportamientos que no deben repetirse
13
+ 3. preferencias explícitas del usuario
14
+ 4. recomendaciones prácticas para futuras sesiones
15
+ 5. aclaraciones sobre cómo interpretar instrucciones del proyecto
16
+
17
+ ## Regla De Uso
18
+
19
+ Solo deben registrarse lecciones confirmadas por el usuario o aprendidas con claridad durante el trabajo en este proyecto.
20
+
21
+ No deben agregarse opiniones vagas ni reglas inventadas.
22
+
23
+ Si la IA guarda en memoria de sesión una lección, preferencia o corrección operativa que deba sobrevivir a la sesión, también debe escribirla aquí para mantener la continuidad del proyecto.
24
+
25
+ ## Lecciones Actuales
26
+
27
+ ### Persistencia de contexto operativo
28
+
29
+ - lección: la memoria de sesión del chat puede perderse y no debe ser la única ubicación para información operativa importante.
30
+ - implicación: si una nota de sesión corresponde a un pendiente, lección, regla interna o preferencia persistente, la IA debe duplicarla en el archivo adecuado de .local.
31
+
32
+ ### Documentos internos para la IA
33
+
34
+ - lección: los archivos dentro de .local son instrucciones internas para la IA, no documentación pública del paquete.
35
+ - implicación: la IA debe tratarlos como notas de operación y referencia antes de actuar.
36
+
37
+ ### AGENTS.md local
38
+
39
+ - lección: AGENTS.md en la raíz debe funcionar como instrucción local para la IA, pero no debe subirse al repositorio.
40
+ - implicación: la IA debe mantener AGENTS.md fuera de Git y no asumir que es un archivo destinado a versionarse.
41
+
42
+ ### Honestidad sobre el estado de implementación
43
+
44
+ - lección: no afirmar que un cambio quedó escrito si no fue persistido realmente en el workspace.
45
+ - implicación: la IA debe reportar con precisión lo que sí quedó aplicado y lo que sigue pendiente.
46
+
47
+ ### Pendientes explícitos
48
+
49
+ - lección: las tareas futuras deben quedar en todo.md solo si el usuario dijo explícitamente que quedan pendientes.
50
+ - implicación: la IA no debe promover ideas implícitas a backlog sin confirmación.
51
+
52
+ ### Documentación pública en inglés
53
+
54
+ - lección: la documentación pública del paquete debe escribirse en inglés.
55
+ - implicación: README y docs/ no deben mezclar español en futuras iteraciones.
56
+
57
+
58
+ ### Versiones del CDN en releases
59
+
60
+ - lección: cuando se cambia la versión publicada del paquete, también deben actualizarse las URLs versionadas del CDN en la documentación pública.
61
+ - implicación: antes de crear commit, tag o release, la IA debe revisar README y docs para confirmar que las referencias usan la misma versión que package.json.
62
+
63
+ ### Pre-task reading enforcement
64
+
65
+ - lección: la IA debe leer `.local/agent-index.md` antes de comenzar cualquier tarea en el repositorio.
66
+ - implicación: si la IA inicia trabajo sin haber leído `agent-index.md`, debe reconocer el error, corregirlo, y anotar la lección en este archivo para evitar repetirla.
67
+
68
+ Ejemplo de corrección aplicada: la IA inició la implementación inicial del paquete sin leer `agent-index.md` primero; al detectarlo, leyó `agent-index.md`, actualizó `.local/lessons.md` con esta lección y continuará aplicando la regla en tareas futuras.
69
+
70
+ ## Cómo Añadir Nuevas Lecciones
71
+
72
+ Usar bloques simples con:
73
+
74
+ - situación
75
+ - error o preferencia detectada
76
+ - regla a mantener en adelante