openprompt-lang 0.3.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 (73) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +663 -0
  3. package/bin/cli.js +110 -0
  4. package/bin/lint.js +50 -0
  5. package/docs/COMMANDS.md +229 -0
  6. package/docs/COMMITS/INDEX.md +11 -0
  7. package/docs/COMMITS/v0.1.0-existing.md +31 -0
  8. package/docs/COMMITS/v0.1.0-inicial.md +50 -0
  9. package/docs/COMMITS/v0.1.0-readme.md +24 -0
  10. package/docs/COMMITS/v0.2.0-strict-db-templates.md +50 -0
  11. package/docs/COMMITS/v0.3.0-parser-fixes-vscode.md +67 -0
  12. package/docs/COMMITS/v0.3.0-versioning-component.md +44 -0
  13. package/docs/DEPENDENCIES.md +45 -0
  14. package/docs/FRAMEWORK.md +1741 -0
  15. package/docs/SYNTAX.md +359 -0
  16. package/docs/VERSIONING.md +150 -0
  17. package/docs/referencia-metodologia/Anexos Finales Documentos de Respaldo y Estandarizaci/303/263n.md" +90 -0
  18. package/docs/referencia-metodologia/Cotizaciones.md +84 -0
  19. package/docs/referencia-metodologia/Example.md +1 -0
  20. package/docs/referencia-metodologia/ExtractorInformacion.py +78 -0
  21. package/docs/referencia-metodologia/Fase - 1 .- Desarrollo de la Metodolog/303/255a.md" +67 -0
  22. package/docs/referencia-metodologia/Fase - 2 .- Levantamiento de requisitos generales y traduccion a la IA.md +64 -0
  23. package/docs/referencia-metodologia/Fase - 3 .- Prototipado visual con IA (Figma Maker o equivalentes).md +64 -0
  24. package/docs/referencia-metodologia/Fase - 4 .- Especificacion de requisitos e iteracion con el cliente.md +58 -0
  25. package/docs/referencia-metodologia/Fase - 5 .- Estructuracion y maquetado de funciones (Scaffolding).md +118 -0
  26. package/docs/referencia-metodologia/Fase - 6 .- Estructuracion del backlog y division de tareas.md +48 -0
  27. package/docs/referencia-metodologia/Fase - 7 .- Desarrollo activo, pruebas y control de versiones.md +98 -0
  28. package/docs/referencia-metodologia/Fase - 8 .- Entrega, capacitaci/303/263n y mantenimiento.md" +55 -0
  29. package/docs/referencia-metodologia/Figma prompt template.md +130 -0
  30. package/docs/referencia-metodologia/Framework de Desarrollo Asistido por IA.md +1741 -0
  31. package/docs/referencia-metodologia/Indice General.md +83 -0
  32. package/docs/referencia-metodologia/Prompt refactorizar o creacion desde cero.md +50 -0
  33. package/docs/referencia-metodologia/docs/CONVENCIONES_DB.md +410 -0
  34. package/docs/referencia-metodologia/docs/CONVENCIONES_DOCUMENTACION.md +209 -0
  35. package/docs/referencia-metodologia/docs/PROMPTS/INDEX.md +73 -0
  36. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/01-hook-supabase.md +79 -0
  37. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/02-componente-ui.md +82 -0
  38. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/03-pagina-feature.md +70 -0
  39. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/04-comando-tauri.md +56 -0
  40. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/05-store-zustand.md +74 -0
  41. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/06-servicio-supabase.md +74 -0
  42. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/07-formulario-validacion.md +63 -0
  43. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/08-hook-capacitor.md +65 -0
  44. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/09-refactor-division.md +51 -0
  45. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/10-scaffolding-inicial.md +79 -0
  46. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/11-supabase-crud-service.md +114 -0
  47. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/12-supabase-hook-usetable.md +143 -0
  48. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/13-tauri-command-rust.md +84 -0
  49. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/14-tauri-wrapper-typescript.md +92 -0
  50. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/15-documentar-tabla-db.md +50 -0
  51. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/16-diagrama-arquitectura.md +60 -0
  52. package/docs/referencia-metodologia/docs/PROMPTS/PLANTILLAS/17-documentar-api-rpc.md +56 -0
  53. package/docs/referencia-metodologia/docs/PROMPTS/STACK/ionic-capacitor.md +52 -0
  54. package/docs/referencia-metodologia/docs/PROMPTS/STACK/react-web-puro.md +46 -0
  55. package/docs/referencia-metodologia/docs/PROMPTS/STACK/tauri-desktop.md +53 -0
  56. package/package.json +56 -0
  57. package/schemas/prompt-lang.json +98 -0
  58. package/src/commands/component.js +326 -0
  59. package/src/commands/context.js +206 -0
  60. package/src/commands/figma.js +63 -0
  61. package/src/commands/init.js +373 -0
  62. package/src/commands/suggest.js +31 -0
  63. package/src/commands/validate.js +183 -0
  64. package/src/generators/figma-prompt.js +56 -0
  65. package/src/utils/ai.js +143 -0
  66. package/src/utils/annotations.js +510 -0
  67. package/src/utils/config.js +60 -0
  68. package/vscode-extension/README.md +31 -0
  69. package/vscode-extension/language-configuration.json +7 -0
  70. package/vscode-extension/package.json +62 -0
  71. package/vscode-extension/snippets/promptlang.json +105 -0
  72. package/vscode-extension/syntaxes/annotations.tmGrammar.json +39 -0
  73. package/vscode-extension/syntaxes/promptlang.tmGrammar.json +14 -0
