Project: new tree and files

This commit is contained in:
2026-06-28 23:34:28 -06:00
parent a77e4ad795
commit b7bfc3b3de
18 changed files with 371 additions and 3 deletions
+2
View File
@@ -1 +1,3 @@
.vscode
history/
to_history/
+33
View File
@@ -0,0 +1,33 @@
# Índice del proyecto: prompts
## Propósito del proyecto
Compilación de prompts, scripts y herramientas reutilizables para tareas recurrentes, organizados por tema. Cada directorio de tema contiene un archivo `CATALOG.md` con el inventario y la descripción de los prompts disponibles.
## Convenciones
### Formatos
Los prompts pueden existir en múltiples formatos equivalentes dentro de sus subdirectorios (`txt/`, `xml/`, `json/`, `md/`). Para transformar entre formatos, usar `utils/transformar_txt_to_xml.txt`.
### Estados
Cada prompt incluye al inicio la línea `[ESTADO: LISTO | BORRADOR | DEPRECADO]`. Si no aparece, el estado por defecto es `BORRADOR`. Solo ejecutar prompts con estado `LISTO` salvo indicación explícita del usuario.
---
## Directorios de temas
| Directorio | Descripción |
|---|---|
| `chats/` | Prompts para consumo en interfaces de chat LLM o como base para agentes |
| `git/` | Prompts para tareas relacionadas con el sistema de control de versiones Git |
| `project_manage_prompts/` | Prompts para la gestión interna del proyecto (ejecuciones no rastreadas en Git) |
| `utils/` | Prompts de utilidad para transformaciones y operaciones dentro del proyecto |
---
## Directorios auxiliares
| Directorio | Descripción |
|---|---|
| `guides/` | Recursos de referencia para el desarrollador (no contiene prompts ni `CATALOG.md`) |
| `history/` | Historial de ejecuciones y reportes — excluido de Git, gestionado por `project__manage_prompts/` |
| `to_history/` | Buffer de staging hacia `/history` — excluido de Git |
+14
View File
@@ -0,0 +1,14 @@
# Catálogo: chats/
## Propósito
Prompts diseñados para consumo directo en interfaces de chat LLM o como instrucciones base para agentes.
## Inventario
| Nombre base | Estado | Descripción | Formatos disponibles |
|---|---|---|---|
| refinar_prompt | LISTO | Analiza, califica y mejora un prompt proporcionado por el usuario | txt, xml |
## Notas de uso
- Antes de ejecutar `refinar_prompt`, colocar el prompt a refinar entre los delimitadores `=== INICIO PROMPT SECUNDARIO ===` / `=== FIN PROMPT SECUNDARIO ===`.
- Usar `../utils/transformar_txt_to_xml.txt` para generar versiones en otros formatos a partir del `txt/` canónico.
@@ -1,3 +1,6 @@
[ESTADOS: LISTO]
[ROLES]
# Tu rol
+90
View File
@@ -0,0 +1,90 @@
<prompt>
<estado section="ESTADO">LISTO</estado>
<roles section="ROLES">
<tu_rol section="Tu rol">Eres un profesional experto en la industria tecnológica, especializado en inteligencia artificial generativa, con amplia experiencia en proyectos de desarrollo de software.</tu_rol>
<mi_rol section="Mi rol">Soy un desarrollador backend con experiencia práctica en Python, Linux, SQL, Git y Docker, con participación en proyectos desde su planeación hasta su despliegue, pero sin especialización profunda en ningún área o tecnología en particular.</mi_rol>
</roles>
<contexto section="CONTEXTO">
<proposito section="Propósito">Este prompt (denominado "prompt primario") contiene embebido un texto escrito por una persona al que llamaremos "prompt secundario". Tu tarea consiste en analizar el prompt secundario siguiendo estrictamente las instrucciones del prompt primario y producir como resultado un prompt mejorado denominado "prompt resultante", además de evaluar y calificar el prompt secundario.</proposito>
</contexto>
<datos_de_entrada section="DATOS DE ENTRADA">
<prompt_secundario section="Prompt secundario" delimitador_inicio="=== INICIO PROMPT SECUNDARIO ===" delimitador_fin="=== FIN PROMPT SECUNDARIO ===" estado="vacio">
=== INICIO PROMPT SECUNDARIO ===
=== FIN PROMPT SECUNDARIO ===
</prompt_secundario>
</datos_de_entrada>
<restricciones section="RESTRICCIONES">
<item>Queda estrictamente prohibido alucinar: no inventes información, referencias, datos, ejemplos ni instrucciones que no estén fundamentadas.</item>
<item>Prioriza el rigor y la precisión del análisis por encima de la cordialidad hacia el usuario.</item>
<item>No agregues secciones, estructuras ni instrucciones nuevas al prompt resultante a menos que sean estrictamente necesarias para subsanar ambigüedades críticas detectadas durante el análisis.</item>
<item>Conserva el idioma original del prompt secundario en el prompt resultante.</item>
</restricciones>
<pasos_a_seguir section="PASOS A SEGUIR">
Ejecuta los siguientes pasos en orden y sin omitir ninguno:
<paso numero="1" titulo="Análisis de viabilidad">Evalúa si el prompt secundario es suficientemente claro para ser procesado. Si detectas ambigüedades críticas o falta de información que impidan ejecutar correctamente el prompt primario, detente aquí y solicita al usuario la información faltante antes de continuar.</paso>
<paso numero="2" titulo="Detección de idioma">Identifica el idioma del prompt secundario. El prompt resultante debe estar escrito en ese mismo idioma.</paso>
<paso numero="3" titulo="Correcciones ortográficas">Corrige todos los errores ortográficos presentes en el prompt secundario.</paso>
<paso numero="4" titulo="Correcciones de redacción">Mejora la redacción para que sea clara, precisa y sin ambigüedades, sin alterar la intención original del autor.</paso>
<paso numero="5" titulo="Análisis principal">Identifica la intención del prompt secundario, su estructura, sus fortalezas y sus debilidades técnicas como instrucción para un LLM.</paso>
<paso numero="6" titulo="Evaluación y calificación">
Asigna una calificación numérica del 1 al 10 al prompt secundario basándote en los siguientes criterios:
<item>Claridad de instrucciones</item>
<item>Ausencia de ambigüedades</item>
<item>Especificidad</item>
<item>Viabilidad de ejecución por un LLM</item>
<item>Calidad de redacción</item>
Justifica brevemente la calificación.
</paso>
<paso numero="7" titulo="Mejora de instrucciones">Refina y haz explícitas las instrucciones del prompt secundario para que un LLM las interprete de forma inequívoca, realizando únicamente los cambios mínimos necesarios para preservar la estructura y la intención original del autor.</paso>
<paso numero="8" titulo="Generación del prompt resultante">Produce el prompt resultante con los cambios aplicados en los pasos anteriores.</paso>
</pasos_a_seguir>
<formato_de_salida section="FORMATO DE SALIDA">
Responde con dos elementos diferenciados:
<elemento id="A" titulo="Resumen en la interfaz de usuario">
Escribe directamente en la conversación un resumen breve y conciso que incluya:
<item>Calificación asignada al prompt secundario (número y criterio base de la puntuación)</item>
<item>Observaciones principales detectadas (máximo 5 puntos concretos)</item>
<item>Lista resumida de los cambios aplicados al generar el prompt resultante</item>
</elemento>
<elemento id="B" titulo="Prompt resultante">
<item prioridad="1">Primera opción (preferida): Escribe el prompt resultante en un archivo de texto plano.</item>
<item prioridad="2">Segunda opción (solo si no tienes capacidad de generar archivos): Escribe el prompt resultante al final de la respuesta como un bloque de texto sin formato, usando comillas simples al inicio y al final del bloque (sin ningún otro delimitador, símbolo Markdown ni etiqueta) para que la interfaz no interprete su contenido.</item>
</elemento>
</formato_de_salida>
<criterio_de_exito section="CRITERIO DE ÉXITO">
La ejecución del prompt primario se considera exitosa cuando:
<item>El resumen en la interfaz de usuario incluye la calificación del prompt secundario con su justificación y las observaciones y cambios realizados.</item>
<item>El prompt resultante está disponible en un archivo de texto plano o, en caso de no ser posible, escrito como texto plano al final de la respuesta sin ningún tipo de formato interpretable.</item>
<item>El prompt resultante es notablemente más claro y explícito que el prompt secundario para un LLM, manteniendo la estructura y la intención original del autor.</item>
</criterio_de_exito>
</prompt>
+16
View File
@@ -0,0 +1,16 @@
# Catálogo: git/
## Propósito
Prompts para tareas relacionadas con el sistema de control de versiones Git: configuración, flujos de trabajo y generación de archivos de soporte.
## Inventario
| Nombre base | Estado | Descripción | Formatos disponibles |
|---|---|---|---|
| prompt_git_base | BORRADOR | Estructura base para prompts de tareas Git genéricas | txt, md, xml, json |
| prompt_gitconfig | BORRADOR | Prompt para asistir en la configuración de `.gitconfig` | md |
| prompt_gitignore | BORRADOR | Prompt para generar un archivo `.gitignore` personalizado | md |
## Notas de uso
- Todos los prompts de este directorio están en estado `BORRADOR` y no son funcionales aún.
- `prompt_git_base` puede usarse como plantilla estructural para crear nuevos prompts de Git.
+1 -1
View File
@@ -1,3 +1,3 @@
{
"ESTADO": "BORRADOR"
}
+3
View File
@@ -1,3 +1,6 @@
# Estado: BORRADOR
# Roles
## Tu rol
+1
View File
@@ -0,0 +1 @@
# Estado: BORRADOR
+1
View File
@@ -0,0 +1 @@
# Estado: BORRADOR
+1
View File
@@ -0,0 +1 @@
[ESTADOS: BORRADOR]
+3
View File
@@ -1,2 +1,5 @@
<promt>
<estado section="ESTADO">BORRADOR</estado>
</promt>

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

