{
  "directed": false,
  "multigraph": false,
  "graph": {},
  "nodes": [
    {
      "label": "app.js",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L1",
      "_origin": "ast",
      "id": "js_app",
      "community": 0,
      "norm_label": "app.js"
    },
    {
      "label": "pad2()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L54",
      "_origin": "ast",
      "id": "js_app_pad2",
      "community": 0,
      "norm_label": "pad2()"
    },
    {
      "label": "formatearNombreArchivo()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L59",
      "_origin": "ast",
      "id": "js_app_formatearnombrearchivo",
      "community": 0,
      "norm_label": "formatearnombrearchivo()"
    },
    {
      "label": "formatearTiempo()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L63",
      "_origin": "ast",
      "id": "js_app_formateartiempo",
      "community": 0,
      "norm_label": "formateartiempo()"
    },
    {
      "label": "etiquetaFecha()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L71",
      "_origin": "ast",
      "id": "js_app_etiquetafecha",
      "community": 0,
      "norm_label": "etiquetafecha()"
    },
    {
      "label": "renderMonthChips()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L77",
      "_origin": "ast",
      "id": "js_app_rendermonthchips",
      "community": 0,
      "norm_label": "rendermonthchips()"
    },
    {
      "label": "renderCalendar()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L97",
      "_origin": "ast",
      "id": "js_app_rendercalendar",
      "community": 0,
      "norm_label": "rendercalendar()"
    },
    {
      "label": "setMes()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L126",
      "_origin": "ast",
      "id": "js_app_setmes",
      "community": 0,
      "norm_label": "setmes()"
    },
    {
      "label": "setControlesHabilitados()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L134",
      "_origin": "ast",
      "id": "js_app_setcontroleshabilitados",
      "community": 0,
      "norm_label": "setcontroleshabilitados()"
    },
    {
      "label": "mostrarError()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L141",
      "_origin": "ast",
      "id": "js_app_mostrarerror",
      "community": 0,
      "norm_label": "mostrarerror()"
    },
    {
      "label": "actualizarIconoPlay()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L146",
      "_origin": "ast",
      "id": "js_app_actualizariconoplay",
      "community": 0,
      "norm_label": "actualizariconoplay()"
    },
    {
      "label": "abrirPlayerSheet()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L152",
      "_origin": "ast",
      "id": "js_app_abrirplayersheet",
      "community": 0,
      "norm_label": "abrirplayersheet()"
    },
    {
      "label": "cerrarPlayerSheet()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L161",
      "_origin": "ast",
      "id": "js_app_cerrarplayersheet",
      "community": 0,
      "norm_label": "cerrarplayersheet()"
    },
    {
      "label": "abrirReproductor()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L195",
      "_origin": "ast",
      "id": "js_app_abrirreproductor",
      "community": 0,
      "norm_label": "abrirreproductor()"
    },
    {
      "label": "cargarDiaActual()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L241",
      "_origin": "ast",
      "id": "js_app_cargardiaactual",
      "community": 0,
      "norm_label": "cargardiaactual()"
    },
    {
      "label": "togglePlayPause()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L248",
      "_origin": "ast",
      "id": "js_app_toggleplaypause",
      "community": 0,
      "norm_label": "toggleplaypause()"
    },
    {
      "label": "seekBy()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L258",
      "_origin": "ast",
      "id": "js_app_seekby",
      "community": 0,
      "norm_label": "seekby()"
    },
    {
      "label": "syncProgress()",
      "file_type": "code",
      "source_file": "js/app.js",
      "source_location": "L266",
      "_origin": "ast",
      "id": "js_app_syncprogress",
      "community": 0,
      "norm_label": "syncprogress()"
    },
    {
      "label": "manifest.json",
      "file_type": "code",
      "source_file": "manifest.json",
      "source_location": "L1",
      "_origin": "ast",
      "id": "manifest",
      "community": 2,
      "norm_label": "manifest.json"
    },
    {
      "label": "name",
      "file_type": "code",
      "source_file": "manifest.json",
      "source_location": "L2",
      "_origin": "ast",
      "id": "manifest_name",
      "community": 2,
      "norm_label": "name"
    },
    {
      "label": "short_name",
      "file_type": "code",
      "source_file": "manifest.json",
      "source_location": "L3",
      "_origin": "ast",
      "id": "manifest_short_name",
      "community": 2,
      "norm_label": "short_name"
    },
    {
      "label": "description",
      "file_type": "code",
      "source_file": "manifest.json",
      "source_location": "L4",
      "_origin": "ast",
      "id": "manifest_description",
      "community": 2,
      "norm_label": "description"
    },
    {
      "label": "start_url",
      "file_type": "code",
      "source_file": "manifest.json",
      "source_location": "L5",
      "_origin": "ast",
      "id": "manifest_start_url",
      "community": 2,
      "norm_label": "start_url"
    },
    {
      "label": "display",
      "file_type": "code",
      "source_file": "manifest.json",
      "source_location": "L6",
      "_origin": "ast",
      "id": "manifest_display",
      "community": 2,
      "norm_label": "display"
    },
    {
      "label": "background_color",
      "file_type": "code",
      "source_file": "manifest.json",
      "source_location": "L7",
      "_origin": "ast",
      "id": "manifest_background_color",
      "community": 2,
      "norm_label": "background_color"
    },
    {
      "label": "theme_color",
      "file_type": "code",
      "source_file": "manifest.json",
      "source_location": "L8",
      "_origin": "ast",
      "id": "manifest_theme_color",
      "community": 2,
      "norm_label": "theme_color"
    },
    {
      "label": "lang",
      "file_type": "code",
      "source_file": "manifest.json",
      "source_location": "L9",
      "_origin": "ast",
      "id": "manifest_lang",
      "community": 2,
      "norm_label": "lang"
    },
    {
      "label": "icons",
      "file_type": "code",
      "source_file": "manifest.json",
      "source_location": "L10",
      "_origin": "ast",
      "id": "manifest_icons",
      "community": 2,
      "norm_label": "icons"
    },
    {
      "label": "missing_dates.py",
      "file_type": "code",
      "source_file": "missing_dates.py",
      "source_location": "L1",
      "_origin": "ast",
      "id": "missing_dates",
      "community": 3,
      "norm_label": "missing_dates.py"
    },
    {
      "label": "collect_present_dates()",
      "file_type": "code",
      "source_file": "missing_dates.py",
      "source_location": "L35",
      "_origin": "ast",
      "id": "missing_dates_collect_present_dates",
      "community": 3,
      "norm_label": "collect_present_dates()"
    },
    {
      "label": "Path",
      "file_type": "code",
      "source_file": "missing_dates.py",
      "source_location": "L35",
      "_origin": "ast",
      "id": "missing_dates_py_path",
      "community": 3,
      "norm_label": "path"
    },
    {
      "label": "all_calendar_dates()",
      "file_type": "code",
      "source_file": "missing_dates.py",
      "source_location": "L51",
      "_origin": "ast",
      "id": "missing_dates_all_calendar_dates",
      "community": 3,
      "norm_label": "all_calendar_dates()"
    },
    {
      "label": "format_date()",
      "file_type": "code",
      "source_file": "missing_dates.py",
      "source_location": "L61",
      "_origin": "ast",
      "id": "missing_dates_format_date",
      "community": 3,
      "norm_label": "format_date()"
    },
    {
      "label": "main()",
      "file_type": "code",
      "source_file": "missing_dates.py",
      "source_location": "L65",
      "_origin": "ast",
      "id": "missing_dates_main",
      "community": 3,
      "norm_label": "main()"
    },
    {
      "label": "Return (month, day) pairs found in MM-DD*.mp3 filenames.",
      "file_type": "rationale",
      "source_file": "missing_dates.py",
      "source_location": "L36",
      "_origin": "ast",
      "id": "missing_dates_rationale_36",
      "community": 3,
      "norm_label": "return (month, day) pairs found in mm-dd*.mp3 filenames."
    },
    {
      "label": "Every valid (month, day) in *year*, Jan 1 through Dec 31.",
      "file_type": "rationale",
      "source_file": "missing_dates.py",
      "source_location": "L52",
      "_origin": "ast",
      "id": "missing_dates_rationale_52",
      "community": 3,
      "norm_label": "every valid (month, day) in *year*, jan 1 through dec 31."
    },
    {
      "label": "rename_,mpeg.sh",
      "file_type": "code",
      "source_file": "rename_,mpeg.sh",
      "source_location": "L1",
      "metadata": {
        "language": "bash",
        "kind": "file"
      },
      "_origin": "ast",
      "id": "rename_mpeg",
      "community": 9,
      "norm_label": "rename_,mpeg.sh"
    },
    {
      "label": "rename_,mpeg.sh script",
      "file_type": "code",
      "source_file": "rename_,mpeg.sh",
      "source_location": "L1",
      "metadata": {
        "language": "bash",
        "kind": "bash_entrypoint"
      },
      "_origin": "ast",
      "id": "home_kubuntu_documents_naaudios_rename_mpeg_sh__entry",
      "community": 9,
      "norm_label": "rename_,mpeg.sh script"
    },
    {
      "label": "rename_by_date.py",
      "file_type": "code",
      "source_file": "rename_by_date.py",
      "source_location": "L1",
      "_origin": "ast",
      "id": "rename_by_date",
      "community": 6,
      "norm_label": "rename_by_date.py"
    },
    {
      "label": "_normalize()",
      "file_type": "code",
      "source_file": "rename_by_date.py",
      "source_location": "L103",
      "_origin": "ast",
      "id": "rename_by_date_normalize",
      "community": 6,
      "norm_label": "_normalize()"
    },
    {
      "label": "_parse_day()",
      "file_type": "code",
      "source_file": "rename_by_date.py",
      "source_location": "L109",
      "_origin": "ast",
      "id": "rename_by_date_parse_day",
      "community": 6,
      "norm_label": "_parse_day()"
    },
    {
      "label": "extract_date_from_text()",
      "file_type": "code",
      "source_file": "rename_by_date.py",
      "source_location": "L128",
      "_origin": "ast",
      "id": "rename_by_date_extract_date_from_text",
      "community": 6,
      "norm_label": "extract_date_from_text()"
    },
    {
      "label": "load_whisper_model()",
      "file_type": "code",
      "source_file": "rename_by_date.py",
      "source_location": "L154",
      "_origin": "ast",
      "id": "rename_by_date_load_whisper_model",
      "community": 6,
      "norm_label": "load_whisper_model()"
    },
    {
      "label": "transcribe_audio()",
      "file_type": "code",
      "source_file": "rename_by_date.py",
      "source_location": "L176",
      "_origin": "ast",
      "id": "rename_by_date_transcribe_audio",
      "community": 6,
      "norm_label": "transcribe_audio()"
    },
    {
      "label": "Path",
      "file_type": "code",
      "source_file": "rename_by_date.py",
      "source_location": "L176",
      "_origin": "ast",
      "id": "rename_by_date_py_path",
      "community": 6,
      "norm_label": "path"
    },
    {
      "label": "_trim_with_ffmpeg()",
      "file_type": "code",
      "source_file": "rename_by_date.py",
      "source_location": "L188",
      "_origin": "ast",
      "id": "rename_by_date_trim_with_ffmpeg",
      "community": 6,
      "norm_label": "_trim_with_ffmpeg()"
    },
    {
      "label": "trim_audio()",
      "file_type": "code",
      "source_file": "rename_by_date.py",
      "source_location": "L205",
      "_origin": "ast",
      "id": "rename_by_date_trim_audio",
      "community": 6,
      "norm_label": "trim_audio()"
    },
    {
      "label": "unique_target_path()",
      "file_type": "code",
      "source_file": "rename_by_date.py",
      "source_location": "L219",
      "_origin": "ast",
      "id": "rename_by_date_unique_target_path",
      "community": 6,
      "norm_label": "unique_target_path()"
    },
    {
      "label": "process_file()",
      "file_type": "code",
      "source_file": "rename_by_date.py",
      "source_location": "L239",
      "_origin": "ast",
      "id": "rename_by_date_process_file",
      "community": 6,
      "norm_label": "process_file()"
    },
    {
      "label": "main()",
      "file_type": "code",
      "source_file": "rename_by_date.py",
      "source_location": "L285",
      "_origin": "ast",
      "id": "rename_by_date_main",
      "community": 6,
      "norm_label": "main()"
    },
    {
      "label": "Lowercase and strip accents for fuzzy matching.",
      "file_type": "rationale",
      "source_file": "rename_by_date.py",
      "source_location": "L104",
      "_origin": "ast",
      "id": "rename_by_date_rationale_104",
      "community": 6,
      "norm_label": "lowercase and strip accents for fuzzy matching."
    },
    {
      "label": "Convert a day token (digit or Spanish word) to an integer 1-31.",
      "file_type": "rationale",
      "source_file": "rename_by_date.py",
      "source_location": "L110",
      "_origin": "ast",
      "id": "rename_by_date_rationale_110",
      "community": 6,
      "norm_label": "convert a day token (digit or spanish word) to an integer 1-31."
    },
    {
      "label": "Find a spoken Spanish date like \"doce de febrero\" or \"12 de febrero de 2024\".",
      "file_type": "rationale",
      "source_file": "rename_by_date.py",
      "source_location": "L129",
      "_origin": "ast",
      "id": "rename_by_date_rationale_129",
      "community": 6,
      "norm_label": "find a spoken spanish date like \"doce de febrero\" or \"12 de febrero de 2024\"."
    },
    {
      "label": "Load faster-whisper if available, otherwise fall back to openai-whisper.",
      "file_type": "rationale",
      "source_file": "rename_by_date.py",
      "source_location": "L155",
      "_origin": "ast",
      "id": "rename_by_date_rationale_155",
      "community": 6,
      "norm_label": "load faster-whisper if available, otherwise fall back to openai-whisper."
    },
    {
      "label": "Transcribe *audio_path* in Spanish and return the full text.",
      "file_type": "rationale",
      "source_file": "rename_by_date.py",
      "source_location": "L177",
      "_origin": "ast",
      "id": "rename_by_date_rationale_177",
      "community": 6,
      "norm_label": "transcribe *audio_path* in spanish and return the full text."
    },
    {
      "label": "Trim via ffmpeg CLI (no pydub/audioop needed).",
      "file_type": "rationale",
      "source_file": "rename_by_date.py",
      "source_location": "L189",
      "_origin": "ast",
      "id": "rename_by_date_rationale_189",
      "community": 6,
      "norm_label": "trim via ffmpeg cli (no pydub/audioop needed)."
    },
    {
      "label": "Extract the first *seconds* of *src* into *dst* using pydub or ffmpeg.",
      "file_type": "rationale",
      "source_file": "rename_by_date.py",
      "source_location": "L206",
      "_origin": "ast",
      "id": "rename_by_date_rationale_206",
      "community": 6,
      "norm_label": "extract the first *seconds* of *src* into *dst* using pydub or ffmpeg."
    },
    {
      "label": "Return a non-colliding path for *base_name* in *directory*.      Appends _2, _3,",
      "file_type": "rationale",
      "source_file": "rename_by_date.py",
      "source_location": "L220",
      "_origin": "ast",
      "id": "rename_by_date_rationale_220",
      "community": 6,
      "norm_label": "return a non-colliding path for *base_name* in *directory*.      appends _2, _3,"
    },
    {
      "label": "Trim, transcribe, extract date, and rename a single MP3.",
      "file_type": "rationale",
      "source_file": "rename_by_date.py",
      "source_location": "L244",
      "_origin": "ast",
      "id": "rename_by_date_rationale_244",
      "community": 6,
      "norm_label": "trim, transcribe, extract date, and rename a single mp3."
    },
    {
      "label": "DESCRIPCION.md",
      "file_type": "document",
      "source_file": "DESCRIPCION.md",
      "source_location": "L1",
      "_origin": "ast",
      "id": "descripcion",
      "community": 4,
      "norm_label": "descripcion.md"
    },
    {
      "label": "\u00bfDe qu\u00e9 se trata esta webapp?",
      "file_type": "document",
      "source_file": "DESCRIPCION.md",
      "source_location": "L1",
      "_origin": "ast",
      "id": "descripcion_de_qu\u00e9_se_trata_esta_webapp",
      "community": 4,
      "norm_label": "\u00bfde que se trata esta webapp?"
    },
    {
      "label": "En pocas palabras",
      "file_type": "document",
      "source_file": "DESCRIPCION.md",
      "source_location": "L5",
      "_origin": "ast",
      "id": "descripcion_en_pocas_palabras",
      "community": 4,
      "norm_label": "en pocas palabras"
    },
    {
      "label": "\u00bfPara qu\u00e9 sirve?",
      "file_type": "document",
      "source_file": "DESCRIPCION.md",
      "source_location": "L9",
      "_origin": "ast",
      "id": "descripcion_para_qu\u00e9_sirve",
      "community": 4,
      "norm_label": "\u00bfpara que sirve?"
    },
    {
      "label": "\u00bfC\u00f3mo se usa?",
      "file_type": "document",
      "source_file": "DESCRIPCION.md",
      "source_location": "L13",
      "_origin": "ast",
      "id": "descripcion_c\u00f3mo_se_usa",
      "community": 4,
      "norm_label": "\u00bfcomo se usa?"
    },
    {
      "label": "\u00bfQu\u00e9 no es?",
      "file_type": "document",
      "source_file": "DESCRIPCION.md",
      "source_location": "L21",
      "_origin": "ast",
      "id": "descripcion_qu\u00e9_no_es",
      "community": 4,
      "norm_label": "\u00bfque no es?"
    },
    {
      "label": "\u00bfQui\u00e9n la hizo?",
      "file_type": "document",
      "source_file": "DESCRIPCION.md",
      "source_location": "L27",
      "_origin": "ast",
      "id": "descripcion_qui\u00e9n_la_hizo",
      "community": 4,
      "norm_label": "\u00bfquien la hizo?"
    },
    {
      "label": "Project.md",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L1",
      "_origin": "ast",
      "id": "project",
      "community": 1,
      "norm_label": "project.md"
    },
    {
      "label": "Project.md \u2014 SOLO POR HOY AUDIOS",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L1",
      "_origin": "ast",
      "id": "project_project_md_solo_por_hoy_audios",
      "community": 1,
      "norm_label": "project.md \u2014 solo por hoy audios"
    },
    {
      "label": "1. Descripci\u00f3n general",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L3",
      "_origin": "ast",
      "id": "project_1_descripci\u00f3n_general",
      "community": 1,
      "norm_label": "1. descripcion general"
    },
    {
      "label": "2. Objetivo funcional",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L11",
      "_origin": "ast",
      "id": "project_2_objetivo_funcional",
      "community": 1,
      "norm_label": "2. objetivo funcional"
    },
    {
      "label": "3. Estructura de archivos",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L21",
      "_origin": "ast",
      "id": "project_3_estructura_de_archivos",
      "community": 1,
      "norm_label": "3. estructura de archivos"
    },
    {
      "label": "4. Especificaci\u00f3n del calendario",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L45",
      "_origin": "ast",
      "id": "project_4_especificaci\u00f3n_del_calendario",
      "community": 1,
      "norm_label": "4. especificacion del calendario"
    },
    {
      "label": "4.1 Meses y d\u00edas",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L47",
      "_origin": "ast",
      "id": "project_4_1_meses_y_d\u00edas",
      "community": 1,
      "norm_label": "4.1 meses y dias"
    },
    {
      "label": "4.2 Elementos que NO deben mostrarse",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L67",
      "_origin": "ast",
      "id": "project_4_2_elementos_que_no_deben_mostrarse",
      "community": 1,
      "norm_label": "4.2 elementos que no deben mostrarse"
    },
    {
      "label": "4.3 Layout sugerido",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L73",
      "_origin": "ast",
      "id": "project_4_3_layout_sugerido",
      "community": 1,
      "norm_label": "4.3 layout sugerido"
    },
    {
      "label": "5. Especificaci\u00f3n del reproductor de audio",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L81",
      "_origin": "ast",
      "id": "project_5_especificaci\u00f3n_del_reproductor_de_audio",
      "community": 1,
      "norm_label": "5. especificacion del reproductor de audio"
    },
    {
      "label": "5.1 Activaci\u00f3n",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L83",
      "_origin": "ast",
      "id": "project_5_1_activaci\u00f3n",
      "community": 1,
      "norm_label": "5.1 activacion"
    },
    {
      "label": "5.2 Controles requeridos",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L90",
      "_origin": "ast",
      "id": "project_5_2_controles_requeridos",
      "community": 1,
      "norm_label": "5.2 controles requeridos"
    },
    {
      "label": "5.3 Implementaci\u00f3n t\u00e9cnica sugerida",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L100",
      "_origin": "ast",
      "id": "project_5_3_implementaci\u00f3n_t\u00e9cnica_sugerida",
      "community": 1,
      "norm_label": "5.3 implementacion tecnica sugerida"
    },
    {
      "label": "6. Requisitos t\u00e9cnicos generales",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L108",
      "_origin": "ast",
      "id": "project_6_requisitos_t\u00e9cnicos_generales",
      "community": 1,
      "norm_label": "6. requisitos tecnicos generales"
    },
    {
      "label": "7. Dise\u00f1o responsive y experiencia tipo app m\u00f3vil",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L119",
      "_origin": "ast",
      "id": "project_7_dise\u00f1o_responsive_y_experiencia_tipo_app_m\u00f3vil",
      "community": 5,
      "norm_label": "7. diseno responsive y experiencia tipo app movil"
    },
    {
      "label": "7.1 Viewport y meta tags",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L123",
      "_origin": "ast",
      "id": "project_7_1_viewport_y_meta_tags",
      "community": 5,
      "norm_label": "7.1 viewport y meta tags"
    },
    {
      "label": "7.2 Layout mobile-first",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L133",
      "_origin": "ast",
      "id": "project_7_2_layout_mobile_first",
      "community": 5,
      "norm_label": "7.2 layout mobile-first"
    },
    {
      "label": "7.3 Look & feel \"app moderna\"",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L141",
      "_origin": "ast",
      "id": "project_7_3_look_feel_app_moderna",
      "community": 5,
      "norm_label": "7.3 look & feel \"app moderna\""
    },
    {
      "label": "7.4 Interacci\u00f3n t\u00e1ctil",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L150",
      "_origin": "ast",
      "id": "project_7_4_interacci\u00f3n_t\u00e1ctil",
      "community": 5,
      "norm_label": "7.4 interaccion tactil"
    },
    {
      "label": "7.5 Rendimiento en mobile",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L157",
      "_origin": "ast",
      "id": "project_7_5_rendimiento_en_mobile",
      "community": 5,
      "norm_label": "7.5 rendimiento en mobile"
    },
    {
      "label": "8. Criterios de aceptaci\u00f3n",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L165",
      "_origin": "ast",
      "id": "project_8_criterios_de_aceptaci\u00f3n",
      "community": 1,
      "norm_label": "8. criterios de aceptacion"
    },
    {
      "label": "9. Notas para Cursor",
      "file_type": "document",
      "source_file": "Project.md",
      "source_location": "L179",
      "_origin": "ast",
      "id": "project_9_notas_para_cursor",
      "community": 1,
      "norm_label": "9. notas para cursor"
    }
  ],
  "links": [
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L152",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_abrirplayersheet"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L194",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_abrirreproductor"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L146",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_actualizariconoplay"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L241",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_cargardiaactual"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L161",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_cerrarplayersheet"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L71",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_etiquetafecha"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L59",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_formatearnombrearchivo"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L63",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_formateartiempo"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L141",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_mostrarerror"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L54",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_pad2"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L97",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_rendercalendar"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L77",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_rendermonthchips"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L243",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_seekby"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L134",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_setcontroleshabilitados"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L126",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_setmes"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L251",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_syncprogress"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L233",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app",
      "target": "js_app_toggleplaypause"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L60",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_formatearnombrearchivo",
      "target": "js_app_pad2"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L68",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_formateartiempo",
      "target": "js_app_pad2"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L198",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_abrirreproductor",
      "target": "js_app_formatearnombrearchivo"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L255",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_syncprogress",
      "target": "js_app_formateartiempo"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L201",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_abrirreproductor",
      "target": "js_app_etiquetafecha"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L110",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_rendercalendar",
      "target": "js_app_etiquetafecha"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L123",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_rendercalendar",
      "target": "js_app_rendermonthchips"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L196",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_abrirreproductor",
      "target": "js_app_rendercalendar"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L187",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_cerrarplayersheet",
      "target": "js_app_rendercalendar"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L129",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_setmes",
      "target": "js_app_rendercalendar"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L203",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_abrirreproductor",
      "target": "js_app_setcontroleshabilitados"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L182",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_cerrarplayersheet",
      "target": "js_app_setcontroleshabilitados"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L202",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_abrirreproductor",
      "target": "js_app_mostrarerror"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L204",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_abrirreproductor",
      "target": "js_app_actualizariconoplay"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L181",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_cerrarplayersheet",
      "target": "js_app_actualizariconoplay"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L239",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_toggleplaypause",
      "target": "js_app_actualizariconoplay"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L209",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_abrirreproductor",
      "target": "js_app_abrirplayersheet"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "js/app.js",
      "source_location": "L245",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "js_app_cargardiaactual",
      "target": "js_app_abrirreproductor"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "manifest.json",
      "source_location": "L7",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "manifest",
      "target": "manifest_background_color"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "manifest.json",
      "source_location": "L4",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "manifest",
      "target": "manifest_description"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "manifest.json",
      "source_location": "L6",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "manifest",
      "target": "manifest_display"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "manifest.json",
      "source_location": "L10",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "manifest",
      "target": "manifest_icons"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "manifest.json",
      "source_location": "L9",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "manifest",
      "target": "manifest_lang"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "manifest.json",
      "source_location": "L2",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "manifest",
      "target": "manifest_name"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "manifest.json",
      "source_location": "L3",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "manifest",
      "target": "manifest_short_name"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "manifest.json",
      "source_location": "L5",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "manifest",
      "target": "manifest_start_url"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "manifest.json",
      "source_location": "L8",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "manifest",
      "target": "manifest_theme_color"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "missing_dates.py",
      "source_location": "L51",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "missing_dates",
      "target": "missing_dates_all_calendar_dates"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "missing_dates.py",
      "source_location": "L35",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "missing_dates",
      "target": "missing_dates_collect_present_dates"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "missing_dates.py",
      "source_location": "L61",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "missing_dates",
      "target": "missing_dates_format_date"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "missing_dates.py",
      "source_location": "L65",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "missing_dates",
      "target": "missing_dates_main"
    },
    {
      "relation": "references",
      "context": "parameter_type",
      "confidence": "EXTRACTED",
      "source_file": "missing_dates.py",
      "source_location": "L35",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "missing_dates_collect_present_dates",
      "target": "missing_dates_py_path"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "missing_dates.py",
      "source_location": "L83",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "missing_dates_main",
      "target": "missing_dates_collect_present_dates"
    },
    {
      "relation": "rationale_for",
      "confidence": "EXTRACTED",
      "source_file": "missing_dates.py",
      "source_location": "L36",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "missing_dates_rationale_36",
      "target": "missing_dates_collect_present_dates"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "missing_dates.py",
      "source_location": "L84",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "missing_dates_main",
      "target": "missing_dates_all_calendar_dates"
    },
    {
      "relation": "rationale_for",
      "confidence": "EXTRACTED",
      "source_file": "missing_dates.py",
      "source_location": "L52",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "missing_dates_rationale_52",
      "target": "missing_dates_all_calendar_dates"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "missing_dates.py",
      "source_location": "L106",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "missing_dates_main",
      "target": "missing_dates_format_date"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "rename_,mpeg.sh",
      "source_location": "L1",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_mpeg",
      "target": "home_kubuntu_documents_naaudios_rename_mpeg_sh__entry"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L128",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date",
      "target": "rename_by_date_extract_date_from_text"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L154",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date",
      "target": "rename_by_date_load_whisper_model"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L285",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date",
      "target": "rename_by_date_main"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L103",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date",
      "target": "rename_by_date_normalize"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L109",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date",
      "target": "rename_by_date_parse_day"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L239",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date",
      "target": "rename_by_date_process_file"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L176",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date",
      "target": "rename_by_date_transcribe_audio"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L205",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date",
      "target": "rename_by_date_trim_audio"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L188",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date",
      "target": "rename_by_date_trim_with_ffmpeg"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L219",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date",
      "target": "rename_by_date_unique_target_path"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L137",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_extract_date_from_text",
      "target": "rename_by_date_normalize"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L116",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_parse_day",
      "target": "rename_by_date_normalize"
    },
    {
      "relation": "rationale_for",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L104",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_rationale_104",
      "target": "rename_by_date_normalize"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L145",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_extract_date_from_text",
      "target": "rename_by_date_parse_day"
    },
    {
      "relation": "rationale_for",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L110",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_rationale_110",
      "target": "rename_by_date_parse_day"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L260",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_process_file",
      "target": "rename_by_date_extract_date_from_text"
    },
    {
      "relation": "rationale_for",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L129",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_rationale_129",
      "target": "rename_by_date_extract_date_from_text"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L321",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_main",
      "target": "rename_by_date_load_whisper_model"
    },
    {
      "relation": "rationale_for",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L155",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_rationale_155",
      "target": "rename_by_date_load_whisper_model"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L256",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_process_file",
      "target": "rename_by_date_transcribe_audio"
    },
    {
      "relation": "rationale_for",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L177",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_rationale_177",
      "target": "rename_by_date_transcribe_audio"
    },
    {
      "relation": "references",
      "context": "parameter_type",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L176",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_transcribe_audio",
      "target": "rename_by_date_py_path"
    },
    {
      "relation": "references",
      "context": "parameter_type",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L239",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_process_file",
      "target": "rename_by_date_py_path"
    },
    {
      "relation": "references",
      "context": "parameter_type",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L205",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_trim_audio",
      "target": "rename_by_date_py_path"
    },
    {
      "relation": "references",
      "context": "parameter_type",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L188",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_trim_with_ffmpeg",
      "target": "rename_by_date_py_path"
    },
    {
      "relation": "references",
      "context": "return_type",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L219",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_unique_target_path",
      "target": "rename_by_date_py_path"
    },
    {
      "relation": "rationale_for",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L189",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_rationale_189",
      "target": "rename_by_date_trim_with_ffmpeg"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L216",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_trim_audio",
      "target": "rename_by_date_trim_with_ffmpeg"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L253",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_process_file",
      "target": "rename_by_date_trim_audio"
    },
    {
      "relation": "rationale_for",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L206",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_rationale_206",
      "target": "rename_by_date_trim_audio"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L271",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_process_file",
      "target": "rename_by_date_unique_target_path"
    },
    {
      "relation": "rationale_for",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L220",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_rationale_220",
      "target": "rename_by_date_unique_target_path"
    },
    {
      "relation": "calls",
      "context": "call",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L325",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_main",
      "target": "rename_by_date_process_file"
    },
    {
      "relation": "rationale_for",
      "confidence": "EXTRACTED",
      "source_file": "rename_by_date.py",
      "source_location": "L244",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "rename_by_date_rationale_244",
      "target": "rename_by_date_process_file"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "DESCRIPCION.md",
      "source_location": "L1",
      "weight": 1.0,
      "source": "descripcion",
      "target": "descripcion_de_qu\u00e9_se_trata_esta_webapp",
      "confidence_score": 1.0
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "DESCRIPCION.md",
      "source_location": "L13",
      "weight": 1.0,
      "source": "descripcion_de_qu\u00e9_se_trata_esta_webapp",
      "target": "descripcion_c\u00f3mo_se_usa",
      "confidence_score": 1.0
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "DESCRIPCION.md",
      "source_location": "L5",
      "weight": 1.0,
      "source": "descripcion_de_qu\u00e9_se_trata_esta_webapp",
      "target": "descripcion_en_pocas_palabras",
      "confidence_score": 1.0
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "DESCRIPCION.md",
      "source_location": "L9",
      "weight": 1.0,
      "source": "descripcion_de_qu\u00e9_se_trata_esta_webapp",
      "target": "descripcion_para_qu\u00e9_sirve",
      "confidence_score": 1.0
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "DESCRIPCION.md",
      "source_location": "L27",
      "weight": 1.0,
      "source": "descripcion_de_qu\u00e9_se_trata_esta_webapp",
      "target": "descripcion_qui\u00e9n_la_hizo",
      "confidence_score": 1.0
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "DESCRIPCION.md",
      "source_location": "L21",
      "weight": 1.0,
      "source": "descripcion_de_qu\u00e9_se_trata_esta_webapp",
      "target": "descripcion_qu\u00e9_no_es",
      "confidence_score": 1.0
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L1",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project",
      "target": "project_project_md_solo_por_hoy_audios"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L3",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_project_md_solo_por_hoy_audios",
      "target": "project_1_descripci\u00f3n_general"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L11",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_project_md_solo_por_hoy_audios",
      "target": "project_2_objetivo_funcional"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L21",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_project_md_solo_por_hoy_audios",
      "target": "project_3_estructura_de_archivos"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L45",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_project_md_solo_por_hoy_audios",
      "target": "project_4_especificaci\u00f3n_del_calendario"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L81",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_project_md_solo_por_hoy_audios",
      "target": "project_5_especificaci\u00f3n_del_reproductor_de_audio"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L108",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_project_md_solo_por_hoy_audios",
      "target": "project_6_requisitos_t\u00e9cnicos_generales"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L119",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_project_md_solo_por_hoy_audios",
      "target": "project_7_dise\u00f1o_responsive_y_experiencia_tipo_app_m\u00f3vil"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L165",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_project_md_solo_por_hoy_audios",
      "target": "project_8_criterios_de_aceptaci\u00f3n"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L179",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_project_md_solo_por_hoy_audios",
      "target": "project_9_notas_para_cursor"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L47",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_4_especificaci\u00f3n_del_calendario",
      "target": "project_4_1_meses_y_d\u00edas"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L67",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_4_especificaci\u00f3n_del_calendario",
      "target": "project_4_2_elementos_que_no_deben_mostrarse"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L73",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_4_especificaci\u00f3n_del_calendario",
      "target": "project_4_3_layout_sugerido"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L83",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_5_especificaci\u00f3n_del_reproductor_de_audio",
      "target": "project_5_1_activaci\u00f3n"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L90",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_5_especificaci\u00f3n_del_reproductor_de_audio",
      "target": "project_5_2_controles_requeridos"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L100",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_5_especificaci\u00f3n_del_reproductor_de_audio",
      "target": "project_5_3_implementaci\u00f3n_t\u00e9cnica_sugerida"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L123",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_7_dise\u00f1o_responsive_y_experiencia_tipo_app_m\u00f3vil",
      "target": "project_7_1_viewport_y_meta_tags"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L133",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_7_dise\u00f1o_responsive_y_experiencia_tipo_app_m\u00f3vil",
      "target": "project_7_2_layout_mobile_first"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L141",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_7_dise\u00f1o_responsive_y_experiencia_tipo_app_m\u00f3vil",
      "target": "project_7_3_look_feel_app_moderna"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L150",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_7_dise\u00f1o_responsive_y_experiencia_tipo_app_m\u00f3vil",
      "target": "project_7_4_interacci\u00f3n_t\u00e1ctil"
    },
    {
      "relation": "contains",
      "confidence": "EXTRACTED",
      "source_file": "Project.md",
      "source_location": "L157",
      "weight": 1.0,
      "confidence_score": 1.0,
      "source": "project_7_dise\u00f1o_responsive_y_experiencia_tipo_app_m\u00f3vil",
      "target": "project_7_5_rendimiento_en_mobile"
    }
  ],
  "hyperedges": []
}