@@ -0,0 +1,78 @@
1
+ import os
2
+
3
+ IGNORED_DIRS = {'.git', 'node_modules', 'dist', '.gemini', 'public'}
4
+ IGNORED_FILES = {'ExtractorInformacion.py', 'proyecto_completo.md', 'package-lock.json','.env.local','.env'}
5
+ IGNORED_EXTENSIONS = {'.png', '.jpg', '.jpeg', '.gif', '.ico', '.svg', '.webp', '.pdf', '.woff', '.woff2', '.ttf','.env'}
6
+
7
+ def generate_tree(dir_path, prefix=""):
8
+ tree_str = ""
9
+ try:
10
+ entries = sorted(os.listdir(dir_path))
11
+ except PermissionError:
12
+ return ""
13
+
14
+ entries = [e for e in entries if e not in IGNORED_DIRS and e not in IGNORED_FILES]
15
+ for i, entry in enumerate(entries):
16
+ path = os.path.join(dir_path, entry)
17
+ is_last = (i == len(entries) - 1)
18
+
19
+ connector = "└── " if is_last else "├── "
20
+ tree_str += f"{prefix}{connector}{entry}\n"
21
+
22
+ if os.path.isdir(path):
23
+ extension = " " if is_last else "│ "
24
+ tree_str += generate_tree(path, prefix + extension)
25
+
26
+ return tree_str
27
+
28
+ def main():
29
+ base_dir = os.path.abspath(os.path.dirname(__file__))
30
+ output_file = os.path.join(base_dir, "proyecto_completo.md")
31
+
32
+ with open(output_file, 'w', encoding='utf-8') as out:
33
+ out.write("# Contenido del Proyecto\n\n")
34
+
35
+ for root, dirs, files in os.walk(base_dir):
36
+ dirs[:] = [d for d in dirs if d not in IGNORED_DIRS]
37
+
38
+ for file in sorted(files):
39
+ if file in IGNORED_FILES:
40
+ continue
41
+
42
+ _, ext = os.path.splitext(file)
43
+ if ext.lower() in IGNORED_EXTENSIONS:
44
+ continue
45
+
46
+ file_path = os.path.join(root, file)
47
+ rel_path = os.path.relpath(file_path, base_dir)
48
+
49
+ try:
50
+ with open(file_path, 'r', encoding='utf-8') as f:
51
+ content = f.read()
52
+ except UnicodeDecodeError:
53
+ continue # Sirve para evadir binarios que por casualidad no estaban en excluidos
54
+
55
+ language = ext.replace('.', '')
56
+ if language not in ['ts', 'tsx', 'js', 'jsx', 'json', 'css', 'html', 'md', 'mdx']:
57
+ language = ''
58
+
59
+ if language == 'md' and file_path == output_file:
60
+ continue # Evitar redundancia si el archivo se llama distinto de imprevisto
61
+
62
+ out.write(f"### Archivo: {rel_path}\n")
63
+ out.write(f"```{language}\n")
64
+ out.write(content)
65
+ if not content.endswith('\n'):
66
+ out.write('\n')
67
+ out.write("```\n\n")
68
+
69
+ out.write("# Estructura de Carpetas\n")
70
+ out.write("```text\n")
71
+ out.write(os.path.basename(base_dir) + "/\n")
72
+ out.write(generate_tree(base_dir))
73
+ out.write("```\n")
74
+
75
+ print(f"✅ Extracción completada. El archivo '{output_file}' ha sido generado.")
76
+
77
+ if __name__ == '__main__':
78
+ main()
@@ -0,0 +1,67 @@
1
+
2
+ ---
3
+
4
+ > [!abstract] Objetivo de la Fase
5
+ > Esta fase establece el control del proyecto. El objetivo es extraer información de alto valor, evaluar la viabilidad técnica temprana y estructurar una propuesta que posicione el servicio como una **inversión estratégica** y no como un simple gasto.
6
+
7
+ ## a. Entrevista de levantamiento estructurado (Plantilla de Diagnóstico)
8
+
9
+ Para evitar soluciones superficiales, se utiliza un cuestionario estructurado dividido en tres pilares clave. Estas preguntas buscan llegar al dolor real del negocio:
10
+
11
+ > [!question] 1. Pilar de Negocio y Problema Raíz
12
+ > - ¿Cuál es el proceso manual que les toma más tiempo hoy en día?
13
+ > - ¿Cuánto tiempo o dinero calculan que pierden a la semana por este cuello de botella o error del sistema actual?
14
+ > - Si no solucionamos este problema en los próximos 6 meses, ¿qué impacto negativo tendrá en la empresa?
15
+ > - ¿Cuál es el objetivo principal de este proyecto? *(Ej: Vender más, reducir tiempos de atención, evitar pérdida de datos).*
16
+
17
+ > [!question] 2. Pilar de Usuarios y Contexto Operativo
18
+ > - ¿Quién va a usar este sistema todos los días? ¿Qué nivel de conocimiento técnico tienen?
19
+ > - ¿Desde qué dispositivos se usará principalmente? *(Computadoras de oficina viejas, celulares en la calle, tablets).*
20
+ > - ¿Existe algún flujo crítico que no pueda detenerse por ningún motivo durante la transición?
21
+
22
+ > [!question] 3. Pilar Técnico (Si ya existe un sistema)
23
+ > - ¿Dónde está alojado el sistema actual y quién tiene los accesos?
24
+ > - ¿El sistema se conecta con otras herramientas *(facturación, inventario, envíos)*?
25
+ > - ¿Tienen documentación, diagramas o el contacto del desarrollador anterior?
26
+
27
+ ---
28
+
29
+ ## b. Evaluación de ruta: Desarrollo desde cero vs Refactorización.
30
+
31
+ En la misma reunión, o posterior al análisis de las respuestas, se aplican criterios técnicos para decidir si el software actual es rescatable.
32
+
33
+ > [!warning] Especificaciones técnicas para descartar un proyecto (Ir por "Desde Cero")
34
+ > Se recomendará construir desde cero si el proyecto actual cumple 2 o más de estos criterios:
35
+ > - **Stack Obsoleto:** Utiliza frameworks o versiones de lenguajes deprecados y sin soporte de seguridad activo.
36
+ > - **Deuda Técnica Crítica:** Código fuertemente acoplado (espagueti) donde no hay separación entre frontend, backend y base de datos.
37
+ > - **Base de Datos Corrompida:** No hay integridad referencial, hay duplicación masiva de datos o la arquitectura de la BD no soporta escalabilidad.
38
+ > - **Parche sobre Parche:** El sistema fue construido por múltiples desarrolladores sin estándares, y arreglar un bug genera tres nuevos.
39
+
40
+ > [!info] Especificaciones para Auditoría de Refactorización
41
+ > Si el proyecto es rescatable, se establece el proceso de Auditoría Pagada. Las especificaciones incluyen:
42
+ > - Firma de NDA (Acuerdo de confidencialidad).
43
+ > - Solicitud de accesos (Repositorios de GitHub/GitLab, variables de entorno, accesos a base de datos en lectura).
44
+ > - **Entregable de la auditoría:** Mapeo de dependencias, reporte de vulnerabilidades y estimación de horas necesarias para limpiar el código antes de agregar nuevas funciones.
45
+
46
+ ---
47
+
48
+ ## c. Propuesta preliminar y alineación de expectativas
49
+
50
+ Con la información levantada, se genera una propuesta rápida para alinear presupuesto y tiempos antes del diseño profundo.
51
+
52
+ - **Stack Tecnológico Sugerido:** Se plantea la tecnología a usar *(Ej: React para interfaces dinámicas, Supabase para bases de datos escalables y autenticación, Tailwind para diseño responsivo).*
53
+ - **Rango de Inversión (T-Shirt Sizing):** No se da un precio cerrado, sino rangos *(Ej: "Un proyecto de esta magnitud ronda entre X e Y dólares").*
54
+ - **Tiempos Estimados por Fases:** Se dividen los tiempos especulativos en semanas o sprints, dejando claro que dependerá de la velocidad de aprobación del cliente.
55
+
56
+ ---
57
+
58
+ ## d. Entregable de diagnóstico y valor (El Documento Final)
59
+
60
+ Se redacta un documento PDF formal que actúa como la **"Radiografía del Negocio"**.
61
+
62
+ > [!example] Estructura Técnica del PDF
63
+ > 1. **Resumen Ejecutivo:** Descripción del problema raíz en un párrafo.
64
+ > 2. **Análisis de Impacto:** Explicación del costo actual del problema (dinero o tiempo perdido).
65
+ > 3. **Arquitectura Conceptual:** Diagrama de bloques simple (Nivel de Contexto) creado con herramientas visuales, mostrando cómo interactuarán los usuarios, el nuevo sistema y servicios externos.
66
+ > 4. **Matriz de Beneficios:** Tabla comparativa de *"Cómo se hace hoy"* vs *"Cómo se hará con el nuevo sistema"*.
67
+ > 5. **Siguientes Pasos:** Call to Action (Llamado a la acción) para aprobar el inicio de la Fase 2 (Levantamiento de requisitos generales y contratos para IA).
@@ -0,0 +1,64 @@
1
+
2
+ ---
3
+ > [!abstract] Objetivo de la Fase
4
+ > En esta fase, la información subjetiva del cliente se transforma en instrucciones exactas, deterministas y libres de ambigüedad. El objetivo es estructurar el sistema de manera que la Inteligencia Artificial (y cualquier desarrollador humano futuro) no tenga margen para asumir, interpretar mal o alucinar funcionalidades.
5
+
6
+ ## a. Detallado del funcionamiento del sistema en lenguaje enfocado a la IA
7
+
8
+ El lenguaje natural humano es ambiguo; el lenguaje para la IA debe ser imperativo y restrictivo.
9
+
10
+ > [!tip] Principios de redacción determinista
11
+ > - **Eliminación de subjetividad:** Se prohíben adjetivos como "rápido", "bonito", "intuitivo" o "seguro". Todo debe ser cuantificable.
12
+ > - **Especificación de alcance estricto:** La IA no tiene criterio propio, por lo tanto, no se dejan decisiones de negocio al azar. Se le dan órdenes exactas de lo que debe ocurrir y lo que está estrictamente prohibido que ocurra.
13
+ > - **Contrastes obligatorios:** Se estructuran los prompts entregando ejemplos claros de lo que es correcto y lo que es incorrecto para calibrar el comportamiento generativo.
14
+ > - **Reglas de negocio inmutables:** Se define el límite de la solución.
15
+
16
+ ### Ejemplos de comunicación con la IA (Correcto vs Incorrecto)
17
+
18
+ | Lo que NO se debe hacer (Ambigüedad) | Lo que SÍ se debe hacer (Determinista) | Razón del cambio |
19
+ | :--- | :--- | :--- |
20
+ | "Crea una vista bonita para ver los productos y que cargue rápido." | "Crea un grid de 4 columnas (`Tailwind grid-cols-4`) para renderizar `ProductCard`. La petición inicial debe traer máximo 20 productos paginados." | La IA no sabe qué es "bonito" o "rápido". Necesita límites de diseño y rendimiento exactos. |
21
+ | "Haz una función para guardar usuarios." | "Crea una función `registerUser(payload: UserDTO): Promise<boolean>`. Debe verificar si el email existe antes de insertar en Supabase." | Define estrictamente la firma de la función, entradas, salidas y la lógica de negocio obligatoria. |
22
+ | "Si falla el login, muestra un error." | "Si falla Auth, captura el error de Firebase. Si es `wrong-password`, muestra un Toast rojo que diga 'Contraseña incorrecta'. Nunca devuelvas el error del servidor al cliente." | Evita que la IA alucine manejos de errores genéricos que rompan la experiencia de usuario o expongan datos. |
23
+
24
+ ---
25
+
26
+ ## b. Creación de Historias de Usuario con enfoque técnico
27
+
28
+ A diferencia de las historias de usuario tradicionales que solo enfocan el "Qué", en esta metodología las historias se redactan pensando en el "Cómo se estructura" para alimentar directamente a la IA.
29
+
30
+ > [!info] Estructura de una Historia de Usuario Determinista
31
+ > Cada historia debe contener suficiente detalle lógico para que la IA sepa cómo trabajar y desarrollar el elemento sin generar dudas funcionales:
32
+ > 1. **Actor y Contexto:** ¿Quién ejecuta la acción y en qué vista o módulo se encuentra?
33
+ > 2. **Disparador (Trigger):** ¿Qué evento exacto inicia el proceso?
34
+ > 3. **Lógica Interna General:** Descripción paso a paso de lo que el sistema debe hacer tras bambalinas.
35
+ > 4. **Resultado Esperado (Success):** Estado del sistema tras una ejecución exitosa.
36
+ > 5. **Resultado Fallido (Error):** Estado del sistema y mensaje exacto que se muestra si la ejecución falla.
37
+
38
+ ---
39
+
40
+ ## c. Traducción a definiciones de métodos complejos (El Contrato del Método)
41
+
42
+ Esta es la pieza central para mantener la calidad del código generado por IA. Antes de permitir que la IA escriba la lógica interna de una función, se le exige generar un "Contrato Estructural" mediante comentarios.
43
+
44
+ > [!warning] Estructura obligatoria de un Contrato de Método
45
+ > La IA debe devolver el esqueleto de la función con la siguiente información claramente comentada, basándose en el nombre descriptivo y los requerimientos:
46
+ > - **Nombre descriptivo de la función:** Debe indicar claramente la acción (Verbo + Entidad + Contexto. Ej: `fetchActiveProductsByCategoryId()`).
47
+ > - **Parámetros de entrada (Inputs):** Qué recibe la función y cuál es su tipo de dato estricto (Typescript interfaces/types).
48
+ > - **Salida esperada (Outputs):** Qué devuelve la función y en qué formato.
49
+ > - **Responsabilidad en el flujo general:** Cuál es la importancia de este método en el sistema. ¿Es un método crítico de negocio o solo una utilidad visual?
50
+ > - **Impacto de modificación:** Si este método se altera o falla, ¿qué otros módulos o pantallas se rompen? (Trazabilidad).
51
+ > - **Manejo de Errores (Try/Catch):** Qué excepciones específicas debe atrapar y cómo debe responder el sistema ante ellas.
52
+
53
+ ### Ejemplo visual del esqueleto exigido a la IA
54
+
55
+ | Componente del Contrato | Explicación exigida en el comentario generado por la IA |
56
+ | :--- | :--- |
57
+ | **Entradas (Inputs)** | `// Recibe: userId (string, UUID válido), amount (number, mayor a 0)` |
58
+ | **Salidas (Outputs)** | `// Retorna: PaymentResult (Interface con status 'success' o 'failed' y transactionId)` |
59
+ | **Lógica de Negocio** | `// Flujo: 1. Valida saldo. 2. Descuenta de wallet. 3. Registra en historial de transacciones.` |
60
+ | **Impacto (Trazabilidad)**| `// Impacto: Método crítico. Su fallo afecta la vista de Checkout y el reporte contable diario.` |
61
+ | **Manejo de Errores** | `// Error handling: Catch InsufficientFundsException -> Retorna status 400 'Saldo insuficiente'.` |
62
+
63
+ > [!quote]
64
+ > Este enfoque de *"Comentarios primero, Lógica después"* garantiza que, al momento de hacer alguna mejora, se entienda perfectamente el impacto estructural antes de modificar el código.
@@ -0,0 +1,64 @@
1
+
2
+ ---
3
+
4
+ > [!abstract] Objetivo de la Fase
5
+ > El objetivo de esta fase no es obtener un diseño final perfecto generado por IA, sino **acelerar radicalmente el proceso** creando una plantilla estructural sólida. Esta plantilla sirve como un borrador funcional y responsivo, que posteriormente se pulirá manualmente, ahorrando días de trabajo desde cero.
6
+
7
+ ## a. Creación de plantilla de interfaz gráfica inicial
8
+
9
+ Al solicitar a la IA la generación de la interfaz (ya sea en código o herramientas visuales generativas), se le entregan directrices que aseguran que el resultado sea escalable y fácil de traducir a React y Tailwind.
10
+
11
+ > [!tip] Reglas para el Prompt Visual Inicial
12
+ > - **Conceptos ancla de estilo:** La IA comprende muy bien directrices abstractas de diseño. Se utilizan palabras clave específicas para definir el tono *(Ej: "UI minimalista, colores vibrantes, estilo SaaS B2B, alta legibilidad")*.
13
+ > - **Referencias estructurales:** Se orienta a la IA indicando el patrón de diseño general *(Ej: "Estructura tipo Dashboard de administración", "Layout de Ecommerce con sidebar", "Landing page de alta conversión")*.
14
+ > - **Enfoque Mobile-First:** Si la aplicación requiere uso móvil, se describen los elementos de navegación principales desde esa perspectiva *(Ej: "Bottom navbar fijo para navegación principal, menú hamburguesa secundario")*.
15
+
16
+ ---
17
+
18
+ ## b. Estructura visual y adaptación técnica (React + Tailwind)
19
+
20
+ Para que el diseño generado sea útil, debe estar pensado desde su concepción para ser programado en componentes. La IA no debe generar una "página estática gigante", sino un rompecabezas de piezas reutilizables.
21
+
22
+ - **Modularidad React:** Se le exige a la IA que estructure el diseño pensando en componentes aislados. Si hay una tarjeta de producto, debe ser un componente independiente (`ProductCard.tsx`), no un bloque de código repetido.
23
+ - **Ausencia de CSS personalizado:** Al utilizar Tailwind, se elimina la necesidad de archivos `.css` sueltos. Todo el diseño debe resolverse mediante clases de utilidad directamente en el markup, manteniendo el orden del proyecto.
24
+ - **Mapeo de carpetas de interfaz:** Junto con el diseño, se le pide a la IA que sugiera la estructura de carpetas de componentes *(Ej: `/components/ui/buttons`, `/components/layout/navbar`, `/views/dashboard`)*.
25
+
26
+ ---
27
+
28
+ ## c. Catálogo de buenas y malas estructuras (Anti-patrones visuales)
29
+
30
+ La IA tiende a cometer errores de maquetación que destruyen la responsividad o la experiencia de usuario. Para evitarlo, se incluyen reglas de "Anti-patrones" en los prompts, bloqueando explícitamente estas prácticas.
31
+
32
+ > [!warning] Tabla de Anti-Patrones Prohibidos vs. Buenas Prácticas Exigidas
33
+
34
+ | Anti-Patrón (Prohibido en el Prompt) | Buena Práctica (Exigida en el Prompt) | Razón Técnica |
35
+ | :--- | :--- | :--- |
36
+ | Uso de medidas absolutas o fijas: `h-[500px]`, `w-[300px]`, `absolute`, `top-20`. | Uso de flexbox/grid y medidas relativas: `h-full`, `w-full`, `flex`, `grid`, `p-4`, `gap-2`. | Las medidas absolutas rompen el *Responsive Web Design*. La UI debe fluir y adaptarse al tamaño de la pantalla. |
37
+ | Inconsistencia de UI: Dos botones que hacen lo mismo pero tienen distinto borde o tamaño. | Componentes Atómicos: Definir un solo estilo base para acciones y usar variantes. | La redundancia visual confunde al usuario y duplica el mantenimiento. |
38
+ | Elementos táctiles diminutos: Botones de `h-4 w-4` en interfaces diseñadas para móviles. | Zonas táctiles seguras: Botones e inputs con un alto mínimo de `h-10` o `h-12` para móviles. | Mejora la accesibilidad y evita toques accidentales. |
39
+
40
+ ---
41
+
42
+ ## d. Prompt Maestro de Generación Base (Plantilla Inicial)
43
+
44
+ Este es el prompt estandarizado que se utiliza como punto de partida para generar la estructura visual base. Posteriormente, se refina alimentando a la IA con los documentos de requisitos específicos de la Fase 2.
45
+
46
+ > [!example] Prompt a utilizar
47
+ > ```text
48
+ > Eres un experto en diseño UI/UX y desarrollo Frontend con React y Tailwind CSS. Tu objetivo es generar la estructura visual base para un proyecto de tipo [TIPO DE PROYECTO: ej. Dashboard SaaS / Ecommerce App].
49
+ >
50
+ > Concepto Visual: El estilo debe transmitir [CONCEPTOS: ej. minimalismo, seriedad corporativa, modernidad vibrante]. Usa una paleta de colores [TIPO DE PALETA: ej. neutra con acentos en azul oscuro].
51
+ >
52
+ > Estructura Requerida:
53
+ > 1. Diseña con enfoque Mobile-First, escalando luego a Desktop (responsive design obligatorio).
54
+ > 2. Divide la interfaz en componentes lógicos reutilizables (Ej: Navbar, Sidebar, CardComponent, DataTable).
55
+ > 3. Propón una estructura de carpetas limpia para estos componentes.
56
+ >
57
+ > RESTRICCIONES ESTRICTAS (ANTI-PATRONES PROHIBIDOS):
58
+ > - ESTRICTAMENTE PROHIBIDO usar posiciones o tamaños absolutos (absolute, top-x, h-[500px], w-[300px]). Todo debe fluir con flex, grid, porcentajes o medidas relativas (w-full, h-full, gap-x).
59
+ > - PROHIBIDO generar botones o inputs con alturas táctiles menores a h-10 en vistas móviles.
60
+ > - PROHIBIDO duplicar estilos para elementos que cumplen la misma función (Ej: si hay dos botones de 'Cerrar Modal', deben verse y codificarse exactamente igual).
61
+ > - PROHIBIDO escribir CSS personalizado. Usa 100% clases de utilidad de Tailwind.
62
+ >
63
+ > Entrégame el código de los componentes principales estructurados y listos para ser iterados más adelante con la lógica de negocio real.
64
+ > ```
@@ -0,0 +1,58 @@
1
+
2
+ ---
3
+ > [!abstract] Objetivo de la Fase
4
+ > Esta fase es el punto de no retorno antes de iniciar el desarrollo lógico profundo. Es el espacio diseñado para que el cliente visualice la solución propuesta, valide que resuelve su problema raíz y solicite ajustes. El objetivo principal es congelar el alcance del proyecto y definir el presupuesto exacto final.
5
+
6
+ ## a. Integración de correcciones del cliente (El "Feedback Loop")
7
+
8
+ La presentación del prototipo y la lógica inicial se realiza idealmente en una reunión presencial o, en su defecto, mediante videollamada interactiva. **No se envían enlaces para revisión asíncrona sin contexto.**
9
+
10
+ > [!info] Estructura de la reunión de presentación
11
+ > - **Demostración del Producto Preliminar:** Se navega por el prototipo generado (Fase 3), explicando el flujo visual y cómo cada pantalla responde a los dolores levantados en la Fase 1.
12
+ > - **Propuesta de Valor Agregado:** Se le exponen al cliente ideas de mejora proactivas que surgieron durante el diseño, explicando el impacto positivo que tendrían en la resolución de su problema.
13
+ > - **Modificaciones en Vivo:** Se habilita un espacio de feedback inmediato. Los ajustes visuales menores o de distribución que el cliente solicita se intentan modificar de forma rápida y manual durante la misma sesión para agilizar la aprobación.
14
+
15
+ ---
16
+
17
+ ## b. Ciclo de preguntas, control de alcance (Scope Creep) y presupuesto final
18
+
19
+ Es natural que, al ver la interfaz, el cliente solicite funciones nuevas que no estaban contempladas en el levantamiento inicial. Esta metodología abraza el cambio, pero lo somete a un estricto control de presupuesto y tiempo.
20
+
21
+ > [!warning] Reglas para manejar nuevos requerimientos
22
+ > 1. **Flexibilidad controlada:** Todos los cambios, adiciones o nuevas ideas que surjan en esta reunión son bienvenidos y se documentan.
23
+ > 2. **Evaluación de impacto:** Se analiza en tiempo real (o en las siguientes 24 horas) cuánta dificultad técnica y tiempo de desarrollo añaden estas nuevas solicitudes.
24
+ > 3. **Cierre de Presupuesto:** En esta misma reunión (o en una sesión breve posterior), se presenta el presupuesto exacto y final que absorbe todos los ajustes validados.
25
+ > 4. **Congelamiento del Alcance:** Una vez aprobado el presupuesto y definido el proyecto en este punto, cualquier nueva funcionalidad *(Ej: "Agreguemos un módulo de chat")* será cotizada por separado y agendada para el final del desarrollo inicial (siguiente sprint o Fase 2 del producto).
26
+
27
+ ---
28
+
29
+ ## c. Especificación de nuevos elementos funcionales
30
+
31
+ Cuando el cliente aprueba una nueva función o la modificación de una existente, esta no pasa directamente a programarse. Debe ser procesada por el mismo filtro de calidad determinista de la Fase 2.
32
+
33
+ > [!tip] Protocolo de documentación de cambios
34
+ > - **Modificación de elementos existentes:** Si el cliente pide alterar un botón o un flujo que ya estaba definido, se agrega un comentario técnico en la documentación original que invalida el comportamiento previo y detalla las nuevas condiciones.
35
+ > - **Creación de elementos nuevos:** Si se agrega una vista, modal o interacción inédita, se redacta su "Contrato Estructural" (Inputs, Outputs, Manejo de errores y Relación con el sistema general).
36
+ > - **Trazabilidad de equipo e IA:** Este registro estricto garantiza que tanto la Inteligencia Artificial como otros desarrolladores humanos que colaboren en el proyecto comprendan el cambio de rumbo sin confusiones.
37
+
38
+ ---
39
+
40
+ ## d. Bibliotecas necesarias y factibilidad técnica
41
+
42
+ La adición de nuevos elementos funcionales suele acarrear necesidades técnicas que no estaban previstas originalmente. En este paso se define el stack complementario necesario para cumplir con las peticiones del cliente.
43
+
44
+ - **Justificación de uso:** Antes de instalar cualquier paquete externo, se documenta por qué es necesario y qué problema específico resuelve.
45
+ - **Auditoría de impacto:** Se revisa que la nueva biblioteca no entre en conflicto de versiones con el stack base, asegurando la escalabilidad del sistema recién re-definido.
46
+
47
+ ---
48
+
49
+ ## **✅ Checklist de Aprobación: Inicio Oficial de Desarrollo (Go / No-Go)**
50
+
51
+ **Antes de escribir la primera línea de código de la Fase 5, se debe verificar que todos los puntos de esta tabla estén cumplidos. Si hay un solo "No" (o casilla desmarcada), el proyecto se pausa hasta resolverlo.**
52
+
53
+ > [!success] 🚀 Go / No-Go (Checklist de Aprobación)
54
+ > - [ ] **1. Diseño Base Aprobado:** El cliente vio el prototipo visual (Figma/App) y confirmó que el flujo principal es correcto.
55
+ > - [ ] **2. Modificaciones Documentadas:** Todos los cambios solicitados en la reunión fueron anotados y procesados bajo las reglas estrictas de la Fase 2.
56
+ > - [ ] **3. Presupuesto Final Aceptado:** Se envió la cotización exacta (que incluye los cambios de última hora) y el cliente dio su confirmación escrita/formal.
57
+ > - [ ] **4. Alcance Congelado (Scope Lock):** El cliente entiende y aceptó que cualquier idea nueva a partir de hoy se cobra como un "Extra" o pasa a una Fase 2.
58
+ > - [ ] **5. Viabilidad Técnica Confirmada:** Se validaron las bibliotecas, APIs o herramientas necesarias para cumplir con los nuevos requerimientos.
@@ -0,0 +1,118 @@
1
+
2
+ ---
3
+ > [!abstract] Objetivo de la Fase
4
+ > En esta fase se abandona la planificación y se comienza la construcción real del sistema, pero sin escribir lógica de negocio todavía. El objetivo es crear la "arquitectura vacía" (esqueletos) del proyecto, dejando todo el terreno documentado y preparado para que la IA (o el equipo humano) solo tenga que rellenar los espacios en blanco de forma determinista.
5
+
6
+ ## a. Creación de estructura básica de archivos de documentación
7
+
8
+ Antes de crear carpetas de código, se debe centralizar el conocimiento del proyecto en un formato cómodo para el desarrollador y legible para la IA.
9
+
10
+ > [!tip] Implementación del Diccionario en README.md
11
+ > En lugar de depender de PDFs externos durante el desarrollo, toda la documentación viva se aloja en archivos Markdown (`.md`) dentro del propio repositorio. Esto permite actualizarla sin salir del editor de código (VS Code, Cursor, etc.).
12
+ > - **Diccionario de Variables:** Un archivo donde se enlistan las variables globales o estados complejos, su tipo de dato, en qué módulo habitan y qué impacto tienen.
13
+ > - **Diccionario de Funciones Críticas:** Un listado de los métodos principales del sistema, explicando qué hacen y qué dependencias tienen.
14
+ > - **Registro de Bibliotecas:** Un bloque en el README con las dependencias instaladas *(Ej: `date-fns v3.0`, `zustand v4.5`)* y una breve justificación de su uso.
15
+
16
+ ---
17
+
18
+ ## b. Definición de estructura de carpetas definitiva
19
+
20
+ Se define el árbol de directorios del proyecto. Un buen ordenamiento previene el "código espagueti" y permite que la IA entienda el contexto de un archivo solo por su ubicación.
21
+
22
+ > [!info] Estructura de referencia (Ejemplo para React/TypeScript)
23
+ > ```text
24
+ > /src
25
+ > /assets (Imágenes, iconos, fuentes)
26
+ > /components (Componentes visuales aislados)
27
+ > /ui (Botones, inputs, modales base - Atomic Design)
28
+ > /layout (Navbar, Sidebar, Footers)
29
+ > /features (Componentes complejos agrupados por dominio de negocio. Ej: /auth, /cart)
30
+ > /hooks (Lógica reutilizable de React, ej: useAuth, useTable)
31
+ > /services (Llamadas a APIs externas o bases de datos)
32
+ > /store (Manejo de estado global, ej: Zustand, Redux)
33
+ > /types (Interfaces y tipos de TypeScript globales)
34
+ > /utils (Funciones puras de ayuda, ej: formatearFecha, calcularImpuesto)
35
+ > /views (Las páginas completas que agrupan los componentes)
36
+ > ```
37
+ > Cada tecnología (Spring Boot, Next.js, Ionic) tendrá su variante, pero la regla es la misma: **Separación estricta de responsabilidades**.
38
+
39
+ ---
40
+
41
+ ## c. Creación de archivos y esqueletos base (Scaffolding)
42
+
43
+ En lugar de programar la lógica inmediatamente, se crean todos los archivos necesarios vacíos, pero estructurados con "Comentarios de Contrato". Esto funciona como una orden estricta para la IA.
44
+
45
+ > [!warning] Patrón de trabajo (El método Scaffolding)
46
+ > 1. Se crea el archivo con su nombre definitivo.
47
+ > 2. Se importan las dependencias obvias si se conocen.
48
+ > 3. Se define la firma de la función (Input y Output).
49
+ > 4. Se inyecta un bloque de comentarios estandarizado (Intención, Flujo, Dependencias).
50
+ > 5. Se fuerza un error deliberado *(Ej: `throw new Error("Lógica pendiente")`)* para evitar que el sistema pase por alto funciones vacías.
51
+
52
+ ---
53
+
54
+ ## d. Ejemplo práctico de definición técnica (El Contrato en Código)
55
+
56
+ A continuación, un ejemplo real de cómo se debe preparar un esqueleto (en este caso backend) antes de entregárselo a la IA para que desarrolle la lógica final. Este patrón es aplicable a cualquier lenguaje.
57
+
58
+ ```java
59
+ @Override
60
+ public AuthResponseDTO registrar(RegisterRequestDTO dto) {
61
+ /*
62
+ * INTENCIÓN:
63
+ * Registrar nuevas credenciales de usuario.
64
+ *
65
+ * FLUJO ESPERADO:
66
+ * Input: RegisterRequestDTO (username, password, rol)
67
+ * Process:
68
+ * 1. Verificar si username existe (UsuarioYaExisteException si es así).
69
+ * 2. Normalizar username a minúsculas.
70
+ * 3. Hashear password usando PasswordEncoder.
71
+ * 4. Asignar ROLE_CL si rol viene null.
72
+ * 5. Guardar en UserCredentialRepository con activo=true.
73
+ * 6. Generar tokens via JwtService.
74
+ * Output: AuthResponseDTO (JWT).
75
+ *
76
+ * DEPENDENCIAS:
77
+ * - ms-usuarios (para crear perfil vinculado al credencialId generado).
78
+ */
79
+ throw new UnsupportedOperationException("Scaffolding: Lógica de negocio pendiente de implementación.");
80
+ }
81
+ ```
82
+ > Al entregarle este archivo a la IA, la posibilidad de que alucine o escriba código fuera del estándar se reduce a cero, ya que el proceso actúa como un algoritmo inquebrantable.
83
+
84
+ ---
85
+
86
+ ## e. Diagramas de apoyo técnico
87
+
88
+ Con los esqueletos listos, la arquitectura del proyecto ya es visible en el código. En este punto, si la complejidad lo amerita, se generan diagramas de apoyo que se adjuntarán a la documentación Markdown.
89
+
90
+ - **Diagramas de Flujo:** Para lógicas pesadas *(Ej: Pasarela de pago o recuperación de contraseña).*
91
+ - **Diagramas de Estado:** Para entidades que mutan *(Ej: Un "Pedido" que pasa de 'Pendiente' a 'Pagado').*
92
+ - **Diagramas de Relación:** Para visualizar cómo los servicios se comunican con los módulos de interfaz.
93
+
94
+ ---
95
+
96
+ ## f. Prompt Maestro para Generación de Scaffolding con IA
97
+
98
+ Para automatizar la creación de estos archivos base manteniendo el rigor técnico, se utiliza el siguiente prompt estandarizado en la herramienta de IA de preferencia (Claude, Cursor, ChatGPT).
99
+
100
+ > [!example] Copiar Prompt Maestro
101
+ > ```text
102
+ > Actúa como un Arquitecto de Software Senior experto en [LENGUAJE/FRAMEWORK, Ej: React y TypeScript].
103
+ > Tu tarea es generar el 'Scaffolding' (esqueleto de código vacío) para el módulo de [NOMBRE DEL MÓDULO, Ej: Autenticación].
104
+ >
105
+ > REGLAS ESTRICTAS:
106
+ > 1. NO implementes la lógica de negocio real. Solo crea las firmas de las funciones, clases o componentes.
107
+ > 2. En cada función/método, debes incluir obligatoriamente este bloque de comentarios exacto:
108
+ > /*
109
+ > * INTENCIÓN: [Qué hace brevemente]
110
+ > * FLUJO ESPERADO:
111
+ > * Input: [Argumentos/DTOs]
112
+ > * Process: [Pasos enumerados del 1 al N de lo que debe ocurrir]
113
+ > * Output: [Qué retorna]
114
+ > * DEPENDENCIAS: [Qué otros servicios, hooks o repositorios necesita]
115
+ > */
116
+ > 3. El cuerpo de cada función debe contener únicamente un error forzado que diga 'Lógica pendiente de implementación' (Ej: `throw new Error(...)` o su equivalente en el lenguaje).
117
+ > 4. Devuelve el código listo para copiar, indicando en qué ruta de carpetas debería guardarse este archivo.
118
+ > ```
@@ -0,0 +1,48 @@
1
+
2
+
3
+ ---
4
+ > [!abstract] Objetivo de la Fase
5
+ > Con la arquitectura base y los esqueletos (Scaffolding) ya creados en el código, el proyecto deja de ser un concepto y se convierte en una lista de tareas ejecutables. En esta fase se abandona el desarrollo "de memoria" y se adopta un sistema estrictamente documentado para no abrumar ni al desarrollador ni a la Inteligencia Artificial.
6
+
7
+ ## a. Sistema de Gestión Centralizado (Enfoque JSON-Driven)
8
+
9
+ Para manejar múltiples proyectos sin colapsar, las tareas no pueden vivir en la cabeza del programador. Se utiliza un formato estructurado (como un JSON estandarizado) que actúa como la única fuente de verdad del proyecto.
10
+
11
+ > [!info] Estructura del Backlog Documentado
12
+ > - **Formato de entrada:** Se genera un documento (idealmente un JSON o matriz) que contiene el backlog completo.
13
+ > - **Atributos obligatorios por tarea:** Cada ítem debe tener un ID, descripción técnica, prioridad (Alta, Media, Baja), fecha límite (deadline) y el módulo al que pertenece.
14
+ > - **Propósito:** Este formato permite alimentar un gestor de tareas (ya sea una herramienta de terceros o una aplicación propia) que dicte exactamente *qué* se debe programar cada día, eliminando la fatiga de decisión.
15
+
16
+ ---
17
+
18
+ ## b. Estrategia de Desarrollo por Capas (Layered Development)
19
+
20
+ El orden de ejecución se dicta estrictamente por el backlog estructurado. El desarrollo avanza por capas técnicas, agregando valor de manera progresiva y secuencial en lugar de saltar entre el frontend y el backend desordenadamente.
21
+
22
+ > [!tip] Flujo de progreso por capas
23
+ > 1. **Capa de Datos:** Diseño y consolidación de la base de datos *(Ej: Tablas en PostgreSQL/Supabase, políticas RLS).*
24
+ > 2. **Capa de Negocio (Backend):** Desarrollo de la lógica en los servicios, controladores y repositorios, asegurando que los endpoints devuelvan los datos correctos.
25
+ > 3. **Capa de Presentación (Frontend):** Integración de las APIs con la interfaz de usuario, manejo del estado global y refinamiento visual.
26
+ >
27
+ > *Este enfoque garantiza que cuando se llega al frontend, la base de datos y la lógica ya son estables y predecibles.*
28
+
29
+ ---
30
+
31
+ ## c. Granularidad Extrema para la IA (Micro-Tasking)
32
+
33
+ El mayor riesgo al programar con Inteligencia Artificial es el exceso de contexto. Si se le pide a la IA que programe un módulo entero, alucinará, inventará variables y romperá el código existente.
34
+
35
+ > [!warning] Regla de Oro del Desarrollo Asistido: "Un método a la vez"
36
+ > - **Trabajo Aislado:** La tarea mínima entregable no es "Hacer el Login", sino "Implementar la lógica del método `registrar()` en `AuthServiceImpl`".
37
+ > - **Foco Absoluto:** Al delegar a la IA (Claude, Cursor, etc.), el prompt solo debe contener el esqueleto de ESE método específico y sus dependencias directas.
38
+ > - **Testeo Inmediato:** Una vez que la IA devuelve el código de ese método, se verifica que cumpla el contrato, se repara si hay errores menores y recién entonces se pasa al siguiente método del backlog.
39
+
40
+ ---
41
+
42
+ ## d. Refinamiento Continuo (Refactoring Temprano)
43
+
44
+ Si durante el desarrollo de un método se percibe que la tarea es demasiado compleja o que la IA empieza a cometer errores de lógica, se aplica un freno inmediato.
45
+
46
+ > [!caution] Protocolo de división
47
+ > - Si un método requiere **más de 3 responsabilidades distintas** *(Ej: Validar usuario, subir imagen, procesar pago y enviar correo)*, la tarea original se considera "demasiado grande".
48
+ > - Se pausa el desarrollo, se subdivide la tarea en el backlog en funciones más pequeñas y privadas, y se vuelve a aplicar el *Micro-Tasking* método por método.
@@ -0,0 +1,98 @@
1
+
2
+ ---
3
+ > [!abstract] Objetivo de la Fase
4
+ > En esta etapa, el código se construye de forma iterativa tomando cada método del backlog, programándolo con asistencia de IA, probándolo exhaustivamente y asegurando su versionado. La disciplina en esta fase es innegociable para evitar que el proyecto colapse a medida que escala la complejidad.
5
+
6
+ ## a. Metodología de Pruebas (Testing y Criterios de Aceptación)
7
+
8
+ No se asume que el código entregado por la IA funciona solo porque compila. Cada método individual debe superar una batería de pruebas manuales y lógicas antes de darse por terminado.
9
+
10
+ > [!warning] Niveles de validación por método
11
+ > 1. **Definición de Criterios:** Antes de probar, se establecen los criterios de aceptación exactos de lo que debe cumplir el método.
12
+ > 2. **Prueba de Humo (Smoke Test):** Se ejecuta el flujo feliz (*Happy Path*) para validar que la función hace lo mínimo esperado sin romperse.
13
+ > 3. **Prueba de Errores e Inputs Inválidos:** Se inyectan datos corruptos, nulos o malformados para asegurar que el sistema maneje las excepciones correctamente y no exponga información sensible.
14
+ > 4. **Pruebas de Estado Inter-métodos:** Se evalúa cómo reacciona el método si un estado previo (manejado por otras funciones) falla o cambia inesperadamente. Si se detectan fugas lógicas, se crean tests o validaciones específicas para cubrir esa eventualidad.
15
+
16
+ ---
17
+
18
+ ## b. Control de Versiones y Trazabilidad (Micro-Commits)
19
+
20
+ El uso de Git (GitHub) no es solo para guardar el código, sino que funciona como la bitácora exacta de avance del proyecto. Se evita hacer commits gigantescos que mezclan múltiples funcionalidades.
21
+
22
+ > [!info] Protocolo de Commits y Tracking
23
+ > - **Commit por Método:** Se realiza un commit de forma inmediata cada vez que un método es completado y supera las pruebas.
24
+ > - **Mensajes Detallados:** El mensaje del commit debe explicar claramente qué cambios se hicieron, por qué se hicieron y cómo afectan al sistema.
25
+ > - **Checklists de Estado (Task Lists):** En la descripción del commit o pull request, se pega una lista de tareas (checkboxes) del módulo actual. Se van marcando las tareas completadas, dejando un registro visual claro de cuánto falta para terminar esa sección específica.
26
+
27
+ ---
28
+
29
+ ## c. Ejemplo Práctico de un Commit Estandarizado
30
+
31
+ Para mantener la legibilidad del historial del proyecto, todos los commits deben seguir una estructura similar a esta, incluyendo siempre la versión actual y la fecha de modificación en el checklist:
32
+
33
+ > [!example] Estructura del Commit
34
+ > **Título del Commit:**
35
+ > `feat(auth): implementación y validación de método registrar() en AuthServiceImpl`
36
+ >
37
+ > **Cuerpo / Descripción del Commit:**
38
+ > ```text
39
+ > -
40
+ > -
41
+ > - Se integró la lógica de hasheo de contraseñas usando BCrypt.
42
+ > - Se configuró el manejo de excepción `UsuarioYaExisteException` si el username está duplicado.
43
+ > - Se probó exitosamente en Postman inyectando datos nulos y duplicados.
44
+ >
45
+ > Progreso del Módulo Auth | Versión Actual: v1.2.3 | Fecha: 25-04-2026
46
+ > - [x] registrar()
47
+ > - [ ] login()
48
+ > - [ ] refresh()
49
+ > - [ ] logout()
50
+ > ```
51
+ > *Nota: Este formato permite que, con un simple vistazo al historial de Git, se sepa exactamente en qué estado, versión y fecha quedó el módulo tras el cambio.*
52
+
53
+ <type>(<scope>): <descripción corta en imperativo>
54
+
55
+ - cambio 1
56
+ - cambio 2
57
+ - cambio 3
58
+
59
+ Progreso del módulo <nombre>:
60
+ - [x] función lista
61
+ - [ ] función pendiente
62
+ - [ ] función pendiente
63
+ - [ ] función pendiente
64
+
65
+ Versión actual: vx.y.z
66
+ Fecha: YYYY-MM-DD
67
+ ---
68
+
69
+ ## d. Gestión de Despliegues y Versionado Semántico
70
+
71
+ Para optimizar recursos y no agotar tokens o minutos de compilación innecesarios en plataformas como Netlify o Railway, el despliegue no está automatizado en cada push. Se realiza de forma manual, controlada y estratégica.
72
+
73
+ - **Estabilidad Garantizada:** Solo se desencadena un despliegue (Deploy) cuando se define que el conjunto de métodos terminados conforma una versión completamente estable y funcional.
74
+ - **Versionado Semántico (SemVer):** Cada subida a producción se rige por un cambio en la versión del software *(Ej: v1.2.3)*.
75
+
76
+ ---
77
+
78
+ ## e. Sistema de Criterios para Cambio de Versión (SemVer Checklist)
79
+
80
+ Para eliminar la ambigüedad sobre qué número de versión debe actualizarse (Mayor.Menor.Parche), se aplica el siguiente cuestionario de impacto cada vez que se decide subir a producción. Se actualiza el número de la categoría más alta en la que se responda "Sí" a al menos una pregunta.
81
+
82
+ > [!success] Nivel 1: Versión de Parche / Patch (Ej: `v1.2.3` pasa a `v1.2.4`)
83
+ > **Impacto:** Mantenimiento puro. El usuario apenas nota el cambio.
84
+ > - [ ] ¿Se arregló un bug visual o lógico que estaba fallando en producción?
85
+ > - [ ] ¿Se optimizó una consulta a la base de datos sin cambiar el resultado final?
86
+ > - [ ] ¿Se corrigieron textos, colores o pequeños detalles de UI?
87
+
88
+ > [!tip] Nivel 2: Versión Menor / Minor (Ej: `v1.2.4` pasa a `v1.3.0`)
89
+ > **Impacto:** Evolución segura. Nuevas cosas disponibles, pero lo viejo sigue funcionando igual.
90
+ > - [ ] ¿Se agregó una funcionalidad completamente nueva (Ej: Nuevo botón, nueva pantalla, nuevo endpoint de API)?
91
+ > - [ ] ¿Se integró un nuevo microservicio o herramienta de terceros (Ej: Nueva pasarela de pagos opcional)?
92
+ > - [ ] ¿Se agregó una nueva tabla a la base de datos para soportar una nueva característica?
93
+
94
+ > [!danger] Nivel 3: Versión Mayor / Major (Ej: `v1.3.0` pasa a `v2.0.0`)
95
+ > **Impacto:** Ruptura o Reinvención (Breaking Changes). Lo viejo ya no funciona como antes.
96
+ > - [ ] ¿Se alteró la estructura de la base de datos de tal forma que los datos antiguos debieron ser migrados?
97
+ > - [ ] ¿Se eliminaron endpoints de la API o se cambió la forma en que el frontend debe comunicarse con el backend?
98
+ > - [ ] ¿Se rediseñó completamente la experiencia de usuario (UX) obligando al cliente a aprender a usar el sistema de nuevo?