idea_world_labDEV JOURNAL
sábado, 27 de junio de 2026

27 de junio de 2026

  • Al volver a leer el docs/roadmaps/2026-06-26-source-to-ast-input-flow.md escrito el día 26, se determinó que la consistencia del documento era insuficiente
  • El documento del día 27, redactado inicialmente, contenía muchas descripciones de objetos y estructuras, lo que dificultaba rastrear cómo fluía realmente la entrada
    • Posteriormente, se ajustó la dirección del documento basándose en la retroalimentación del PR
    • Se modificó a un formato que indique específicamente, en la entrada expandida con # <ruta relativa>, qué línea de qué archivo ingresa al AST Parser
    • Al estilo de E020‑E034 de player.gd, se organizó el flujo basándose en rangos de líneas reales, mostrando cómo esa parte del texto conduce a la búsqueda del Retriever y a la evaluación del LLM
    • Las rutas de archivo se usan solo para rastreo; se reafirmó que en la búsqueda del Retriever solo se incluye el chunkText del código/texto
  • docs_chunks, api_mapping y label_prototypes se tratan de la misma manera, buscándolos sin tratamiento especial y dejando que el LLM verifique nuevamente los candidatos
  • El objetivo del trabajo de hoy era, antes de la implementación real, fijar por escrito cómo la entrada y la salida se conectan en cada punto, evitando que la IA cambie rangos arbitrariamente o describa estructuras abstractas
  • Se implementó la herramienta web Source Flow Debugger para validar el flujo descrito en el documento
    • Se ejecutó localmente en http://127.0.0.1:8010/ para inspeccionar directamente la entrada del proyecto Godot
    • La entrada del proyecto expandida con # <ruta relativa> se divide nuevamente por archivo; los archivos .gd se convierten en chunks de tipo AST y los .godot y .tscn en chunks directos
    • Con un pequeño proyecto Godot se verificó la descomposición en 5 files, 14 chunks, AST 9, Direct 5
    • Los archivos de documentación como README.md se excluyen del modo de análisis de origen, y la exclusión y su razón permanecen visibles en pantalla
  • Se añadió una UI de depuración por chunk
    • Bajo cada chunk se colocaron los botones docs_chunks 검색, api_mapping 검색, label_prototypes 검색, Validate JSONL
    • En lugar de una casilla global, la búsqueda por tabla se realiza justo debajo del chunk actual
    • La entrada del Retriever muestra solo { "chunkText": "..." }, excluyendo ruta de archivo, número de línea y prompt
    • La validación con Qwen se limita a la fase prompt + chunkText + retrieved JSONL
  • Se corrigieron problemas detectados al usar el depurador web
    • Se eliminó la inserción automática de código de ejemplo de Godot al cargar la página
    • Al volver a subir el mismo archivo/carpeta, se vacía el valor del input de carga al hacer clic, de modo que el evento change del navegador se dispare nuevamente
    • Se añadió cache-control: no-store a las respuestas de archivos estáticos para evitar que quede JS antiguo durante el desarrollo
    • En la ruta de búsqueda de PostgreSQL, se protegió la llamada client.end() para que la limpieza sea segura aun cuando falle la creación/conexión del cliente
  • Se archivó el resultado de la implementación con capturas en un documento separado
  • Registro de implementación: Registro de implementación del depurador de flujo de origen
  • Captura: Source Flow Debugger Godot pantalla de análisis
  • Con base en el estado actual, se considera que la descomposición por chunk ha tenido éxito razonable; el siguiente objetivo es definir cómo se realizará la búsqueda en la base de datos
    • Se debe comprobar, usando solo chunkText, qué candidatos JSONL devuelven docs_chunks, api_mapping y label_prototypes
    • También es necesario determinar, en la fase de validación con Qwen, cómo juzgar si el JSONL encontrado está relacionado con el chunk actual y cuándo descartarlo
  • Antes de integrar la búsqueda en la base de datos, se experimentó con GPT creando JSONL relacionados y no relacionados con chunks de Godot de demostración, para probar los prompts de coincidencia de evidencia
    • Al principio, al preguntar “¿Este JSONL contiene contenido que corresponde al código fuente? Responde solo sí o no”, tanto los JSONL relevantes como los irrelevantes respondían “sí”, lo cual era problemático
    • Luego se restringió la respuesta a “sí” solo cuando al menos uno de source_api, source_pattern, match_terms, required_when_seen_in_code, before_code coincidía exactamente con la cadena del CÓDIGO FUENTE o la llamada a la API
    • Se evitó que la similitud semántica amplia o el conocimiento previo de LLM sobre Godot influyeran; solo se consideró la evidencia textual presente en el JSONL, resultando en “sí” para JSONL relevantes y “no” para los irrelevantes
    • Este experimento mostró que la fase de validación Qwen después de la búsqueda en la base de datos debe juzgar primero “¿Existe evidencia textual dentro del JSONL que coincida directamente con el chunk actual?” en lugar de una “similitud de significado plausible”
  • Diario de observación: Registro de observación de selección del repositorio de pruebas basado en el estado de recolección de JSONL
  • Diario de observación: Observación del prompt de coincidencia de evidencia
  • Mañana se crearán varios conjuntos de demostración de chunks de Godot con JSONL relacionados y no relacionados, para probar repetidamente cómo Qwen genera la evidencia para “sí” o “no”