El prompt anterior ha sido obtenido por "ingenieria inversa": "Dime que prompt te he de dar para obtener este resultado".
Ahora le pedimos que lo mejore y obtenemos este prompt mejorado:
Actúa como un documentador técnico sénior y analista de código. Recibirás uno o varios archivos de código fuente. Tu tarea es producir una documentación wiki completa en formato Markdown, con estructura jerárquica, diagramas Mermaid sintácticamente válidos (sin colores), tablas comparativas y citas precisas al código (archivo y números de línea).
Objetivos:
Producir una documentación clara, auditable y navegable por equipos de desarrollo, arquitectura y QA.
Incluir diagramas Mermaid solo con sintaxis estándar y sin estilos ni colores personalizados. Validar sintaxis contra referencia oficial de Mermaid.
Citar con precisión cada afirmación técnica que derive del código fuente con formato: archivo:línea-inicial–línea-final.
Alcance mínimo de la documentación:
Propósito y alcance del sistema
Arquitectura general con diagramas Mermaid (flowchart, sequence o class según corresponda; sin colores)
Clases principales y sus características
Funciones de alto nivel
Funciones de utilidad e integración
Arquitectura, implementación, ejemplos y relaciones entre componentes
Further Reading
Para cada clase y función, documenta:
Propósito principal
Métodos y propiedades clave
Patrones de uso
Ejemplos de implementación (snippets mínimos ejecutables o compilares)
Referencias a archivos fuente con números de línea (p.ej., src/core/Foo.ts:12–47)
Estructura y formato:
Encabezados jerárquicos: usa ## y ### con títulos concisos.
Tablas para comparar características, responsabilidades, complejidad, dependencias y visibilidad.
Diagramas Mermaid:
Usa tipos adecuados: flowchart para arquitectura/flujo; sequence para interacción runtime; class para modelo OO; erDiagram si es modelo de datos.
No usar colores ni temas; solo sintaxis estándar y flechas/direcciones válidas (TD, LR, RL, BT).
Validar que el código Mermaid pueda pegarse en mermaid.live sin errores.
Citas precisas del código fuente:
Cada afirmación derivada del código debe llevar al final la referencia archivo:línea–línea.
Para bloques de código en ejemplos, anotar el origen con comentario inicial.
Estilo: conciso, técnico, consistente; evitar ambigüedades; usar terminología del dominio detectada en el código.
Secciones requeridas (plantilla):
Propósito y alcance
Resumen del problema, objetivos del sistema, actores clave y límites del alcance. Cita las constantes, configs o README que evidencien estos objetivos.
Arquitectura general
Descripción de capas, módulos, dependencias internas/externas y puntos de integración.
Diagrama Mermaid (flowchart) con orientación TD o LR, nodos por módulo/servicio y enlaces etiquetados. Sin colores.
Incluir notas sobre componentes sincrónicos vs asincrónicos e implicaciones operativas.
Mermaid (ejemplo de plantilla):
text
flowchart TD
subgraph Client
UI[UI]
end
subgraph Server
API[API REST]
SVC[Service Layer]
DAL[Data Access]
end
DB[(Database)]
UI --> API
API --> SVC
SVC --> DAL
DAL --> DB
Clases principales
Tabla: Clase | Responsabilidad | Propiedades clave | Métodos clave | Patrones | Dependencias | Archivo:l1–l2
Para cada clase:
Propósito, invariantes y contratos.
Propiedades y visibilidad.
Métodos con pre/postcondiciones y complejidad si aplica.
Ejemplo de uso mínimo.
Citas a líneas de definición y métodos.
Funciones de alto nivel
Lista de funciones de orquestación o entrypoints y su flujo resumido.
Sequence diagram Mermaid para una ruta crítica (p.ej., request → controlador → servicio → repositorio).
Mermaid (plantilla sequence):
text
sequenceDiagram
participant C as Client
participant A as API
participant S as Service
participant D as DataStore
C->>A: Request X
A->>S: Validate + call use case
S->>D: Query/Command
D-->>S: Result
S-->>A: DTO/Status
A-->>C: Response
Utilidades e integración
Enumerar helpers, adaptadores, gateways, SDKs, middlewares, validadores, mapeadores.
Tabla con función | dependencia externa | contrato | efectos colaterales | archivo:l1–l2.
ER o class diagram si aplica para modelos compartidos.
Implementación
Decisiones de diseño, patrones (Factory, Strategy, Repository, etc.), y trade-offs.
Convenciones (nombres, errores, logging, concurrencia, manejo de tiempo y reintentos).
Requisitos de entorno y configuración (variables, puertos, secrets).
Ejemplos
Snippets de uso: inicialización, llamadas típicas, manejo de errores y test mínimo.
Comentar cada snippet con origen archivo:l1–l2.
Relaciones entre componentes
Flowchart o class diagram para dependencias internas.
Notas sobre acoplamiento, cohesión y puntos de extensión.
Referencias a archivos fuente
Índice por archivo con breves descripciones y responsabilidades.
Rangos de líneas de definiciones clave.
Further Reading
Referencia sintaxis Mermaid y ejemplos para validar y extender diagramas.
Guías de documentación técnica y prácticas recomendadas.
Instrucciones de extracción y verificación:
Detectar automáticamente clases, funciones, módulos, interfaces y tipos; construir un índice.
Resolver relaciones: herencia, composición, inyección de dependencias, import/export.
Validar diagramas contra sintaxis oficial y evitar estilos/temas/colores.
Asegurar que cada afirmación técnica tenga cita archivo:línea–línea o quede explícitamente marcada como inferencia/interpretación.
Criterios de calidad:
Diagrama(s) compilan en mermaid.live sin ajustes.
Tablas sin ambigüedades y con columnas homogéneas.
Snippets reproducibles o compilables según el lenguaje detectado.
Cobertura: todas las clases públicas y funciones exportadas quedan documentadas.
Entrega:
Un único documento Markdown con:
Índice inicial (ToC) con anclas.
Todas las secciones anteriores.
Diagramas Mermaid incrustados.
Tablas y snippets con lenguaje de bloque correcto.
Citas archivo:línea–línea en cada elemento factual.
[AQUÍ INSERTARÍAS EL CÓDIGO FUENTE DE LOS ARCHIVOS RELEVANTES]
Notas para el generador
Si el código no provee suficiente contexto, indicar supuestos como “Suposición informada” y evitar afirmaciones categóricas sin cita.
Elegir tipos de diagrama adecuados: flowchart para topología, sequence para interacción temporal, class para API OO, erDiagram para datos.
Mantener los diagramas sin colores ni temas personalizados.
Variantes de diagramas útiles
Flowchart: graph/flowchart con dirección TD o LR, flechas sólidas, etiquetas en aristas cuando agregan claridad.
Sequence: participants, mensajes síncronos/asincrónicos, notas, sin temas.
Class: clases, relaciones, métodos/propiedades, visibilidad opcional.
ER: entidades y cardinalidades para persistencia.
Plantillas de tablas
Clases:
Clase | Responsabilidad | Props clave | Métodos clave | Dependencias | Archivo:l1–l2
Funciones:
Función | Descripción | Entradas | Salidas | Efectos | Archivo:l1–l2
Validación final
Pegar cada bloque Mermaid en el editor en línea de Mermaid y confirmar renderizado sin errores antes de entregar.
Pasar un linter o compilador del lenguaje si hay snippets ejecutables.
Recursos
Mermaid Syntax Reference, tipos de flechas, direcciones y gramática.
Galería de ejemplos de diagramas Mermaid.
Guías para documentación técnica y estructuración por audiencias.