+14
View File
@@ -0,0 +1,14 @@
# Catálogo: project__manage_prompts/
## Propósito
Prompts para la gestión interna del proyecto. Sus ejecuciones producen cambios locales no rastreados por Git, como mover archivos al historial.
## Inventario
| Nombre base | Estado | Descripción | Formatos disponibles |
|---|---|---|---|
| update_history | LISTO | Mueve archivos válidos de `/to_history` a `/history/{rama}_{fecha}`. Incluye análisis de seguridad de los archivos a mover. | txt |
## Notas de uso
- Ejecutar con un agente de código que tenga permisos para correr comandos de shell.
- Los directorios `/to_history` y `/history` están excluidos de Git (ver `.gitignore`).
@@ -0,0 +1,96 @@
[ESTADO: LISTO]
[ROLES]
# Tu rol
Eres un profesional experto en la industria tecnológica, especializado en inteligencia artificial generativa, con amplia experiencia en proyectos de desarrollo de software.
# Mi rol
Soy un desarrollador backend con experiencia práctica en Python, Linux, SQL, Git y Docker, con participación en proyectos desde su planeación hasta su despliegue, pero sin especialización profunda en ningún área o tecnología en particular.
[CONTEXTO]
# Propósito
Este prompt (denominado "prompt primario") tiene como finalidad actualizar el directorio /history del proyecto principal. Dicho directorio no debe recibir seguimiento mediante Git, ya que su propósito es llevar un historial de reportes útiles para la retroalimentación de cada desarrollador, pero puede crecer de forma desmedida, así como variar dependiendo de si existe un fork. El prompt primario está pensado para ejecutarse a través de un asistente o agente de código, ya que debe ejecutar comandos.
# Ruta base del proyecto
Todos los directorios mencionados en este prompt (/to_history, /history) son relativos a la raíz del proyecto. Antes de ejecutar cualquier paso, establece como directorio de trabajo la raíz del proyecto. Si no puedes determinarlo con certeza, detén la ejecución y notifícalo al usuario.
[DATOS DE ENTRADA]
# Branch actual
El nombre de la branch se obtendrá mediante comandos en el Paso 1 y se utilizará en los pasos posteriores.
# Archivos válidos para mover desde /to_history
Se procesarán únicamente los archivos del directorio /to_history que cumplan ambas condiciones:
1. Su tamaño no supere 1 MB.
2. Su extensión corresponda a alguna de las siguientes categorías:
- Texto plano: .txt, .dat, .csv, .tex, entre otras extensiones de texto plano.
- Hojas de cálculo: .xlsx
- Documentos de texto: .doc
- Imágenes: .png, .svg, .jpeg, entre otras extensiones de imagen comunes.
Los archivos que no cumplan alguna de estas condiciones no deben ser movidos ni eliminados.
[RESTRICCIONES]
* Queda estrictamente prohibido alucinar: no inventes información, referencias, datos, ejemplos ni instrucciones que no estén fundamentadas en este prompt o en los resultados reales de los comandos ejecutados.
* Prioriza la seguridad antes que el cumplimiento de la tarea: ante cualquier duda de seguridad, detén la ejecución y notifica al usuario.
* No muevas, modifiques ni elimines archivos fuera de los directorios /to_history y /history.
[PASOS A SEGUIR]
Ejecuta los siguientes pasos en orden, sin omitir ninguno.
Paso 1 — Obtener nombre de la branch (nombre_rama):
a. Ejecuta "git status" para verificar si el directorio base está inicializado como repositorio Git.
b. Si está inicializado, obtén el nombre de la branch actual ejecutando "git branch --show-current".
Como alternativa, si el comando anterior no devuelve resultado, usa "git rev-parse --abbrev-ref HEAD".
c. Si el directorio no está inicializado como repositorio Git, usa el valor "no_branch" como nombre_rama.
d. Valida que el nombre obtenido sea compatible con nombres de directorios en Linux/Unix y Windows:
- Reemplaza espacios en blanco, caracteres especiales no permitidos, emojis, letras con tilde y la letra "ñ" por el carácter "_".
- Si el nombre resultante comienza con un carácter no válido para nombres de directorio, agrega el prefijo "branch_".
e. El valor resultante de este paso se denominará nombre_rama.
Paso 2 — Obtener la fecha actual (fecha):
Obtén la fecha del día actual en formato yyyy_mm_dd. Este valor se denominará fecha.
Paso 3 — Análisis de seguridad de /to_history:
Analiza todos los archivos presentes en el directorio /to_history. Para cada archivo, considera sospechoso aquel que cumpla al menos uno de los siguientes criterios:
- Tiene una extensión ejecutable o de script (.exe, .sh, .bat, .py, .js, .php, .ps1, .bin, entre otras), independientemente de si también tiene una extensión válida como sufijo adicional.
- Su nombre está ofuscado (por ejemplo, con caracteres de control, caracteres Unicode inusuales o una extensión que no coincide con su tipo MIME real, si puedes determinarlo).
- Su tamaño es exactamente 0 bytes.
- Contiene en su nombre rutas de directorio relativas o absolutas (por ejemplo, "../", "/etc/").
Si detectas al menos un archivo sospechoso, detén la ejecución inmediatamente, lista los archivos sospechosos encontrados con el motivo de sospecha de cada uno, y no realices ninguna acción adicional sobre el sistema de archivos.
Paso 4 — Crear la carpeta de destino en /history:
Construye el nombre de la carpeta de destino como: {nombre_rama}_{fecha}
Crea dicha carpeta dentro del directorio /history si no existe, utilizando el comando:
mkdir -p history/{nombre_rama}_{fecha}
o su equivalente en Windows si corresponde.
Paso 5 — Mover los archivos válidos de /to_history a la carpeta de destino:
Mueve a la carpeta history/{nombre_rama}_{fecha} todos los archivos del directorio /to_history que cumplan las condiciones definidas en [DATOS DE ENTRADA] (tamaño menor o igual a 1 MB y extensión válida).
Los archivos que no cumplan dichas condiciones deben permanecer en /to_history sin ser modificados.
Si ocurre un error al mover algún archivo, regístralo e incluye el detalle en el resumen del Paso 6, pero continúa con los archivos restantes.
Paso 6 — Mostrar resumen:
Presenta en la salida estándar un resumen breve y concreto que incluya:
- El valor de nombre_rama utilizado.
- El valor de fecha utilizado.
- La ruta de la carpeta de destino creada o utilizada.
- La lista de archivos movidos exitosamente.
- La lista de archivos omitidos (con el motivo: tamaño excedido, extensión no válida u otro).
- Cualquier error ocurrido durante la ejecución.
[CRITERIO DE ÉXITO]
La ejecución del prompt primario se considera exitosa cuando:
* El análisis de seguridad del Paso 3 no haya detectado archivos sospechosos.
* Los archivos válidos de /to_history se hayan movido a la carpeta history/{nombre_rama}_{fecha}.
* Se muestre el resumen descrito en el Paso 6 en la interfaz de usuario.
+55
View File
@@ -0,0 +1,55 @@
[ESTADO: BORRADOR]
[ROLES]
# Tu rol
Eres un profesional experto en la industria tecnológica, especializado en inteligencia artificial generativa, con amplia experiencia en proyectos de desarrollo de software y en gestión de proyectos tecnológicos.
# Mi rol
Soy un desarrollador backend con experiencia práctica en Python, Linux, SQL, Git y Docker, con participación en proyectos desde su planeación hasta su despliegue, pero sin especialización profunda en ningún área o tecnología en particular.
[CONTEXTO]
Este proyecto es una compilación de prompts, scripts y diferentes herramientas con el propósito de reutilizar tareas. Los prompts se organizan por temas en subdirectorios del directorio base. Dentro de cada tema existe un archivo de catálogo (`CATALOG.md`) que sintetiza su contenido y propósito. También hay directorios con otros propósitos, como `/guides`.
[ESTADOS]
Cada prompt incluye al inicio la línea `[ESTADO: LISTO | BORRADOR | DEPRECADO]`.
Si no aparece la línea de estado, el estado por defecto es `BORRADOR`.
Los prompts con estado `DEPRECADO` no deben ejecutarse a menos que el usuario lo indique explícitamente.
[RESTRICCIONES]
* Queda estrictamente prohibido alucinar: no inventes información, referencias, datos, ejemplos ni instrucciones que no estén fundamentadas.
* No debe ejecutarse ningún archivo que no se especifique en INDEX.md, que no esté en un directorio administrado por el agente o que no aporte información necesaria para el proyecto.
* Los prompts con estado `BORRADOR` o `DEPRECADO` no deben ejecutarse salvo indicación explícita del usuario.
[PASOS A SEGUIR]
Ejecuta los siguientes pasos en orden y sin omitir ninguno:
1. Análisis de viabilidad: Evalúa si el prompt es suficientemente claro para ser procesado. Si detectas ambigüedades críticas o falta de información que impidan ejecutar el prompt, detente aquí y solicita al usuario la información faltante antes de continuar.
2. Lee y analiza el archivo INDEX.md. Ignora los directorios que no se mencionen en él, a menos que el agente los requiera o aporten información necesaria para el proyecto. Los directorios `.git`, `.claude`, `.codex` y similares siempre deben ignorarse.
3. Lee el archivo `CATALOG.md` de cada directorio de tema especificado en INDEX.md y comprende el propósito y el contenido de cada uno.
[FORMATO DE SALIDA]
Una vez completados los pasos anteriores, confirma al usuario en un párrafo breve:
* Que comprendiste la estructura general del proyecto.
* Los directorios de tema identificados y sus propósitos.
* Los prompts con estado `LISTO` encontrados en los catálogos.
* Que estás listo para recibir tareas.
[CRITERIO DE ÉXITO]
La ejecución del prompt primario se considera exitosa cuando:
* Se comprendió la estructura y finalidad del proyecto.
* Se leyeron los catálogos de todos los directorios de tema especificados en INDEX.md.
* Se confirmó al usuario la estructura comprendida, incluyendo los prompts disponibles con estado `LISTO`.
+14
View File
@@ -0,0 +1,14 @@
# Catálogo: utils/
## Propósito
Prompts de utilidad para operaciones internas del proyecto. Generan salidas relevantes para el flujo de trabajo del agente, como transformaciones de formato entre prompts.
## Inventario
| Nombre base | Estado | Descripción | Formatos disponibles |
|---|---|---|---|
| transformar_txt_to_xml | LISTO | Transforma un prompt entre formatos estructurados. Actualmente soporta el tipo `txt_to_xml`. Genera un archivo de evaluación de la transformación. | txt |
## Notas de uso
- Proporcionar en los datos de entrada: el prompt secundario, el tipo de transformación (`txt_to_xml`) y las reglas de mapeo opcionales.
- La salida de evaluación se guarda en `to_history/` para ser procesada con `project__manage_prompts/txt/update_history.txt`.
+23 -1
View File
@@ -1,3 +1,6 @@
[ESTADO: LISTO]
[ROLES]
# Tu rol
@@ -62,7 +65,26 @@ Ejecuta los siguientes pasos en orden y sin omitir ninguno:
4.5. Solo debe agregarse información que contribuya a hacer más entendible el prompt XML. Por ejemplo: una lista de tres elementos con numeración simple (1.1, 1.1.1, 1.2) no amerita anidación de etiquetas; es preferible representarla con un atributo tipo_lista="ordenada_con_anidacion". Sin embargo, cuando el número de elementos sea grande o la jerarquía sea compleja, el LLM deberá determinar si es más conveniente usar listas anidadas mediante etiquetas XML.
Si el valor de "tipo transformacion" es distinto de "txt_to_xml", omite los subpasos 4.1 al 4.5 y continúa con el paso 5.
4.6. Si el valor de "Reglas mapeo" no está vacío, aplica las reglas de mapeo indicadas con precedencia sobre los subpasos anteriores: realiza la asignación directa entre secciones o subsecciones del prompt de texto plano y etiquetas XML según lo que dichas reglas indiquen.
Por ejemplo, si las reglas de mapeo son:
"Mapea al mismo nivel de [ROLES] la información de # Mi rol con la etiqueta rol_para_subagente y agrega el atributo skills con los valores student y developer"
y el prompt de texto plano contiene:
[ROLES]
Aquí se especifican los roles
# Mi rol
Soy un estudiante
el resultado esperado es:
<roles section="ROLES">Aquí se especifican los roles</roles>
<rol_para_subagente skills="student developer">Soy un estudiante</rol_para_subagente>
Si el valor de "tipo transformacion" es distinto de "txt_to_xml", omite los subpasos 4.1 al 4.6 y continúa con el paso 5.
5. Evaluación: Determinar si, bajo la nueva estructura generada, la eficiencia del prompt mejora, es equivalente o se reduce respecto al prompt secundario original. Escribe un resumen muy breve del análisis directamente en la interfaz de usuario. El análisis detallado y argumentado debe guardarse en un archivo de texto plano con el nombre "evaluacion_transformacion.txt".