diff --git a/TextNLPClassifierApp.code-workspace b/TextNLPClassifierApp.code-workspace new file mode 100644 index 0000000..876a149 --- /dev/null +++ b/TextNLPClassifierApp.code-workspace @@ -0,0 +1,8 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": {} +} \ No newline at end of file diff --git a/graphify-out/.graphify_labels.json.sig b/graphify-out/.graphify_labels.json.sig index 18d4ec5..35ed7cd 100644 --- a/graphify-out/.graphify_labels.json.sig +++ b/graphify-out/.graphify_labels.json.sig @@ -1 +1 @@ -{"0": "36bdb6f09c457f7c", "1": "8c5bf6244cf710c6", "2": "efbcc9c62a3ee78b", "3": "8599153989b07faa", "4": "b5952a1f7fee9f20", "5": "5b8462a3f82d188c", "6": "80f79e9e2011a3e3", "7": "4654167fd211d027", "8": "50acfa00fe353440", "9": "c6d2f770737823f1", "10": "44f2ca451aea24be", "11": "feaac5ab67a8c17a", "12": "b71bd92e5edbf2e0", "13": "219d65ba6d2689e4", "14": "8e30bb8112fd02d1", "15": "03906ab80b99db85", "16": "5d51c60ba1bc2be0", "17": "a1da914f522dcd21", "18": "fbad840891b90569", "19": "0686ff2d6fe29fb3", "20": "060baa9e1924b465", "21": "a5c8f2c3080b8243", "22": "0d76852f1d29eeb1", "23": "6ff68619f2d72924", "24": "3da11675eee7ec46", "25": "a6696589e9556f97", "26": "6c752999e8a4d4b6", "27": "2d4e13ea2111d750", "28": "4b60cb0ee1ac186a", "29": "f56fbca9bb8235ec", "30": "c7beed940704509f", "31": "38be2d254fb31ae8", "32": "ee5596fcf7e7c0b3", "33": "e4d4e0a440bc599f", "34": "c897e49c001acdae", "35": "3aad272a2cf5d495", "36": "0a197439d306b956", "37": "f43acf5c8b1329af", "38": "6775efafc9b33338", "39": "8176a164778526f9", "40": "66b69189c0acc3ff", "41": "0322ff824966a4d8", "42": "784c9e3d336a7f53", "43": "4b8bb6c3f7b64856", "44": "18c0ff3e6225bcb2", "45": "1880db165e83768c", "46": "58f3596265f5f902", "47": "4e9a638bf1f93e1b", "48": "cc757e9c9987201b", "49": "0d0f9f015921feef", "50": "8d0c81e5ca23e9a6", "51": "f79963571b9c15ee", "52": "5935824c825606cb", "53": "9685f9cbe158e50b", "54": "3d5ab759f350bc79", "55": "d549f24931a990e9", "56": "3cc031dcb648797c", "57": "a0ab88e6c629251d", "58": "76bd6412e2a22ecd", "59": "54827845564490c9", "60": "0a9736c416c0c6b9", "61": "77358620ac528153", "62": "3b0c585df09df48a", "63": "7e78cd3b28828c20", "64": "1c0c958231735f61", "65": "60b0f81225f62f69", "66": "920754c65cc94b88", "67": "df911472140a9b94", "68": "8e17bc11bcea91b9", "69": "7e905b75e4f28b95", "70": "a28424eca5d36c55", "71": "2cdb53d5b6051ab6", "72": "e42fbd3dc744e730", "73": "7fe2cac980de160c", "74": "2b1343a6a9db1487", "75": "54a1bb232f1d4ceb", "76": "442ba11d31ec0e0a", "77": "852a25b8b95bf8d1", "78": "1810ab370b9cd608", "79": "0fc5dca02a3f02f6", "80": "6ff8a97e63c9a2f3", "81": "a38f84ae3d895236", "82": "08e48bd11f9714df", "83": "5095122914e83cf5", "84": "1aef305bd7d7d63f", "85": "f8bfd0cfe9e8b478", "86": "410d15a346bd5894", "87": "6b41d288cfd834ab", "88": "5aa6db96312a8811", "89": "80225792bb62ba04", "90": "fd291228c3311f40", "91": "d4579c5b7aa2742a", "92": "7b9ba7c3bff11361", "93": "71cd9c1fa4a857f0", "94": "34cd980be3c32d21", "95": "970093453f3b7d90", "96": "9e96780a2b7c4bd6", "97": "e091504212d41fa4", "98": "089ea6a55861c693", "99": "8968e9e7d55afcbe", "100": "a7b5a49d77797f1b", "101": "21a45c852f9aeb96", "102": "6aa00d5a83295f11", "103": "f58668f5b10ccdeb", "104": "4ec787414cc6f50b", "105": "b42f25c7ec3542ab", "106": "edcd5d9bb3c4b00f", "107": "37f2f47110fe3eaa", "108": "b7ad5abb1da8cf8d", "109": "cb48a9c4f54efa38", "110": "f6dd36fd7f3edbe5", "111": "2925b620f0b1fd17", "112": "d8b3099917c3b711", "113": "3bb61caa0302c804", "114": "0d4f1d08dd056bb9", "115": "4ac2dcddeec2ff11", "116": "0bd2e5150cdcc835", "117": "196f63e0c4536d30", "118": "ade84262e3cfac12", "119": "6adb71671a1f363f", "120": "3d4cabafb8ebe1b7", "122": "80cc7c4359559d19", "123": "96618c9a362af46c", "124": "83f104cbb62fd03e", "125": "6db738fb27190349", "126": "6a087a22cbcef972", "127": "85fd71a0cad8d3a5", "128": "22dd4feed96c4229", "129": "c4d2f60f532e6f16", "130": "f6b0aa8a1568926b", "131": "56747bad6345d66b"} \ No newline at end of file +{"0": "36bdb6f09c457f7c", "1": "8c5bf6244cf710c6", "2": "efbcc9c62a3ee78b", "3": "8599153989b07faa", "4": "b5952a1f7fee9f20", "5": "5b8462a3f82d188c", "6": "80f79e9e2011a3e3", "7": "4654167fd211d027", "8": "50acfa00fe353440", "9": "c6d2f770737823f1", "10": "44f2ca451aea24be", "11": "feaac5ab67a8c17a", "12": "b71bd92e5edbf2e0", "13": "219d65ba6d2689e4", "14": "8e30bb8112fd02d1", "15": "03906ab80b99db85", "16": "5d51c60ba1bc2be0", "17": "a1da914f522dcd21", "18": "fbad840891b90569", "19": "0686ff2d6fe29fb3", "20": "060baa9e1924b465", "21": "a5c8f2c3080b8243", "22": "0d76852f1d29eeb1", "23": "6ff68619f2d72924", "24": "3da11675eee7ec46", "25": "a6696589e9556f97", "26": "6c752999e8a4d4b6", "27": "2d4e13ea2111d750", "28": "4b60cb0ee1ac186a", "29": "f56fbca9bb8235ec", "30": "c7beed940704509f", "31": "38be2d254fb31ae8", "32": "ee5596fcf7e7c0b3", "33": "e4d4e0a440bc599f", "34": "c897e49c001acdae", "35": "3aad272a2cf5d495", "36": "0a197439d306b956", "37": "f43acf5c8b1329af", "38": "6775efafc9b33338", "39": "8176a164778526f9", "40": "66b69189c0acc3ff", "41": "0322ff824966a4d8", "42": "784c9e3d336a7f53", "43": "4b8bb6c3f7b64856", "44": "18c0ff3e6225bcb2", "45": "1880db165e83768c", "46": "58f3596265f5f902", "47": "4e9a638bf1f93e1b", "48": "cc757e9c9987201b", "49": "0d0f9f015921feef", "50": "8d0c81e5ca23e9a6", "51": "f79963571b9c15ee", "52": "5935824c825606cb", "53": "9685f9cbe158e50b", "54": "3d5ab759f350bc79", "55": "d549f24931a990e9", "56": "3cc031dcb648797c", "57": "a0ab88e6c629251d", "58": "76bd6412e2a22ecd", "59": "54827845564490c9", "60": "0a9736c416c0c6b9", "61": "77358620ac528153", "62": "3b0c585df09df48a", "63": "7e78cd3b28828c20", "64": "1c0c958231735f61", "65": "60b0f81225f62f69", "66": "920754c65cc94b88", "67": "df911472140a9b94", "68": "8e17bc11bcea91b9", "69": "7e905b75e4f28b95", "70": "a28424eca5d36c55", "71": "2cdb53d5b6051ab6", "72": "e42fbd3dc744e730", "73": "7fe2cac980de160c", "74": "2b1343a6a9db1487", "75": "54a1bb232f1d4ceb", "76": "442ba11d31ec0e0a", "77": "852a25b8b95bf8d1", "78": "1810ab370b9cd608", "79": "0fc5dca02a3f02f6", "80": "6ff8a97e63c9a2f3", "81": "a38f84ae3d895236", "82": "08e48bd11f9714df", "83": "5095122914e83cf5", "84": "1aef305bd7d7d63f", "85": "f8bfd0cfe9e8b478", "86": "410d15a346bd5894", "87": "6b41d288cfd834ab", "88": "5aa6db96312a8811", "89": "80225792bb62ba04", "90": "fd291228c3311f40", "91": "d4579c5b7aa2742a", "92": "7b9ba7c3bff11361", "93": "71cd9c1fa4a857f0", "94": "34cd980be3c32d21", "95": "970093453f3b7d90", "96": "9e96780a2b7c4bd6", "97": "e091504212d41fa4", "98": "089ea6a55861c693", "99": "8968e9e7d55afcbe", "100": "a7b5a49d77797f1b", "101": "21a45c852f9aeb96", "102": "6aa00d5a83295f11", "103": "f58668f5b10ccdeb", "104": "4ec787414cc6f50b", "105": "b42f25c7ec3542ab", "106": "edcd5d9bb3c4b00f", "107": "37f2f47110fe3eaa", "108": "b7ad5abb1da8cf8d", "109": "cb48a9c4f54efa38", "110": "f6dd36fd7f3edbe5", "111": "2925b620f0b1fd17", "112": "d8b3099917c3b711", "113": "3bb61caa0302c804", "114": "0d4f1d08dd056bb9", "115": "4ac2dcddeec2ff11", "116": "07da9aae9668f573", "117": "196f63e0c4536d30", "118": "ade84262e3cfac12", "119": "ebe4e5e0c42c613f", "120": "27256931b19a2867", "122": "aa8a1de55696b666", "123": "96618c9a362af46c", "124": "83f104cbb62fd03e", "125": "6db738fb27190349", "126": "6a087a22cbcef972", "127": "85fd71a0cad8d3a5", "128": "22dd4feed96c4229", "129": "c4d2f60f532e6f16", "130": "f6b0aa8a1568926b", "131": "56747bad6345d66b"} \ No newline at end of file diff --git a/graphify-out/2026-08-21/.graphify_analysis.json b/graphify-out/2026-08-21/.graphify_analysis.json new file mode 100644 index 0000000..bdaf66f --- /dev/null +++ b/graphify-out/2026-08-21/.graphify_analysis.json @@ -0,0 +1,516 @@ +{ + "communities": { + "0": [ + "specify_templates_tasks_template", + "specify_templates_tasks_template_dependencies_execution_order", + "specify_templates_tasks_template_format_id_p_story_description", + "specify_templates_tasks_template_implementation_for_user_story_1", + "specify_templates_tasks_template_implementation_for_user_story_2", + "specify_templates_tasks_template_implementation_for_user_story_3", + "specify_templates_tasks_template_implementation_strategy", + "specify_templates_tasks_template_incremental_delivery", + "specify_templates_tasks_template_mvp_first_user_story_1_only", + "specify_templates_tasks_template_notes", + "specify_templates_tasks_template_parallel_example_user_story_1", + "specify_templates_tasks_template_parallel_opportunities", + "specify_templates_tasks_template_parallel_team_strategy", + "specify_templates_tasks_template_path_conventions", + "specify_templates_tasks_template_phase_1_setup_shared_infrastructure", + "specify_templates_tasks_template_phase_2_foundational_blocking_prerequisites", + "specify_templates_tasks_template_phase_3_user_story_1_title_priority_p1_mvp", + "specify_templates_tasks_template_phase_4_user_story_2_title_priority_p2", + "specify_templates_tasks_template_phase_5_user_story_3_title_priority_p3", + "specify_templates_tasks_template_phase_dependencies", + "specify_templates_tasks_template_phase_n_polish_cross_cutting_concerns", + "specify_templates_tasks_template_tasks_feature_name", + "specify_templates_tasks_template_tests_for_user_story_1_optional_only_if_tests_requested", + "specify_templates_tasks_template_tests_for_user_story_2_optional_only_if_tests_requested", + "specify_templates_tasks_template_tests_for_user_story_3_optional_only_if_tests_requested", + "specify_templates_tasks_template_user_story_dependencies", + "specify_templates_tasks_template_within_each_user_story" + ], + "1": [ + "agents_skills_speckit_converge_skill", + "agents_skills_speckit_converge_skill_1_initialize_convergence_context", + "agents_skills_speckit_converge_skill_2_load_artifacts_progressive_disclosure", + "agents_skills_speckit_converge_skill_3_build_the_intent_inventory", + "agents_skills_speckit_converge_skill_4_assess_the_codebase_and_classify_findings", + "agents_skills_speckit_converge_skill_5_assign_severity", + "agents_skills_speckit_converge_skill_6_present_the_in_session_findings_summary", + "agents_skills_speckit_converge_skill_7_append_convergence_tasks_or_report_converged", + "agents_skills_speckit_converge_skill_8_provide_next_actions_handoff", + "agents_skills_speckit_converge_skill_9_check_for_extension_hooks", + "agents_skills_speckit_converge_skill_convergence_findings", + "agents_skills_speckit_converge_skill_execution_steps", + "agents_skills_speckit_converge_skill_goal", + "agents_skills_speckit_converge_skill_operating_constraints", + "agents_skills_speckit_converge_skill_pre_execution_checks", + "agents_skills_speckit_converge_skill_user_input" + ], + "2": [ + "specify_scripts_powershell_common", + "specify_scripts_powershell_common_find_specifyroot", + "specify_scripts_powershell_common_format_speckitcommand", + "specify_scripts_powershell_common_get_currentbranch", + "specify_scripts_powershell_common_get_featurepathsenv", + "specify_scripts_powershell_common_get_invokeseparator", + "specify_scripts_powershell_common_get_normalizedpriority", + "specify_scripts_powershell_common_get_python3command", + "specify_scripts_powershell_common_get_reporoot", + "specify_scripts_powershell_common_get_sortedextensionids", + "specify_scripts_powershell_common_resolve_specifyinitdir", + "specify_scripts_powershell_common_resolve_template", + "specify_scripts_powershell_common_resolve_templatecontent", + "specify_scripts_powershell_common_save_featurejson", + "specify_scripts_powershell_common_test_dirhasfiles", + "specify_scripts_powershell_common_test_fileexists" + ], + "3": [ + "agents_skills_graphify_skill", + "agents_skills_graphify_skill_for_graphify_add_and_watch", + "agents_skills_graphify_skill_for_graphify_query", + "agents_skills_graphify_skill_for_the_commit_hook_and_native_claude_md_integration", + "agents_skills_graphify_skill_for_update_and_cluster_only", + "agents_skills_graphify_skill_graphify", + "agents_skills_graphify_skill_honesty_rules", + "agents_skills_graphify_skill_interpreter_guard_for_subcommands", + "agents_skills_graphify_skill_part_a_structural_extraction_for_code_files", + "agents_skills_graphify_skill_part_b_semantic_extraction_parallel_subagents", + "agents_skills_graphify_skill_part_c_merge_ast_semantic_into_final_extraction", + "agents_skills_graphify_skill_step_0_github_repos_and_multi_path_merge_only_if_a_url_or_several_paths", + "agents_skills_graphify_skill_step_1_ensure_graphify_is_installed", + "agents_skills_graphify_skill_step_2_5_video_and_audio_only_if_video_files_detected", + "agents_skills_graphify_skill_step_2_detect_files", + "agents_skills_graphify_skill_step_3_extract_entities_and_relationships", + "agents_skills_graphify_skill_step_4_5_graph_health_check_read_only_integrity_gate", + "agents_skills_graphify_skill_step_4_build_graph_cluster_analyze_generate_outputs", + "agents_skills_graphify_skill_step_5_label_communities", + "agents_skills_graphify_skill_step_6_generate_obsidian_vault_opt_in_html", + "agents_skills_graphify_skill_step_9_save_manifest_update_cost_tracker_clean_up_and_report", + "agents_skills_graphify_skill_steps_6b_8_wiki_neo4j_falkordb_svg_graphml_mcp_benchmark_only_on_their_flags", + "agents_skills_graphify_skill_usage", + "agents_skills_graphify_skill_what_graphify_is_for", + "agents_skills_graphify_skill_what_you_must_do_when_invoked" + ], + "4": [ + "agents_skills_speckit_analyze_skill", + "agents_skills_speckit_analyze_skill_7_provide_next_actions", + "agents_skills_speckit_analyze_skill_8_offer_remediation", + "agents_skills_speckit_analyze_skill_9_check_for_extension_hooks", + "agents_skills_speckit_analyze_skill_analysis_guidelines", + "agents_skills_speckit_analyze_skill_context", + "agents_skills_speckit_analyze_skill_context_efficiency", + "agents_skills_speckit_analyze_skill_goal", + "agents_skills_speckit_analyze_skill_operating_constraints", + "agents_skills_speckit_analyze_skill_operating_principles", + "agents_skills_speckit_analyze_skill_pre_execution_checks", + "agents_skills_speckit_analyze_skill_specification_analysis_report", + "agents_skills_speckit_analyze_skill_user_input" + ], + "5": [ + "agents_skills_speckit_analyze_skill_1_initialize_analysis_context", + "agents_skills_speckit_analyze_skill_2_load_artifacts_progressive_disclosure", + "agents_skills_speckit_analyze_skill_3_build_semantic_models", + "agents_skills_speckit_analyze_skill_4_detection_passes_token_efficient_analysis", + "agents_skills_speckit_analyze_skill_5_severity_assignment", + "agents_skills_speckit_analyze_skill_6_produce_compact_analysis_report", + "agents_skills_speckit_analyze_skill_a_duplication_detection", + "agents_skills_speckit_analyze_skill_b_ambiguity_detection", + "agents_skills_speckit_analyze_skill_c_underspecification", + "agents_skills_speckit_analyze_skill_d_constitution_alignment", + "agents_skills_speckit_analyze_skill_e_coverage_gaps", + "agents_skills_speckit_analyze_skill_execution_steps", + "agents_skills_speckit_analyze_skill_f_inconsistency" + ], + "6": [ + "specify_templates_spec_template", + "specify_templates_spec_template_assumptions", + "specify_templates_spec_template_edge_cases", + "specify_templates_spec_template_feature_specification_feature_name", + "specify_templates_spec_template_functional_requirements", + "specify_templates_spec_template_key_entities_include_if_feature_involves_data", + "specify_templates_spec_template_measurable_outcomes", + "specify_templates_spec_template_requirements_mandatory", + "specify_templates_spec_template_success_criteria_mandatory", + "specify_templates_spec_template_user_scenarios_testing_mandatory", + "specify_templates_spec_template_user_story_1_brief_title_priority_p1", + "specify_templates_spec_template_user_story_2_brief_title_priority_p2", + "specify_templates_spec_template_user_story_3_brief_title_priority_p3" + ], + "7": [ + "agents_rules_graphify", + "agents_rules_graphify_graphify" + ], + "8": [ + "agents_skills_speckit_plan_skill", + "agents_skills_speckit_plan_skill_completion_report", + "agents_skills_speckit_plan_skill_done_when", + "agents_skills_speckit_plan_skill_key_rules", + "agents_skills_speckit_plan_skill_mandatory_post_execution_hooks", + "agents_skills_speckit_plan_skill_outline", + "agents_skills_speckit_plan_skill_phase_0_outline_research", + "agents_skills_speckit_plan_skill_phase_1_design_contracts", + "agents_skills_speckit_plan_skill_phases", + "agents_skills_speckit_plan_skill_pre_execution_checks", + "agents_skills_speckit_plan_skill_user_input" + ], + "9": [ + "agents_skills_speckit_specify_skill", + "agents_skills_speckit_specify_skill_completion_report", + "agents_skills_speckit_specify_skill_done_when", + "agents_skills_speckit_specify_skill_for_ai_generation", + "agents_skills_speckit_specify_skill_mandatory_post_execution_hooks", + "agents_skills_speckit_specify_skill_outline", + "agents_skills_speckit_specify_skill_pre_execution_checks", + "agents_skills_speckit_specify_skill_quick_guidelines", + "agents_skills_speckit_specify_skill_section_requirements", + "agents_skills_speckit_specify_skill_success_criteria_guidelines", + "agents_skills_speckit_specify_skill_user_input" + ], + "10": [ + "agents_skills_speckit_tasks_skill", + "agents_skills_speckit_tasks_skill_checklist_format_required", + "agents_skills_speckit_tasks_skill_completion_report", + "agents_skills_speckit_tasks_skill_done_when", + "agents_skills_speckit_tasks_skill_mandatory_post_execution_hooks", + "agents_skills_speckit_tasks_skill_outline", + "agents_skills_speckit_tasks_skill_phase_structure", + "agents_skills_speckit_tasks_skill_pre_execution_checks", + "agents_skills_speckit_tasks_skill_task_generation_rules", + "agents_skills_speckit_tasks_skill_task_organization", + "agents_skills_speckit_tasks_skill_user_input" + ], + "11": [ + "specify_memory_constitution", + "specify_memory_constitution_core_principles", + "specify_memory_constitution_governance", + "specify_memory_constitution_principle_1_name", + "specify_memory_constitution_principle_2_name", + "specify_memory_constitution_principle_3_name", + "specify_memory_constitution_principle_4_name", + "specify_memory_constitution_principle_5_name", + "specify_memory_constitution_project_name_constitution", + "specify_memory_constitution_section_2_name", + "specify_memory_constitution_section_3_name" + ], + "12": [ + "specify_templates_constitution_template", + "specify_templates_constitution_template_core_principles", + "specify_templates_constitution_template_governance", + "specify_templates_constitution_template_principle_1_name", + "specify_templates_constitution_template_principle_2_name", + "specify_templates_constitution_template_principle_3_name", + "specify_templates_constitution_template_principle_4_name", + "specify_templates_constitution_template_principle_5_name", + "specify_templates_constitution_template_project_name_constitution", + "specify_templates_constitution_template_section_2_name", + "specify_templates_constitution_template_section_3_name" + ], + "13": [ + "agents_skills_graphify_references_exports", + "agents_skills_graphify_references_exports_graphify_reference_extra_exports_and_benchmark", + "agents_skills_graphify_references_exports_step_6b_wiki_only_if_wiki_flag", + "agents_skills_graphify_references_exports_step_7_neo4j_export_only_if_neo4j_or_neo4j_push_flag", + "agents_skills_graphify_references_exports_step_7a_falkordb_export_only_if_falkordb_or_falkordb_push_flag", + "agents_skills_graphify_references_exports_step_7b_svg_export_only_if_svg_flag", + "agents_skills_graphify_references_exports_step_7c_graphml_export_only_if_graphml_flag", + "agents_skills_graphify_references_exports_step_7d_mcp_server_only_if_mcp_flag", + "agents_skills_graphify_references_exports_step_8_token_reduction_benchmark_only_if_total_words_5000" + ], + "14": [ + "agents_skills_ponytail_skill", + "agents_skills_ponytail_skill_boundaries", + "agents_skills_ponytail_skill_intensity", + "agents_skills_ponytail_skill_output", + "agents_skills_ponytail_skill_persistence", + "agents_skills_ponytail_skill_ponytail", + "agents_skills_ponytail_skill_rules", + "agents_skills_ponytail_skill_the_ladder", + "agents_skills_ponytail_skill_when_not_to_be_lazy" + ], + "15": [ + "specify_templates_plan_template", + "specify_templates_plan_template_complexity_tracking", + "specify_templates_plan_template_constitution_check", + "specify_templates_plan_template_documentation_this_feature", + "specify_templates_plan_template_implementation_plan_feature", + "specify_templates_plan_template_project_structure", + "specify_templates_plan_template_source_code_repository_root", + "specify_templates_plan_template_summary", + "specify_templates_plan_template_technical_context" + ], + "16": [ + "agents_skills_ponytail_help_skill", + "agents_skills_ponytail_help_skill_configure_default_mode", + "agents_skills_ponytail_help_skill_deactivate", + "agents_skills_ponytail_help_skill_levels", + "agents_skills_ponytail_help_skill_more", + "agents_skills_ponytail_help_skill_ponytail_help", + "agents_skills_ponytail_help_skill_skills", + "agents_skills_ponytail_help_skill_update" + ], + "17": [ + "agents_skills_speckit_checklist_skill", + "agents_skills_speckit_checklist_skill_anti_examples_what_not_to_do", + "agents_skills_speckit_checklist_skill_checklist_purpose_unit_tests_for_english", + "agents_skills_speckit_checklist_skill_example_checklist_types_sample_items", + "agents_skills_speckit_checklist_skill_execution_steps", + "agents_skills_speckit_checklist_skill_post_execution_checks", + "agents_skills_speckit_checklist_skill_pre_execution_checks", + "agents_skills_speckit_checklist_skill_user_input" + ], + "18": [ + "agents_skills_speckit_clarify_skill", + "agents_skills_speckit_clarify_skill_completion_report", + "agents_skills_speckit_clarify_skill_done_when", + "agents_skills_speckit_clarify_skill_mandatory_post_execution_hooks", + "agents_skills_speckit_clarify_skill_outline", + "agents_skills_speckit_clarify_skill_pre_execution_checks", + "agents_skills_speckit_clarify_skill_user_input" + ], + "19": [ + "agents_skills_speckit_implement_skill", + "agents_skills_speckit_implement_skill_completion_report", + "agents_skills_speckit_implement_skill_done_when", + "agents_skills_speckit_implement_skill_mandatory_post_execution_hooks", + "agents_skills_speckit_implement_skill_outline", + "agents_skills_speckit_implement_skill_pre_execution_checks", + "agents_skills_speckit_implement_skill_user_input" + ], + "20": [ + "agents_skills_graphify_references_query", + "agents_skills_graphify_references_query_for_graphify_explain", + "agents_skills_graphify_references_query_for_graphify_path", + "agents_skills_graphify_references_query_graphify_reference_query_path_explain", + "agents_skills_graphify_references_query_step_0_constrained_query_expansion_required_before_traversal", + "agents_skills_graphify_references_query_step_1_traversal" + ], + "21": [ + "agents_skills_speckit_constitution_skill", + "agents_skills_speckit_constitution_skill_outline", + "agents_skills_speckit_constitution_skill_post_execution_checks", + "agents_skills_speckit_constitution_skill_pre_execution_checks", + "agents_skills_speckit_constitution_skill_scope_guard", + "agents_skills_speckit_constitution_skill_user_input" + ], + "22": [ + "specify_scripts_powershell_create_new_feature", + "specify_scripts_powershell_create_new_feature_convertto_cleanbranchname", + "specify_scripts_powershell_create_new_feature_get_branchname", + "specify_scripts_powershell_create_new_feature_get_fittedbranchname", + "specify_scripts_powershell_create_new_feature_get_highestnumberfromspecs", + "specify_scripts_powershell_create_new_feature_test_specprefixinuse" + ], + "23": [ + "agents_skills_ponytail_audit_skill", + "agents_skills_ponytail_audit_skill_boundaries", + "agents_skills_ponytail_audit_skill_hunt", + "agents_skills_ponytail_audit_skill_output", + "agents_skills_ponytail_audit_skill_tags" + ], + "24": [ + "agents_skills_ponytail_gain_skill", + "agents_skills_ponytail_gain_skill_boundaries", + "agents_skills_ponytail_gain_skill_honesty_boundary", + "agents_skills_ponytail_gain_skill_ponytail_gain", + "agents_skills_ponytail_gain_skill_scoreboard" + ], + "25": [ + "agents_skills_ponytail_review_skill", + "agents_skills_ponytail_review_skill_boundaries", + "agents_skills_ponytail_review_skill_examples", + "agents_skills_ponytail_review_skill_format", + "agents_skills_ponytail_review_skill_scoring" + ], + "26": [ + "agents_skills_speckit_taskstoissues_skill", + "agents_skills_speckit_taskstoissues_skill_outline", + "agents_skills_speckit_taskstoissues_skill_post_execution_checks", + "agents_skills_speckit_taskstoissues_skill_pre_execution_checks", + "agents_skills_speckit_taskstoissues_skill_user_input" + ], + "27": [ + "specify_templates_checklist_template", + "specify_templates_checklist_template_category_1", + "specify_templates_checklist_template_category_2", + "specify_templates_checklist_template_checklist_type_checklist_feature_name", + "specify_templates_checklist_template_notes" + ], + "28": [ + "agents_skills_graphify_references_add_watch", + "agents_skills_graphify_references_add_watch_for_graphify_add", + "agents_skills_graphify_references_add_watch_for_watch", + "agents_skills_graphify_references_add_watch_graphify_reference_add_a_url_and_watch_a_folder" + ], + "29": [ + "agents_skills_graphify_references_hooks", + "agents_skills_graphify_references_hooks_for_git_commit_hook", + "agents_skills_graphify_references_hooks_for_native_claude_md_integration", + "agents_skills_graphify_references_hooks_graphify_reference_commit_hook_and_native_claude_md_integration" + ], + "30": [ + "agents_skills_graphify_references_update", + "agents_skills_graphify_references_update_for_cluster_only", + "agents_skills_graphify_references_update_for_update_incremental_re_extraction", + "agents_skills_graphify_references_update_graphify_reference_incremental_update_and_cluster_only" + ], + "31": [ + "agents_skills_ponytail_debt_skill", + "agents_skills_ponytail_debt_skill_boundaries", + "agents_skills_ponytail_debt_skill_output", + "agents_skills_ponytail_debt_skill_scan" + ], + "32": [ + "agents_skills_graphify_references_github_and_merge", + "agents_skills_graphify_references_github_and_merge_graphify_reference_github_clone_and_cross_repo_merge", + "agents_skills_graphify_references_github_and_merge_step_0_clone_github_repo_s_only_if_a_github_url_was_given" + ], + "33": [ + "agents_skills_graphify_references_transcribe", + "agents_skills_graphify_references_transcribe_graphify_reference_transcribe_video_and_audio", + "agents_skills_graphify_references_transcribe_step_2_5_transcribe_video_audio_files_only_if_video_files_detected" + ], + "34": [ + "agents_skills_graphify_references_extraction_spec", + "agents_skills_graphify_references_extraction_spec_graphify_reference_extraction_subagent_prompt" + ], + "35": [ + "specify_scripts_powershell_check_prerequisites" + ], + "36": [ + "specify_scripts_powershell_resolve_template" + ], + "37": [ + "specify_scripts_powershell_setup_plan" + ], + "38": [ + "specify_scripts_powershell_setup_tasks" + ], + "39": [ + "agents_workflows_graphify", + "agents_workflows_graphify_workflow_graphify" + ] + }, + "cohesion": { + "0": 0.07407407407407407, + "1": 0.125, + "2": 0.225, + "3": 0.08, + "4": 0.15384615384615385, + "5": 0.15384615384615385, + "6": 0.15384615384615385, + "7": 1.0, + "8": 0.18181818181818182, + "9": 0.18181818181818182, + "10": 0.18181818181818182, + "11": 0.18181818181818182, + "12": 0.18181818181818182, + "13": 0.2222222222222222, + "14": 0.2222222222222222, + "15": 0.2222222222222222, + "16": 0.25, + "17": 0.25, + "18": 0.2857142857142857, + "19": 0.2857142857142857, + "20": 0.3333333333333333, + "21": 0.3333333333333333, + "22": 0.4, + "23": 0.4, + "24": 0.4, + "25": 0.4, + "26": 0.4, + "27": 0.4, + "28": 0.5, + "29": 0.5, + "30": 0.5, + "31": 0.5, + "32": 0.6666666666666666, + "33": 0.6666666666666666, + "34": 1.0, + "35": 1.0, + "36": 1.0, + "37": 1.0, + "38": 1.0, + "39": 1.0 + }, + "gods": [ + { + "id": "specify_templates_tasks_template_tasks_feature_name", + "label": "Tasks: [FEATURE NAME]", + "degree": 13 + }, + { + "id": "agents_skills_graphify_skill_what_you_must_do_when_invoked", + "label": "What You Must Do When Invoked", + "degree": 12 + }, + { + "id": "agents_skills_graphify_skill_graphify", + "label": "/graphify", + "degree": 10 + }, + { + "id": "agents_skills_graphify_references_exports_graphify_reference_extra_exports_and_benchmark", + "label": "graphify reference: extra exports and benchmark", + "degree": 8 + }, + { + "id": "agents_skills_ponytail_skill_ponytail", + "label": "Ponytail", + "degree": 8 + }, + { + "id": "agents_skills_speckit_converge_skill_execution_steps", + "label": "Execution Steps", + "degree": 7 + }, + { + "id": "agents_skills_ponytail_help_skill_ponytail_help", + "label": "Ponytail Help", + "degree": 7 + }, + { + "id": "agents_skills_speckit_analyze_skill_4_detection_passes_token_efficient_analysis", + "label": "4. Detection Passes (Token-Efficient Analysis)", + "degree": 7 + }, + { + "id": "agents_skills_speckit_analyze_skill_execution_steps", + "label": "Execution Steps", + "degree": 7 + }, + { + "id": "specify_memory_constitution_core_principles", + "label": "Core Principles", + "degree": 6 + } + ], + "surprises": [], + "questions": [ + { + "type": "bridge_node", + "question": "Why does `Execution Steps` connect `Analysis Detection` to `Specification Analysis`?", + "why": "High betweenness centrality (0.004) - this node is a cross-community bridge." + }, + { + "type": "isolated_nodes", + "question": "What connects `Format: `[ID] [P?] [Story] Description``, `Implementation for User Story 1`, `Implementation for User Story 2` to the rest of the system?", + "why": "212 weakly-connected nodes found - possible documentation gaps or missing edges." + }, + { + "type": "low_cohesion", + "question": "Should `Task Planning` be split into smaller, more focused modules?", + "why": "Cohesion score 0.07407407407407407 - nodes in this community are weakly interconnected." + }, + { + "type": "low_cohesion", + "question": "Should `Convergence Workflow` be split into smaller, more focused modules?", + "why": "Cohesion score 0.125 - nodes in this community are weakly interconnected." + }, + { + "type": "low_cohesion", + "question": "Should `Graphify Commands` be split into smaller, more focused modules?", + "why": "Cohesion score 0.08 - nodes in this community are weakly interconnected." + } + ] +} \ No newline at end of file diff --git a/graphify-out/2026-08-21/.graphify_labels.json b/graphify-out/2026-08-21/.graphify_labels.json new file mode 100644 index 0000000..f2b8b77 --- /dev/null +++ b/graphify-out/2026-08-21/.graphify_labels.json @@ -0,0 +1,133 @@ +{ + "0": "Task Planning", + "1": "Convergence Workflow", + "2": "SpecKit Utilities", + "3": "Graphify Commands", + "4": "speckit-analyze/SKILL.md", + "5": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)", + "6": "Feature Specification Template", + "7": "Graphify Rules", + "8": "Implementation Planning", + "9": "Feature Specification", + "10": "Task Generation", + "11": "Project Constitution", + "12": "Constitution Template", + "13": "Graphify Exports", + "14": "Ponytail Configuration", + "15": "Implementation Planning Template", + "16": "Ponytail Help", + "17": "Checklist Generation", + "18": "Clarification Workflow", + "19": "Implementation Workflow", + "20": "Graph Query", + "21": "Constitution Workflow", + "22": "Feature Branch Creation", + "23": "Ponytail Audit", + "24": "Ponytail Metrics", + "25": "Ponytail Review", + "26": "Task Issue Conversion", + "27": "Checklist Template", + "28": "Graphify Watch Mode", + "29": "Graphify Hooks", + "30": "Graphify Updates", + "31": "Ponytail Debt", + "32": "Repository Merge", + "33": "Media Transcription", + "34": "Extraction Specification", + "35": "Prerequisite Checks", + "36": "Template Resolution", + "37": "Plan Setup", + "38": "Task Setup", + "39": "Graphify Workflows", + "40": "main", + "41": "1. Technical Decisions & Tradeoffs", + "42": "1. Input Schemas", + "43": "2. Basic CLI Usage Examples", + "44": "2. Standard Streams & Exit Codes", + "45": "ClassificationResult", + "46": "InherenceClassifier", + "47": "classifier.py", + "48": "main", + "49": "content_northvolt_de.md", + "50": "content_presal_pt.md", + "51": "content_tangential_es.md", + "52": "adapters/__init__.py", + "53": "src/__init__.py", + "54": "de/contextual.md", + "55": "de/direct.md", + "56": "de/not_related.md", + "57": "de/tangential.md", + "58": "en/contextual.md", + "59": "en/direct.md", + "60": "en/not_related.md", + "61": "en/tangential.md", + "62": "es/contextual.md", + "63": "es/direct.md", + "64": "es/not_related.md", + "65": "es/tangential.md", + "66": "fr/contextual.md", + "67": "fr/direct.md", + "68": "fr/not_related.md", + "69": "fr/tangential.md", + "70": "it/contextual.md", + "71": "it/direct.md", + "72": "it/not_related.md", + "73": "it/tangential.md", + "74": "pt/contextual.md", + "75": "pt/direct.md", + "76": "pt/not_related.md", + "77": "pt/tangential.md", + "78": "tests/__init__.py", + "79": "text-nlp-classifier", + "80": "test_extract_article_contents.py", + "81": "Extrator de Notícias do Google News — Guia Completo de Funcionamento", + "82": "extract_google_news.py", + "83": "ExtractionResult", + "84": "test_extract_google_news.py", + "85": "Implementation Tasks: Google News Headlines Extractor", + "86": "Feature Specification: Google News Headlines Extractor", + "87": "2. Cenários Práticos de Uso", + "88": "Implementation Plan: Google News Headlines Extractor", + "89": "scripts/__init__.py", + "90": "SearchQuery", + "91": "1. Technical Decisions & Tradeoffs", + "92": "General Readiness Checklist: Google News Headlines Extractor", + "93": "1. Entidades de Domínio & DTOs", + "94": "Specification Quality Checklist: Google News Headlines Extractor", + "95": "CLI Contract: Google News Headlines Extractor", + "96": "readiness.md", + "97": "🧠 TextNLPClassifierApp", + "98": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "99": "sample_rss_xml", + "100": "models.py", + "101": "ECPSnapshot", + "102": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "103": "4. Requisitos Funcionais (FR)", + "104": "Tasks: Article Content Multi-Engine Extractor", + "105": "LocalEmbeddingsAdapter", + "106": "Implementation Plan: Article Content Multi-Engine Extractor", + "107": "2. Cenários de Validação", + "108": "1. Technical Decisions & Tradeoffs", + "109": "Implementation Plan: Multilingual NLP Entity Inherence Classifier (POC)", + "110": "POC Readiness & Requirements Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "111": "Specification Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "112": "CLI Contract: Article Content Multi-Engine Extractor", + "113": "001-multilingual-entity-classifier/spec.md", + "114": "JSON Schema Contract: Article Content Multi-Engine Extractor", + "115": "PRD — Seleção determinística da biblioteca de extração de conteúdo", + "116": "select_article_extractor.py", + "117": "1. Text Normalization Pipeline", + "118": "Tasks: Deterministic Article Content Selection", + "119": "select_article_extractor", + "120": "process_batch", + "122": "test_select_article_extractor.py", + "123": "Feature Specification: Deterministic Content Selection", + "124": "2. Entity Descriptions & Fields", + "125": "Implementation Plan: Deterministic Article Content Selection", + "126": "Deterministic Content Selection Checklist: End-to-End Requirements Quality", + "127": "Quickstart: Deterministic Article Content Selection", + "128": "Specification Quality Checklist: Deterministic Content Selection", + "129": "CLI Interface Contract: Deterministic Article Content Selection", + "130": "004-deterministic-content-selection/spec.md", + "131": "JSON Schema Contract: Deterministic Article Content Selection" +} diff --git a/graphify-out/2026-08-21/GRAPH_REPORT.md b/graphify-out/2026-08-21/GRAPH_REPORT.md new file mode 100644 index 0000000..c63d99b --- /dev/null +++ b/graphify-out/2026-08-21/GRAPH_REPORT.md @@ -0,0 +1,537 @@ +# Graph Report - TextNLPClassifierApp (2026-08-20) + +## Corpus Check +- 174 files · ~91,961 words +- Verdict: corpus is large enough that graph structure adds value. + +## Summary +- 1235 nodes · 1548 edges · 131 communities (93 shown, 38 thin omitted) +- Extraction: 97% EXTRACTED · 3% INFERRED · 0% AMBIGUOUS · INFERRED: 51 edges (avg confidence: 0.95) +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `6a45368c` +- Run `git rev-parse HEAD` and compare to check if the graph is stale. +- Run `graphify update .` after code changes (no API cost). + +## Community Hubs (Navigation) +- Task Planning +- Convergence Workflow +- SpecKit Utilities +- Graphify Commands +- speckit-analyze/SKILL.md +- Tasks: Multilingual NLP Entity Inherence Classifier (POC) +- Feature Specification Template +- Graphify Rules +- Implementation Planning +- Feature Specification +- Task Generation +- Project Constitution +- Constitution Template +- Graphify Exports +- Ponytail Configuration +- Implementation Planning Template +- Ponytail Help +- Checklist Generation +- Clarification Workflow +- Implementation Workflow +- Graph Query +- Constitution Workflow +- Feature Branch Creation +- Ponytail Audit +- Ponytail Metrics +- Ponytail Review +- Task Issue Conversion +- Checklist Template +- Graphify Watch Mode +- Graphify Hooks +- Graphify Updates +- Ponytail Debt +- Repository Merge +- Media Transcription +- Extraction Specification +- Graphify Workflows +- main +- 1. Technical Decisions & Tradeoffs +- 1. Input Schemas +- 2. Basic CLI Usage Examples +- 2. Standard Streams & Exit Codes +- ClassificationResult +- InherenceClassifier +- classifier.py +- main +- content_northvolt_de.md +- content_presal_pt.md +- content_tangential_es.md +- adapters/__init__.py +- src/__init__.py +- de/contextual.md +- de/direct.md +- de/not_related.md +- de/tangential.md +- en/contextual.md +- en/direct.md +- en/not_related.md +- en/tangential.md +- es/contextual.md +- es/direct.md +- es/not_related.md +- es/tangential.md +- fr/contextual.md +- fr/direct.md +- fr/not_related.md +- fr/tangential.md +- it/contextual.md +- it/direct.md +- it/not_related.md +- it/tangential.md +- pt/contextual.md +- pt/direct.md +- pt/not_related.md +- pt/tangential.md +- tests/__init__.py +- text-nlp-classifier +- test_extract_article_contents.py +- Extrator de Notícias do Google News — Guia Completo de Funcionamento +- extract_google_news.py +- ExtractionResult +- test_extract_google_news.py +- Implementation Tasks: Google News Headlines Extractor +- Feature Specification: Google News Headlines Extractor +- 2. Cenários Práticos de Uso +- Implementation Plan: Google News Headlines Extractor +- scripts/__init__.py +- SearchQuery +- 1. Technical Decisions & Tradeoffs +- General Readiness Checklist: Google News Headlines Extractor +- 1. Entidades de Domínio & DTOs +- Specification Quality Checklist: Google News Headlines Extractor +- CLI Contract: Google News Headlines Extractor +- 🧠 TextNLPClassifierApp +- Extraction Pipeline Checklist: Article Content Multi-Engine Extractor +- sample_rss_xml +- models.py +- ECPSnapshot +- Feature Specification: Multilingual NLP Entity Inherence Classifier (POC) +- 4. Requisitos Funcionais (FR) +- Tasks: Article Content Multi-Engine Extractor +- LocalEmbeddingsAdapter +- Implementation Plan: Article Content Multi-Engine Extractor +- 2. Cenários de Validação +- 1. Technical Decisions & Tradeoffs +- Implementation Plan: Multilingual NLP Entity Inherence Classifier (POC) +- POC Readiness & Requirements Quality Checklist: Multilingual NLP Entity Inherence Classifier +- Specification Quality Checklist: Multilingual NLP Entity Inherence Classifier +- CLI Contract: Article Content Multi-Engine Extractor +- JSON Schema Contract: Article Content Multi-Engine Extractor +- PRD — Seleção determinística da biblioteca de extração de conteúdo +- select_article_extractor.py +- 1. Text Normalization Pipeline +- Tasks: Deterministic Article Content Selection +- select_article_extractor +- process_batch +- test_select_article_extractor.py +- Feature Specification: Deterministic Content Selection +- 2. Entity Descriptions & Fields +- Implementation Plan: Deterministic Article Content Selection +- Deterministic Content Selection Checklist: End-to-End Requirements Quality +- Quickstart: Deterministic Article Content Selection +- Specification Quality Checklist: Deterministic Content Selection +- CLI Interface Contract: Deterministic Article Content Selection +- JSON Schema Contract: Deterministic Article Content Selection + +## God Nodes (most connected - your core abstractions) +1. `ECPSnapshot` - 31 edges +2. `InherenceClassifier` - 25 edges +3. `select_article_extractor()` - 23 edges +4. `ExtractorName` - 21 edges +5. `DecisionCategory` - 17 edges +6. `ClassificationResult` - 17 edges +7. `process_batch()` - 15 edges +8. `process_batch()` - 14 edges +9. `LocalEmbeddingsAdapter` - 14 edges +10. `LLMFallbackAdapter` - 14 edges + +## Surprising Connections (you probably didn't know these) +- `main()` --uses--> `ECPSnapshot` [INFERRED] + classify.py → src/models.py +- `main()` --uses--> `ErrorCode` [INFERRED] + classify.py → src/models.py +- `test_extract_google_news_orchestration_mocked()` --uses--> `ExtractionResult` [INFERRED] + tests/test_extract_google_news.py → scripts/extract_google_news.py +- `test_llm_adapter_interface()` --calls--> `LLMFallbackAdapter` [EXTRACTED] + tests/test_adapters.py → src/adapters/llm.py +- `classifier()` --uses--> `InherenceClassifier` [INFERRED] + tests/test_benchmark_24.py → src/classifier.py + +## Import Cycles +- None detected. + +## Communities (131 total, 38 thin omitted) + +### Community 0 - "Task Planning" +Cohesion: 0.07 +Nodes (26): Dependencies & Execution Order, Format: `[ID] [P?] [Story] Description`, Implementation for User Story 1, Implementation for User Story 2, Implementation for User Story 3, Implementation Strategy, Incremental Delivery, MVP First (User Story 1 Only) (+18 more) + +### Community 1 - "Convergence Workflow" +Cohesion: 0.12 +Nodes (15): 1. Initialize Convergence Context, 2. Load Artifacts (Progressive Disclosure), 3. Build the Intent Inventory, 4. Assess the Codebase and Classify Findings, 5. Assign Severity, 6. Present the In-Session Findings Summary, 7. Append Convergence Tasks (or report converged), 8. Provide Next Actions (Handoff) (+7 more) + +### Community 2 - "SpecKit Utilities" +Cohesion: 0.23 +Nodes (13): Find-SpecifyRoot(), Format-SpecKitCommand(), Get-CurrentBranch(), Get-FeaturePathsEnv(), Get-InvokeSeparator(), Get-NormalizedPriority(), Get-Python3Command(), Get-RepoRoot() (+5 more) + +### Community 3 - "Graphify Commands" +Cohesion: 0.08 +Nodes (24): For /graphify add and --watch, For /graphify query, For the commit hook and native CLAUDE.md integration, For --update and --cluster-only, /graphify, Honesty Rules, Interpreter guard for subcommands, Part A - Structural extraction for code files (+16 more) + +### Community 4 - "speckit-analyze/SKILL.md" +Cohesion: 0.08 +Nodes (25): 1. Initialize Analysis Context, 2. Load Artifacts (Progressive Disclosure), 3. Build Semantic Models, 4. Detection Passes (Token-Efficient Analysis), 5. Severity Assignment, 6. Produce Compact Analysis Report, 7. Provide Next Actions, 8. Offer Remediation (+17 more) + +### Community 5 - "Tasks: Multilingual NLP Entity Inherence Classifier (POC)" +Cohesion: 0.15 +Nodes (13): Dependencies & Execution Order, Implementation for User Story 1, Implementation for User Story 2, Implementation for User Story 3, Implementation Strategy, Phase 1: Setup (Shared Infrastructure), Phase 2: Foundational (Blocking Prerequisites), Phase 3: User Story 1 - Core Tier 1 Deterministic Classification & CLI (Priority: P1) [MVP] (+5 more) + +### Community 6 - "Feature Specification Template" +Cohesion: 0.15 +Nodes (12): Assumptions, Edge Cases, Feature Specification: [FEATURE NAME], Functional Requirements, Key Entities *(include if feature involves data)*, Measurable Outcomes, Requirements *(mandatory)*, Success Criteria *(mandatory)* (+4 more) + +### Community 8 - "Implementation Planning" +Cohesion: 0.18 +Nodes (10): Completion Report, Done When, Key rules, Mandatory Post-Execution Hooks, Outline, Phase 0: Outline & Research, Phase 1: Design & Contracts, Phases (+2 more) + +### Community 9 - "Feature Specification" +Cohesion: 0.18 +Nodes (10): Completion Report, Done When, For AI Generation, Mandatory Post-Execution Hooks, Outline, Pre-Execution Checks, Quick Guidelines, Section Requirements (+2 more) + +### Community 10 - "Task Generation" +Cohesion: 0.18 +Nodes (10): Checklist Format (REQUIRED), Completion Report, Done When, Mandatory Post-Execution Hooks, Outline, Phase Structure, Pre-Execution Checks, Task Generation Rules (+2 more) + +### Community 11 - "Project Constitution" +Cohesion: 0.18 +Nodes (10): Core Principles, Governance, [PRINCIPLE_1_NAME], [PRINCIPLE_2_NAME], [PRINCIPLE_3_NAME], [PRINCIPLE_4_NAME], [PRINCIPLE_5_NAME], [PROJECT_NAME] Constitution (+2 more) + +### Community 12 - "Constitution Template" +Cohesion: 0.18 +Nodes (10): Core Principles, Governance, [PRINCIPLE_1_NAME], [PRINCIPLE_2_NAME], [PRINCIPLE_3_NAME], [PRINCIPLE_4_NAME], [PRINCIPLE_5_NAME], [PROJECT_NAME] Constitution (+2 more) + +### Community 13 - "Graphify Exports" +Cohesion: 0.22 +Nodes (8): graphify reference: extra exports and benchmark, Step 6b - Wiki (only if --wiki flag), Step 7 - Neo4j export (only if --neo4j or --neo4j-push flag), Step 7a - FalkorDB export (only if --falkordb or --falkordb-push flag), Step 7b - SVG export (only if --svg flag), Step 7c - GraphML export (only if --graphml flag), Step 7d - MCP server (only if --mcp flag), Step 8 - Token reduction benchmark (only if total_words > 5000) + +### Community 14 - "Ponytail Configuration" +Cohesion: 0.22 +Nodes (8): Boundaries, Intensity, Output, Persistence, Ponytail, Rules, The ladder, When NOT to be lazy + +### Community 15 - "Implementation Planning Template" +Cohesion: 0.22 +Nodes (8): Complexity Tracking, Constitution Check, Documentation (this feature), Implementation Plan: [FEATURE], Project Structure, Source Code (repository root), Summary, Technical Context + +### Community 16 - "Ponytail Help" +Cohesion: 0.25 +Nodes (7): Configure Default Mode, Deactivate, Levels, More, Ponytail Help, Skills, Update + +### Community 17 - "Checklist Generation" +Cohesion: 0.25 +Nodes (7): Anti-Examples: What NOT To Do, Checklist Purpose: "Unit Tests for English", Example Checklist Types & Sample Items, Execution Steps, Post-Execution Checks, Pre-Execution Checks, User Input + +### Community 18 - "Clarification Workflow" +Cohesion: 0.29 +Nodes (6): Completion Report, Done When, Mandatory Post-Execution Hooks, Outline, Pre-Execution Checks, User Input + +### Community 19 - "Implementation Workflow" +Cohesion: 0.29 +Nodes (6): Completion Report, Done When, Mandatory Post-Execution Hooks, Outline, Pre-Execution Checks, User Input + +### Community 20 - "Graph Query" +Cohesion: 0.33 +Nodes (5): For /graphify explain, For /graphify path, graphify reference: query, path, explain, Step 0 — Constrained query expansion (REQUIRED before traversal), Step 1 — Traversal + +### Community 21 - "Constitution Workflow" +Cohesion: 0.33 +Nodes (5): Outline, Post-Execution Checks, Pre-Execution Checks, Scope Guard, User Input + +### Community 23 - "Ponytail Audit" +Cohesion: 0.40 +Nodes (4): Boundaries, Hunt, Output, Tags + +### Community 24 - "Ponytail Metrics" +Cohesion: 0.40 +Nodes (4): Boundaries, Honesty boundary, Ponytail Gain, Scoreboard + +### Community 25 - "Ponytail Review" +Cohesion: 0.40 +Nodes (4): Boundaries, Examples, Format, Scoring + +### Community 26 - "Task Issue Conversion" +Cohesion: 0.40 +Nodes (4): Outline, Post-Execution Checks, Pre-Execution Checks, User Input + +### Community 27 - "Checklist Template" +Cohesion: 0.40 +Nodes (4): [Category 1], [Category 2], [CHECKLIST TYPE] Checklist: [FEATURE NAME], Notes + +### Community 28 - "Graphify Watch Mode" +Cohesion: 0.50 +Nodes (3): For /graphify add, For --watch, graphify reference: add a URL and watch a folder + +### Community 29 - "Graphify Hooks" +Cohesion: 0.50 +Nodes (3): For git commit hook, For native CLAUDE.md integration, graphify reference: commit hook and native CLAUDE.md integration + +### Community 30 - "Graphify Updates" +Cohesion: 0.50 +Nodes (3): For --cluster-only, For --update (incremental re-extraction), graphify reference: incremental update and cluster-only + +### Community 31 - "Ponytail Debt" +Cohesion: 0.50 +Nodes (3): Boundaries, Output, Scan + +### Community 40 - "main" +Cohesion: 0.14 +Nodes (17): ArgumentParser, CaptureFixture, build_parser(), main(), Cria e configura o parser de argumentos CLI., Ponto de entrada do script CLI., Path, Valida execução padrão do CLI com saída JSON no stdout. (+9 more) + +### Community 41 - "1. Technical Decisions & Tradeoffs" +Cohesion: 0.22 +Nodes (8): 1. Technical Decisions & Tradeoffs, 2. Standardized Error Handling Strategy, Decision 1: Execution Engine & CLI Architecture, Decision 2: Multilingual Language Detection & Normalization (Tier 1 Core), Decision 3: Materialized ECP Snapshot Contract & Matching Logic, Decision 4: Tier 2 (Embeddings) & Tier 3 (LLM) Optional Adapters, Decision 5: Controlled 24-Case POC Benchmark Suite, Technical Research & Architecture Decisions (POC) + +### Community 42 - "1. Input Schemas" +Cohesion: 0.25 +Nodes (7): 1.1 ECP Snapshot Schema (`snapshot.json`), 1.2 Content Item Schema (`content.md`), 1. Input Schemas, 2.1 Classification Success Result Schema (`result.json`), 2.2 Error Result Schema, 2. Output Schemas, Data Models & Schemas (POC) + +### Community 43 - "2. Basic CLI Usage Examples" +Cohesion: 0.25 +Nodes (7): 1. Prerequisites & Installation, 2.1 Direct Inherence (Portuguese), 2.2 Contextual Inherence via Graph Snapshot (German), 2.3 Tangential Mention (Spanish), 2. Basic CLI Usage Examples, 3. Running the Controlled 24-Case Benchmark, Quickstart & Validation Guide (POC) + +### Community 44 - "2. Standard Streams & Exit Codes" +Cohesion: 0.29 +Nodes (6): 1.1 Arguments & Options, 1. Command Line Interface, 2.1 Exit Codes, 2.2 Standard Output (`stdout`) / Standard Error (`stderr`), 2. Standard Streams & Exit Codes, CLI Contract & Interface Specification (POC) + +### Community 45 - "ClassificationResult" +Cohesion: 0.14 +Nodes (12): ABC, BaseNLPAdapter, Base abstract adapter interface for optional Tier 2 / Tier 3 NLP enhancers., Abstract interface for pluggable NLP classification adapters., Return True if the underlying provider or model is installed and configured., Compute semantic similarity score between text and a set of candidate terms., Optionally refine an ambiguous classification result., LLMFallbackAdapter (+4 more) + +### Community 46 - "InherenceClassifier" +Cohesion: 0.12 +Nodes (27): InherenceClassifier, Tier 1 Deterministic NLP Entity Inherence Classifier., DecisionCategory, RelatedEntity, Adversarial and robustness test suite for Multilingual NLP Entity Inherence…, Run CLI via subprocess without --output and verify stdout is pure parseable…, Run CLI via subprocess with empty content and verify error code and exit code., Content about city/state governance of São Paulo against ECP for São Paulo FC. (+19 more) + +### Community 47 - "classifier.py" +Cohesion: 0.10 +Nodes (31): count_phrase_occurrences(), match_phrase_in_text(), Core deterministic classification engine (Tier 1 core)., Check if a normalized phrase appears in normalized text with word boundary…, Count occurrences of a phrase in text., Classify inherence of content against an ECP snapshot., detect_language(), extract_words() (+23 more) + +### Community 48 - "main" +Cohesion: 0.31 +Nodes (9): main(), parse_args(), Namespace, CLI execution tests covering flags, arguments, stdout, and error handling., test_cli_empty_content_file(), test_cli_missing_ecp_file(), test_cli_missing_required_ecp_field(), test_cli_output_file() (+1 more) + +### Community 80 - "test_extract_article_contents.py" +Cohesion: 0.06 +Nodes (56): ArticleCrawler, extract_all_engines(), ExtractedArticle, ExtractionBatchReport, InputArticle, load_search_json(), log_info(), main() (+48 more) + +### Community 81 - "Extrator de Notícias do Google News — Guia Completo de Funcionamento" +Cohesion: 0.08 +Nodes (24): 1. Visão geral (arquitetura), 2.1 DTO de entrada (`googlenews_etl/application/dtos/extract_news_dto.py`), 2.2 Value Object de validação (`googlenews_etl/domain/entities/search_query.py`), 2. Entrada, 3.1 O caso de uso (`googlenews_etl/application/use_cases/extract_news_use_case.py`), 3.2 A porta (`googlenews_etl/domain/ports/news_extractor_port.py`), 3.3.1 Inicialização: sessão HTTP com impersonação de browser, 3.3.2 Mapeamento idioma → parâmetros `hl`/`gl` (`_get_hl_gl`) (+16 more) + +### Community 82 - "extract_google_news.py" +Cohesion: 0.15 +Nodes (18): extract_google_news(), _fetch_rss_content(), get_hl_gl_ceid(), NewsArticle, _normalize_text_for_comparison(), parse_google_news_rss(), Mapeia idioma e locale para os parâmetros hl, gl e ceid do Google News., Remove pontuação e espaços extras para comparação de redundância. (+10 more) + +### Community 83 - "ExtractionResult" +Cohesion: 0.29 +Nodes (5): ExtractionResult, Any, Resultado consolidado da extração., Valida E2E o fluxo completo de busca, parsing e resolução de URLs reais ao vivo., test_e2e_extract_google_news_live_pipeline() + +### Community 84 - "test_extract_google_news.py" +Cohesion: 0.15 +Nodes (15): Resolve a URL intermediária do Google News para a URL real do veículo., resolve_article_url(), Testes unitários e de integração para o Extrator de Manchetes do Google News.…, Valida fallback gracioso de URL quando não é link do Google News ou em erro., Valida resolução bem-sucedida de URL do Google News para o portal destino., Valida E2E que o decodificador resolve uma URL real do Google News para o…, Valida o mapeamento padrão de idiomas para pares (hl, gl, ceid)., Valida a sobrescrita geográfica quando o argumento locale é especificado. (+7 more) + +### Community 85 - "Implementation Tasks: Google News Headlines Extractor" +Cohesion: 0.14 +Nodes (14): Implementation for User Story 1, Implementation for User Story 2, Implementation for User Story 3, Implementation Tasks: Google News Headlines Extractor, Phase 1: Setup (Shared Infrastructure), Phase 2: Foundational (Blocking Prerequisites), Phase 3: User Story 1 - Extração Básica de Notícias por Assunto e Idioma (Priority: P1) 🌟 MVP, Phase 4: User Story 2 - Filtragem Regional e Edição Geográfica (Priority: P2) (+6 more) + +### Community 86 - "Feature Specification: Google News Headlines Extractor" +Cohesion: 0.18 +Nodes (11): Clarifications, Edge Cases, Feature Specification: Google News Headlines Extractor, Functional Requirements, Requirements *(mandatory)*, Session 2026-08-20, Success Criteria *(mandatory)*, User Scenarios & Testing *(mandatory)* (+3 more) + +### Community 87 - "2. Cenários Práticos de Uso" +Cohesion: 0.20 +Nodes (9): 1. Pré-requisitos e Instalação, 2. Cenários Práticos de Uso, 3. Validação dos Testes Automatizados e Linter, Cenário 1: River Plate — Argentina (Espanhol / 2 Páginas / Salvar em Arquivo), Cenário 2: Cruzeiro — Brasil (Português / Formatado no Terminal), Cenário 3: Fórmula 1 — Reino Unido (Inglês), Cenário 4: Integração em Pipeline com `jq` (Modo Silencioso), Cenário 5: Extração Rápida com Links Brutos (Sem Resolução de URLs) (+1 more) + +### Community 88 - "Implementation Plan: Google News Headlines Extractor" +Cohesion: 0.29 +Nodes (7): Architecture & Pipeline, Documentation (this feature), Implementation Plan: Google News Headlines Extractor, Project Structure, Source Code, Summary, Technical Context + +### Community 90 - "SearchQuery" +Cohesion: 0.20 +Nodes (6): Value Object com parâmetros de busca validados., SearchQuery, Valida a consolidação do ExtractionResult a partir da busca mockada com URLs…, Valida as regras de negócio e limites de SearchQuery., test_extract_google_news_orchestration_mocked(), test_search_query_validation() + +### Community 91 - "1. Technical Decisions & Tradeoffs" +Cohesion: 0.25 +Nodes (7): 1. Technical Decisions & Tradeoffs, Decision 1: Motor de Requisição e Scraping com `foxcape` em Modo Headless, Decision 2: Endpoint RSS do Google News vs. Scraping de DOM, Decision 3: Mapeamento de Idioma e Locale (`hl`, `gl`, `ceid`), Decision 4: Resolução de URLs do Google News via `googlenewsdecoder`, Decision 5: Logging em Tempo Real no `stderr` e Segregação de Streams, Research: Google News Headlines Extractor + +### Community 92 - "General Readiness Checklist: Google News Headlines Extractor" +Cohesion: 0.29 +Nodes (7): CLI Interface & Parameter Contracts, Data Sanitization & Article Extraction, Error Handling & Edge Cases, General Readiness Checklist: Google News Headlines Extractor, Non-Functional & Operational Readiness, Notes, Scraping Engine & Feed Mapping + +### Community 93 - "1. Entidades de Domínio & DTOs" +Cohesion: 0.29 +Nodes (6): 1.1 SearchQuery (Parâmetros da Busca), 1.2 NewsArticle (Item de Notícia), 1.3 ExtractionResult (Saída Estruturada Consolidada), 1. Entidades de Domínio & DTOs, 2. Esquema JSON de Saída, Data Model: Google News Headlines Extractor + +### Community 94 - "Specification Quality Checklist: Google News Headlines Extractor" +Cohesion: 0.33 +Nodes (5): Content Quality, Feature Readiness, Notes, Requirement Completeness, Specification Quality Checklist: Google News Headlines Extractor + +### Community 95 - "CLI Contract: Google News Headlines Extractor" +Cohesion: 0.33 +Nodes (6): 1. Comando e Argumentos, 2. Códigos de Saída (Exit Codes), 3. Protocolo de Streams (Stdout / Stderr), Argumentos de Linha de Comando, CLI Contract: Google News Headlines Extractor, Sintaxe + +### Community 97 - "🧠 TextNLPClassifierApp" +Cohesion: 0.06 +Nodes (35): 1. 🧠 Classificador de Conteúdo e Inerência (NLP / LLM / ECP), 1. Clonar o Repositório e Criar Ambiente Virtual, 1. Execução Padrão Automática, 2. Execução com Modo Verboso, 2. 📰 Extrator de Manchetes do Google News, 2. Instalar Dependências, 3. Baixar Binários do Navegador Stealth (Camoufox), 3. 📄 Extrator e Parser Multimotor de Artigos (+27 more) + +### Community 98 - "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor" +Cohesion: 0.05 +Nodes (34): 1. Requirement Completeness, 2. Requirement Clarity & Non-Ambiguity, 3. Requirement Consistency & Data Contracts, 4. Scenario & Edge Case Coverage, 5. Non-Functional & Operational Readiness, Extraction Pipeline Checklist: Article Content Multi-Engine Extractor, Notes, Content Quality (+26 more) + +### Community 99 - "sample_rss_xml" +Cohesion: 0.67 +Nodes (3): fixture, Fixture que fornece o conteúdo do XML de exemplo para testes offline., sample_rss_xml() + +### Community 100 - "models.py" +Cohesion: 0.24 +Nodes (8): emit_error(), ClassificationError, ErrorCode, MatchedGraphEntity, Enum, str, Data models and validation schemas for Multilingual NLP Entity Inherence…, test_classification_error_serialization() + +### Community 101 - "ECPSnapshot" +Cohesion: 0.19 +Nodes (11): parametrize, ECPSnapshot, Any, classifier(), fixture, Controlled 24-case benchmark suite for Multilingual NLP Entity Inherence…, test_benchmark_case(), Unit tests for ECP models, schema validation, and structured error handling. (+3 more) + +### Community 102 - "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)" +Cohesion: 0.14 +Nodes (14): Assumptions, Assumptions & Scope, Clarifications, Explicit Out of Scope (POC), Feature Specification: Multilingual NLP Entity Inherence Classifier (POC), Functional Requirements, Key Entities *(data models & domain entities)*, Measurable Outcomes (+6 more) + +### Community 103 - "4. Requisitos Funcionais (FR)" +Cohesion: 0.10 +Nodes (20): 1.1 Objetivo do Produto, 1. Visão Geral e Contexto, 2. Personas e Casos de Uso, 3. Arquitetura e Fluxo do Sistema, 4. Requisitos Funcionais (FR), 5. Requisitos Não Funcionais (NFR), 6.1 Esquema do JSON de Entrada (`Input`), 6.2 Esquema do JSON Consolidado de Saída (`Output`) (+12 more) + +### Community 104 - "Tasks: Article Content Multi-Engine Extractor" +Cohesion: 0.11 +Nodes (18): Dependencies & Execution Order, Entrega Incremental, Implementation Strategy, Implementação da User Story 1, Implementação da User Story 2, Implementação da User Story 3, MVP First (User Story 1 Only), Oportunidades de Execução Paralela (+10 more) + +### Community 105 - "LocalEmbeddingsAdapter" +Cohesion: 0.18 +Nodes (7): LocalEmbeddingsAdapter, Optional local vector embeddings adapter (Tier 2). Disabled by default.…, Optional adapter for local multilingual semantic vector embeddings., Unit tests for optional adapter interfaces (Tier 2 / Tier 3)., test_classifier_with_adapter_flags(), test_embeddings_adapter_interface(), test_llm_adapter_interface() + +### Community 106 - "Implementation Plan: Article Content Multi-Engine Extractor" +Cohesion: 0.17 +Nodes (11): Constitution Check, Documentation (this feature), Implementation Phases, Implementation Plan: Article Content Multi-Engine Extractor, Phase 0: Outline & Research *(Completed)*, Phase 1: Design & Contracts *(Completed)*, Phase 2: Tasks & Execution *(Completed)*, Project Structure (+3 more) + +### Community 107 - "2. Cenários de Validação" +Cohesion: 0.22 +Nodes (8): 1. Pré-requisitos, 2. Cenários de Validação, 3. Validação Automatizada de Testes, Cenário 1: Extração com Amostragem Rápida (Limit 2), Cenário 2: Caminho Customizado de Saída, Cenário 3: Modo Silencioso (`--silent`), Cenário 4: Resiliência contra URLs Inválidas, Quickstart & Validation Guide: Article Content Multi-Engine Extractor + +### Community 108 - "1. Technical Decisions & Tradeoffs" +Cohesion: 0.22 +Nodes (8): 1. Technical Decisions & Tradeoffs, Decision 1: Motor de Navegação e Renderização com `foxcape` em Sessão Única, Decision 2: Orquestração Tripla de Extração de Conteúdo (NLP & Web Scraping), Decision 3: Resiliência e Isolamento de Falhas por Camada, Decision 4: Herança Inteligente de Idioma para NLP, Decision 5: Gerenciamento de Memória e Descarte do Raw HTML, Decision 6: Segregação de Streams e Feedback Visual em `stderr`, Research: Article Content Multi-Engine Extractor + +### Community 109 - "Implementation Plan: Multilingual NLP Entity Inherence Classifier (POC)" +Cohesion: 0.25 +Nodes (8): Complexity Tracking, Constitution Check, Documentation (this feature), Implementation Plan: Multilingual NLP Entity Inherence Classifier (POC), Project Structure, Source Code (repository root), Summary, Technical Context + +### Community 110 - "POC Readiness & Requirements Quality Checklist: Multilingual NLP Entity Inherence Classifier" +Cohesion: 0.29 +Nodes (7): 1. Requirement Completeness & Scope Boundaries, 2. Requirement Clarity & Decision Semantics, 3. Requirement Consistency & Alignment, 4. Acceptance Criteria & Measurability, 5. Scenario & Edge Case Coverage, Notes, POC Readiness & Requirements Quality Checklist: Multilingual NLP Entity Inherence Classifier + +### Community 111 - "Specification Quality Checklist: Multilingual NLP Entity Inherence Classifier" +Cohesion: 0.33 +Nodes (5): Content Quality, Feature Readiness, Notes, Requirement Completeness, Specification Quality Checklist: Multilingual NLP Entity Inherence Classifier + +### Community 112 - "CLI Contract: Article Content Multi-Engine Extractor" +Cohesion: 0.33 +Nodes (5): 1. Comando de Execução, 2. Argumentos e Flags, 3. Códigos de Saída (Exit Codes), 4. Comportamento de Streams (I/O), CLI Contract: Article Content Multi-Engine Extractor + +### Community 114 - "JSON Schema Contract: Article Content Multi-Engine Extractor" +Cohesion: 0.50 +Nodes (3): 1. Schema de Entrada (Input JSON), 2. Schema de Saída (Output JSON), JSON Schema Contract: Article Content Multi-Engine Extractor + +### Community 115 - "PRD — Seleção determinística da biblioteca de extração de conteúdo" +Cohesion: 0.07 +Nodes (29): 10. Requisitos não funcionais, 11. Critérios de aceite, 12. Casos obrigatórios de teste, 13. Definition of Done, 1. Contexto, 2. Objetivo, 3.1 Incluído, 3.2 Fora do escopo (+21 more) + +### Community 116 - "select_article_extractor.py" +Cohesion: 0.16 +Nodes (17): BatchProcessingResult, break_priority_tie(), calculate_consensus_metrics(), ExtractorCandidate, form_active_set(), main(), parse_args(), Namespace (+9 more) + +### Community 117 - "1. Text Normalization Pipeline" +Cohesion: 0.11 +Nodes (18): 1. Text Normalization Pipeline, 2. 5-Token Shingles & Consensus Metrics, 3. Regras de Decisão, Empate Técnico e Desempate Hierárquico, 4. Estratégia de I/O Não Destrutiva e Escrita Atômica, Alternatives Considered, Context, Context, Context (+10 more) + +### Community 118 - "Tasks: Deterministic Article Content Selection" +Cohesion: 0.11 +Nodes (18): Dependencies & Execution Order, Implementation for User Story 1, Implementation for User Story 2, Implementation for User Story 3, Implementation Strategy, Incremental Delivery (Phases 4, 5 & 6), MVP First (Phases 1, 2 & 3), Parallel Opportunities (+10 more) + +### Community 119 - "select_article_extractor" +Cohesion: 0.08 +Nodes (37): ArticleSelectionResult, CandidateStatus, extract_candidate_data(), ExtractorName, Any, Enum, str, Extrai campo de texto, erro e calcula tokens/shingles para um motor. (+29 more) + +### Community 120 - "process_batch" +Cohesion: 0.10 +Nodes (26): atomic_save_json(), process_batch(), Path, Salva dados em JSON de forma atômica utilizando arquivo temporário e rename., Lê o JSON de entrada, valida a estrutura, processa todos os artigos e grava o…, Path, CT-012: A entrada já contém selected_extractor -> Recalcular e substituir…, CT-013: articles está vazio -> Gerar saída válida com articles vazio. (+18 more) + +### Community 122 - "test_select_article_extractor.py" +Cohesion: 0.21 +Nodes (14): generate_shingles(), normalize_text(), Executa a normalização determinística para comparação: 1. Decodificar entidades…, Gera conjunto de shingles ordenados de tamanho window_size (padrão 5). - Se…, Suíte de Testes Automatizados para o Seletor Determinístico de Extrator. Cobre…, Garante que marcação de imagem Markdown  seja descartada e link…, test_generate_shingles_empty(), test_generate_shingles_short_text() (+6 more) + +### Community 123 - "Feature Specification: Deterministic Content Selection" +Cohesion: 0.17 +Nodes (12): Assumptions, Edge Cases, Feature Specification: Deterministic Content Selection, Functional Requirements, Key Entities *(include if feature involves data)*, Measurable Outcomes, Requirements *(mandatory)*, Success Criteria *(mandatory)* (+4 more) + +### Community 124 - "2. Entity Descriptions & Fields" +Cohesion: 0.18 +Nodes (11): 1. Domain Entities & Value Types, 2. Entity Descriptions & Fields, 3. JSON Schema Mapping, `ArticleSelectionResult` (Dataclass), `BatchProcessingResult` (Dataclass), `CandidateStatus` (Enum), Data Model: Deterministic Content Selection, Entrada (+3 more) + +### Community 125 - "Implementation Plan: Deterministic Article Content Selection" +Cohesion: 0.18 +Nodes (11): Constitution Check, Documentation (this feature), Implementation Phases, Implementation Plan: Deterministic Article Content Selection, Phase 0: Outline & Research *(Completed)*, Phase 1: Design & Contracts *(Completed)*, Phase 2: Tasks & Execution *(Next Step via `/speckit-tasks`)*, Project Structure (+3 more) + +### Community 126 - "Deterministic Content Selection Checklist: End-to-End Requirements Quality" +Cohesion: 0.25 +Nodes (7): Candidate State Transitions & Resilience, Decision & Tie-Breaking Hierarchy, Deterministic Content Selection Checklist: End-to-End Requirements Quality, JSON Schema Integrity & Atomic I/O, Notes, Shingles & Consensus Metric Formulation, Text Normalization & Tokenization Quality + +### Community 127 - "Quickstart: Deterministic Article Content Selection" +Cohesion: 0.29 +Nodes (7): 1. Pré-requisitos, 2. Execução Rápida via CLI, 3. Execução dos Testes Automatizados, 4. Validação Programática / Uso como Módulo Python, Cenário 1: Selecionar o melhor extrator para uma extração existente, Cenário 2: Especificar caminho de saída customizado e modo verboso, Quickstart: Deterministic Article Content Selection + +### Community 128 - "Specification Quality Checklist: Deterministic Content Selection" +Cohesion: 0.33 +Nodes (5): Content Quality, Feature Readiness, Notes, Requirement Completeness, Specification Quality Checklist: Deterministic Content Selection + +### Community 129 - "CLI Interface Contract: Deterministic Article Content Selection" +Cohesion: 0.33 +Nodes (5): 1. Command Syntax, 2. Arguments and Flags, 3. Standard Streams (I/O), 4. Exit Codes, CLI Interface Contract: Deterministic Article Content Selection + +### Community 131 - "JSON Schema Contract: Deterministic Article Content Selection" +Cohesion: 0.50 +Nodes (3): 1. Input JSON Schema, 2. Output JSON Schema, JSON Schema Contract: Deterministic Article Content Selection + +## Knowledge Gaps +- **562 isolated node(s):** `text-nlp-classifier`, `MatchedGraphEntity`, `graphify`, `Usage`, `What graphify is for` (+557 more) + These have ≤1 connection - possible missing edges or undocumented components. +- **38 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **Why does `ECPSnapshot` connect `ECPSnapshot` to `models.py`, `LocalEmbeddingsAdapter`, `ClassificationResult`, `InherenceClassifier`, `classifier.py`, `main`?** + _High betweenness centrality (0.003) - this node is a cross-community bridge._ +- **Why does `LLMFallbackAdapter` connect `ClassificationResult` to `LocalEmbeddingsAdapter`, `ECPSnapshot`, `InherenceClassifier`, `classifier.py`?** + _High betweenness centrality (0.003) - this node is a cross-community bridge._ +- **Why does `Research & Architectural Decisions: Deterministic Content Selection` connect `1. Text Normalization Pipeline` to `004-deterministic-content-selection/spec.md`?** + _High betweenness centrality (0.003) - this node is a cross-community bridge._ +- **Are the 10 inferred relationships involving `ECPSnapshot` (e.g. with `main()` and `BaseNLPAdapter`) actually correct?** + _`ECPSnapshot` has 10 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 6 inferred relationships involving `InherenceClassifier` (e.g. with `LocalEmbeddingsAdapter` and `LLMFallbackAdapter`) actually correct?** + _`InherenceClassifier` has 6 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 12 inferred relationships involving `ExtractorName` (e.g. with `test_article_1_regression_technical_tie_markdown_images()` and `test_ct_001_three_candidates_clear_winner()`) actually correct?** + _`ExtractorName` has 12 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 10 inferred relationships involving `DecisionCategory` (e.g. with `InherenceClassifier` and `test_adversarial_apple_fruit_recipe()`) actually correct?** + _`DecisionCategory` has 10 INFERRED edges - model-reasoned connections that need verification._ \ No newline at end of file diff --git a/graphify-out/2026-08-21/graph.json b/graphify-out/2026-08-21/graph.json new file mode 100644 index 0000000..36b36ec --- /dev/null +++ b/graphify-out/2026-08-21/graph.json @@ -0,0 +1,32142 @@ +{ + "directed": false, + "multigraph": false, + "graph": {}, + "nodes": [ + { + "id": "src_models_classificationerror", + "label": "ClassificationError", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 100, + "community_name": "models.py", + "file_type": "code", + "norm_label": "classificationerror", + "source_file": "src/models.py", + "source_location": "L155" + }, + { + "id": "src_models_errorcode", + "label": "ErrorCode", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 100, + "community_name": "models.py", + "file_type": "code", + "norm_label": "errorcode", + "source_file": "src/models.py", + "source_location": "L18" + }, + { + "id": "src_models_matchedgraphentity", + "label": "MatchedGraphEntity", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 100, + "community_name": "models.py", + "file_type": "code", + "norm_label": "matchedgraphentity", + "source_file": "src/models.py", + "source_location": "L114" + }, + { + "id": "src_models_ecpsnapshot", + "label": "ECPSnapshot", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "code", + "norm_label": "ecpsnapshot", + "source_file": "src/models.py", + "source_location": "L58" + }, + { + "id": "src_adapters_embeddings_localembeddingsadapter", + "label": "LocalEmbeddingsAdapter", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 105, + "community_name": "LocalEmbeddingsAdapter", + "file_type": "code", + "norm_label": "localembeddingsadapter", + "source_file": "src/adapters/embeddings.py", + "source_location": "L13" + }, + { + "id": "scripts_select_article_extractor_batchprocessingresult", + "label": "BatchProcessingResult", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "code", + "norm_label": "batchprocessingresult", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L90" + }, + { + "id": "scripts_select_article_extractor_extractorcandidate", + "label": "ExtractorCandidate", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "code", + "norm_label": "extractorcandidate", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L62" + }, + { + "id": "scripts_select_article_extractor_articleselectionresult", + "label": "ArticleSelectionResult", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "articleselectionresult", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L78" + }, + { + "id": "scripts_select_article_extractor_candidatestatus", + "label": "CandidateStatus", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "candidatestatus", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L41" + }, + { + "id": "scripts_select_article_extractor_extractorname", + "label": "ExtractorName", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "extractorname", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L33" + }, + { + "id": "src_adapters_base_basenlpadapter", + "label": "BaseNLPAdapter", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "code", + "norm_label": "basenlpadapter", + "source_file": "src/adapters/base.py", + "source_location": "L10" + }, + { + "id": "src_adapters_llm_llmfallbackadapter", + "label": "LLMFallbackAdapter", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "code", + "norm_label": "llmfallbackadapter", + "source_file": "src/adapters/llm.py", + "source_location": "L15" + }, + { + "id": "src_models_classificationresult", + "label": "ClassificationResult", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "code", + "norm_label": "classificationresult", + "source_file": "src/models.py", + "source_location": "L122" + }, + { + "id": "src_classifier_inherenceclassifier", + "label": "InherenceClassifier", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "inherenceclassifier", + "source_file": "src/classifier.py", + "source_location": "L41" + }, + { + "id": "src_models_decisioncategory", + "label": "DecisionCategory", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "decisioncategory", + "source_file": "src/models.py", + "source_location": "L11" + }, + { + "id": "src_models_relatedentity", + "label": "RelatedEntity", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "relatedentity", + "source_file": "src/models.py", + "source_location": "L27" + }, + { + "id": "scripts_extract_article_contents_articlecrawler", + "label": "ArticleCrawler", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "articlecrawler", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L482" + }, + { + "id": "scripts_extract_article_contents_extractedarticle", + "label": "ExtractedArticle", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "extractedarticle", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L174" + }, + { + "id": "scripts_extract_article_contents_extractionbatchreport", + "label": "ExtractionBatchReport", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "extractionbatchreport", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L202" + }, + { + "id": "scripts_extract_article_contents_inputarticle", + "label": "InputArticle", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "inputarticle", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L34" + }, + { + "id": "scripts_extract_article_contents_newspaperdata", + "label": "NewspaperData", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "newspaperdata", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L102" + }, + { + "id": "scripts_extract_article_contents_newspaperextractor", + "label": "NewspaperExtractor", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "newspaperextractor", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L332" + }, + { + "id": "scripts_extract_article_contents_readabilitydata", + "label": "ReadabilityData", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "readabilitydata", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L152" + }, + { + "id": "scripts_extract_article_contents_readabilityextractor", + "label": "ReadabilityExtractor", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "readabilityextractor", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L395" + }, + { + "id": "scripts_extract_article_contents_trafilaturadata", + "label": "TrafilaturaData", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "trafilaturadata", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L54" + }, + { + "id": "scripts_extract_article_contents_trafilaturaextractor", + "label": "TrafilaturaExtractor", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "trafilaturaextractor", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L228" + }, + { + "id": "scripts_extract_google_news_newsarticle", + "label": "NewsArticle", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "code", + "norm_label": "newsarticle", + "source_file": "scripts/extract_google_news.py", + "source_location": "L64" + }, + { + "id": "scripts_extract_google_news_extractionresult", + "label": "ExtractionResult", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 83, + "community_name": "ExtractionResult", + "file_type": "code", + "norm_label": "extractionresult", + "source_file": "scripts/extract_google_news.py", + "source_location": "L84" + }, + { + "id": "scripts_extract_google_news_searchquery", + "label": "SearchQuery", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 90, + "community_name": "SearchQuery", + "file_type": "code", + "norm_label": "searchquery", + "source_file": "scripts/extract_google_news.py", + "source_location": "L32" + }, + { + "id": "classify_emit_error", + "label": "emit_error()", + "_callable": true, + "_origin": "ast", + "community": 100, + "community_name": "models.py", + "file_type": "code", + "norm_label": "emit_error()", + "source_file": "classify.py", + "source_location": "L72" + }, + { + "id": "src_models_classificationerror_to_dict", + "label": ".to_dict()", + "_callable": true, + "_origin": "ast", + "community": 100, + "community_name": "models.py", + "file_type": "code", + "norm_label": ".to_dict()", + "source_file": "src/models.py", + "source_location": "L160" + }, + { + "id": "src_models_classificationerror_to_json_str", + "label": ".to_json_str()", + "_callable": true, + "_origin": "ast", + "community": 100, + "community_name": "models.py", + "file_type": "code", + "norm_label": ".to_json_str()", + "source_file": "src/models.py", + "source_location": "L169" + }, + { + "id": "src_models_classificationresult_to_json_str", + "label": ".to_json_str()", + "_callable": true, + "_origin": "ast", + "community": 100, + "community_name": "models.py", + "file_type": "code", + "norm_label": ".to_json_str()", + "source_file": "src/models.py", + "source_location": "L150" + }, + { + "id": "tests_test_models_test_classification_error_serialization", + "label": "test_classification_error_serialization()", + "_callable": true, + "_origin": "ast", + "community": 100, + "community_name": "models.py", + "file_type": "code", + "norm_label": "test_classification_error_serialization()", + "source_file": "tests/test_models.py", + "source_location": "L88" + }, + { + "id": "src_models_classificationresult_to_dict", + "label": ".to_dict()", + "_callable": true, + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "code", + "norm_label": ".to_dict()", + "source_file": "src/models.py", + "source_location": "L134" + }, + { + "id": "src_models_ecpsnapshot_from_dict", + "label": ".from_dict()", + "_callable": true, + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "code", + "norm_label": ".from_dict()", + "source_file": "src/models.py", + "source_location": "L69" + }, + { + "id": "src_models_ecpsnapshot_from_json_str", + "label": ".from_json_str()", + "_callable": true, + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "code", + "norm_label": ".from_json_str()", + "source_file": "src/models.py", + "source_location": "L105" + }, + { + "id": "src_models_relatedentity_from_dict", + "label": ".from_dict()", + "_callable": true, + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "code", + "norm_label": ".from_dict()", + "source_file": "src/models.py", + "source_location": "L37" + }, + { + "id": "tests_test_benchmark_24_classifier", + "label": "classifier()", + "_callable": true, + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "code", + "norm_label": "classifier()", + "source_file": "tests/test_benchmark_24.py", + "source_location": "L23" + }, + { + "id": "tests_test_benchmark_24_test_benchmark_case", + "label": "test_benchmark_case()", + "_callable": true, + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "code", + "norm_label": "test_benchmark_case()", + "source_file": "tests/test_benchmark_24.py", + "source_location": "L28" + }, + { + "id": "tests_test_models_test_ecp_snapshot_defaults", + "label": "test_ecp_snapshot_defaults()", + "_callable": true, + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "code", + "norm_label": "test_ecp_snapshot_defaults()", + "source_file": "tests/test_models.py", + "source_location": "L45" + }, + { + "id": "tests_test_models_test_ecp_snapshot_missing_required", + "label": "test_ecp_snapshot_missing_required()", + "_callable": true, + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "code", + "norm_label": "test_ecp_snapshot_missing_required()", + "source_file": "tests/test_models.py", + "source_location": "L59" + }, + { + "id": "tests_test_models_test_ecp_snapshot_valid", + "label": "test_ecp_snapshot_valid()", + "_callable": true, + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "code", + "norm_label": "test_ecp_snapshot_valid()", + "source_file": "tests/test_models.py", + "source_location": "L15" + }, + { + "id": "src_adapters_embeddings_localembeddingsadapter_disambiguate", + "label": ".disambiguate()", + "_callable": true, + "_origin": "ast", + "community": 105, + "community_name": "LocalEmbeddingsAdapter", + "file_type": "code", + "norm_label": ".disambiguate()", + "source_file": "src/adapters/embeddings.py", + "source_location": "L37" + }, + { + "id": "src_adapters_embeddings_localembeddingsadapter_evaluate_similarity", + "label": ".evaluate_similarity()", + "_callable": true, + "_origin": "ast", + "community": 105, + "community_name": "LocalEmbeddingsAdapter", + "file_type": "code", + "norm_label": ".evaluate_similarity()", + "source_file": "src/adapters/embeddings.py", + "source_location": "L31" + }, + { + "id": "src_adapters_embeddings_localembeddingsadapter_init", + "label": ".__init__()", + "_callable": true, + "_origin": "ast", + "community": 105, + "community_name": "LocalEmbeddingsAdapter", + "file_type": "code", + "norm_label": ".__init__()", + "source_file": "src/adapters/embeddings.py", + "source_location": "L16" + }, + { + "id": "src_adapters_embeddings_localembeddingsadapter_is_available", + "label": ".is_available()", + "_callable": true, + "_origin": "ast", + "community": 105, + "community_name": "LocalEmbeddingsAdapter", + "file_type": "code", + "norm_label": ".is_available()", + "source_file": "src/adapters/embeddings.py", + "source_location": "L23" + }, + { + "id": "src_classifier_inherenceclassifier_init", + "label": ".__init__()", + "_callable": true, + "_origin": "ast", + "community": 105, + "community_name": "LocalEmbeddingsAdapter", + "file_type": "code", + "norm_label": ".__init__()", + "source_file": "src/classifier.py", + "source_location": "L44" + }, + { + "id": "tests_test_adapters_test_classifier_with_adapter_flags", + "label": "test_classifier_with_adapter_flags()", + "_callable": true, + "_origin": "ast", + "community": 105, + "community_name": "LocalEmbeddingsAdapter", + "file_type": "code", + "norm_label": "test_classifier_with_adapter_flags()", + "source_file": "tests/test_adapters.py", + "source_location": "L20" + }, + { + "id": "tests_test_adapters_test_embeddings_adapter_interface", + "label": "test_embeddings_adapter_interface()", + "_callable": true, + "_origin": "ast", + "community": 105, + "community_name": "LocalEmbeddingsAdapter", + "file_type": "code", + "norm_label": "test_embeddings_adapter_interface()", + "source_file": "tests/test_adapters.py", + "source_location": "L9" + }, + { + "id": "tests_test_adapters_test_llm_adapter_interface", + "label": "test_llm_adapter_interface()", + "_callable": true, + "_origin": "ast", + "community": 105, + "community_name": "LocalEmbeddingsAdapter", + "file_type": "code", + "norm_label": "test_llm_adapter_interface()", + "source_file": "tests/test_adapters.py", + "source_location": "L15" + }, + { + "id": "scripts_select_article_extractor_break_priority_tie", + "label": "break_priority_tie()", + "_callable": true, + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "code", + "norm_label": "break_priority_tie()", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L280" + }, + { + "id": "scripts_select_article_extractor_calculate_consensus_metrics", + "label": "calculate_consensus_metrics()", + "_callable": true, + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "code", + "norm_label": "calculate_consensus_metrics()", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L234" + }, + { + "id": "scripts_select_article_extractor_form_active_set", + "label": "form_active_set()", + "_callable": true, + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "code", + "norm_label": "form_active_set()", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L211" + }, + { + "id": "scripts_select_article_extractor_main", + "label": "main()", + "_callable": true, + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "code", + "norm_label": "main()", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L544" + }, + { + "id": "scripts_select_article_extractor_parse_args", + "label": "parse_args()", + "_callable": true, + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "code", + "norm_label": "parse_args()", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L523" + }, + { + "id": "scripts_select_article_extractor_select_with_consensus", + "label": "select_with_consensus()", + "_callable": true, + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "code", + "norm_label": "select_with_consensus()", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L289" + }, + { + "id": "scripts_select_article_extractor_select_without_consensus", + "label": "select_without_consensus()", + "_callable": true, + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "code", + "norm_label": "select_without_consensus()", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L322" + }, + { + "id": "scripts_select_article_extractor_extract_candidate_data", + "label": "extract_candidate_data()", + "_callable": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "extract_candidate_data()", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L167" + }, + { + "id": "scripts_select_article_extractor_select_article_extractor", + "label": "select_article_extractor()", + "_callable": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "select_article_extractor()", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L373" + }, + { + "id": "tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", + "label": "test_article_1_regression_technical_tie_markdown_images()", + "_callable": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "test_article_1_regression_technical_tie_markdown_images()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L363" + }, + { + "id": "tests_test_select_article_extractor_test_ct_001_three_candidates_clear_winner", + "label": "test_ct_001_three_candidates_clear_winner()", + "_callable": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "test_ct_001_three_candidates_clear_winner()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L115" + }, + { + "id": "tests_test_select_article_extractor_test_ct_002_technical_tie_smallest_shingles", + "label": "test_ct_002_technical_tie_smallest_shingles()", + "_callable": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "test_ct_002_technical_tie_smallest_shingles()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L128" + }, + { + "id": "tests_test_select_article_extractor_test_ct_003_technical_tie_priority_fallback", + "label": "test_ct_003_technical_tie_priority_fallback()", + "_callable": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "test_ct_003_technical_tie_priority_fallback()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L140" + }, + { + "id": "tests_test_select_article_extractor_test_ct_004_three_candidates_no_consensus", + "label": "test_ct_004_three_candidates_no_consensus()", + "_callable": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "test_ct_004_three_candidates_no_consensus()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L161" + }, + { + "id": "tests_test_select_article_extractor_test_ct_005_two_candidates_no_consensus", + "label": "test_ct_005_two_candidates_no_consensus()", + "_callable": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "test_ct_005_two_candidates_no_consensus()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L176" + }, + { + "id": "tests_test_select_article_extractor_test_ct_006_single_usable_candidate", + "label": "test_ct_006_single_usable_candidate()", + "_callable": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "test_ct_006_single_usable_candidate()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L190" + }, + { + "id": "tests_test_select_article_extractor_test_ct_007_degraded_candidates_only", + "label": "test_ct_007_degraded_candidates_only()", + "_callable": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "test_ct_007_degraded_candidates_only()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L202" + }, + { + "id": "tests_test_select_article_extractor_test_ct_008_all_candidates_unavailable", + "label": "test_ct_008_all_candidates_unavailable()", + "_callable": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "test_ct_008_all_candidates_unavailable()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L214" + }, + { + "id": "tests_test_select_article_extractor_test_ct_009_small_fragment_loses_due_to_low_coverage", + "label": "test_ct_009_small_fragment_loses_due_to_low_coverage()", + "_callable": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "test_ct_009_small_fragment_loses_due_to_low_coverage()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L226" + }, + { + "id": "tests_test_select_article_extractor_test_ct_010_excessive_boilerplate_loses_due_to_low_support", + "label": "test_ct_010_excessive_boilerplate_loses_due_to_low_support()", + "_callable": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "test_ct_010_excessive_boilerplate_loses_due_to_low_support()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L243" + }, + { + "id": "tests_test_select_article_extractor_test_ct_011_partial_content_loses_due_to_low_coverage", + "label": "test_ct_011_partial_content_loses_due_to_low_coverage()", + "_callable": true, + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "test_ct_011_partial_content_loses_due_to_low_coverage()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L259" + }, + { + "id": "scripts_select_article_extractor_atomic_save_json", + "label": "atomic_save_json()", + "_callable": true, + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "code", + "norm_label": "atomic_save_json()", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L430" + }, + { + "id": "scripts_select_article_extractor_process_batch", + "label": "process_batch()", + "_callable": true, + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "code", + "norm_label": "process_batch()", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L452" + }, + { + "id": "tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", + "label": "test_ct_012_recalculate_existing_selected_extractor()", + "_callable": true, + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "code", + "norm_label": "test_ct_012_recalculate_existing_selected_extractor()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L272" + }, + { + "id": "tests_test_select_article_extractor_test_ct_013_empty_articles_list", + "label": "test_ct_013_empty_articles_list()", + "_callable": true, + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "code", + "norm_label": "test_ct_013_empty_articles_list()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L298" + }, + { + "id": "tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", + "label": "test_ct_014_invalid_json_fails_atomically()", + "_callable": true, + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "code", + "norm_label": "test_ct_014_invalid_json_fails_atomically()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L317" + }, + { + "id": "tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", + "label": "test_e2e_cli_subprocess_default_naming()", + "_callable": true, + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "code", + "norm_label": "test_e2e_cli_subprocess_default_naming()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L520" + }, + { + "id": "tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", + "label": "test_e2e_cli_subprocess_invalid_input()", + "_callable": true, + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "code", + "norm_label": "test_e2e_cli_subprocess_invalid_input()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L548" + }, + { + "id": "tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", + "label": "test_e2e_cli_subprocess_missing_file()", + "_callable": true, + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "code", + "norm_label": "test_e2e_cli_subprocess_missing_file()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L561" + }, + { + "id": "tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", + "label": "test_e2e_cli_subprocess_real_execution()", + "_callable": true, + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "code", + "norm_label": "test_e2e_cli_subprocess_real_execution()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L483" + }, + { + "id": "tests_test_select_article_extractor_test_integration_large_batch_determinism", + "label": "test_integration_large_batch_determinism()", + "_callable": true, + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "code", + "norm_label": "test_integration_large_batch_determinism()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L397" + }, + { + "id": "tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", + "label": "test_integration_pipeline_downstream_consumer()", + "_callable": true, + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "code", + "norm_label": "test_integration_pipeline_downstream_consumer()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L446" + }, + { + "id": "tests_test_select_article_extractor_test_integration_reference_file", + "label": "test_integration_reference_file()", + "_callable": true, + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "code", + "norm_label": "test_integration_reference_file()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L334" + }, + { + "id": "scripts_select_article_extractor_generate_shingles", + "label": "generate_shingles()", + "_callable": true, + "_origin": "ast", + "community": 122, + "community_name": "test_select_article_extractor.py", + "file_type": "code", + "norm_label": "generate_shingles()", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L147" + }, + { + "id": "scripts_select_article_extractor_normalize_text", + "label": "normalize_text()", + "_callable": true, + "_origin": "ast", + "community": 122, + "community_name": "test_select_article_extractor.py", + "file_type": "code", + "norm_label": "normalize_text()", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L106" + }, + { + "id": "tests_test_select_article_extractor_test_generate_shingles_empty", + "label": "test_generate_shingles_empty()", + "_callable": true, + "_origin": "ast", + "community": 122, + "community_name": "test_select_article_extractor.py", + "file_type": "code", + "norm_label": "test_generate_shingles_empty()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L106" + }, + { + "id": "tests_test_select_article_extractor_test_generate_shingles_short_text", + "label": "test_generate_shingles_short_text()", + "_callable": true, + "_origin": "ast", + "community": 122, + "community_name": "test_select_article_extractor.py", + "file_type": "code", + "norm_label": "test_generate_shingles_short_text()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L98" + }, + { + "id": "tests_test_select_article_extractor_test_generate_shingles_sliding_window", + "label": "test_generate_shingles_sliding_window()", + "_callable": true, + "_origin": "ast", + "community": 122, + "community_name": "test_select_article_extractor.py", + "file_type": "code", + "norm_label": "test_generate_shingles_sliding_window()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L90" + }, + { + "id": "tests_test_select_article_extractor_test_normalize_text_empty_and_invalid", + "label": "test_normalize_text_empty_and_invalid()", + "_callable": true, + "_origin": "ast", + "community": 122, + "community_name": "test_select_article_extractor.py", + "file_type": "code", + "norm_label": "test_normalize_text_empty_and_invalid()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L40" + }, + { + "id": "tests_test_select_article_extractor_test_normalize_text_html_entities_and_tags", + "label": "test_normalize_text_html_entities_and_tags()", + "_callable": true, + "_origin": "ast", + "community": 122, + "community_name": "test_select_article_extractor.py", + "file_type": "code", + "norm_label": "test_normalize_text_html_entities_and_tags()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L47" + }, + { + "id": "tests_test_select_article_extractor_test_normalize_text_markdown_images_stripped_while_links_preserved", + "label": "test_normalize_text_markdown_images_stripped_while_links_preserved()", + "_callable": true, + "_origin": "ast", + "community": 122, + "community_name": "test_select_article_extractor.py", + "file_type": "code", + "norm_label": "test_normalize_text_markdown_images_stripped_while_links_preserved()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L59" + }, + { + "id": "tests_test_select_article_extractor_test_normalize_text_markdown_links", + "label": "test_normalize_text_markdown_links()", + "_callable": true, + "_origin": "ast", + "community": 122, + "community_name": "test_select_article_extractor.py", + "file_type": "code", + "norm_label": "test_normalize_text_markdown_links()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L53" + }, + { + "id": "tests_test_select_article_extractor_test_normalize_text_nfkc_unicode_and_punctuation", + "label": "test_normalize_text_nfkc_unicode_and_punctuation()", + "_callable": true, + "_origin": "ast", + "community": 122, + "community_name": "test_select_article_extractor.py", + "file_type": "code", + "norm_label": "test_normalize_text_nfkc_unicode_and_punctuation()", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L78" + }, + { + "id": "scripts_extract_google_news_build_parser", + "label": "build_parser()", + "_callable": true, + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "code", + "norm_label": "build_parser()", + "source_file": "scripts/extract_google_news.py", + "source_location": "L336" + }, + { + "id": "scripts_extract_google_news_main", + "label": "main()", + "_callable": true, + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "code", + "norm_label": "main()", + "source_file": "scripts/extract_google_news.py", + "source_location": "L403" + }, + { + "id": "tests_test_extract_google_news_test_cli_empty_query_error", + "label": "test_cli_empty_query_error()", + "_callable": true, + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "code", + "norm_label": "test_cli_empty_query_error()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L253" + }, + { + "id": "tests_test_extract_google_news_test_cli_execution_file_output", + "label": "test_cli_execution_file_output()", + "_callable": true, + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "code", + "norm_label": "test_cli_execution_file_output()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L234" + }, + { + "id": "tests_test_extract_google_news_test_cli_execution_stdout", + "label": "test_cli_execution_stdout()", + "_callable": true, + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "code", + "norm_label": "test_cli_execution_stdout()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L213" + }, + { + "id": "tests_test_extract_google_news_test_cli_network_error_handling", + "label": "test_cli_network_error_handling()", + "_callable": true, + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "code", + "norm_label": "test_cli_network_error_handling()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L262" + }, + { + "id": "tests_test_extract_google_news_test_e2e_cli_live_file_output", + "label": "test_e2e_cli_live_file_output()", + "_callable": true, + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "code", + "norm_label": "test_e2e_cli_live_file_output()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L318" + }, + { + "id": "src_adapters_base_basenlpadapter_disambiguate", + "label": ".disambiguate()", + "_callable": true, + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "code", + "norm_label": ".disambiguate()", + "source_file": "src/adapters/base.py", + "source_location": "L22" + }, + { + "id": "src_adapters_base_basenlpadapter_evaluate_similarity", + "label": ".evaluate_similarity()", + "_callable": true, + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "code", + "norm_label": ".evaluate_similarity()", + "source_file": "src/adapters/base.py", + "source_location": "L18" + }, + { + "id": "src_adapters_base_basenlpadapter_is_available", + "label": ".is_available()", + "_callable": true, + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "code", + "norm_label": ".is_available()", + "source_file": "src/adapters/base.py", + "source_location": "L14" + }, + { + "id": "src_adapters_llm_llmfallbackadapter_disambiguate", + "label": ".disambiguate()", + "_callable": true, + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "code", + "norm_label": ".disambiguate()", + "source_file": "src/adapters/llm.py", + "source_location": "L28" + }, + { + "id": "src_adapters_llm_llmfallbackadapter_evaluate_similarity", + "label": ".evaluate_similarity()", + "_callable": true, + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "code", + "norm_label": ".evaluate_similarity()", + "source_file": "src/adapters/llm.py", + "source_location": "L25" + }, + { + "id": "src_adapters_llm_llmfallbackadapter_init", + "label": ".__init__()", + "_callable": true, + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "code", + "norm_label": ".__init__()", + "source_file": "src/adapters/llm.py", + "source_location": "L18" + }, + { + "id": "src_adapters_llm_llmfallbackadapter_is_available", + "label": ".is_available()", + "_callable": true, + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "code", + "norm_label": ".is_available()", + "source_file": "src/adapters/llm.py", + "source_location": "L22" + }, + { + "id": "tests_test_models_test_classification_result_serialization", + "label": "test_classification_result_serialization()", + "_callable": true, + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "code", + "norm_label": "test_classification_result_serialization()", + "source_file": "tests/test_models.py", + "source_location": "L70" + }, + { + "id": "tests_test_adversarial_test_adversarial_apple_fruit_recipe", + "label": "test_adversarial_apple_fruit_recipe()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "test_adversarial_apple_fruit_recipe()", + "source_file": "tests/test_adversarial.py", + "source_location": "L44" + }, + { + "id": "tests_test_adversarial_test_adversarial_related_entity_without_scope_context", + "label": "test_adversarial_related_entity_without_scope_context()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "test_adversarial_related_entity_without_scope_context()", + "source_file": "tests/test_adversarial.py", + "source_location": "L68" + }, + { + "id": "tests_test_adversarial_test_adversarial_sao_paulo_city_vs_fc", + "label": "test_adversarial_sao_paulo_city_vs_fc()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "test_adversarial_sao_paulo_city_vs_fc()", + "source_file": "tests/test_adversarial.py", + "source_location": "L14" + }, + { + "id": "tests_test_adversarial_test_adversarial_subprocess_cli_corrupted_json", + "label": "test_adversarial_subprocess_cli_corrupted_json()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "test_adversarial_subprocess_cli_corrupted_json()", + "source_file": "tests/test_adversarial.py", + "source_location": "L220" + }, + { + "id": "tests_test_adversarial_test_adversarial_subprocess_cli_empty_content", + "label": "test_adversarial_subprocess_cli_empty_content()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "test_adversarial_subprocess_cli_empty_content()", + "source_file": "tests/test_adversarial.py", + "source_location": "L148" + }, + { + "id": "tests_test_adversarial_test_adversarial_subprocess_cli_missing_required_field", + "label": "test_adversarial_subprocess_cli_missing_required_field()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "test_adversarial_subprocess_cli_missing_required_field()", + "source_file": "tests/test_adversarial.py", + "source_location": "L185" + }, + { + "id": "tests_test_adversarial_test_adversarial_subprocess_cli_success_stdout", + "label": "test_adversarial_subprocess_cli_success_stdout()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "test_adversarial_subprocess_cli_success_stdout()", + "source_file": "tests/test_adversarial.py", + "source_location": "L104" + }, + { + "id": "tests_test_classifier_petrobras_ecp", + "label": "petrobras_ecp()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "petrobras_ecp()", + "source_file": "tests/test_classifier.py", + "source_location": "L10" + }, + { + "id": "tests_test_classifier_test_contextual_inherent", + "label": "test_contextual_inherent()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "test_contextual_inherent()", + "source_file": "tests/test_classifier.py", + "source_location": "L49" + }, + { + "id": "tests_test_classifier_test_direct_inherent", + "label": "test_direct_inherent()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "test_direct_inherent()", + "source_file": "tests/test_classifier.py", + "source_location": "L33" + }, + { + "id": "tests_test_classifier_test_negative_anchor_suppression", + "label": "test_negative_anchor_suppression()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "test_negative_anchor_suppression()", + "source_file": "tests/test_classifier.py", + "source_location": "L91" + }, + { + "id": "tests_test_classifier_test_not_related", + "label": "test_not_related()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "test_not_related()", + "source_file": "tests/test_classifier.py", + "source_location": "L78" + }, + { + "id": "tests_test_classifier_test_tangential_inherent", + "label": "test_tangential_inherent()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "test_tangential_inherent()", + "source_file": "tests/test_classifier.py", + "source_location": "L64" + }, + { + "id": "src_classifier_count_phrase_occurrences", + "label": "count_phrase_occurrences()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "count_phrase_occurrences()", + "source_file": "src/classifier.py", + "source_location": "L30" + }, + { + "id": "src_classifier_inherenceclassifier_classify", + "label": ".classify()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": ".classify()", + "source_file": "src/classifier.py", + "source_location": "L60" + }, + { + "id": "src_classifier_match_phrase_in_text", + "label": "match_phrase_in_text()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "match_phrase_in_text()", + "source_file": "src/classifier.py", + "source_location": "L17" + }, + { + "id": "src_language_detect_language", + "label": "detect_language()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "detect_language()", + "source_file": "src/language.py", + "source_location": "L477" + }, + { + "id": "src_language_extract_words", + "label": "extract_words()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "extract_words()", + "source_file": "src/language.py", + "source_location": "L472" + }, + { + "id": "src_language_normalize_text", + "label": "normalize_text()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "normalize_text()", + "source_file": "src/language.py", + "source_location": "L462" + }, + { + "id": "src_parser_extract_evidence_snippets", + "label": "extract_evidence_snippets()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "extract_evidence_snippets()", + "source_file": "src/parser.py", + "source_location": "L50" + }, + { + "id": "src_parser_extract_sentences", + "label": "extract_sentences()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "extract_sentences()", + "source_file": "src/parser.py", + "source_location": "L42" + }, + { + "id": "src_parser_strip_markdown", + "label": "strip_markdown()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "strip_markdown()", + "source_file": "src/parser.py", + "source_location": "L8" + }, + { + "id": "tests_test_language_test_detect_english", + "label": "test_detect_english()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "test_detect_english()", + "source_file": "tests/test_language.py", + "source_location": "L21" + }, + { + "id": "tests_test_language_test_detect_french", + "label": "test_detect_french()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "test_detect_french()", + "source_file": "tests/test_language.py", + "source_location": "L51" + }, + { + "id": "tests_test_language_test_detect_german", + "label": "test_detect_german()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "test_detect_german()", + "source_file": "tests/test_language.py", + "source_location": "L37" + }, + { + "id": "tests_test_language_test_detect_italian", + "label": "test_detect_italian()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "test_detect_italian()", + "source_file": "tests/test_language.py", + "source_location": "L44" + }, + { + "id": "tests_test_language_test_detect_portuguese", + "label": "test_detect_portuguese()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "test_detect_portuguese()", + "source_file": "tests/test_language.py", + "source_location": "L14" + }, + { + "id": "tests_test_language_test_detect_spanish", + "label": "test_detect_spanish()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "test_detect_spanish()", + "source_file": "tests/test_language.py", + "source_location": "L28" + }, + { + "id": "tests_test_language_test_empty_language", + "label": "test_empty_language()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "test_empty_language()", + "source_file": "tests/test_language.py", + "source_location": "L58" + }, + { + "id": "tests_test_language_test_normalize_text", + "label": "test_normalize_text()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "test_normalize_text()", + "source_file": "tests/test_language.py", + "source_location": "L6" + }, + { + "id": "tests_test_models_test_extract_evidence_snippets", + "label": "test_extract_evidence_snippets()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "test_extract_evidence_snippets()", + "source_file": "tests/test_models.py", + "source_location": "L110" + }, + { + "id": "tests_test_models_test_parser_strip_markdown", + "label": "test_parser_strip_markdown()", + "_callable": true, + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "test_parser_strip_markdown()", + "source_file": "tests/test_models.py", + "source_location": "L100" + }, + { + "id": "classify_main", + "label": "main()", + "_callable": true, + "_origin": "ast", + "community": 48, + "community_name": "main", + "file_type": "code", + "norm_label": "main()", + "source_file": "classify.py", + "source_location": "L97" + }, + { + "id": "classify_parse_args", + "label": "parse_args()", + "_callable": true, + "_origin": "ast", + "community": 48, + "community_name": "main", + "file_type": "code", + "norm_label": "parse_args()", + "source_file": "classify.py", + "source_location": "L27" + }, + { + "id": "tests_test_cli_test_cli_empty_content_file", + "label": "test_cli_empty_content_file()", + "_callable": true, + "_origin": "ast", + "community": 48, + "community_name": "main", + "file_type": "code", + "norm_label": "test_cli_empty_content_file()", + "source_file": "tests/test_cli.py", + "source_location": "L85" + }, + { + "id": "tests_test_cli_test_cli_missing_ecp_file", + "label": "test_cli_missing_ecp_file()", + "_callable": true, + "_origin": "ast", + "community": 48, + "community_name": "main", + "file_type": "code", + "norm_label": "test_cli_missing_ecp_file()", + "source_file": "tests/test_cli.py", + "source_location": "L73" + }, + { + "id": "tests_test_cli_test_cli_missing_required_ecp_field", + "label": "test_cli_missing_required_ecp_field()", + "_callable": true, + "_origin": "ast", + "community": 48, + "community_name": "main", + "file_type": "code", + "norm_label": "test_cli_missing_required_ecp_field()", + "source_file": "tests/test_cli.py", + "source_location": "L111" + }, + { + "id": "tests_test_cli_test_cli_output_file", + "label": "test_cli_output_file()", + "_callable": true, + "_origin": "ast", + "community": 48, + "community_name": "main", + "file_type": "code", + "norm_label": "test_cli_output_file()", + "source_file": "tests/test_cli.py", + "source_location": "L39" + }, + { + "id": "tests_test_cli_test_cli_success_stdout", + "label": "test_cli_success_stdout()", + "_callable": true, + "_origin": "ast", + "community": 48, + "community_name": "main", + "file_type": "code", + "norm_label": "test_cli_success_stdout()", + "source_file": "tests/test_cli.py", + "source_location": "L8" + }, + { + "id": "scripts_extract_article_contents_articlecrawler_close", + "label": ".close()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": ".close()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L496" + }, + { + "id": "scripts_extract_article_contents_articlecrawler_crawl", + "label": ".crawl()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": ".crawl()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L511" + }, + { + "id": "scripts_extract_article_contents_articlecrawler_enter", + "label": ".__enter__()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": ".__enter__()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L504" + }, + { + "id": "scripts_extract_article_contents_articlecrawler_exit", + "label": ".__exit__()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": ".__exit__()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L508" + }, + { + "id": "scripts_extract_article_contents_articlecrawler_init", + "label": ".__init__()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": ".__init__()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L485" + }, + { + "id": "scripts_extract_article_contents_articlecrawler_start", + "label": ".start()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": ".start()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L490" + }, + { + "id": "scripts_extract_article_contents_extract_all_engines", + "label": "extract_all_engines()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "extract_all_engines()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L427" + }, + { + "id": "scripts_extract_article_contents_extractedarticle_to_dict", + "label": ".to_dict()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": ".to_dict()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L187" + }, + { + "id": "scripts_extract_article_contents_extractionbatchreport_to_dict", + "label": ".to_dict()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": ".to_dict()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L212" + }, + { + "id": "scripts_extract_article_contents_inputarticle_to_dict", + "label": ".to_dict()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": ".to_dict()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L43" + }, + { + "id": "scripts_extract_article_contents_load_search_json", + "label": "load_search_json()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "load_search_json()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L540" + }, + { + "id": "scripts_extract_article_contents_log_info", + "label": "log_info()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "log_info()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L533" + }, + { + "id": "scripts_extract_article_contents_main", + "label": "main()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "main()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L742" + }, + { + "id": "scripts_extract_article_contents_newspaperdata_to_dict", + "label": ".to_dict()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": ".to_dict()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L126" + }, + { + "id": "scripts_extract_article_contents_newspaperextractor_extract", + "label": ".extract()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": ".extract()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L336" + }, + { + "id": "scripts_extract_article_contents_parse_arguments", + "label": "parse_arguments()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "parse_arguments()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L688" + }, + { + "id": "scripts_extract_article_contents_process_batch", + "label": "process_batch()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "process_batch()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L575" + }, + { + "id": "scripts_extract_article_contents_readabilitydata_to_dict", + "label": ".to_dict()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": ".to_dict()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L162" + }, + { + "id": "scripts_extract_article_contents_readabilityextractor_extract", + "label": ".extract()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": ".extract()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L399" + }, + { + "id": "scripts_extract_article_contents_save_extracted_json", + "label": "save_extracted_json()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "save_extracted_json()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L568" + }, + { + "id": "scripts_extract_article_contents_trafilaturadata_to_dict", + "label": ".to_dict()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": ".to_dict()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L77" + }, + { + "id": "scripts_extract_article_contents_trafilaturaextractor_extract", + "label": ".extract()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": ".extract()", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L232" + }, + { + "id": "tests_test_extract_article_contents_sample_input_json", + "label": "sample_input_json()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "sample_input_json()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L61" + }, + { + "id": "tests_test_extract_article_contents_test_cli_main_missing_input_file", + "label": "test_cli_main_missing_input_file()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_cli_main_missing_input_file()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L305" + }, + { + "id": "tests_test_extract_article_contents_test_cli_main_success", + "label": "test_cli_main_success()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_cli_main_success()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L291" + }, + { + "id": "tests_test_extract_article_contents_test_crawler_error_isolation", + "label": "test_crawler_error_isolation()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_crawler_error_isolation()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L242" + }, + { + "id": "tests_test_extract_article_contents_test_e2e_cli_live_execution", + "label": "test_e2e_cli_live_execution()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_e2e_cli_live_execution()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L360" + }, + { + "id": "tests_test_extract_article_contents_test_e2e_live_article_extraction", + "label": "test_e2e_live_article_extraction()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_e2e_live_article_extraction()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L316" + }, + { + "id": "tests_test_extract_article_contents_test_extract_all_engines", + "label": "test_extract_all_engines()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_extract_all_engines()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L215" + }, + { + "id": "tests_test_extract_article_contents_test_extractor_error_isolation_on_faulty_engine", + "label": "test_extractor_error_isolation_on_faulty_engine()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_extractor_error_isolation_on_faulty_engine()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L229" + }, + { + "id": "tests_test_extract_article_contents_test_input_article_creation", + "label": "test_input_article_creation()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_input_article_creation()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L94" + }, + { + "id": "tests_test_extract_article_contents_test_load_search_json_invalid_file", + "label": "test_load_search_json_invalid_file()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_load_search_json_invalid_file()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L118" + }, + { + "id": "tests_test_extract_article_contents_test_load_search_json_valid", + "label": "test_load_search_json_valid()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_load_search_json_valid()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L110" + }, + { + "id": "tests_test_extract_article_contents_test_newspaper_extractor", + "label": "test_newspaper_extractor()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_newspaper_extractor()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L195" + }, + { + "id": "tests_test_extract_article_contents_test_process_batch_with_limit", + "label": "test_process_batch_with_limit()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_process_batch_with_limit()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L271" + }, + { + "id": "tests_test_extract_article_contents_test_readability_extractor", + "label": "test_readability_extractor()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_readability_extractor()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L205" + }, + { + "id": "tests_test_extract_article_contents_test_save_extracted_json", + "label": "test_save_extracted_json()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_save_extracted_json()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L124" + }, + { + "id": "tests_test_extract_article_contents_test_trafilatura_extractor", + "label": "test_trafilatura_extractor()", + "_callable": true, + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_trafilatura_extractor()", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L186" + }, + { + "id": "scripts_extract_google_news_extract_google_news", + "label": "extract_google_news()", + "_callable": true, + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "code", + "norm_label": "extract_google_news()", + "source_file": "scripts/extract_google_news.py", + "source_location": "L297" + }, + { + "id": "scripts_extract_google_news_fetch_rss_content", + "label": "_fetch_rss_content()", + "_callable": true, + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "code", + "norm_label": "_fetch_rss_content()", + "source_file": "scripts/extract_google_news.py", + "source_location": "L253" + }, + { + "id": "scripts_extract_google_news_get_hl_gl_ceid", + "label": "get_hl_gl_ceid()", + "_callable": true, + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "code", + "norm_label": "get_hl_gl_ceid()", + "source_file": "scripts/extract_google_news.py", + "source_location": "L107" + }, + { + "id": "scripts_extract_google_news_normalize_text_for_comparison", + "label": "_normalize_text_for_comparison()", + "_callable": true, + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "code", + "norm_label": "_normalize_text_for_comparison()", + "source_file": "scripts/extract_google_news.py", + "source_location": "L151" + }, + { + "id": "scripts_extract_google_news_parse_google_news_rss", + "label": "parse_google_news_rss()", + "_callable": true, + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "code", + "norm_label": "parse_google_news_rss()", + "source_file": "scripts/extract_google_news.py", + "source_location": "L156" + }, + { + "id": "scripts_extract_google_news_resolve_articles_urls", + "label": "resolve_articles_urls()", + "_callable": true, + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "code", + "norm_label": "resolve_articles_urls()", + "source_file": "scripts/extract_google_news.py", + "source_location": "L220" + }, + { + "id": "tests_test_extract_google_news_test_parse_google_news_rss_with_fixture", + "label": "test_parse_google_news_rss_with_fixture()", + "_callable": true, + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "code", + "norm_label": "test_parse_google_news_rss_with_fixture()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L111" + }, + { + "id": "tests_test_extract_google_news_test_resolve_articles_urls_batch", + "label": "test_resolve_articles_urls_batch()", + "_callable": true, + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "code", + "norm_label": "test_resolve_articles_urls_batch()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L161" + }, + { + "id": "scripts_extract_google_news_extractionresult_to_dict", + "label": ".to_dict()", + "_callable": true, + "_origin": "ast", + "community": 83, + "community_name": "ExtractionResult", + "file_type": "code", + "norm_label": ".to_dict()", + "source_file": "scripts/extract_google_news.py", + "source_location": "L95" + }, + { + "id": "scripts_extract_google_news_newsarticle_to_dict", + "label": ".to_dict()", + "_callable": true, + "_origin": "ast", + "community": 83, + "community_name": "ExtractionResult", + "file_type": "code", + "norm_label": ".to_dict()", + "source_file": "scripts/extract_google_news.py", + "source_location": "L73" + }, + { + "id": "tests_test_extract_google_news_test_e2e_extract_google_news_live_pipeline", + "label": "test_e2e_extract_google_news_live_pipeline()", + "_callable": true, + "_origin": "ast", + "community": 83, + "community_name": "ExtractionResult", + "file_type": "code", + "norm_label": "test_e2e_extract_google_news_live_pipeline()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L302" + }, + { + "id": "scripts_extract_google_news_resolve_article_url", + "label": "resolve_article_url()", + "_callable": true, + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "code", + "norm_label": "resolve_article_url()", + "source_file": "scripts/extract_google_news.py", + "source_location": "L207" + }, + { + "id": "tests_test_extract_google_news_test_e2e_resolve_real_google_news_url", + "label": "test_e2e_resolve_real_google_news_url()", + "_callable": true, + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "code", + "norm_label": "test_e2e_resolve_real_google_news_url()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L281" + }, + { + "id": "tests_test_extract_google_news_test_get_hl_gl_ceid_default_mappings", + "label": "test_get_hl_gl_ceid_default_mappings()", + "_callable": true, + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "code", + "norm_label": "test_get_hl_gl_ceid_default_mappings()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L37" + }, + { + "id": "tests_test_extract_google_news_test_get_hl_gl_ceid_dynamic_fallback", + "label": "test_get_hl_gl_ceid_dynamic_fallback()", + "_callable": true, + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "code", + "norm_label": "test_get_hl_gl_ceid_dynamic_fallback()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L78" + }, + { + "id": "tests_test_extract_google_news_test_get_hl_gl_ceid_with_custom_locale", + "label": "test_get_hl_gl_ceid_with_custom_locale()", + "_callable": true, + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "code", + "norm_label": "test_get_hl_gl_ceid_with_custom_locale()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L60" + }, + { + "id": "tests_test_extract_google_news_test_resolve_article_url_fallback", + "label": "test_resolve_article_url_fallback()", + "_callable": true, + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "code", + "norm_label": "test_resolve_article_url_fallback()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L138" + }, + { + "id": "tests_test_extract_google_news_test_resolve_article_url_success", + "label": "test_resolve_article_url_success()", + "_callable": true, + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "code", + "norm_label": "test_resolve_article_url_success()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L148" + }, + { + "id": "scripts_extract_google_news_searchquery_clean_keyword", + "label": ".clean_keyword()", + "_callable": true, + "_origin": "ast", + "community": 90, + "community_name": "SearchQuery", + "file_type": "code", + "norm_label": ".clean_keyword()", + "source_file": "scripts/extract_google_news.py", + "source_location": "L51" + }, + { + "id": "scripts_extract_google_news_searchquery_clean_language", + "label": ".clean_language()", + "_callable": true, + "_origin": "ast", + "community": 90, + "community_name": "SearchQuery", + "file_type": "code", + "norm_label": ".clean_language()", + "source_file": "scripts/extract_google_news.py", + "source_location": "L55" + }, + { + "id": "scripts_extract_google_news_searchquery_clean_locale", + "label": ".clean_locale()", + "_callable": true, + "_origin": "ast", + "community": 90, + "community_name": "SearchQuery", + "file_type": "code", + "norm_label": ".clean_locale()", + "source_file": "scripts/extract_google_news.py", + "source_location": "L59" + }, + { + "id": "scripts_extract_google_news_searchquery_post_init", + "label": ".__post_init__()", + "_callable": true, + "_origin": "ast", + "community": 90, + "community_name": "SearchQuery", + "file_type": "code", + "norm_label": ".__post_init__()", + "source_file": "scripts/extract_google_news.py", + "source_location": "L40" + }, + { + "id": "tests_test_extract_google_news_test_extract_google_news_orchestration_mocked", + "label": "test_extract_google_news_orchestration_mocked()", + "_callable": true, + "_origin": "ast", + "community": 90, + "community_name": "SearchQuery", + "file_type": "code", + "norm_label": "test_extract_google_news_orchestration_mocked()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L186" + }, + { + "id": "tests_test_extract_google_news_test_search_query_validation", + "label": "test_search_query_validation()", + "_callable": true, + "_origin": "ast", + "community": 90, + "community_name": "SearchQuery", + "file_type": "code", + "norm_label": "test_search_query_validation()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L86" + }, + { + "id": "tests_test_extract_google_news_sample_rss_xml", + "label": "sample_rss_xml()", + "_callable": true, + "_origin": "ast", + "community": 99, + "community_name": "sample_rss_xml", + "file_type": "code", + "norm_label": "sample_rss_xml()", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L32" + }, + { + "id": "specify_templates_tasks_template", + "label": "tasks-template.md", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "frontmatter": { + "description": "Task list template for feature implementation" + }, + "node_kind": "page", + "norm_label": "tasks-template.md", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L1" + }, + { + "id": "specify_templates_tasks_template_dependencies_execution_order", + "label": "Dependencies & Execution Order", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "dependencies & execution order", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L163" + }, + { + "id": "specify_templates_tasks_template_format_id_p_story_description", + "label": "Format: `[ID] [P?] [Story] Description`", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "format: `[id] [p?] [story] description`", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L16" + }, + { + "id": "specify_templates_tasks_template_implementation_for_user_story_1", + "label": "Implementation for User Story 1", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation for user story 1", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L90" + }, + { + "id": "specify_templates_tasks_template_implementation_for_user_story_2", + "label": "Implementation for User Story 2", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation for user story 2", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L114" + }, + { + "id": "specify_templates_tasks_template_implementation_for_user_story_3", + "label": "Implementation for User Story 3", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation for user story 3", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L136" + }, + { + "id": "specify_templates_tasks_template_implementation_strategy", + "label": "Implementation Strategy", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation strategy", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L213" + }, + { + "id": "specify_templates_tasks_template_incremental_delivery", + "label": "Incremental Delivery", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "incremental delivery", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L223" + }, + { + "id": "specify_templates_tasks_template_mvp_first_user_story_1_only", + "label": "MVP First (User Story 1 Only)", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "mvp first (user story 1 only)", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L215" + }, + { + "id": "specify_templates_tasks_template_notes", + "label": "Notes", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "notes", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L244" + }, + { + "id": "specify_templates_tasks_template_parallel_example_user_story_1", + "label": "Parallel Example: User Story 1", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "parallel example: user story 1", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L199" + }, + { + "id": "specify_templates_tasks_template_parallel_opportunities", + "label": "Parallel Opportunities", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "parallel opportunities", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L188" + }, + { + "id": "specify_templates_tasks_template_parallel_team_strategy", + "label": "Parallel Team Strategy", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "parallel team strategy", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L231" + }, + { + "id": "specify_templates_tasks_template_path_conventions", + "label": "Path Conventions", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "path conventions", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L22" + }, + { + "id": "specify_templates_tasks_template_phase_1_setup_shared_infrastructure", + "label": "Phase 1: Setup (Shared Infrastructure)", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 1: setup (shared infrastructure)", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L48" + }, + { + "id": "specify_templates_tasks_template_phase_2_foundational_blocking_prerequisites", + "label": "Phase 2: Foundational (Blocking Prerequisites)", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 2: foundational (blocking prerequisites)", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L58" + }, + { + "id": "specify_templates_tasks_template_phase_3_user_story_1_title_priority_p1_mvp", + "label": "Phase 3: User Story 1 - [Title] (Priority: P1) \ud83c\udfaf MVP", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 3: user story 1 - [title] (priority: p1) \ud83c\udfaf mvp", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L77" + }, + { + "id": "specify_templates_tasks_template_phase_4_user_story_2_title_priority_p2", + "label": "Phase 4: User Story 2 - [Title] (Priority: P2)", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 4: user story 2 - [title] (priority: p2)", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L103" + }, + { + "id": "specify_templates_tasks_template_phase_5_user_story_3_title_priority_p3", + "label": "Phase 5: User Story 3 - [Title] (Priority: P3)", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 5: user story 3 - [title] (priority: p3)", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L125" + }, + { + "id": "specify_templates_tasks_template_phase_dependencies", + "label": "Phase Dependencies", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase dependencies", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L165" + }, + { + "id": "specify_templates_tasks_template_phase_n_polish_cross_cutting_concerns", + "label": "Phase N: Polish & Cross-Cutting Concerns", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase n: polish & cross-cutting concerns", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L150" + }, + { + "id": "specify_templates_tasks_template_tasks_feature_name", + "label": "Tasks: [FEATURE NAME]", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "tasks: [feature name]", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L6" + }, + { + "id": "specify_templates_tasks_template_tests_for_user_story_1_optional_only_if_tests_requested", + "label": "Tests for User Story 1 (OPTIONAL - only if tests requested) \u26a0\ufe0f", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "tests for user story 1 (optional - only if tests requested) \u26a0\ufe0f", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L83" + }, + { + "id": "specify_templates_tasks_template_tests_for_user_story_2_optional_only_if_tests_requested", + "label": "Tests for User Story 2 (OPTIONAL - only if tests requested) \u26a0\ufe0f", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "tests for user story 2 (optional - only if tests requested) \u26a0\ufe0f", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L109" + }, + { + "id": "specify_templates_tasks_template_tests_for_user_story_3_optional_only_if_tests_requested", + "label": "Tests for User Story 3 (OPTIONAL - only if tests requested) \u26a0\ufe0f", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "tests for user story 3 (optional - only if tests requested) \u26a0\ufe0f", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L131" + }, + { + "id": "specify_templates_tasks_template_user_story_dependencies", + "label": "User Story Dependencies", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user story dependencies", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L174" + }, + { + "id": "specify_templates_tasks_template_within_each_user_story", + "label": "Within Each User Story", + "_origin": "ast", + "community": 0, + "community_name": "Task Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "within each user story", + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L180" + }, + { + "id": "agents_skills_speckit_converge_skill", + "label": "speckit-converge/SKILL.md", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "frontmatter": { + "name": "speckit-converge", + "description": "Assess the current codebase against the feature's spec, plan, and tasks, then append any remaining unbuilt work as new tasks to tasks.md so implement can complete it.", + "compatibility": "Requires spec-kit project structure with .specify/ directory" + }, + "node_kind": "page", + "norm_label": "speckit-converge/skill.md", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_speckit_converge_skill_1_initialize_convergence_context", + "label": "1. Initialize Convergence Context", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. initialize convergence context", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L95" + }, + { + "id": "agents_skills_speckit_converge_skill_2_load_artifacts_progressive_disclosure", + "label": "2. Load Artifacts (Progressive Disclosure)", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. load artifacts (progressive disclosure)", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L108" + }, + { + "id": "agents_skills_speckit_converge_skill_3_build_the_intent_inventory", + "label": "3. Build the Intent Inventory", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. build the intent inventory", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L136" + }, + { + "id": "agents_skills_speckit_converge_skill_4_assess_the_codebase_and_classify_findings", + "label": "4. Assess the Codebase and Classify Findings", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. assess the codebase and classify findings", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L148" + }, + { + "id": "agents_skills_speckit_converge_skill_5_assign_severity", + "label": "5. Assign Severity", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5. assign severity", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L171" + }, + { + "id": "agents_skills_speckit_converge_skill_6_present_the_in_session_findings_summary", + "label": "6. Present the In-Session Findings Summary", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6. present the in-session findings summary", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L181" + }, + { + "id": "agents_skills_speckit_converge_skill_7_append_convergence_tasks_or_report_converged", + "label": "7. Append Convergence Tasks (or report converged)", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "7. append convergence tasks (or report converged)", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L199" + }, + { + "id": "agents_skills_speckit_converge_skill_8_provide_next_actions_handoff", + "label": "8. Provide Next Actions (Handoff)", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "8. provide next actions (handoff)", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L231" + }, + { + "id": "agents_skills_speckit_converge_skill_9_check_for_extension_hooks", + "label": "9. Check for extension hooks", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "9. check for extension hooks", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L239" + }, + { + "id": "agents_skills_speckit_converge_skill_convergence_findings", + "label": "Convergence Findings", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "convergence findings", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L185" + }, + { + "id": "agents_skills_speckit_converge_skill_execution_steps", + "label": "Execution Steps", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "execution steps", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L93" + }, + { + "id": "agents_skills_speckit_converge_skill_goal", + "label": "Goal", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "goal", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L60" + }, + { + "id": "agents_skills_speckit_converge_skill_operating_constraints", + "label": "Operating Constraints", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "operating constraints", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L74" + }, + { + "id": "agents_skills_speckit_converge_skill_pre_execution_checks", + "label": "Pre-Execution Checks", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "pre-execution checks", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L19" + }, + { + "id": "agents_skills_speckit_converge_skill_user_input", + "label": "User Input", + "_origin": "ast", + "community": 1, + "community_name": "Convergence Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user input", + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L11" + }, + { + "id": "agents_skills_speckit_tasks_skill", + "label": "speckit-tasks/SKILL.md", + "_origin": "ast", + "community": 10, + "community_name": "Task Generation", + "file_type": "document", + "frontmatter": { + "name": "speckit-tasks", + "description": "Generate an actionable, dependency-ordered tasks.md for the feature based on available design artifacts.", + "compatibility": "Requires spec-kit project structure with .specify/ directory" + }, + "node_kind": "page", + "norm_label": "speckit-tasks/skill.md", + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_speckit_tasks_skill_checklist_format_required", + "label": "Checklist Format (REQUIRED)", + "_origin": "ast", + "community": 10, + "community_name": "Task Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "checklist format (required)", + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L144" + }, + { + "id": "agents_skills_speckit_tasks_skill_completion_report", + "label": "Completion Report", + "_origin": "ast", + "community": 10, + "community_name": "Task Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "completion report", + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L124" + }, + { + "id": "agents_skills_speckit_tasks_skill_done_when", + "label": "Done When", + "_origin": "ast", + "community": 10, + "community_name": "Task Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "done when", + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L210" + }, + { + "id": "agents_skills_speckit_tasks_skill_mandatory_post_execution_hooks", + "label": "Mandatory Post-Execution Hooks", + "_origin": "ast", + "community": 10, + "community_name": "Task Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "mandatory post-execution hooks", + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L89" + }, + { + "id": "agents_skills_speckit_tasks_skill_outline", + "label": "Outline", + "_origin": "ast", + "community": 10, + "community_name": "Task Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "outline", + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L55" + }, + { + "id": "agents_skills_speckit_tasks_skill_phase_structure", + "label": "Phase Structure", + "_origin": "ast", + "community": 10, + "community_name": "Task Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase structure", + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L201" + }, + { + "id": "agents_skills_speckit_tasks_skill_pre_execution_checks", + "label": "Pre-Execution Checks", + "_origin": "ast", + "community": 10, + "community_name": "Task Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "pre-execution checks", + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L19" + }, + { + "id": "agents_skills_speckit_tasks_skill_task_generation_rules", + "label": "Task Generation Rules", + "_origin": "ast", + "community": 10, + "community_name": "Task Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "task generation rules", + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L138" + }, + { + "id": "agents_skills_speckit_tasks_skill_task_organization", + "label": "Task Organization", + "_origin": "ast", + "community": 10, + "community_name": "Task Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "task organization", + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L176" + }, + { + "id": "agents_skills_speckit_tasks_skill_user_input", + "label": "User Input", + "_origin": "ast", + "community": 10, + "community_name": "Task Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user input", + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L11" + }, + { + "id": "classify", + "label": "classify.py", + "_origin": "ast", + "community": 100, + "community_name": "models.py", + "file_type": "code", + "norm_label": "classify.py", + "source_file": "classify.py", + "source_location": "L1" + }, + { + "id": "src_models", + "label": "models.py", + "_origin": "ast", + "community": 100, + "community_name": "models.py", + "file_type": "code", + "norm_label": "models.py", + "source_file": "src/models.py", + "source_location": "L1" + }, + { + "id": "src_models_py_enum", + "label": "Enum", + "_origin": "ast", + "community": 100, + "community_name": "models.py", + "file_type": "code", + "norm_label": "enum", + "source_file": "", + "source_location": "" + }, + { + "id": "src_models_py_str", + "label": "str", + "_origin": "ast", + "community": 100, + "community_name": "models.py", + "file_type": "code", + "norm_label": "str", + "source_file": "", + "source_location": "" + }, + { + "id": "src_models_rationale_1", + "label": "Data models and validation schemas for Multilingual NLP Entity Inherence\u2026", + "_origin": "ast", + "community": 100, + "community_name": "models.py", + "file_type": "rationale", + "norm_label": "data models and validation schemas for multilingual nlp entity inherence...", + "source_file": "src/models.py", + "source_location": "L1" + }, + { + "id": "parametrize", + "label": "parametrize", + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "code", + "norm_label": "parametrize", + "source_file": "", + "source_location": "" + }, + { + "id": "src_models_py_any", + "label": "Any", + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "code", + "norm_label": "any", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_benchmark_24", + "label": "test_benchmark_24.py", + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "code", + "norm_label": "test_benchmark_24.py", + "source_file": "tests/test_benchmark_24.py", + "source_location": "L1" + }, + { + "id": "tests_test_benchmark_24_py_fixture", + "label": "fixture", + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "code", + "norm_label": "fixture", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_models", + "label": "test_models.py", + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "code", + "norm_label": "test_models.py", + "source_file": "tests/test_models.py", + "source_location": "L1" + }, + { + "id": "tests_test_benchmark_24_rationale_1", + "label": "Controlled 24-case benchmark suite for Multilingual NLP Entity Inherence\u2026", + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "rationale", + "norm_label": "controlled 24-case benchmark suite for multilingual nlp entity inherence...", + "source_file": "tests/test_benchmark_24.py", + "source_location": "L1" + }, + { + "id": "tests_test_models_rationale_1", + "label": "Unit tests for ECP models, schema validation, and structured error handling.", + "_origin": "ast", + "community": 101, + "community_name": "ECPSnapshot", + "file_type": "rationale", + "norm_label": "unit tests for ecp models, schema validation, and structured error handling.", + "source_file": "tests/test_models.py", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_spec_assumptions", + "label": "Assumptions", + "_origin": "ast", + "community": 102, + "community_name": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "assumptions", + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L127" + }, + { + "id": "specs_001_multilingual_entity_classifier_spec_assumptions_scope", + "label": "Assumptions & Scope", + "_origin": "ast", + "community": 102, + "community_name": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "assumptions & scope", + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L125" + }, + { + "id": "specs_001_multilingual_entity_classifier_spec_clarifications", + "label": "Clarifications", + "_origin": "ast", + "community": 102, + "community_name": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "clarifications", + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L13" + }, + { + "id": "specs_001_multilingual_entity_classifier_spec_explicit_out_of_scope_poc", + "label": "Explicit Out of Scope (POC)", + "_origin": "ast", + "community": 102, + "community_name": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "explicit out of scope (poc)", + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L132" + }, + { + "id": "specs_001_multilingual_entity_classifier_spec_feature_specification_multilingual_nlp_entity_inherence_classifier_poc", + "label": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "_origin": "ast", + "community": 102, + "community_name": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "feature specification: multilingual nlp entity inherence classifier (poc)", + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_spec_functional_requirements", + "label": "Functional Requirements", + "_origin": "ast", + "community": 102, + "community_name": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "functional requirements", + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L61" + }, + { + "id": "specs_001_multilingual_entity_classifier_spec_key_entities_data_models_domain_entities", + "label": "Key Entities *(data models & domain entities)*", + "_origin": "ast", + "community": 102, + "community_name": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "key entities *(data models & domain entities)*", + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L105" + }, + { + "id": "specs_001_multilingual_entity_classifier_spec_measurable_outcomes", + "label": "Measurable Outcomes", + "_origin": "ast", + "community": 102, + "community_name": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "measurable outcomes", + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L116" + }, + { + "id": "specs_001_multilingual_entity_classifier_spec_requirements_mandatory", + "label": "Requirements *(mandatory)*", + "_origin": "ast", + "community": 102, + "community_name": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "requirements *(mandatory)*", + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L59" + }, + { + "id": "specs_001_multilingual_entity_classifier_spec_session_2026_08_19", + "label": "Session 2026-08-19", + "_origin": "ast", + "community": 102, + "community_name": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "session 2026-08-19", + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L15" + }, + { + "id": "specs_001_multilingual_entity_classifier_spec_success_criteria_mandatory", + "label": "Success Criteria *(mandatory)*", + "_origin": "ast", + "community": 102, + "community_name": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "success criteria *(mandatory)*", + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L114" + }, + { + "id": "specs_001_multilingual_entity_classifier_spec_user_scenarios_testing_mandatory", + "label": "User Scenarios & Testing *(mandatory)*", + "_origin": "ast", + "community": 102, + "community_name": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user scenarios & testing *(mandatory)*", + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L25" + }, + { + "id": "specs_001_multilingual_entity_classifier_spec_user_story_1_classify_content_inherence_via_cli_for_an_ecp_snapshot_priority_p1", + "label": "User Story 1 - Classify Content Inherence via CLI for an ECP Snapshot (Priority: P1)", + "_origin": "ast", + "community": 102, + "community_name": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user story 1 - classify content inherence via cli for an ecp snapshot (priority: p1)", + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L27" + }, + { + "id": "specs_001_multilingual_entity_classifier_spec_user_story_2_multilingual_language_support_edge_validation_priority_p2", + "label": "User Story 2 - Multilingual Language Support & Edge Validation (Priority: P2)", + "_origin": "ast", + "community": 102, + "community_name": "Feature Specification: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user story 2 - multilingual language support & edge validation (priority: p2)", + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L44" + }, + { + "id": "docs_prd_extrator_artigos_nlp", + "label": "prd_extrator_artigos_nlp.md", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "page", + "norm_label": "prd_extrator_artigos_nlp.md", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L1" + }, + { + "id": "docs_prd_extrator_artigos_nlp_1_1_objetivo_do_produto", + "label": "1.1 Objetivo do Produto", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1.1 objetivo do produto", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L13" + }, + { + "id": "docs_prd_extrator_artigos_nlp_1_vis\u00e3o_geral_e_contexto", + "label": "1. Vis\u00e3o Geral e Contexto", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. visao geral e contexto", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L11" + }, + { + "id": "docs_prd_extrator_artigos_nlp_2_personas_e_casos_de_uso", + "label": "2. Personas e Casos de Uso", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. personas e casos de uso", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L25" + }, + { + "id": "docs_prd_extrator_artigos_nlp_3_arquitetura_e_fluxo_do_sistema", + "label": "3. Arquitetura e Fluxo do Sistema", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. arquitetura e fluxo do sistema", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L35" + }, + { + "id": "docs_prd_extrator_artigos_nlp_4_requisitos_funcionais_fr", + "label": "4. Requisitos Funcionais (FR)", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. requisitos funcionais (fr)", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L58" + }, + { + "id": "docs_prd_extrator_artigos_nlp_5_requisitos_n\u00e3o_funcionais_nfr", + "label": "5. Requisitos N\u00e3o Funcionais (NFR)", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5. requisitos nao funcionais (nfr)", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L138" + }, + { + "id": "docs_prd_extrator_artigos_nlp_6_1_esquema_do_json_de_entrada_input", + "label": "6.1 Esquema do JSON de Entrada (`Input`)", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6.1 esquema do json de entrada (`input`)", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L152" + }, + { + "id": "docs_prd_extrator_artigos_nlp_6_2_esquema_do_json_consolidado_de_sa\u00edda_output", + "label": "6.2 Esquema do JSON Consolidado de Sa\u00edda (`Output`)", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6.2 esquema do json consolidado de saida (`output`)", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L173" + }, + { + "id": "docs_prd_extrator_artigos_nlp_6_esquema_de_dados_contratos_de_interface", + "label": "6. Esquema de Dados (Contratos de Interface)", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6. esquema de dados (contratos de interface)", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L150" + }, + { + "id": "docs_prd_extrator_artigos_nlp_7_depend\u00eancias_do_projeto", + "label": "7. Depend\u00eancias do Projeto", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "7. dependencias do projeto", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L230" + }, + { + "id": "docs_prd_extrator_artigos_nlp_8_crit\u00e9rios_de_aceite", + "label": "8. Crit\u00e9rios de Aceite", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "8. criterios de aceite", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L246" + }, + { + "id": "docs_prd_extrator_artigos_nlp_prd_extrator_e_parser_de_artigos_multimotor_foxcape_trafilatura_newspaper4k_readability", + "label": "PRD \u2014 Extrator e Parser de Artigos Multimotor (Foxcape + Trafilatura + Newspaper4k + Readability)", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "prd \u2014 extrator e parser de artigos multimotor (foxcape + trafilatura + newspaper4k + readability)", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L1" + }, + { + "id": "docs_prd_extrator_artigos_nlp_rf01_ingest\u00e3o_de_arquivo_json_de_not\u00edcias", + "label": "RF01 \u2014 Ingest\u00e3o de Arquivo JSON de Not\u00edcias", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "rf01 \u2014 ingestao de arquivo json de noticias", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L60" + }, + { + "id": "docs_prd_extrator_artigos_nlp_rf02_navega\u00e7\u00e3o_e_coleta_com_foxcape_obrigat\u00f3rio", + "label": "RF02 \u2014 Navega\u00e7\u00e3o e Coleta com Foxcape (Obrigat\u00f3rio)", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "rf02 \u2014 navegacao e coleta com foxcape (obrigatorio)", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L65" + }, + { + "id": "docs_prd_extrator_artigos_nlp_rf03_extra\u00e7\u00e3o_m\u00e1xima_com_trafilatura", + "label": "RF03 \u2014 Extra\u00e7\u00e3o M\u00e1xima com Trafilatura", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "rf03 \u2014 extracao maxima com trafilatura", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L71" + }, + { + "id": "docs_prd_extrator_artigos_nlp_rf04_extra\u00e7\u00e3o_m\u00e1xima_com_newspaper4k", + "label": "RF04 \u2014 Extra\u00e7\u00e3o M\u00e1xima com Newspaper4k", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "rf04 \u2014 extracao maxima com newspaper4k", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L84" + }, + { + "id": "docs_prd_extrator_artigos_nlp_rf05_extra\u00e7\u00e3o_com_readability_readability_lxml", + "label": "RF05 \u2014 Extra\u00e7\u00e3o com Readability (`readability-lxml`)", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "rf05 \u2014 extracao com readability (`readability-lxml`)", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L96" + }, + { + "id": "docs_prd_extrator_artigos_nlp_rf06_consolida\u00e7\u00e3o_e_exporta\u00e7\u00e3o_de_resultados", + "label": "RF06 \u2014 Consolida\u00e7\u00e3o e Exporta\u00e7\u00e3o de Resultados", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "rf06 \u2014 consolidacao e exportacao de resultados", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L103" + }, + { + "id": "docs_prd_extrator_artigos_nlp_rf07_interface_de_linha_de_comando_cli_e_logs_em_tempo_real", + "label": "RF07 \u2014 Interface de Linha de Comando (CLI) e Logs em Tempo Real", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "rf07 \u2014 interface de linha de comando (cli) e logs em tempo real", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L114" + }, + { + "id": "docs_prd_extrator_artigos_nlp_rf08_toler\u00e2ncia_a_falhas_e_resili\u00eancia", + "label": "RF08 \u2014 Toler\u00e2ncia a Falhas e Resili\u00eancia", + "_origin": "ast", + "community": 103, + "community_name": "4. Requisitos Funcionais (FR)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "rf08 \u2014 tolerancia a falhas e resiliencia", + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L132" + }, + { + "id": "specs_003_article_content_extractor_tasks", + "label": "003-article-content-extractor/tasks.md", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "page", + "norm_label": "003-article-content-extractor/tasks.md", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_tasks_dependencies_execution_order", + "label": "Dependencies & Execution Order", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "dependencies & execution order", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L102" + }, + { + "id": "specs_003_article_content_extractor_tasks_entrega_incremental", + "label": "Entrega Incremental", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "entrega incremental", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L127" + }, + { + "id": "specs_003_article_content_extractor_tasks_implementation_strategy", + "label": "Implementation Strategy", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation strategy", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L120" + }, + { + "id": "specs_003_article_content_extractor_tasks_implementa\u00e7\u00e3o_da_user_story_1", + "label": "Implementa\u00e7\u00e3o da User Story 1", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementacao da user story 1", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L43" + }, + { + "id": "specs_003_article_content_extractor_tasks_implementa\u00e7\u00e3o_da_user_story_2", + "label": "Implementa\u00e7\u00e3o da User Story 2", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementacao da user story 2", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L64" + }, + { + "id": "specs_003_article_content_extractor_tasks_implementa\u00e7\u00e3o_da_user_story_3", + "label": "Implementa\u00e7\u00e3o da User Story 3", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementacao da user story 3", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L82" + }, + { + "id": "specs_003_article_content_extractor_tasks_mvp_first_user_story_1_only", + "label": "MVP First (User Story 1 Only)", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "mvp first (user story 1 only)", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L122" + }, + { + "id": "specs_003_article_content_extractor_tasks_oportunidades_de_execu\u00e7\u00e3o_paralela", + "label": "Oportunidades de Execu\u00e7\u00e3o Paralela", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "oportunidades de execucao paralela", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L113" + }, + { + "id": "specs_003_article_content_extractor_tasks_phase_1_setup_dependencies", + "label": "Phase 1: Setup & Dependencies", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 1: setup & dependencies", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L10" + }, + { + "id": "specs_003_article_content_extractor_tasks_phase_2_foundational_estruturas_e_modelos_base", + "label": "Phase 2: Foundational (Estruturas e Modelos Base)", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 2: foundational (estruturas e modelos base)", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L19" + }, + { + "id": "specs_003_article_content_extractor_tasks_phase_3_user_story_1_extra\u00e7\u00e3o_completa_e_consolidada_de_artigos_em_lote_priority_p1_mvp", + "label": "Phase 3: User Story 1 - Extra\u00e7\u00e3o Completa e Consolidada de Artigos em Lote (Priority: P1) \ud83c\udf1f MVP", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 3: user story 1 - extracao completa e consolidada de artigos em lote (priority: p1) \ud83c\udf1f mvp", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L31" + }, + { + "id": "specs_003_article_content_extractor_tasks_phase_4_user_story_2_resili\u00eancia_e_isolamento_de_falhas_por_artigo_e_motor_priority_p2", + "label": "Phase 4: User Story 2 - Resili\u00eancia e Isolamento de Falhas por Artigo e Motor (Priority: P2)", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 4: user story 2 - resiliencia e isolamento de falhas por artigo e motor (priority: p2)", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L54" + }, + { + "id": "specs_003_article_content_extractor_tasks_phase_5_user_story_3_controle_de_execu\u00e7\u00e3o_via_cli_e_feedback_visual_priority_p3", + "label": "Phase 5: User Story 3 - Controle de Execu\u00e7\u00e3o via CLI e Feedback Visual (Priority: P3)", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 5: user story 3 - controle de execucao via cli e feedback visual (priority: p3)", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L72" + }, + { + "id": "specs_003_article_content_extractor_tasks_phase_6_polish_valida\u00e7\u00e3o_final", + "label": "Phase 6: Polish & Valida\u00e7\u00e3o Final", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 6: polish & validacao final", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L91" + }, + { + "id": "specs_003_article_content_extractor_tasks_tasks_article_content_multi_engine_extractor", + "label": "Tasks: Article Content Multi-Engine Extractor", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "tasks: article content multi-engine extractor", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_tasks_testes_da_user_story_1_tdd", + "label": "Testes da User Story 1 (TDD)", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "testes da user story 1 (tdd)", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L37" + }, + { + "id": "specs_003_article_content_extractor_tasks_testes_da_user_story_2_tdd", + "label": "Testes da User Story 2 (TDD)", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "testes da user story 2 (tdd)", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L60" + }, + { + "id": "specs_003_article_content_extractor_tasks_testes_da_user_story_3_tdd", + "label": "Testes da User Story 3 (TDD)", + "_origin": "ast", + "community": 104, + "community_name": "Tasks: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "testes da user story 3 (tdd)", + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L78" + }, + { + "id": "src_adapters_embeddings", + "label": "embeddings.py", + "_origin": "ast", + "community": 105, + "community_name": "LocalEmbeddingsAdapter", + "file_type": "code", + "norm_label": "embeddings.py", + "source_file": "src/adapters/embeddings.py", + "source_location": "L1" + }, + { + "id": "tests_test_adapters", + "label": "test_adapters.py", + "_origin": "ast", + "community": 105, + "community_name": "LocalEmbeddingsAdapter", + "file_type": "code", + "norm_label": "test_adapters.py", + "source_file": "tests/test_adapters.py", + "source_location": "L1" + }, + { + "id": "src_adapters_embeddings_rationale_1", + "label": "Optional local vector embeddings adapter (Tier 2). Disabled by default.\u2026", + "_origin": "ast", + "community": 105, + "community_name": "LocalEmbeddingsAdapter", + "file_type": "rationale", + "norm_label": "optional local vector embeddings adapter (tier 2). disabled by default....", + "source_file": "src/adapters/embeddings.py", + "source_location": "L1" + }, + { + "id": "src_adapters_embeddings_rationale_14", + "label": "Optional adapter for local multilingual semantic vector embeddings.", + "_origin": "ast", + "community": 105, + "community_name": "LocalEmbeddingsAdapter", + "file_type": "rationale", + "norm_label": "optional adapter for local multilingual semantic vector embeddings.", + "source_file": "src/adapters/embeddings.py", + "source_location": "L14" + }, + { + "id": "tests_test_adapters_rationale_1", + "label": "Unit tests for optional adapter interfaces (Tier 2 / Tier 3).", + "_origin": "ast", + "community": 105, + "community_name": "LocalEmbeddingsAdapter", + "file_type": "rationale", + "norm_label": "unit tests for optional adapter interfaces (tier 2 / tier 3).", + "source_file": "tests/test_adapters.py", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_plan", + "label": "003-article-content-extractor/plan.md", + "_origin": "ast", + "community": 106, + "community_name": "Implementation Plan: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "page", + "norm_label": "003-article-content-extractor/plan.md", + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_plan_constitution_check", + "label": "Constitution Check", + "_origin": "ast", + "community": 106, + "community_name": "Implementation Plan: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "constitution check", + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L29" + }, + { + "id": "specs_003_article_content_extractor_plan_documentation_this_feature", + "label": "Documentation (this feature)", + "_origin": "ast", + "community": 106, + "community_name": "Implementation Plan: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "documentation (this feature)", + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L44" + }, + { + "id": "specs_003_article_content_extractor_plan_implementation_phases", + "label": "Implementation Phases", + "_origin": "ast", + "community": 106, + "community_name": "Implementation Plan: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation phases", + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L73" + }, + { + "id": "specs_003_article_content_extractor_plan_implementation_plan_article_content_multi_engine_extractor", + "label": "Implementation Plan: Article Content Multi-Engine Extractor", + "_origin": "ast", + "community": 106, + "community_name": "Implementation Plan: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation plan: article content multi-engine extractor", + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_plan_phase_0_outline_research_completed", + "label": "Phase 0: Outline & Research *(Completed)*", + "_origin": "ast", + "community": 106, + "community_name": "Implementation Plan: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 0: outline & research *(completed)*", + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L75" + }, + { + "id": "specs_003_article_content_extractor_plan_phase_1_design_contracts_completed", + "label": "Phase 1: Design & Contracts *(Completed)*", + "_origin": "ast", + "community": 106, + "community_name": "Implementation Plan: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 1: design & contracts *(completed)*", + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L80" + }, + { + "id": "specs_003_article_content_extractor_plan_phase_2_tasks_execution_completed", + "label": "Phase 2: Tasks & Execution *(Completed)*", + "_origin": "ast", + "community": 106, + "community_name": "Implementation Plan: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 2: tasks & execution *(completed)*", + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L84" + }, + { + "id": "specs_003_article_content_extractor_plan_project_structure", + "label": "Project Structure", + "_origin": "ast", + "community": 106, + "community_name": "Implementation Plan: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "project structure", + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L42" + }, + { + "id": "specs_003_article_content_extractor_plan_source_code_layout", + "label": "Source Code Layout", + "_origin": "ast", + "community": 106, + "community_name": "Implementation Plan: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "source code layout", + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L59" + }, + { + "id": "specs_003_article_content_extractor_plan_summary", + "label": "Summary", + "_origin": "ast", + "community": 106, + "community_name": "Implementation Plan: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "summary", + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L9" + }, + { + "id": "specs_003_article_content_extractor_plan_technical_context", + "label": "Technical Context", + "_origin": "ast", + "community": 106, + "community_name": "Implementation Plan: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "technical context", + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L15" + }, + { + "id": "specs_003_article_content_extractor_quickstart", + "label": "003-article-content-extractor/quickstart.md", + "_origin": "ast", + "community": 107, + "community_name": "2. Cen\u00e1rios de Valida\u00e7\u00e3o", + "file_type": "document", + "node_kind": "page", + "norm_label": "003-article-content-extractor/quickstart.md", + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_quickstart_1_pr\u00e9_requisitos", + "label": "1. Pr\u00e9-requisitos", + "_origin": "ast", + "community": 107, + "community_name": "2. Cen\u00e1rios de Valida\u00e7\u00e3o", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. pre-requisitos", + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L7" + }, + { + "id": "specs_003_article_content_extractor_quickstart_2_cen\u00e1rios_de_valida\u00e7\u00e3o", + "label": "2. Cen\u00e1rios de Valida\u00e7\u00e3o", + "_origin": "ast", + "community": 107, + "community_name": "2. Cen\u00e1rios de Valida\u00e7\u00e3o", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. cenarios de validacao", + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L17" + }, + { + "id": "specs_003_article_content_extractor_quickstart_3_valida\u00e7\u00e3o_automatizada_de_testes", + "label": "3. Valida\u00e7\u00e3o Automatizada de Testes", + "_origin": "ast", + "community": 107, + "community_name": "2. Cen\u00e1rios de Valida\u00e7\u00e3o", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. validacao automatizada de testes", + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L71" + }, + { + "id": "specs_003_article_content_extractor_quickstart_cen\u00e1rio_1_extra\u00e7\u00e3o_com_amostragem_r\u00e1pida_limit_2", + "label": "Cen\u00e1rio 1: Extra\u00e7\u00e3o com Amostragem R\u00e1pida (Limit 2)", + "_origin": "ast", + "community": 107, + "community_name": "2. Cen\u00e1rios de Valida\u00e7\u00e3o", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cenario 1: extracao com amostragem rapida (limit 2)", + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L19" + }, + { + "id": "specs_003_article_content_extractor_quickstart_cen\u00e1rio_2_caminho_customizado_de_sa\u00edda", + "label": "Cen\u00e1rio 2: Caminho Customizado de Sa\u00edda", + "_origin": "ast", + "community": 107, + "community_name": "2. Cen\u00e1rios de Valida\u00e7\u00e3o", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cenario 2: caminho customizado de saida", + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L33" + }, + { + "id": "specs_003_article_content_extractor_quickstart_cen\u00e1rio_3_modo_silencioso_silent", + "label": "Cen\u00e1rio 3: Modo Silencioso (`--silent`)", + "_origin": "ast", + "community": 107, + "community_name": "2. Cen\u00e1rios de Valida\u00e7\u00e3o", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cenario 3: modo silencioso (`--silent`)", + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L45" + }, + { + "id": "specs_003_article_content_extractor_quickstart_cen\u00e1rio_4_resili\u00eancia_contra_urls_inv\u00e1lidas", + "label": "Cen\u00e1rio 4: Resili\u00eancia contra URLs Inv\u00e1lidas", + "_origin": "ast", + "community": 107, + "community_name": "2. Cen\u00e1rios de Valida\u00e7\u00e3o", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cenario 4: resiliencia contra urls invalidas", + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L58" + }, + { + "id": "specs_003_article_content_extractor_quickstart_quickstart_validation_guide_article_content_multi_engine_extractor", + "label": "Quickstart & Validation Guide: Article Content Multi-Engine Extractor", + "_origin": "ast", + "community": 107, + "community_name": "2. Cen\u00e1rios de Valida\u00e7\u00e3o", + "file_type": "document", + "node_kind": "heading", + "norm_label": "quickstart & validation guide: article content multi-engine extractor", + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_research", + "label": "003-article-content-extractor/research.md", + "_origin": "ast", + "community": 108, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "page", + "norm_label": "003-article-content-extractor/research.md", + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_research_1_technical_decisions_tradeoffs", + "label": "1. Technical Decisions & Tradeoffs", + "_origin": "ast", + "community": 108, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. technical decisions & tradeoffs", + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L3" + }, + { + "id": "specs_003_article_content_extractor_research_decision_1_motor_de_navega\u00e7\u00e3o_e_renderiza\u00e7\u00e3o_com_foxcape_em_sess\u00e3o_\u00fanica", + "label": "Decision 1: Motor de Navega\u00e7\u00e3o e Renderiza\u00e7\u00e3o com `foxcape` em Sess\u00e3o \u00danica", + "_origin": "ast", + "community": 108, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 1: motor de navegacao e renderizacao com `foxcape` em sessao unica", + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L5" + }, + { + "id": "specs_003_article_content_extractor_research_decision_2_orquestra\u00e7\u00e3o_tripla_de_extra\u00e7\u00e3o_de_conte\u00fado_nlp_web_scraping", + "label": "Decision 2: Orquestra\u00e7\u00e3o Tripla de Extra\u00e7\u00e3o de Conte\u00fado (NLP & Web Scraping)", + "_origin": "ast", + "community": 108, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 2: orquestracao tripla de extracao de conteudo (nlp & web scraping)", + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L17" + }, + { + "id": "specs_003_article_content_extractor_research_decision_3_resili\u00eancia_e_isolamento_de_falhas_por_camada", + "label": "Decision 3: Resili\u00eancia e Isolamento de Falhas por Camada", + "_origin": "ast", + "community": 108, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 3: resiliencia e isolamento de falhas por camada", + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L28" + }, + { + "id": "specs_003_article_content_extractor_research_decision_4_heran\u00e7a_inteligente_de_idioma_para_nlp", + "label": "Decision 4: Heran\u00e7a Inteligente de Idioma para NLP", + "_origin": "ast", + "community": 108, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 4: heranca inteligente de idioma para nlp", + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L36" + }, + { + "id": "specs_003_article_content_extractor_research_decision_5_gerenciamento_de_mem\u00f3ria_e_descarte_do_raw_html", + "label": "Decision 5: Gerenciamento de Mem\u00f3ria e Descarte do Raw HTML", + "_origin": "ast", + "community": 108, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 5: gerenciamento de memoria e descarte do raw html", + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L42" + }, + { + "id": "specs_003_article_content_extractor_research_decision_6_segrega\u00e7\u00e3o_de_streams_e_feedback_visual_em_stderr", + "label": "Decision 6: Segrega\u00e7\u00e3o de Streams e Feedback Visual em `stderr`", + "_origin": "ast", + "community": 108, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 6: segregacao de streams e feedback visual em `stderr`", + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L48" + }, + { + "id": "specs_003_article_content_extractor_research_research_article_content_multi_engine_extractor", + "label": "Research: Article Content Multi-Engine Extractor", + "_origin": "ast", + "community": 108, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "research: article content multi-engine extractor", + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_plan_complexity_tracking", + "label": "Complexity Tracking", + "_origin": "ast", + "community": 109, + "community_name": "Implementation Plan: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "complexity tracking", + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L120" + }, + { + "id": "specs_001_multilingual_entity_classifier_plan_constitution_check", + "label": "Constitution Check", + "_origin": "ast", + "community": 109, + "community_name": "Implementation Plan: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "constitution check", + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L43" + }, + { + "id": "specs_001_multilingual_entity_classifier_plan_documentation_this_feature", + "label": "Documentation (this feature)", + "_origin": "ast", + "community": 109, + "community_name": "Implementation Plan: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "documentation (this feature)", + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L58" + }, + { + "id": "specs_001_multilingual_entity_classifier_plan_implementation_plan_multilingual_nlp_entity_inherence_classifier_poc", + "label": "Implementation Plan: Multilingual NLP Entity Inherence Classifier (POC)", + "_origin": "ast", + "community": 109, + "community_name": "Implementation Plan: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation plan: multilingual nlp entity inherence classifier (poc)", + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_plan_project_structure", + "label": "Project Structure", + "_origin": "ast", + "community": 109, + "community_name": "Implementation Plan: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "project structure", + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L56" + }, + { + "id": "specs_001_multilingual_entity_classifier_plan_source_code_repository_root", + "label": "Source Code (repository root)", + "_origin": "ast", + "community": 109, + "community_name": "Implementation Plan: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "source code (repository root)", + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L74" + }, + { + "id": "specs_001_multilingual_entity_classifier_plan_summary", + "label": "Summary", + "_origin": "ast", + "community": 109, + "community_name": "Implementation Plan: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "summary", + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L9" + }, + { + "id": "specs_001_multilingual_entity_classifier_plan_technical_context", + "label": "Technical Context", + "_origin": "ast", + "community": 109, + "community_name": "Implementation Plan: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "technical context", + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L15" + }, + { + "id": "specify_memory_constitution", + "label": "constitution.md", + "_origin": "ast", + "community": 11, + "community_name": "Project Constitution", + "file_type": "document", + "node_kind": "page", + "norm_label": "constitution.md", + "source_file": ".specify/memory/constitution.md", + "source_location": "L1" + }, + { + "id": "specify_memory_constitution_core_principles", + "label": "Core Principles", + "_origin": "ast", + "community": 11, + "community_name": "Project Constitution", + "file_type": "document", + "node_kind": "heading", + "norm_label": "core principles", + "source_file": ".specify/memory/constitution.md", + "source_location": "L4" + }, + { + "id": "specify_memory_constitution_governance", + "label": "Governance", + "_origin": "ast", + "community": 11, + "community_name": "Project Constitution", + "file_type": "document", + "node_kind": "heading", + "norm_label": "governance", + "source_file": ".specify/memory/constitution.md", + "source_location": "L43" + }, + { + "id": "specify_memory_constitution_principle_1_name", + "label": "[PRINCIPLE_1_NAME]", + "_origin": "ast", + "community": 11, + "community_name": "Project Constitution", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[principle_1_name]", + "source_file": ".specify/memory/constitution.md", + "source_location": "L6" + }, + { + "id": "specify_memory_constitution_principle_2_name", + "label": "[PRINCIPLE_2_NAME]", + "_origin": "ast", + "community": 11, + "community_name": "Project Constitution", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[principle_2_name]", + "source_file": ".specify/memory/constitution.md", + "source_location": "L11" + }, + { + "id": "specify_memory_constitution_principle_3_name", + "label": "[PRINCIPLE_3_NAME]", + "_origin": "ast", + "community": 11, + "community_name": "Project Constitution", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[principle_3_name]", + "source_file": ".specify/memory/constitution.md", + "source_location": "L16" + }, + { + "id": "specify_memory_constitution_principle_4_name", + "label": "[PRINCIPLE_4_NAME]", + "_origin": "ast", + "community": 11, + "community_name": "Project Constitution", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[principle_4_name]", + "source_file": ".specify/memory/constitution.md", + "source_location": "L21" + }, + { + "id": "specify_memory_constitution_principle_5_name", + "label": "[PRINCIPLE_5_NAME]", + "_origin": "ast", + "community": 11, + "community_name": "Project Constitution", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[principle_5_name]", + "source_file": ".specify/memory/constitution.md", + "source_location": "L26" + }, + { + "id": "specify_memory_constitution_project_name_constitution", + "label": "[PROJECT_NAME] Constitution", + "_origin": "ast", + "community": 11, + "community_name": "Project Constitution", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[project_name] constitution", + "source_file": ".specify/memory/constitution.md", + "source_location": "L1" + }, + { + "id": "specify_memory_constitution_section_2_name", + "label": "[SECTION_2_NAME]", + "_origin": "ast", + "community": 11, + "community_name": "Project Constitution", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[section_2_name]", + "source_file": ".specify/memory/constitution.md", + "source_location": "L31" + }, + { + "id": "specify_memory_constitution_section_3_name", + "label": "[SECTION_3_NAME]", + "_origin": "ast", + "community": 11, + "community_name": "Project Constitution", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[section_3_name]", + "source_file": ".specify/memory/constitution.md", + "source_location": "L37" + }, + { + "id": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_1_requirement_completeness_scope_boundaries", + "label": "1. Requirement Completeness & Scope Boundaries", + "_origin": "ast", + "community": 110, + "community_name": "POC Readiness & Requirements Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. requirement completeness & scope boundaries", + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L13" + }, + { + "id": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_2_requirement_clarity_decision_semantics", + "label": "2. Requirement Clarity & Decision Semantics", + "_origin": "ast", + "community": 110, + "community_name": "POC Readiness & Requirements Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. requirement clarity & decision semantics", + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L22" + }, + { + "id": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_3_requirement_consistency_alignment", + "label": "3. Requirement Consistency & Alignment", + "_origin": "ast", + "community": 110, + "community_name": "POC Readiness & Requirements Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. requirement consistency & alignment", + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L31" + }, + { + "id": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_4_acceptance_criteria_measurability", + "label": "4. Acceptance Criteria & Measurability", + "_origin": "ast", + "community": 110, + "community_name": "POC Readiness & Requirements Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. acceptance criteria & measurability", + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L39" + }, + { + "id": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_5_scenario_edge_case_coverage", + "label": "5. Scenario & Edge Case Coverage", + "_origin": "ast", + "community": 110, + "community_name": "POC Readiness & Requirements Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5. scenario & edge case coverage", + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L47" + }, + { + "id": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_notes", + "label": "Notes", + "_origin": "ast", + "community": 110, + "community_name": "POC Readiness & Requirements Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "file_type": "document", + "node_kind": "heading", + "norm_label": "notes", + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L56" + }, + { + "id": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_poc_readiness_requirements_quality_checklist_multilingual_nlp_entity_inherence_classifier", + "label": "POC Readiness & Requirements Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "_origin": "ast", + "community": 110, + "community_name": "POC Readiness & Requirements Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "file_type": "document", + "node_kind": "heading", + "norm_label": "poc readiness & requirements quality checklist: multilingual nlp entity inherence classifier", + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_checklists_requirements", + "label": "001-multilingual-entity-classifier/checklists/requirements.md", + "_origin": "ast", + "community": 111, + "community_name": "Specification Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "file_type": "document", + "node_kind": "page", + "norm_label": "001-multilingual-entity-classifier/checklists/requirements.md", + "source_file": "specs/001-multilingual-entity-classifier/checklists/requirements.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_checklists_requirements_content_quality", + "label": "Content Quality", + "_origin": "ast", + "community": 111, + "community_name": "Specification Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "file_type": "document", + "node_kind": "heading", + "norm_label": "content quality", + "source_file": "specs/001-multilingual-entity-classifier/checklists/requirements.md", + "source_location": "L7" + }, + { + "id": "specs_001_multilingual_entity_classifier_checklists_requirements_feature_readiness", + "label": "Feature Readiness", + "_origin": "ast", + "community": 111, + "community_name": "Specification Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "file_type": "document", + "node_kind": "heading", + "norm_label": "feature readiness", + "source_file": "specs/001-multilingual-entity-classifier/checklists/requirements.md", + "source_location": "L25" + }, + { + "id": "specs_001_multilingual_entity_classifier_checklists_requirements_notes", + "label": "Notes", + "_origin": "ast", + "community": 111, + "community_name": "Specification Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "file_type": "document", + "node_kind": "heading", + "norm_label": "notes", + "source_file": "specs/001-multilingual-entity-classifier/checklists/requirements.md", + "source_location": "L32" + }, + { + "id": "specs_001_multilingual_entity_classifier_checklists_requirements_requirement_completeness", + "label": "Requirement Completeness", + "_origin": "ast", + "community": 111, + "community_name": "Specification Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "file_type": "document", + "node_kind": "heading", + "norm_label": "requirement completeness", + "source_file": "specs/001-multilingual-entity-classifier/checklists/requirements.md", + "source_location": "L14" + }, + { + "id": "specs_001_multilingual_entity_classifier_checklists_requirements_specification_quality_checklist_multilingual_nlp_entity_inherence_classifier", + "label": "Specification Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "_origin": "ast", + "community": 111, + "community_name": "Specification Quality Checklist: Multilingual NLP Entity Inherence Classifier", + "file_type": "document", + "node_kind": "heading", + "norm_label": "specification quality checklist: multilingual nlp entity inherence classifier", + "source_file": "specs/001-multilingual-entity-classifier/checklists/requirements.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_contracts_cli_contract", + "label": "003-article-content-extractor/contracts/cli-contract.md", + "_origin": "ast", + "community": 112, + "community_name": "CLI Contract: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "page", + "norm_label": "003-article-content-extractor/contracts/cli-contract.md", + "source_file": "specs/003-article-content-extractor/contracts/cli-contract.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_contracts_cli_contract_1_comando_de_execu\u00e7\u00e3o", + "label": "1. Comando de Execu\u00e7\u00e3o", + "_origin": "ast", + "community": 112, + "community_name": "CLI Contract: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. comando de execucao", + "source_file": "specs/003-article-content-extractor/contracts/cli-contract.md", + "source_location": "L3" + }, + { + "id": "specs_003_article_content_extractor_contracts_cli_contract_2_argumentos_e_flags", + "label": "2. Argumentos e Flags", + "_origin": "ast", + "community": 112, + "community_name": "CLI Contract: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. argumentos e flags", + "source_file": "specs/003-article-content-extractor/contracts/cli-contract.md", + "source_location": "L11" + }, + { + "id": "specs_003_article_content_extractor_contracts_cli_contract_3_c\u00f3digos_de_sa\u00edda_exit_codes", + "label": "3. C\u00f3digos de Sa\u00edda (Exit Codes)", + "_origin": "ast", + "community": 112, + "community_name": "CLI Contract: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. codigos de saida (exit codes)", + "source_file": "specs/003-article-content-extractor/contracts/cli-contract.md", + "source_location": "L25" + }, + { + "id": "specs_003_article_content_extractor_contracts_cli_contract_4_comportamento_de_streams_i_o", + "label": "4. Comportamento de Streams (I/O)", + "_origin": "ast", + "community": 112, + "community_name": "CLI Contract: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. comportamento de streams (i/o)", + "source_file": "specs/003-article-content-extractor/contracts/cli-contract.md", + "source_location": "L35" + }, + { + "id": "specs_003_article_content_extractor_contracts_cli_contract_cli_contract_article_content_multi_engine_extractor", + "label": "CLI Contract: Article Content Multi-Engine Extractor", + "_origin": "ast", + "community": 112, + "community_name": "CLI Contract: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cli contract: article content multi-engine extractor", + "source_file": "specs/003-article-content-extractor/contracts/cli-contract.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_checklists_poc_readiness", + "label": "poc-readiness.md", + "_origin": "ast", + "community": 113, + "community_name": "001-multilingual-entity-classifier/spec.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "poc-readiness.md", + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_plan", + "label": "001-multilingual-entity-classifier/plan.md", + "_origin": "ast", + "community": 113, + "community_name": "001-multilingual-entity-classifier/spec.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "001-multilingual-entity-classifier/plan.md", + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_spec", + "label": "001-multilingual-entity-classifier/spec.md", + "_origin": "ast", + "community": 113, + "community_name": "001-multilingual-entity-classifier/spec.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "001-multilingual-entity-classifier/spec.md", + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_tasks", + "label": "001-multilingual-entity-classifier/tasks.md", + "_origin": "ast", + "community": 113, + "community_name": "001-multilingual-entity-classifier/spec.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "001-multilingual-entity-classifier/tasks.md", + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_contracts_json_schema", + "label": "003-article-content-extractor/contracts/json-schema.md", + "_origin": "ast", + "community": 114, + "community_name": "JSON Schema Contract: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "page", + "norm_label": "003-article-content-extractor/contracts/json-schema.md", + "source_file": "specs/003-article-content-extractor/contracts/json-schema.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_contracts_json_schema_1_schema_de_entrada_input_json", + "label": "1. Schema de Entrada (Input JSON)", + "_origin": "ast", + "community": 114, + "community_name": "JSON Schema Contract: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. schema de entrada (input json)", + "source_file": "specs/003-article-content-extractor/contracts/json-schema.md", + "source_location": "L3" + }, + { + "id": "specs_003_article_content_extractor_contracts_json_schema_2_schema_de_sa\u00edda_output_json", + "label": "2. Schema de Sa\u00edda (Output JSON)", + "_origin": "ast", + "community": 114, + "community_name": "JSON Schema Contract: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. schema de saida (output json)", + "source_file": "specs/003-article-content-extractor/contracts/json-schema.md", + "source_location": "L27" + }, + { + "id": "specs_003_article_content_extractor_contracts_json_schema_json_schema_contract_article_content_multi_engine_extractor", + "label": "JSON Schema Contract: Article Content Multi-Engine Extractor", + "_origin": "ast", + "community": 114, + "community_name": "JSON Schema Contract: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "json schema contract: article content multi-engine extractor", + "source_file": "specs/003-article-content-extractor/contracts/json-schema.md", + "source_location": "L1" + }, + { + "id": "docs_prd_deterministic_content_selection", + "label": "prd_deterministic_content_selection.md", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "page", + "norm_label": "prd_deterministic_content_selection.md", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L1" + }, + { + "id": "docs_prd_deterministic_content_selection_10_requisitos_n\u00e3o_funcionais", + "label": "10. Requisitos n\u00e3o funcionais", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "10. requisitos nao funcionais", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L227" + }, + { + "id": "docs_prd_deterministic_content_selection_11_crit\u00e9rios_de_aceite", + "label": "11. Crit\u00e9rios de aceite", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "11. criterios de aceite", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L237" + }, + { + "id": "docs_prd_deterministic_content_selection_12_casos_obrigat\u00f3rios_de_teste", + "label": "12. Casos obrigat\u00f3rios de teste", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "12. casos obrigatorios de teste", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L252" + }, + { + "id": "docs_prd_deterministic_content_selection_13_definition_of_done", + "label": "13. Definition of Done", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "13. definition of done", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L271" + }, + { + "id": "docs_prd_deterministic_content_selection_1_contexto", + "label": "1. Contexto", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. contexto", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L7" + }, + { + "id": "docs_prd_deterministic_content_selection_2_objetivo", + "label": "2. Objetivo", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. objetivo", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L13" + }, + { + "id": "docs_prd_deterministic_content_selection_3_1_inclu\u00eddo", + "label": "3.1 Inclu\u00eddo", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.1 incluido", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L19" + }, + { + "id": "docs_prd_deterministic_content_selection_3_2_fora_do_escopo", + "label": "3.2 Fora do escopo", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.2 fora do escopo", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L28" + }, + { + "id": "docs_prd_deterministic_content_selection_3_escopo", + "label": "3. Escopo", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. escopo", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L17" + }, + { + "id": "docs_prd_deterministic_content_selection_4_premissas", + "label": "4. Premissas", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. premissas", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L39" + }, + { + "id": "docs_prd_deterministic_content_selection_5_1_arquivo", + "label": "5.1 Arquivo", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5.1 arquivo", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L48" + }, + { + "id": "docs_prd_deterministic_content_selection_5_2_conte\u00fados_comparados", + "label": "5.2 Conte\u00fados comparados", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5.2 conteudos comparados", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L54" + }, + { + "id": "docs_prd_deterministic_content_selection_5_3_estado_de_um_candidato", + "label": "5.3 Estado de um candidato", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5.3 estado de um candidato", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L64" + }, + { + "id": "docs_prd_deterministic_content_selection_5_entrada", + "label": "5. Entrada", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5. entrada", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L46" + }, + { + "id": "docs_prd_deterministic_content_selection_6_1_arquivo", + "label": "6.1 Arquivo", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6.1 arquivo", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L78" + }, + { + "id": "docs_prd_deterministic_content_selection_6_2_altera\u00e7\u00e3o_permitida", + "label": "6.2 Altera\u00e7\u00e3o permitida", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6.2 alteracao permitida", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L86" + }, + { + "id": "docs_prd_deterministic_content_selection_6_3_preserva\u00e7\u00e3o_da_entrada", + "label": "6.3 Preserva\u00e7\u00e3o da entrada", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6.3 preservacao da entrada", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L100" + }, + { + "id": "docs_prd_deterministic_content_selection_6_sa\u00edda", + "label": "6. Sa\u00edda", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6. saida", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L76" + }, + { + "id": "docs_prd_deterministic_content_selection_7_1_formar_o_conjunto_ativo", + "label": "7.1 Formar o conjunto ativo", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "7.1 formar o conjunto ativo", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L110" + }, + { + "id": "docs_prd_deterministic_content_selection_7_2_normalizar_os_conte\u00fados", + "label": "7.2 Normalizar os conte\u00fados", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "7.2 normalizar os conteudos", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L120" + }, + { + "id": "docs_prd_deterministic_content_selection_7_3_gerar_shingles", + "label": "7.3 Gerar shingles", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "7.3 gerar shingles", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L137" + }, + { + "id": "docs_prd_deterministic_content_selection_7_4_construir_o_consenso", + "label": "7.4 Construir o consenso", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "7.4 construir o consenso", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L144" + }, + { + "id": "docs_prd_deterministic_content_selection_7_5_selecionar_quando_existe_consenso", + "label": "7.5 Selecionar quando existe consenso", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "7.5 selecionar quando existe consenso", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L164" + }, + { + "id": "docs_prd_deterministic_content_selection_7_6_selecionar_quando_n\u00e3o_existe_consenso", + "label": "7.6 Selecionar quando n\u00e3o existe consenso", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "7.6 selecionar quando nao existe consenso", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L178" + }, + { + "id": "docs_prd_deterministic_content_selection_7_7_gravar_a_escolha", + "label": "7.7 Gravar a escolha", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "7.7 gravar a escolha", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L190" + }, + { + "id": "docs_prd_deterministic_content_selection_7_algoritmo_determin\u00edstico_de_sele\u00e7\u00e3o", + "label": "7. Algoritmo determin\u00edstico de sele\u00e7\u00e3o", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "7. algoritmo deterministico de selecao", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L108" + }, + { + "id": "docs_prd_deterministic_content_selection_8_requisitos_funcionais", + "label": "8. Requisitos funcionais", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "8. requisitos funcionais", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L194" + }, + { + "id": "docs_prd_deterministic_content_selection_9_tratamento_de_erros", + "label": "9. Tratamento de erros", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "9. tratamento de erros", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L212" + }, + { + "id": "docs_prd_deterministic_content_selection_prd_sele\u00e7\u00e3o_determin\u00edstica_da_biblioteca_de_extra\u00e7\u00e3o_de_conte\u00fado", + "label": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "_origin": "ast", + "community": 115, + "community_name": "PRD \u2014 Sele\u00e7\u00e3o determin\u00edstica da biblioteca de extra\u00e7\u00e3o de conte\u00fado", + "file_type": "document", + "node_kind": "heading", + "norm_label": "prd \u2014 selecao deterministica da biblioteca de extracao de conteudo", + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L1" + }, + { + "id": "scripts_select_article_extractor", + "label": "select_article_extractor.py", + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "code", + "norm_label": "select_article_extractor.py", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L1" + }, + { + "id": "scripts_select_article_extractor_py_namespace", + "label": "Namespace", + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "code", + "norm_label": "namespace", + "source_file": "", + "source_location": "" + }, + { + "id": "scripts_select_article_extractor_rationale_212", + "label": "Forma o conjunto ativo de candidatos conforme PRD \u00a77.1: 1. Se existir pelo\u2026", + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "rationale", + "norm_label": "forma o conjunto ativo de candidatos conforme prd \u00a77.1: 1. se existir pelo...", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L212" + }, + { + "id": "scripts_select_article_extractor_rationale_235", + "label": "Constr\u00f3i o conjunto de consenso (shingles presentes em >= 2 candidatos ativos)\u2026", + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "rationale", + "norm_label": "constroi o conjunto de consenso (shingles presentes em >= 2 candidatos ativos)...", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L235" + }, + { + "id": "scripts_select_article_extractor_rationale_281", + "label": "Aplica a prioridade final estrita: newspaper4k > readability > trafilatura.", + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "rationale", + "norm_label": "aplica a prioridade final estrita: newspaper4k > readability > trafilatura.", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L281" + }, + { + "id": "scripts_select_article_extractor_rationale_292", + "label": "Seleciona o melhor candidato quando existe consenso (PRD \u00a77.5): 1. Ordenar por\u2026", + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "rationale", + "norm_label": "seleciona o melhor candidato quando existe consenso (prd \u00a77.5): 1. ordenar por...", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L292" + }, + { + "id": "scripts_select_article_extractor_rationale_323", + "label": "Seleciona o candidato quando N\u00c3O existe consenso (PRD \u00a77.6): - Com 3 candidatos\u2026", + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "rationale", + "norm_label": "seleciona o candidato quando nao existe consenso (prd \u00a77.6): - com 3 candidatos...", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L323" + }, + { + "id": "scripts_select_article_extractor_rationale_63", + "label": "Representa\u00e7\u00e3o e m\u00e9tricas de um candidato a extrator em um artigo.", + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "rationale", + "norm_label": "representacao e metricas de um candidato a extrator em um artigo.", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L63" + }, + { + "id": "scripts_select_article_extractor_rationale_91", + "label": "Resultado consolidado do processamento em lote.", + "_origin": "ast", + "community": 116, + "community_name": "select_article_extractor.py", + "file_type": "rationale", + "norm_label": "resultado consolidado do processamento em lote.", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L91" + }, + { + "id": "specs_004_deterministic_content_selection_research_1_text_normalization_pipeline", + "label": "1. Text Normalization Pipeline", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. text normalization pipeline", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L7" + }, + { + "id": "specs_004_deterministic_content_selection_research_2_5_token_shingles_consensus_metrics", + "label": "2. 5-Token Shingles & Consensus Metrics", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. 5-token shingles & consensus metrics", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L32" + }, + { + "id": "specs_004_deterministic_content_selection_research_3_regras_de_decis\u00e3o_empate_t\u00e9cnico_e_desempate_hier\u00e1rquico", + "label": "3. Regras de Decis\u00e3o, Empate T\u00e9cnico e Desempate Hier\u00e1rquico", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. regras de decisao, empate tecnico e desempate hierarquico", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L57" + }, + { + "id": "specs_004_deterministic_content_selection_research_4_estrat\u00e9gia_de_i_o_n\u00e3o_destrutiva_e_escrita_at\u00f4mica", + "label": "4. Estrat\u00e9gia de I/O N\u00e3o Destrutiva e Escrita At\u00f4mica", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. estrategia de i/o nao destrutiva e escrita atomica", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L89" + }, + { + "id": "specs_004_deterministic_content_selection_research_alternatives_considered", + "label": "Alternatives Considered", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "alternatives considered", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L26" + }, + { + "id": "specs_004_deterministic_content_selection_research_context", + "label": "Context", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "context", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L9" + }, + { + "id": "specs_004_deterministic_content_selection_research_context_34", + "label": "Context", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "context", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L34" + }, + { + "id": "specs_004_deterministic_content_selection_research_context_59", + "label": "Context", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "context", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L59" + }, + { + "id": "specs_004_deterministic_content_selection_research_context_91", + "label": "Context", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "context", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L91" + }, + { + "id": "specs_004_deterministic_content_selection_research_decisions", + "label": "Decisions", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decisions", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L12" + }, + { + "id": "specs_004_deterministic_content_selection_research_decisions_37", + "label": "Decisions", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decisions", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L37" + }, + { + "id": "specs_004_deterministic_content_selection_research_decisions_62", + "label": "Decisions", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decisions", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L62" + }, + { + "id": "specs_004_deterministic_content_selection_research_decisions_94", + "label": "Decisions", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decisions", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L94" + }, + { + "id": "specs_004_deterministic_content_selection_research_rationale", + "label": "Rationale", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "rationale", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L22" + }, + { + "id": "specs_004_deterministic_content_selection_research_rationale_106", + "label": "Rationale", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "rationale", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L106" + }, + { + "id": "specs_004_deterministic_content_selection_research_rationale_51", + "label": "Rationale", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "rationale", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L51" + }, + { + "id": "specs_004_deterministic_content_selection_research_rationale_84", + "label": "Rationale", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "rationale", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L84" + }, + { + "id": "specs_004_deterministic_content_selection_research_research_architectural_decisions_deterministic_content_selection", + "label": "Research & Architectural Decisions: Deterministic Content Selection", + "_origin": "ast", + "community": 117, + "community_name": "1. Text Normalization Pipeline", + "file_type": "document", + "node_kind": "heading", + "norm_label": "research & architectural decisions: deterministic content selection", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_dependencies_execution_order", + "label": "Dependencies & Execution Order", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "dependencies & execution order", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L100" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_implementation_for_user_story_1", + "label": "Implementation for User Story 1", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation for user story 1", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L41" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_implementation_for_user_story_2", + "label": "Implementation for User Story 2", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation for user story 2", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L61" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_implementation_for_user_story_3", + "label": "Implementation for User Story 3", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation for user story 3", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L82" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_implementation_strategy", + "label": "Implementation Strategy", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation strategy", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L138" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_incremental_delivery_phases_4_5_6", + "label": "Incremental Delivery (Phases 4, 5 & 6)", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "incremental delivery (phases 4, 5 & 6)", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L145" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_mvp_first_phases_1_2_3", + "label": "MVP First (Phases 1, 2 & 3)", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "mvp first (phases 1, 2 & 3)", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L140" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_parallel_opportunities", + "label": "Parallel Opportunities", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "parallel opportunities", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L129" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_phase_1_setup_shared_infrastructure", + "label": "Phase 1: Setup (Shared Infrastructure)", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 1: setup (shared infrastructure)", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L7" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_phase_2_foundational_data_structures_normalization_engine", + "label": "Phase 2: Foundational (Data Structures & Normalization Engine)", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 2: foundational (data structures & normalization engine)", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L15" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_phase_3_user_story_1_deterministic_selection_with_text_consensus_priority_p1_mvp", + "label": "Phase 3: User Story 1 - Deterministic Selection with Text Consensus (Priority: P1) \ud83c\udfaf MVP", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 3: user story 1 - deterministic selection with text consensus (priority: p1) \ud83c\udfaf mvp", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L30" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_phase_4_user_story_2_resilient_decision_under_disagreement_or_degradation_priority_p2", + "label": "Phase 4: User Story 2 - Resilient Decision Under Disagreement or Degradation (Priority: P2)", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 4: user story 2 - resilient decision under disagreement or degradation (priority: p2)", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L50" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_phase_5_user_story_3_non_destructive_json_batch_processing_priority_p3", + "label": "Phase 5: User Story 3 - Non-Destructive JSON Batch Processing (Priority: P3)", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 5: user story 3 - non-destructive json batch processing (priority: p3)", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L71" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_phase_6_polish_cross_cutting_concerns", + "label": "Phase 6: Polish & Cross-Cutting Concerns", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 6: polish & cross-cutting concerns", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L91" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_tasks_deterministic_article_content_selection", + "label": "Tasks: Deterministic Article Content Selection", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "tasks: deterministic article content selection", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_tests_for_user_story_1", + "label": "Tests for User Story 1 \ud83e\uddea", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "tests for user story 1 \ud83e\uddea", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L36" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_tests_for_user_story_2", + "label": "Tests for User Story 2 \ud83e\uddea", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "tests for user story 2 \ud83e\uddea", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L56" + }, + { + "id": "specs_004_deterministic_content_selection_tasks_tests_for_user_story_3", + "label": "Tests for User Story 3 \ud83e\uddea", + "_origin": "ast", + "community": 118, + "community_name": "Tasks: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "tests for user story 3 \ud83e\uddea", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L77" + }, + { + "id": "scripts_select_article_extractor_py_any", + "label": "Any", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "any", + "source_file": "", + "source_location": "" + }, + { + "id": "scripts_select_article_extractor_py_enum", + "label": "Enum", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "enum", + "source_file": "", + "source_location": "" + }, + { + "id": "scripts_select_article_extractor_py_str", + "label": "str", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "code", + "norm_label": "str", + "source_file": "", + "source_location": "" + }, + { + "id": "scripts_select_article_extractor_rationale_168", + "label": "Extrai campo de texto, erro e calcula tokens/shingles para um motor.", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "extrai campo de texto, erro e calcula tokens/shingles para um motor.", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L168" + }, + { + "id": "scripts_select_article_extractor_rationale_34", + "label": "Nomes can\u00f4nicos e cat\u00e1logo fechado dos motores de extra\u00e7\u00e3o.", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "nomes canonicos e catalogo fechado dos motores de extracao.", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L34" + }, + { + "id": "scripts_select_article_extractor_rationale_374", + "label": "Orquestrador determin\u00edstico completo para um \u00fanico artigo. Classifica\u2026", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "orquestrador deterministico completo para um unico artigo. classifica...", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L374" + }, + { + "id": "scripts_select_article_extractor_rationale_42", + "label": "Estado de viabilidade do candidato para forma\u00e7\u00e3o do conjunto ativo.", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "estado de viabilidade do candidato para formacao do conjunto ativo.", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L42" + }, + { + "id": "scripts_select_article_extractor_rationale_79", + "label": "Resultado detalhado da sele\u00e7\u00e3o para um artigo individual.", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "resultado detalhado da selecao para um artigo individual.", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L79" + }, + { + "id": "tests_test_select_article_extractor_rationale_116", + "label": "CT-001: Tr\u00eas candidatos com consenso e um vencedor claro -> Selecionar o maior\u2026", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "ct-001: tres candidatos com consenso e um vencedor claro -> selecionar o maior...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L116" + }, + { + "id": "tests_test_select_article_extractor_rationale_129", + "label": "CT-002: Dois ou mais candidatos dentro de 0,03 do maior score -> Selecionar o\u2026", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "ct-002: dois ou mais candidatos dentro de 0,03 do maior score -> selecionar o...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L129" + }, + { + "id": "tests_test_select_article_extractor_rationale_141", + "label": "CT-003: Empate t\u00e9cnico e mesma quantidade de shingles -> Aplicar prioridade\u2026", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "ct-003: empate tecnico e mesma quantidade de shingles -> aplicar prioridade...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L141" + }, + { + "id": "tests_test_select_article_extractor_rationale_162", + "label": "CT-004: Tr\u00eas candidatos sem consenso -> Selecionar a quantidade mediana de\u2026", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "ct-004: tres candidatos sem consenso -> selecionar a quantidade mediana de...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L162" + }, + { + "id": "tests_test_select_article_extractor_rationale_177", + "label": "CT-005: Dois candidatos sem consenso -> Selecionar a maior quantidade de\u2026", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "ct-005: dois candidatos sem consenso -> selecionar a maior quantidade de...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L177" + }, + { + "id": "tests_test_select_article_extractor_rationale_191", + "label": "CT-006: Somente um candidato utiliz\u00e1vel -> Selecionar esse candidato.", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "ct-006: somente um candidato utilizavel -> selecionar esse candidato.", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L191" + }, + { + "id": "tests_test_select_article_extractor_rationale_203", + "label": "CT-007: Nenhum utiliz\u00e1vel, mas existe candidato degradado -> Executar o\u2026", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "ct-007: nenhum utilizavel, mas existe candidato degradado -> executar o...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L203" + }, + { + "id": "tests_test_select_article_extractor_rationale_215", + "label": "CT-008: Todos os candidatos indispon\u00edveis -> Selecionar newspaper4k.", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "ct-008: todos os candidatos indisponiveis -> selecionar newspaper4k.", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L215" + }, + { + "id": "tests_test_select_article_extractor_rationale_227", + "label": "CT-009: Readability retorna apenas um fragmento pequeno enquanto os outros\u2026", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "ct-009: readability retorna apenas um fragmento pequeno enquanto os outros...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L227" + }, + { + "id": "tests_test_select_article_extractor_rationale_244", + "label": "CT-010: Um candidato cont\u00e9m o conte\u00fado comum e muito conte\u00fado excedente ->\u2026", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "ct-010: um candidato contem o conteudo comum e muito conteudo excedente ->...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L244" + }, + { + "id": "tests_test_select_article_extractor_rationale_260", + "label": "CT-011: Um candidato cont\u00e9m somente parte do conte\u00fado comum -> Perde cobertura\u2026", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "ct-011: um candidato contem somente parte do conteudo comum -> perde cobertura...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L260" + }, + { + "id": "tests_test_select_article_extractor_rationale_364", + "label": "Teste de regress\u00e3o para o Artigo 1 (Los puntajes de River vs. Independiente\u2026", + "_origin": "ast", + "community": 119, + "community_name": "select_article_extractor", + "file_type": "rationale", + "norm_label": "teste de regressao para o artigo 1 (los puntajes de river vs. independiente...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L364" + }, + { + "id": "specify_templates_constitution_template", + "label": "constitution-template.md", + "_origin": "ast", + "community": 12, + "community_name": "Constitution Template", + "file_type": "document", + "node_kind": "page", + "norm_label": "constitution-template.md", + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L1" + }, + { + "id": "specify_templates_constitution_template_core_principles", + "label": "Core Principles", + "_origin": "ast", + "community": 12, + "community_name": "Constitution Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "core principles", + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L4" + }, + { + "id": "specify_templates_constitution_template_governance", + "label": "Governance", + "_origin": "ast", + "community": 12, + "community_name": "Constitution Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "governance", + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L43" + }, + { + "id": "specify_templates_constitution_template_principle_1_name", + "label": "[PRINCIPLE_1_NAME]", + "_origin": "ast", + "community": 12, + "community_name": "Constitution Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[principle_1_name]", + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L6" + }, + { + "id": "specify_templates_constitution_template_principle_2_name", + "label": "[PRINCIPLE_2_NAME]", + "_origin": "ast", + "community": 12, + "community_name": "Constitution Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[principle_2_name]", + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L11" + }, + { + "id": "specify_templates_constitution_template_principle_3_name", + "label": "[PRINCIPLE_3_NAME]", + "_origin": "ast", + "community": 12, + "community_name": "Constitution Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[principle_3_name]", + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L16" + }, + { + "id": "specify_templates_constitution_template_principle_4_name", + "label": "[PRINCIPLE_4_NAME]", + "_origin": "ast", + "community": 12, + "community_name": "Constitution Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[principle_4_name]", + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L21" + }, + { + "id": "specify_templates_constitution_template_principle_5_name", + "label": "[PRINCIPLE_5_NAME]", + "_origin": "ast", + "community": 12, + "community_name": "Constitution Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[principle_5_name]", + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L26" + }, + { + "id": "specify_templates_constitution_template_project_name_constitution", + "label": "[PROJECT_NAME] Constitution", + "_origin": "ast", + "community": 12, + "community_name": "Constitution Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[project_name] constitution", + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L1" + }, + { + "id": "specify_templates_constitution_template_section_2_name", + "label": "[SECTION_2_NAME]", + "_origin": "ast", + "community": 12, + "community_name": "Constitution Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[section_2_name]", + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L31" + }, + { + "id": "specify_templates_constitution_template_section_3_name", + "label": "[SECTION_3_NAME]", + "_origin": "ast", + "community": 12, + "community_name": "Constitution Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[section_3_name]", + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L37" + }, + { + "id": "scripts_select_article_extractor_py_path", + "label": "Path", + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "code", + "norm_label": "path", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_select_article_extractor_py_path", + "label": "Path", + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "code", + "norm_label": "path", + "source_file": "", + "source_location": "" + }, + { + "id": "scripts_select_article_extractor_rationale_431", + "label": "Salva dados em JSON de forma at\u00f4mica utilizando arquivo tempor\u00e1rio e rename.", + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "rationale", + "norm_label": "salva dados em json de forma atomica utilizando arquivo temporario e rename.", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L431" + }, + { + "id": "scripts_select_article_extractor_rationale_455", + "label": "L\u00ea o JSON de entrada, valida a estrutura, processa todos os artigos e grava o\u2026", + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "rationale", + "norm_label": "le o json de entrada, valida a estrutura, processa todos os artigos e grava o...", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L455" + }, + { + "id": "tests_test_select_article_extractor_rationale_273", + "label": "CT-012: A entrada j\u00e1 cont\u00e9m selected_extractor -> Recalcular e substituir\u2026", + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "rationale", + "norm_label": "ct-012: a entrada ja contem selected_extractor -> recalcular e substituir...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L273" + }, + { + "id": "tests_test_select_article_extractor_rationale_299", + "label": "CT-013: articles est\u00e1 vazio -> Gerar sa\u00edda v\u00e1lida com articles vazio.", + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "rationale", + "norm_label": "ct-013: articles esta vazio -> gerar saida valida com articles vazio.", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L299" + }, + { + "id": "tests_test_select_article_extractor_rationale_318", + "label": "CT-014: JSON inv\u00e1lido -> N\u00e3o gerar sa\u00edda.", + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "rationale", + "norm_label": "ct-014: json invalido -> nao gerar saida.", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L318" + }, + { + "id": "tests_test_select_article_extractor_rationale_335", + "label": "Testa o processamento em lote completo sobre o arquivo real\u2026", + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "rationale", + "norm_label": "testa o processamento em lote completo sobre o arquivo real...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L335" + }, + { + "id": "tests_test_select_article_extractor_rationale_398", + "label": "Gera um lote de 100 artigos sint\u00e9ticos e verifica 100% de repetibilidade\u2026", + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "rationale", + "norm_label": "gera um lote de 100 artigos sinteticos e verifica 100% de repetibilidade...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L398" + }, + { + "id": "tests_test_select_article_extractor_rationale_447", + "label": "Testa a integra\u00e7\u00e3o end-to-end do pipeline downstream: L\u00ea o JSON enriquecido com\u2026", + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "rationale", + "norm_label": "testa a integracao end-to-end do pipeline downstream: le o json enriquecido com...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L447" + }, + { + "id": "tests_test_select_article_extractor_rationale_484", + "label": "E2E: Executa scripts/select_article_extractor.py como subprocesso real na linha\u2026", + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "rationale", + "norm_label": "e2e: executa scripts/select_article_extractor.py como subprocesso real na linha...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L484" + }, + { + "id": "tests_test_select_article_extractor_rationale_521", + "label": "E2E: Executa CLI sem a flag -o e valida cria\u00e7\u00e3o autom\u00e1tica de\u2026", + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "rationale", + "norm_label": "e2e: executa cli sem a flag -o e valida criacao automatica de...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L521" + }, + { + "id": "tests_test_select_article_extractor_rationale_549", + "label": "E2E: Executa CLI com JSON inv\u00e1lido e valida c\u00f3digo de sa\u00edda e erro no stderr.", + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "rationale", + "norm_label": "e2e: executa cli com json invalido e valida codigo de saida e erro no stderr.", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L549" + }, + { + "id": "tests_test_select_article_extractor_rationale_562", + "label": "E2E: Executa CLI com arquivo inexistente e valida c\u00f3digo 1 e mensagem no stderr.", + "_origin": "ast", + "community": 120, + "community_name": "process_batch", + "file_type": "rationale", + "norm_label": "e2e: executa cli com arquivo inexistente e valida codigo 1 e mensagem no stderr.", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L562" + }, + { + "id": "tests_test_select_article_extractor", + "label": "test_select_article_extractor.py", + "_origin": "ast", + "community": 122, + "community_name": "test_select_article_extractor.py", + "file_type": "code", + "norm_label": "test_select_article_extractor.py", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L1" + }, + { + "id": "scripts_select_article_extractor_rationale_107", + "label": "Executa a normaliza\u00e7\u00e3o determin\u00edstica para compara\u00e7\u00e3o: 1. Decodificar entidades\u2026", + "_origin": "ast", + "community": 122, + "community_name": "test_select_article_extractor.py", + "file_type": "rationale", + "norm_label": "executa a normalizacao deterministica para comparacao: 1. decodificar entidades...", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L107" + }, + { + "id": "scripts_select_article_extractor_rationale_148", + "label": "Gera conjunto de shingles ordenados de tamanho window_size (padr\u00e3o 5). - Se\u2026", + "_origin": "ast", + "community": 122, + "community_name": "test_select_article_extractor.py", + "file_type": "rationale", + "norm_label": "gera conjunto de shingles ordenados de tamanho window_size (padrao 5). - se...", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L148" + }, + { + "id": "tests_test_select_article_extractor_rationale_1", + "label": "Su\u00edte de Testes Automatizados para o Seletor Determin\u00edstico de Extrator. Cobre\u2026", + "_origin": "ast", + "community": 122, + "community_name": "test_select_article_extractor.py", + "file_type": "rationale", + "norm_label": "suite de testes automatizados para o seletor deterministico de extrator. cobre...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L1" + }, + { + "id": "tests_test_select_article_extractor_rationale_60", + "label": "Garante que marca\u00e7\u00e3o de imagem Markdown  seja descartada e link\u2026", + "_origin": "ast", + "community": 122, + "community_name": "test_select_article_extractor.py", + "file_type": "rationale", + "norm_label": "garante que marcacao de imagem markdown  seja descartada e link...", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L60" + }, + { + "id": "specs_004_deterministic_content_selection_spec_assumptions", + "label": "Assumptions", + "_origin": "ast", + "community": 123, + "community_name": "Feature Specification: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "assumptions", + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L129" + }, + { + "id": "specs_004_deterministic_content_selection_spec_edge_cases", + "label": "Edge Cases", + "_origin": "ast", + "community": 123, + "community_name": "Feature Specification: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "edge cases", + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L56" + }, + { + "id": "specs_004_deterministic_content_selection_spec_feature_specification_deterministic_content_selection", + "label": "Feature Specification: Deterministic Content Selection", + "_origin": "ast", + "community": 123, + "community_name": "Feature Specification: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "feature specification: deterministic content selection", + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_spec_functional_requirements", + "label": "Functional Requirements", + "_origin": "ast", + "community": 123, + "community_name": "Feature Specification: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "functional requirements", + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L67" + }, + { + "id": "specs_004_deterministic_content_selection_spec_key_entities_include_if_feature_involves_data", + "label": "Key Entities *(include if feature involves data)*", + "_origin": "ast", + "community": 123, + "community_name": "Feature Specification: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "key entities *(include if feature involves data)*", + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L111" + }, + { + "id": "specs_004_deterministic_content_selection_spec_measurable_outcomes", + "label": "Measurable Outcomes", + "_origin": "ast", + "community": 123, + "community_name": "Feature Specification: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "measurable outcomes", + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L120" + }, + { + "id": "specs_004_deterministic_content_selection_spec_requirements_mandatory", + "label": "Requirements *(mandatory)*", + "_origin": "ast", + "community": 123, + "community_name": "Feature Specification: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "requirements *(mandatory)*", + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L65" + }, + { + "id": "specs_004_deterministic_content_selection_spec_success_criteria_mandatory", + "label": "Success Criteria *(mandatory)*", + "_origin": "ast", + "community": 123, + "community_name": "Feature Specification: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "success criteria *(mandatory)*", + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L118" + }, + { + "id": "specs_004_deterministic_content_selection_spec_user_scenarios_testing_mandatory", + "label": "User Scenarios & Testing *(mandatory)*", + "_origin": "ast", + "community": 123, + "community_name": "Feature Specification: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user scenarios & testing *(mandatory)*", + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L8" + }, + { + "id": "specs_004_deterministic_content_selection_spec_user_story_1_deterministic_selection_with_text_consensus_priority_p1", + "label": "User Story 1 - Deterministic Selection with Text Consensus (Priority: P1)", + "_origin": "ast", + "community": 123, + "community_name": "Feature Specification: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user story 1 - deterministic selection with text consensus (priority: p1)", + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L10" + }, + { + "id": "specs_004_deterministic_content_selection_spec_user_story_2_resilient_decision_under_total_disagreement_or_degradation_priority_p2", + "label": "User Story 2 - Resilient Decision Under Total Disagreement or Degradation (Priority: P2)", + "_origin": "ast", + "community": 123, + "community_name": "Feature Specification: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user story 2 - resilient decision under total disagreement or degradation (priority: p2)", + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L25" + }, + { + "id": "specs_004_deterministic_content_selection_spec_user_story_3_non_destructive_json_batch_processing_priority_p3", + "label": "User Story 3 - Non-Destructive JSON Batch Processing (Priority: P3)", + "_origin": "ast", + "community": 123, + "community_name": "Feature Specification: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user story 3 - non-destructive json batch processing (priority: p3)", + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L41" + }, + { + "id": "specs_004_deterministic_content_selection_data_model_1_domain_entities_value_types", + "label": "1. Domain Entities & Value Types", + "_origin": "ast", + "community": 124, + "community_name": "2. Entity Descriptions & Fields", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. domain entities & value types", + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L7" + }, + { + "id": "specs_004_deterministic_content_selection_data_model_2_entity_descriptions_fields", + "label": "2. Entity Descriptions & Fields", + "_origin": "ast", + "community": 124, + "community_name": "2. Entity Descriptions & Fields", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. entity descriptions & fields", + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L64" + }, + { + "id": "specs_004_deterministic_content_selection_data_model_3_json_schema_mapping", + "label": "3. JSON Schema Mapping", + "_origin": "ast", + "community": 124, + "community_name": "2. Entity Descriptions & Fields", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. json schema mapping", + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L123" + }, + { + "id": "specs_004_deterministic_content_selection_data_model_articleselectionresult_dataclass", + "label": "`ArticleSelectionResult` (Dataclass)", + "_origin": "ast", + "community": 124, + "community_name": "2. Entity Descriptions & Fields", + "file_type": "document", + "node_kind": "heading", + "norm_label": "`articleselectionresult` (dataclass)", + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L96" + }, + { + "id": "specs_004_deterministic_content_selection_data_model_batchprocessingresult_dataclass", + "label": "`BatchProcessingResult` (Dataclass)", + "_origin": "ast", + "community": 124, + "community_name": "2. Entity Descriptions & Fields", + "file_type": "document", + "node_kind": "heading", + "norm_label": "`batchprocessingresult` (dataclass)", + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L110" + }, + { + "id": "specs_004_deterministic_content_selection_data_model_candidatestatus_enum", + "label": "`CandidateStatus` (Enum)", + "_origin": "ast", + "community": 124, + "community_name": "2. Entity Descriptions & Fields", + "file_type": "document", + "node_kind": "heading", + "norm_label": "`candidatestatus` (enum)", + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L72" + }, + { + "id": "specs_004_deterministic_content_selection_data_model_data_model_deterministic_content_selection", + "label": "Data Model: Deterministic Content Selection", + "_origin": "ast", + "community": 124, + "community_name": "2. Entity Descriptions & Fields", + "file_type": "document", + "node_kind": "heading", + "norm_label": "data model: deterministic content selection", + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_data_model_entrada", + "label": "Entrada", + "_origin": "ast", + "community": 124, + "community_name": "2. Entity Descriptions & Fields", + "file_type": "document", + "node_kind": "heading", + "norm_label": "entrada", + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L125" + }, + { + "id": "specs_004_deterministic_content_selection_data_model_extractorcandidate_dataclass", + "label": "`ExtractorCandidate` (Dataclass)", + "_origin": "ast", + "community": 124, + "community_name": "2. Entity Descriptions & Fields", + "file_type": "document", + "node_kind": "heading", + "norm_label": "`extractorcandidate` (dataclass)", + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L78" + }, + { + "id": "specs_004_deterministic_content_selection_data_model_extractorname_enum_literal", + "label": "`ExtractorName` (Enum / Literal)", + "_origin": "ast", + "community": 124, + "community_name": "2. Entity Descriptions & Fields", + "file_type": "document", + "node_kind": "heading", + "norm_label": "`extractorname` (enum / literal)", + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L66" + }, + { + "id": "specs_004_deterministic_content_selection_data_model_sa\u00edda", + "label": "Sa\u00edda", + "_origin": "ast", + "community": 124, + "community_name": "2. Entity Descriptions & Fields", + "file_type": "document", + "node_kind": "heading", + "norm_label": "saida", + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L132" + }, + { + "id": "specs_004_deterministic_content_selection_plan_constitution_check", + "label": "Constitution Check", + "_origin": "ast", + "community": 125, + "community_name": "Implementation Plan: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "constitution check", + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L29" + }, + { + "id": "specs_004_deterministic_content_selection_plan_documentation_this_feature", + "label": "Documentation (this feature)", + "_origin": "ast", + "community": 125, + "community_name": "Implementation Plan: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "documentation (this feature)", + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L45" + }, + { + "id": "specs_004_deterministic_content_selection_plan_implementation_phases", + "label": "Implementation Phases", + "_origin": "ast", + "community": 125, + "community_name": "Implementation Plan: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation phases", + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L79" + }, + { + "id": "specs_004_deterministic_content_selection_plan_implementation_plan_deterministic_article_content_selection", + "label": "Implementation Plan: Deterministic Article Content Selection", + "_origin": "ast", + "community": 125, + "community_name": "Implementation Plan: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation plan: deterministic article content selection", + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_plan_phase_0_outline_research_completed", + "label": "Phase 0: Outline & Research *(Completed)*", + "_origin": "ast", + "community": 125, + "community_name": "Implementation Plan: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 0: outline & research *(completed)*", + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L81" + }, + { + "id": "specs_004_deterministic_content_selection_plan_phase_1_design_contracts_completed", + "label": "Phase 1: Design & Contracts *(Completed)*", + "_origin": "ast", + "community": 125, + "community_name": "Implementation Plan: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 1: design & contracts *(completed)*", + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L87" + }, + { + "id": "specs_004_deterministic_content_selection_plan_phase_2_tasks_execution_next_step_via_speckit_tasks", + "label": "Phase 2: Tasks & Execution *(Next Step via `/speckit-tasks`)*", + "_origin": "ast", + "community": 125, + "community_name": "Implementation Plan: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 2: tasks & execution *(next step via `/speckit-tasks`)*", + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L92" + }, + { + "id": "specs_004_deterministic_content_selection_plan_project_structure", + "label": "Project Structure", + "_origin": "ast", + "community": 125, + "community_name": "Implementation Plan: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "project structure", + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L43" + }, + { + "id": "specs_004_deterministic_content_selection_plan_source_code_layout", + "label": "Source Code Layout", + "_origin": "ast", + "community": 125, + "community_name": "Implementation Plan: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "source code layout", + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L61" + }, + { + "id": "specs_004_deterministic_content_selection_plan_summary", + "label": "Summary", + "_origin": "ast", + "community": 125, + "community_name": "Implementation Plan: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "summary", + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L9" + }, + { + "id": "specs_004_deterministic_content_selection_plan_technical_context", + "label": "Technical Context", + "_origin": "ast", + "community": 125, + "community_name": "Implementation Plan: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "technical context", + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L15" + }, + { + "id": "specs_004_deterministic_content_selection_checklists_deterministic_selection", + "label": "deterministic-selection.md", + "_origin": "ast", + "community": 126, + "community_name": "Deterministic Content Selection Checklist: End-to-End Requirements Quality", + "file_type": "document", + "node_kind": "page", + "norm_label": "deterministic-selection.md", + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_checklists_deterministic_selection_candidate_state_transitions_resilience", + "label": "Candidate State Transitions & Resilience", + "_origin": "ast", + "community": 126, + "community_name": "Deterministic Content Selection Checklist: End-to-End Requirements Quality", + "file_type": "document", + "node_kind": "heading", + "norm_label": "candidate state transitions & resilience", + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L33" + }, + { + "id": "specs_004_deterministic_content_selection_checklists_deterministic_selection_decision_tie_breaking_hierarchy", + "label": "Decision & Tie-Breaking Hierarchy", + "_origin": "ast", + "community": 126, + "community_name": "Deterministic Content Selection Checklist: End-to-End Requirements Quality", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision & tie-breaking hierarchy", + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L26" + }, + { + "id": "specs_004_deterministic_content_selection_checklists_deterministic_selection_deterministic_content_selection_checklist_end_to_end_requirements_quality", + "label": "Deterministic Content Selection Checklist: End-to-End Requirements Quality", + "_origin": "ast", + "community": 126, + "community_name": "Deterministic Content Selection Checklist: End-to-End Requirements Quality", + "file_type": "document", + "node_kind": "heading", + "norm_label": "deterministic content selection checklist: end-to-end requirements quality", + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_checklists_deterministic_selection_json_schema_integrity_atomic_i_o", + "label": "JSON Schema Integrity & Atomic I/O", + "_origin": "ast", + "community": 126, + "community_name": "Deterministic Content Selection Checklist: End-to-End Requirements Quality", + "file_type": "document", + "node_kind": "heading", + "norm_label": "json schema integrity & atomic i/o", + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L39" + }, + { + "id": "specs_004_deterministic_content_selection_checklists_deterministic_selection_notes", + "label": "Notes", + "_origin": "ast", + "community": 126, + "community_name": "Deterministic Content Selection Checklist: End-to-End Requirements Quality", + "file_type": "document", + "node_kind": "heading", + "norm_label": "notes", + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L48" + }, + { + "id": "specs_004_deterministic_content_selection_checklists_deterministic_selection_shingles_consensus_metric_formulation", + "label": "Shingles & Consensus Metric Formulation", + "_origin": "ast", + "community": 126, + "community_name": "Deterministic Content Selection Checklist: End-to-End Requirements Quality", + "file_type": "document", + "node_kind": "heading", + "norm_label": "shingles & consensus metric formulation", + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L20" + }, + { + "id": "specs_004_deterministic_content_selection_checklists_deterministic_selection_text_normalization_tokenization_quality", + "label": "Text Normalization & Tokenization Quality", + "_origin": "ast", + "community": 126, + "community_name": "Deterministic Content Selection Checklist: End-to-End Requirements Quality", + "file_type": "document", + "node_kind": "heading", + "norm_label": "text normalization & tokenization quality", + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L13" + }, + { + "id": "specs_004_deterministic_content_selection_quickstart_1_pr\u00e9_requisitos", + "label": "1. Pr\u00e9-requisitos", + "_origin": "ast", + "community": 127, + "community_name": "Quickstart: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. pre-requisitos", + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L7" + }, + { + "id": "specs_004_deterministic_content_selection_quickstart_2_execu\u00e7\u00e3o_r\u00e1pida_via_cli", + "label": "2. Execu\u00e7\u00e3o R\u00e1pida via CLI", + "_origin": "ast", + "community": 127, + "community_name": "Quickstart: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. execucao rapida via cli", + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L14" + }, + { + "id": "specs_004_deterministic_content_selection_quickstart_3_execu\u00e7\u00e3o_dos_testes_automatizados", + "label": "3. Execu\u00e7\u00e3o dos Testes Automatizados", + "_origin": "ast", + "community": 127, + "community_name": "Quickstart: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. execucao dos testes automatizados", + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L33" + }, + { + "id": "specs_004_deterministic_content_selection_quickstart_4_valida\u00e7\u00e3o_program\u00e1tica_uso_como_m\u00f3dulo_python", + "label": "4. Valida\u00e7\u00e3o Program\u00e1tica / Uso como M\u00f3dulo Python", + "_origin": "ast", + "community": 127, + "community_name": "Quickstart: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. validacao programatica / uso como modulo python", + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L43" + }, + { + "id": "specs_004_deterministic_content_selection_quickstart_cen\u00e1rio_1_selecionar_o_melhor_extrator_para_uma_extra\u00e7\u00e3o_existente", + "label": "Cen\u00e1rio 1: Selecionar o melhor extrator para uma extra\u00e7\u00e3o existente", + "_origin": "ast", + "community": 127, + "community_name": "Quickstart: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cenario 1: selecionar o melhor extrator para uma extracao existente", + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L16" + }, + { + "id": "specs_004_deterministic_content_selection_quickstart_cen\u00e1rio_2_especificar_caminho_de_sa\u00edda_customizado_e_modo_verboso", + "label": "Cen\u00e1rio 2: Especificar caminho de sa\u00edda customizado e modo verboso", + "_origin": "ast", + "community": 127, + "community_name": "Quickstart: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cenario 2: especificar caminho de saida customizado e modo verboso", + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L24" + }, + { + "id": "specs_004_deterministic_content_selection_quickstart_quickstart_deterministic_article_content_selection", + "label": "Quickstart: Deterministic Article Content Selection", + "_origin": "ast", + "community": 127, + "community_name": "Quickstart: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "quickstart: deterministic article content selection", + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_checklists_requirements", + "label": "004-deterministic-content-selection/checklists/requirements.md", + "_origin": "ast", + "community": 128, + "community_name": "Specification Quality Checklist: Deterministic Content Selection", + "file_type": "document", + "node_kind": "page", + "norm_label": "004-deterministic-content-selection/checklists/requirements.md", + "source_file": "specs/004-deterministic-content-selection/checklists/requirements.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_checklists_requirements_content_quality", + "label": "Content Quality", + "_origin": "ast", + "community": 128, + "community_name": "Specification Quality Checklist: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "content quality", + "source_file": "specs/004-deterministic-content-selection/checklists/requirements.md", + "source_location": "L7" + }, + { + "id": "specs_004_deterministic_content_selection_checklists_requirements_feature_readiness", + "label": "Feature Readiness", + "_origin": "ast", + "community": 128, + "community_name": "Specification Quality Checklist: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "feature readiness", + "source_file": "specs/004-deterministic-content-selection/checklists/requirements.md", + "source_location": "L25" + }, + { + "id": "specs_004_deterministic_content_selection_checklists_requirements_notes", + "label": "Notes", + "_origin": "ast", + "community": 128, + "community_name": "Specification Quality Checklist: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "notes", + "source_file": "specs/004-deterministic-content-selection/checklists/requirements.md", + "source_location": "L32" + }, + { + "id": "specs_004_deterministic_content_selection_checklists_requirements_requirement_completeness", + "label": "Requirement Completeness", + "_origin": "ast", + "community": 128, + "community_name": "Specification Quality Checklist: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "requirement completeness", + "source_file": "specs/004-deterministic-content-selection/checklists/requirements.md", + "source_location": "L14" + }, + { + "id": "specs_004_deterministic_content_selection_checklists_requirements_specification_quality_checklist_deterministic_content_selection", + "label": "Specification Quality Checklist: Deterministic Content Selection", + "_origin": "ast", + "community": 128, + "community_name": "Specification Quality Checklist: Deterministic Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "specification quality checklist: deterministic content selection", + "source_file": "specs/004-deterministic-content-selection/checklists/requirements.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_contracts_cli_contract", + "label": "004-deterministic-content-selection/contracts/cli-contract.md", + "_origin": "ast", + "community": 129, + "community_name": "CLI Interface Contract: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "page", + "norm_label": "004-deterministic-content-selection/contracts/cli-contract.md", + "source_file": "specs/004-deterministic-content-selection/contracts/cli-contract.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_contracts_cli_contract_1_command_syntax", + "label": "1. Command Syntax", + "_origin": "ast", + "community": 129, + "community_name": "CLI Interface Contract: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. command syntax", + "source_file": "specs/004-deterministic-content-selection/contracts/cli-contract.md", + "source_location": "L7" + }, + { + "id": "specs_004_deterministic_content_selection_contracts_cli_contract_2_arguments_and_flags", + "label": "2. Arguments and Flags", + "_origin": "ast", + "community": 129, + "community_name": "CLI Interface Contract: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. arguments and flags", + "source_file": "specs/004-deterministic-content-selection/contracts/cli-contract.md", + "source_location": "L15" + }, + { + "id": "specs_004_deterministic_content_selection_contracts_cli_contract_3_standard_streams_i_o", + "label": "3. Standard Streams (I/O)", + "_origin": "ast", + "community": 129, + "community_name": "CLI Interface Contract: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. standard streams (i/o)", + "source_file": "specs/004-deterministic-content-selection/contracts/cli-contract.md", + "source_location": "L26" + }, + { + "id": "specs_004_deterministic_content_selection_contracts_cli_contract_4_exit_codes", + "label": "4. Exit Codes", + "_origin": "ast", + "community": 129, + "community_name": "CLI Interface Contract: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. exit codes", + "source_file": "specs/004-deterministic-content-selection/contracts/cli-contract.md", + "source_location": "L48" + }, + { + "id": "specs_004_deterministic_content_selection_contracts_cli_contract_cli_interface_contract_deterministic_article_content_selection", + "label": "CLI Interface Contract: Deterministic Article Content Selection", + "_origin": "ast", + "community": 129, + "community_name": "CLI Interface Contract: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cli interface contract: deterministic article content selection", + "source_file": "specs/004-deterministic-content-selection/contracts/cli-contract.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_references_exports", + "label": "exports.md", + "_origin": "ast", + "community": 13, + "community_name": "Graphify Exports", + "file_type": "document", + "node_kind": "page", + "norm_label": "exports.md", + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_references_exports_graphify_reference_extra_exports_and_benchmark", + "label": "graphify reference: extra exports and benchmark", + "_origin": "ast", + "community": 13, + "community_name": "Graphify Exports", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graphify reference: extra exports and benchmark", + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_references_exports_step_6b_wiki_only_if_wiki_flag", + "label": "Step 6b - Wiki (only if --wiki flag)", + "_origin": "ast", + "community": 13, + "community_name": "Graphify Exports", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 6b - wiki (only if --wiki flag)", + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L5" + }, + { + "id": "agents_skills_graphify_references_exports_step_7_neo4j_export_only_if_neo4j_or_neo4j_push_flag", + "label": "Step 7 - Neo4j export (only if --neo4j or --neo4j-push flag)", + "_origin": "ast", + "community": 13, + "community_name": "Graphify Exports", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 7 - neo4j export (only if --neo4j or --neo4j-push flag)", + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L15" + }, + { + "id": "agents_skills_graphify_references_exports_step_7a_falkordb_export_only_if_falkordb_or_falkordb_push_flag", + "label": "Step 7a - FalkorDB export (only if --falkordb or --falkordb-push flag)", + "_origin": "ast", + "community": 13, + "community_name": "Graphify Exports", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 7a - falkordb export (only if --falkordb or --falkordb-push flag)", + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L31" + }, + { + "id": "agents_skills_graphify_references_exports_step_7b_svg_export_only_if_svg_flag", + "label": "Step 7b - SVG export (only if --svg flag)", + "_origin": "ast", + "community": 13, + "community_name": "Graphify Exports", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 7b - svg export (only if --svg flag)", + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L47" + }, + { + "id": "agents_skills_graphify_references_exports_step_7c_graphml_export_only_if_graphml_flag", + "label": "Step 7c - GraphML export (only if --graphml flag)", + "_origin": "ast", + "community": 13, + "community_name": "Graphify Exports", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 7c - graphml export (only if --graphml flag)", + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L53" + }, + { + "id": "agents_skills_graphify_references_exports_step_7d_mcp_server_only_if_mcp_flag", + "label": "Step 7d - MCP server (only if --mcp flag)", + "_origin": "ast", + "community": 13, + "community_name": "Graphify Exports", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 7d - mcp server (only if --mcp flag)", + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L59" + }, + { + "id": "agents_skills_graphify_references_exports_step_8_token_reduction_benchmark_only_if_total_words_5000", + "label": "Step 8 - Token reduction benchmark (only if total_words > 5000)", + "_origin": "ast", + "community": 13, + "community_name": "Graphify Exports", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 8 - token reduction benchmark (only if total_words > 5000)", + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L79" + }, + { + "id": "specs_004_deterministic_content_selection_data_model", + "label": "004-deterministic-content-selection/data-model.md", + "_origin": "ast", + "community": 130, + "community_name": "004-deterministic-content-selection/spec.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "004-deterministic-content-selection/data-model.md", + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_plan", + "label": "004-deterministic-content-selection/plan.md", + "_origin": "ast", + "community": 130, + "community_name": "004-deterministic-content-selection/spec.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "004-deterministic-content-selection/plan.md", + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_quickstart", + "label": "004-deterministic-content-selection/quickstart.md", + "_origin": "ast", + "community": 130, + "community_name": "004-deterministic-content-selection/spec.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "004-deterministic-content-selection/quickstart.md", + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_research", + "label": "004-deterministic-content-selection/research.md", + "_origin": "ast", + "community": 130, + "community_name": "004-deterministic-content-selection/spec.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "004-deterministic-content-selection/research.md", + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_spec", + "label": "004-deterministic-content-selection/spec.md", + "_origin": "ast", + "community": 130, + "community_name": "004-deterministic-content-selection/spec.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "004-deterministic-content-selection/spec.md", + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_tasks", + "label": "004-deterministic-content-selection/tasks.md", + "_origin": "ast", + "community": 130, + "community_name": "004-deterministic-content-selection/spec.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "004-deterministic-content-selection/tasks.md", + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_contracts_json_schema", + "label": "004-deterministic-content-selection/contracts/json-schema.md", + "_origin": "ast", + "community": 131, + "community_name": "JSON Schema Contract: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "page", + "norm_label": "004-deterministic-content-selection/contracts/json-schema.md", + "source_file": "specs/004-deterministic-content-selection/contracts/json-schema.md", + "source_location": "L1" + }, + { + "id": "specs_004_deterministic_content_selection_contracts_json_schema_1_input_json_schema", + "label": "1. Input JSON Schema", + "_origin": "ast", + "community": 131, + "community_name": "JSON Schema Contract: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. input json schema", + "source_file": "specs/004-deterministic-content-selection/contracts/json-schema.md", + "source_location": "L7" + }, + { + "id": "specs_004_deterministic_content_selection_contracts_json_schema_2_output_json_schema", + "label": "2. Output JSON Schema", + "_origin": "ast", + "community": 131, + "community_name": "JSON Schema Contract: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. output json schema", + "source_file": "specs/004-deterministic-content-selection/contracts/json-schema.md", + "source_location": "L52" + }, + { + "id": "specs_004_deterministic_content_selection_contracts_json_schema_json_schema_contract_deterministic_article_content_selection", + "label": "JSON Schema Contract: Deterministic Article Content Selection", + "_origin": "ast", + "community": 131, + "community_name": "JSON Schema Contract: Deterministic Article Content Selection", + "file_type": "document", + "node_kind": "heading", + "norm_label": "json schema contract: deterministic article content selection", + "source_file": "specs/004-deterministic-content-selection/contracts/json-schema.md", + "source_location": "L1" + }, + { + "id": "agents_skills_ponytail_skill", + "label": "ponytail/SKILL.md", + "_origin": "ast", + "community": 14, + "community_name": "Ponytail Configuration", + "file_type": "document", + "frontmatter": { + "name": "ponytail", + "description": ">", + "argument-hint": "[lite|full|ultra]", + "license": "MIT" + }, + "node_kind": "page", + "norm_label": "ponytail/skill.md", + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_ponytail_skill_boundaries", + "label": "Boundaries", + "_origin": "ast", + "community": 14, + "community_name": "Ponytail Configuration", + "file_type": "document", + "node_kind": "heading", + "norm_label": "boundaries", + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L114" + }, + { + "id": "agents_skills_ponytail_skill_intensity", + "label": "Intensity", + "_origin": "ast", + "community": 14, + "community_name": "Ponytail Configuration", + "file_type": "document", + "node_kind": "heading", + "norm_label": "intensity", + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L77" + }, + { + "id": "agents_skills_ponytail_skill_output", + "label": "Output", + "_origin": "ast", + "community": 14, + "community_name": "Ponytail Configuration", + "file_type": "document", + "node_kind": "heading", + "norm_label": "output", + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L66" + }, + { + "id": "agents_skills_ponytail_skill_persistence", + "label": "Persistence", + "_origin": "ast", + "community": 14, + "community_name": "Ponytail Configuration", + "file_type": "document", + "node_kind": "heading", + "norm_label": "persistence", + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L26" + }, + { + "id": "agents_skills_ponytail_skill_ponytail", + "label": "Ponytail", + "_origin": "ast", + "community": 14, + "community_name": "Ponytail Configuration", + "file_type": "document", + "node_kind": "heading", + "norm_label": "ponytail", + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L20" + }, + { + "id": "agents_skills_ponytail_skill_rules", + "label": "Rules", + "_origin": "ast", + "community": 14, + "community_name": "Ponytail Configuration", + "file_type": "document", + "node_kind": "heading", + "norm_label": "rules", + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L56" + }, + { + "id": "agents_skills_ponytail_skill_the_ladder", + "label": "The ladder", + "_origin": "ast", + "community": 14, + "community_name": "Ponytail Configuration", + "file_type": "document", + "node_kind": "heading", + "norm_label": "the ladder", + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L32" + }, + { + "id": "agents_skills_ponytail_skill_when_not_to_be_lazy", + "label": "When NOT to be lazy", + "_origin": "ast", + "community": 14, + "community_name": "Ponytail Configuration", + "file_type": "document", + "node_kind": "heading", + "norm_label": "when not to be lazy", + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L90" + }, + { + "id": "specify_templates_plan_template", + "label": "plan-template.md", + "_origin": "ast", + "community": 15, + "community_name": "Implementation Planning Template", + "file_type": "document", + "node_kind": "page", + "norm_label": "plan-template.md", + "source_file": ".specify/templates/plan-template.md", + "source_location": "L1" + }, + { + "id": "specify_templates_plan_template_complexity_tracking", + "label": "Complexity Tracking", + "_origin": "ast", + "community": 15, + "community_name": "Implementation Planning Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "complexity tracking", + "source_file": ".specify/templates/plan-template.md", + "source_location": "L106" + }, + { + "id": "specify_templates_plan_template_constitution_check", + "label": "Constitution Check", + "_origin": "ast", + "community": 15, + "community_name": "Implementation Planning Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "constitution check", + "source_file": ".specify/templates/plan-template.md", + "source_location": "L39" + }, + { + "id": "specify_templates_plan_template_documentation_this_feature", + "label": "Documentation (this feature)", + "_origin": "ast", + "community": 15, + "community_name": "Implementation Planning Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "documentation (this feature)", + "source_file": ".specify/templates/plan-template.md", + "source_location": "L47" + }, + { + "id": "specify_templates_plan_template_implementation_plan_feature", + "label": "Implementation Plan: [FEATURE]", + "_origin": "ast", + "community": 15, + "community_name": "Implementation Planning Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation plan: [feature]", + "source_file": ".specify/templates/plan-template.md", + "source_location": "L1" + }, + { + "id": "specify_templates_plan_template_project_structure", + "label": "Project Structure", + "_origin": "ast", + "community": 15, + "community_name": "Implementation Planning Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "project structure", + "source_file": ".specify/templates/plan-template.md", + "source_location": "L45" + }, + { + "id": "specify_templates_plan_template_source_code_repository_root", + "label": "Source Code (repository root)", + "_origin": "ast", + "community": 15, + "community_name": "Implementation Planning Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "source code (repository root)", + "source_file": ".specify/templates/plan-template.md", + "source_location": "L59" + }, + { + "id": "specify_templates_plan_template_summary", + "label": "Summary", + "_origin": "ast", + "community": 15, + "community_name": "Implementation Planning Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "summary", + "source_file": ".specify/templates/plan-template.md", + "source_location": "L9" + }, + { + "id": "specify_templates_plan_template_technical_context", + "label": "Technical Context", + "_origin": "ast", + "community": 15, + "community_name": "Implementation Planning Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "technical context", + "source_file": ".specify/templates/plan-template.md", + "source_location": "L13" + }, + { + "id": "agents_skills_ponytail_help_skill", + "label": "ponytail-help/SKILL.md", + "_origin": "ast", + "community": 16, + "community_name": "Ponytail Help", + "file_type": "document", + "frontmatter": { + "name": "ponytail-help", + "description": ">" + }, + "node_kind": "page", + "norm_label": "ponytail-help/skill.md", + "source_file": ".agents/skills/ponytail-help/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_ponytail_help_skill_configure_default_mode", + "label": "Configure Default Mode", + "_origin": "ast", + "community": 16, + "community_name": "Ponytail Help", + "file_type": "document", + "node_kind": "heading", + "norm_label": "configure default mode", + "source_file": ".agents/skills/ponytail-help/SKILL.md", + "source_location": "L44" + }, + { + "id": "agents_skills_ponytail_help_skill_deactivate", + "label": "Deactivate", + "_origin": "ast", + "community": 16, + "community_name": "Ponytail Help", + "file_type": "document", + "node_kind": "heading", + "norm_label": "deactivate", + "source_file": ".agents/skills/ponytail-help/SKILL.md", + "source_location": "L39" + }, + { + "id": "agents_skills_ponytail_help_skill_levels", + "label": "Levels", + "_origin": "ast", + "community": 16, + "community_name": "Ponytail Help", + "file_type": "document", + "node_kind": "heading", + "norm_label": "levels", + "source_file": ".agents/skills/ponytail-help/SKILL.md", + "source_location": "L14" + }, + { + "id": "agents_skills_ponytail_help_skill_more", + "label": "More", + "_origin": "ast", + "community": 16, + "community_name": "Ponytail Help", + "file_type": "document", + "node_kind": "heading", + "norm_label": "more", + "source_file": ".agents/skills/ponytail-help/SKILL.md", + "source_location": "L69" + }, + { + "id": "agents_skills_ponytail_help_skill_ponytail_help", + "label": "Ponytail Help", + "_origin": "ast", + "community": 16, + "community_name": "Ponytail Help", + "file_type": "document", + "node_kind": "heading", + "norm_label": "ponytail help", + "source_file": ".agents/skills/ponytail-help/SKILL.md", + "source_location": "L9" + }, + { + "id": "agents_skills_ponytail_help_skill_skills", + "label": "Skills", + "_origin": "ast", + "community": 16, + "community_name": "Ponytail Help", + "file_type": "document", + "node_kind": "heading", + "norm_label": "skills", + "source_file": ".agents/skills/ponytail-help/SKILL.md", + "source_location": "L24" + }, + { + "id": "agents_skills_ponytail_help_skill_update", + "label": "Update", + "_origin": "ast", + "community": 16, + "community_name": "Ponytail Help", + "file_type": "document", + "node_kind": "heading", + "norm_label": "update", + "source_file": ".agents/skills/ponytail-help/SKILL.md", + "source_location": "L63" + }, + { + "id": "agents_skills_speckit_checklist_skill", + "label": "speckit-checklist/SKILL.md", + "_origin": "ast", + "community": 17, + "community_name": "Checklist Generation", + "file_type": "document", + "frontmatter": { + "name": "speckit-checklist", + "description": "Generate a custom checklist for the current feature based on user requirements.", + "compatibility": "Requires spec-kit project structure with .specify/ directory" + }, + "node_kind": "page", + "norm_label": "speckit-checklist/skill.md", + "source_file": ".agents/skills/speckit-checklist/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_speckit_checklist_skill_anti_examples_what_not_to_do", + "label": "Anti-Examples: What NOT To Do", + "_origin": "ast", + "community": 17, + "community_name": "Checklist Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "anti-examples: what not to do", + "source_file": ".agents/skills/speckit-checklist/SKILL.md", + "source_location": "L320" + }, + { + "id": "agents_skills_speckit_checklist_skill_checklist_purpose_unit_tests_for_english", + "label": "Checklist Purpose: \"Unit Tests for English\"", + "_origin": "ast", + "community": 17, + "community_name": "Checklist Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "checklist purpose: \"unit tests for english\"", + "source_file": ".agents/skills/speckit-checklist/SKILL.md", + "source_location": "L11" + }, + { + "id": "agents_skills_speckit_checklist_skill_example_checklist_types_sample_items", + "label": "Example Checklist Types & Sample Items", + "_origin": "ast", + "community": 17, + "community_name": "Checklist Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "example checklist types & sample items", + "source_file": ".agents/skills/speckit-checklist/SKILL.md", + "source_location": "L277" + }, + { + "id": "agents_skills_speckit_checklist_skill_execution_steps", + "label": "Execution Steps", + "_origin": "ast", + "community": 17, + "community_name": "Checklist Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "execution steps", + "source_file": ".agents/skills/speckit-checklist/SKILL.md", + "source_location": "L85" + }, + { + "id": "agents_skills_speckit_checklist_skill_post_execution_checks", + "label": "Post-Execution Checks", + "_origin": "ast", + "community": 17, + "community_name": "Checklist Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "post-execution checks", + "source_file": ".agents/skills/speckit-checklist/SKILL.md", + "source_location": "L351" + }, + { + "id": "agents_skills_speckit_checklist_skill_pre_execution_checks", + "label": "Pre-Execution Checks", + "_origin": "ast", + "community": 17, + "community_name": "Checklist Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "pre-execution checks", + "source_file": ".agents/skills/speckit-checklist/SKILL.md", + "source_location": "L49" + }, + { + "id": "agents_skills_speckit_checklist_skill_user_input", + "label": "User Input", + "_origin": "ast", + "community": 17, + "community_name": "Checklist Generation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user input", + "source_file": ".agents/skills/speckit-checklist/SKILL.md", + "source_location": "L41" + }, + { + "id": "agents_skills_speckit_clarify_skill", + "label": "speckit-clarify/SKILL.md", + "_origin": "ast", + "community": 18, + "community_name": "Clarification Workflow", + "file_type": "document", + "frontmatter": { + "name": "speckit-clarify", + "description": "Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec.", + "compatibility": "Requires spec-kit project structure with .specify/ directory" + }, + "node_kind": "page", + "norm_label": "speckit-clarify/skill.md", + "source_file": ".agents/skills/speckit-clarify/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_speckit_clarify_skill_completion_report", + "label": "Completion Report", + "_origin": "ast", + "community": 18, + "community_name": "Clarification Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "completion report", + "source_file": ".agents/skills/speckit-clarify/SKILL.md", + "source_location": "L275" + }, + { + "id": "agents_skills_speckit_clarify_skill_done_when", + "label": "Done When", + "_origin": "ast", + "community": 18, + "community_name": "Clarification Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "done when", + "source_file": ".agents/skills/speckit-clarify/SKILL.md", + "source_location": "L286" + }, + { + "id": "agents_skills_speckit_clarify_skill_mandatory_post_execution_hooks", + "label": "Mandatory Post-Execution Hooks", + "_origin": "ast", + "community": 18, + "community_name": "Clarification Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "mandatory post-execution hooks", + "source_file": ".agents/skills/speckit-clarify/SKILL.md", + "source_location": "L240" + }, + { + "id": "agents_skills_speckit_clarify_skill_outline", + "label": "Outline", + "_origin": "ast", + "community": 18, + "community_name": "Clarification Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "outline", + "source_file": ".agents/skills/speckit-clarify/SKILL.md", + "source_location": "L55" + }, + { + "id": "agents_skills_speckit_clarify_skill_pre_execution_checks", + "label": "Pre-Execution Checks", + "_origin": "ast", + "community": 18, + "community_name": "Clarification Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "pre-execution checks", + "source_file": ".agents/skills/speckit-clarify/SKILL.md", + "source_location": "L19" + }, + { + "id": "agents_skills_speckit_clarify_skill_user_input", + "label": "User Input", + "_origin": "ast", + "community": 18, + "community_name": "Clarification Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user input", + "source_file": ".agents/skills/speckit-clarify/SKILL.md", + "source_location": "L11" + }, + { + "id": "agents_skills_speckit_implement_skill", + "label": "speckit-implement/SKILL.md", + "_origin": "ast", + "community": 19, + "community_name": "Implementation Workflow", + "file_type": "document", + "frontmatter": { + "name": "speckit-implement", + "description": "Execute the implementation plan by processing and executing all tasks defined in tasks.md", + "compatibility": "Requires spec-kit project structure with .specify/ directory" + }, + "node_kind": "page", + "norm_label": "speckit-implement/skill.md", + "source_file": ".agents/skills/speckit-implement/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_speckit_implement_skill_completion_report", + "label": "Completion Report", + "_origin": "ast", + "community": 19, + "community_name": "Implementation Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "completion report", + "source_file": ".agents/skills/speckit-implement/SKILL.md", + "source_location": "L217" + }, + { + "id": "agents_skills_speckit_implement_skill_done_when", + "label": "Done When", + "_origin": "ast", + "community": 19, + "community_name": "Implementation Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "done when", + "source_file": ".agents/skills/speckit-implement/SKILL.md", + "source_location": "L221" + }, + { + "id": "agents_skills_speckit_implement_skill_mandatory_post_execution_hooks", + "label": "Mandatory Post-Execution Hooks", + "_origin": "ast", + "community": 19, + "community_name": "Implementation Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "mandatory post-execution hooks", + "source_file": ".agents/skills/speckit-implement/SKILL.md", + "source_location": "L182" + }, + { + "id": "agents_skills_speckit_implement_skill_outline", + "label": "Outline", + "_origin": "ast", + "community": 19, + "community_name": "Implementation Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "outline", + "source_file": ".agents/skills/speckit-implement/SKILL.md", + "source_location": "L55" + }, + { + "id": "agents_skills_speckit_implement_skill_pre_execution_checks", + "label": "Pre-Execution Checks", + "_origin": "ast", + "community": 19, + "community_name": "Implementation Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "pre-execution checks", + "source_file": ".agents/skills/speckit-implement/SKILL.md", + "source_location": "L19" + }, + { + "id": "agents_skills_speckit_implement_skill_user_input", + "label": "User Input", + "_origin": "ast", + "community": 19, + "community_name": "Implementation Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user input", + "source_file": ".agents/skills/speckit-implement/SKILL.md", + "source_location": "L11" + }, + { + "id": "specify_scripts_powershell_common", + "label": "common.ps1", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "common.ps1", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L1" + }, + { + "id": "specify_scripts_powershell_common_find_specifyroot", + "label": "Find-SpecifyRoot()", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "find-specifyroot()", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L6" + }, + { + "id": "specify_scripts_powershell_common_format_speckitcommand", + "label": "Format-SpecKitCommand()", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "format-speckitcommand()", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L302" + }, + { + "id": "specify_scripts_powershell_common_get_currentbranch", + "label": "Get-CurrentBranch()", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "get-currentbranch()", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L98" + }, + { + "id": "specify_scripts_powershell_common_get_featurepathsenv", + "label": "Get-FeaturePathsEnv()", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "get-featurepathsenv()", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L160" + }, + { + "id": "specify_scripts_powershell_common_get_invokeseparator", + "label": "Get-InvokeSeparator()", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "get-invokeseparator()", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L268" + }, + { + "id": "specify_scripts_powershell_common_get_normalizedpriority", + "label": "Get-NormalizedPriority()", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "get-normalizedpriority()", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L335" + }, + { + "id": "specify_scripts_powershell_common_get_python3command", + "label": "Get-Python3Command()", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "get-python3command()", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L322" + }, + { + "id": "specify_scripts_powershell_common_get_reporoot", + "label": "Get-RepoRoot()", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "get-reporoot()", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L79" + }, + { + "id": "specify_scripts_powershell_common_get_sortedextensionids", + "label": "Get-SortedExtensionIds()", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "get-sortedextensionids()", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L352" + }, + { + "id": "specify_scripts_powershell_common_resolve_specifyinitdir", + "label": "Resolve-SpecifyInitDir()", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "resolve-specifyinitdir()", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L39" + }, + { + "id": "specify_scripts_powershell_common_resolve_template", + "label": "Resolve-Template()", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "resolve-template()", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L416" + }, + { + "id": "specify_scripts_powershell_common_resolve_templatecontent", + "label": "Resolve-TemplateContent()", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "resolve-templatecontent()", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L515" + }, + { + "id": "specify_scripts_powershell_common_save_featurejson", + "label": "Save-FeatureJson()", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "save-featurejson()", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L114" + }, + { + "id": "specify_scripts_powershell_common_test_dirhasfiles", + "label": "Test-DirHasFiles()", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "test-dirhasfiles()", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L251" + }, + { + "id": "specify_scripts_powershell_common_test_fileexists", + "label": "Test-FileExists()", + "_origin": "ast", + "community": 2, + "community_name": "SpecKit Utilities", + "file_type": "code", + "norm_label": "test-fileexists()", + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L240" + }, + { + "id": "agents_skills_graphify_references_query", + "label": "query.md", + "_origin": "ast", + "community": 20, + "community_name": "Graph Query", + "file_type": "document", + "node_kind": "page", + "norm_label": "query.md", + "source_file": ".agents/skills/graphify/references/query.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_references_query_for_graphify_explain", + "label": "For /graphify explain", + "_origin": "ast", + "community": 20, + "community_name": "Graph Query", + "file_type": "document", + "node_kind": "heading", + "norm_label": "for /graphify explain", + "source_file": ".agents/skills/graphify/references/query.md", + "source_location": "L254" + }, + { + "id": "agents_skills_graphify_references_query_for_graphify_path", + "label": "For /graphify path", + "_origin": "ast", + "community": 20, + "community_name": "Graph Query", + "file_type": "document", + "node_kind": "heading", + "norm_label": "for /graphify path", + "source_file": ".agents/skills/graphify/references/query.md", + "source_location": "L186" + }, + { + "id": "agents_skills_graphify_references_query_graphify_reference_query_path_explain", + "label": "graphify reference: query, path, explain", + "_origin": "ast", + "community": 20, + "community_name": "Graph Query", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graphify reference: query, path, explain", + "source_file": ".agents/skills/graphify/references/query.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_references_query_step_0_constrained_query_expansion_required_before_traversal", + "label": "Step 0 \u2014 Constrained query expansion (REQUIRED before traversal)", + "_origin": "ast", + "community": 20, + "community_name": "Graph Query", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 0 \u2014 constrained query expansion (required before traversal)", + "source_file": ".agents/skills/graphify/references/query.md", + "source_location": "L23" + }, + { + "id": "agents_skills_graphify_references_query_step_1_traversal", + "label": "Step 1 \u2014 Traversal", + "_origin": "ast", + "community": 20, + "community_name": "Graph Query", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 1 \u2014 traversal", + "source_file": ".agents/skills/graphify/references/query.md", + "source_location": "L61" + }, + { + "id": "agents_skills_speckit_constitution_skill", + "label": "speckit-constitution/SKILL.md", + "_origin": "ast", + "community": 21, + "community_name": "Constitution Workflow", + "file_type": "document", + "frontmatter": { + "name": "speckit-constitution", + "description": "Create or update the project constitution from interactive or provided principle inputs.", + "compatibility": "Requires spec-kit project structure with .specify/ directory" + }, + "node_kind": "page", + "norm_label": "speckit-constitution/skill.md", + "source_file": ".agents/skills/speckit-constitution/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_speckit_constitution_skill_outline", + "label": "Outline", + "_origin": "ast", + "community": 21, + "community_name": "Constitution Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "outline", + "source_file": ".agents/skills/speckit-constitution/SKILL.md", + "source_location": "L74" + }, + { + "id": "agents_skills_speckit_constitution_skill_post_execution_checks", + "label": "Post-Execution Checks", + "_origin": "ast", + "community": 21, + "community_name": "Constitution Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "post-execution checks", + "source_file": ".agents/skills/speckit-constitution/SKILL.md", + "source_location": "L145" + }, + { + "id": "agents_skills_speckit_constitution_skill_pre_execution_checks", + "label": "Pre-Execution Checks", + "_origin": "ast", + "community": 21, + "community_name": "Constitution Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "pre-execution checks", + "source_file": ".agents/skills/speckit-constitution/SKILL.md", + "source_location": "L38" + }, + { + "id": "agents_skills_speckit_constitution_skill_scope_guard", + "label": "Scope Guard", + "_origin": "ast", + "community": 21, + "community_name": "Constitution Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "scope guard", + "source_file": ".agents/skills/speckit-constitution/SKILL.md", + "source_location": "L19" + }, + { + "id": "agents_skills_speckit_constitution_skill_user_input", + "label": "User Input", + "_origin": "ast", + "community": 21, + "community_name": "Constitution Workflow", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user input", + "source_file": ".agents/skills/speckit-constitution/SKILL.md", + "source_location": "L11" + }, + { + "id": "specify_scripts_powershell_create_new_feature", + "label": "create-new-feature.ps1", + "_origin": "ast", + "community": 22, + "community_name": "Feature Branch Creation", + "file_type": "code", + "norm_label": "create-new-feature.ps1", + "source_file": ".specify/scripts/powershell/create-new-feature.ps1", + "source_location": "L1" + }, + { + "id": "specify_scripts_powershell_create_new_feature_convertto_cleanbranchname", + "label": "ConvertTo-CleanBranchName()", + "_origin": "ast", + "community": 22, + "community_name": "Feature Branch Creation", + "file_type": "code", + "norm_label": "convertto-cleanbranchname()", + "source_file": ".specify/scripts/powershell/create-new-feature.ps1", + "source_location": "L86" + }, + { + "id": "specify_scripts_powershell_create_new_feature_get_branchname", + "label": "Get-BranchName()", + "_origin": "ast", + "community": 22, + "community_name": "Feature Branch Creation", + "file_type": "code", + "norm_label": "get-branchname()", + "source_file": ".specify/scripts/powershell/create-new-feature.ps1", + "source_location": "L123" + }, + { + "id": "specify_scripts_powershell_create_new_feature_get_fittedbranchname", + "label": "Get-FittedBranchName()", + "_origin": "ast", + "community": 22, + "community_name": "Feature Branch Creation", + "file_type": "code", + "norm_label": "get-fittedbranchname()", + "source_file": ".specify/scripts/powershell/create-new-feature.ps1", + "source_location": "L92" + }, + { + "id": "specify_scripts_powershell_create_new_feature_get_highestnumberfromspecs", + "label": "Get-HighestNumberFromSpecs()", + "_origin": "ast", + "community": 22, + "community_name": "Feature Branch Creation", + "file_type": "code", + "norm_label": "get-highestnumberfromspecs()", + "source_file": ".specify/scripts/powershell/create-new-feature.ps1", + "source_location": "L53" + }, + { + "id": "specify_scripts_powershell_create_new_feature_test_specprefixinuse", + "label": "Test-SpecPrefixInUse()", + "_origin": "ast", + "community": 22, + "community_name": "Feature Branch Creation", + "file_type": "code", + "norm_label": "test-specprefixinuse()", + "source_file": ".specify/scripts/powershell/create-new-feature.ps1", + "source_location": "L71" + }, + { + "id": "agents_skills_ponytail_audit_skill", + "label": "ponytail-audit/SKILL.md", + "_origin": "ast", + "community": 23, + "community_name": "Ponytail Audit", + "file_type": "document", + "frontmatter": { + "name": "ponytail-audit", + "description": ">" + }, + "node_kind": "page", + "norm_label": "ponytail-audit/skill.md", + "source_file": ".agents/skills/ponytail-audit/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_ponytail_audit_skill_boundaries", + "label": "Boundaries", + "_origin": "ast", + "community": 23, + "community_name": "Ponytail Audit", + "file_type": "document", + "node_kind": "heading", + "norm_label": "boundaries", + "source_file": ".agents/skills/ponytail-audit/SKILL.md", + "source_location": "L36" + }, + { + "id": "agents_skills_ponytail_audit_skill_hunt", + "label": "Hunt", + "_origin": "ast", + "community": 23, + "community_name": "Ponytail Audit", + "file_type": "document", + "node_kind": "heading", + "norm_label": "hunt", + "source_file": ".agents/skills/ponytail-audit/SKILL.md", + "source_location": "L25" + }, + { + "id": "agents_skills_ponytail_audit_skill_output", + "label": "Output", + "_origin": "ast", + "community": 23, + "community_name": "Ponytail Audit", + "file_type": "document", + "node_kind": "heading", + "norm_label": "output", + "source_file": ".agents/skills/ponytail-audit/SKILL.md", + "source_location": "L31" + }, + { + "id": "agents_skills_ponytail_audit_skill_tags", + "label": "Tags", + "_origin": "ast", + "community": 23, + "community_name": "Ponytail Audit", + "file_type": "document", + "node_kind": "heading", + "norm_label": "tags", + "source_file": ".agents/skills/ponytail-audit/SKILL.md", + "source_location": "L15" + }, + { + "id": "agents_skills_ponytail_gain_skill", + "label": "ponytail-gain/SKILL.md", + "_origin": "ast", + "community": 24, + "community_name": "Ponytail Metrics", + "file_type": "document", + "frontmatter": { + "name": "ponytail-gain", + "description": ">" + }, + "node_kind": "page", + "norm_label": "ponytail-gain/skill.md", + "source_file": ".agents/skills/ponytail-gain/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_ponytail_gain_skill_boundaries", + "label": "Boundaries", + "_origin": "ast", + "community": 24, + "community_name": "Ponytail Metrics", + "file_type": "document", + "node_kind": "heading", + "norm_label": "boundaries", + "source_file": ".agents/skills/ponytail-gain/SKILL.md", + "source_location": "L47" + }, + { + "id": "agents_skills_ponytail_gain_skill_honesty_boundary", + "label": "Honesty boundary", + "_origin": "ast", + "community": 24, + "community_name": "Ponytail Metrics", + "file_type": "document", + "node_kind": "heading", + "norm_label": "honesty boundary", + "source_file": ".agents/skills/ponytail-gain/SKILL.md", + "source_location": "L39" + }, + { + "id": "agents_skills_ponytail_gain_skill_ponytail_gain", + "label": "Ponytail Gain", + "_origin": "ast", + "community": 24, + "community_name": "Ponytail Metrics", + "file_type": "document", + "node_kind": "heading", + "norm_label": "ponytail gain", + "source_file": ".agents/skills/ponytail-gain/SKILL.md", + "source_location": "L11" + }, + { + "id": "agents_skills_ponytail_gain_skill_scoreboard", + "label": "Scoreboard", + "_origin": "ast", + "community": 24, + "community_name": "Ponytail Metrics", + "file_type": "document", + "node_kind": "heading", + "norm_label": "scoreboard", + "source_file": ".agents/skills/ponytail-gain/SKILL.md", + "source_location": "L21" + }, + { + "id": "agents_skills_ponytail_review_skill", + "label": "ponytail-review/SKILL.md", + "_origin": "ast", + "community": 25, + "community_name": "Ponytail Review", + "file_type": "document", + "frontmatter": { + "name": "ponytail-review", + "description": ">" + }, + "node_kind": "page", + "norm_label": "ponytail-review/skill.md", + "source_file": ".agents/skills/ponytail-review/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_ponytail_review_skill_boundaries", + "label": "Boundaries", + "_origin": "ast", + "community": 25, + "community_name": "Ponytail Review", + "file_type": "document", + "node_kind": "heading", + "norm_label": "boundaries", + "source_file": ".agents/skills/ponytail-review/SKILL.md", + "source_location": "L50" + }, + { + "id": "agents_skills_ponytail_review_skill_examples", + "label": "Examples", + "_origin": "ast", + "community": 25, + "community_name": "Ponytail Review", + "file_type": "document", + "node_kind": "heading", + "norm_label": "examples", + "source_file": ".agents/skills/ponytail-review/SKILL.md", + "source_location": "L29" + }, + { + "id": "agents_skills_ponytail_review_skill_format", + "label": "Format", + "_origin": "ast", + "community": 25, + "community_name": "Ponytail Review", + "file_type": "document", + "node_kind": "heading", + "norm_label": "format", + "source_file": ".agents/skills/ponytail-review/SKILL.md", + "source_location": "L16" + }, + { + "id": "agents_skills_ponytail_review_skill_scoring", + "label": "Scoring", + "_origin": "ast", + "community": 25, + "community_name": "Ponytail Review", + "file_type": "document", + "node_kind": "heading", + "norm_label": "scoring", + "source_file": ".agents/skills/ponytail-review/SKILL.md", + "source_location": "L44" + }, + { + "id": "agents_skills_speckit_taskstoissues_skill", + "label": "speckit-taskstoissues/SKILL.md", + "_origin": "ast", + "community": 26, + "community_name": "Task Issue Conversion", + "file_type": "document", + "frontmatter": { + "name": "speckit-taskstoissues", + "description": "Convert existing tasks into actionable, dependency-ordered GitHub issues for the feature based on available design artifacts.", + "compatibility": "Requires spec-kit project structure with .specify/ directory" + }, + "node_kind": "page", + "norm_label": "speckit-taskstoissues/skill.md", + "source_file": ".agents/skills/speckit-taskstoissues/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_speckit_taskstoissues_skill_outline", + "label": "Outline", + "_origin": "ast", + "community": 26, + "community_name": "Task Issue Conversion", + "file_type": "document", + "node_kind": "heading", + "norm_label": "outline", + "source_file": ".agents/skills/speckit-taskstoissues/SKILL.md", + "source_location": "L55" + }, + { + "id": "agents_skills_speckit_taskstoissues_skill_post_execution_checks", + "label": "Post-Execution Checks", + "_origin": "ast", + "community": 26, + "community_name": "Task Issue Conversion", + "file_type": "document", + "node_kind": "heading", + "norm_label": "post-execution checks", + "source_file": ".agents/skills/speckit-taskstoissues/SKILL.md", + "source_location": "L77" + }, + { + "id": "agents_skills_speckit_taskstoissues_skill_pre_execution_checks", + "label": "Pre-Execution Checks", + "_origin": "ast", + "community": 26, + "community_name": "Task Issue Conversion", + "file_type": "document", + "node_kind": "heading", + "norm_label": "pre-execution checks", + "source_file": ".agents/skills/speckit-taskstoissues/SKILL.md", + "source_location": "L19" + }, + { + "id": "agents_skills_speckit_taskstoissues_skill_user_input", + "label": "User Input", + "_origin": "ast", + "community": 26, + "community_name": "Task Issue Conversion", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user input", + "source_file": ".agents/skills/speckit-taskstoissues/SKILL.md", + "source_location": "L11" + }, + { + "id": "specify_templates_checklist_template", + "label": "checklist-template.md", + "_origin": "ast", + "community": 27, + "community_name": "Checklist Template", + "file_type": "document", + "node_kind": "page", + "norm_label": "checklist-template.md", + "source_file": ".specify/templates/checklist-template.md", + "source_location": "L1" + }, + { + "id": "specify_templates_checklist_template_category_1", + "label": "[Category 1]", + "_origin": "ast", + "community": 27, + "community_name": "Checklist Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[category 1]", + "source_file": ".specify/templates/checklist-template.md", + "source_location": "L25" + }, + { + "id": "specify_templates_checklist_template_category_2", + "label": "[Category 2]", + "_origin": "ast", + "community": 27, + "community_name": "Checklist Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[category 2]", + "source_file": ".specify/templates/checklist-template.md", + "source_location": "L31" + }, + { + "id": "specify_templates_checklist_template_checklist_type_checklist_feature_name", + "label": "[CHECKLIST TYPE] Checklist: [FEATURE NAME]", + "_origin": "ast", + "community": 27, + "community_name": "Checklist Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "[checklist type] checklist: [feature name]", + "source_file": ".specify/templates/checklist-template.md", + "source_location": "L1" + }, + { + "id": "specify_templates_checklist_template_notes", + "label": "Notes", + "_origin": "ast", + "community": 27, + "community_name": "Checklist Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "notes", + "source_file": ".specify/templates/checklist-template.md", + "source_location": "L37" + }, + { + "id": "agents_skills_graphify_references_add_watch", + "label": "add-watch.md", + "_origin": "ast", + "community": 28, + "community_name": "Graphify Watch Mode", + "file_type": "document", + "node_kind": "page", + "norm_label": "add-watch.md", + "source_file": ".agents/skills/graphify/references/add-watch.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_references_add_watch_for_graphify_add", + "label": "For /graphify add", + "_origin": "ast", + "community": 28, + "community_name": "Graphify Watch Mode", + "file_type": "document", + "node_kind": "heading", + "norm_label": "for /graphify add", + "source_file": ".agents/skills/graphify/references/add-watch.md", + "source_location": "L5" + }, + { + "id": "agents_skills_graphify_references_add_watch_for_watch", + "label": "For --watch", + "_origin": "ast", + "community": 28, + "community_name": "Graphify Watch Mode", + "file_type": "document", + "node_kind": "heading", + "norm_label": "for --watch", + "source_file": ".agents/skills/graphify/references/add-watch.md", + "source_location": "L39" + }, + { + "id": "agents_skills_graphify_references_add_watch_graphify_reference_add_a_url_and_watch_a_folder", + "label": "graphify reference: add a URL and watch a folder", + "_origin": "ast", + "community": 28, + "community_name": "Graphify Watch Mode", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graphify reference: add a url and watch a folder", + "source_file": ".agents/skills/graphify/references/add-watch.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_references_hooks", + "label": "hooks.md", + "_origin": "ast", + "community": 29, + "community_name": "Graphify Hooks", + "file_type": "document", + "node_kind": "page", + "norm_label": "hooks.md", + "source_file": ".agents/skills/graphify/references/hooks.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_references_hooks_for_git_commit_hook", + "label": "For git commit hook", + "_origin": "ast", + "community": 29, + "community_name": "Graphify Hooks", + "file_type": "document", + "node_kind": "heading", + "norm_label": "for git commit hook", + "source_file": ".agents/skills/graphify/references/hooks.md", + "source_location": "L5" + }, + { + "id": "agents_skills_graphify_references_hooks_for_native_claude_md_integration", + "label": "For native CLAUDE.md integration", + "_origin": "ast", + "community": 29, + "community_name": "Graphify Hooks", + "file_type": "document", + "node_kind": "heading", + "norm_label": "for native claude.md integration", + "source_file": ".agents/skills/graphify/references/hooks.md", + "source_location": "L21" + }, + { + "id": "agents_skills_graphify_references_hooks_graphify_reference_commit_hook_and_native_claude_md_integration", + "label": "graphify reference: commit hook and native CLAUDE.md integration", + "_origin": "ast", + "community": 29, + "community_name": "Graphify Hooks", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graphify reference: commit hook and native claude.md integration", + "source_file": ".agents/skills/graphify/references/hooks.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_skill", + "label": "graphify/SKILL.md", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "frontmatter": { + "name": "graphify", + "description": "Use for any question about a codebase, its architecture, file relationships, or project content \u2014 especially when graphify-out/ exists, where the question should be treated as a graphify query first. Turns any input (code, docs, papers, images, videos) into a persistent knowledge graph with god nodes, community detection, and query/path/explain tools." + }, + "node_kind": "page", + "norm_label": "graphify/skill.md", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_skill_for_graphify_add_and_watch", + "label": "For /graphify add and --watch", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "for /graphify add and --watch", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L695" + }, + { + "id": "agents_skills_graphify_skill_for_graphify_query", + "label": "For /graphify query", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "for /graphify query", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L683" + }, + { + "id": "agents_skills_graphify_skill_for_the_commit_hook_and_native_claude_md_integration", + "label": "For the commit hook and native CLAUDE.md integration", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "for the commit hook and native claude.md integration", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L701" + }, + { + "id": "agents_skills_graphify_skill_for_update_and_cluster_only", + "label": "For --update and --cluster-only", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "for --update and --cluster-only", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L677" + }, + { + "id": "agents_skills_graphify_skill_graphify", + "label": "/graphify", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "/graphify", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L6" + }, + { + "id": "agents_skills_graphify_skill_honesty_rules", + "label": "Honesty Rules", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "honesty rules", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L707" + }, + { + "id": "agents_skills_graphify_skill_interpreter_guard_for_subcommands", + "label": "Interpreter guard for subcommands", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "interpreter guard for subcommands", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L659" + }, + { + "id": "agents_skills_graphify_skill_part_a_structural_extraction_for_code_files", + "label": "Part A - Structural extraction for code files", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "part a - structural extraction for code files", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L170" + }, + { + "id": "agents_skills_graphify_skill_part_b_semantic_extraction_parallel_subagents", + "label": "Part B - Semantic extraction (parallel subagents)", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "part b - semantic extraction (parallel subagents)", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L196" + }, + { + "id": "agents_skills_graphify_skill_part_c_merge_ast_semantic_into_final_extraction", + "label": "Part C - Merge AST + semantic into final extraction", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "part c - merge ast + semantic into final extraction", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L359" + }, + { + "id": "agents_skills_graphify_skill_step_0_github_repos_and_multi_path_merge_only_if_a_url_or_several_paths", + "label": "Step 0 - GitHub repos and multi-path merge (only if a URL or several paths)", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 0 - github repos and multi-path merge (only if a url or several paths)", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L61" + }, + { + "id": "agents_skills_graphify_skill_step_1_ensure_graphify_is_installed", + "label": "Step 1 - Ensure graphify is installed", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 1 - ensure graphify is installed", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L65" + }, + { + "id": "agents_skills_graphify_skill_step_2_5_video_and_audio_only_if_video_files_detected", + "label": "Step 2.5 - Video and audio (only if video files detected)", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 2.5 - video and audio (only if video files detected)", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L147" + }, + { + "id": "agents_skills_graphify_skill_step_2_detect_files", + "label": "Step 2 - Detect files", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 2 - detect files", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L107" + }, + { + "id": "agents_skills_graphify_skill_step_3_extract_entities_and_relationships", + "label": "Step 3 - Extract entities and relationships", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 3 - extract entities and relationships", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L151" + }, + { + "id": "agents_skills_graphify_skill_step_4_5_graph_health_check_read_only_integrity_gate", + "label": "Step 4.5 - Graph health check (read-only integrity gate)", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 4.5 - graph health check (read-only integrity gate)", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L456" + }, + { + "id": "agents_skills_graphify_skill_step_4_build_graph_cluster_analyze_generate_outputs", + "label": "Step 4 - Build graph, cluster, analyze, generate outputs", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 4 - build graph, cluster, analyze, generate outputs", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L393" + }, + { + "id": "agents_skills_graphify_skill_step_5_label_communities", + "label": "Step 5 - Label communities", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 5 - label communities", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L482" + }, + { + "id": "agents_skills_graphify_skill_step_6_generate_obsidian_vault_opt_in_html", + "label": "Step 6 - Generate Obsidian vault (opt-in) + HTML", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 6 - generate obsidian vault (opt-in) + html", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L531" + }, + { + "id": "agents_skills_graphify_skill_step_9_save_manifest_update_cost_tracker_clean_up_and_report", + "label": "Step 9 - Save manifest, update cost tracker, clean up, and report", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 9 - save manifest, update cost tracker, clean up, and report", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L557" + }, + { + "id": "agents_skills_graphify_skill_steps_6b_8_wiki_neo4j_falkordb_svg_graphml_mcp_benchmark_only_on_their_flags", + "label": "Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags)", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "steps 6b-8 - wiki, neo4j, falkordb, svg, graphml, mcp, benchmark (only on their flags)", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L551" + }, + { + "id": "agents_skills_graphify_skill_usage", + "label": "Usage", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "usage", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L10" + }, + { + "id": "agents_skills_graphify_skill_what_graphify_is_for", + "label": "What graphify is for", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "what graphify is for", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L45" + }, + { + "id": "agents_skills_graphify_skill_what_you_must_do_when_invoked", + "label": "What You Must Do When Invoked", + "_origin": "ast", + "community": 3, + "community_name": "Graphify Commands", + "file_type": "document", + "node_kind": "heading", + "norm_label": "what you must do when invoked", + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L49" + }, + { + "id": "agents_skills_graphify_references_update", + "label": "update.md", + "_origin": "ast", + "community": 30, + "community_name": "Graphify Updates", + "file_type": "document", + "node_kind": "page", + "norm_label": "update.md", + "source_file": ".agents/skills/graphify/references/update.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_references_update_for_cluster_only", + "label": "For --cluster-only", + "_origin": "ast", + "community": 30, + "community_name": "Graphify Updates", + "file_type": "document", + "node_kind": "heading", + "norm_label": "for --cluster-only", + "source_file": ".agents/skills/graphify/references/update.md", + "source_location": "L202" + }, + { + "id": "agents_skills_graphify_references_update_for_update_incremental_re_extraction", + "label": "For --update (incremental re-extraction)", + "_origin": "ast", + "community": 30, + "community_name": "Graphify Updates", + "file_type": "document", + "node_kind": "heading", + "norm_label": "for --update (incremental re-extraction)", + "source_file": ".agents/skills/graphify/references/update.md", + "source_location": "L5" + }, + { + "id": "agents_skills_graphify_references_update_graphify_reference_incremental_update_and_cluster_only", + "label": "graphify reference: incremental update and cluster-only", + "_origin": "ast", + "community": 30, + "community_name": "Graphify Updates", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graphify reference: incremental update and cluster-only", + "source_file": ".agents/skills/graphify/references/update.md", + "source_location": "L1" + }, + { + "id": "agents_skills_ponytail_debt_skill", + "label": "ponytail-debt/SKILL.md", + "_origin": "ast", + "community": 31, + "community_name": "Ponytail Debt", + "file_type": "document", + "frontmatter": { + "name": "ponytail-debt", + "description": ">" + }, + "node_kind": "page", + "norm_label": "ponytail-debt/skill.md", + "source_file": ".agents/skills/ponytail-debt/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_ponytail_debt_skill_boundaries", + "label": "Boundaries", + "_origin": "ast", + "community": 31, + "community_name": "Ponytail Debt", + "file_type": "document", + "node_kind": "heading", + "norm_label": "boundaries", + "source_file": ".agents/skills/ponytail-debt/SKILL.md", + "source_location": "L40" + }, + { + "id": "agents_skills_ponytail_debt_skill_output", + "label": "Output", + "_origin": "ast", + "community": 31, + "community_name": "Ponytail Debt", + "file_type": "document", + "node_kind": "heading", + "norm_label": "output", + "source_file": ".agents/skills/ponytail-debt/SKILL.md", + "source_location": "L25" + }, + { + "id": "agents_skills_ponytail_debt_skill_scan", + "label": "Scan", + "_origin": "ast", + "community": 31, + "community_name": "Ponytail Debt", + "file_type": "document", + "node_kind": "heading", + "norm_label": "scan", + "source_file": ".agents/skills/ponytail-debt/SKILL.md", + "source_location": "L15" + }, + { + "id": "agents_skills_graphify_references_github_and_merge", + "label": "github-and-merge.md", + "_origin": "ast", + "community": 32, + "community_name": "Repository Merge", + "file_type": "document", + "node_kind": "page", + "norm_label": "github-and-merge.md", + "source_file": ".agents/skills/graphify/references/github-and-merge.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_references_github_and_merge_graphify_reference_github_clone_and_cross_repo_merge", + "label": "graphify reference: GitHub clone and cross-repo merge", + "_origin": "ast", + "community": 32, + "community_name": "Repository Merge", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graphify reference: github clone and cross-repo merge", + "source_file": ".agents/skills/graphify/references/github-and-merge.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_references_github_and_merge_step_0_clone_github_repo_s_only_if_a_github_url_was_given", + "label": "Step 0 - Clone GitHub repo(s) (only if a GitHub URL was given)", + "_origin": "ast", + "community": 32, + "community_name": "Repository Merge", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 0 - clone github repo(s) (only if a github url was given)", + "source_file": ".agents/skills/graphify/references/github-and-merge.md", + "source_location": "L5" + }, + { + "id": "agents_skills_graphify_references_transcribe", + "label": "transcribe.md", + "_origin": "ast", + "community": 33, + "community_name": "Media Transcription", + "file_type": "document", + "node_kind": "page", + "norm_label": "transcribe.md", + "source_file": ".agents/skills/graphify/references/transcribe.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_references_transcribe_graphify_reference_transcribe_video_and_audio", + "label": "graphify reference: transcribe video and audio", + "_origin": "ast", + "community": 33, + "community_name": "Media Transcription", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graphify reference: transcribe video and audio", + "source_file": ".agents/skills/graphify/references/transcribe.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_references_transcribe_step_2_5_transcribe_video_audio_files_only_if_video_files_detected", + "label": "Step 2.5 - Transcribe video / audio files (only if video files detected)", + "_origin": "ast", + "community": 33, + "community_name": "Media Transcription", + "file_type": "document", + "node_kind": "heading", + "norm_label": "step 2.5 - transcribe video / audio files (only if video files detected)", + "source_file": ".agents/skills/graphify/references/transcribe.md", + "source_location": "L5" + }, + { + "id": "agents_skills_graphify_references_extraction_spec", + "label": "extraction-spec.md", + "_origin": "ast", + "community": 34, + "community_name": "Extraction Specification", + "file_type": "document", + "node_kind": "page", + "norm_label": "extraction-spec.md", + "source_file": ".agents/skills/graphify/references/extraction-spec.md", + "source_location": "L1" + }, + { + "id": "agents_skills_graphify_references_extraction_spec_graphify_reference_extraction_subagent_prompt", + "label": "graphify reference: extraction subagent prompt", + "_origin": "ast", + "community": 34, + "community_name": "Extraction Specification", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graphify reference: extraction subagent prompt", + "source_file": ".agents/skills/graphify/references/extraction-spec.md", + "source_location": "L1" + }, + { + "id": "specify_scripts_powershell_check_prerequisites", + "label": "check-prerequisites.ps1", + "_origin": "ast", + "community": 35, + "community_name": "Prerequisite Checks", + "file_type": "code", + "norm_label": "check-prerequisites.ps1", + "source_file": ".specify/scripts/powershell/check-prerequisites.ps1", + "source_location": "L1" + }, + { + "id": "specify_scripts_powershell_resolve_template", + "label": "resolve-template.ps1", + "_origin": "ast", + "community": 36, + "community_name": "Template Resolution", + "file_type": "code", + "norm_label": "resolve-template.ps1", + "source_file": ".specify/scripts/powershell/resolve-template.ps1", + "source_location": "L1" + }, + { + "id": "specify_scripts_powershell_setup_plan", + "label": "setup-plan.ps1", + "_origin": "ast", + "community": 37, + "community_name": "Plan Setup", + "file_type": "code", + "norm_label": "setup-plan.ps1", + "source_file": ".specify/scripts/powershell/setup-plan.ps1", + "source_location": "L1" + }, + { + "id": "specify_scripts_powershell_setup_tasks", + "label": "setup-tasks.ps1", + "_origin": "ast", + "community": 38, + "community_name": "Task Setup", + "file_type": "code", + "norm_label": "setup-tasks.ps1", + "source_file": ".specify/scripts/powershell/setup-tasks.ps1", + "source_location": "L1" + }, + { + "id": "agents_workflows_graphify", + "label": "workflows/graphify.md", + "_origin": "ast", + "community": 39, + "community_name": "Graphify Workflows", + "file_type": "document", + "frontmatter": { + "name": "graphify", + "description": "Turn any folder of files into a navigable knowledge graph" + }, + "node_kind": "page", + "norm_label": "workflows/graphify.md", + "source_file": ".agents/workflows/graphify.md", + "source_location": "L1" + }, + { + "id": "agents_workflows_graphify_workflow_graphify", + "label": "Workflow: graphify", + "_origin": "ast", + "community": 39, + "community_name": "Graphify Workflows", + "file_type": "document", + "node_kind": "heading", + "norm_label": "workflow: graphify", + "source_file": ".agents/workflows/graphify.md", + "source_location": "L6" + }, + { + "id": "agents_skills_speckit_analyze_skill", + "label": "speckit-analyze/SKILL.md", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "frontmatter": { + "name": "speckit-analyze", + "description": "Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.", + "compatibility": "Requires spec-kit project structure with .specify/ directory" + }, + "node_kind": "page", + "norm_label": "speckit-analyze/skill.md", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_speckit_analyze_skill_1_initialize_analysis_context", + "label": "1. Initialize Analysis Context", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. initialize analysis context", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L67" + }, + { + "id": "agents_skills_speckit_analyze_skill_2_load_artifacts_progressive_disclosure", + "label": "2. Load Artifacts (Progressive Disclosure)", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. load artifacts (progressive disclosure)", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L78" + }, + { + "id": "agents_skills_speckit_analyze_skill_3_build_semantic_models", + "label": "3. Build Semantic Models", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. build semantic models", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L109" + }, + { + "id": "agents_skills_speckit_analyze_skill_4_detection_passes_token_efficient_analysis", + "label": "4. Detection Passes (Token-Efficient Analysis)", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. detection passes (token-efficient analysis)", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L118" + }, + { + "id": "agents_skills_speckit_analyze_skill_5_severity_assignment", + "label": "5. Severity Assignment", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5. severity assignment", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L156" + }, + { + "id": "agents_skills_speckit_analyze_skill_6_produce_compact_analysis_report", + "label": "6. Produce Compact Analysis Report", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6. produce compact analysis report", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L165" + }, + { + "id": "agents_skills_speckit_analyze_skill_7_provide_next_actions", + "label": "7. Provide Next Actions", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "7. provide next actions", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L195" + }, + { + "id": "agents_skills_speckit_analyze_skill_8_offer_remediation", + "label": "8. Offer Remediation", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "8. offer remediation", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L203" + }, + { + "id": "agents_skills_speckit_analyze_skill_9_check_for_extension_hooks", + "label": "9. Check for extension hooks", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "9. check for extension hooks", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L207" + }, + { + "id": "agents_skills_speckit_analyze_skill_a_duplication_detection", + "label": "A. Duplication Detection", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "a. duplication detection", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L122" + }, + { + "id": "agents_skills_speckit_analyze_skill_analysis_guidelines", + "label": "Analysis Guidelines", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "analysis guidelines", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L249" + }, + { + "id": "agents_skills_speckit_analyze_skill_b_ambiguity_detection", + "label": "B. Ambiguity Detection", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "b. ambiguity detection", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L127" + }, + { + "id": "agents_skills_speckit_analyze_skill_c_underspecification", + "label": "C. Underspecification", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "c. underspecification", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L132" + }, + { + "id": "agents_skills_speckit_analyze_skill_context", + "label": "Context", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "context", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L257" + }, + { + "id": "agents_skills_speckit_analyze_skill_context_efficiency", + "label": "Context Efficiency", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "context efficiency", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L242" + }, + { + "id": "agents_skills_speckit_analyze_skill_d_constitution_alignment", + "label": "D. Constitution Alignment", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "d. constitution alignment", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L138" + }, + { + "id": "agents_skills_speckit_analyze_skill_e_coverage_gaps", + "label": "E. Coverage Gaps", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "e. coverage gaps", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L143" + }, + { + "id": "agents_skills_speckit_analyze_skill_execution_steps", + "label": "Execution Steps", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "execution steps", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L65" + }, + { + "id": "agents_skills_speckit_analyze_skill_f_inconsistency", + "label": "F. Inconsistency", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "f. inconsistency", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L149" + }, + { + "id": "agents_skills_speckit_analyze_skill_goal", + "label": "Goal", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "goal", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L55" + }, + { + "id": "agents_skills_speckit_analyze_skill_operating_constraints", + "label": "Operating Constraints", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "operating constraints", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L59" + }, + { + "id": "agents_skills_speckit_analyze_skill_operating_principles", + "label": "Operating Principles", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "operating principles", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L240" + }, + { + "id": "agents_skills_speckit_analyze_skill_pre_execution_checks", + "label": "Pre-Execution Checks", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "pre-execution checks", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L19" + }, + { + "id": "agents_skills_speckit_analyze_skill_specification_analysis_report", + "label": "Specification Analysis Report", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "specification analysis report", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L169" + }, + { + "id": "agents_skills_speckit_analyze_skill_user_input", + "label": "User Input", + "_origin": "ast", + "community": 4, + "community_name": "speckit-analyze/SKILL.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user input", + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L11" + }, + { + "id": "argumentparser", + "label": "ArgumentParser", + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "code", + "norm_label": "argumentparser", + "source_file": "", + "source_location": "" + }, + { + "id": "capturefixture", + "label": "CaptureFixture", + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "code", + "norm_label": "capturefixture", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_extract_google_news_py_path", + "label": "Path", + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "code", + "norm_label": "path", + "source_file": "", + "source_location": "" + }, + { + "id": "scripts_extract_google_news_rationale_337", + "label": "Cria e configura o parser de argumentos CLI.", + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "rationale", + "norm_label": "cria e configura o parser de argumentos cli.", + "source_file": "scripts/extract_google_news.py", + "source_location": "L337" + }, + { + "id": "scripts_extract_google_news_rationale_404", + "label": "Ponto de entrada do script CLI.", + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "rationale", + "norm_label": "ponto de entrada do script cli.", + "source_file": "scripts/extract_google_news.py", + "source_location": "L404" + }, + { + "id": "tests_test_extract_google_news_rationale_214", + "label": "Valida execu\u00e7\u00e3o padr\u00e3o do CLI com sa\u00edda JSON no stdout.", + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "rationale", + "norm_label": "valida execucao padrao do cli com saida json no stdout.", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L214" + }, + { + "id": "tests_test_extract_google_news_rationale_235", + "label": "Valida grava\u00e7\u00e3o em arquivo com cria\u00e7\u00e3o autom\u00e1tica de diret\u00f3rios pais.", + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "rationale", + "norm_label": "valida gravacao em arquivo com criacao automatica de diretorios pais.", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L235" + }, + { + "id": "tests_test_extract_google_news_rationale_254", + "label": "Valida tratamento de erro e c\u00f3digo de sa\u00edda 1 para par\u00e2metro vazio.", + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "rationale", + "norm_label": "valida tratamento de erro e codigo de saida 1 para parametro vazio.", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L254" + }, + { + "id": "tests_test_extract_google_news_rationale_263", + "label": "Valida tratamento de erro e c\u00f3digo de sa\u00edda 2 para falhas de rede.", + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "rationale", + "norm_label": "valida tratamento de erro e codigo de saida 2 para falhas de rede.", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L263" + }, + { + "id": "tests_test_extract_google_news_rationale_319", + "label": "Valida E2E a execu\u00e7\u00e3o do CLI com sa\u00edda real em arquivo e URLs decodificadas.", + "_origin": "ast", + "community": 40, + "community_name": "main", + "file_type": "rationale", + "norm_label": "valida e2e a execucao do cli com saida real em arquivo e urls decodificadas.", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L319" + }, + { + "id": "specs_001_multilingual_entity_classifier_research", + "label": "001-multilingual-entity-classifier/research.md", + "_origin": "ast", + "community": 41, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "page", + "norm_label": "001-multilingual-entity-classifier/research.md", + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_research_1_technical_decisions_tradeoffs", + "label": "1. Technical Decisions & Tradeoffs", + "_origin": "ast", + "community": 41, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. technical decisions & tradeoffs", + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L8" + }, + { + "id": "specs_001_multilingual_entity_classifier_research_2_standardized_error_handling_strategy", + "label": "2. Standardized Error Handling Strategy", + "_origin": "ast", + "community": 41, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. standardized error handling strategy", + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L49" + }, + { + "id": "specs_001_multilingual_entity_classifier_research_decision_1_execution_engine_cli_architecture", + "label": "Decision 1: Execution Engine & CLI Architecture", + "_origin": "ast", + "community": 41, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 1: execution engine & cli architecture", + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L10" + }, + { + "id": "specs_001_multilingual_entity_classifier_research_decision_2_multilingual_language_detection_normalization_tier_1_core", + "label": "Decision 2: Multilingual Language Detection & Normalization (Tier 1 Core)", + "_origin": "ast", + "community": 41, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 2: multilingual language detection & normalization (tier 1 core)", + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L17" + }, + { + "id": "specs_001_multilingual_entity_classifier_research_decision_3_materialized_ecp_snapshot_contract_matching_logic", + "label": "Decision 3: Materialized ECP Snapshot Contract & Matching Logic", + "_origin": "ast", + "community": 41, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 3: materialized ecp snapshot contract & matching logic", + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L23" + }, + { + "id": "specs_001_multilingual_entity_classifier_research_decision_4_tier_2_embeddings_tier_3_llm_optional_adapters", + "label": "Decision 4: Tier 2 (Embeddings) & Tier 3 (LLM) Optional Adapters", + "_origin": "ast", + "community": 41, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 4: tier 2 (embeddings) & tier 3 (llm) optional adapters", + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L33" + }, + { + "id": "specs_001_multilingual_entity_classifier_research_decision_5_controlled_24_case_poc_benchmark_suite", + "label": "Decision 5: Controlled 24-Case POC Benchmark Suite", + "_origin": "ast", + "community": 41, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 5: controlled 24-case poc benchmark suite", + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L40" + }, + { + "id": "specs_001_multilingual_entity_classifier_research_technical_research_architecture_decisions_poc", + "label": "Technical Research & Architecture Decisions (POC)", + "_origin": "ast", + "community": 41, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "technical research & architecture decisions (poc)", + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_data_model", + "label": "001-multilingual-entity-classifier/data-model.md", + "_origin": "ast", + "community": 42, + "community_name": "1. Input Schemas", + "file_type": "document", + "node_kind": "page", + "norm_label": "001-multilingual-entity-classifier/data-model.md", + "source_file": "specs/001-multilingual-entity-classifier/data-model.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_data_model_1_1_ecp_snapshot_schema_snapshot_json", + "label": "1.1 ECP Snapshot Schema (`snapshot.json`)", + "_origin": "ast", + "community": 42, + "community_name": "1. Input Schemas", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1.1 ecp snapshot schema (`snapshot.json`)", + "source_file": "specs/001-multilingual-entity-classifier/data-model.md", + "source_location": "L10" + }, + { + "id": "specs_001_multilingual_entity_classifier_data_model_1_2_content_item_schema_content_md", + "label": "1.2 Content Item Schema (`content.md`)", + "_origin": "ast", + "community": 42, + "community_name": "1. Input Schemas", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1.2 content item schema (`content.md`)", + "source_file": "specs/001-multilingual-entity-classifier/data-model.md", + "source_location": "L79" + }, + { + "id": "specs_001_multilingual_entity_classifier_data_model_1_input_schemas", + "label": "1. Input Schemas", + "_origin": "ast", + "community": 42, + "community_name": "1. Input Schemas", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. input schemas", + "source_file": "specs/001-multilingual-entity-classifier/data-model.md", + "source_location": "L8" + }, + { + "id": "specs_001_multilingual_entity_classifier_data_model_2_1_classification_success_result_schema_result_json", + "label": "2.1 Classification Success Result Schema (`result.json`)", + "_origin": "ast", + "community": 42, + "community_name": "1. Input Schemas", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2.1 classification success result schema (`result.json`)", + "source_file": "specs/001-multilingual-entity-classifier/data-model.md", + "source_location": "L90" + }, + { + "id": "specs_001_multilingual_entity_classifier_data_model_2_2_error_result_schema", + "label": "2.2 Error Result Schema", + "_origin": "ast", + "community": 42, + "community_name": "1. Input Schemas", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2.2 error result schema", + "source_file": "specs/001-multilingual-entity-classifier/data-model.md", + "source_location": "L174" + }, + { + "id": "specs_001_multilingual_entity_classifier_data_model_2_output_schemas", + "label": "2. Output Schemas", + "_origin": "ast", + "community": 42, + "community_name": "1. Input Schemas", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. output schemas", + "source_file": "specs/001-multilingual-entity-classifier/data-model.md", + "source_location": "L88" + }, + { + "id": "specs_001_multilingual_entity_classifier_data_model_data_models_schemas_poc", + "label": "Data Models & Schemas (POC)", + "_origin": "ast", + "community": 42, + "community_name": "1. Input Schemas", + "file_type": "document", + "node_kind": "heading", + "norm_label": "data models & schemas (poc)", + "source_file": "specs/001-multilingual-entity-classifier/data-model.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_quickstart", + "label": "001-multilingual-entity-classifier/quickstart.md", + "_origin": "ast", + "community": 43, + "community_name": "2. Basic CLI Usage Examples", + "file_type": "document", + "node_kind": "page", + "norm_label": "001-multilingual-entity-classifier/quickstart.md", + "source_file": "specs/001-multilingual-entity-classifier/quickstart.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_quickstart_1_prerequisites_installation", + "label": "1. Prerequisites & Installation", + "_origin": "ast", + "community": 43, + "community_name": "2. Basic CLI Usage Examples", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. prerequisites & installation", + "source_file": "specs/001-multilingual-entity-classifier/quickstart.md", + "source_location": "L8" + }, + { + "id": "specs_001_multilingual_entity_classifier_quickstart_2_1_direct_inherence_portuguese", + "label": "2.1 Direct Inherence (Portuguese)", + "_origin": "ast", + "community": 43, + "community_name": "2. Basic CLI Usage Examples", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2.1 direct inherence (portuguese)", + "source_file": "specs/001-multilingual-entity-classifier/quickstart.md", + "source_location": "L23" + }, + { + "id": "specs_001_multilingual_entity_classifier_quickstart_2_2_contextual_inherence_via_graph_snapshot_german", + "label": "2.2 Contextual Inherence via Graph Snapshot (German)", + "_origin": "ast", + "community": 43, + "community_name": "2. Basic CLI Usage Examples", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2.2 contextual inherence via graph snapshot (german)", + "source_file": "specs/001-multilingual-entity-classifier/quickstart.md", + "source_location": "L44" + }, + { + "id": "specs_001_multilingual_entity_classifier_quickstart_2_3_tangential_mention_spanish", + "label": "2.3 Tangential Mention (Spanish)", + "_origin": "ast", + "community": 43, + "community_name": "2. Basic CLI Usage Examples", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2.3 tangential mention (spanish)", + "source_file": "specs/001-multilingual-entity-classifier/quickstart.md", + "source_location": "L72" + }, + { + "id": "specs_001_multilingual_entity_classifier_quickstart_2_basic_cli_usage_examples", + "label": "2. Basic CLI Usage Examples", + "_origin": "ast", + "community": 43, + "community_name": "2. Basic CLI Usage Examples", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. basic cli usage examples", + "source_file": "specs/001-multilingual-entity-classifier/quickstart.md", + "source_location": "L21" + }, + { + "id": "specs_001_multilingual_entity_classifier_quickstart_3_running_the_controlled_24_case_benchmark", + "label": "3. Running the Controlled 24-Case Benchmark", + "_origin": "ast", + "community": 43, + "community_name": "2. Basic CLI Usage Examples", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. running the controlled 24-case benchmark", + "source_file": "specs/001-multilingual-entity-classifier/quickstart.md", + "source_location": "L95" + }, + { + "id": "specs_001_multilingual_entity_classifier_quickstart_quickstart_validation_guide_poc", + "label": "Quickstart & Validation Guide (POC)", + "_origin": "ast", + "community": 43, + "community_name": "2. Basic CLI Usage Examples", + "file_type": "document", + "node_kind": "heading", + "norm_label": "quickstart & validation guide (poc)", + "source_file": "specs/001-multilingual-entity-classifier/quickstart.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_contracts_cli_contract", + "label": "001-multilingual-entity-classifier/contracts/cli-contract.md", + "_origin": "ast", + "community": 44, + "community_name": "2. Standard Streams & Exit Codes", + "file_type": "document", + "node_kind": "page", + "norm_label": "001-multilingual-entity-classifier/contracts/cli-contract.md", + "source_file": "specs/001-multilingual-entity-classifier/contracts/cli-contract.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_contracts_cli_contract_1_1_arguments_options", + "label": "1.1 Arguments & Options", + "_origin": "ast", + "community": 44, + "community_name": "2. Standard Streams & Exit Codes", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1.1 arguments & options", + "source_file": "specs/001-multilingual-entity-classifier/contracts/cli-contract.md", + "source_location": "L14" + }, + { + "id": "specs_001_multilingual_entity_classifier_contracts_cli_contract_1_command_line_interface", + "label": "1. Command Line Interface", + "_origin": "ast", + "community": 44, + "community_name": "2. Standard Streams & Exit Codes", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. command line interface", + "source_file": "specs/001-multilingual-entity-classifier/contracts/cli-contract.md", + "source_location": "L8" + }, + { + "id": "specs_001_multilingual_entity_classifier_contracts_cli_contract_2_1_exit_codes", + "label": "2.1 Exit Codes", + "_origin": "ast", + "community": 44, + "community_name": "2. Standard Streams & Exit Codes", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2.1 exit codes", + "source_file": "specs/001-multilingual-entity-classifier/contracts/cli-contract.md", + "source_location": "L30" + }, + { + "id": "specs_001_multilingual_entity_classifier_contracts_cli_contract_2_2_standard_output_stdout_standard_error_stderr", + "label": "2.2 Standard Output (`stdout`) / Standard Error (`stderr`)", + "_origin": "ast", + "community": 44, + "community_name": "2. Standard Streams & Exit Codes", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2.2 standard output (`stdout`) / standard error (`stderr`)", + "source_file": "specs/001-multilingual-entity-classifier/contracts/cli-contract.md", + "source_location": "L35" + }, + { + "id": "specs_001_multilingual_entity_classifier_contracts_cli_contract_2_standard_streams_exit_codes", + "label": "2. Standard Streams & Exit Codes", + "_origin": "ast", + "community": 44, + "community_name": "2. Standard Streams & Exit Codes", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. standard streams & exit codes", + "source_file": "specs/001-multilingual-entity-classifier/contracts/cli-contract.md", + "source_location": "L28" + }, + { + "id": "specs_001_multilingual_entity_classifier_contracts_cli_contract_cli_contract_interface_specification_poc", + "label": "CLI Contract & Interface Specification (POC)", + "_origin": "ast", + "community": 44, + "community_name": "2. Standard Streams & Exit Codes", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cli contract & interface specification (poc)", + "source_file": "specs/001-multilingual-entity-classifier/contracts/cli-contract.md", + "source_location": "L1" + }, + { + "id": "abc", + "label": "ABC", + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "code", + "norm_label": "abc", + "source_file": "", + "source_location": "" + }, + { + "id": "src_adapters_base", + "label": "base.py", + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "code", + "norm_label": "base.py", + "source_file": "src/adapters/base.py", + "source_location": "L1" + }, + { + "id": "src_adapters_llm", + "label": "llm.py", + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "code", + "norm_label": "llm.py", + "source_file": "src/adapters/llm.py", + "source_location": "L1" + }, + { + "id": "src_adapters_base_rationale_1", + "label": "Base abstract adapter interface for optional Tier 2 / Tier 3 NLP enhancers.", + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "rationale", + "norm_label": "base abstract adapter interface for optional tier 2 / tier 3 nlp enhancers.", + "source_file": "src/adapters/base.py", + "source_location": "L1" + }, + { + "id": "src_adapters_base_rationale_11", + "label": "Abstract interface for pluggable NLP classification adapters.", + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "rationale", + "norm_label": "abstract interface for pluggable nlp classification adapters.", + "source_file": "src/adapters/base.py", + "source_location": "L11" + }, + { + "id": "src_adapters_base_rationale_15", + "label": "Return True if the underlying provider or model is installed and configured.", + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "rationale", + "norm_label": "return true if the underlying provider or model is installed and configured.", + "source_file": "src/adapters/base.py", + "source_location": "L15" + }, + { + "id": "src_adapters_base_rationale_19", + "label": "Compute semantic similarity score between text and a set of candidate terms.", + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "rationale", + "norm_label": "compute semantic similarity score between text and a set of candidate terms.", + "source_file": "src/adapters/base.py", + "source_location": "L19" + }, + { + "id": "src_adapters_base_rationale_28", + "label": "Optionally refine an ambiguous classification result.", + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "rationale", + "norm_label": "optionally refine an ambiguous classification result.", + "source_file": "src/adapters/base.py", + "source_location": "L28" + }, + { + "id": "src_adapters_llm_rationale_1", + "label": "Optional LLM fallback adapter (Tier 3). Disabled by default. Provides fallback\u2026", + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "rationale", + "norm_label": "optional llm fallback adapter (tier 3). disabled by default. provides fallback...", + "source_file": "src/adapters/llm.py", + "source_location": "L1" + }, + { + "id": "src_adapters_llm_rationale_16", + "label": "Optional adapter for LLM fallback boundary disambiguation.", + "_origin": "ast", + "community": 45, + "community_name": "ClassificationResult", + "file_type": "rationale", + "norm_label": "optional adapter for llm fallback boundary disambiguation.", + "source_file": "src/adapters/llm.py", + "source_location": "L16" + }, + { + "id": "tests_test_adversarial", + "label": "test_adversarial.py", + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "test_adversarial.py", + "source_file": "tests/test_adversarial.py", + "source_location": "L1" + }, + { + "id": "tests_test_classifier", + "label": "test_classifier.py", + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "test_classifier.py", + "source_file": "tests/test_classifier.py", + "source_location": "L1" + }, + { + "id": "tests_test_classifier_py_fixture", + "label": "fixture", + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "code", + "norm_label": "fixture", + "source_file": "", + "source_location": "" + }, + { + "id": "src_classifier_rationale_42", + "label": "Tier 1 Deterministic NLP Entity Inherence Classifier.", + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "rationale", + "norm_label": "tier 1 deterministic nlp entity inherence classifier.", + "source_file": "src/classifier.py", + "source_location": "L42" + }, + { + "id": "tests_test_adversarial_rationale_1", + "label": "Adversarial and robustness test suite for Multilingual NLP Entity Inherence\u2026", + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "rationale", + "norm_label": "adversarial and robustness test suite for multilingual nlp entity inherence...", + "source_file": "tests/test_adversarial.py", + "source_location": "L1" + }, + { + "id": "tests_test_adversarial_rationale_105", + "label": "Run CLI via subprocess without --output and verify stdout is pure parseable\u2026", + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "rationale", + "norm_label": "run cli via subprocess without --output and verify stdout is pure parseable...", + "source_file": "tests/test_adversarial.py", + "source_location": "L105" + }, + { + "id": "tests_test_adversarial_rationale_149", + "label": "Run CLI via subprocess with empty content and verify error code and exit code.", + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "rationale", + "norm_label": "run cli via subprocess with empty content and verify error code and exit code.", + "source_file": "tests/test_adversarial.py", + "source_location": "L149" + }, + { + "id": "tests_test_adversarial_rationale_15", + "label": "Content about city/state governance of S\u00e3o Paulo against ECP for S\u00e3o Paulo FC.", + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "rationale", + "norm_label": "content about city/state governance of sao paulo against ecp for sao paulo fc.", + "source_file": "tests/test_adversarial.py", + "source_location": "L15" + }, + { + "id": "tests_test_adversarial_rationale_186", + "label": "Run CLI via subprocess with missing target_name and verify error payload.", + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "rationale", + "norm_label": "run cli via subprocess with missing target_name and verify error payload.", + "source_file": "tests/test_adversarial.py", + "source_location": "L186" + }, + { + "id": "tests_test_adversarial_rationale_221", + "label": "Run CLI via subprocess with corrupted JSON and verify error payload.", + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "rationale", + "norm_label": "run cli via subprocess with corrupted json and verify error payload.", + "source_file": "tests/test_adversarial.py", + "source_location": "L221" + }, + { + "id": "tests_test_adversarial_rationale_45", + "label": "Content about apple fruit/culinary recipe against Apple Inc. tech entity.", + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "rationale", + "norm_label": "content about apple fruit/culinary recipe against apple inc. tech entity.", + "source_file": "tests/test_adversarial.py", + "source_location": "L45" + }, + { + "id": "tests_test_adversarial_rationale_69", + "label": "High-weight related entity mentioned in passing without required domain anchors.", + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "rationale", + "norm_label": "high-weight related entity mentioned in passing without required domain anchors.", + "source_file": "tests/test_adversarial.py", + "source_location": "L69" + }, + { + "id": "tests_test_classifier_rationale_1", + "label": "Unit tests for deterministic classification decision logic.", + "_origin": "ast", + "community": 46, + "community_name": "InherenceClassifier", + "file_type": "rationale", + "norm_label": "unit tests for deterministic classification decision logic.", + "source_file": "tests/test_classifier.py", + "source_location": "L1" + }, + { + "id": "src_classifier", + "label": "classifier.py", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "classifier.py", + "source_file": "src/classifier.py", + "source_location": "L1" + }, + { + "id": "src_language", + "label": "language.py", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "language.py", + "source_file": "src/language.py", + "source_location": "L1" + }, + { + "id": "src_parser", + "label": "parser.py", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "parser.py", + "source_file": "src/parser.py", + "source_location": "L1" + }, + { + "id": "tests_test_language", + "label": "test_language.py", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "code", + "norm_label": "test_language.py", + "source_file": "tests/test_language.py", + "source_location": "L1" + }, + { + "id": "src_classifier_rationale_1", + "label": "Core deterministic classification engine (Tier 1 core).", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "rationale", + "norm_label": "core deterministic classification engine (tier 1 core).", + "source_file": "src/classifier.py", + "source_location": "L1" + }, + { + "id": "src_classifier_rationale_18", + "label": "Check if a normalized phrase appears in normalized text with word boundary\u2026", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "rationale", + "norm_label": "check if a normalized phrase appears in normalized text with word boundary...", + "source_file": "src/classifier.py", + "source_location": "L18" + }, + { + "id": "src_classifier_rationale_31", + "label": "Count occurrences of a phrase in text.", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "rationale", + "norm_label": "count occurrences of a phrase in text.", + "source_file": "src/classifier.py", + "source_location": "L31" + }, + { + "id": "src_classifier_rationale_61", + "label": "Classify inherence of content against an ECP snapshot.", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "rationale", + "norm_label": "classify inherence of content against an ecp snapshot.", + "source_file": "src/classifier.py", + "source_location": "L61" + }, + { + "id": "src_language_rationale_1", + "label": "Lightweight multilingual language detection and text normalization.", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "rationale", + "norm_label": "lightweight multilingual language detection and text normalization.", + "source_file": "src/language.py", + "source_location": "L1" + }, + { + "id": "src_language_rationale_463", + "label": "Normalize text by converting to lowercase and stripping combining diacritical\u2026", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "rationale", + "norm_label": "normalize text by converting to lowercase and stripping combining diacritical...", + "source_file": "src/language.py", + "source_location": "L463" + }, + { + "id": "src_language_rationale_473", + "label": "Tokenize text into lowercase alphanumeric words.", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "rationale", + "norm_label": "tokenize text into lowercase alphanumeric words.", + "source_file": "src/language.py", + "source_location": "L473" + }, + { + "id": "src_language_rationale_478", + "label": "Detect the ISO-639-1 language code of text among supported languages (pt, en,\u2026", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "rationale", + "norm_label": "detect the iso-639-1 language code of text among supported languages (pt, en,...", + "source_file": "src/language.py", + "source_location": "L478" + }, + { + "id": "src_parser_rationale_1", + "label": "Markdown content parser and excerpt extraction utilities.", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "rationale", + "norm_label": "markdown content parser and excerpt extraction utilities.", + "source_file": "src/parser.py", + "source_location": "L1" + }, + { + "id": "src_parser_rationale_43", + "label": "Split text into individual sentences.", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "rationale", + "norm_label": "split text into individual sentences.", + "source_file": "src/parser.py", + "source_location": "L43" + }, + { + "id": "src_parser_rationale_53", + "label": "Extract relevant sentence excerpts from Markdown text that contain any of the\u2026", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "rationale", + "norm_label": "extract relevant sentence excerpts from markdown text that contain any of the...", + "source_file": "src/parser.py", + "source_location": "L53" + }, + { + "id": "src_parser_rationale_9", + "label": "Remove markdown syntax markers (headers, bold, italics, links, code blocks) to\u2026", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "rationale", + "norm_label": "remove markdown syntax markers (headers, bold, italics, links, code blocks) to...", + "source_file": "src/parser.py", + "source_location": "L9" + }, + { + "id": "tests_test_language_rationale_1", + "label": "Unit tests for language detection and text normalization.", + "_origin": "ast", + "community": 47, + "community_name": "classifier.py", + "file_type": "rationale", + "norm_label": "unit tests for language detection and text normalization.", + "source_file": "tests/test_language.py", + "source_location": "L1" + }, + { + "id": "classify_py_namespace", + "label": "Namespace", + "_origin": "ast", + "community": 48, + "community_name": "main", + "file_type": "code", + "norm_label": "namespace", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_cli", + "label": "test_cli.py", + "_origin": "ast", + "community": 48, + "community_name": "main", + "file_type": "code", + "norm_label": "test_cli.py", + "source_file": "tests/test_cli.py", + "source_location": "L1" + }, + { + "id": "tests_test_cli_rationale_1", + "label": "CLI execution tests covering flags, arguments, stdout, and error handling.", + "_origin": "ast", + "community": 48, + "community_name": "main", + "file_type": "rationale", + "norm_label": "cli execution tests covering flags, arguments, stdout, and error handling.", + "source_file": "tests/test_cli.py", + "source_location": "L1" + }, + { + "id": "examples_content_northvolt_de", + "label": "content_northvolt_de.md", + "_origin": "ast", + "community": 49, + "community_name": "content_northvolt_de.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "content_northvolt_de.md", + "source_file": "examples/content_northvolt_de.md", + "source_location": "L1" + }, + { + "id": "examples_content_northvolt_de_batteriezellproduktion_f\u00fcr_europ\u00e4ische_elektrofahrzeuge", + "label": "Batteriezellproduktion f\u00fcr europ\u00e4ische Elektrofahrzeuge", + "_origin": "ast", + "community": 49, + "community_name": "content_northvolt_de.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "batteriezellproduktion fur europaische elektrofahrzeuge", + "source_file": "examples/content_northvolt_de.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_tasks_dependencies_execution_order", + "label": "Dependencies & Execution Order", + "_origin": "ast", + "community": 5, + "community_name": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "dependencies & execution order", + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L97" + }, + { + "id": "specs_001_multilingual_entity_classifier_tasks_implementation_for_user_story_1", + "label": "Implementation for User Story 1", + "_origin": "ast", + "community": 5, + "community_name": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation for user story 1", + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L42" + }, + { + "id": "specs_001_multilingual_entity_classifier_tasks_implementation_for_user_story_2", + "label": "Implementation for User Story 2", + "_origin": "ast", + "community": 5, + "community_name": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation for user story 2", + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L58" + }, + { + "id": "specs_001_multilingual_entity_classifier_tasks_implementation_for_user_story_3", + "label": "Implementation for User Story 3", + "_origin": "ast", + "community": 5, + "community_name": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation for user story 3", + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L77" + }, + { + "id": "specs_001_multilingual_entity_classifier_tasks_implementation_strategy", + "label": "Implementation Strategy", + "_origin": "ast", + "community": 5, + "community_name": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation strategy", + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L109" + }, + { + "id": "specs_001_multilingual_entity_classifier_tasks_phase_1_setup_shared_infrastructure", + "label": "Phase 1: Setup (Shared Infrastructure)", + "_origin": "ast", + "community": 5, + "community_name": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 1: setup (shared infrastructure)", + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L7" + }, + { + "id": "specs_001_multilingual_entity_classifier_tasks_phase_2_foundational_blocking_prerequisites", + "label": "Phase 2: Foundational (Blocking Prerequisites)", + "_origin": "ast", + "community": 5, + "community_name": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 2: foundational (blocking prerequisites)", + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L17" + }, + { + "id": "specs_001_multilingual_entity_classifier_tasks_phase_3_user_story_1_core_tier_1_deterministic_classification_cli_priority_p1_mvp", + "label": "Phase 3: User Story 1 - Core Tier 1 Deterministic Classification & CLI (Priority: P1) [MVP]", + "_origin": "ast", + "community": 5, + "community_name": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 3: user story 1 - core tier 1 deterministic classification & cli (priority: p1) [mvp]", + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L32" + }, + { + "id": "specs_001_multilingual_entity_classifier_tasks_phase_4_user_story_2_multilingual_24_case_controlled_benchmark_suite_priority_p2", + "label": "Phase 4: User Story 2 - Multilingual 24-Case Controlled Benchmark Suite (Priority: P2)", + "_origin": "ast", + "community": 5, + "community_name": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 4: user story 2 - multilingual 24-case controlled benchmark suite (priority: p2)", + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L52" + }, + { + "id": "specs_001_multilingual_entity_classifier_tasks_phase_5_optional_adapters_tier_2_embeddings_tier_3_llm_priority_p3", + "label": "Phase 5: Optional Adapters - Tier 2 (Embeddings) & Tier 3 (LLM) (Priority: P3)", + "_origin": "ast", + "community": 5, + "community_name": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 5: optional adapters - tier 2 (embeddings) & tier 3 (llm) (priority: p3)", + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L71" + }, + { + "id": "specs_001_multilingual_entity_classifier_tasks_phase_6_polish_validation", + "label": "Phase 6: Polish & Validation", + "_origin": "ast", + "community": 5, + "community_name": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 6: polish & validation", + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L87" + }, + { + "id": "specs_001_multilingual_entity_classifier_tasks_tasks_multilingual_nlp_entity_inherence_classifier_poc", + "label": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)", + "_origin": "ast", + "community": 5, + "community_name": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "tasks: multilingual nlp entity inherence classifier (poc)", + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L1" + }, + { + "id": "specs_001_multilingual_entity_classifier_tasks_tests_for_user_story_1", + "label": "Tests for User Story 1", + "_origin": "ast", + "community": 5, + "community_name": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)", + "file_type": "document", + "node_kind": "heading", + "norm_label": "tests for user story 1", + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L38" + }, + { + "id": "examples_content_presal_pt", + "label": "content_presal_pt.md", + "_origin": "ast", + "community": 50, + "community_name": "content_presal_pt.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "content_presal_pt.md", + "source_file": "examples/content_presal_pt.md", + "source_location": "L1" + }, + { + "id": "examples_content_presal_pt_petrobras_bate_recorde_hist\u00f3rico_de_produ\u00e7\u00e3o_no_pr\u00e9_sal", + "label": "Petrobras bate recorde hist\u00f3rico de produ\u00e7\u00e3o no pr\u00e9-sal", + "_origin": "ast", + "community": 50, + "community_name": "content_presal_pt.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "petrobras bate recorde historico de producao no pre-sal", + "source_file": "examples/content_presal_pt.md", + "source_location": "L1" + }, + { + "id": "examples_content_tangential_es", + "label": "content_tangential_es.md", + "_origin": "ast", + "community": 51, + "community_name": "content_tangential_es.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "content_tangential_es.md", + "source_file": "examples/content_tangential_es.md", + "source_location": "L1" + }, + { + "id": "examples_content_tangential_es_reflexiones_sobre_el_debate_pol\u00edtico_y_la_diplomacia_regional", + "label": "Reflexiones sobre el debate pol\u00edtico y la diplomacia regional", + "_origin": "ast", + "community": 51, + "community_name": "content_tangential_es.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "reflexiones sobre el debate politico y la diplomacia regional", + "source_file": "examples/content_tangential_es.md", + "source_location": "L1" + }, + { + "id": "src_adapters_init", + "label": "adapters/__init__.py", + "_origin": "ast", + "community": 52, + "community_name": "adapters/__init__.py", + "file_type": "code", + "norm_label": "adapters/__init__.py", + "source_file": "src/adapters/__init__.py", + "source_location": "L1" + }, + { + "id": "src_adapters_init_rationale_1", + "label": "Adapters package for optional vector embeddings and LLM providers.", + "_origin": "ast", + "community": 52, + "community_name": "adapters/__init__.py", + "file_type": "rationale", + "norm_label": "adapters package for optional vector embeddings and llm providers.", + "source_file": "src/adapters/__init__.py", + "source_location": "L1" + }, + { + "id": "src_init", + "label": "src/__init__.py", + "_origin": "ast", + "community": 53, + "community_name": "src/__init__.py", + "file_type": "code", + "norm_label": "src/__init__.py", + "source_file": "src/__init__.py", + "source_location": "L1" + }, + { + "id": "src_init_rationale_1", + "label": "Multilingual NLP Entity Inherence Classifier package.", + "_origin": "ast", + "community": 53, + "community_name": "src/__init__.py", + "file_type": "rationale", + "norm_label": "multilingual nlp entity inherence classifier package.", + "source_file": "src/__init__.py", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_de_contextual", + "label": "de/contextual.md", + "_origin": "ast", + "community": 54, + "community_name": "de/contextual.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "de/contextual.md", + "source_file": "tests/fixtures/benchmark_24/de/contextual.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_de_contextual_batteriefabrik_in_europa", + "label": "Batteriefabrik in Europa", + "_origin": "ast", + "community": 54, + "community_name": "de/contextual.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "batteriefabrik in europa", + "source_file": "tests/fixtures/benchmark_24/de/contextual.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_de_direct", + "label": "de/direct.md", + "_origin": "ast", + "community": 55, + "community_name": "de/direct.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "de/direct.md", + "source_file": "tests/fixtures/benchmark_24/de/direct.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_de_direct_investitionsoffensive_in_wolfsburg", + "label": "Investitionsoffensive in Wolfsburg", + "_origin": "ast", + "community": 55, + "community_name": "de/direct.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "investitionsoffensive in wolfsburg", + "source_file": "tests/fixtures/benchmark_24/de/direct.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_de_not_related", + "label": "de/not_related.md", + "_origin": "ast", + "community": 56, + "community_name": "de/not_related.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "de/not_related.md", + "source_file": "tests/fixtures/benchmark_24/de/not_related.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_de_not_related_backrezept_f\u00fcr_apfelstrudel", + "label": "Backrezept f\u00fcr Apfelstrudel", + "_origin": "ast", + "community": 56, + "community_name": "de/not_related.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "backrezept fur apfelstrudel", + "source_file": "tests/fixtures/benchmark_24/de/not_related.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_de_tangential", + "label": "de/tangential.md", + "_origin": "ast", + "community": 57, + "community_name": "de/tangential.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "de/tangential.md", + "source_file": "tests/fixtures/benchmark_24/de/tangential.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_de_tangential_reisebericht_aus_niedersachsen", + "label": "Reisebericht aus Niedersachsen", + "_origin": "ast", + "community": 57, + "community_name": "de/tangential.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "reisebericht aus niedersachsen", + "source_file": "tests/fixtures/benchmark_24/de/tangential.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_en_contextual", + "label": "en/contextual.md", + "_origin": "ast", + "community": 58, + "community_name": "en/contextual.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "en/contextual.md", + "source_file": "tests/fixtures/benchmark_24/en/contextual.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_en_contextual_electronics_assembly_expansion", + "label": "Electronics Assembly Expansion", + "_origin": "ast", + "community": 58, + "community_name": "en/contextual.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "electronics assembly expansion", + "source_file": "tests/fixtures/benchmark_24/en/contextual.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_en_direct", + "label": "en/direct.md", + "_origin": "ast", + "community": 59, + "community_name": "en/direct.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "en/direct.md", + "source_file": "tests/fixtures/benchmark_24/en/direct.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_en_direct_apple_unveils_next_generation_iphone", + "label": "Apple Unveils Next-Generation iPhone", + "_origin": "ast", + "community": 59, + "community_name": "en/direct.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "apple unveils next-generation iphone", + "source_file": "tests/fixtures/benchmark_24/en/direct.md", + "source_location": "L1" + }, + { + "id": "specify_templates_spec_template", + "label": "spec-template.md", + "_origin": "ast", + "community": 6, + "community_name": "Feature Specification Template", + "file_type": "document", + "node_kind": "page", + "norm_label": "spec-template.md", + "source_file": ".specify/templates/spec-template.md", + "source_location": "L1" + }, + { + "id": "specify_templates_spec_template_assumptions", + "label": "Assumptions", + "_origin": "ast", + "community": 6, + "community_name": "Feature Specification Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "assumptions", + "source_file": ".specify/templates/spec-template.md", + "source_location": "L120" + }, + { + "id": "specify_templates_spec_template_edge_cases", + "label": "Edge Cases", + "_origin": "ast", + "community": 6, + "community_name": "Feature Specification Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "edge cases", + "source_file": ".specify/templates/spec-template.md", + "source_location": "L71" + }, + { + "id": "specify_templates_spec_template_feature_specification_feature_name", + "label": "Feature Specification: [FEATURE NAME]", + "_origin": "ast", + "community": 6, + "community_name": "Feature Specification Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "feature specification: [feature name]", + "source_file": ".specify/templates/spec-template.md", + "source_location": "L1" + }, + { + "id": "specify_templates_spec_template_functional_requirements", + "label": "Functional Requirements", + "_origin": "ast", + "community": 6, + "community_name": "Feature Specification Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "functional requirements", + "source_file": ".specify/templates/spec-template.md", + "source_location": "L88" + }, + { + "id": "specify_templates_spec_template_key_entities_include_if_feature_involves_data", + "label": "Key Entities *(include if feature involves data)*", + "_origin": "ast", + "community": 6, + "community_name": "Feature Specification Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "key entities *(include if feature involves data)*", + "source_file": ".specify/templates/spec-template.md", + "source_location": "L101" + }, + { + "id": "specify_templates_spec_template_measurable_outcomes", + "label": "Measurable Outcomes", + "_origin": "ast", + "community": 6, + "community_name": "Feature Specification Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "measurable outcomes", + "source_file": ".specify/templates/spec-template.md", + "source_location": "L113" + }, + { + "id": "specify_templates_spec_template_requirements_mandatory", + "label": "Requirements *(mandatory)*", + "_origin": "ast", + "community": 6, + "community_name": "Feature Specification Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "requirements *(mandatory)*", + "source_file": ".specify/templates/spec-template.md", + "source_location": "L81" + }, + { + "id": "specify_templates_spec_template_success_criteria_mandatory", + "label": "Success Criteria *(mandatory)*", + "_origin": "ast", + "community": 6, + "community_name": "Feature Specification Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "success criteria *(mandatory)*", + "source_file": ".specify/templates/spec-template.md", + "source_location": "L106" + }, + { + "id": "specify_templates_spec_template_user_scenarios_testing_mandatory", + "label": "User Scenarios & Testing *(mandatory)*", + "_origin": "ast", + "community": 6, + "community_name": "Feature Specification Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user scenarios & testing *(mandatory)*", + "source_file": ".specify/templates/spec-template.md", + "source_location": "L11" + }, + { + "id": "specify_templates_spec_template_user_story_1_brief_title_priority_p1", + "label": "User Story 1 - [Brief Title] (Priority: P1)", + "_origin": "ast", + "community": 6, + "community_name": "Feature Specification Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user story 1 - [brief title] (priority: p1)", + "source_file": ".specify/templates/spec-template.md", + "source_location": "L26" + }, + { + "id": "specify_templates_spec_template_user_story_2_brief_title_priority_p2", + "label": "User Story 2 - [Brief Title] (Priority: P2)", + "_origin": "ast", + "community": 6, + "community_name": "Feature Specification Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user story 2 - [brief title] (priority: p2)", + "source_file": ".specify/templates/spec-template.md", + "source_location": "L41" + }, + { + "id": "specify_templates_spec_template_user_story_3_brief_title_priority_p3", + "label": "User Story 3 - [Brief Title] (Priority: P3)", + "_origin": "ast", + "community": 6, + "community_name": "Feature Specification Template", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user story 3 - [brief title] (priority: p3)", + "source_file": ".specify/templates/spec-template.md", + "source_location": "L55" + }, + { + "id": "tests_fixtures_benchmark_24_en_not_related", + "label": "en/not_related.md", + "_origin": "ast", + "community": 60, + "community_name": "en/not_related.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "en/not_related.md", + "source_file": "tests/fixtures/benchmark_24/en/not_related.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_en_not_related_classic_apple_pie_baking_guide", + "label": "Classic Apple Pie Baking Guide", + "_origin": "ast", + "community": 60, + "community_name": "en/not_related.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "classic apple pie baking guide", + "source_file": "tests/fixtures/benchmark_24/en/not_related.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_en_tangential", + "label": "en/tangential.md", + "_origin": "ast", + "community": 61, + "community_name": "en/tangential.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "en/tangential.md", + "source_file": "tests/fixtures/benchmark_24/en/tangential.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_en_tangential_morning_city_walk", + "label": "Morning City Walk", + "_origin": "ast", + "community": 61, + "community_name": "en/tangential.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "morning city walk", + "source_file": "tests/fixtures/benchmark_24/en/tangential.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_es_contextual", + "label": "es/contextual.md", + "_origin": "ast", + "community": 62, + "community_name": "es/contextual.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "es/contextual.md", + "source_file": "tests/fixtures/benchmark_24/es/contextual.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_es_contextual_nuevas_soluciones_de_pagos_electr\u00f3nicos", + "label": "Nuevas Soluciones de Pagos Electr\u00f3nicos", + "_origin": "ast", + "community": 62, + "community_name": "es/contextual.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "nuevas soluciones de pagos electronicos", + "source_file": "tests/fixtures/benchmark_24/es/contextual.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_es_direct", + "label": "es/direct.md", + "_origin": "ast", + "community": 63, + "community_name": "es/direct.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "es/direct.md", + "source_file": "tests/fixtures/benchmark_24/es/direct.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_es_direct_expansi\u00f3n_de_servicios_financieros_en_espa\u00f1a", + "label": "Expansi\u00f3n de Servicios Financieros en Espa\u00f1a", + "_origin": "ast", + "community": 63, + "community_name": "es/direct.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "expansion de servicios financieros en espana", + "source_file": "tests/fixtures/benchmark_24/es/direct.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_es_not_related", + "label": "es/not_related.md", + "_origin": "ast", + "community": 64, + "community_name": "es/not_related.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "es/not_related.md", + "source_file": "tests/fixtures/benchmark_24/es/not_related.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_es_not_related_turismo_en_la_costa_norte", + "label": "Turismo en la Costa Norte", + "_origin": "ast", + "community": 64, + "community_name": "es/not_related.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "turismo en la costa norte", + "source_file": "tests/fixtures/benchmark_24/es/not_related.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_es_tangential", + "label": "es/tangential.md", + "_origin": "ast", + "community": 65, + "community_name": "es/tangential.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "es/tangential.md", + "source_file": "tests/fixtures/benchmark_24/es/tangential.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_es_tangential_gu\u00eda_cultural_de_la_ciudad", + "label": "Gu\u00eda Cultural de la Ciudad", + "_origin": "ast", + "community": 65, + "community_name": "es/tangential.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "guia cultural de la ciudad", + "source_file": "tests/fixtures/benchmark_24/es/tangential.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_fr_contextual", + "label": "fr/contextual.md", + "_origin": "ast", + "community": 66, + "community_name": "fr/contextual.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "fr/contextual.md", + "source_file": "tests/fixtures/benchmark_24/fr/contextual.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_fr_contextual_batteries_industrielles_de_pointe", + "label": "Batteries Industrielles de Pointe", + "_origin": "ast", + "community": 66, + "community_name": "fr/contextual.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "batteries industrielles de pointe", + "source_file": "tests/fixtures/benchmark_24/fr/contextual.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_fr_direct", + "label": "fr/direct.md", + "_origin": "ast", + "community": 67, + "community_name": "fr/direct.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "fr/direct.md", + "source_file": "tests/fixtures/benchmark_24/fr/direct.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_fr_direct_d\u00e9veloppement_\u00e9nerg\u00e9tique_en_france", + "label": "D\u00e9veloppement \u00c9nerg\u00e9tique en France", + "_origin": "ast", + "community": 67, + "community_name": "fr/direct.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "developpement energetique en france", + "source_file": "tests/fixtures/benchmark_24/fr/direct.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_fr_not_related", + "label": "fr/not_related.md", + "_origin": "ast", + "community": 68, + "community_name": "fr/not_related.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "fr/not_related.md", + "source_file": "tests/fixtures/benchmark_24/fr/not_related.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_fr_not_related_recette_traditionnelle_de_la_quiche_lorraine", + "label": "Recette Traditionnelle de la Quiche Lorraine", + "_origin": "ast", + "community": 68, + "community_name": "fr/not_related.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "recette traditionnelle de la quiche lorraine", + "source_file": "tests/fixtures/benchmark_24/fr/not_related.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_fr_tangential", + "label": "fr/tangential.md", + "_origin": "ast", + "community": 69, + "community_name": "fr/tangential.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "fr/tangential.md", + "source_file": "tests/fixtures/benchmark_24/fr/tangential.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_fr_tangential_promenade_dans_paris", + "label": "Promenade dans Paris", + "_origin": "ast", + "community": 69, + "community_name": "fr/tangential.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "promenade dans paris", + "source_file": "tests/fixtures/benchmark_24/fr/tangential.md", + "source_location": "L1" + }, + { + "id": "agents_rules_graphify", + "label": "rules/graphify.md", + "_origin": "ast", + "community": 7, + "community_name": "Graphify Rules", + "file_type": "document", + "frontmatter": { + "trigger": "always_on", + "description": "Consult the graphify knowledge graph at graphify-out/ for codebase and architecture questions." + }, + "node_kind": "page", + "norm_label": "rules/graphify.md", + "source_file": ".agents/rules/graphify.md", + "source_location": "L1" + }, + { + "id": "agents_rules_graphify_graphify", + "label": "graphify", + "_origin": "ast", + "community": 7, + "community_name": "Graphify Rules", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graphify", + "source_file": ".agents/rules/graphify.md", + "source_location": "L6" + }, + { + "id": "tests_fixtures_benchmark_24_it_contextual", + "label": "it/contextual.md", + "_origin": "ast", + "community": 70, + "community_name": "it/contextual.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "it/contextual.md", + "source_file": "tests/fixtures/benchmark_24/it/contextual.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_it_contextual_innovazione_negli_impianti_frenanti", + "label": "Innovazione negli Impianti Frenanti", + "_origin": "ast", + "community": 70, + "community_name": "it/contextual.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "innovazione negli impianti frenanti", + "source_file": "tests/fixtures/benchmark_24/it/contextual.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_it_direct", + "label": "it/direct.md", + "_origin": "ast", + "community": 71, + "community_name": "it/direct.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "it/direct.md", + "source_file": "tests/fixtures/benchmark_24/it/direct.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_it_direct_nuova_monoposto_a_maranello", + "label": "Nuova Monoposto a Maranello", + "_origin": "ast", + "community": 71, + "community_name": "it/direct.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "nuova monoposto a maranello", + "source_file": "tests/fixtures/benchmark_24/it/direct.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_it_not_related", + "label": "it/not_related.md", + "_origin": "ast", + "community": 72, + "community_name": "it/not_related.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "it/not_related.md", + "source_file": "tests/fixtures/benchmark_24/it/not_related.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_it_not_related_ricetta_tradizionale_del_risotto", + "label": "Ricetta Tradizionale del Risotto", + "_origin": "ast", + "community": 72, + "community_name": "it/not_related.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "ricetta tradizionale del risotto", + "source_file": "tests/fixtures/benchmark_24/it/not_related.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_it_tangential", + "label": "it/tangential.md", + "_origin": "ast", + "community": 73, + "community_name": "it/tangential.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "it/tangential.md", + "source_file": "tests/fixtures/benchmark_24/it/tangential.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_it_tangential_passeggiata_pomeridiana_a_modena", + "label": "Passeggiata Pomeridiana a Modena", + "_origin": "ast", + "community": 73, + "community_name": "it/tangential.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "passeggiata pomeridiana a modena", + "source_file": "tests/fixtures/benchmark_24/it/tangential.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_pt_contextual", + "label": "pt/contextual.md", + "_origin": "ast", + "community": 74, + "community_name": "pt/contextual.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "pt/contextual.md", + "source_file": "tests/fixtures/benchmark_24/pt/contextual.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_pt_contextual_log\u00edstica_de_derivados", + "label": "Log\u00edstica de Derivados", + "_origin": "ast", + "community": 74, + "community_name": "pt/contextual.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "logistica de derivados", + "source_file": "tests/fixtures/benchmark_24/pt/contextual.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_pt_direct", + "label": "pt/direct.md", + "_origin": "ast", + "community": 75, + "community_name": "pt/direct.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "pt/direct.md", + "source_file": "tests/fixtures/benchmark_24/pt/direct.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_pt_direct_produ\u00e7\u00e3o_de_petr\u00f3leo_no_brasil", + "label": "Produ\u00e7\u00e3o de Petr\u00f3leo no Brasil", + "_origin": "ast", + "community": 75, + "community_name": "pt/direct.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "producao de petroleo no brasil", + "source_file": "tests/fixtures/benchmark_24/pt/direct.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_pt_not_related", + "label": "pt/not_related.md", + "_origin": "ast", + "community": 76, + "community_name": "pt/not_related.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "pt/not_related.md", + "source_file": "tests/fixtures/benchmark_24/pt/not_related.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_pt_not_related_dicas_de_jardinagem", + "label": "Dicas de Jardinagem", + "_origin": "ast", + "community": 76, + "community_name": "pt/not_related.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "dicas de jardinagem", + "source_file": "tests/fixtures/benchmark_24/pt/not_related.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_pt_tangential", + "label": "pt/tangential.md", + "_origin": "ast", + "community": 77, + "community_name": "pt/tangential.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "pt/tangential.md", + "source_file": "tests/fixtures/benchmark_24/pt/tangential.md", + "source_location": "L1" + }, + { + "id": "tests_fixtures_benchmark_24_pt_tangential_turismo_no_rio_de_janeiro", + "label": "Turismo no Rio de Janeiro", + "_origin": "ast", + "community": 77, + "community_name": "pt/tangential.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "turismo no rio de janeiro", + "source_file": "tests/fixtures/benchmark_24/pt/tangential.md", + "source_location": "L1" + }, + { + "id": "tests_init", + "label": "tests/__init__.py", + "_origin": "ast", + "community": 78, + "community_name": "tests/__init__.py", + "file_type": "code", + "norm_label": "tests/__init__.py", + "source_file": "tests/__init__.py", + "source_location": "L1" + }, + { + "id": "tests_init_rationale_1", + "label": "Test package for Multilingual NLP Entity Inherence Classifier.", + "_origin": "ast", + "community": 78, + "community_name": "tests/__init__.py", + "file_type": "rationale", + "norm_label": "test package for multilingual nlp entity inherence classifier.", + "source_file": "tests/__init__.py", + "source_location": "L1" + }, + { + "id": "pkg_text_nlp_classifier", + "label": "text-nlp-classifier", + "_origin": "ast", + "community": 79, + "community_name": "text-nlp-classifier", + "ecosystem": "python", + "file_type": "code", + "norm_label": "text-nlp-classifier", + "source_file": "pyproject.toml", + "source_location": "L1", + "type": "package", + "version": "0.1.0" + }, + { + "id": "agents_skills_speckit_plan_skill", + "label": "speckit-plan/SKILL.md", + "_origin": "ast", + "community": 8, + "community_name": "Implementation Planning", + "file_type": "document", + "frontmatter": { + "name": "speckit-plan", + "description": "Execute the implementation planning workflow using the plan template to generate design artifacts.", + "compatibility": "Requires spec-kit project structure with .specify/ directory" + }, + "node_kind": "page", + "norm_label": "speckit-plan/skill.md", + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_speckit_plan_skill_completion_report", + "label": "Completion Report", + "_origin": "ast", + "community": 8, + "community_name": "Implementation Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "completion report", + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L104" + }, + { + "id": "agents_skills_speckit_plan_skill_done_when", + "label": "Done When", + "_origin": "ast", + "community": 8, + "community_name": "Implementation Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "done when", + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L162" + }, + { + "id": "agents_skills_speckit_plan_skill_key_rules", + "label": "Key rules", + "_origin": "ast", + "community": 8, + "community_name": "Implementation Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "key rules", + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L157" + }, + { + "id": "agents_skills_speckit_plan_skill_mandatory_post_execution_hooks", + "label": "Mandatory Post-Execution Hooks", + "_origin": "ast", + "community": 8, + "community_name": "Implementation Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "mandatory post-execution hooks", + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L69" + }, + { + "id": "agents_skills_speckit_plan_skill_outline", + "label": "Outline", + "_origin": "ast", + "community": 8, + "community_name": "Implementation Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "outline", + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L55" + }, + { + "id": "agents_skills_speckit_plan_skill_phase_0_outline_research", + "label": "Phase 0: Outline & Research", + "_origin": "ast", + "community": 8, + "community_name": "Implementation Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 0: outline & research", + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L110" + }, + { + "id": "agents_skills_speckit_plan_skill_phase_1_design_contracts", + "label": "Phase 1: Design & Contracts", + "_origin": "ast", + "community": 8, + "community_name": "Implementation Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 1: design & contracts", + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L133" + }, + { + "id": "agents_skills_speckit_plan_skill_phases", + "label": "Phases", + "_origin": "ast", + "community": 8, + "community_name": "Implementation Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phases", + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L108" + }, + { + "id": "agents_skills_speckit_plan_skill_pre_execution_checks", + "label": "Pre-Execution Checks", + "_origin": "ast", + "community": 8, + "community_name": "Implementation Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "pre-execution checks", + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L19" + }, + { + "id": "agents_skills_speckit_plan_skill_user_input", + "label": "User Input", + "_origin": "ast", + "community": 8, + "community_name": "Implementation Planning", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user input", + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L11" + }, + { + "id": "scripts_extract_article_contents", + "label": "extract_article_contents.py", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "extract_article_contents.py", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L1" + }, + { + "id": "scripts_extract_article_contents_py_any", + "label": "Any", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "any", + "source_file": "", + "source_location": "" + }, + { + "id": "scripts_extract_article_contents_py_namespace", + "label": "Namespace", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "namespace", + "source_file": "", + "source_location": "" + }, + { + "id": "scripts_extract_article_contents_py_path", + "label": "Path", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "path", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_extract_article_contents", + "label": "test_extract_article_contents.py", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "test_extract_article_contents.py", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L1" + }, + { + "id": "tests_test_extract_article_contents_py_fixture", + "label": "fixture", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "fixture", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_extract_article_contents_py_path", + "label": "Path", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "code", + "norm_label": "path", + "source_file": "", + "source_location": "" + }, + { + "id": "scripts_extract_article_contents_rationale_103", + "label": "Dados completos extra\u00eddos e enriquecidos com NLP pelo motor Newspaper4k.", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "dados completos extraidos e enriquecidos com nlp pelo motor newspaper4k.", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L103" + }, + { + "id": "scripts_extract_article_contents_rationale_153", + "label": "Dados completos higienizados pelo algoritmo Readability.", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "dados completos higienizados pelo algoritmo readability.", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L153" + }, + { + "id": "scripts_extract_article_contents_rationale_175", + "label": "Resultado consolidado da extra\u00e7\u00e3o de um artigo.", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "resultado consolidado da extracao de um artigo.", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L175" + }, + { + "id": "scripts_extract_article_contents_rationale_203", + "label": "Relat\u00f3rio consolidado de sa\u00edda do processamento de um lote.", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "relatorio consolidado de saida do processamento de um lote.", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L203" + }, + { + "id": "scripts_extract_article_contents_rationale_229", + "label": "Motor de extra\u00e7\u00e3o baseado na biblioteca Trafilatura.", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "motor de extracao baseado na biblioteca trafilatura.", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L229" + }, + { + "id": "scripts_extract_article_contents_rationale_333", + "label": "Motor de extra\u00e7\u00e3o baseado no Newspaper4k com NLP.", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "motor de extracao baseado no newspaper4k com nlp.", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L333" + }, + { + "id": "scripts_extract_article_contents_rationale_35", + "label": "Metadados originais da not\u00edcia contida no JSON de entrada.", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "metadados originais da noticia contida no json de entrada.", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L35" + }, + { + "id": "scripts_extract_article_contents_rationale_396", + "label": "Motor de extra\u00e7\u00e3o baseado no algoritmo Readability (readability-lxml).", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "motor de extracao baseado no algoritmo readability (readability-lxml).", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L396" + }, + { + "id": "scripts_extract_article_contents_rationale_430", + "label": "Executa a extra\u00e7\u00e3o simult\u00e2nea pelos tr\u00eas motores de conte\u00fado com isolamento\u2026", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "executa a extracao simultanea pelos tres motores de conteudo com isolamento...", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L430" + }, + { + "id": "scripts_extract_article_contents_rationale_483", + "label": "Gerenciador de ciclo de vida e requisi\u00e7\u00f5es via Foxcape Headless.", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "gerenciador de ciclo de vida e requisicoes via foxcape headless.", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L483" + }, + { + "id": "scripts_extract_article_contents_rationale_512", + "label": "Navega at\u00e9 a URL, aguarda o carregamento do DOM e retorna (html, page_title,\u2026", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "navega ate a url, aguarda o carregamento do dom e retorna (html, page_title,...", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L512" + }, + { + "id": "scripts_extract_article_contents_rationale_534", + "label": "Escreve mensagem informativa no stderr.", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "escreve mensagem informativa no stderr.", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L534" + }, + { + "id": "scripts_extract_article_contents_rationale_541", + "label": "Carrega o arquivo JSON gerado pelo extrator de not\u00edcias.", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "carrega o arquivo json gerado pelo extrator de noticias.", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L541" + }, + { + "id": "scripts_extract_article_contents_rationale_55", + "label": "Dados completos extra\u00eddos pelo motor Trafilatura.", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "dados completos extraidos pelo motor trafilatura.", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L55" + }, + { + "id": "scripts_extract_article_contents_rationale_569", + "label": "Salva o relat\u00f3rio consolidado em formato JSON com UTF-8.", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "salva o relatorio consolidado em formato json com utf-8.", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L569" + }, + { + "id": "scripts_extract_article_contents_rationale_583", + "label": "Executa o pipeline completo de extra\u00e7\u00e3o em lote para o arquivo de entrada.", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "executa o pipeline completo de extracao em lote para o arquivo de entrada.", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L583" + }, + { + "id": "tests_test_extract_article_contents_rationale_317", + "label": "Valida E2E a extra\u00e7\u00e3o real ao vivo com Foxcape e os 3 motores em lote.", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "valida e2e a extracao real ao vivo com foxcape e os 3 motores em lote.", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L317" + }, + { + "id": "tests_test_extract_article_contents_rationale_361", + "label": "Valida E2E a execu\u00e7\u00e3o do CLI real de ponta a ponta.", + "_origin": "ast", + "community": 80, + "community_name": "test_extract_article_contents.py", + "file_type": "rationale", + "norm_label": "valida e2e a execucao do cli real de ponta a ponta.", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L361" + }, + { + "id": "docs_googlenews_extractor_guia_completo", + "label": "googlenews_extractor_guia_completo.md", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "page", + "norm_label": "googlenews_extractor_guia_completo.md", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L1" + }, + { + "id": "docs_googlenews_extractor_guia_completo_1_vis\u00e3o_geral_arquitetura", + "label": "1. Vis\u00e3o geral (arquitetura)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. visao geral (arquitetura)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L9" + }, + { + "id": "docs_googlenews_extractor_guia_completo_2_1_dto_de_entrada_googlenews_etl_application_dtos_extract_news_dto_py", + "label": "2.1 DTO de entrada (`googlenews_etl/application/dtos/extract_news_dto.py`)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2.1 dto de entrada (`googlenews_etl/application/dtos/extract_news_dto.py`)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L58" + }, + { + "id": "docs_googlenews_extractor_guia_completo_2_2_value_object_de_valida\u00e7\u00e3o_googlenews_etl_domain_entities_search_query_py", + "label": "2.2 Value Object de valida\u00e7\u00e3o (`googlenews_etl/domain/entities/search_query.py`)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2.2 value object de validacao (`googlenews_etl/domain/entities/search_query.py`)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L77" + }, + { + "id": "docs_googlenews_extractor_guia_completo_2_entrada", + "label": "2. Entrada", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. entrada", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L56" + }, + { + "id": "docs_googlenews_extractor_guia_completo_3_1_o_caso_de_uso_googlenews_etl_application_use_cases_extract_news_use_case_py", + "label": "3.1 O caso de uso (`googlenews_etl/application/use_cases/extract_news_use_case.py`)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.1 o caso de uso (`googlenews_etl/application/use_cases/extract_news_use_case.py`)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L119" + }, + { + "id": "docs_googlenews_extractor_guia_completo_3_2_a_porta_googlenews_etl_domain_ports_news_extractor_port_py", + "label": "3.2 A porta (`googlenews_etl/domain/ports/news_extractor_port.py`)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.2 a porta (`googlenews_etl/domain/ports/news_extractor_port.py`)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L173" + }, + { + "id": "docs_googlenews_extractor_guia_completo_3_3_1_inicializa\u00e7\u00e3o_sess\u00e3o_http_com_impersona\u00e7\u00e3o_de_browser", + "label": "3.3.1 Inicializa\u00e7\u00e3o: sess\u00e3o HTTP com impersona\u00e7\u00e3o de browser", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.3.1 inicializacao: sessao http com impersonacao de browser", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L190" + }, + { + "id": "docs_googlenews_extractor_guia_completo_3_3_2_mapeamento_idioma_par\u00e2metros_hl_gl_get_hl_gl", + "label": "3.3.2 Mapeamento idioma \u2192 par\u00e2metros `hl`/`gl` (`_get_hl_gl`)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.3.2 mapeamento idioma \u2192 parametros `hl`/`gl` (`_get_hl_gl`)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L220" + }, + { + "id": "docs_googlenews_extractor_guia_completo_3_3_3_extra\u00e7\u00e3o_do_rss_o_ponto_fundamental_fetch_rss", + "label": "3.3.3 \u2605 Extra\u00e7\u00e3o do RSS \u2014 o ponto fundamental (`_fetch_rss`)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.3.3 \u2605 extracao do rss \u2014 o ponto fundamental (`_fetch_rss`)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L257" + }, + { + "id": "docs_googlenews_extractor_guia_completo_3_3_4_orquestra\u00e7\u00e3o_com_resolu\u00e7\u00e3o_de_urls_extract", + "label": "3.3.4 Orquestra\u00e7\u00e3o com resolu\u00e7\u00e3o de URLs (`extract`)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.3.4 orquestracao com resolucao de urls (`extract`)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L313" + }, + { + "id": "docs_googlenews_extractor_guia_completo_3_3_o_adaptador_concreto_o_cora\u00e7\u00e3o_do_extrator_googlenews_etl_infrastructure_adapters_google_news_extractor_adapter_py", + "label": "3.3 O adaptador concreto \u2014 o cora\u00e7\u00e3o do extrator (`googlenews_etl/infrastructure/adapters/google_news_extractor_adapter.py`)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.3 o adaptador concreto \u2014 o coracao do extrator (`googlenews_etl/infrastructure/adapters/google_news_extractor_adapter.py`)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L188" + }, + { + "id": "docs_googlenews_extractor_guia_completo_3_4_resolu\u00e7\u00e3o_de_urls_googlenews_etl_infrastructure_adapters_playwright_url_resolver_adapter_py", + "label": "3.4 Resolu\u00e7\u00e3o de URLs (`googlenews_etl/infrastructure/adapters/playwright_url_resolver_adapter.py`)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.4 resolucao de urls (`googlenews_etl/infrastructure/adapters/playwright_url_resolver_adapter.py`)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L339" + }, + { + "id": "docs_googlenews_extractor_guia_completo_3_5_rate_limiter_googlenews_etl_domain_services_rate_limiter_service_py", + "label": "3.5 Rate limiter (`googlenews_etl/domain/services/rate_limiter_service.py`)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.5 rate limiter (`googlenews_etl/domain/services/rate_limiter_service.py`)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L395" + }, + { + "id": "docs_googlenews_extractor_guia_completo_3_processamento_passo_a_passo", + "label": "3. Processamento \u2014 passo a passo", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. processamento \u2014 passo a passo", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L117" + }, + { + "id": "docs_googlenews_extractor_guia_completo_4_entidade_de_dom\u00ednio_da_not\u00edcia_googlenews_etl_domain_entities_news_article_py", + "label": "4. Entidade de dom\u00ednio da not\u00edcia (`googlenews_etl/domain/entities/news_article.py`)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. entidade de dominio da noticia (`googlenews_etl/domain/entities/news_article.py`)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L414" + }, + { + "id": "docs_googlenews_extractor_guia_completo_5_1_dtos_de_sa\u00edda_googlenews_etl_application_dtos_extract_news_dto_py", + "label": "5.1 DTOs de sa\u00edda (`googlenews_etl/application/dtos/extract_news_dto.py`)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5.1 dtos de saida (`googlenews_etl/application/dtos/extract_news_dto.py`)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L448" + }, + { + "id": "docs_googlenews_extractor_guia_completo_5_2_exemplo_de_sa\u00edda_json", + "label": "5.2 Exemplo de sa\u00edda JSON", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5.2 exemplo de saida json", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L472" + }, + { + "id": "docs_googlenews_extractor_guia_completo_5_sa\u00edda", + "label": "5. Sa\u00edda", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5. saida", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L446" + }, + { + "id": "docs_googlenews_extractor_guia_completo_6_resumo_do_fluxo_completo_entrada_sa\u00edda", + "label": "6. Resumo do fluxo completo (entrada \u2192 sa\u00edda)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6. resumo do fluxo completo (entrada \u2192 saida)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L497" + }, + { + "id": "docs_googlenews_extractor_guia_completo_7_depend\u00eancias_para_rodar_o_que_n\u00e3o_est\u00e1_nos_4_arquivos_centrais", + "label": "7. Depend\u00eancias para rodar (o que N\u00c3O est\u00e1 nos 4 arquivos centrais)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "7. dependencias para rodar (o que nao esta nos 4 arquivos centrais)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L525" + }, + { + "id": "docs_googlenews_extractor_guia_completo_8_como_chamar_exemplo_de_uso", + "label": "8. Como chamar (exemplo de uso)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "8. como chamar (exemplo de uso)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L559" + }, + { + "id": "docs_googlenews_extractor_guia_completo_comportamentos_observ\u00e1veis_honestidade", + "label": "Comportamentos observ\u00e1veis (honestidade)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "comportamentos observaveis (honestidade)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L548" + }, + { + "id": "docs_googlenews_extractor_guia_completo_depend\u00eancias_de_bibliotecas_requirements", + "label": "Depend\u00eancias de bibliotecas (requirements)", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "dependencias de bibliotecas (requirements)", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L540" + }, + { + "id": "docs_googlenews_extractor_guia_completo_extrator_de_not\u00edcias_do_google_news_guia_completo_de_funcionamento", + "label": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "_origin": "ast", + "community": 81, + "community_name": "Extrator de Not\u00edcias do Google News \u2014 Guia Completo de Funcionamento", + "file_type": "document", + "node_kind": "heading", + "norm_label": "extrator de noticias do google news \u2014 guia completo de funcionamento", + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L1" + }, + { + "id": "scripts_extract_google_news", + "label": "extract_google_news.py", + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "code", + "norm_label": "extract_google_news.py", + "source_file": "scripts/extract_google_news.py", + "source_location": "L1" + }, + { + "id": "scripts_extract_google_news_rationale_108", + "label": "Mapeia idioma e locale para os par\u00e2metros hl, gl e ceid do Google News.", + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "rationale", + "norm_label": "mapeia idioma e locale para os parametros hl, gl e ceid do google news.", + "source_file": "scripts/extract_google_news.py", + "source_location": "L108" + }, + { + "id": "scripts_extract_google_news_rationale_152", + "label": "Remove pontua\u00e7\u00e3o e espa\u00e7os extras para compara\u00e7\u00e3o de redund\u00e2ncia.", + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "rationale", + "norm_label": "remove pontuacao e espacos extras para comparacao de redundancia.", + "source_file": "scripts/extract_google_news.py", + "source_location": "L152" + }, + { + "id": "scripts_extract_google_news_rationale_157", + "label": "Parseia o XML do RSS do Google News e extrai os itens estruturados.", + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "rationale", + "norm_label": "parseia o xml do rss do google news e extrai os itens estruturados.", + "source_file": "scripts/extract_google_news.py", + "source_location": "L157" + }, + { + "id": "scripts_extract_google_news_rationale_223", + "label": "Resolve em paralelo as URLs intermedi\u00e1rias do Google News para os links finais\u2026", + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "rationale", + "norm_label": "resolve em paralelo as urls intermediarias do google news para os links finais...", + "source_file": "scripts/extract_google_news.py", + "source_location": "L223" + }, + { + "id": "scripts_extract_google_news_rationale_254", + "label": "Realiza a requisi\u00e7\u00e3o ao feed RSS utilizando a biblioteca Foxcape como motor\u2026", + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "rationale", + "norm_label": "realiza a requisicao ao feed rss utilizando a biblioteca foxcape como motor...", + "source_file": "scripts/extract_google_news.py", + "source_location": "L254" + }, + { + "id": "scripts_extract_google_news_rationale_300", + "label": "Orquestra a consulta ao Google News e retorna o resultado consolidado com URLs\u2026", + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "rationale", + "norm_label": "orquestra a consulta ao google news e retorna o resultado consolidado com urls...", + "source_file": "scripts/extract_google_news.py", + "source_location": "L300" + }, + { + "id": "scripts_extract_google_news_rationale_65", + "label": "Entidade que representa uma not\u00edcia extra\u00edda.", + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "rationale", + "norm_label": "entidade que representa uma noticia extraida.", + "source_file": "scripts/extract_google_news.py", + "source_location": "L65" + }, + { + "id": "tests_test_extract_google_news_rationale_112", + "label": "Valida o parsing do feed RSS, higieniza\u00e7\u00e3o de tags HTML e deduplica\u00e7\u00e3o.", + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "rationale", + "norm_label": "valida o parsing do feed rss, higienizacao de tags html e deduplicacao.", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L112" + }, + { + "id": "tests_test_extract_google_news_rationale_162", + "label": "Valida a resolu\u00e7\u00e3o concorrente em lote de uma lista de NewsArticle.", + "_origin": "ast", + "community": 82, + "community_name": "extract_google_news.py", + "file_type": "rationale", + "norm_label": "valida a resolucao concorrente em lote de uma lista de newsarticle.", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L162" + }, + { + "id": "scripts_extract_google_news_py_any", + "label": "Any", + "_origin": "ast", + "community": 83, + "community_name": "ExtractionResult", + "file_type": "code", + "norm_label": "any", + "source_file": "", + "source_location": "" + }, + { + "id": "scripts_extract_google_news_rationale_85", + "label": "Resultado consolidado da extra\u00e7\u00e3o.", + "_origin": "ast", + "community": 83, + "community_name": "ExtractionResult", + "file_type": "rationale", + "norm_label": "resultado consolidado da extracao.", + "source_file": "scripts/extract_google_news.py", + "source_location": "L85" + }, + { + "id": "tests_test_extract_google_news_rationale_303", + "label": "Valida E2E o fluxo completo de busca, parsing e resolu\u00e7\u00e3o de URLs reais ao vivo.", + "_origin": "ast", + "community": 83, + "community_name": "ExtractionResult", + "file_type": "rationale", + "norm_label": "valida e2e o fluxo completo de busca, parsing e resolucao de urls reais ao vivo.", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L303" + }, + { + "id": "tests_test_extract_google_news", + "label": "test_extract_google_news.py", + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "code", + "norm_label": "test_extract_google_news.py", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L1" + }, + { + "id": "scripts_extract_google_news_rationale_208", + "label": "Resolve a URL intermedi\u00e1ria do Google News para a URL real do ve\u00edculo.", + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "rationale", + "norm_label": "resolve a url intermediaria do google news para a url real do veiculo.", + "source_file": "scripts/extract_google_news.py", + "source_location": "L208" + }, + { + "id": "tests_test_extract_google_news_rationale_1", + "label": "Testes unit\u00e1rios e de integra\u00e7\u00e3o para o Extrator de Manchetes do Google News.\u2026", + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "rationale", + "norm_label": "testes unitarios e de integracao para o extrator de manchetes do google news....", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L1" + }, + { + "id": "tests_test_extract_google_news_rationale_139", + "label": "Valida fallback gracioso de URL quando n\u00e3o \u00e9 link do Google News ou em erro.", + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "rationale", + "norm_label": "valida fallback gracioso de url quando nao e link do google news ou em erro.", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L139" + }, + { + "id": "tests_test_extract_google_news_rationale_149", + "label": "Valida resolu\u00e7\u00e3o bem-sucedida de URL do Google News para o portal destino.", + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "rationale", + "norm_label": "valida resolucao bem-sucedida de url do google news para o portal destino.", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L149" + }, + { + "id": "tests_test_extract_google_news_rationale_282", + "label": "Valida E2E que o decodificador resolve uma URL real do Google News para o\u2026", + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "rationale", + "norm_label": "valida e2e que o decodificador resolve uma url real do google news para o...", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L282" + }, + { + "id": "tests_test_extract_google_news_rationale_38", + "label": "Valida o mapeamento padr\u00e3o de idiomas para pares (hl, gl, ceid).", + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "rationale", + "norm_label": "valida o mapeamento padrao de idiomas para pares (hl, gl, ceid).", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L38" + }, + { + "id": "tests_test_extract_google_news_rationale_61", + "label": "Valida a sobrescrita geogr\u00e1fica quando o argumento locale \u00e9 especificado.", + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "rationale", + "norm_label": "valida a sobrescrita geografica quando o argumento locale e especificado.", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L61" + }, + { + "id": "tests_test_extract_google_news_rationale_79", + "label": "Valida fallback din\u00e2mico para idiomas regionais n\u00e3o listados explicitamente.", + "_origin": "ast", + "community": 84, + "community_name": "test_extract_google_news.py", + "file_type": "rationale", + "norm_label": "valida fallback dinamico para idiomas regionais nao listados explicitamente.", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L79" + }, + { + "id": "specs_002_google_news_extractor_tasks_implementation_for_user_story_1", + "label": "Implementation for User Story 1", + "_origin": "ast", + "community": 85, + "community_name": "Implementation Tasks: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation for user story 1", + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L36" + }, + { + "id": "specs_002_google_news_extractor_tasks_implementation_for_user_story_2", + "label": "Implementation for User Story 2", + "_origin": "ast", + "community": 85, + "community_name": "Implementation Tasks: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation for user story 2", + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L54" + }, + { + "id": "specs_002_google_news_extractor_tasks_implementation_for_user_story_3", + "label": "Implementation for User Story 3", + "_origin": "ast", + "community": 85, + "community_name": "Implementation Tasks: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation for user story 3", + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L70" + }, + { + "id": "specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", + "label": "Implementation Tasks: Google News Headlines Extractor", + "_origin": "ast", + "community": 85, + "community_name": "Implementation Tasks: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation tasks: google news headlines extractor", + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_tasks_phase_1_setup_shared_infrastructure", + "label": "Phase 1: Setup (Shared Infrastructure)", + "_origin": "ast", + "community": 85, + "community_name": "Implementation Tasks: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 1: setup (shared infrastructure)", + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L9" + }, + { + "id": "specs_002_google_news_extractor_tasks_phase_2_foundational_blocking_prerequisites", + "label": "Phase 2: Foundational (Blocking Prerequisites)", + "_origin": "ast", + "community": 85, + "community_name": "Implementation Tasks: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 2: foundational (blocking prerequisites)", + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L18" + }, + { + "id": "specs_002_google_news_extractor_tasks_phase_3_user_story_1_extra\u00e7\u00e3o_b\u00e1sica_de_not\u00edcias_por_assunto_e_idioma_priority_p1_mvp", + "label": "Phase 3: User Story 1 - Extra\u00e7\u00e3o B\u00e1sica de Not\u00edcias por Assunto e Idioma (Priority: P1) \ud83c\udf1f MVP", + "_origin": "ast", + "community": 85, + "community_name": "Implementation Tasks: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 3: user story 1 - extracao basica de noticias por assunto e idioma (priority: p1) \ud83c\udf1f mvp", + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L27" + }, + { + "id": "specs_002_google_news_extractor_tasks_phase_4_user_story_2_filtragem_regional_e_edi\u00e7\u00e3o_geogr\u00e1fica_priority_p2", + "label": "Phase 4: User Story 2 - Filtragem Regional e Edi\u00e7\u00e3o Geogr\u00e1fica (Priority: P2)", + "_origin": "ast", + "community": 85, + "community_name": "Implementation Tasks: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 4: user story 2 - filtragem regional e edicao geografica (priority: p2)", + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L45" + }, + { + "id": "specs_002_google_news_extractor_tasks_phase_5_user_story_3_pagina\u00e7\u00e3o_e_controle_de_volume_de_resultados_priority_p3", + "label": "Phase 5: User Story 3 - Pagina\u00e7\u00e3o e Controle de Volume de Resultados (Priority: P3)", + "_origin": "ast", + "community": 85, + "community_name": "Implementation Tasks: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 5: user story 3 - paginacao e controle de volume de resultados (priority: p3)", + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L61" + }, + { + "id": "specs_002_google_news_extractor_tasks_phase_6_url_resolution_headless_configuration_real_time_logging", + "label": "Phase 6: URL Resolution, Headless Configuration & Real-Time Logging", + "_origin": "ast", + "community": 85, + "community_name": "Implementation Tasks: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 6: url resolution, headless configuration & real-time logging", + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L77" + }, + { + "id": "specs_002_google_news_extractor_tasks_phase_7_verification_e2e_testing", + "label": "Phase 7: Verification & E2E Testing", + "_origin": "ast", + "community": 85, + "community_name": "Implementation Tasks: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "phase 7: verification & e2e testing", + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L88" + }, + { + "id": "specs_002_google_news_extractor_tasks_tests_for_user_story_1", + "label": "Tests for User Story 1 \ud83e\uddea", + "_origin": "ast", + "community": 85, + "community_name": "Implementation Tasks: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "tests for user story 1 \ud83e\uddea", + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L33" + }, + { + "id": "specs_002_google_news_extractor_tasks_tests_for_user_story_2", + "label": "Tests for User Story 2 \ud83e\uddea", + "_origin": "ast", + "community": 85, + "community_name": "Implementation Tasks: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "tests for user story 2 \ud83e\uddea", + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L51" + }, + { + "id": "specs_002_google_news_extractor_tasks_tests_for_user_story_3", + "label": "Tests for User Story 3 \ud83e\uddea", + "_origin": "ast", + "community": 85, + "community_name": "Implementation Tasks: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "tests for user story 3 \ud83e\uddea", + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L67" + }, + { + "id": "specs_002_google_news_extractor_spec_clarifications", + "label": "Clarifications", + "_origin": "ast", + "community": 86, + "community_name": "Feature Specification: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "clarifications", + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L10" + }, + { + "id": "specs_002_google_news_extractor_spec_edge_cases", + "label": "Edge Cases", + "_origin": "ast", + "community": 86, + "community_name": "Feature Specification: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "edge cases", + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L64" + }, + { + "id": "specs_002_google_news_extractor_spec_feature_specification_google_news_headlines_extractor", + "label": "Feature Specification: Google News Headlines Extractor", + "_origin": "ast", + "community": 86, + "community_name": "Feature Specification: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "feature specification: google news headlines extractor", + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_spec_functional_requirements", + "label": "Functional Requirements", + "_origin": "ast", + "community": 86, + "community_name": "Feature Specification: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "functional requirements", + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L76" + }, + { + "id": "specs_002_google_news_extractor_spec_requirements_mandatory", + "label": "Requirements *(mandatory)*", + "_origin": "ast", + "community": 86, + "community_name": "Feature Specification: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "requirements *(mandatory)*", + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L74" + }, + { + "id": "specs_002_google_news_extractor_spec_session_2026_08_20", + "label": "Session 2026-08-20", + "_origin": "ast", + "community": 86, + "community_name": "Feature Specification: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "session 2026-08-20", + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L12" + }, + { + "id": "specs_002_google_news_extractor_spec_success_criteria_mandatory", + "label": "Success Criteria *(mandatory)*", + "_origin": "ast", + "community": 86, + "community_name": "Feature Specification: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "success criteria *(mandatory)*", + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L92" + }, + { + "id": "specs_002_google_news_extractor_spec_user_scenarios_testing_mandatory", + "label": "User Scenarios & Testing *(mandatory)*", + "_origin": "ast", + "community": 86, + "community_name": "Feature Specification: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user scenarios & testing *(mandatory)*", + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L20" + }, + { + "id": "specs_002_google_news_extractor_spec_user_story_1_extra\u00e7\u00e3o_b\u00e1sica_de_not\u00edcias_com_urls_finais_resolvidas_priority_p1_mvp", + "label": "User Story 1 - Extra\u00e7\u00e3o B\u00e1sica de Not\u00edcias com URLs Finais Resolvidas (Priority: P1) \ud83c\udf1f MVP", + "_origin": "ast", + "community": 86, + "community_name": "Feature Specification: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user story 1 - extracao basica de noticias com urls finais resolvidas (priority: p1) \ud83c\udf1f mvp", + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L22" + }, + { + "id": "specs_002_google_news_extractor_spec_user_story_2_filtragem_regional_e_edi\u00e7\u00e3o_geogr\u00e1fica_priority_p2", + "label": "User Story 2 - Filtragem Regional e Edi\u00e7\u00e3o Geogr\u00e1fica (Priority: P2)", + "_origin": "ast", + "community": 86, + "community_name": "Feature Specification: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user story 2 - filtragem regional e edicao geografica (priority: p2)", + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L36" + }, + { + "id": "specs_002_google_news_extractor_spec_user_story_3_pagina\u00e7\u00e3o_exporta\u00e7\u00e3o_em_arquivo_e_feedback_visual_priority_p3", + "label": "User Story 3 - Pagina\u00e7\u00e3o, Exporta\u00e7\u00e3o em Arquivo e Feedback Visual (Priority: P3)", + "_origin": "ast", + "community": 86, + "community_name": "Feature Specification: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user story 3 - paginacao, exportacao em arquivo e feedback visual (priority: p3)", + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L50" + }, + { + "id": "specs_002_google_news_extractor_quickstart", + "label": "002-google-news-extractor/quickstart.md", + "_origin": "ast", + "community": 87, + "community_name": "2. Cen\u00e1rios Pr\u00e1ticos de Uso", + "file_type": "document", + "node_kind": "page", + "norm_label": "002-google-news-extractor/quickstart.md", + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_quickstart_1_pr\u00e9_requisitos_e_instala\u00e7\u00e3o", + "label": "1. Pr\u00e9-requisitos e Instala\u00e7\u00e3o", + "_origin": "ast", + "community": 87, + "community_name": "2. Cen\u00e1rios Pr\u00e1ticos de Uso", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. pre-requisitos e instalacao", + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L7" + }, + { + "id": "specs_002_google_news_extractor_quickstart_2_cen\u00e1rios_pr\u00e1ticos_de_uso", + "label": "2. Cen\u00e1rios Pr\u00e1ticos de Uso", + "_origin": "ast", + "community": 87, + "community_name": "2. Cen\u00e1rios Pr\u00e1ticos de Uso", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. cenarios praticos de uso", + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L21" + }, + { + "id": "specs_002_google_news_extractor_quickstart_3_valida\u00e7\u00e3o_dos_testes_automatizados_e_linter", + "label": "3. Valida\u00e7\u00e3o dos Testes Automatizados e Linter", + "_origin": "ast", + "community": 87, + "community_name": "2. Cen\u00e1rios Pr\u00e1ticos de Uso", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. validacao dos testes automatizados e linter", + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L69" + }, + { + "id": "specs_002_google_news_extractor_quickstart_cen\u00e1rio_1_river_plate_argentina_espanhol_2_p\u00e1ginas_salvar_em_arquivo", + "label": "Cen\u00e1rio 1: River Plate \u2014 Argentina (Espanhol / 2 P\u00e1ginas / Salvar em Arquivo)", + "_origin": "ast", + "community": 87, + "community_name": "2. Cen\u00e1rios Pr\u00e1ticos de Uso", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cenario 1: river plate \u2014 argentina (espanhol / 2 paginas / salvar em arquivo)", + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L23" + }, + { + "id": "specs_002_google_news_extractor_quickstart_cen\u00e1rio_2_cruzeiro_brasil_portugu\u00eas_formatado_no_terminal", + "label": "Cen\u00e1rio 2: Cruzeiro \u2014 Brasil (Portugu\u00eas / Formatado no Terminal)", + "_origin": "ast", + "community": 87, + "community_name": "2. Cen\u00e1rios Pr\u00e1ticos de Uso", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cenario 2: cruzeiro \u2014 brasil (portugues / formatado no terminal)", + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L39" + }, + { + "id": "specs_002_google_news_extractor_quickstart_cen\u00e1rio_3_f\u00f3rmula_1_reino_unido_ingl\u00eas", + "label": "Cen\u00e1rio 3: F\u00f3rmula 1 \u2014 Reino Unido (Ingl\u00eas)", + "_origin": "ast", + "community": 87, + "community_name": "2. Cen\u00e1rios Pr\u00e1ticos de Uso", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cenario 3: formula 1 \u2014 reino unido (ingles)", + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L47" + }, + { + "id": "specs_002_google_news_extractor_quickstart_cen\u00e1rio_4_integra\u00e7\u00e3o_em_pipeline_com_jq_modo_silencioso", + "label": "Cen\u00e1rio 4: Integra\u00e7\u00e3o em Pipeline com `jq` (Modo Silencioso)", + "_origin": "ast", + "community": 87, + "community_name": "2. Cen\u00e1rios Pr\u00e1ticos de Uso", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cenario 4: integracao em pipeline com `jq` (modo silencioso)", + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L55" + }, + { + "id": "specs_002_google_news_extractor_quickstart_cen\u00e1rio_5_extra\u00e7\u00e3o_r\u00e1pida_com_links_brutos_sem_resolu\u00e7\u00e3o_de_urls", + "label": "Cen\u00e1rio 5: Extra\u00e7\u00e3o R\u00e1pida com Links Brutos (Sem Resolu\u00e7\u00e3o de URLs)", + "_origin": "ast", + "community": 87, + "community_name": "2. Cen\u00e1rios Pr\u00e1ticos de Uso", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cenario 5: extracao rapida com links brutos (sem resolucao de urls)", + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L62" + }, + { + "id": "specs_002_google_news_extractor_quickstart_quickstart_google_news_headlines_extractor", + "label": "Quickstart: Google News Headlines Extractor", + "_origin": "ast", + "community": 87, + "community_name": "2. Cen\u00e1rios Pr\u00e1ticos de Uso", + "file_type": "document", + "node_kind": "heading", + "norm_label": "quickstart: google news headlines extractor", + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_plan_architecture_pipeline", + "label": "Architecture & Pipeline", + "_origin": "ast", + "community": 88, + "community_name": "Implementation Plan: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "architecture & pipeline", + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L28" + }, + { + "id": "specs_002_google_news_extractor_plan_documentation_this_feature", + "label": "Documentation (this feature)", + "_origin": "ast", + "community": 88, + "community_name": "Implementation Plan: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "documentation (this feature)", + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L47" + }, + { + "id": "specs_002_google_news_extractor_plan_implementation_plan_google_news_headlines_extractor", + "label": "Implementation Plan: Google News Headlines Extractor", + "_origin": "ast", + "community": 88, + "community_name": "Implementation Plan: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "implementation plan: google news headlines extractor", + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_plan_project_structure", + "label": "Project Structure", + "_origin": "ast", + "community": 88, + "community_name": "Implementation Plan: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "project structure", + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L45" + }, + { + "id": "specs_002_google_news_extractor_plan_source_code", + "label": "Source Code", + "_origin": "ast", + "community": 88, + "community_name": "Implementation Plan: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "source code", + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L63" + }, + { + "id": "specs_002_google_news_extractor_plan_summary", + "label": "Summary", + "_origin": "ast", + "community": 88, + "community_name": "Implementation Plan: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "summary", + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L7" + }, + { + "id": "specs_002_google_news_extractor_plan_technical_context", + "label": "Technical Context", + "_origin": "ast", + "community": 88, + "community_name": "Implementation Plan: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "technical context", + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L11" + }, + { + "id": "scripts_init", + "label": "scripts/__init__.py", + "_origin": "ast", + "community": 89, + "community_name": "scripts/__init__.py", + "file_type": "code", + "norm_label": "scripts/__init__.py", + "source_file": "scripts/__init__.py", + "source_location": "L1" + }, + { + "id": "scripts_init_rationale_1", + "label": "M\u00f3dulo de scripts utilit\u00e1rios do projeto.", + "_origin": "ast", + "community": 89, + "community_name": "scripts/__init__.py", + "file_type": "rationale", + "norm_label": "modulo de scripts utilitarios do projeto.", + "source_file": "scripts/__init__.py", + "source_location": "L1" + }, + { + "id": "agents_skills_speckit_specify_skill", + "label": "speckit-specify/SKILL.md", + "_origin": "ast", + "community": 9, + "community_name": "Feature Specification", + "file_type": "document", + "frontmatter": { + "name": "speckit-specify", + "description": "Create or update the feature specification from a natural language feature description.", + "compatibility": "Requires spec-kit project structure with .specify/ directory" + }, + "node_kind": "page", + "norm_label": "speckit-specify/skill.md", + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L1" + }, + { + "id": "agents_skills_speckit_specify_skill_completion_report", + "label": "Completion Report", + "_origin": "ast", + "community": 9, + "community_name": "Feature Specification", + "file_type": "document", + "node_kind": "heading", + "norm_label": "completion report", + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L270" + }, + { + "id": "agents_skills_speckit_specify_skill_done_when", + "label": "Done When", + "_origin": "ast", + "community": 9, + "community_name": "Feature Specification", + "file_type": "document", + "node_kind": "heading", + "norm_label": "done when", + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L341" + }, + { + "id": "agents_skills_speckit_specify_skill_for_ai_generation", + "label": "For AI Generation", + "_origin": "ast", + "community": 9, + "community_name": "Feature Specification", + "file_type": "document", + "node_kind": "heading", + "norm_label": "for ai generation", + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L293" + }, + { + "id": "agents_skills_speckit_specify_skill_mandatory_post_execution_hooks", + "label": "Mandatory Post-Execution Hooks", + "_origin": "ast", + "community": 9, + "community_name": "Feature Specification", + "file_type": "document", + "node_kind": "heading", + "norm_label": "mandatory post-execution hooks", + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L235" + }, + { + "id": "agents_skills_speckit_specify_skill_outline", + "label": "Outline", + "_origin": "ast", + "community": 9, + "community_name": "Feature Specification", + "file_type": "document", + "node_kind": "heading", + "norm_label": "outline", + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L55" + }, + { + "id": "agents_skills_speckit_specify_skill_pre_execution_checks", + "label": "Pre-Execution Checks", + "_origin": "ast", + "community": 9, + "community_name": "Feature Specification", + "file_type": "document", + "node_kind": "heading", + "norm_label": "pre-execution checks", + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L19" + }, + { + "id": "agents_skills_speckit_specify_skill_quick_guidelines", + "label": "Quick Guidelines", + "_origin": "ast", + "community": 9, + "community_name": "Feature Specification", + "file_type": "document", + "node_kind": "heading", + "norm_label": "quick guidelines", + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L280" + }, + { + "id": "agents_skills_speckit_specify_skill_section_requirements", + "label": "Section Requirements", + "_origin": "ast", + "community": 9, + "community_name": "Feature Specification", + "file_type": "document", + "node_kind": "heading", + "norm_label": "section requirements", + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L287" + }, + { + "id": "agents_skills_speckit_specify_skill_success_criteria_guidelines", + "label": "Success Criteria Guidelines", + "_origin": "ast", + "community": 9, + "community_name": "Feature Specification", + "file_type": "document", + "node_kind": "heading", + "norm_label": "success criteria guidelines", + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L318" + }, + { + "id": "agents_skills_speckit_specify_skill_user_input", + "label": "User Input", + "_origin": "ast", + "community": 9, + "community_name": "Feature Specification", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user input", + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L11" + }, + { + "id": "scripts_extract_google_news_rationale_33", + "label": "Value Object com par\u00e2metros de busca validados.", + "_origin": "ast", + "community": 90, + "community_name": "SearchQuery", + "file_type": "rationale", + "norm_label": "value object com parametros de busca validados.", + "source_file": "scripts/extract_google_news.py", + "source_location": "L33" + }, + { + "id": "tests_test_extract_google_news_rationale_187", + "label": "Valida a consolida\u00e7\u00e3o do ExtractionResult a partir da busca mockada com URLs\u2026", + "_origin": "ast", + "community": 90, + "community_name": "SearchQuery", + "file_type": "rationale", + "norm_label": "valida a consolidacao do extractionresult a partir da busca mockada com urls...", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L187" + }, + { + "id": "tests_test_extract_google_news_rationale_87", + "label": "Valida as regras de neg\u00f3cio e limites de SearchQuery.", + "_origin": "ast", + "community": 90, + "community_name": "SearchQuery", + "file_type": "rationale", + "norm_label": "valida as regras de negocio e limites de searchquery.", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L87" + }, + { + "id": "specs_002_google_news_extractor_research", + "label": "002-google-news-extractor/research.md", + "_origin": "ast", + "community": 91, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "page", + "norm_label": "002-google-news-extractor/research.md", + "source_file": "specs/002-google-news-extractor/research.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_research_1_technical_decisions_tradeoffs", + "label": "1. Technical Decisions & Tradeoffs", + "_origin": "ast", + "community": 91, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. technical decisions & tradeoffs", + "source_file": "specs/002-google-news-extractor/research.md", + "source_location": "L3" + }, + { + "id": "specs_002_google_news_extractor_research_decision_1_motor_de_requisi\u00e7\u00e3o_e_scraping_com_foxcape_em_modo_headless", + "label": "Decision 1: Motor de Requisi\u00e7\u00e3o e Scraping com `foxcape` em Modo Headless", + "_origin": "ast", + "community": 91, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 1: motor de requisicao e scraping com `foxcape` em modo headless", + "source_file": "specs/002-google-news-extractor/research.md", + "source_location": "L5" + }, + { + "id": "specs_002_google_news_extractor_research_decision_2_endpoint_rss_do_google_news_vs_scraping_de_dom", + "label": "Decision 2: Endpoint RSS do Google News vs. Scraping de DOM", + "_origin": "ast", + "community": 91, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 2: endpoint rss do google news vs. scraping de dom", + "source_file": "specs/002-google-news-extractor/research.md", + "source_location": "L15" + }, + { + "id": "specs_002_google_news_extractor_research_decision_3_mapeamento_de_idioma_e_locale_hl_gl_ceid", + "label": "Decision 3: Mapeamento de Idioma e Locale (`hl`, `gl`, `ceid`)", + "_origin": "ast", + "community": 91, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 3: mapeamento de idioma e locale (`hl`, `gl`, `ceid`)", + "source_file": "specs/002-google-news-extractor/research.md", + "source_location": "L23" + }, + { + "id": "specs_002_google_news_extractor_research_decision_4_resolu\u00e7\u00e3o_de_urls_do_google_news_via_googlenewsdecoder", + "label": "Decision 4: Resolu\u00e7\u00e3o de URLs do Google News via `googlenewsdecoder`", + "_origin": "ast", + "community": 91, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 4: resolucao de urls do google news via `googlenewsdecoder`", + "source_file": "specs/002-google-news-extractor/research.md", + "source_location": "L36" + }, + { + "id": "specs_002_google_news_extractor_research_decision_5_logging_em_tempo_real_no_stderr_e_segrega\u00e7\u00e3o_de_streams", + "label": "Decision 5: Logging em Tempo Real no `stderr` e Segrega\u00e7\u00e3o de Streams", + "_origin": "ast", + "community": 91, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "decision 5: logging em tempo real no `stderr` e segregacao de streams", + "source_file": "specs/002-google-news-extractor/research.md", + "source_location": "L45" + }, + { + "id": "specs_002_google_news_extractor_research_research_google_news_headlines_extractor", + "label": "Research: Google News Headlines Extractor", + "_origin": "ast", + "community": 91, + "community_name": "1. Technical Decisions & Tradeoffs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "research: google news headlines extractor", + "source_file": "specs/002-google-news-extractor/research.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_checklists_readiness_cli_interface_parameter_contracts", + "label": "CLI Interface & Parameter Contracts", + "_origin": "ast", + "community": 92, + "community_name": "General Readiness Checklist: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cli interface & parameter contracts", + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L12" + }, + { + "id": "specs_002_google_news_extractor_checklists_readiness_data_sanitization_article_extraction", + "label": "Data Sanitization & Article Extraction", + "_origin": "ast", + "community": 92, + "community_name": "General Readiness Checklist: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "data sanitization & article extraction", + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L27" + }, + { + "id": "specs_002_google_news_extractor_checklists_readiness_error_handling_edge_cases", + "label": "Error Handling & Edge Cases", + "_origin": "ast", + "community": 92, + "community_name": "General Readiness Checklist: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "error handling & edge cases", + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L35" + }, + { + "id": "specs_002_google_news_extractor_checklists_readiness_general_readiness_checklist_google_news_headlines_extractor", + "label": "General Readiness Checklist: Google News Headlines Extractor", + "_origin": "ast", + "community": 92, + "community_name": "General Readiness Checklist: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "general readiness checklist: google news headlines extractor", + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_checklists_readiness_non_functional_operational_readiness", + "label": "Non-Functional & Operational Readiness", + "_origin": "ast", + "community": 92, + "community_name": "General Readiness Checklist: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "non-functional & operational readiness", + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L42" + }, + { + "id": "specs_002_google_news_extractor_checklists_readiness_notes", + "label": "Notes", + "_origin": "ast", + "community": 92, + "community_name": "General Readiness Checklist: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "notes", + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L48" + }, + { + "id": "specs_002_google_news_extractor_checklists_readiness_scraping_engine_feed_mapping", + "label": "Scraping Engine & Feed Mapping", + "_origin": "ast", + "community": 92, + "community_name": "General Readiness Checklist: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "scraping engine & feed mapping", + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L20" + }, + { + "id": "specs_002_google_news_extractor_data_model", + "label": "002-google-news-extractor/data-model.md", + "_origin": "ast", + "community": 93, + "community_name": "1. Entidades de Dom\u00ednio & DTOs", + "file_type": "document", + "node_kind": "page", + "norm_label": "002-google-news-extractor/data-model.md", + "source_file": "specs/002-google-news-extractor/data-model.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_data_model_1_1_searchquery_par\u00e2metros_da_busca", + "label": "1.1 SearchQuery (Par\u00e2metros da Busca)", + "_origin": "ast", + "community": 93, + "community_name": "1. Entidades de Dom\u00ednio & DTOs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1.1 searchquery (parametros da busca)", + "source_file": "specs/002-google-news-extractor/data-model.md", + "source_location": "L5" + }, + { + "id": "specs_002_google_news_extractor_data_model_1_2_newsarticle_item_de_not\u00edcia", + "label": "1.2 NewsArticle (Item de Not\u00edcia)", + "_origin": "ast", + "community": 93, + "community_name": "1. Entidades de Dom\u00ednio & DTOs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1.2 newsarticle (item de noticia)", + "source_file": "specs/002-google-news-extractor/data-model.md", + "source_location": "L15" + }, + { + "id": "specs_002_google_news_extractor_data_model_1_3_extractionresult_sa\u00edda_estruturada_consolidada", + "label": "1.3 ExtractionResult (Sa\u00edda Estruturada Consolidada)", + "_origin": "ast", + "community": 93, + "community_name": "1. Entidades de Dom\u00ednio & DTOs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1.3 extractionresult (saida estruturada consolidada)", + "source_file": "specs/002-google-news-extractor/data-model.md", + "source_location": "L26" + }, + { + "id": "specs_002_google_news_extractor_data_model_1_entidades_de_dom\u00ednio_dtos", + "label": "1. Entidades de Dom\u00ednio & DTOs", + "_origin": "ast", + "community": 93, + "community_name": "1. Entidades de Dom\u00ednio & DTOs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. entidades de dominio & dtos", + "source_file": "specs/002-google-news-extractor/data-model.md", + "source_location": "L3" + }, + { + "id": "specs_002_google_news_extractor_data_model_2_esquema_json_de_sa\u00edda", + "label": "2. Esquema JSON de Sa\u00edda", + "_origin": "ast", + "community": 93, + "community_name": "1. Entidades de Dom\u00ednio & DTOs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. esquema json de saida", + "source_file": "specs/002-google-news-extractor/data-model.md", + "source_location": "L41" + }, + { + "id": "specs_002_google_news_extractor_data_model_data_model_google_news_headlines_extractor", + "label": "Data Model: Google News Headlines Extractor", + "_origin": "ast", + "community": 93, + "community_name": "1. Entidades de Dom\u00ednio & DTOs", + "file_type": "document", + "node_kind": "heading", + "norm_label": "data model: google news headlines extractor", + "source_file": "specs/002-google-news-extractor/data-model.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_checklists_requirements", + "label": "002-google-news-extractor/checklists/requirements.md", + "_origin": "ast", + "community": 94, + "community_name": "Specification Quality Checklist: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "page", + "norm_label": "002-google-news-extractor/checklists/requirements.md", + "source_file": "specs/002-google-news-extractor/checklists/requirements.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_checklists_requirements_content_quality", + "label": "Content Quality", + "_origin": "ast", + "community": 94, + "community_name": "Specification Quality Checklist: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "content quality", + "source_file": "specs/002-google-news-extractor/checklists/requirements.md", + "source_location": "L7" + }, + { + "id": "specs_002_google_news_extractor_checklists_requirements_feature_readiness", + "label": "Feature Readiness", + "_origin": "ast", + "community": 94, + "community_name": "Specification Quality Checklist: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "feature readiness", + "source_file": "specs/002-google-news-extractor/checklists/requirements.md", + "source_location": "L25" + }, + { + "id": "specs_002_google_news_extractor_checklists_requirements_notes", + "label": "Notes", + "_origin": "ast", + "community": 94, + "community_name": "Specification Quality Checklist: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "notes", + "source_file": "specs/002-google-news-extractor/checklists/requirements.md", + "source_location": "L32" + }, + { + "id": "specs_002_google_news_extractor_checklists_requirements_requirement_completeness", + "label": "Requirement Completeness", + "_origin": "ast", + "community": 94, + "community_name": "Specification Quality Checklist: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "requirement completeness", + "source_file": "specs/002-google-news-extractor/checklists/requirements.md", + "source_location": "L14" + }, + { + "id": "specs_002_google_news_extractor_checklists_requirements_specification_quality_checklist_google_news_headlines_extractor", + "label": "Specification Quality Checklist: Google News Headlines Extractor", + "_origin": "ast", + "community": 94, + "community_name": "Specification Quality Checklist: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "specification quality checklist: google news headlines extractor", + "source_file": "specs/002-google-news-extractor/checklists/requirements.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", + "label": "1. Comando e Argumentos", + "_origin": "ast", + "community": 95, + "community_name": "CLI Contract: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. comando e argumentos", + "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", + "source_location": "L3" + }, + { + "id": "specs_002_google_news_extractor_contracts_cli_contract_2_c\u00f3digos_de_sa\u00edda_exit_codes", + "label": "2. C\u00f3digos de Sa\u00edda (Exit Codes)", + "_origin": "ast", + "community": 95, + "community_name": "CLI Contract: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. codigos de saida (exit codes)", + "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", + "source_location": "L25" + }, + { + "id": "specs_002_google_news_extractor_contracts_cli_contract_3_protocolo_de_streams_stdout_stderr", + "label": "3. Protocolo de Streams (Stdout / Stderr)", + "_origin": "ast", + "community": 95, + "community_name": "CLI Contract: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. protocolo de streams (stdout / stderr)", + "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", + "source_location": "L35" + }, + { + "id": "specs_002_google_news_extractor_contracts_cli_contract_argumentos_de_linha_de_comando", + "label": "Argumentos de Linha de Comando", + "_origin": "ast", + "community": 95, + "community_name": "CLI Contract: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "argumentos de linha de comando", + "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", + "source_location": "L10" + }, + { + "id": "specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", + "label": "CLI Contract: Google News Headlines Extractor", + "_origin": "ast", + "community": 95, + "community_name": "CLI Contract: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "cli contract: google news headlines extractor", + "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_contracts_cli_contract_sintaxe", + "label": "Sintaxe", + "_origin": "ast", + "community": 95, + "community_name": "CLI Contract: Google News Headlines Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "sintaxe", + "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", + "source_location": "L5" + }, + { + "id": "specs_002_google_news_extractor_checklists_readiness", + "label": "readiness.md", + "_origin": "ast", + "community": 96, + "community_name": "readiness.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "readiness.md", + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_contracts_cli_contract", + "label": "cli_contract.md", + "_origin": "ast", + "community": 96, + "community_name": "readiness.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "cli_contract.md", + "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_plan", + "label": "002-google-news-extractor/plan.md", + "_origin": "ast", + "community": 96, + "community_name": "readiness.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "002-google-news-extractor/plan.md", + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_spec", + "label": "002-google-news-extractor/spec.md", + "_origin": "ast", + "community": 96, + "community_name": "readiness.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "002-google-news-extractor/spec.md", + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L1" + }, + { + "id": "specs_002_google_news_extractor_tasks", + "label": "002-google-news-extractor/tasks.md", + "_origin": "ast", + "community": 96, + "community_name": "readiness.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "002-google-news-extractor/tasks.md", + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L1" + }, + { + "id": "readme", + "label": "README.md", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "page", + "norm_label": "readme.md", + "source_file": "README.md", + "source_location": "L1" + }, + { + "id": "readme_1_classificador_de_conte\u00fado_e_iner\u00eancia_nlp_llm_ecp", + "label": "1. \ud83e\udde0 Classificador de Conte\u00fado e Iner\u00eancia (NLP / LLM / ECP)", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. \ud83e\udde0 classificador de conteudo e inerencia (nlp / llm / ecp)", + "source_file": "README.md", + "source_location": "L86" + }, + { + "id": "readme_1_clonar_o_reposit\u00f3rio_e_criar_ambiente_virtual", + "label": "1. Clonar o Reposit\u00f3rio e Criar Ambiente Virtual", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. clonar o repositorio e criar ambiente virtual", + "source_file": "README.md", + "source_location": "L57" + }, + { + "id": "readme_1_execu\u00e7\u00e3o_padr\u00e3o_autom\u00e1tica", + "label": "1. Execu\u00e7\u00e3o Padr\u00e3o Autom\u00e1tica", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. execucao padrao automatica", + "source_file": "README.md", + "source_location": "L309" + }, + { + "id": "readme_2_execu\u00e7\u00e3o_com_modo_verboso", + "label": "2. Execu\u00e7\u00e3o com Modo Verboso", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. execucao com modo verboso", + "source_file": "README.md", + "source_location": "L315" + }, + { + "id": "readme_2_extrator_de_manchetes_do_google_news", + "label": "2. \ud83d\udcf0 Extrator de Manchetes do Google News", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. \ud83d\udcf0 extrator de manchetes do google news", + "source_file": "README.md", + "source_location": "L163" + }, + { + "id": "readme_2_instalar_depend\u00eancias", + "label": "2. Instalar Depend\u00eancias", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. instalar dependencias", + "source_file": "README.md", + "source_location": "L70" + }, + { + "id": "readme_3_baixar_bin\u00e1rios_do_navegador_stealth_camoufox", + "label": "3. Baixar Bin\u00e1rios do Navegador Stealth (Camoufox)", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. baixar binarios do navegador stealth (camoufox)", + "source_file": "README.md", + "source_location": "L76" + }, + { + "id": "readme_3_extrator_e_parser_multimotor_de_artigos", + "label": "3. \ud83d\udcc4 Extrator e Parser Multimotor de Artigos", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. \ud83d\udcc4 extrator e parser multimotor de artigos", + "source_file": "README.md", + "source_location": "L205" + }, + { + "id": "readme_3_uso_program\u00e1tico_como_m\u00f3dulo_python", + "label": "3. Uso Program\u00e1tico como M\u00f3dulo Python", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. uso programatico como modulo python", + "source_file": "README.md", + "source_location": "L339" + }, + { + "id": "readme_4_seletor_determin\u00edstico_de_conte\u00fado_de_artigos", + "label": "4. \ud83c\udfaf Seletor Determin\u00edstico de Conte\u00fado de Artigos", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. \ud83c\udfaf seletor deterministico de conteudo de artigos", + "source_file": "README.md", + "source_location": "L243" + }, + { + "id": "readme_argumentos_e_flags_cli", + "label": "Argumentos e Flags CLI", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "argumentos e flags cli", + "source_file": "README.md", + "source_location": "L217" + }, + { + "id": "readme_argumentos_e_flags_cli_298", + "label": "Argumentos e Flags CLI", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "argumentos e flags cli", + "source_file": "README.md", + "source_location": "L298" + }, + { + "id": "readme_argumentos_e_flags_de_linha_de_comando", + "label": "Argumentos e Flags de Linha de Comando", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "argumentos e flags de linha de comando", + "source_file": "README.md", + "source_location": "L177" + }, + { + "id": "readme_arquitetura_de_classifica\u00e7\u00e3o_em_3_tiers", + "label": "Arquitetura de Classifica\u00e7\u00e3o em 3 Tiers", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "arquitetura de classificacao em 3 tiers", + "source_file": "README.md", + "source_location": "L94" + }, + { + "id": "readme_categorias_de_decis\u00e3o", + "label": "Categorias de Decis\u00e3o", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "categorias de decisao", + "source_file": "README.md", + "source_location": "L115" + }, + { + "id": "readme_crit\u00e9rios_de_desempate_t\u00e9cnico_e_resili\u00eancia", + "label": "Crit\u00e9rios de Desempate T\u00e9cnico e Resili\u00eancia", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "criterios de desempate tecnico e resiliencia", + "source_file": "README.md", + "source_location": "L286" + }, + { + "id": "readme_diferenciais_t\u00e9cnicos", + "label": "Diferenciais T\u00e9cnicos", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "diferenciais tecnicos", + "source_file": "README.md", + "source_location": "L169" + }, + { + "id": "readme_estrutura_do_projeto", + "label": "\ud83d\udcc1 Estrutura do Projeto", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "\ud83d\udcc1 estrutura do projeto", + "source_file": "README.md", + "source_location": "L356" + }, + { + "id": "readme_exemplo_de_ecp_snapshot_ecp_sample_json", + "label": "Exemplo de ECP Snapshot (`ecp_sample.json`):", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "exemplo de ecp snapshot (`ecp_sample.json`):", + "source_file": "README.md", + "source_location": "L126" + }, + { + "id": "readme_exemplos_de_uso", + "label": "Exemplos de Uso", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "exemplos de uso", + "source_file": "README.md", + "source_location": "L228" + }, + { + "id": "readme_exemplos_de_uso_cli", + "label": "Exemplos de Uso CLI", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "exemplos de uso cli", + "source_file": "README.md", + "source_location": "L148" + }, + { + "id": "readme_exemplos_pr\u00e1ticos_de_uso", + "label": "Exemplos Pr\u00e1ticos de Uso", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "exemplos praticos de uso", + "source_file": "README.md", + "source_location": "L190" + }, + { + "id": "readme_exemplos_pr\u00e1ticos_de_uso_307", + "label": "Exemplos Pr\u00e1ticos de Uso", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "exemplos praticos de uso", + "source_file": "README.md", + "source_location": "L307" + }, + { + "id": "readme_formato_do_ecp_snapshot_e_markdown", + "label": "Formato do ECP Snapshot e Markdown", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "formato do ecp snapshot e markdown", + "source_file": "README.md", + "source_location": "L124" + }, + { + "id": "readme_instala\u00e7\u00e3o_e_setup", + "label": "\u2699\ufe0f Instala\u00e7\u00e3o e Setup", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "\u2699\ufe0f instalacao e setup", + "source_file": "README.md", + "source_location": "L55" + }, + { + "id": "readme_licen\u00e7a", + "label": "\ud83d\udcc4 Licen\u00e7a", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "\ud83d\udcc4 licenca", + "source_file": "README.md", + "source_location": "L415" + }, + { + "id": "readme_o_que_\u00e9_e_como_funciona", + "label": "O que \u00e9 e Como Funciona", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "o que e e como funciona", + "source_file": "README.md", + "source_location": "L88" + }, + { + "id": "readme_o_que_\u00e9_e_como_funciona_165", + "label": "O que \u00e9 e Como Funciona", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "o que e e como funciona", + "source_file": "README.md", + "source_location": "L165" + }, + { + "id": "readme_pipeline_de_normaliza\u00e7\u00e3o_e_shingles", + "label": "Pipeline de Normaliza\u00e7\u00e3o e Shingles", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "pipeline de normalizacao e shingles", + "source_file": "README.md", + "source_location": "L274" + }, + { + "id": "readme_tabela_de_conte\u00fados", + "label": "\ud83d\udcd1 Tabela de Conte\u00fados", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "\ud83d\udcd1 tabela de conteudos", + "source_file": "README.md", + "source_location": "L13" + }, + { + "id": "readme_testes_e_qualidade_de_c\u00f3digo", + "label": "\ud83e\uddea Testes e Qualidade de C\u00f3digo", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "\ud83e\uddea testes e qualidade de codigo", + "source_file": "README.md", + "source_location": "L388" + }, + { + "id": "readme_textnlpclassifierapp", + "label": "\ud83e\udde0 TextNLPClassifierApp", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "\ud83e\udde0 textnlpclassifierapp", + "source_file": "README.md", + "source_location": "L1" + }, + { + "id": "readme_vis\u00e3o_geral", + "label": "\ud83c\udf1f Vis\u00e3o Geral", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "\ud83c\udf1f visao geral", + "source_file": "README.md", + "source_location": "L44" + }, + { + "id": "readme_vis\u00e3o_geral_e_algoritmo_de_consenso_f_1", + "label": "Vis\u00e3o Geral e Algoritmo de Consenso ($F_1$)", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "visao geral e algoritmo de consenso ($f_1$)", + "source_file": "README.md", + "source_location": "L245" + }, + { + "id": "readme_vis\u00e3o_geral_e_tr\u00edplice_extra\u00e7\u00e3o", + "label": "Vis\u00e3o Geral e Tr\u00edplice Extra\u00e7\u00e3o", + "_origin": "ast", + "community": 97, + "community_name": "\ud83e\udde0 TextNLPClassifierApp", + "file_type": "document", + "node_kind": "heading", + "norm_label": "visao geral e triplice extracao", + "source_file": "README.md", + "source_location": "L207" + }, + { + "id": "specs_003_article_content_extractor_checklists_extraction", + "label": "extraction.md", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "page", + "norm_label": "extraction.md", + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_checklists_extraction_1_requirement_completeness", + "label": "1. Requirement Completeness", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. requirement completeness", + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L13" + }, + { + "id": "specs_003_article_content_extractor_checklists_extraction_2_requirement_clarity_non_ambiguity", + "label": "2. Requirement Clarity & Non-Ambiguity", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. requirement clarity & non-ambiguity", + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L24" + }, + { + "id": "specs_003_article_content_extractor_checklists_extraction_3_requirement_consistency_data_contracts", + "label": "3. Requirement Consistency & Data Contracts", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. requirement consistency & data contracts", + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L33" + }, + { + "id": "specs_003_article_content_extractor_checklists_extraction_4_scenario_edge_case_coverage", + "label": "4. Scenario & Edge Case Coverage", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. scenario & edge case coverage", + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L41" + }, + { + "id": "specs_003_article_content_extractor_checklists_extraction_5_non_functional_operational_readiness", + "label": "5. Non-Functional & Operational Readiness", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5. non-functional & operational readiness", + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L51" + }, + { + "id": "specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", + "label": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "extraction pipeline checklist: article content multi-engine extractor", + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_checklists_extraction_notes", + "label": "Notes", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "notes", + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L58" + }, + { + "id": "specs_003_article_content_extractor_checklists_requirements", + "label": "003-article-content-extractor/checklists/requirements.md", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "page", + "norm_label": "003-article-content-extractor/checklists/requirements.md", + "source_file": "specs/003-article-content-extractor/checklists/requirements.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_checklists_requirements_content_quality", + "label": "Content Quality", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "content quality", + "source_file": "specs/003-article-content-extractor/checklists/requirements.md", + "source_location": "L7" + }, + { + "id": "specs_003_article_content_extractor_checklists_requirements_feature_readiness", + "label": "Feature Readiness", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "feature readiness", + "source_file": "specs/003-article-content-extractor/checklists/requirements.md", + "source_location": "L25" + }, + { + "id": "specs_003_article_content_extractor_checklists_requirements_notes", + "label": "Notes", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "notes", + "source_file": "specs/003-article-content-extractor/checklists/requirements.md", + "source_location": "L32" + }, + { + "id": "specs_003_article_content_extractor_checklists_requirements_requirement_completeness", + "label": "Requirement Completeness", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "requirement completeness", + "source_file": "specs/003-article-content-extractor/checklists/requirements.md", + "source_location": "L14" + }, + { + "id": "specs_003_article_content_extractor_checklists_requirements_specification_quality_checklist_article_content_multi_engine_extractor", + "label": "Specification Quality Checklist: Article Content Multi-Engine Extractor", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "specification quality checklist: article content multi-engine extractor", + "source_file": "specs/003-article-content-extractor/checklists/requirements.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_data_model", + "label": "003-article-content-extractor/data-model.md", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "page", + "norm_label": "003-article-content-extractor/data-model.md", + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_data_model_1_1_inputarticle_value_object", + "label": "1.1 InputArticle (Value Object)", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1.1 inputarticle (value object)", + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L5" + }, + { + "id": "specs_003_article_content_extractor_data_model_1_2_trafilaturadata_value_object", + "label": "1.2 TrafilaturaData (Value Object)", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1.2 trafilaturadata (value object)", + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L18" + }, + { + "id": "specs_003_article_content_extractor_data_model_1_3_newspaperdata_value_object", + "label": "1.3 NewspaperData (Value Object)", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1.3 newspaperdata (value object)", + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L36" + }, + { + "id": "specs_003_article_content_extractor_data_model_1_4_readabilitydata_value_object", + "label": "1.4 ReadabilityData (Value Object)", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1.4 readabilitydata (value object)", + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L54" + }, + { + "id": "specs_003_article_content_extractor_data_model_1_5_extractedarticle_entity", + "label": "1.5 ExtractedArticle (Entity)", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1.5 extractedarticle (entity)", + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L67" + }, + { + "id": "specs_003_article_content_extractor_data_model_1_6_extractionbatchreport_aggregate_root", + "label": "1.6 ExtractionBatchReport (Aggregate Root)", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1.6 extractionbatchreport (aggregate root)", + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L84" + }, + { + "id": "specs_003_article_content_extractor_data_model_1_entities_value_objects", + "label": "1. Entities & Value Objects", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. entities & value objects", + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L3" + }, + { + "id": "specs_003_article_content_extractor_data_model_data_model_article_content_multi_engine_extractor", + "label": "Data Model: Article Content Multi-Engine Extractor", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "data model: article content multi-engine extractor", + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_spec", + "label": "003-article-content-extractor/spec.md", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "page", + "norm_label": "003-article-content-extractor/spec.md", + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_spec_assumptions", + "label": "Assumptions", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "assumptions", + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L109" + }, + { + "id": "specs_003_article_content_extractor_spec_clarifications", + "label": "Clarifications", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "clarifications", + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L10" + }, + { + "id": "specs_003_article_content_extractor_spec_edge_cases", + "label": "Edge Cases", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "edge cases", + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L63" + }, + { + "id": "specs_003_article_content_extractor_spec_feature_specification_article_content_multi_engine_extractor", + "label": "Feature Specification: Article Content Multi-Engine Extractor", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "feature specification: article content multi-engine extractor", + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L1" + }, + { + "id": "specs_003_article_content_extractor_spec_functional_requirements", + "label": "Functional Requirements", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "functional requirements", + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L74" + }, + { + "id": "specs_003_article_content_extractor_spec_key_entities", + "label": "Key Entities", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "key entities", + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L89" + }, + { + "id": "specs_003_article_content_extractor_spec_measurable_outcomes", + "label": "Measurable Outcomes", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "measurable outcomes", + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L99" + }, + { + "id": "specs_003_article_content_extractor_spec_requirements_mandatory", + "label": "Requirements *(mandatory)*", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "requirements *(mandatory)*", + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L72" + }, + { + "id": "specs_003_article_content_extractor_spec_session_2026_08_20", + "label": "Session 2026-08-20", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "session 2026-08-20", + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L12" + }, + { + "id": "specs_003_article_content_extractor_spec_success_criteria_mandatory", + "label": "Success Criteria *(mandatory)*", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "success criteria *(mandatory)*", + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L97" + }, + { + "id": "specs_003_article_content_extractor_spec_user_scenarios_testing_mandatory", + "label": "User Scenarios & Testing *(mandatory)*", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user scenarios & testing *(mandatory)*", + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L19" + }, + { + "id": "specs_003_article_content_extractor_spec_user_story_1_extra\u00e7\u00e3o_completa_e_consolidada_de_artigos_em_lote_priority_p1_mvp", + "label": "User Story 1 - Extra\u00e7\u00e3o Completa e Consolidada de Artigos em Lote (Priority: P1) \ud83c\udf1f MVP", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user story 1 - extracao completa e consolidada de artigos em lote (priority: p1) \ud83c\udf1f mvp", + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L21" + }, + { + "id": "specs_003_article_content_extractor_spec_user_story_2_resili\u00eancia_e_isolamento_de_falhas_por_artigo_e_motor_priority_p2", + "label": "User Story 2 - Resili\u00eancia e Isolamento de Falhas por Artigo e Motor (Priority: P2)", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user story 2 - resiliencia e isolamento de falhas por artigo e motor (priority: p2)", + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L35" + }, + { + "id": "specs_003_article_content_extractor_spec_user_story_3_controle_de_execu\u00e7\u00e3o_via_linha_de_comando_e_feedback_visual_priority_p3", + "label": "User Story 3 - Controle de Execu\u00e7\u00e3o via Linha de Comando e Feedback Visual (Priority: P3)", + "_origin": "ast", + "community": 98, + "community_name": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", + "file_type": "document", + "node_kind": "heading", + "norm_label": "user story 3 - controle de execucao via linha de comando e feedback visual (priority: p3)", + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L49" + }, + { + "id": "tests_test_extract_google_news_py_fixture", + "label": "fixture", + "_origin": "ast", + "community": 99, + "community_name": "sample_rss_xml", + "file_type": "code", + "norm_label": "fixture", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_extract_google_news_rationale_33", + "label": "Fixture que fornece o conte\u00fado do XML de exemplo para testes offline.", + "_origin": "ast", + "community": 99, + "community_name": "sample_rss_xml", + "file_type": "rationale", + "norm_label": "fixture que fornece o conteudo do xml de exemplo para testes offline.", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L33" + } + ], + "links": [ + { + "source": "classify_emit_error", + "target": "src_models_classificationerror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "classify.py", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "classify_main", + "target": "classify_emit_error", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "classify.py", + "source_location": "L108", + "weight": 1.0 + }, + { + "source": "classify_main", + "target": "src_models_ecpsnapshot_from_json_str", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "classify.py", + "source_location": "L126", + "weight": 1.0 + }, + { + "source": "classify_main", + "target": "src_classifier_inherenceclassifier", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "classify.py", + "source_location": "L171", + "weight": 1.0 + }, + { + "source": "classify_main", + "target": "classify_parse_args", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "classify.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_articlecrawler_crawl", + "target": "scripts_extract_article_contents_articlecrawler_start", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L516", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_articlecrawler_enter", + "target": "scripts_extract_article_contents_articlecrawler_start", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L505", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_articlecrawler_exit", + "target": "scripts_extract_article_contents_articlecrawler_close", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L509", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_extract_all_engines", + "target": "scripts_extract_article_contents_trafilaturaextractor_extract", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L432", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_extract_all_engines", + "target": "scripts_extract_article_contents_trafilaturadata", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L434", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_extract_all_engines", + "target": "scripts_extract_article_contents_newspaperextractor_extract", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L448", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_extract_all_engines", + "target": "scripts_extract_article_contents_newspaperdata", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L450", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_extract_all_engines", + "target": "scripts_extract_article_contents_readabilityextractor_extract", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L464", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_extract_all_engines", + "target": "scripts_extract_article_contents_readabilitydata", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L466", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_load_search_json", + "target": "scripts_extract_article_contents_inputarticle", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L556", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_main", + "target": "scripts_extract_article_contents_parse_arguments", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L744", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_main", + "target": "scripts_extract_article_contents_py_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L745", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_main", + "target": "scripts_extract_article_contents_process_batch", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L752", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_newspaperextractor_extract", + "target": "scripts_extract_article_contents_newspaperdata", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L369", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_process_batch", + "target": "scripts_extract_article_contents_load_search_json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L586", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_process_batch", + "target": "scripts_extract_article_contents_log_info", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L593", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_process_batch", + "target": "scripts_extract_article_contents_articlecrawler", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L607", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_process_batch", + "target": "scripts_extract_article_contents_extract_all_engines", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L619", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_process_batch", + "target": "scripts_extract_article_contents_extractedarticle", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L623", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_process_batch", + "target": "scripts_extract_article_contents_extractionbatchreport", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L664", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_process_batch", + "target": "scripts_extract_article_contents_save_extracted_json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L673", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_readabilityextractor_extract", + "target": "scripts_extract_article_contents_readabilitydata", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L415", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_trafilaturaextractor_extract", + "target": "scripts_extract_article_contents_trafilaturadata", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L274", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_extract_google_news", + "target": "scripts_extract_google_news_get_hl_gl_ceid", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_google_news.py", + "source_location": "L305", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_extract_google_news", + "target": "scripts_extract_google_news_fetch_rss_content", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_google_news.py", + "source_location": "L314", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_extract_google_news", + "target": "scripts_extract_google_news_parse_google_news_rss", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_google_news.py", + "source_location": "L318", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_extract_google_news", + "target": "scripts_extract_google_news_resolve_articles_urls", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_google_news.py", + "source_location": "L323", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_extract_google_news", + "target": "scripts_extract_google_news_extractionresult", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_google_news.py", + "source_location": "L325", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_main", + "target": "scripts_extract_google_news_build_parser", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_google_news.py", + "source_location": "L416", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_main", + "target": "scripts_extract_google_news_searchquery", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_google_news.py", + "source_location": "L420", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_main", + "target": "scripts_extract_google_news_extract_google_news", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_google_news.py", + "source_location": "L435", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_parse_google_news_rss", + "target": "scripts_extract_google_news_normalize_text_for_comparison", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_google_news.py", + "source_location": "L188", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_parse_google_news_rss", + "target": "scripts_extract_google_news_newsarticle", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/extract_google_news.py", + "source_location": "L195", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_atomic_save_json", + "target": "scripts_select_article_extractor_py_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L432", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_extract_candidate_data", + "target": "scripts_select_article_extractor_extractorcandidate", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L171", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_extract_candidate_data", + "target": "scripts_select_article_extractor_normalize_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L188", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_extract_candidate_data", + "target": "scripts_select_article_extractor_generate_shingles", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L189", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_main", + "target": "scripts_select_article_extractor_parse_args", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L545", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_main", + "target": "scripts_select_article_extractor_process_batch", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L547", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_process_batch", + "target": "scripts_select_article_extractor_py_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L459", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_process_batch", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L491", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_process_batch", + "target": "scripts_select_article_extractor_atomic_save_json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L506", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_process_batch", + "target": "scripts_select_article_extractor_batchprocessingresult", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L508", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_select_article_extractor", + "target": "scripts_select_article_extractor_extract_candidate_data", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L379", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_select_article_extractor", + "target": "scripts_select_article_extractor_form_active_set", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L382", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_select_article_extractor", + "target": "scripts_select_article_extractor_articleselectionresult", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L386", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_select_article_extractor", + "target": "scripts_select_article_extractor_calculate_consensus_metrics", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L408", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_select_article_extractor", + "target": "scripts_select_article_extractor_select_with_consensus", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L411", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_select_article_extractor", + "target": "scripts_select_article_extractor_select_without_consensus", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L413", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_select_with_consensus", + "target": "scripts_select_article_extractor_break_priority_tie", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L318", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_select_without_consensus", + "target": "scripts_select_article_extractor_break_priority_tie", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L344", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings_localembeddingsadapter_evaluate_similarity", + "target": "src_adapters_embeddings_localembeddingsadapter_is_available", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/adapters/embeddings.py", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "src_adapters_llm_llmfallbackadapter_disambiguate", + "target": "src_adapters_llm_llmfallbackadapter_is_available", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/adapters/llm.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "src_classifier_count_phrase_occurrences", + "target": "src_language_normalize_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/classifier.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "src_classifier_inherenceclassifier_classify", + "target": "src_parser_extract_evidence_snippets", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/classifier.py", + "source_location": "L223", + "weight": 1.0 + }, + { + "source": "src_classifier_inherenceclassifier_classify", + "target": "src_models_classificationresult", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/classifier.py", + "source_location": "L227", + "weight": 1.0 + }, + { + "source": "src_classifier_inherenceclassifier_classify", + "target": "src_language_detect_language", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/classifier.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "src_classifier_inherenceclassifier_classify", + "target": "src_parser_strip_markdown", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/classifier.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "src_classifier_inherenceclassifier_classify", + "target": "src_language_normalize_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/classifier.py", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "src_classifier_inherenceclassifier_classify", + "target": "src_classifier_count_phrase_occurrences", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/classifier.py", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "src_classifier_inherenceclassifier_classify", + "target": "src_classifier_match_phrase_in_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/classifier.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "src_classifier_inherenceclassifier_init", + "target": "src_adapters_embeddings_localembeddingsadapter", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/classifier.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "src_classifier_inherenceclassifier_init", + "target": "src_adapters_llm_llmfallbackadapter", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/classifier.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "src_classifier_match_phrase_in_text", + "target": "src_language_normalize_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/classifier.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "src_language_detect_language", + "target": "src_language_extract_words", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/language.py", + "source_location": "L485", + "weight": 1.0 + }, + { + "source": "src_language_detect_language", + "target": "src_language_normalize_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/language.py", + "source_location": "L556", + "weight": 1.0 + }, + { + "source": "src_models_classificationerror_to_json_str", + "target": "src_models_classificationerror_to_dict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/models.py", + "source_location": "L170", + "weight": 1.0 + }, + { + "source": "src_models_classificationresult_to_json_str", + "target": "src_models_classificationerror_to_dict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/models.py", + "source_location": "L151", + "weight": 1.0 + }, + { + "source": "src_models_ecpsnapshot_from_dict", + "target": "src_models_relatedentity_from_dict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/models.py", + "source_location": "L91", + "weight": 1.0 + }, + { + "source": "src_models_ecpsnapshot_from_json_str", + "target": "src_models_ecpsnapshot_from_dict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/models.py", + "source_location": "L110", + "weight": 1.0 + }, + { + "source": "src_parser_extract_evidence_snippets", + "target": "src_parser_strip_markdown", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/parser.py", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "src_parser_extract_evidence_snippets", + "target": "src_parser_extract_sentences", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "src/parser.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "tests_test_adapters_test_classifier_with_adapter_flags", + "target": "src_classifier_inherenceclassifier", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_adapters.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "tests_test_adapters_test_classifier_with_adapter_flags", + "target": "src_models_ecpsnapshot", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_adapters.py", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "tests_test_adapters_test_embeddings_adapter_interface", + "target": "src_adapters_embeddings_localembeddingsadapter", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_adapters.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "tests_test_adapters_test_llm_adapter_interface", + "target": "src_adapters_llm_llmfallbackadapter", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_adapters.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial_test_adversarial_apple_fruit_recipe", + "target": "src_models_ecpsnapshot", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_adversarial.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial_test_adversarial_apple_fruit_recipe", + "target": "src_classifier_inherenceclassifier", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_adversarial.py", + "source_location": "L62", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial_test_adversarial_related_entity_without_scope_context", + "target": "src_models_ecpsnapshot", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_adversarial.py", + "source_location": "L70", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial_test_adversarial_related_entity_without_scope_context", + "target": "src_models_relatedentity", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_adversarial.py", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial_test_adversarial_related_entity_without_scope_context", + "target": "src_classifier_inherenceclassifier", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_adversarial.py", + "source_location": "L96", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial_test_adversarial_sao_paulo_city_vs_fc", + "target": "src_models_ecpsnapshot", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_adversarial.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial_test_adversarial_sao_paulo_city_vs_fc", + "target": "src_classifier_inherenceclassifier", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_adversarial.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "tests_test_benchmark_24_test_benchmark_case", + "target": "src_models_ecpsnapshot_from_json_str", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_benchmark_24.py", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "tests_test_classifier_test_contextual_inherent", + "target": "src_classifier_inherenceclassifier", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_classifier.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "tests_test_classifier_test_direct_inherent", + "target": "src_classifier_inherenceclassifier", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_classifier.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "tests_test_classifier_test_negative_anchor_suppression", + "target": "src_classifier_inherenceclassifier", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_classifier.py", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "tests_test_classifier_test_not_related", + "target": "src_classifier_inherenceclassifier", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_classifier.py", + "source_location": "L79", + "weight": 1.0 + }, + { + "source": "tests_test_classifier_test_tangential_inherent", + "target": "src_classifier_inherenceclassifier", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_classifier.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "tests_test_cli_test_cli_empty_content_file", + "target": "classify_main", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_cli.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "tests_test_cli_test_cli_missing_ecp_file", + "target": "classify_main", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_cli.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "tests_test_cli_test_cli_missing_required_ecp_field", + "target": "classify_main", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_cli.py", + "source_location": "L121", + "weight": 1.0 + }, + { + "source": "tests_test_cli_test_cli_output_file", + "target": "classify_main", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_cli.py", + "source_location": "L62", + "weight": 1.0 + }, + { + "source": "tests_test_cli_test_cli_success_stdout", + "target": "classify_main", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_cli.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_cli_main_missing_input_file", + "target": "scripts_extract_article_contents_main", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L307", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_cli_main_success", + "target": "scripts_extract_article_contents_main", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L299", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_crawler_error_isolation", + "target": "scripts_extract_article_contents_process_batch", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L252", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_e2e_cli_live_execution", + "target": "tests_test_extract_article_contents_py_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L362", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_e2e_cli_live_execution", + "target": "scripts_extract_article_contents_main", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L367", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_e2e_live_article_extraction", + "target": "tests_test_extract_article_contents_py_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L318", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_e2e_live_article_extraction", + "target": "scripts_extract_article_contents_process_batch", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L325", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_extract_all_engines", + "target": "scripts_extract_article_contents_extract_all_engines", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L216", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_extractor_error_isolation_on_faulty_engine", + "target": "scripts_extract_article_contents_extract_all_engines", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L234", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_input_article_creation", + "target": "scripts_extract_article_contents_inputarticle", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L95", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_load_search_json_invalid_file", + "target": "scripts_extract_article_contents_load_search_json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L121", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_load_search_json_valid", + "target": "scripts_extract_article_contents_load_search_json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_newspaper_extractor", + "target": "scripts_extract_article_contents_newspaperextractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L196", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_process_batch_with_limit", + "target": "scripts_extract_article_contents_process_batch", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L279", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_readability_extractor", + "target": "scripts_extract_article_contents_readabilityextractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L206", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_save_extracted_json", + "target": "scripts_extract_article_contents_extractionbatchreport", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L125", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_save_extracted_json", + "target": "scripts_extract_article_contents_extractedarticle", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_save_extracted_json", + "target": "scripts_extract_article_contents_inputarticle", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L133", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_save_extracted_json", + "target": "scripts_extract_article_contents_trafilaturadata", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L139", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_save_extracted_json", + "target": "scripts_extract_article_contents_newspaperdata", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L151", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_save_extracted_json", + "target": "scripts_extract_article_contents_readabilitydata", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L163", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_save_extracted_json", + "target": "scripts_extract_article_contents_save_extracted_json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L174", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_trafilatura_extractor", + "target": "scripts_extract_article_contents_trafilaturaextractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L187", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_cli_empty_query_error", + "target": "scripts_extract_google_news_main", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L255", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_cli_execution_file_output", + "target": "scripts_extract_google_news_main", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L245", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_cli_execution_stdout", + "target": "scripts_extract_google_news_main", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L222", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_cli_network_error_handling", + "target": "scripts_extract_google_news_main", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L268", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_e2e_cli_live_file_output", + "target": "scripts_extract_google_news_main", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L321", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_e2e_extract_google_news_live_pipeline", + "target": "scripts_extract_google_news_searchquery", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L304", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_e2e_extract_google_news_live_pipeline", + "target": "scripts_extract_google_news_extract_google_news", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L305", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_e2e_resolve_real_google_news_url", + "target": "scripts_extract_google_news_resolve_article_url", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L293", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_extract_google_news_orchestration_mocked", + "target": "scripts_extract_google_news_searchquery", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L188", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_extract_google_news_orchestration_mocked", + "target": "scripts_extract_google_news_extract_google_news", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L200", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_get_hl_gl_ceid_default_mappings", + "target": "scripts_extract_google_news_get_hl_gl_ceid", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_get_hl_gl_ceid_dynamic_fallback", + "target": "scripts_extract_google_news_get_hl_gl_ceid", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L80", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_get_hl_gl_ceid_with_custom_locale", + "target": "scripts_extract_google_news_get_hl_gl_ceid", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L62", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_parse_google_news_rss_with_fixture", + "target": "scripts_extract_google_news_parse_google_news_rss", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L113", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_resolve_article_url_fallback", + "target": "scripts_extract_google_news_resolve_article_url", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L141", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_resolve_article_url_success", + "target": "scripts_extract_google_news_resolve_article_url", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L157", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_resolve_articles_urls_batch", + "target": "scripts_extract_google_news_newsarticle", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_resolve_articles_urls_batch", + "target": "scripts_extract_google_news_resolve_articles_urls", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L180", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_search_query_validation", + "target": "scripts_extract_google_news_searchquery", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "tests_test_language_test_detect_english", + "target": "src_language_detect_language", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_language.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "tests_test_language_test_detect_french", + "target": "src_language_detect_language", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_language.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "tests_test_language_test_detect_german", + "target": "src_language_detect_language", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_language.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "tests_test_language_test_detect_italian", + "target": "src_language_detect_language", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_language.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "tests_test_language_test_detect_portuguese", + "target": "src_language_detect_language", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_language.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_language_test_detect_spanish", + "target": "src_language_detect_language", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_language.py", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "tests_test_language_test_empty_language", + "target": "src_language_detect_language", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_language.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "tests_test_language_test_normalize_text", + "target": "src_language_normalize_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_language.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "tests_test_models_test_classification_error_serialization", + "target": "src_models_classificationerror", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_models.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "tests_test_models_test_classification_result_serialization", + "target": "src_models_classificationresult", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_models.py", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "tests_test_models_test_ecp_snapshot_defaults", + "target": "src_models_ecpsnapshot_from_dict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_models.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "tests_test_models_test_ecp_snapshot_missing_required", + "target": "src_models_ecpsnapshot_from_dict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_models.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "tests_test_models_test_ecp_snapshot_valid", + "target": "src_models_ecpsnapshot_from_dict", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_models.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "tests_test_models_test_extract_evidence_snippets", + "target": "src_parser_extract_evidence_snippets", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_models.py", + "source_location": "L112", + "weight": 1.0 + }, + { + "source": "tests_test_models_test_parser_strip_markdown", + "target": "src_parser_strip_markdown", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_models.py", + "source_location": "L102", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", + "target": "tests_test_select_article_extractor_py_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L370", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L378", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_001_three_candidates_clear_winner", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L123", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_002_technical_tie_smallest_shingles", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L136", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_003_technical_tie_priority_fallback", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L148", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_004_three_candidates_no_consensus", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L171", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_005_two_candidates_no_consensus", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_006_single_usable_candidate", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L197", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_007_degraded_candidates_only", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L210", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_008_all_candidates_unavailable", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L221", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_009_small_fragment_loses_due_to_low_coverage", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L238", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_010_excessive_boilerplate_loses_due_to_low_support", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L255", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_011_partial_content_loses_due_to_low_coverage", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L268", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", + "target": "scripts_select_article_extractor_process_batch", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L288", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", + "target": "tests_test_select_article_extractor_py_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L289", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_013_empty_articles_list", + "target": "scripts_select_article_extractor_process_batch", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L304", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_013_empty_articles_list", + "target": "tests_test_select_article_extractor_py_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L305", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", + "target": "scripts_select_article_extractor_process_batch", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L324", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", + "target": "tests_test_select_article_extractor_py_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L536", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", + "target": "tests_test_select_article_extractor_py_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L553", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", + "target": "tests_test_select_article_extractor_py_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L563", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", + "target": "tests_test_select_article_extractor_py_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L485", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_generate_shingles_empty", + "target": "scripts_select_article_extractor_generate_shingles", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L107", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_generate_shingles_short_text", + "target": "scripts_select_article_extractor_generate_shingles", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_generate_shingles_sliding_window", + "target": "scripts_select_article_extractor_generate_shingles", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_integration_large_batch_determinism", + "target": "scripts_select_article_extractor_process_batch", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L434", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", + "target": "tests_test_select_article_extractor_py_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L452", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", + "target": "scripts_select_article_extractor_process_batch", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L457", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_integration_reference_file", + "target": "tests_test_select_article_extractor_py_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L336", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_integration_reference_file", + "target": "scripts_select_article_extractor_process_batch", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L341", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_normalize_text_empty_and_invalid", + "target": "scripts_select_article_extractor_normalize_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_normalize_text_html_entities_and_tags", + "target": "scripts_select_article_extractor_normalize_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_normalize_text_markdown_images_stripped_while_links_preserved", + "target": "scripts_select_article_extractor_normalize_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_normalize_text_markdown_links", + "target": "scripts_select_article_extractor_normalize_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_normalize_text_nfkc_unicode_and_punctuation", + "target": "scripts_select_article_extractor_normalize_text", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "tests_test_benchmark_24_classifier", + "target": "tests_test_benchmark_24_py_fixture", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "tests/test_benchmark_24.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "tests_test_benchmark_24_test_benchmark_case", + "target": "parametrize", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "tests/test_benchmark_24.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "tests_test_classifier_petrobras_ecp", + "target": "tests_test_classifier_py_fixture", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "tests/test_classifier.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_sample_input_json", + "target": "tests_test_extract_article_contents_py_fixture", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_sample_rss_xml", + "target": "tests_test_extract_google_news_py_fixture", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_extractedarticle_to_dict", + "target": "scripts_extract_article_contents_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L187", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_extractionbatchreport_to_dict", + "target": "scripts_extract_article_contents_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L212", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_inputarticle_to_dict", + "target": "scripts_extract_article_contents_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_newspaperdata_to_dict", + "target": "scripts_extract_article_contents_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L126", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_readabilitydata_to_dict", + "target": "scripts_extract_article_contents_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L162", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_trafilaturadata_to_dict", + "target": "scripts_extract_article_contents_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_extractionresult_to_dict", + "target": "scripts_extract_google_news_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/extract_google_news.py", + "source_location": "L95", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_newsarticle_to_dict", + "target": "scripts_extract_google_news_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/extract_google_news.py", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_resolve_articles_urls", + "target": "scripts_extract_google_news_newsarticle", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/extract_google_news.py", + "source_location": "L220", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_calculate_consensus_metrics", + "target": "scripts_select_article_extractor_extractorcandidate", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L234", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_extract_candidate_data", + "target": "scripts_select_article_extractor_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L167", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_form_active_set", + "target": "scripts_select_article_extractor_extractorcandidate", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L211", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_form_active_set", + "target": "scripts_select_article_extractor_extractorname", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L211", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_select_article_extractor", + "target": "scripts_select_article_extractor_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L373", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_select_with_consensus", + "target": "scripts_select_article_extractor_extractorcandidate", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L289", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_select_with_consensus", + "target": "scripts_select_article_extractor_extractorname", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L289", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_select_without_consensus", + "target": "scripts_select_article_extractor_extractorcandidate", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L322", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_select_without_consensus", + "target": "scripts_select_article_extractor_extractorname", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L322", + "weight": 1.0 + }, + { + "source": "src_models_classificationerror_to_dict", + "target": "src_models_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "src/models.py", + "source_location": "L160", + "weight": 1.0 + }, + { + "source": "src_models_classificationresult_to_dict", + "target": "src_models_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "src/models.py", + "source_location": "L134", + "weight": 1.0 + }, + { + "source": "src_models_ecpsnapshot_from_dict", + "target": "src_models_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "src/models.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "src_models_relatedentity_from_dict", + "target": "src_models_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "src/models.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_cli_empty_query_error", + "target": "capturefixture", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L253", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_cli_execution_stdout", + "target": "capturefixture", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L213", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_cli_network_error_handling", + "target": "capturefixture", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L262", + "weight": 1.0 + }, + { + "source": "classify", + "target": "src_classifier_inherenceclassifier", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "classify.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "classify", + "target": "src_models_classificationerror", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "classify.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "classify", + "target": "src_models_ecpsnapshot", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "classify.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "classify", + "target": "src_models_errorcode", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "classify.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "src_adapters_base", + "target": "src_models_classificationresult", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/adapters/base.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "src_adapters_base", + "target": "src_models_ecpsnapshot", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/adapters/base.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings", + "target": "src_models_classificationresult", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/adapters/embeddings.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings", + "target": "src_models_ecpsnapshot", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/adapters/embeddings.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings", + "target": "src_adapters_base_basenlpadapter", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/adapters/embeddings.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "src_adapters_llm", + "target": "src_adapters_base_basenlpadapter", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/adapters/llm.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "src_adapters_llm", + "target": "src_models_classificationresult", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/adapters/llm.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "src_adapters_llm", + "target": "src_models_ecpsnapshot", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/adapters/llm.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "src_classifier", + "target": "src_parser_extract_evidence_snippets", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/classifier.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "src_classifier", + "target": "src_parser_strip_markdown", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/classifier.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "src_classifier", + "target": "src_adapters_embeddings_localembeddingsadapter", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/classifier.py", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "src_classifier", + "target": "src_adapters_llm_llmfallbackadapter", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/classifier.py", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "src_classifier", + "target": "src_language_detect_language", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/classifier.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "src_classifier", + "target": "src_language_normalize_text", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/classifier.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "src_classifier", + "target": "src_models_classificationresult", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/classifier.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "src_classifier", + "target": "src_models_decisioncategory", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/classifier.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "src_classifier", + "target": "src_models_ecpsnapshot", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/classifier.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_adapters", + "target": "src_adapters_embeddings_localembeddingsadapter", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_adapters.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "tests_test_adapters", + "target": "src_adapters_llm_llmfallbackadapter", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_adapters.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "tests_test_adapters", + "target": "src_classifier_inherenceclassifier", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_adapters.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_adapters", + "target": "src_models_ecpsnapshot", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_adapters.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial", + "target": "src_models_decisioncategory", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_adversarial.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial", + "target": "src_models_ecpsnapshot", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_adversarial.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial", + "target": "src_models_relatedentity", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_adversarial.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial", + "target": "src_classifier_inherenceclassifier", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_adversarial.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "tests_test_benchmark_24", + "target": "src_classifier_inherenceclassifier", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_benchmark_24.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_benchmark_24", + "target": "src_models_ecpsnapshot", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_benchmark_24.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "tests_test_classifier", + "target": "src_classifier_inherenceclassifier", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_classifier.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_classifier", + "target": "src_models_decisioncategory", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_classifier.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "tests_test_classifier", + "target": "src_models_ecpsnapshot", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_classifier.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "tests_test_classifier", + "target": "src_models_relatedentity", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_classifier.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "tests_test_cli", + "target": "classify_main", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_cli.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents_articlecrawler", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents_extract_all_engines", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents_extractedarticle", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents_extractionbatchreport", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents_inputarticle", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents_load_search_json", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents_main", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents_newspaperdata", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents_newspaperextractor", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents_process_batch", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents_readabilitydata", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents_readabilityextractor", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents_save_extracted_json", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents_trafilaturadata", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents_trafilaturaextractor", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "scripts_extract_google_news_extract_google_news", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "scripts_extract_google_news_extractionresult", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "scripts_extract_google_news_get_hl_gl_ceid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "scripts_extract_google_news_main", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "scripts_extract_google_news_newsarticle", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "scripts_extract_google_news_parse_google_news_rss", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "scripts_extract_google_news_resolve_article_url", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "scripts_extract_google_news_resolve_articles_urls", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "scripts_extract_google_news_searchquery", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_language", + "target": "src_language_detect_language", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_language.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "tests_test_language", + "target": "src_language_normalize_text", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_language.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "src_parser_extract_evidence_snippets", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_models.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "src_parser_strip_markdown", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_models.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "src_models_classificationerror", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_models.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "src_models_classificationresult", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_models.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "src_models_decisioncategory", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_models.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "src_models_ecpsnapshot", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_models.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "src_models_errorcode", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_models.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "scripts_select_article_extractor_calculate_consensus_metrics", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "scripts_select_article_extractor_candidatestatus", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "scripts_select_article_extractor_extractorcandidate", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "scripts_select_article_extractor_extractorname", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "scripts_select_article_extractor_form_active_set", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "scripts_select_article_extractor_generate_shingles", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "scripts_select_article_extractor_main", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "scripts_select_article_extractor_normalize_text", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "scripts_select_article_extractor_process_batch", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "scripts_select_article_extractor_select_with_consensus", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "scripts_select_article_extractor_select_without_consensus", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "classify", + "target": "src_classifier", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "classify.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "classify", + "target": "src_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "classify.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_py_enum", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "src_adapters_base", + "target": "abc", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/adapters/base.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "src_adapters_base", + "target": "src_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/adapters/base.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings", + "target": "src_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/adapters/embeddings.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings", + "target": "src_adapters_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/adapters/embeddings.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "src_adapters_llm", + "target": "src_adapters_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/adapters/llm.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "src_adapters_llm", + "target": "src_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/adapters/llm.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "src_classifier", + "target": "src_parser", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/classifier.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "src_classifier", + "target": "src_language", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/classifier.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "src_classifier", + "target": "src_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/classifier.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "src_models", + "target": "src_models_py_enum", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "src/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "tests_test_adapters", + "target": "src_adapters_embeddings", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_adapters.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "tests_test_adapters", + "target": "src_adapters_llm", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_adapters.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "tests_test_adapters", + "target": "src_classifier", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_adapters.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_adapters", + "target": "src_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_adapters.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial", + "target": "src_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_adversarial.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "tests_test_benchmark_24", + "target": "src_classifier", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_benchmark_24.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_benchmark_24", + "target": "src_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_benchmark_24.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "tests_test_classifier", + "target": "src_classifier", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_classifier.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_classifier", + "target": "src_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_classifier.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "tests_test_cli", + "target": "classify", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_cli.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "scripts_extract_article_contents", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "scripts_extract_google_news", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_test_language", + "target": "src_language", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_language.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "src_parser", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_models.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "src_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_models.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "scripts_select_article_extractor", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_articlecrawler_exit", + "target": "scripts_extract_article_contents_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L508", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_load_search_json", + "target": "scripts_extract_article_contents_py_path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L540", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_process_batch", + "target": "scripts_extract_article_contents_py_path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L575", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_save_extracted_json", + "target": "scripts_extract_article_contents_extractionbatchreport", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L568", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_save_extracted_json", + "target": "scripts_extract_article_contents_py_path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L568", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_extract_google_news", + "target": "scripts_extract_google_news_searchquery", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "scripts/extract_google_news.py", + "source_location": "L297", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_atomic_save_json", + "target": "scripts_select_article_extractor_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L430", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_extract_candidate_data", + "target": "scripts_select_article_extractor_extractorname", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L167", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_normalize_text", + "target": "scripts_select_article_extractor_py_any", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L106", + "weight": 1.0 + }, + { + "source": "src_adapters_base_basenlpadapter_disambiguate", + "target": "src_models_ecpsnapshot", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "src/adapters/base.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings_localembeddingsadapter_disambiguate", + "target": "src_models_ecpsnapshot", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "src/adapters/embeddings.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "src_adapters_llm_llmfallbackadapter_disambiguate", + "target": "src_models_ecpsnapshot", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "src/adapters/llm.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "src_classifier_inherenceclassifier_classify", + "target": "src_models_ecpsnapshot", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "src/classifier.py", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_cli_main_missing_input_file", + "target": "tests_test_extract_article_contents_py_path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L305", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_cli_main_success", + "target": "tests_test_extract_article_contents_py_path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L291", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_crawler_error_isolation", + "target": "tests_test_extract_article_contents_py_path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L242", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_load_search_json_invalid_file", + "target": "tests_test_extract_article_contents_py_path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_load_search_json_valid", + "target": "tests_test_extract_article_contents_py_path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L110", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_process_batch_with_limit", + "target": "tests_test_extract_article_contents_py_path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L271", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_test_save_extracted_json", + "target": "tests_test_extract_article_contents_py_path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_cli_execution_file_output", + "target": "tests_test_extract_google_news_py_path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L234", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_test_e2e_cli_live_file_output", + "target": "tests_test_extract_google_news_py_path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "tests/test_extract_google_news.py", + "source_location": "L318", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", + "target": "tests_test_select_article_extractor_py_path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L317", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_test_integration_large_batch_determinism", + "target": "tests_test_select_article_extractor_py_path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L397", + "weight": 1.0 + }, + { + "source": "classify_parse_args", + "target": "classify_py_namespace", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "classify.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_parse_arguments", + "target": "scripts_extract_article_contents_py_namespace", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "scripts/extract_article_contents.py", + "source_location": "L688", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_build_parser", + "target": "argumentparser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "scripts/extract_google_news.py", + "source_location": "L336", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_break_priority_tie", + "target": "scripts_select_article_extractor_extractorcandidate", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L280", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_parse_args", + "target": "scripts_select_article_extractor_py_namespace", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "scripts/select_article_extractor.py", + "source_location": "L523", + "weight": 1.0 + }, + { + "source": "src_adapters_base_basenlpadapter_disambiguate", + "target": "src_models_classificationresult", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "src/adapters/base.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings_localembeddingsadapter_disambiguate", + "target": "src_models_classificationresult", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "src/adapters/embeddings.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "src_adapters_llm_llmfallbackadapter_disambiguate", + "target": "src_models_classificationresult", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "src/adapters/llm.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_sample_input_json", + "target": "tests_test_extract_article_contents_py_path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common_format_speckitcommand", + "target": "specify_scripts_powershell_common_get_invokeseparator", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L308", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common_get_featurepathsenv", + "target": "specify_scripts_powershell_common_get_reporoot", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L169", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common_get_featurepathsenv", + "target": "specify_scripts_powershell_common_get_currentbranch", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L171", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common_get_featurepathsenv", + "target": "specify_scripts_powershell_common_save_featurejson", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L187", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common_get_reporoot", + "target": "specify_scripts_powershell_common_resolve_specifyinitdir", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common_get_reporoot", + "target": "specify_scripts_powershell_common_find_specifyroot", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common_get_sortedextensionids", + "target": "specify_scripts_powershell_common_get_normalizedpriority", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L397", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common_resolve_template", + "target": "specify_scripts_powershell_common_get_normalizedpriority", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L454", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common_resolve_template", + "target": "specify_scripts_powershell_common_get_sortedextensionids", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L496", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common_resolve_templatecontent", + "target": "specify_scripts_powershell_common_get_normalizedpriority", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L566", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common_resolve_templatecontent", + "target": "specify_scripts_powershell_common_get_python3command", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L594", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common_resolve_templatecontent", + "target": "specify_scripts_powershell_common_get_sortedextensionids", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L716", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_create_new_feature_get_branchname", + "target": "specify_scripts_powershell_create_new_feature_convertto_cleanbranchname", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/create-new-feature.ps1", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "agents_rules_graphify", + "target": "agents_rules_graphify_graphify", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/rules/graphify.md", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_add_watch", + "target": "agents_skills_graphify_references_add_watch_graphify_reference_add_a_url_and_watch_a_folder", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/add-watch.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_add_watch_graphify_reference_add_a_url_and_watch_a_folder", + "target": "agents_skills_graphify_references_add_watch_for_watch", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/add-watch.md", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_add_watch_graphify_reference_add_a_url_and_watch_a_folder", + "target": "agents_skills_graphify_references_add_watch_for_graphify_add", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/add-watch.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_exports", + "target": "agents_skills_graphify_references_exports_graphify_reference_extra_exports_and_benchmark", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_exports_graphify_reference_extra_exports_and_benchmark", + "target": "agents_skills_graphify_references_exports_step_7_neo4j_export_only_if_neo4j_or_neo4j_push_flag", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_exports_graphify_reference_extra_exports_and_benchmark", + "target": "agents_skills_graphify_references_exports_step_7a_falkordb_export_only_if_falkordb_or_falkordb_push_flag", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_exports_graphify_reference_extra_exports_and_benchmark", + "target": "agents_skills_graphify_references_exports_step_7b_svg_export_only_if_svg_flag", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_exports_graphify_reference_extra_exports_and_benchmark", + "target": "agents_skills_graphify_references_exports_step_6b_wiki_only_if_wiki_flag", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_exports_graphify_reference_extra_exports_and_benchmark", + "target": "agents_skills_graphify_references_exports_step_7c_graphml_export_only_if_graphml_flag", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_exports_graphify_reference_extra_exports_and_benchmark", + "target": "agents_skills_graphify_references_exports_step_7d_mcp_server_only_if_mcp_flag", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_exports_graphify_reference_extra_exports_and_benchmark", + "target": "agents_skills_graphify_references_exports_step_8_token_reduction_benchmark_only_if_total_words_5000", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/exports.md", + "source_location": "L79", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_extraction_spec", + "target": "agents_skills_graphify_references_extraction_spec_graphify_reference_extraction_subagent_prompt", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/extraction-spec.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_github_and_merge", + "target": "agents_skills_graphify_references_github_and_merge_graphify_reference_github_clone_and_cross_repo_merge", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/github-and-merge.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_github_and_merge_graphify_reference_github_clone_and_cross_repo_merge", + "target": "agents_skills_graphify_references_github_and_merge_step_0_clone_github_repo_s_only_if_a_github_url_was_given", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/github-and-merge.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_hooks", + "target": "agents_skills_graphify_references_hooks_graphify_reference_commit_hook_and_native_claude_md_integration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/hooks.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_hooks_graphify_reference_commit_hook_and_native_claude_md_integration", + "target": "agents_skills_graphify_references_hooks_for_native_claude_md_integration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/hooks.md", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_hooks_graphify_reference_commit_hook_and_native_claude_md_integration", + "target": "agents_skills_graphify_references_hooks_for_git_commit_hook", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/hooks.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_query", + "target": "agents_skills_graphify_references_query_graphify_reference_query_path_explain", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/query.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_query_graphify_reference_query_path_explain", + "target": "agents_skills_graphify_references_query_for_graphify_path", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/query.md", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_query_graphify_reference_query_path_explain", + "target": "agents_skills_graphify_references_query_step_0_constrained_query_expansion_required_before_traversal", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/query.md", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_query_graphify_reference_query_path_explain", + "target": "agents_skills_graphify_references_query_for_graphify_explain", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/query.md", + "source_location": "L254", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_query_graphify_reference_query_path_explain", + "target": "agents_skills_graphify_references_query_step_1_traversal", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/query.md", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_transcribe", + "target": "agents_skills_graphify_references_transcribe_graphify_reference_transcribe_video_and_audio", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/transcribe.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_transcribe_graphify_reference_transcribe_video_and_audio", + "target": "agents_skills_graphify_references_transcribe_step_2_5_transcribe_video_audio_files_only_if_video_files_detected", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/transcribe.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_update", + "target": "agents_skills_graphify_references_update_graphify_reference_incremental_update_and_cluster_only", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/update.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_update_graphify_reference_incremental_update_and_cluster_only", + "target": "agents_skills_graphify_references_update_for_cluster_only", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/update.md", + "source_location": "L202", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_references_update_graphify_reference_incremental_update_and_cluster_only", + "target": "agents_skills_graphify_references_update_for_update_incremental_re_extraction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/references/update.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill", + "target": "agents_skills_graphify_skill_graphify", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_graphify", + "target": "agents_skills_graphify_skill_usage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_graphify", + "target": "agents_skills_graphify_skill_what_graphify_is_for", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_graphify", + "target": "agents_skills_graphify_skill_what_you_must_do_when_invoked", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_graphify", + "target": "agents_skills_graphify_skill_interpreter_guard_for_subcommands", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L659", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_graphify", + "target": "agents_skills_graphify_skill_for_update_and_cluster_only", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L677", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_graphify", + "target": "agents_skills_graphify_skill_for_graphify_query", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L683", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_graphify", + "target": "agents_skills_graphify_skill_for_graphify_add_and_watch", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L695", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_graphify", + "target": "agents_skills_graphify_skill_for_the_commit_hook_and_native_claude_md_integration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L701", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_graphify", + "target": "agents_skills_graphify_skill_honesty_rules", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L707", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_step_3_extract_entities_and_relationships", + "target": "agents_skills_graphify_skill_part_a_structural_extraction_for_code_files", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L170", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_step_3_extract_entities_and_relationships", + "target": "agents_skills_graphify_skill_part_b_semantic_extraction_parallel_subagents", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L196", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_step_3_extract_entities_and_relationships", + "target": "agents_skills_graphify_skill_part_c_merge_ast_semantic_into_final_extraction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L359", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_what_you_must_do_when_invoked", + "target": "agents_skills_graphify_skill_step_2_detect_files", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L107", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_what_you_must_do_when_invoked", + "target": "agents_skills_graphify_skill_step_2_5_video_and_audio_only_if_video_files_detected", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L147", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_what_you_must_do_when_invoked", + "target": "agents_skills_graphify_skill_step_3_extract_entities_and_relationships", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L151", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_what_you_must_do_when_invoked", + "target": "agents_skills_graphify_skill_step_4_build_graph_cluster_analyze_generate_outputs", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L393", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_what_you_must_do_when_invoked", + "target": "agents_skills_graphify_skill_step_4_5_graph_health_check_read_only_integrity_gate", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L456", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_what_you_must_do_when_invoked", + "target": "agents_skills_graphify_skill_step_5_label_communities", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L482", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_what_you_must_do_when_invoked", + "target": "agents_skills_graphify_skill_step_6_generate_obsidian_vault_opt_in_html", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L531", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_what_you_must_do_when_invoked", + "target": "agents_skills_graphify_skill_steps_6b_8_wiki_neo4j_falkordb_svg_graphml_mcp_benchmark_only_on_their_flags", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L551", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_what_you_must_do_when_invoked", + "target": "agents_skills_graphify_skill_step_9_save_manifest_update_cost_tracker_clean_up_and_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L557", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_what_you_must_do_when_invoked", + "target": "agents_skills_graphify_skill_step_0_github_repos_and_multi_path_merge_only_if_a_url_or_several_paths", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "agents_skills_graphify_skill_what_you_must_do_when_invoked", + "target": "agents_skills_graphify_skill_step_1_ensure_graphify_is_installed", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/graphify/SKILL.md", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_audit_skill", + "target": "agents_skills_ponytail_audit_skill_tags", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-audit/SKILL.md", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_audit_skill", + "target": "agents_skills_ponytail_audit_skill_hunt", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-audit/SKILL.md", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_audit_skill", + "target": "agents_skills_ponytail_audit_skill_output", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-audit/SKILL.md", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_audit_skill", + "target": "agents_skills_ponytail_audit_skill_boundaries", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-audit/SKILL.md", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_debt_skill", + "target": "agents_skills_ponytail_debt_skill_scan", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-debt/SKILL.md", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_debt_skill", + "target": "agents_skills_ponytail_debt_skill_output", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-debt/SKILL.md", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_debt_skill", + "target": "agents_skills_ponytail_debt_skill_boundaries", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-debt/SKILL.md", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_gain_skill", + "target": "agents_skills_ponytail_gain_skill_ponytail_gain", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-gain/SKILL.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_gain_skill_ponytail_gain", + "target": "agents_skills_ponytail_gain_skill_scoreboard", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-gain/SKILL.md", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_gain_skill_ponytail_gain", + "target": "agents_skills_ponytail_gain_skill_honesty_boundary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-gain/SKILL.md", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_gain_skill_ponytail_gain", + "target": "agents_skills_ponytail_gain_skill_boundaries", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-gain/SKILL.md", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_help_skill", + "target": "agents_skills_ponytail_help_skill_ponytail_help", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-help/SKILL.md", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_help_skill_ponytail_help", + "target": "agents_skills_ponytail_help_skill_levels", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-help/SKILL.md", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_help_skill_ponytail_help", + "target": "agents_skills_ponytail_help_skill_skills", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-help/SKILL.md", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_help_skill_ponytail_help", + "target": "agents_skills_ponytail_help_skill_deactivate", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-help/SKILL.md", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_help_skill_ponytail_help", + "target": "agents_skills_ponytail_help_skill_configure_default_mode", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-help/SKILL.md", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_help_skill_ponytail_help", + "target": "agents_skills_ponytail_help_skill_update", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-help/SKILL.md", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_help_skill_ponytail_help", + "target": "agents_skills_ponytail_help_skill_more", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-help/SKILL.md", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_review_skill", + "target": "agents_skills_ponytail_review_skill_format", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-review/SKILL.md", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_review_skill", + "target": "agents_skills_ponytail_review_skill_examples", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-review/SKILL.md", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_review_skill", + "target": "agents_skills_ponytail_review_skill_scoring", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-review/SKILL.md", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_review_skill", + "target": "agents_skills_ponytail_review_skill_boundaries", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail-review/SKILL.md", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_skill", + "target": "agents_skills_ponytail_skill_ponytail", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_skill_ponytail", + "target": "agents_skills_ponytail_skill_boundaries", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L114", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_skill_ponytail", + "target": "agents_skills_ponytail_skill_persistence", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_skill_ponytail", + "target": "agents_skills_ponytail_skill_the_ladder", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_skill_ponytail", + "target": "agents_skills_ponytail_skill_rules", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_skill_ponytail", + "target": "agents_skills_ponytail_skill_output", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_skill_ponytail", + "target": "agents_skills_ponytail_skill_intensity", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "agents_skills_ponytail_skill_ponytail", + "target": "agents_skills_ponytail_skill_when_not_to_be_lazy", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/ponytail/SKILL.md", + "source_location": "L90", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill", + "target": "agents_skills_speckit_analyze_skill_user_input", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill", + "target": "agents_skills_speckit_analyze_skill_specification_analysis_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L169", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill", + "target": "agents_skills_speckit_analyze_skill_pre_execution_checks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill", + "target": "agents_skills_speckit_analyze_skill_operating_principles", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L240", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill", + "target": "agents_skills_speckit_analyze_skill_context", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L257", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill", + "target": "agents_skills_speckit_analyze_skill_goal", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill", + "target": "agents_skills_speckit_analyze_skill_operating_constraints", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill", + "target": "agents_skills_speckit_analyze_skill_execution_steps", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_4_detection_passes_token_efficient_analysis", + "target": "agents_skills_speckit_analyze_skill_a_duplication_detection", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L122", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_4_detection_passes_token_efficient_analysis", + "target": "agents_skills_speckit_analyze_skill_b_ambiguity_detection", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L127", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_4_detection_passes_token_efficient_analysis", + "target": "agents_skills_speckit_analyze_skill_c_underspecification", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_4_detection_passes_token_efficient_analysis", + "target": "agents_skills_speckit_analyze_skill_d_constitution_alignment", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_4_detection_passes_token_efficient_analysis", + "target": "agents_skills_speckit_analyze_skill_e_coverage_gaps", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L143", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_4_detection_passes_token_efficient_analysis", + "target": "agents_skills_speckit_analyze_skill_f_inconsistency", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L149", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_execution_steps", + "target": "agents_skills_speckit_analyze_skill_3_build_semantic_models", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_execution_steps", + "target": "agents_skills_speckit_analyze_skill_4_detection_passes_token_efficient_analysis", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_execution_steps", + "target": "agents_skills_speckit_analyze_skill_5_severity_assignment", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L156", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_execution_steps", + "target": "agents_skills_speckit_analyze_skill_6_produce_compact_analysis_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L165", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_execution_steps", + "target": "agents_skills_speckit_analyze_skill_1_initialize_analysis_context", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_execution_steps", + "target": "agents_skills_speckit_analyze_skill_2_load_artifacts_progressive_disclosure", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_operating_principles", + "target": "agents_skills_speckit_analyze_skill_context_efficiency", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L242", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_operating_principles", + "target": "agents_skills_speckit_analyze_skill_analysis_guidelines", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L249", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_specification_analysis_report", + "target": "agents_skills_speckit_analyze_skill_7_provide_next_actions", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L195", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_specification_analysis_report", + "target": "agents_skills_speckit_analyze_skill_8_offer_remediation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L203", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_analyze_skill_specification_analysis_report", + "target": "agents_skills_speckit_analyze_skill_9_check_for_extension_hooks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-analyze/SKILL.md", + "source_location": "L207", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_checklist_skill", + "target": "agents_skills_speckit_checklist_skill_checklist_purpose_unit_tests_for_english", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-checklist/SKILL.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_checklist_skill", + "target": "agents_skills_speckit_checklist_skill_example_checklist_types_sample_items", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-checklist/SKILL.md", + "source_location": "L277", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_checklist_skill", + "target": "agents_skills_speckit_checklist_skill_anti_examples_what_not_to_do", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-checklist/SKILL.md", + "source_location": "L320", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_checklist_skill", + "target": "agents_skills_speckit_checklist_skill_post_execution_checks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-checklist/SKILL.md", + "source_location": "L351", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_checklist_skill", + "target": "agents_skills_speckit_checklist_skill_user_input", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-checklist/SKILL.md", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_checklist_skill", + "target": "agents_skills_speckit_checklist_skill_pre_execution_checks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-checklist/SKILL.md", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_checklist_skill", + "target": "agents_skills_speckit_checklist_skill_execution_steps", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-checklist/SKILL.md", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_clarify_skill", + "target": "agents_skills_speckit_clarify_skill_user_input", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-clarify/SKILL.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_clarify_skill", + "target": "agents_skills_speckit_clarify_skill_pre_execution_checks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-clarify/SKILL.md", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_clarify_skill", + "target": "agents_skills_speckit_clarify_skill_mandatory_post_execution_hooks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-clarify/SKILL.md", + "source_location": "L240", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_clarify_skill", + "target": "agents_skills_speckit_clarify_skill_completion_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-clarify/SKILL.md", + "source_location": "L275", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_clarify_skill", + "target": "agents_skills_speckit_clarify_skill_done_when", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-clarify/SKILL.md", + "source_location": "L286", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_clarify_skill", + "target": "agents_skills_speckit_clarify_skill_outline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-clarify/SKILL.md", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_constitution_skill", + "target": "agents_skills_speckit_constitution_skill_user_input", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-constitution/SKILL.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_constitution_skill", + "target": "agents_skills_speckit_constitution_skill_post_execution_checks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-constitution/SKILL.md", + "source_location": "L145", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_constitution_skill", + "target": "agents_skills_speckit_constitution_skill_scope_guard", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-constitution/SKILL.md", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_constitution_skill", + "target": "agents_skills_speckit_constitution_skill_pre_execution_checks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-constitution/SKILL.md", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_constitution_skill", + "target": "agents_skills_speckit_constitution_skill_outline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-constitution/SKILL.md", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_converge_skill", + "target": "agents_skills_speckit_converge_skill_user_input", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_converge_skill", + "target": "agents_skills_speckit_converge_skill_convergence_findings", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_converge_skill", + "target": "agents_skills_speckit_converge_skill_pre_execution_checks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_converge_skill", + "target": "agents_skills_speckit_converge_skill_goal", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_converge_skill", + "target": "agents_skills_speckit_converge_skill_operating_constraints", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_converge_skill", + "target": "agents_skills_speckit_converge_skill_execution_steps", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L93", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_converge_skill_convergence_findings", + "target": "agents_skills_speckit_converge_skill_7_append_convergence_tasks_or_report_converged", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L199", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_converge_skill_convergence_findings", + "target": "agents_skills_speckit_converge_skill_8_provide_next_actions_handoff", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L231", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_converge_skill_convergence_findings", + "target": "agents_skills_speckit_converge_skill_9_check_for_extension_hooks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L239", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_converge_skill_execution_steps", + "target": "agents_skills_speckit_converge_skill_2_load_artifacts_progressive_disclosure", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L108", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_converge_skill_execution_steps", + "target": "agents_skills_speckit_converge_skill_3_build_the_intent_inventory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L136", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_converge_skill_execution_steps", + "target": "agents_skills_speckit_converge_skill_4_assess_the_codebase_and_classify_findings", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L148", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_converge_skill_execution_steps", + "target": "agents_skills_speckit_converge_skill_5_assign_severity", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L171", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_converge_skill_execution_steps", + "target": "agents_skills_speckit_converge_skill_6_present_the_in_session_findings_summary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L181", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_converge_skill_execution_steps", + "target": "agents_skills_speckit_converge_skill_1_initialize_convergence_context", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-converge/SKILL.md", + "source_location": "L95", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_implement_skill", + "target": "agents_skills_speckit_implement_skill_user_input", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-implement/SKILL.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_implement_skill", + "target": "agents_skills_speckit_implement_skill_mandatory_post_execution_hooks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-implement/SKILL.md", + "source_location": "L182", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_implement_skill", + "target": "agents_skills_speckit_implement_skill_pre_execution_checks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-implement/SKILL.md", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_implement_skill", + "target": "agents_skills_speckit_implement_skill_completion_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-implement/SKILL.md", + "source_location": "L217", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_implement_skill", + "target": "agents_skills_speckit_implement_skill_done_when", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-implement/SKILL.md", + "source_location": "L221", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_implement_skill", + "target": "agents_skills_speckit_implement_skill_outline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-implement/SKILL.md", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_plan_skill", + "target": "agents_skills_speckit_plan_skill_completion_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L104", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_plan_skill", + "target": "agents_skills_speckit_plan_skill_phases", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L108", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_plan_skill", + "target": "agents_skills_speckit_plan_skill_user_input", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_plan_skill", + "target": "agents_skills_speckit_plan_skill_key_rules", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L157", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_plan_skill", + "target": "agents_skills_speckit_plan_skill_done_when", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L162", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_plan_skill", + "target": "agents_skills_speckit_plan_skill_pre_execution_checks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_plan_skill", + "target": "agents_skills_speckit_plan_skill_outline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_plan_skill", + "target": "agents_skills_speckit_plan_skill_mandatory_post_execution_hooks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_plan_skill_phases", + "target": "agents_skills_speckit_plan_skill_phase_0_outline_research", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L110", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_plan_skill_phases", + "target": "agents_skills_speckit_plan_skill_phase_1_design_contracts", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-plan/SKILL.md", + "source_location": "L133", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_specify_skill", + "target": "agents_skills_speckit_specify_skill_user_input", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_specify_skill", + "target": "agents_skills_speckit_specify_skill_pre_execution_checks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_specify_skill", + "target": "agents_skills_speckit_specify_skill_mandatory_post_execution_hooks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L235", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_specify_skill", + "target": "agents_skills_speckit_specify_skill_completion_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L270", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_specify_skill", + "target": "agents_skills_speckit_specify_skill_quick_guidelines", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L280", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_specify_skill", + "target": "agents_skills_speckit_specify_skill_done_when", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L341", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_specify_skill", + "target": "agents_skills_speckit_specify_skill_outline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_specify_skill_quick_guidelines", + "target": "agents_skills_speckit_specify_skill_section_requirements", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L287", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_specify_skill_quick_guidelines", + "target": "agents_skills_speckit_specify_skill_for_ai_generation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L293", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_specify_skill_quick_guidelines", + "target": "agents_skills_speckit_specify_skill_success_criteria_guidelines", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-specify/SKILL.md", + "source_location": "L318", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_tasks_skill", + "target": "agents_skills_speckit_tasks_skill_user_input", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_tasks_skill", + "target": "agents_skills_speckit_tasks_skill_completion_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_tasks_skill", + "target": "agents_skills_speckit_tasks_skill_task_generation_rules", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_tasks_skill", + "target": "agents_skills_speckit_tasks_skill_pre_execution_checks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_tasks_skill", + "target": "agents_skills_speckit_tasks_skill_done_when", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L210", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_tasks_skill", + "target": "agents_skills_speckit_tasks_skill_outline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_tasks_skill", + "target": "agents_skills_speckit_tasks_skill_mandatory_post_execution_hooks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_tasks_skill_task_generation_rules", + "target": "agents_skills_speckit_tasks_skill_checklist_format_required", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L144", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_tasks_skill_task_generation_rules", + "target": "agents_skills_speckit_tasks_skill_task_organization", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L176", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_tasks_skill_task_generation_rules", + "target": "agents_skills_speckit_tasks_skill_phase_structure", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-tasks/SKILL.md", + "source_location": "L201", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_taskstoissues_skill", + "target": "agents_skills_speckit_taskstoissues_skill_user_input", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-taskstoissues/SKILL.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_taskstoissues_skill", + "target": "agents_skills_speckit_taskstoissues_skill_pre_execution_checks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-taskstoissues/SKILL.md", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_taskstoissues_skill", + "target": "agents_skills_speckit_taskstoissues_skill_outline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-taskstoissues/SKILL.md", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "agents_skills_speckit_taskstoissues_skill", + "target": "agents_skills_speckit_taskstoissues_skill_post_execution_checks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/skills/speckit-taskstoissues/SKILL.md", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "agents_workflows_graphify", + "target": "agents_workflows_graphify_workflow_graphify", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".agents/workflows/graphify.md", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "classify", + "target": "classify_parse_args", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "classify.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "classify", + "target": "classify_emit_error", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "classify.py", + "source_location": "L72", + "weight": 1.0 + }, + { + "source": "classify", + "target": "classify_main", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "classify.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo", + "target": "docs_googlenews_extractor_guia_completo_extrator_de_not\u00edcias_do_google_news_guia_completo_de_funcionamento", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_2_entrada", + "target": "docs_googlenews_extractor_guia_completo_2_1_dto_de_entrada_googlenews_etl_application_dtos_extract_news_dto_py", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_2_entrada", + "target": "docs_googlenews_extractor_guia_completo_2_2_value_object_de_valida\u00e7\u00e3o_googlenews_etl_domain_entities_search_query_py", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_3_3_o_adaptador_concreto_o_cora\u00e7\u00e3o_do_extrator_googlenews_etl_infrastructure_adapters_google_news_extractor_adapter_py", + "target": "docs_googlenews_extractor_guia_completo_3_3_1_inicializa\u00e7\u00e3o_sess\u00e3o_http_com_impersona\u00e7\u00e3o_de_browser", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L190", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_3_3_o_adaptador_concreto_o_cora\u00e7\u00e3o_do_extrator_googlenews_etl_infrastructure_adapters_google_news_extractor_adapter_py", + "target": "docs_googlenews_extractor_guia_completo_3_3_2_mapeamento_idioma_par\u00e2metros_hl_gl_get_hl_gl", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L220", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_3_3_o_adaptador_concreto_o_cora\u00e7\u00e3o_do_extrator_googlenews_etl_infrastructure_adapters_google_news_extractor_adapter_py", + "target": "docs_googlenews_extractor_guia_completo_3_3_3_extra\u00e7\u00e3o_do_rss_o_ponto_fundamental_fetch_rss", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L257", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_3_3_o_adaptador_concreto_o_cora\u00e7\u00e3o_do_extrator_googlenews_etl_infrastructure_adapters_google_news_extractor_adapter_py", + "target": "docs_googlenews_extractor_guia_completo_3_3_4_orquestra\u00e7\u00e3o_com_resolu\u00e7\u00e3o_de_urls_extract", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L313", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_3_processamento_passo_a_passo", + "target": "docs_googlenews_extractor_guia_completo_3_1_o_caso_de_uso_googlenews_etl_application_use_cases_extract_news_use_case_py", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_3_processamento_passo_a_passo", + "target": "docs_googlenews_extractor_guia_completo_3_2_a_porta_googlenews_etl_domain_ports_news_extractor_port_py", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L173", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_3_processamento_passo_a_passo", + "target": "docs_googlenews_extractor_guia_completo_3_3_o_adaptador_concreto_o_cora\u00e7\u00e3o_do_extrator_googlenews_etl_infrastructure_adapters_google_news_extractor_adapter_py", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L188", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_3_processamento_passo_a_passo", + "target": "docs_googlenews_extractor_guia_completo_3_4_resolu\u00e7\u00e3o_de_urls_googlenews_etl_infrastructure_adapters_playwright_url_resolver_adapter_py", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L339", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_3_processamento_passo_a_passo", + "target": "docs_googlenews_extractor_guia_completo_3_5_rate_limiter_googlenews_etl_domain_services_rate_limiter_service_py", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L395", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_5_sa\u00edda", + "target": "docs_googlenews_extractor_guia_completo_5_1_dtos_de_sa\u00edda_googlenews_etl_application_dtos_extract_news_dto_py", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L448", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_5_sa\u00edda", + "target": "docs_googlenews_extractor_guia_completo_5_2_exemplo_de_sa\u00edda_json", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L472", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_7_depend\u00eancias_para_rodar_o_que_n\u00e3o_est\u00e1_nos_4_arquivos_centrais", + "target": "docs_googlenews_extractor_guia_completo_depend\u00eancias_de_bibliotecas_requirements", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L540", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_7_depend\u00eancias_para_rodar_o_que_n\u00e3o_est\u00e1_nos_4_arquivos_centrais", + "target": "docs_googlenews_extractor_guia_completo_comportamentos_observ\u00e1veis_honestidade", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L548", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_extrator_de_not\u00edcias_do_google_news_guia_completo_de_funcionamento", + "target": "docs_googlenews_extractor_guia_completo_3_processamento_passo_a_passo", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L117", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_extrator_de_not\u00edcias_do_google_news_guia_completo_de_funcionamento", + "target": "docs_googlenews_extractor_guia_completo_4_entidade_de_dom\u00ednio_da_not\u00edcia_googlenews_etl_domain_entities_news_article_py", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L414", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_extrator_de_not\u00edcias_do_google_news_guia_completo_de_funcionamento", + "target": "docs_googlenews_extractor_guia_completo_5_sa\u00edda", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L446", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_extrator_de_not\u00edcias_do_google_news_guia_completo_de_funcionamento", + "target": "docs_googlenews_extractor_guia_completo_6_resumo_do_fluxo_completo_entrada_sa\u00edda", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L497", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_extrator_de_not\u00edcias_do_google_news_guia_completo_de_funcionamento", + "target": "docs_googlenews_extractor_guia_completo_7_depend\u00eancias_para_rodar_o_que_n\u00e3o_est\u00e1_nos_4_arquivos_centrais", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L525", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_extrator_de_not\u00edcias_do_google_news_guia_completo_de_funcionamento", + "target": "docs_googlenews_extractor_guia_completo_8_como_chamar_exemplo_de_uso", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L559", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_extrator_de_not\u00edcias_do_google_news_guia_completo_de_funcionamento", + "target": "docs_googlenews_extractor_guia_completo_2_entrada", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "docs_googlenews_extractor_guia_completo_extrator_de_not\u00edcias_do_google_news_guia_completo_de_funcionamento", + "target": "docs_googlenews_extractor_guia_completo_1_vis\u00e3o_geral_arquitetura", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/googlenews_extractor_guia_completo.md", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection", + "target": "docs_prd_deterministic_content_selection_prd_sele\u00e7\u00e3o_determin\u00edstica_da_biblioteca_de_extra\u00e7\u00e3o_de_conte\u00fado", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_3_escopo", + "target": "docs_prd_deterministic_content_selection_3_1_inclu\u00eddo", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_3_escopo", + "target": "docs_prd_deterministic_content_selection_3_2_fora_do_escopo", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_5_entrada", + "target": "docs_prd_deterministic_content_selection_5_1_arquivo", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_5_entrada", + "target": "docs_prd_deterministic_content_selection_5_2_conte\u00fados_comparados", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_5_entrada", + "target": "docs_prd_deterministic_content_selection_5_3_estado_de_um_candidato", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_6_sa\u00edda", + "target": "docs_prd_deterministic_content_selection_6_3_preserva\u00e7\u00e3o_da_entrada", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L100", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_6_sa\u00edda", + "target": "docs_prd_deterministic_content_selection_6_1_arquivo", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_6_sa\u00edda", + "target": "docs_prd_deterministic_content_selection_6_2_altera\u00e7\u00e3o_permitida", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L86", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_7_algoritmo_determin\u00edstico_de_sele\u00e7\u00e3o", + "target": "docs_prd_deterministic_content_selection_7_1_formar_o_conjunto_ativo", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L110", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_7_algoritmo_determin\u00edstico_de_sele\u00e7\u00e3o", + "target": "docs_prd_deterministic_content_selection_7_2_normalizar_os_conte\u00fados", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L120", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_7_algoritmo_determin\u00edstico_de_sele\u00e7\u00e3o", + "target": "docs_prd_deterministic_content_selection_7_3_gerar_shingles", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_7_algoritmo_determin\u00edstico_de_sele\u00e7\u00e3o", + "target": "docs_prd_deterministic_content_selection_7_4_construir_o_consenso", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L144", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_7_algoritmo_determin\u00edstico_de_sele\u00e7\u00e3o", + "target": "docs_prd_deterministic_content_selection_7_5_selecionar_quando_existe_consenso", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_7_algoritmo_determin\u00edstico_de_sele\u00e7\u00e3o", + "target": "docs_prd_deterministic_content_selection_7_6_selecionar_quando_n\u00e3o_existe_consenso", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L178", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_7_algoritmo_determin\u00edstico_de_sele\u00e7\u00e3o", + "target": "docs_prd_deterministic_content_selection_7_7_gravar_a_escolha", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L190", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_prd_sele\u00e7\u00e3o_determin\u00edstica_da_biblioteca_de_extra\u00e7\u00e3o_de_conte\u00fado", + "target": "docs_prd_deterministic_content_selection_7_algoritmo_determin\u00edstico_de_sele\u00e7\u00e3o", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L108", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_prd_sele\u00e7\u00e3o_determin\u00edstica_da_biblioteca_de_extra\u00e7\u00e3o_de_conte\u00fado", + "target": "docs_prd_deterministic_content_selection_2_objetivo", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_prd_sele\u00e7\u00e3o_determin\u00edstica_da_biblioteca_de_extra\u00e7\u00e3o_de_conte\u00fado", + "target": "docs_prd_deterministic_content_selection_3_escopo", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_prd_sele\u00e7\u00e3o_determin\u00edstica_da_biblioteca_de_extra\u00e7\u00e3o_de_conte\u00fado", + "target": "docs_prd_deterministic_content_selection_8_requisitos_funcionais", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L194", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_prd_sele\u00e7\u00e3o_determin\u00edstica_da_biblioteca_de_extra\u00e7\u00e3o_de_conte\u00fado", + "target": "docs_prd_deterministic_content_selection_9_tratamento_de_erros", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L212", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_prd_sele\u00e7\u00e3o_determin\u00edstica_da_biblioteca_de_extra\u00e7\u00e3o_de_conte\u00fado", + "target": "docs_prd_deterministic_content_selection_10_requisitos_n\u00e3o_funcionais", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L227", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_prd_sele\u00e7\u00e3o_determin\u00edstica_da_biblioteca_de_extra\u00e7\u00e3o_de_conte\u00fado", + "target": "docs_prd_deterministic_content_selection_11_crit\u00e9rios_de_aceite", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L237", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_prd_sele\u00e7\u00e3o_determin\u00edstica_da_biblioteca_de_extra\u00e7\u00e3o_de_conte\u00fado", + "target": "docs_prd_deterministic_content_selection_12_casos_obrigat\u00f3rios_de_teste", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L252", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_prd_sele\u00e7\u00e3o_determin\u00edstica_da_biblioteca_de_extra\u00e7\u00e3o_de_conte\u00fado", + "target": "docs_prd_deterministic_content_selection_13_definition_of_done", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L271", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_prd_sele\u00e7\u00e3o_determin\u00edstica_da_biblioteca_de_extra\u00e7\u00e3o_de_conte\u00fado", + "target": "docs_prd_deterministic_content_selection_4_premissas", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_prd_sele\u00e7\u00e3o_determin\u00edstica_da_biblioteca_de_extra\u00e7\u00e3o_de_conte\u00fado", + "target": "docs_prd_deterministic_content_selection_5_entrada", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_prd_sele\u00e7\u00e3o_determin\u00edstica_da_biblioteca_de_extra\u00e7\u00e3o_de_conte\u00fado", + "target": "docs_prd_deterministic_content_selection_1_contexto", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "docs_prd_deterministic_content_selection_prd_sele\u00e7\u00e3o_determin\u00edstica_da_biblioteca_de_extra\u00e7\u00e3o_de_conte\u00fado", + "target": "docs_prd_deterministic_content_selection_6_sa\u00edda", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_deterministic_content_selection.md", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp", + "target": "docs_prd_extrator_artigos_nlp_prd_extrator_e_parser_de_artigos_multimotor_foxcape_trafilatura_newspaper4k_readability", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_1_vis\u00e3o_geral_e_contexto", + "target": "docs_prd_extrator_artigos_nlp_1_1_objetivo_do_produto", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_4_requisitos_funcionais_fr", + "target": "docs_prd_extrator_artigos_nlp_rf06_consolida\u00e7\u00e3o_e_exporta\u00e7\u00e3o_de_resultados", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_4_requisitos_funcionais_fr", + "target": "docs_prd_extrator_artigos_nlp_rf07_interface_de_linha_de_comando_cli_e_logs_em_tempo_real", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L114", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_4_requisitos_funcionais_fr", + "target": "docs_prd_extrator_artigos_nlp_rf08_toler\u00e2ncia_a_falhas_e_resili\u00eancia", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_4_requisitos_funcionais_fr", + "target": "docs_prd_extrator_artigos_nlp_rf01_ingest\u00e3o_de_arquivo_json_de_not\u00edcias", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_4_requisitos_funcionais_fr", + "target": "docs_prd_extrator_artigos_nlp_rf02_navega\u00e7\u00e3o_e_coleta_com_foxcape_obrigat\u00f3rio", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_4_requisitos_funcionais_fr", + "target": "docs_prd_extrator_artigos_nlp_rf03_extra\u00e7\u00e3o_m\u00e1xima_com_trafilatura", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_4_requisitos_funcionais_fr", + "target": "docs_prd_extrator_artigos_nlp_rf04_extra\u00e7\u00e3o_m\u00e1xima_com_newspaper4k", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_4_requisitos_funcionais_fr", + "target": "docs_prd_extrator_artigos_nlp_rf05_extra\u00e7\u00e3o_com_readability_readability_lxml", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L96", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_6_esquema_de_dados_contratos_de_interface", + "target": "docs_prd_extrator_artigos_nlp_6_1_esquema_do_json_de_entrada_input", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L152", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_6_esquema_de_dados_contratos_de_interface", + "target": "docs_prd_extrator_artigos_nlp_6_2_esquema_do_json_consolidado_de_sa\u00edda_output", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L173", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_prd_extrator_e_parser_de_artigos_multimotor_foxcape_trafilatura_newspaper4k_readability", + "target": "docs_prd_extrator_artigos_nlp_1_vis\u00e3o_geral_e_contexto", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_prd_extrator_e_parser_de_artigos_multimotor_foxcape_trafilatura_newspaper4k_readability", + "target": "docs_prd_extrator_artigos_nlp_5_requisitos_n\u00e3o_funcionais_nfr", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_prd_extrator_e_parser_de_artigos_multimotor_foxcape_trafilatura_newspaper4k_readability", + "target": "docs_prd_extrator_artigos_nlp_6_esquema_de_dados_contratos_de_interface", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L150", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_prd_extrator_e_parser_de_artigos_multimotor_foxcape_trafilatura_newspaper4k_readability", + "target": "docs_prd_extrator_artigos_nlp_7_depend\u00eancias_do_projeto", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L230", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_prd_extrator_e_parser_de_artigos_multimotor_foxcape_trafilatura_newspaper4k_readability", + "target": "docs_prd_extrator_artigos_nlp_8_crit\u00e9rios_de_aceite", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L246", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_prd_extrator_e_parser_de_artigos_multimotor_foxcape_trafilatura_newspaper4k_readability", + "target": "docs_prd_extrator_artigos_nlp_2_personas_e_casos_de_uso", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_prd_extrator_e_parser_de_artigos_multimotor_foxcape_trafilatura_newspaper4k_readability", + "target": "docs_prd_extrator_artigos_nlp_3_arquitetura_e_fluxo_do_sistema", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "docs_prd_extrator_artigos_nlp_prd_extrator_e_parser_de_artigos_multimotor_foxcape_trafilatura_newspaper4k_readability", + "target": "docs_prd_extrator_artigos_nlp_4_requisitos_funcionais_fr", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "docs/prd_extrator_artigos_nlp.md", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "examples_content_northvolt_de", + "target": "examples_content_northvolt_de_batteriezellproduktion_f\u00fcr_europ\u00e4ische_elektrofahrzeuge", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "examples/content_northvolt_de.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "examples_content_presal_pt", + "target": "examples_content_presal_pt_petrobras_bate_recorde_hist\u00f3rico_de_produ\u00e7\u00e3o_no_pr\u00e9_sal", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "examples/content_presal_pt.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "examples_content_tangential_es", + "target": "examples_content_tangential_es_reflexiones_sobre_el_debate_pol\u00edtico_y_la_diplomacia_regional", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "examples/content_tangential_es.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "readme", + "target": "readme_textnlpclassifierapp", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "readme_1_classificador_de_conte\u00fado_e_iner\u00eancia_nlp_llm_ecp", + "target": "readme_categorias_de_decis\u00e3o", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "readme_1_classificador_de_conte\u00fado_e_iner\u00eancia_nlp_llm_ecp", + "target": "readme_formato_do_ecp_snapshot_e_markdown", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "readme_1_classificador_de_conte\u00fado_e_iner\u00eancia_nlp_llm_ecp", + "target": "readme_exemplos_de_uso_cli", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L148", + "weight": 1.0 + }, + { + "source": "readme_1_classificador_de_conte\u00fado_e_iner\u00eancia_nlp_llm_ecp", + "target": "readme_o_que_\u00e9_e_como_funciona", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "readme_1_classificador_de_conte\u00fado_e_iner\u00eancia_nlp_llm_ecp", + "target": "readme_arquitetura_de_classifica\u00e7\u00e3o_em_3_tiers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L94", + "weight": 1.0 + }, + { + "source": "readme_2_extrator_de_manchetes_do_google_news", + "target": "readme_o_que_\u00e9_e_como_funciona_165", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L165", + "weight": 1.0 + }, + { + "source": "readme_2_extrator_de_manchetes_do_google_news", + "target": "readme_diferenciais_t\u00e9cnicos", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L169", + "weight": 1.0 + }, + { + "source": "readme_2_extrator_de_manchetes_do_google_news", + "target": "readme_argumentos_e_flags_de_linha_de_comando", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L177", + "weight": 1.0 + }, + { + "source": "readme_2_extrator_de_manchetes_do_google_news", + "target": "readme_exemplos_pr\u00e1ticos_de_uso", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L190", + "weight": 1.0 + }, + { + "source": "readme_3_extrator_e_parser_multimotor_de_artigos", + "target": "readme_vis\u00e3o_geral_e_tr\u00edplice_extra\u00e7\u00e3o", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L207", + "weight": 1.0 + }, + { + "source": "readme_3_extrator_e_parser_multimotor_de_artigos", + "target": "readme_argumentos_e_flags_cli", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L217", + "weight": 1.0 + }, + { + "source": "readme_3_extrator_e_parser_multimotor_de_artigos", + "target": "readme_exemplos_de_uso", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L228", + "weight": 1.0 + }, + { + "source": "readme_4_seletor_determin\u00edstico_de_conte\u00fado_de_artigos", + "target": "readme_vis\u00e3o_geral_e_algoritmo_de_consenso_f_1", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L245", + "weight": 1.0 + }, + { + "source": "readme_4_seletor_determin\u00edstico_de_conte\u00fado_de_artigos", + "target": "readme_pipeline_de_normaliza\u00e7\u00e3o_e_shingles", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L274", + "weight": 1.0 + }, + { + "source": "readme_4_seletor_determin\u00edstico_de_conte\u00fado_de_artigos", + "target": "readme_crit\u00e9rios_de_desempate_t\u00e9cnico_e_resili\u00eancia", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L286", + "weight": 1.0 + }, + { + "source": "readme_4_seletor_determin\u00edstico_de_conte\u00fado_de_artigos", + "target": "readme_argumentos_e_flags_cli_298", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L298", + "weight": 1.0 + }, + { + "source": "readme_4_seletor_determin\u00edstico_de_conte\u00fado_de_artigos", + "target": "readme_exemplos_pr\u00e1ticos_de_uso_307", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L307", + "weight": 1.0 + }, + { + "source": "readme_exemplos_pr\u00e1ticos_de_uso_307", + "target": "readme_1_execu\u00e7\u00e3o_padr\u00e3o_autom\u00e1tica", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L309", + "weight": 1.0 + }, + { + "source": "readme_exemplos_pr\u00e1ticos_de_uso_307", + "target": "readme_2_execu\u00e7\u00e3o_com_modo_verboso", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L315", + "weight": 1.0 + }, + { + "source": "readme_exemplos_pr\u00e1ticos_de_uso_307", + "target": "readme_3_uso_program\u00e1tico_como_m\u00f3dulo_python", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L339", + "weight": 1.0 + }, + { + "source": "readme_formato_do_ecp_snapshot_e_markdown", + "target": "readme_exemplo_de_ecp_snapshot_ecp_sample_json", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L126", + "weight": 1.0 + }, + { + "source": "readme_instala\u00e7\u00e3o_e_setup", + "target": "readme_1_clonar_o_reposit\u00f3rio_e_criar_ambiente_virtual", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L57", + "weight": 1.0 + }, + { + "source": "readme_instala\u00e7\u00e3o_e_setup", + "target": "readme_2_instalar_depend\u00eancias", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L70", + "weight": 1.0 + }, + { + "source": "readme_instala\u00e7\u00e3o_e_setup", + "target": "readme_3_baixar_bin\u00e1rios_do_navegador_stealth_camoufox", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "readme_textnlpclassifierapp", + "target": "readme_tabela_de_conte\u00fados", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "readme_textnlpclassifierapp", + "target": "readme_2_extrator_de_manchetes_do_google_news", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L163", + "weight": 1.0 + }, + { + "source": "readme_textnlpclassifierapp", + "target": "readme_3_extrator_e_parser_multimotor_de_artigos", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L205", + "weight": 1.0 + }, + { + "source": "readme_textnlpclassifierapp", + "target": "readme_4_seletor_determin\u00edstico_de_conte\u00fado_de_artigos", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L243", + "weight": 1.0 + }, + { + "source": "readme_textnlpclassifierapp", + "target": "readme_estrutura_do_projeto", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L356", + "weight": 1.0 + }, + { + "source": "readme_textnlpclassifierapp", + "target": "readme_testes_e_qualidade_de_c\u00f3digo", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L388", + "weight": 1.0 + }, + { + "source": "readme_textnlpclassifierapp", + "target": "readme_licen\u00e7a", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L415", + "weight": 1.0 + }, + { + "source": "readme_textnlpclassifierapp", + "target": "readme_vis\u00e3o_geral", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "readme_textnlpclassifierapp", + "target": "readme_instala\u00e7\u00e3o_e_setup", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "readme_textnlpclassifierapp", + "target": "readme_1_classificador_de_conte\u00fado_e_iner\u00eancia_nlp_llm_ecp", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "README.md", + "source_location": "L86", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_newspaperdata", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L102", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_readabilitydata", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L152", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_extractedarticle", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L174", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_extractionbatchreport", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L202", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_trafilaturaextractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L228", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_newspaperextractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L332", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_inputarticle", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_readabilityextractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L395", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_extract_all_engines", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L427", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_articlecrawler", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L482", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_log_info", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L533", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_trafilaturadata", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_load_search_json", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L540", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_save_extracted_json", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L568", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_process_batch", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L575", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_parse_arguments", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L688", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents", + "target": "scripts_extract_article_contents_main", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L742", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news", + "target": "scripts_extract_google_news_get_hl_gl_ceid", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L107", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news", + "target": "scripts_extract_google_news_normalize_text_for_comparison", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L151", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news", + "target": "scripts_extract_google_news_parse_google_news_rss", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L156", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news", + "target": "scripts_extract_google_news_resolve_article_url", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L207", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news", + "target": "scripts_extract_google_news_resolve_articles_urls", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L220", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news", + "target": "scripts_extract_google_news_fetch_rss_content", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L253", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news", + "target": "scripts_extract_google_news_extract_google_news", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L297", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news", + "target": "scripts_extract_google_news_searchquery", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news", + "target": "scripts_extract_google_news_build_parser", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L336", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news", + "target": "scripts_extract_google_news_main", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L403", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news", + "target": "scripts_extract_google_news_newsarticle", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news", + "target": "scripts_extract_google_news_extractionresult", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_normalize_text", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L106", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_generate_shingles", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L147", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_extract_candidate_data", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L167", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_form_active_set", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L211", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_calculate_consensus_metrics", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L234", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_break_priority_tie", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L280", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_select_with_consensus", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L289", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_select_without_consensus", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L322", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_extractorname", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L373", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_candidatestatus", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_atomic_save_json", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L430", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_process_batch", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L452", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_parse_args", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L523", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_main", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L544", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_extractorcandidate", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L62", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_articleselectionresult", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor", + "target": "scripts_select_article_extractor_batchprocessingresult", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L90", + "weight": 1.0 + }, + { + "source": "specify_memory_constitution", + "target": "specify_memory_constitution_project_name_constitution", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/memory/constitution.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specify_memory_constitution_core_principles", + "target": "specify_memory_constitution_principle_2_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/memory/constitution.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "specify_memory_constitution_core_principles", + "target": "specify_memory_constitution_principle_3_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/memory/constitution.md", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "specify_memory_constitution_core_principles", + "target": "specify_memory_constitution_principle_4_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/memory/constitution.md", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "specify_memory_constitution_core_principles", + "target": "specify_memory_constitution_principle_5_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/memory/constitution.md", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "specify_memory_constitution_core_principles", + "target": "specify_memory_constitution_principle_1_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/memory/constitution.md", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "specify_memory_constitution_project_name_constitution", + "target": "specify_memory_constitution_section_2_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/memory/constitution.md", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "specify_memory_constitution_project_name_constitution", + "target": "specify_memory_constitution_section_3_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/memory/constitution.md", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "specify_memory_constitution_project_name_constitution", + "target": "specify_memory_constitution_core_principles", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/memory/constitution.md", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "specify_memory_constitution_project_name_constitution", + "target": "specify_memory_constitution_governance", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/memory/constitution.md", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common", + "target": "specify_scripts_powershell_common_save_featurejson", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L114", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common", + "target": "specify_scripts_powershell_common_get_featurepathsenv", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L160", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common", + "target": "specify_scripts_powershell_common_test_fileexists", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L240", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common", + "target": "specify_scripts_powershell_common_test_dirhasfiles", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L251", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common", + "target": "specify_scripts_powershell_common_get_invokeseparator", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L268", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common", + "target": "specify_scripts_powershell_common_format_speckitcommand", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L302", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common", + "target": "specify_scripts_powershell_common_get_python3command", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L322", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common", + "target": "specify_scripts_powershell_common_get_normalizedpriority", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L335", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common", + "target": "specify_scripts_powershell_common_get_sortedextensionids", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L352", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common", + "target": "specify_scripts_powershell_common_resolve_specifyinitdir", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common", + "target": "specify_scripts_powershell_common_resolve_template", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L416", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common", + "target": "specify_scripts_powershell_common_resolve_templatecontent", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L515", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common", + "target": "specify_scripts_powershell_common_find_specifyroot", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common", + "target": "specify_scripts_powershell_common_get_reporoot", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L79", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_common", + "target": "specify_scripts_powershell_common_get_currentbranch", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/common.ps1", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_create_new_feature", + "target": "specify_scripts_powershell_create_new_feature_get_branchname", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/create-new-feature.ps1", + "source_location": "L123", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_create_new_feature", + "target": "specify_scripts_powershell_create_new_feature_get_highestnumberfromspecs", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/create-new-feature.ps1", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_create_new_feature", + "target": "specify_scripts_powershell_create_new_feature_test_specprefixinuse", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/create-new-feature.ps1", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_create_new_feature", + "target": "specify_scripts_powershell_create_new_feature_convertto_cleanbranchname", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/create-new-feature.ps1", + "source_location": "L86", + "weight": 1.0 + }, + { + "source": "specify_scripts_powershell_create_new_feature", + "target": "specify_scripts_powershell_create_new_feature_get_fittedbranchname", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/scripts/powershell/create-new-feature.ps1", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "specify_templates_checklist_template", + "target": "specify_templates_checklist_template_checklist_type_checklist_feature_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/checklist-template.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specify_templates_checklist_template_checklist_type_checklist_feature_name", + "target": "specify_templates_checklist_template_category_1", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/checklist-template.md", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "specify_templates_checklist_template_checklist_type_checklist_feature_name", + "target": "specify_templates_checklist_template_category_2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/checklist-template.md", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "specify_templates_checklist_template_checklist_type_checklist_feature_name", + "target": "specify_templates_checklist_template_notes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/checklist-template.md", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "specify_templates_constitution_template", + "target": "specify_templates_constitution_template_project_name_constitution", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specify_templates_constitution_template_core_principles", + "target": "specify_templates_constitution_template_principle_2_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "specify_templates_constitution_template_core_principles", + "target": "specify_templates_constitution_template_principle_3_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "specify_templates_constitution_template_core_principles", + "target": "specify_templates_constitution_template_principle_4_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "specify_templates_constitution_template_core_principles", + "target": "specify_templates_constitution_template_principle_5_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "specify_templates_constitution_template_core_principles", + "target": "specify_templates_constitution_template_principle_1_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "specify_templates_constitution_template_project_name_constitution", + "target": "specify_templates_constitution_template_section_2_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "specify_templates_constitution_template_project_name_constitution", + "target": "specify_templates_constitution_template_section_3_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "specify_templates_constitution_template_project_name_constitution", + "target": "specify_templates_constitution_template_core_principles", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "specify_templates_constitution_template_project_name_constitution", + "target": "specify_templates_constitution_template_governance", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/constitution-template.md", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "specify_templates_plan_template", + "target": "specify_templates_plan_template_implementation_plan_feature", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/plan-template.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specify_templates_plan_template_implementation_plan_feature", + "target": "specify_templates_plan_template_complexity_tracking", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/plan-template.md", + "source_location": "L106", + "weight": 1.0 + }, + { + "source": "specify_templates_plan_template_implementation_plan_feature", + "target": "specify_templates_plan_template_technical_context", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/plan-template.md", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "specify_templates_plan_template_implementation_plan_feature", + "target": "specify_templates_plan_template_constitution_check", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/plan-template.md", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "specify_templates_plan_template_implementation_plan_feature", + "target": "specify_templates_plan_template_project_structure", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/plan-template.md", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "specify_templates_plan_template_implementation_plan_feature", + "target": "specify_templates_plan_template_summary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/plan-template.md", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "specify_templates_plan_template_project_structure", + "target": "specify_templates_plan_template_documentation_this_feature", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/plan-template.md", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "specify_templates_plan_template_project_structure", + "target": "specify_templates_plan_template_source_code_repository_root", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/plan-template.md", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "specify_templates_spec_template", + "target": "specify_templates_spec_template_feature_specification_feature_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/spec-template.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specify_templates_spec_template_feature_specification_feature_name", + "target": "specify_templates_spec_template_success_criteria_mandatory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/spec-template.md", + "source_location": "L106", + "weight": 1.0 + }, + { + "source": "specify_templates_spec_template_feature_specification_feature_name", + "target": "specify_templates_spec_template_user_scenarios_testing_mandatory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/spec-template.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "specify_templates_spec_template_feature_specification_feature_name", + "target": "specify_templates_spec_template_assumptions", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/spec-template.md", + "source_location": "L120", + "weight": 1.0 + }, + { + "source": "specify_templates_spec_template_feature_specification_feature_name", + "target": "specify_templates_spec_template_requirements_mandatory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/spec-template.md", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "specify_templates_spec_template_requirements_mandatory", + "target": "specify_templates_spec_template_key_entities_include_if_feature_involves_data", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/spec-template.md", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "specify_templates_spec_template_requirements_mandatory", + "target": "specify_templates_spec_template_functional_requirements", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/spec-template.md", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "specify_templates_spec_template_success_criteria_mandatory", + "target": "specify_templates_spec_template_measurable_outcomes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/spec-template.md", + "source_location": "L113", + "weight": 1.0 + }, + { + "source": "specify_templates_spec_template_user_scenarios_testing_mandatory", + "target": "specify_templates_spec_template_user_story_1_brief_title_priority_p1", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/spec-template.md", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "specify_templates_spec_template_user_scenarios_testing_mandatory", + "target": "specify_templates_spec_template_user_story_2_brief_title_priority_p2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/spec-template.md", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "specify_templates_spec_template_user_scenarios_testing_mandatory", + "target": "specify_templates_spec_template_user_story_3_brief_title_priority_p3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/spec-template.md", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "specify_templates_spec_template_user_scenarios_testing_mandatory", + "target": "specify_templates_spec_template_edge_cases", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/spec-template.md", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template", + "target": "specify_templates_tasks_template_tasks_feature_name", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_dependencies_execution_order", + "target": "specify_templates_tasks_template_phase_dependencies", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L165", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_dependencies_execution_order", + "target": "specify_templates_tasks_template_user_story_dependencies", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L174", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_dependencies_execution_order", + "target": "specify_templates_tasks_template_within_each_user_story", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L180", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_dependencies_execution_order", + "target": "specify_templates_tasks_template_parallel_opportunities", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L188", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_implementation_strategy", + "target": "specify_templates_tasks_template_mvp_first_user_story_1_only", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L215", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_implementation_strategy", + "target": "specify_templates_tasks_template_incremental_delivery", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L223", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_implementation_strategy", + "target": "specify_templates_tasks_template_parallel_team_strategy", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L231", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_phase_3_user_story_1_title_priority_p1_mvp", + "target": "specify_templates_tasks_template_tests_for_user_story_1_optional_only_if_tests_requested", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L83", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_phase_3_user_story_1_title_priority_p1_mvp", + "target": "specify_templates_tasks_template_implementation_for_user_story_1", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L90", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_phase_4_user_story_2_title_priority_p2", + "target": "specify_templates_tasks_template_tests_for_user_story_2_optional_only_if_tests_requested", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_phase_4_user_story_2_title_priority_p2", + "target": "specify_templates_tasks_template_implementation_for_user_story_2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L114", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_phase_5_user_story_3_title_priority_p3", + "target": "specify_templates_tasks_template_tests_for_user_story_3_optional_only_if_tests_requested", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L131", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_phase_5_user_story_3_title_priority_p3", + "target": "specify_templates_tasks_template_implementation_for_user_story_3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L136", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_tasks_feature_name", + "target": "specify_templates_tasks_template_phase_4_user_story_2_title_priority_p2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_tasks_feature_name", + "target": "specify_templates_tasks_template_phase_5_user_story_3_title_priority_p3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L125", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_tasks_feature_name", + "target": "specify_templates_tasks_template_phase_n_polish_cross_cutting_concerns", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L150", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_tasks_feature_name", + "target": "specify_templates_tasks_template_format_id_p_story_description", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_tasks_feature_name", + "target": "specify_templates_tasks_template_dependencies_execution_order", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L163", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_tasks_feature_name", + "target": "specify_templates_tasks_template_parallel_example_user_story_1", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L199", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_tasks_feature_name", + "target": "specify_templates_tasks_template_implementation_strategy", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L213", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_tasks_feature_name", + "target": "specify_templates_tasks_template_path_conventions", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_tasks_feature_name", + "target": "specify_templates_tasks_template_notes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L244", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_tasks_feature_name", + "target": "specify_templates_tasks_template_phase_1_setup_shared_infrastructure", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_tasks_feature_name", + "target": "specify_templates_tasks_template_phase_2_foundational_blocking_prerequisites", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "specify_templates_tasks_template_tasks_feature_name", + "target": "specify_templates_tasks_template_phase_3_user_story_1_title_priority_p1_mvp", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".specify/templates/tasks-template.md", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_checklists_poc_readiness", + "target": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_poc_readiness_requirements_quality_checklist_multilingual_nlp_entity_inherence_classifier", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_poc_readiness_requirements_quality_checklist_multilingual_nlp_entity_inherence_classifier", + "target": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_1_requirement_completeness_scope_boundaries", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_poc_readiness_requirements_quality_checklist_multilingual_nlp_entity_inherence_classifier", + "target": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_2_requirement_clarity_decision_semantics", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_poc_readiness_requirements_quality_checklist_multilingual_nlp_entity_inherence_classifier", + "target": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_3_requirement_consistency_alignment", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_poc_readiness_requirements_quality_checklist_multilingual_nlp_entity_inherence_classifier", + "target": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_4_acceptance_criteria_measurability", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_poc_readiness_requirements_quality_checklist_multilingual_nlp_entity_inherence_classifier", + "target": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_5_scenario_edge_case_coverage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_poc_readiness_requirements_quality_checklist_multilingual_nlp_entity_inherence_classifier", + "target": "specs_001_multilingual_entity_classifier_checklists_poc_readiness_notes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_checklists_requirements", + "target": "specs_001_multilingual_entity_classifier_checklists_requirements_specification_quality_checklist_multilingual_nlp_entity_inherence_classifier", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/checklists/requirements.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_checklists_requirements_specification_quality_checklist_multilingual_nlp_entity_inherence_classifier", + "target": "specs_001_multilingual_entity_classifier_checklists_requirements_requirement_completeness", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/checklists/requirements.md", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_checklists_requirements_specification_quality_checklist_multilingual_nlp_entity_inherence_classifier", + "target": "specs_001_multilingual_entity_classifier_checklists_requirements_feature_readiness", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/checklists/requirements.md", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_checklists_requirements_specification_quality_checklist_multilingual_nlp_entity_inherence_classifier", + "target": "specs_001_multilingual_entity_classifier_checklists_requirements_notes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/checklists/requirements.md", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_checklists_requirements_specification_quality_checklist_multilingual_nlp_entity_inherence_classifier", + "target": "specs_001_multilingual_entity_classifier_checklists_requirements_content_quality", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/checklists/requirements.md", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_contracts_cli_contract", + "target": "specs_001_multilingual_entity_classifier_contracts_cli_contract_cli_contract_interface_specification_poc", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/contracts/cli-contract.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_contracts_cli_contract_1_command_line_interface", + "target": "specs_001_multilingual_entity_classifier_contracts_cli_contract_1_1_arguments_options", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/contracts/cli-contract.md", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_contracts_cli_contract_2_standard_streams_exit_codes", + "target": "specs_001_multilingual_entity_classifier_contracts_cli_contract_2_1_exit_codes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/contracts/cli-contract.md", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_contracts_cli_contract_2_standard_streams_exit_codes", + "target": "specs_001_multilingual_entity_classifier_contracts_cli_contract_2_2_standard_output_stdout_standard_error_stderr", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/contracts/cli-contract.md", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_contracts_cli_contract_cli_contract_interface_specification_poc", + "target": "specs_001_multilingual_entity_classifier_contracts_cli_contract_2_standard_streams_exit_codes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/contracts/cli-contract.md", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_contracts_cli_contract_cli_contract_interface_specification_poc", + "target": "specs_001_multilingual_entity_classifier_contracts_cli_contract_1_command_line_interface", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/contracts/cli-contract.md", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_data_model", + "target": "specs_001_multilingual_entity_classifier_data_model_data_models_schemas_poc", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/data-model.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_data_model_1_input_schemas", + "target": "specs_001_multilingual_entity_classifier_data_model_1_1_ecp_snapshot_schema_snapshot_json", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/data-model.md", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_data_model_1_input_schemas", + "target": "specs_001_multilingual_entity_classifier_data_model_1_2_content_item_schema_content_md", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/data-model.md", + "source_location": "L79", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_data_model_2_output_schemas", + "target": "specs_001_multilingual_entity_classifier_data_model_2_2_error_result_schema", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/data-model.md", + "source_location": "L174", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_data_model_2_output_schemas", + "target": "specs_001_multilingual_entity_classifier_data_model_2_1_classification_success_result_schema_result_json", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/data-model.md", + "source_location": "L90", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_data_model_data_models_schemas_poc", + "target": "specs_001_multilingual_entity_classifier_data_model_1_input_schemas", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/data-model.md", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_data_model_data_models_schemas_poc", + "target": "specs_001_multilingual_entity_classifier_data_model_2_output_schemas", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/data-model.md", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_plan", + "target": "specs_001_multilingual_entity_classifier_plan_implementation_plan_multilingual_nlp_entity_inherence_classifier_poc", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_plan_implementation_plan_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_plan_complexity_tracking", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L120", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_plan_implementation_plan_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_plan_technical_context", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_plan_implementation_plan_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_plan_constitution_check", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_plan_implementation_plan_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_plan_project_structure", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_plan_implementation_plan_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_plan_summary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_plan_project_structure", + "target": "specs_001_multilingual_entity_classifier_plan_documentation_this_feature", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_plan_project_structure", + "target": "specs_001_multilingual_entity_classifier_plan_source_code_repository_root", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_quickstart", + "target": "specs_001_multilingual_entity_classifier_quickstart_quickstart_validation_guide_poc", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/quickstart.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_quickstart_2_basic_cli_usage_examples", + "target": "specs_001_multilingual_entity_classifier_quickstart_2_1_direct_inherence_portuguese", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/quickstart.md", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_quickstart_2_basic_cli_usage_examples", + "target": "specs_001_multilingual_entity_classifier_quickstart_2_2_contextual_inherence_via_graph_snapshot_german", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/quickstart.md", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_quickstart_2_basic_cli_usage_examples", + "target": "specs_001_multilingual_entity_classifier_quickstart_2_3_tangential_mention_spanish", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/quickstart.md", + "source_location": "L72", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_quickstart_quickstart_validation_guide_poc", + "target": "specs_001_multilingual_entity_classifier_quickstart_2_basic_cli_usage_examples", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/quickstart.md", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_quickstart_quickstart_validation_guide_poc", + "target": "specs_001_multilingual_entity_classifier_quickstart_1_prerequisites_installation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/quickstart.md", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_quickstart_quickstart_validation_guide_poc", + "target": "specs_001_multilingual_entity_classifier_quickstart_3_running_the_controlled_24_case_benchmark", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/quickstart.md", + "source_location": "L95", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_research", + "target": "specs_001_multilingual_entity_classifier_research_technical_research_architecture_decisions_poc", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_research_1_technical_decisions_tradeoffs", + "target": "specs_001_multilingual_entity_classifier_research_decision_1_execution_engine_cli_architecture", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_research_1_technical_decisions_tradeoffs", + "target": "specs_001_multilingual_entity_classifier_research_decision_2_multilingual_language_detection_normalization_tier_1_core", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_research_1_technical_decisions_tradeoffs", + "target": "specs_001_multilingual_entity_classifier_research_decision_3_materialized_ecp_snapshot_contract_matching_logic", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_research_1_technical_decisions_tradeoffs", + "target": "specs_001_multilingual_entity_classifier_research_decision_4_tier_2_embeddings_tier_3_llm_optional_adapters", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_research_1_technical_decisions_tradeoffs", + "target": "specs_001_multilingual_entity_classifier_research_decision_5_controlled_24_case_poc_benchmark_suite", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_research_technical_research_architecture_decisions_poc", + "target": "specs_001_multilingual_entity_classifier_research_2_standardized_error_handling_strategy", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_research_technical_research_architecture_decisions_poc", + "target": "specs_001_multilingual_entity_classifier_research_1_technical_decisions_tradeoffs", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/research.md", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_spec", + "target": "specs_001_multilingual_entity_classifier_spec_feature_specification_multilingual_nlp_entity_inherence_classifier_poc", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_spec_assumptions_scope", + "target": "specs_001_multilingual_entity_classifier_spec_assumptions", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L127", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_spec_assumptions_scope", + "target": "specs_001_multilingual_entity_classifier_spec_explicit_out_of_scope_poc", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_spec_clarifications", + "target": "specs_001_multilingual_entity_classifier_spec_session_2026_08_19", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_spec_feature_specification_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_spec_success_criteria_mandatory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L114", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_spec_feature_specification_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_spec_assumptions_scope", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L125", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_spec_feature_specification_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_spec_clarifications", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_spec_feature_specification_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_spec_user_scenarios_testing_mandatory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_spec_feature_specification_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_spec_requirements_mandatory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_spec_requirements_mandatory", + "target": "specs_001_multilingual_entity_classifier_spec_key_entities_data_models_domain_entities", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_spec_requirements_mandatory", + "target": "specs_001_multilingual_entity_classifier_spec_functional_requirements", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_spec_success_criteria_mandatory", + "target": "specs_001_multilingual_entity_classifier_spec_measurable_outcomes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_spec_user_scenarios_testing_mandatory", + "target": "specs_001_multilingual_entity_classifier_spec_user_story_1_classify_content_inherence_via_cli_for_an_ecp_snapshot_priority_p1", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_spec_user_scenarios_testing_mandatory", + "target": "specs_001_multilingual_entity_classifier_spec_user_story_2_multilingual_language_support_edge_validation_priority_p2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/spec.md", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_tasks", + "target": "specs_001_multilingual_entity_classifier_tasks_tasks_multilingual_nlp_entity_inherence_classifier_poc", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_tasks_dependencies_execution_order", + "target": "specs_001_multilingual_entity_classifier_tasks_implementation_strategy", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_tasks_phase_3_user_story_1_core_tier_1_deterministic_classification_cli_priority_p1_mvp", + "target": "specs_001_multilingual_entity_classifier_tasks_tests_for_user_story_1", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_tasks_phase_3_user_story_1_core_tier_1_deterministic_classification_cli_priority_p1_mvp", + "target": "specs_001_multilingual_entity_classifier_tasks_implementation_for_user_story_1", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_tasks_phase_4_user_story_2_multilingual_24_case_controlled_benchmark_suite_priority_p2", + "target": "specs_001_multilingual_entity_classifier_tasks_implementation_for_user_story_2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_tasks_phase_5_optional_adapters_tier_2_embeddings_tier_3_llm_priority_p3", + "target": "specs_001_multilingual_entity_classifier_tasks_implementation_for_user_story_3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_tasks_tasks_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_tasks_phase_2_foundational_blocking_prerequisites", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_tasks_tasks_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_tasks_phase_3_user_story_1_core_tier_1_deterministic_classification_cli_priority_p1_mvp", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_tasks_tasks_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_tasks_phase_4_user_story_2_multilingual_24_case_controlled_benchmark_suite_priority_p2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L52", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_tasks_tasks_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_tasks_phase_1_setup_shared_infrastructure", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_tasks_tasks_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_tasks_phase_5_optional_adapters_tier_2_embeddings_tier_3_llm_priority_p3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_tasks_tasks_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_tasks_phase_6_polish_validation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L87", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_tasks_tasks_multilingual_nlp_entity_inherence_classifier_poc", + "target": "specs_001_multilingual_entity_classifier_tasks_dependencies_execution_order", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_readiness", + "target": "specs_002_google_news_extractor_checklists_readiness_general_readiness_checklist_google_news_headlines_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_readiness_general_readiness_checklist_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_checklists_readiness_cli_interface_parameter_contracts", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_readiness_general_readiness_checklist_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_checklists_readiness_scraping_engine_feed_mapping", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_readiness_general_readiness_checklist_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_checklists_readiness_data_sanitization_article_extraction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_readiness_general_readiness_checklist_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_checklists_readiness_error_handling_edge_cases", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_readiness_general_readiness_checklist_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_checklists_readiness_non_functional_operational_readiness", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_readiness_general_readiness_checklist_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_checklists_readiness_notes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_requirements", + "target": "specs_002_google_news_extractor_checklists_requirements_specification_quality_checklist_google_news_headlines_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/requirements.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_requirements_specification_quality_checklist_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_checklists_requirements_requirement_completeness", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/requirements.md", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_requirements_specification_quality_checklist_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_checklists_requirements_feature_readiness", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/requirements.md", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_requirements_specification_quality_checklist_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_checklists_requirements_notes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/requirements.md", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_requirements_specification_quality_checklist_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_checklists_requirements_content_quality", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/requirements.md", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_contracts_cli_contract", + "target": "specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", + "target": "specs_002_google_news_extractor_contracts_cli_contract_argumentos_de_linha_de_comando", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", + "target": "specs_002_google_news_extractor_contracts_cli_contract_sintaxe", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_contracts_cli_contract_2_c\u00f3digos_de_sa\u00edda_exit_codes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_contracts_cli_contract_1_comando_e_argumentos", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_contracts_cli_contract_cli_contract_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_contracts_cli_contract_3_protocolo_de_streams_stdout_stderr", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/contracts/cli_contract.md", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_data_model", + "target": "specs_002_google_news_extractor_data_model_data_model_google_news_headlines_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/data-model.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_data_model_1_entidades_de_dom\u00ednio_dtos", + "target": "specs_002_google_news_extractor_data_model_1_2_newsarticle_item_de_not\u00edcia", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/data-model.md", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_data_model_1_entidades_de_dom\u00ednio_dtos", + "target": "specs_002_google_news_extractor_data_model_1_3_extractionresult_sa\u00edda_estruturada_consolidada", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/data-model.md", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_data_model_1_entidades_de_dom\u00ednio_dtos", + "target": "specs_002_google_news_extractor_data_model_1_1_searchquery_par\u00e2metros_da_busca", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/data-model.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_data_model_data_model_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_data_model_1_entidades_de_dom\u00ednio_dtos", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/data-model.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_data_model_data_model_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_data_model_2_esquema_json_de_sa\u00edda", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/data-model.md", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_plan", + "target": "specs_002_google_news_extractor_plan_implementation_plan_google_news_headlines_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_plan_implementation_plan_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_plan_technical_context", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_plan_implementation_plan_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_plan_architecture_pipeline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_plan_implementation_plan_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_plan_project_structure", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_plan_implementation_plan_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_plan_summary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_plan_project_structure", + "target": "specs_002_google_news_extractor_plan_documentation_this_feature", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_plan_project_structure", + "target": "specs_002_google_news_extractor_plan_source_code", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_quickstart", + "target": "specs_002_google_news_extractor_quickstart_quickstart_google_news_headlines_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_quickstart_2_cen\u00e1rios_pr\u00e1ticos_de_uso", + "target": "specs_002_google_news_extractor_quickstart_cen\u00e1rio_1_river_plate_argentina_espanhol_2_p\u00e1ginas_salvar_em_arquivo", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_quickstart_2_cen\u00e1rios_pr\u00e1ticos_de_uso", + "target": "specs_002_google_news_extractor_quickstart_cen\u00e1rio_2_cruzeiro_brasil_portugu\u00eas_formatado_no_terminal", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_quickstart_2_cen\u00e1rios_pr\u00e1ticos_de_uso", + "target": "specs_002_google_news_extractor_quickstart_cen\u00e1rio_3_f\u00f3rmula_1_reino_unido_ingl\u00eas", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_quickstart_2_cen\u00e1rios_pr\u00e1ticos_de_uso", + "target": "specs_002_google_news_extractor_quickstart_cen\u00e1rio_4_integra\u00e7\u00e3o_em_pipeline_com_jq_modo_silencioso", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_quickstart_2_cen\u00e1rios_pr\u00e1ticos_de_uso", + "target": "specs_002_google_news_extractor_quickstart_cen\u00e1rio_5_extra\u00e7\u00e3o_r\u00e1pida_com_links_brutos_sem_resolu\u00e7\u00e3o_de_urls", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L62", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_quickstart_quickstart_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_quickstart_2_cen\u00e1rios_pr\u00e1ticos_de_uso", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_quickstart_quickstart_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_quickstart_3_valida\u00e7\u00e3o_dos_testes_automatizados_e_linter", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_quickstart_quickstart_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_quickstart_1_pr\u00e9_requisitos_e_instala\u00e7\u00e3o", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/quickstart.md", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_research", + "target": "specs_002_google_news_extractor_research_research_google_news_headlines_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/research.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_research_1_technical_decisions_tradeoffs", + "target": "specs_002_google_news_extractor_research_decision_2_endpoint_rss_do_google_news_vs_scraping_de_dom", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/research.md", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_research_1_technical_decisions_tradeoffs", + "target": "specs_002_google_news_extractor_research_decision_3_mapeamento_de_idioma_e_locale_hl_gl_ceid", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/research.md", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_research_1_technical_decisions_tradeoffs", + "target": "specs_002_google_news_extractor_research_decision_4_resolu\u00e7\u00e3o_de_urls_do_google_news_via_googlenewsdecoder", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/research.md", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_research_1_technical_decisions_tradeoffs", + "target": "specs_002_google_news_extractor_research_decision_5_logging_em_tempo_real_no_stderr_e_segrega\u00e7\u00e3o_de_streams", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/research.md", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_research_1_technical_decisions_tradeoffs", + "target": "specs_002_google_news_extractor_research_decision_1_motor_de_requisi\u00e7\u00e3o_e_scraping_com_foxcape_em_modo_headless", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/research.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_research_research_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_research_1_technical_decisions_tradeoffs", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/research.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_spec", + "target": "specs_002_google_news_extractor_spec_feature_specification_google_news_headlines_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_spec_clarifications", + "target": "specs_002_google_news_extractor_spec_session_2026_08_20", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_spec_feature_specification_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_spec_clarifications", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_spec_feature_specification_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_spec_user_scenarios_testing_mandatory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_spec_feature_specification_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_spec_edge_cases", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_spec_feature_specification_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_spec_requirements_mandatory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_spec_feature_specification_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_spec_success_criteria_mandatory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_spec_requirements_mandatory", + "target": "specs_002_google_news_extractor_spec_functional_requirements", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_spec_user_scenarios_testing_mandatory", + "target": "specs_002_google_news_extractor_spec_user_story_1_extra\u00e7\u00e3o_b\u00e1sica_de_not\u00edcias_com_urls_finais_resolvidas_priority_p1_mvp", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_spec_user_scenarios_testing_mandatory", + "target": "specs_002_google_news_extractor_spec_user_story_2_filtragem_regional_e_edi\u00e7\u00e3o_geogr\u00e1fica_priority_p2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_spec_user_scenarios_testing_mandatory", + "target": "specs_002_google_news_extractor_spec_user_story_3_pagina\u00e7\u00e3o_exporta\u00e7\u00e3o_em_arquivo_e_feedback_visual_priority_p3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/spec.md", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks", + "target": "specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_tasks_phase_2_foundational_blocking_prerequisites", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_tasks_phase_3_user_story_1_extra\u00e7\u00e3o_b\u00e1sica_de_not\u00edcias_por_assunto_e_idioma_priority_p1_mvp", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_tasks_phase_4_user_story_2_filtragem_regional_e_edi\u00e7\u00e3o_geogr\u00e1fica_priority_p2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_tasks_phase_5_user_story_3_pagina\u00e7\u00e3o_e_controle_de_volume_de_resultados_priority_p3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_tasks_phase_6_url_resolution_headless_configuration_real_time_logging", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_tasks_phase_7_verification_e2e_testing", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks_implementation_tasks_google_news_headlines_extractor", + "target": "specs_002_google_news_extractor_tasks_phase_1_setup_shared_infrastructure", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks_phase_3_user_story_1_extra\u00e7\u00e3o_b\u00e1sica_de_not\u00edcias_por_assunto_e_idioma_priority_p1_mvp", + "target": "specs_002_google_news_extractor_tasks_tests_for_user_story_1", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks_phase_3_user_story_1_extra\u00e7\u00e3o_b\u00e1sica_de_not\u00edcias_por_assunto_e_idioma_priority_p1_mvp", + "target": "specs_002_google_news_extractor_tasks_implementation_for_user_story_1", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks_phase_4_user_story_2_filtragem_regional_e_edi\u00e7\u00e3o_geogr\u00e1fica_priority_p2", + "target": "specs_002_google_news_extractor_tasks_tests_for_user_story_2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks_phase_4_user_story_2_filtragem_regional_e_edi\u00e7\u00e3o_geogr\u00e1fica_priority_p2", + "target": "specs_002_google_news_extractor_tasks_implementation_for_user_story_2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks_phase_5_user_story_3_pagina\u00e7\u00e3o_e_controle_de_volume_de_resultados_priority_p3", + "target": "specs_002_google_news_extractor_tasks_tests_for_user_story_3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks_phase_5_user_story_3_pagina\u00e7\u00e3o_e_controle_de_volume_de_resultados_priority_p3", + "target": "specs_002_google_news_extractor_tasks_implementation_for_user_story_3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L70", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_checklists_extraction", + "target": "specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_checklists_extraction_1_requirement_completeness", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_checklists_extraction_2_requirement_clarity_non_ambiguity", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_checklists_extraction_3_requirement_consistency_data_contracts", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_checklists_extraction_4_scenario_edge_case_coverage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_checklists_extraction_5_non_functional_operational_readiness", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_checklists_extraction_notes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_checklists_requirements", + "target": "specs_003_article_content_extractor_checklists_requirements_specification_quality_checklist_article_content_multi_engine_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/checklists/requirements.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_checklists_requirements_specification_quality_checklist_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_checklists_requirements_requirement_completeness", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/checklists/requirements.md", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_checklists_requirements_specification_quality_checklist_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_checklists_requirements_feature_readiness", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/checklists/requirements.md", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_checklists_requirements_specification_quality_checklist_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_checklists_requirements_notes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/checklists/requirements.md", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_checklists_requirements_specification_quality_checklist_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_checklists_requirements_content_quality", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/checklists/requirements.md", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_contracts_cli_contract", + "target": "specs_003_article_content_extractor_contracts_cli_contract_cli_contract_article_content_multi_engine_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/contracts/cli-contract.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_contracts_cli_contract_cli_contract_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_contracts_cli_contract_2_argumentos_e_flags", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/contracts/cli-contract.md", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_contracts_cli_contract_cli_contract_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_contracts_cli_contract_3_c\u00f3digos_de_sa\u00edda_exit_codes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/contracts/cli-contract.md", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_contracts_cli_contract_cli_contract_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_contracts_cli_contract_1_comando_de_execu\u00e7\u00e3o", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/contracts/cli-contract.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_contracts_cli_contract_cli_contract_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_contracts_cli_contract_4_comportamento_de_streams_i_o", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/contracts/cli-contract.md", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_contracts_json_schema", + "target": "specs_003_article_content_extractor_contracts_json_schema_json_schema_contract_article_content_multi_engine_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/contracts/json-schema.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_contracts_json_schema_json_schema_contract_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_contracts_json_schema_2_schema_de_sa\u00edda_output_json", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/contracts/json-schema.md", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_contracts_json_schema_json_schema_contract_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_contracts_json_schema_1_schema_de_entrada_input_json", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/contracts/json-schema.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_data_model", + "target": "specs_003_article_content_extractor_data_model_data_model_article_content_multi_engine_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_data_model_1_entities_value_objects", + "target": "specs_003_article_content_extractor_data_model_1_2_trafilaturadata_value_object", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_data_model_1_entities_value_objects", + "target": "specs_003_article_content_extractor_data_model_1_3_newspaperdata_value_object", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_data_model_1_entities_value_objects", + "target": "specs_003_article_content_extractor_data_model_1_1_inputarticle_value_object", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_data_model_1_entities_value_objects", + "target": "specs_003_article_content_extractor_data_model_1_4_readabilitydata_value_object", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_data_model_1_entities_value_objects", + "target": "specs_003_article_content_extractor_data_model_1_5_extractedarticle_entity", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_data_model_1_entities_value_objects", + "target": "specs_003_article_content_extractor_data_model_1_6_extractionbatchreport_aggregate_root", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_data_model_data_model_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_data_model_1_entities_value_objects", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/data-model.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_plan", + "target": "specs_003_article_content_extractor_plan_implementation_plan_article_content_multi_engine_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_plan_implementation_phases", + "target": "specs_003_article_content_extractor_plan_phase_0_outline_research_completed", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_plan_implementation_phases", + "target": "specs_003_article_content_extractor_plan_phase_1_design_contracts_completed", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L80", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_plan_implementation_phases", + "target": "specs_003_article_content_extractor_plan_phase_2_tasks_execution_completed", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_plan_implementation_plan_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_plan_technical_context", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_plan_implementation_plan_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_plan_constitution_check", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_plan_implementation_plan_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_plan_project_structure", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_plan_implementation_plan_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_plan_implementation_phases", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_plan_implementation_plan_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_plan_summary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_plan_project_structure", + "target": "specs_003_article_content_extractor_plan_documentation_this_feature", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_plan_project_structure", + "target": "specs_003_article_content_extractor_plan_source_code_layout", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/plan.md", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_quickstart", + "target": "specs_003_article_content_extractor_quickstart_quickstart_validation_guide_article_content_multi_engine_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_quickstart_2_cen\u00e1rios_de_valida\u00e7\u00e3o", + "target": "specs_003_article_content_extractor_quickstart_cen\u00e1rio_1_extra\u00e7\u00e3o_com_amostragem_r\u00e1pida_limit_2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_quickstart_2_cen\u00e1rios_de_valida\u00e7\u00e3o", + "target": "specs_003_article_content_extractor_quickstart_cen\u00e1rio_2_caminho_customizado_de_sa\u00edda", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_quickstart_2_cen\u00e1rios_de_valida\u00e7\u00e3o", + "target": "specs_003_article_content_extractor_quickstart_cen\u00e1rio_3_modo_silencioso_silent", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_quickstart_2_cen\u00e1rios_de_valida\u00e7\u00e3o", + "target": "specs_003_article_content_extractor_quickstart_cen\u00e1rio_4_resili\u00eancia_contra_urls_inv\u00e1lidas", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_quickstart_quickstart_validation_guide_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_quickstart_2_cen\u00e1rios_de_valida\u00e7\u00e3o", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_quickstart_quickstart_validation_guide_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_quickstart_1_pr\u00e9_requisitos", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_quickstart_quickstart_validation_guide_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_quickstart_3_valida\u00e7\u00e3o_automatizada_de_testes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/quickstart.md", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_research", + "target": "specs_003_article_content_extractor_research_research_article_content_multi_engine_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_research_1_technical_decisions_tradeoffs", + "target": "specs_003_article_content_extractor_research_decision_2_orquestra\u00e7\u00e3o_tripla_de_extra\u00e7\u00e3o_de_conte\u00fado_nlp_web_scraping", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_research_1_technical_decisions_tradeoffs", + "target": "specs_003_article_content_extractor_research_decision_3_resili\u00eancia_e_isolamento_de_falhas_por_camada", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_research_1_technical_decisions_tradeoffs", + "target": "specs_003_article_content_extractor_research_decision_4_heran\u00e7a_inteligente_de_idioma_para_nlp", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_research_1_technical_decisions_tradeoffs", + "target": "specs_003_article_content_extractor_research_decision_5_gerenciamento_de_mem\u00f3ria_e_descarte_do_raw_html", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_research_1_technical_decisions_tradeoffs", + "target": "specs_003_article_content_extractor_research_decision_6_segrega\u00e7\u00e3o_de_streams_e_feedback_visual_em_stderr", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_research_1_technical_decisions_tradeoffs", + "target": "specs_003_article_content_extractor_research_decision_1_motor_de_navega\u00e7\u00e3o_e_renderiza\u00e7\u00e3o_com_foxcape_em_sess\u00e3o_\u00fanica", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_research_research_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_research_1_technical_decisions_tradeoffs", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/research.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_spec", + "target": "specs_003_article_content_extractor_spec_feature_specification_article_content_multi_engine_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_spec_clarifications", + "target": "specs_003_article_content_extractor_spec_session_2026_08_20", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_spec_feature_specification_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_spec_clarifications", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_spec_feature_specification_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_spec_assumptions", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_spec_feature_specification_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_spec_user_scenarios_testing_mandatory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_spec_feature_specification_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_spec_requirements_mandatory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L72", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_spec_feature_specification_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_spec_success_criteria_mandatory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_spec_requirements_mandatory", + "target": "specs_003_article_content_extractor_spec_functional_requirements", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_spec_requirements_mandatory", + "target": "specs_003_article_content_extractor_spec_key_entities", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_spec_success_criteria_mandatory", + "target": "specs_003_article_content_extractor_spec_measurable_outcomes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_spec_user_scenarios_testing_mandatory", + "target": "specs_003_article_content_extractor_spec_user_story_1_extra\u00e7\u00e3o_completa_e_consolidada_de_artigos_em_lote_priority_p1_mvp", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_spec_user_scenarios_testing_mandatory", + "target": "specs_003_article_content_extractor_spec_user_story_2_resili\u00eancia_e_isolamento_de_falhas_por_artigo_e_motor_priority_p2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_spec_user_scenarios_testing_mandatory", + "target": "specs_003_article_content_extractor_spec_user_story_3_controle_de_execu\u00e7\u00e3o_via_linha_de_comando_e_feedback_visual_priority_p3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_spec_user_scenarios_testing_mandatory", + "target": "specs_003_article_content_extractor_spec_edge_cases", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/spec.md", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks", + "target": "specs_003_article_content_extractor_tasks_tasks_article_content_multi_engine_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_dependencies_execution_order", + "target": "specs_003_article_content_extractor_tasks_oportunidades_de_execu\u00e7\u00e3o_paralela", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L113", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_implementation_strategy", + "target": "specs_003_article_content_extractor_tasks_mvp_first_user_story_1_only", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L122", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_implementation_strategy", + "target": "specs_003_article_content_extractor_tasks_entrega_incremental", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L127", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_phase_3_user_story_1_extra\u00e7\u00e3o_completa_e_consolidada_de_artigos_em_lote_priority_p1_mvp", + "target": "specs_003_article_content_extractor_tasks_testes_da_user_story_1_tdd", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_phase_3_user_story_1_extra\u00e7\u00e3o_completa_e_consolidada_de_artigos_em_lote_priority_p1_mvp", + "target": "specs_003_article_content_extractor_tasks_implementa\u00e7\u00e3o_da_user_story_1", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_phase_4_user_story_2_resili\u00eancia_e_isolamento_de_falhas_por_artigo_e_motor_priority_p2", + "target": "specs_003_article_content_extractor_tasks_testes_da_user_story_2_tdd", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_phase_4_user_story_2_resili\u00eancia_e_isolamento_de_falhas_por_artigo_e_motor_priority_p2", + "target": "specs_003_article_content_extractor_tasks_implementa\u00e7\u00e3o_da_user_story_2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_phase_5_user_story_3_controle_de_execu\u00e7\u00e3o_via_cli_e_feedback_visual_priority_p3", + "target": "specs_003_article_content_extractor_tasks_testes_da_user_story_3_tdd", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_phase_5_user_story_3_controle_de_execu\u00e7\u00e3o_via_cli_e_feedback_visual_priority_p3", + "target": "specs_003_article_content_extractor_tasks_implementa\u00e7\u00e3o_da_user_story_3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L82", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_tasks_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_tasks_phase_1_setup_dependencies", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_tasks_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_tasks_dependencies_execution_order", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L102", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_tasks_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_tasks_implementation_strategy", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L120", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_tasks_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_tasks_phase_2_foundational_estruturas_e_modelos_base", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_tasks_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_tasks_phase_3_user_story_1_extra\u00e7\u00e3o_completa_e_consolidada_de_artigos_em_lote_priority_p1_mvp", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_tasks_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_tasks_phase_4_user_story_2_resili\u00eancia_e_isolamento_de_falhas_por_artigo_e_motor_priority_p2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_tasks_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_tasks_phase_5_user_story_3_controle_de_execu\u00e7\u00e3o_via_cli_e_feedback_visual_priority_p3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L72", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_tasks_tasks_article_content_multi_engine_extractor", + "target": "specs_003_article_content_extractor_tasks_phase_6_polish_valida\u00e7\u00e3o_final", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/tasks.md", + "source_location": "L91", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_checklists_deterministic_selection", + "target": "specs_004_deterministic_content_selection_checklists_deterministic_selection_deterministic_content_selection_checklist_end_to_end_requirements_quality", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_checklists_deterministic_selection_deterministic_content_selection_checklist_end_to_end_requirements_quality", + "target": "specs_004_deterministic_content_selection_checklists_deterministic_selection_text_normalization_tokenization_quality", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_checklists_deterministic_selection_deterministic_content_selection_checklist_end_to_end_requirements_quality", + "target": "specs_004_deterministic_content_selection_checklists_deterministic_selection_shingles_consensus_metric_formulation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_checklists_deterministic_selection_deterministic_content_selection_checklist_end_to_end_requirements_quality", + "target": "specs_004_deterministic_content_selection_checklists_deterministic_selection_decision_tie_breaking_hierarchy", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_checklists_deterministic_selection_deterministic_content_selection_checklist_end_to_end_requirements_quality", + "target": "specs_004_deterministic_content_selection_checklists_deterministic_selection_candidate_state_transitions_resilience", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_checklists_deterministic_selection_deterministic_content_selection_checklist_end_to_end_requirements_quality", + "target": "specs_004_deterministic_content_selection_checklists_deterministic_selection_json_schema_integrity_atomic_i_o", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_checklists_deterministic_selection_deterministic_content_selection_checklist_end_to_end_requirements_quality", + "target": "specs_004_deterministic_content_selection_checklists_deterministic_selection_notes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_checklists_requirements", + "target": "specs_004_deterministic_content_selection_checklists_requirements_specification_quality_checklist_deterministic_content_selection", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/checklists/requirements.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_checklists_requirements_specification_quality_checklist_deterministic_content_selection", + "target": "specs_004_deterministic_content_selection_checklists_requirements_requirement_completeness", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/checklists/requirements.md", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_checklists_requirements_specification_quality_checklist_deterministic_content_selection", + "target": "specs_004_deterministic_content_selection_checklists_requirements_feature_readiness", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/checklists/requirements.md", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_checklists_requirements_specification_quality_checklist_deterministic_content_selection", + "target": "specs_004_deterministic_content_selection_checklists_requirements_notes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/checklists/requirements.md", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_checklists_requirements_specification_quality_checklist_deterministic_content_selection", + "target": "specs_004_deterministic_content_selection_checklists_requirements_content_quality", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/checklists/requirements.md", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_contracts_cli_contract", + "target": "specs_004_deterministic_content_selection_contracts_cli_contract_cli_interface_contract_deterministic_article_content_selection", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/contracts/cli-contract.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_contracts_cli_contract_cli_interface_contract_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_contracts_cli_contract_2_arguments_and_flags", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/contracts/cli-contract.md", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_contracts_cli_contract_cli_interface_contract_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_contracts_cli_contract_3_standard_streams_i_o", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/contracts/cli-contract.md", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_contracts_cli_contract_cli_interface_contract_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_contracts_cli_contract_4_exit_codes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/contracts/cli-contract.md", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_contracts_cli_contract_cli_interface_contract_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_contracts_cli_contract_1_command_syntax", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/contracts/cli-contract.md", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_contracts_json_schema", + "target": "specs_004_deterministic_content_selection_contracts_json_schema_json_schema_contract_deterministic_article_content_selection", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/contracts/json-schema.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_contracts_json_schema_json_schema_contract_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_contracts_json_schema_2_output_json_schema", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/contracts/json-schema.md", + "source_location": "L52", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_contracts_json_schema_json_schema_contract_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_contracts_json_schema_1_input_json_schema", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/contracts/json-schema.md", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_data_model", + "target": "specs_004_deterministic_content_selection_data_model_data_model_deterministic_content_selection", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_data_model_2_entity_descriptions_fields", + "target": "specs_004_deterministic_content_selection_data_model_batchprocessingresult_dataclass", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L110", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_data_model_2_entity_descriptions_fields", + "target": "specs_004_deterministic_content_selection_data_model_extractorname_enum_literal", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_data_model_2_entity_descriptions_fields", + "target": "specs_004_deterministic_content_selection_data_model_candidatestatus_enum", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L72", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_data_model_2_entity_descriptions_fields", + "target": "specs_004_deterministic_content_selection_data_model_extractorcandidate_dataclass", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_data_model_2_entity_descriptions_fields", + "target": "specs_004_deterministic_content_selection_data_model_articleselectionresult_dataclass", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L96", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_data_model_3_json_schema_mapping", + "target": "specs_004_deterministic_content_selection_data_model_entrada", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L125", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_data_model_3_json_schema_mapping", + "target": "specs_004_deterministic_content_selection_data_model_sa\u00edda", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_data_model_data_model_deterministic_content_selection", + "target": "specs_004_deterministic_content_selection_data_model_3_json_schema_mapping", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L123", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_data_model_data_model_deterministic_content_selection", + "target": "specs_004_deterministic_content_selection_data_model_2_entity_descriptions_fields", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_data_model_data_model_deterministic_content_selection", + "target": "specs_004_deterministic_content_selection_data_model_1_domain_entities_value_types", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_plan", + "target": "specs_004_deterministic_content_selection_plan_implementation_plan_deterministic_article_content_selection", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_plan_implementation_phases", + "target": "specs_004_deterministic_content_selection_plan_phase_0_outline_research_completed", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_plan_implementation_phases", + "target": "specs_004_deterministic_content_selection_plan_phase_1_design_contracts_completed", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L87", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_plan_implementation_phases", + "target": "specs_004_deterministic_content_selection_plan_phase_2_tasks_execution_next_step_via_speckit_tasks", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_plan_implementation_plan_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_plan_technical_context", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_plan_implementation_plan_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_plan_constitution_check", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_plan_implementation_plan_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_plan_project_structure", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_plan_implementation_plan_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_plan_implementation_phases", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L79", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_plan_implementation_plan_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_plan_summary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_plan_project_structure", + "target": "specs_004_deterministic_content_selection_plan_documentation_this_feature", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_plan_project_structure", + "target": "specs_004_deterministic_content_selection_plan_source_code_layout", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_quickstart", + "target": "specs_004_deterministic_content_selection_quickstart_quickstart_deterministic_article_content_selection", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_quickstart_2_execu\u00e7\u00e3o_r\u00e1pida_via_cli", + "target": "specs_004_deterministic_content_selection_quickstart_cen\u00e1rio_1_selecionar_o_melhor_extrator_para_uma_extra\u00e7\u00e3o_existente", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_quickstart_2_execu\u00e7\u00e3o_r\u00e1pida_via_cli", + "target": "specs_004_deterministic_content_selection_quickstart_cen\u00e1rio_2_especificar_caminho_de_sa\u00edda_customizado_e_modo_verboso", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_quickstart_quickstart_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_quickstart_2_execu\u00e7\u00e3o_r\u00e1pida_via_cli", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_quickstart_quickstart_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_quickstart_3_execu\u00e7\u00e3o_dos_testes_automatizados", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_quickstart_quickstart_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_quickstart_4_valida\u00e7\u00e3o_program\u00e1tica_uso_como_m\u00f3dulo_python", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_quickstart_quickstart_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_quickstart_1_pr\u00e9_requisitos", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research", + "target": "specs_004_deterministic_content_selection_research_research_architectural_decisions_deterministic_content_selection", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_1_text_normalization_pipeline", + "target": "specs_004_deterministic_content_selection_research_decisions", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_1_text_normalization_pipeline", + "target": "specs_004_deterministic_content_selection_research_rationale", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_1_text_normalization_pipeline", + "target": "specs_004_deterministic_content_selection_research_alternatives_considered", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_1_text_normalization_pipeline", + "target": "specs_004_deterministic_content_selection_research_context", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_2_5_token_shingles_consensus_metrics", + "target": "specs_004_deterministic_content_selection_research_context_34", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_2_5_token_shingles_consensus_metrics", + "target": "specs_004_deterministic_content_selection_research_decisions_37", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_2_5_token_shingles_consensus_metrics", + "target": "specs_004_deterministic_content_selection_research_rationale_51", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_3_regras_de_decis\u00e3o_empate_t\u00e9cnico_e_desempate_hier\u00e1rquico", + "target": "specs_004_deterministic_content_selection_research_context_59", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_3_regras_de_decis\u00e3o_empate_t\u00e9cnico_e_desempate_hier\u00e1rquico", + "target": "specs_004_deterministic_content_selection_research_decisions_62", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L62", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_3_regras_de_decis\u00e3o_empate_t\u00e9cnico_e_desempate_hier\u00e1rquico", + "target": "specs_004_deterministic_content_selection_research_rationale_84", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_4_estrat\u00e9gia_de_i_o_n\u00e3o_destrutiva_e_escrita_at\u00f4mica", + "target": "specs_004_deterministic_content_selection_research_rationale_106", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L106", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_4_estrat\u00e9gia_de_i_o_n\u00e3o_destrutiva_e_escrita_at\u00f4mica", + "target": "specs_004_deterministic_content_selection_research_context_91", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L91", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_4_estrat\u00e9gia_de_i_o_n\u00e3o_destrutiva_e_escrita_at\u00f4mica", + "target": "specs_004_deterministic_content_selection_research_decisions_94", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L94", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_research_architectural_decisions_deterministic_content_selection", + "target": "specs_004_deterministic_content_selection_research_2_5_token_shingles_consensus_metrics", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_research_architectural_decisions_deterministic_content_selection", + "target": "specs_004_deterministic_content_selection_research_3_regras_de_decis\u00e3o_empate_t\u00e9cnico_e_desempate_hier\u00e1rquico", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L57", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_research_architectural_decisions_deterministic_content_selection", + "target": "specs_004_deterministic_content_selection_research_1_text_normalization_pipeline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research_research_architectural_decisions_deterministic_content_selection", + "target": "specs_004_deterministic_content_selection_research_4_estrat\u00e9gia_de_i_o_n\u00e3o_destrutiva_e_escrita_at\u00f4mica", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_spec", + "target": "specs_004_deterministic_content_selection_spec_feature_specification_deterministic_content_selection", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_spec_feature_specification_deterministic_content_selection", + "target": "specs_004_deterministic_content_selection_spec_success_criteria_mandatory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_spec_feature_specification_deterministic_content_selection", + "target": "specs_004_deterministic_content_selection_spec_assumptions", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L129", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_spec_feature_specification_deterministic_content_selection", + "target": "specs_004_deterministic_content_selection_spec_requirements_mandatory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_spec_feature_specification_deterministic_content_selection", + "target": "specs_004_deterministic_content_selection_spec_user_scenarios_testing_mandatory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_spec_requirements_mandatory", + "target": "specs_004_deterministic_content_selection_spec_key_entities_include_if_feature_involves_data", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_spec_requirements_mandatory", + "target": "specs_004_deterministic_content_selection_spec_functional_requirements", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_spec_success_criteria_mandatory", + "target": "specs_004_deterministic_content_selection_spec_measurable_outcomes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L120", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_spec_user_scenarios_testing_mandatory", + "target": "specs_004_deterministic_content_selection_spec_user_story_1_deterministic_selection_with_text_consensus_priority_p1", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_spec_user_scenarios_testing_mandatory", + "target": "specs_004_deterministic_content_selection_spec_user_story_2_resilient_decision_under_total_disagreement_or_degradation_priority_p2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_spec_user_scenarios_testing_mandatory", + "target": "specs_004_deterministic_content_selection_spec_user_story_3_non_destructive_json_batch_processing_priority_p3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_spec_user_scenarios_testing_mandatory", + "target": "specs_004_deterministic_content_selection_spec_edge_cases", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/spec.md", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks", + "target": "specs_004_deterministic_content_selection_tasks_tasks_deterministic_article_content_selection", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_implementation_strategy", + "target": "specs_004_deterministic_content_selection_tasks_mvp_first_phases_1_2_3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L140", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_implementation_strategy", + "target": "specs_004_deterministic_content_selection_tasks_incremental_delivery_phases_4_5_6", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L145", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_phase_3_user_story_1_deterministic_selection_with_text_consensus_priority_p1_mvp", + "target": "specs_004_deterministic_content_selection_tasks_tests_for_user_story_1", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_phase_3_user_story_1_deterministic_selection_with_text_consensus_priority_p1_mvp", + "target": "specs_004_deterministic_content_selection_tasks_implementation_for_user_story_1", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_phase_4_user_story_2_resilient_decision_under_disagreement_or_degradation_priority_p2", + "target": "specs_004_deterministic_content_selection_tasks_tests_for_user_story_2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_phase_4_user_story_2_resilient_decision_under_disagreement_or_degradation_priority_p2", + "target": "specs_004_deterministic_content_selection_tasks_implementation_for_user_story_2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_phase_5_user_story_3_non_destructive_json_batch_processing_priority_p3", + "target": "specs_004_deterministic_content_selection_tasks_tests_for_user_story_3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_phase_5_user_story_3_non_destructive_json_batch_processing_priority_p3", + "target": "specs_004_deterministic_content_selection_tasks_implementation_for_user_story_3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L82", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_tasks_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_tasks_dependencies_execution_order", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L100", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_tasks_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_tasks_parallel_opportunities", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L129", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_tasks_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_tasks_implementation_strategy", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_tasks_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_tasks_phase_2_foundational_data_structures_normalization_engine", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_tasks_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_tasks_phase_3_user_story_1_deterministic_selection_with_text_consensus_priority_p1_mvp", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_tasks_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_tasks_phase_4_user_story_2_resilient_decision_under_disagreement_or_degradation_priority_p2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_tasks_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_tasks_phase_1_setup_shared_infrastructure", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_tasks_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_tasks_phase_5_user_story_3_non_destructive_json_batch_processing_priority_p3", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks_tasks_deterministic_article_content_selection", + "target": "specs_004_deterministic_content_selection_tasks_phase_6_polish_cross_cutting_concerns", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L91", + "weight": 1.0 + }, + { + "source": "src_adapters_base", + "target": "src_adapters_base_basenlpadapter", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/base.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings", + "target": "src_adapters_embeddings_localembeddingsadapter", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/embeddings.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "src_adapters_llm", + "target": "src_adapters_llm_llmfallbackadapter", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/llm.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "src_classifier", + "target": "src_classifier_match_phrase_in_text", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/classifier.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "src_classifier", + "target": "src_classifier_count_phrase_occurrences", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/classifier.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "src_classifier", + "target": "src_classifier_inherenceclassifier", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/classifier.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "src_language", + "target": "src_language_normalize_text", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/language.py", + "source_location": "L462", + "weight": 1.0 + }, + { + "source": "src_language", + "target": "src_language_extract_words", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/language.py", + "source_location": "L472", + "weight": 1.0 + }, + { + "source": "src_language", + "target": "src_language_detect_language", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/language.py", + "source_location": "L477", + "weight": 1.0 + }, + { + "source": "src_models", + "target": "src_models_decisioncategory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "src_models", + "target": "src_models_matchedgraphentity", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L114", + "weight": 1.0 + }, + { + "source": "src_models", + "target": "src_models_classificationresult", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L122", + "weight": 1.0 + }, + { + "source": "src_models", + "target": "src_models_classificationerror", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L155", + "weight": 1.0 + }, + { + "source": "src_models", + "target": "src_models_errorcode", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "src_models", + "target": "src_models_relatedentity", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "src_models", + "target": "src_models_ecpsnapshot", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "src_parser", + "target": "src_parser_extract_sentences", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/parser.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "src_parser", + "target": "src_parser_extract_evidence_snippets", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/parser.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "src_parser", + "target": "src_parser_strip_markdown", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/parser.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_de_contextual", + "target": "tests_fixtures_benchmark_24_de_contextual_batteriefabrik_in_europa", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/de/contextual.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_de_direct", + "target": "tests_fixtures_benchmark_24_de_direct_investitionsoffensive_in_wolfsburg", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/de/direct.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_de_not_related", + "target": "tests_fixtures_benchmark_24_de_not_related_backrezept_f\u00fcr_apfelstrudel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/de/not_related.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_de_tangential", + "target": "tests_fixtures_benchmark_24_de_tangential_reisebericht_aus_niedersachsen", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/de/tangential.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_en_contextual", + "target": "tests_fixtures_benchmark_24_en_contextual_electronics_assembly_expansion", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/en/contextual.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_en_direct", + "target": "tests_fixtures_benchmark_24_en_direct_apple_unveils_next_generation_iphone", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/en/direct.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_en_not_related", + "target": "tests_fixtures_benchmark_24_en_not_related_classic_apple_pie_baking_guide", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/en/not_related.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_en_tangential", + "target": "tests_fixtures_benchmark_24_en_tangential_morning_city_walk", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/en/tangential.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_es_contextual", + "target": "tests_fixtures_benchmark_24_es_contextual_nuevas_soluciones_de_pagos_electr\u00f3nicos", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/es/contextual.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_es_direct", + "target": "tests_fixtures_benchmark_24_es_direct_expansi\u00f3n_de_servicios_financieros_en_espa\u00f1a", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/es/direct.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_es_not_related", + "target": "tests_fixtures_benchmark_24_es_not_related_turismo_en_la_costa_norte", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/es/not_related.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_es_tangential", + "target": "tests_fixtures_benchmark_24_es_tangential_gu\u00eda_cultural_de_la_ciudad", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/es/tangential.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_fr_contextual", + "target": "tests_fixtures_benchmark_24_fr_contextual_batteries_industrielles_de_pointe", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/fr/contextual.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_fr_direct", + "target": "tests_fixtures_benchmark_24_fr_direct_d\u00e9veloppement_\u00e9nerg\u00e9tique_en_france", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/fr/direct.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_fr_not_related", + "target": "tests_fixtures_benchmark_24_fr_not_related_recette_traditionnelle_de_la_quiche_lorraine", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/fr/not_related.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_fr_tangential", + "target": "tests_fixtures_benchmark_24_fr_tangential_promenade_dans_paris", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/fr/tangential.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_it_contextual", + "target": "tests_fixtures_benchmark_24_it_contextual_innovazione_negli_impianti_frenanti", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/it/contextual.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_it_direct", + "target": "tests_fixtures_benchmark_24_it_direct_nuova_monoposto_a_maranello", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/it/direct.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_it_not_related", + "target": "tests_fixtures_benchmark_24_it_not_related_ricetta_tradizionale_del_risotto", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/it/not_related.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_it_tangential", + "target": "tests_fixtures_benchmark_24_it_tangential_passeggiata_pomeridiana_a_modena", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/it/tangential.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_pt_contextual", + "target": "tests_fixtures_benchmark_24_pt_contextual_log\u00edstica_de_derivados", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/pt/contextual.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_pt_direct", + "target": "tests_fixtures_benchmark_24_pt_direct_produ\u00e7\u00e3o_de_petr\u00f3leo_no_brasil", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/pt/direct.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_pt_not_related", + "target": "tests_fixtures_benchmark_24_pt_not_related_dicas_de_jardinagem", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/pt/not_related.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_fixtures_benchmark_24_pt_tangential", + "target": "tests_fixtures_benchmark_24_pt_tangential_turismo_no_rio_de_janeiro", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/fixtures/benchmark_24/pt/tangential.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_adapters", + "target": "tests_test_adapters_test_llm_adapter_interface", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adapters.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_adapters", + "target": "tests_test_adapters_test_classifier_with_adapter_flags", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adapters.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_adapters", + "target": "tests_test_adapters_test_embeddings_adapter_interface", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adapters.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial", + "target": "tests_test_adversarial_test_adversarial_subprocess_cli_success_stdout", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adversarial.py", + "source_location": "L104", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial", + "target": "tests_test_adversarial_test_adversarial_sao_paulo_city_vs_fc", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adversarial.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial", + "target": "tests_test_adversarial_test_adversarial_subprocess_cli_empty_content", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adversarial.py", + "source_location": "L148", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial", + "target": "tests_test_adversarial_test_adversarial_subprocess_cli_missing_required_field", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adversarial.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial", + "target": "tests_test_adversarial_test_adversarial_subprocess_cli_corrupted_json", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adversarial.py", + "source_location": "L220", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial", + "target": "tests_test_adversarial_test_adversarial_apple_fruit_recipe", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adversarial.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial", + "target": "tests_test_adversarial_test_adversarial_related_entity_without_scope_context", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adversarial.py", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "tests_test_benchmark_24", + "target": "tests_test_benchmark_24_classifier", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_benchmark_24.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "tests_test_benchmark_24", + "target": "tests_test_benchmark_24_test_benchmark_case", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_benchmark_24.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "tests_test_classifier", + "target": "tests_test_classifier_petrobras_ecp", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_classifier.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "tests_test_classifier", + "target": "tests_test_classifier_test_direct_inherent", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_classifier.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "tests_test_classifier", + "target": "tests_test_classifier_test_contextual_inherent", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_classifier.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "tests_test_classifier", + "target": "tests_test_classifier_test_tangential_inherent", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_classifier.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "tests_test_classifier", + "target": "tests_test_classifier_test_not_related", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_classifier.py", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "tests_test_classifier", + "target": "tests_test_classifier_test_negative_anchor_suppression", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_classifier.py", + "source_location": "L91", + "weight": 1.0 + }, + { + "source": "tests_test_cli", + "target": "tests_test_cli_test_cli_missing_required_ecp_field", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_cli.py", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "tests_test_cli", + "target": "tests_test_cli_test_cli_output_file", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_cli.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "tests_test_cli", + "target": "tests_test_cli_test_cli_missing_ecp_file", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_cli.py", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "tests_test_cli", + "target": "tests_test_cli_test_cli_success_stdout", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_cli.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "tests_test_cli", + "target": "tests_test_cli_test_cli_empty_content_file", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_cli.py", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_test_load_search_json_valid", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L110", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_test_load_search_json_invalid_file", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_test_save_extracted_json", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_test_trafilatura_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_test_newspaper_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L195", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_test_readability_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L205", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_test_extract_all_engines", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L215", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_test_extractor_error_isolation_on_faulty_engine", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L229", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_test_crawler_error_isolation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L242", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_test_process_batch_with_limit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L271", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_test_cli_main_success", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L291", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_test_cli_main_missing_input_file", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L305", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_test_e2e_live_article_extraction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L316", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_test_e2e_cli_live_execution", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L360", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_sample_input_json", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents", + "target": "tests_test_extract_article_contents_test_input_article_creation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L94", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_parse_google_news_rss_with_fixture", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_resolve_article_url_fallback", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_resolve_article_url_success", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L148", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_resolve_articles_urls_batch", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L161", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_extract_google_news_orchestration_mocked", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_cli_execution_stdout", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L213", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_cli_execution_file_output", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L234", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_cli_empty_query_error", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L253", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_cli_network_error_handling", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L262", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_e2e_resolve_real_google_news_url", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L281", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_e2e_extract_google_news_live_pipeline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L302", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_e2e_cli_live_file_output", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L318", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_sample_rss_xml", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_get_hl_gl_ceid_default_mappings", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_get_hl_gl_ceid_with_custom_locale", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_get_hl_gl_ceid_dynamic_fallback", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news", + "target": "tests_test_extract_google_news_test_search_query_validation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L86", + "weight": 1.0 + }, + { + "source": "tests_test_language", + "target": "tests_test_language_test_detect_portuguese", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_language.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "tests_test_language", + "target": "tests_test_language_test_detect_english", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_language.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "tests_test_language", + "target": "tests_test_language_test_detect_spanish", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_language.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "tests_test_language", + "target": "tests_test_language_test_detect_german", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_language.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "tests_test_language", + "target": "tests_test_language_test_detect_italian", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_language.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "tests_test_language", + "target": "tests_test_language_test_detect_french", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_language.py", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "tests_test_language", + "target": "tests_test_language_test_empty_language", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_language.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "tests_test_language", + "target": "tests_test_language_test_normalize_text", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_language.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "tests_test_models_test_parser_strip_markdown", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models.py", + "source_location": "L100", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "tests_test_models_test_extract_evidence_snippets", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models.py", + "source_location": "L110", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "tests_test_models_test_ecp_snapshot_valid", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "tests_test_models_test_ecp_snapshot_defaults", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "tests_test_models_test_ecp_snapshot_missing_required", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "tests_test_models_test_classification_result_serialization", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models.py", + "source_location": "L70", + "weight": 1.0 + }, + { + "source": "tests_test_models", + "target": "tests_test_models_test_classification_error_serialization", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models.py", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_generate_shingles_empty", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L106", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_ct_001_three_candidates_clear_winner", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_ct_002_technical_tie_smallest_shingles", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L128", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_ct_003_technical_tie_priority_fallback", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L140", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_ct_004_three_candidates_no_consensus", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L161", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_ct_005_two_candidates_no_consensus", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L176", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_ct_006_single_usable_candidate", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L190", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_ct_007_degraded_candidates_only", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L202", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_ct_008_all_candidates_unavailable", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L214", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_ct_009_small_fragment_loses_due_to_low_coverage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L226", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_ct_010_excessive_boilerplate_loses_due_to_low_support", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L243", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_ct_011_partial_content_loses_due_to_low_coverage", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L259", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L272", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_ct_013_empty_articles_list", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L298", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L317", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_integration_reference_file", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L334", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L363", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_integration_large_batch_determinism", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L397", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_normalize_text_empty_and_invalid", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L446", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_normalize_text_html_entities_and_tags", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L483", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L520", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_normalize_text_markdown_links", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L548", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L561", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_normalize_text_markdown_images_stripped_while_links_preserved", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_normalize_text_nfkc_unicode_and_punctuation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_generate_shingles_sliding_window", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L90", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor", + "target": "tests_test_select_article_extractor_test_generate_shingles_short_text", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_candidatestatus", + "target": "scripts_select_article_extractor_py_enum", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_candidatestatus", + "target": "scripts_select_article_extractor_py_str", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_extractorname", + "target": "scripts_select_article_extractor_py_enum", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_extractorname", + "target": "scripts_select_article_extractor_py_str", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "src_adapters_base_basenlpadapter", + "target": "abc", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/base.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings_localembeddingsadapter", + "target": "src_adapters_base_basenlpadapter", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/embeddings.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "src_adapters_llm_llmfallbackadapter", + "target": "src_adapters_base_basenlpadapter", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/llm.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "src_models_decisioncategory", + "target": "src_models_py_enum", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "src_models_decisioncategory", + "target": "src_models_py_str", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "src_models_errorcode", + "target": "src_models_py_enum", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "src_models_errorcode", + "target": "src_models_py_str", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_articlecrawler", + "target": "scripts_extract_article_contents_articlecrawler_init", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L485", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_articlecrawler", + "target": "scripts_extract_article_contents_articlecrawler_start", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L490", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_articlecrawler", + "target": "scripts_extract_article_contents_articlecrawler_close", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L496", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_articlecrawler", + "target": "scripts_extract_article_contents_articlecrawler_enter", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L504", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_articlecrawler", + "target": "scripts_extract_article_contents_articlecrawler_exit", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L508", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_articlecrawler", + "target": "scripts_extract_article_contents_articlecrawler_crawl", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L511", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_extractedarticle", + "target": "scripts_extract_article_contents_extractedarticle_to_dict", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L187", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_extractionbatchreport", + "target": "scripts_extract_article_contents_extractionbatchreport_to_dict", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L212", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_inputarticle", + "target": "scripts_extract_article_contents_inputarticle_to_dict", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_newspaperdata", + "target": "scripts_extract_article_contents_newspaperdata_to_dict", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L126", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_newspaperextractor", + "target": "scripts_extract_article_contents_newspaperextractor_extract", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L336", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_readabilitydata", + "target": "scripts_extract_article_contents_readabilitydata_to_dict", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L162", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_readabilityextractor", + "target": "scripts_extract_article_contents_readabilityextractor_extract", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L399", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_trafilaturadata", + "target": "scripts_extract_article_contents_trafilaturadata_to_dict", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_trafilaturaextractor", + "target": "scripts_extract_article_contents_trafilaturaextractor_extract", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L232", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_extractionresult", + "target": "scripts_extract_google_news_extractionresult_to_dict", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L95", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_newsarticle", + "target": "scripts_extract_google_news_newsarticle_to_dict", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_searchquery", + "target": "scripts_extract_google_news_searchquery_post_init", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_searchquery", + "target": "scripts_extract_google_news_searchquery_clean_keyword", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_searchquery", + "target": "scripts_extract_google_news_searchquery_clean_language", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_searchquery", + "target": "scripts_extract_google_news_searchquery_clean_locale", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "src_adapters_base_basenlpadapter", + "target": "src_adapters_base_basenlpadapter_is_available", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/base.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "src_adapters_base_basenlpadapter", + "target": "src_adapters_base_basenlpadapter_evaluate_similarity", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/base.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "src_adapters_base_basenlpadapter", + "target": "src_adapters_base_basenlpadapter_disambiguate", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/base.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings_localembeddingsadapter", + "target": "src_adapters_embeddings_localembeddingsadapter_init", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/embeddings.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings_localembeddingsadapter", + "target": "src_adapters_embeddings_localembeddingsadapter_is_available", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/embeddings.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings_localembeddingsadapter", + "target": "src_adapters_embeddings_localembeddingsadapter_evaluate_similarity", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/embeddings.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings_localembeddingsadapter", + "target": "src_adapters_embeddings_localembeddingsadapter_disambiguate", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/embeddings.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "src_adapters_llm_llmfallbackadapter", + "target": "src_adapters_llm_llmfallbackadapter_init", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/llm.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "src_adapters_llm_llmfallbackadapter", + "target": "src_adapters_llm_llmfallbackadapter_is_available", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/llm.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "src_adapters_llm_llmfallbackadapter", + "target": "src_adapters_llm_llmfallbackadapter_evaluate_similarity", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/llm.py", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "src_adapters_llm_llmfallbackadapter", + "target": "src_adapters_llm_llmfallbackadapter_disambiguate", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/llm.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "src_classifier_inherenceclassifier", + "target": "src_classifier_inherenceclassifier_init", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/classifier.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "src_classifier_inherenceclassifier", + "target": "src_classifier_inherenceclassifier_classify", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/classifier.py", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "src_models_classificationerror", + "target": "src_models_classificationerror_to_dict", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L160", + "weight": 1.0 + }, + { + "source": "src_models_classificationerror", + "target": "src_models_classificationerror_to_json_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L169", + "weight": 1.0 + }, + { + "source": "src_models_classificationresult", + "target": "src_models_classificationresult_to_dict", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L134", + "weight": 1.0 + }, + { + "source": "src_models_classificationresult", + "target": "src_models_classificationresult_to_json_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L150", + "weight": 1.0 + }, + { + "source": "src_models_ecpsnapshot", + "target": "src_models_ecpsnapshot_from_json_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "src_models_ecpsnapshot", + "target": "src_models_ecpsnapshot_from_dict", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "src_models_relatedentity", + "target": "src_models_relatedentity_from_dict", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_103", + "target": "scripts_extract_article_contents_newspaperdata", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_153", + "target": "scripts_extract_article_contents_readabilitydata", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L153", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_175", + "target": "scripts_extract_article_contents_extractedarticle", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L175", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_203", + "target": "scripts_extract_article_contents_extractionbatchreport", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L203", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_229", + "target": "scripts_extract_article_contents_trafilaturaextractor", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L229", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_333", + "target": "scripts_extract_article_contents_newspaperextractor", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L333", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_35", + "target": "scripts_extract_article_contents_inputarticle", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_396", + "target": "scripts_extract_article_contents_readabilityextractor", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L396", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_430", + "target": "scripts_extract_article_contents_extract_all_engines", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L430", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_483", + "target": "scripts_extract_article_contents_articlecrawler", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L483", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_512", + "target": "scripts_extract_article_contents_articlecrawler_crawl", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L512", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_534", + "target": "scripts_extract_article_contents_log_info", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L534", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_541", + "target": "scripts_extract_article_contents_load_search_json", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L541", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_55", + "target": "scripts_extract_article_contents_trafilaturadata", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_569", + "target": "scripts_extract_article_contents_save_extracted_json", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L569", + "weight": 1.0 + }, + { + "source": "scripts_extract_article_contents_rationale_583", + "target": "scripts_extract_article_contents_process_batch", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_article_contents.py", + "source_location": "L583", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_rationale_108", + "target": "scripts_extract_google_news_get_hl_gl_ceid", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L108", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_rationale_152", + "target": "scripts_extract_google_news_normalize_text_for_comparison", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L152", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_rationale_157", + "target": "scripts_extract_google_news_parse_google_news_rss", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L157", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_rationale_208", + "target": "scripts_extract_google_news_resolve_article_url", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L208", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_rationale_223", + "target": "scripts_extract_google_news_resolve_articles_urls", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L223", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_rationale_254", + "target": "scripts_extract_google_news_fetch_rss_content", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L254", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_rationale_300", + "target": "scripts_extract_google_news_extract_google_news", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L300", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_rationale_33", + "target": "scripts_extract_google_news_searchquery", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_rationale_337", + "target": "scripts_extract_google_news_build_parser", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L337", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_rationale_404", + "target": "scripts_extract_google_news_main", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L404", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_rationale_65", + "target": "scripts_extract_google_news_newsarticle", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "scripts_extract_google_news_rationale_85", + "target": "scripts_extract_google_news_extractionresult", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/extract_google_news.py", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "scripts_init_rationale_1", + "target": "scripts_init", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/__init__.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_107", + "target": "scripts_select_article_extractor_normalize_text", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L107", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_148", + "target": "scripts_select_article_extractor_generate_shingles", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L148", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_168", + "target": "scripts_select_article_extractor_extract_candidate_data", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L168", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_212", + "target": "scripts_select_article_extractor_form_active_set", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L212", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_235", + "target": "scripts_select_article_extractor_calculate_consensus_metrics", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L235", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_281", + "target": "scripts_select_article_extractor_break_priority_tie", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L281", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_292", + "target": "scripts_select_article_extractor_select_with_consensus", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L292", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_323", + "target": "scripts_select_article_extractor_select_without_consensus", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L323", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_34", + "target": "scripts_select_article_extractor_extractorname", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_374", + "target": "scripts_select_article_extractor_select_article_extractor", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L374", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_42", + "target": "scripts_select_article_extractor_candidatestatus", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_431", + "target": "scripts_select_article_extractor_atomic_save_json", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L431", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_455", + "target": "scripts_select_article_extractor_process_batch", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L455", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_63", + "target": "scripts_select_article_extractor_extractorcandidate", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_79", + "target": "scripts_select_article_extractor_articleselectionresult", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L79", + "weight": 1.0 + }, + { + "source": "scripts_select_article_extractor_rationale_91", + "target": "scripts_select_article_extractor_batchprocessingresult", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "scripts/select_article_extractor.py", + "source_location": "L91", + "weight": 1.0 + }, + { + "source": "src_adapters_base_rationale_1", + "target": "src_adapters_base", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/base.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "src_adapters_base_rationale_11", + "target": "src_adapters_base_basenlpadapter", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/base.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "src_adapters_base_rationale_15", + "target": "src_adapters_base_basenlpadapter_is_available", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/base.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "src_adapters_base_rationale_19", + "target": "src_adapters_base_basenlpadapter_evaluate_similarity", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/base.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "src_adapters_base_rationale_28", + "target": "src_adapters_base_basenlpadapter_disambiguate", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/base.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings_rationale_1", + "target": "src_adapters_embeddings", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/embeddings.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "src_adapters_embeddings_rationale_14", + "target": "src_adapters_embeddings_localembeddingsadapter", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/embeddings.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "src_adapters_init_rationale_1", + "target": "src_adapters_init", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/__init__.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "src_adapters_llm_rationale_1", + "target": "src_adapters_llm", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/llm.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "src_adapters_llm_rationale_16", + "target": "src_adapters_llm_llmfallbackadapter", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/adapters/llm.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "src_classifier_rationale_1", + "target": "src_classifier", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/classifier.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "src_classifier_rationale_18", + "target": "src_classifier_match_phrase_in_text", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/classifier.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "src_classifier_rationale_31", + "target": "src_classifier_count_phrase_occurrences", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/classifier.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "src_classifier_rationale_42", + "target": "src_classifier_inherenceclassifier", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/classifier.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "src_classifier_rationale_61", + "target": "src_classifier_inherenceclassifier_classify", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/classifier.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "src_init_rationale_1", + "target": "src_init", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/__init__.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "src_language_rationale_1", + "target": "src_language", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/language.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "src_language_rationale_463", + "target": "src_language_normalize_text", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/language.py", + "source_location": "L463", + "weight": 1.0 + }, + { + "source": "src_language_rationale_473", + "target": "src_language_extract_words", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/language.py", + "source_location": "L473", + "weight": 1.0 + }, + { + "source": "src_language_rationale_478", + "target": "src_language_detect_language", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/language.py", + "source_location": "L478", + "weight": 1.0 + }, + { + "source": "src_models_rationale_1", + "target": "src_models", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/models.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "src_parser_rationale_1", + "target": "src_parser", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/parser.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "src_parser_rationale_43", + "target": "src_parser_extract_sentences", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/parser.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "src_parser_rationale_53", + "target": "src_parser_extract_evidence_snippets", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/parser.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "src_parser_rationale_9", + "target": "src_parser_strip_markdown", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "src/parser.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_init_rationale_1", + "target": "tests_init", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/__init__.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_adapters_rationale_1", + "target": "tests_test_adapters", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adapters.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial_rationale_1", + "target": "tests_test_adversarial", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adversarial.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial_rationale_105", + "target": "tests_test_adversarial_test_adversarial_subprocess_cli_success_stdout", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adversarial.py", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial_rationale_149", + "target": "tests_test_adversarial_test_adversarial_subprocess_cli_empty_content", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adversarial.py", + "source_location": "L149", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial_rationale_15", + "target": "tests_test_adversarial_test_adversarial_sao_paulo_city_vs_fc", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adversarial.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial_rationale_186", + "target": "tests_test_adversarial_test_adversarial_subprocess_cli_missing_required_field", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adversarial.py", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial_rationale_221", + "target": "tests_test_adversarial_test_adversarial_subprocess_cli_corrupted_json", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adversarial.py", + "source_location": "L221", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial_rationale_45", + "target": "tests_test_adversarial_test_adversarial_apple_fruit_recipe", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adversarial.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "tests_test_adversarial_rationale_69", + "target": "tests_test_adversarial_test_adversarial_related_entity_without_scope_context", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_adversarial.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "tests_test_benchmark_24_rationale_1", + "target": "tests_test_benchmark_24", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_benchmark_24.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_classifier_rationale_1", + "target": "tests_test_classifier", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_classifier.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_cli_rationale_1", + "target": "tests_test_cli", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_cli.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_rationale_317", + "target": "tests_test_extract_article_contents_test_e2e_live_article_extraction", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L317", + "weight": 1.0 + }, + { + "source": "tests_test_extract_article_contents_rationale_361", + "target": "tests_test_extract_article_contents_test_e2e_cli_live_execution", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L361", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_1", + "target": "tests_test_extract_google_news", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_112", + "target": "tests_test_extract_google_news_test_parse_google_news_rss_with_fixture", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L112", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_139", + "target": "tests_test_extract_google_news_test_resolve_article_url_fallback", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L139", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_149", + "target": "tests_test_extract_google_news_test_resolve_article_url_success", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L149", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_162", + "target": "tests_test_extract_google_news_test_resolve_articles_urls_batch", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L162", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_187", + "target": "tests_test_extract_google_news_test_extract_google_news_orchestration_mocked", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L187", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_214", + "target": "tests_test_extract_google_news_test_cli_execution_stdout", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L214", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_235", + "target": "tests_test_extract_google_news_test_cli_execution_file_output", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L235", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_254", + "target": "tests_test_extract_google_news_test_cli_empty_query_error", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L254", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_263", + "target": "tests_test_extract_google_news_test_cli_network_error_handling", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L263", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_282", + "target": "tests_test_extract_google_news_test_e2e_resolve_real_google_news_url", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L282", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_303", + "target": "tests_test_extract_google_news_test_e2e_extract_google_news_live_pipeline", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L303", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_319", + "target": "tests_test_extract_google_news_test_e2e_cli_live_file_output", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L319", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_33", + "target": "tests_test_extract_google_news_sample_rss_xml", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_38", + "target": "tests_test_extract_google_news_test_get_hl_gl_ceid_default_mappings", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_61", + "target": "tests_test_extract_google_news_test_get_hl_gl_ceid_with_custom_locale", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_79", + "target": "tests_test_extract_google_news_test_get_hl_gl_ceid_dynamic_fallback", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L79", + "weight": 1.0 + }, + { + "source": "tests_test_extract_google_news_rationale_87", + "target": "tests_test_extract_google_news_test_search_query_validation", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L87", + "weight": 1.0 + }, + { + "source": "tests_test_language_rationale_1", + "target": "tests_test_language", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_language.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_models_rationale_1", + "target": "tests_test_models", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_1", + "target": "tests_test_select_article_extractor", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_116", + "target": "tests_test_select_article_extractor_test_ct_001_three_candidates_clear_winner", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L116", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_129", + "target": "tests_test_select_article_extractor_test_ct_002_technical_tie_smallest_shingles", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L129", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_141", + "target": "tests_test_select_article_extractor_test_ct_003_technical_tie_priority_fallback", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L141", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_162", + "target": "tests_test_select_article_extractor_test_ct_004_three_candidates_no_consensus", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L162", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_177", + "target": "tests_test_select_article_extractor_test_ct_005_two_candidates_no_consensus", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L177", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_191", + "target": "tests_test_select_article_extractor_test_ct_006_single_usable_candidate", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L191", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_203", + "target": "tests_test_select_article_extractor_test_ct_007_degraded_candidates_only", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L203", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_215", + "target": "tests_test_select_article_extractor_test_ct_008_all_candidates_unavailable", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L215", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_227", + "target": "tests_test_select_article_extractor_test_ct_009_small_fragment_loses_due_to_low_coverage", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L227", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_244", + "target": "tests_test_select_article_extractor_test_ct_010_excessive_boilerplate_loses_due_to_low_support", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L244", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_260", + "target": "tests_test_select_article_extractor_test_ct_011_partial_content_loses_due_to_low_coverage", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L260", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_273", + "target": "tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L273", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_299", + "target": "tests_test_select_article_extractor_test_ct_013_empty_articles_list", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L299", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_318", + "target": "tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L318", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_335", + "target": "tests_test_select_article_extractor_test_integration_reference_file", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L335", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_364", + "target": "tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L364", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_398", + "target": "tests_test_select_article_extractor_test_integration_large_batch_determinism", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L398", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_447", + "target": "tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L447", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_484", + "target": "tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L484", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_521", + "target": "tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L521", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_549", + "target": "tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L549", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_562", + "target": "tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L562", + "weight": 1.0 + }, + { + "source": "tests_test_select_article_extractor_rationale_60", + "target": "tests_test_select_article_extractor_test_normalize_text_markdown_images_stripped_while_links_preserved", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_checklists_poc_readiness", + "target": "specs_001_multilingual_entity_classifier_plan", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_checklists_poc_readiness", + "target": "specs_001_multilingual_entity_classifier_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_checklists_requirements", + "target": "specs_001_multilingual_entity_classifier_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/checklists/requirements.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_plan", + "target": "specs_001_multilingual_entity_classifier_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/plan.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_tasks", + "target": "specs_001_multilingual_entity_classifier_plan", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_001_multilingual_entity_classifier_tasks", + "target": "specs_001_multilingual_entity_classifier_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/001-multilingual-entity-classifier/tasks.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_readiness", + "target": "specs_002_google_news_extractor_contracts_cli_contract", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_readiness", + "target": "specs_002_google_news_extractor_data_model", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_readiness", + "target": "specs_002_google_news_extractor_plan", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_readiness", + "target": "specs_002_google_news_extractor_research", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_readiness", + "target": "specs_002_google_news_extractor_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/readiness.md", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_checklists_requirements", + "target": "specs_002_google_news_extractor_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/checklists/requirements.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_plan", + "target": "specs_002_google_news_extractor_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/plan.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks", + "target": "specs_002_google_news_extractor_contracts_cli_contract", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks", + "target": "specs_002_google_news_extractor_plan", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_002_google_news_extractor_tasks", + "target": "specs_002_google_news_extractor_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/002-google-news-extractor/tasks.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_checklists_extraction", + "target": "specs_003_article_content_extractor_data_model", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_checklists_extraction", + "target": "specs_003_article_content_extractor_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/checklists/extraction.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_003_article_content_extractor_checklists_requirements", + "target": "specs_003_article_content_extractor_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/003-article-content-extractor/checklists/requirements.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_checklists_deterministic_selection", + "target": "specs_004_deterministic_content_selection_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/checklists/deterministic-selection.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_checklists_requirements", + "target": "specs_004_deterministic_content_selection_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/checklists/requirements.md", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_contracts_cli_contract", + "target": "specs_004_deterministic_content_selection_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/contracts/cli-contract.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_contracts_json_schema", + "target": "specs_004_deterministic_content_selection_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/contracts/json-schema.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_data_model", + "target": "specs_004_deterministic_content_selection_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/data-model.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_plan", + "target": "specs_004_deterministic_content_selection_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_plan", + "target": "specs_004_deterministic_content_selection_research", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_plan", + "target": "specs_004_deterministic_content_selection_data_model", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_plan", + "target": "specs_004_deterministic_content_selection_quickstart", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/plan.md", + "source_location": "L90", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_quickstart", + "target": "specs_004_deterministic_content_selection_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/quickstart.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_research", + "target": "specs_004_deterministic_content_selection_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/research.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks", + "target": "specs_004_deterministic_content_selection_plan", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "specs_004_deterministic_content_selection_tasks", + "target": "specs_004_deterministic_content_selection_spec", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "specs/004-deterministic-content-selection/tasks.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "classify_emit_error", + "target": "src_models_errorcode", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "parameter_type", + "source_file": "classify.py", + "source_location": "L73", + "weight": 0.8 + }, + { + "source": "classify_main", + "target": "src_models_errorcode", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "classify.py", + "source_location": "L109", + "weight": 0.8 + }, + { + "source": "classify_main", + "target": "src_models_ecpsnapshot", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "classify.py", + "source_location": "L126", + "weight": 0.8 + }, + { + "source": "src_adapters_base_basenlpadapter", + "target": "src_models_ecpsnapshot", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "src/adapters/base.py", + "source_location": "L24", + "weight": 0.8 + }, + { + "source": "src_adapters_base_basenlpadapter", + "target": "src_models_classificationresult", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "src/adapters/base.py", + "source_location": "L26", + "weight": 0.8 + }, + { + "source": "src_adapters_embeddings_localembeddingsadapter", + "target": "src_models_ecpsnapshot", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "src/adapters/embeddings.py", + "source_location": "L39", + "weight": 0.8 + }, + { + "source": "src_adapters_embeddings_localembeddingsadapter", + "target": "src_models_classificationresult", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "src/adapters/embeddings.py", + "source_location": "L41", + "weight": 0.8 + }, + { + "source": "src_adapters_llm_llmfallbackadapter", + "target": "src_models_ecpsnapshot", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "src/adapters/llm.py", + "source_location": "L30", + "weight": 0.8 + }, + { + "source": "src_adapters_llm_llmfallbackadapter", + "target": "src_models_classificationresult", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "src/adapters/llm.py", + "source_location": "L32", + "weight": 0.8 + }, + { + "source": "src_classifier_inherenceclassifier", + "target": "src_models_decisioncategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "src/classifier.py", + "source_location": "L151", + "weight": 0.8 + }, + { + "source": "src_classifier_inherenceclassifier", + "target": "src_adapters_embeddings_localembeddingsadapter", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "src/classifier.py", + "source_location": "L53", + "weight": 0.8 + }, + { + "source": "src_classifier_inherenceclassifier", + "target": "src_adapters_llm_llmfallbackadapter", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "src/classifier.py", + "source_location": "L58", + "weight": 0.8 + }, + { + "source": "src_classifier_inherenceclassifier", + "target": "src_models_classificationresult", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "src/classifier.py", + "source_location": "L60", + "weight": 0.8 + }, + { + "source": "src_classifier_inherenceclassifier", + "target": "src_models_ecpsnapshot", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "src/classifier.py", + "source_location": "L60", + "weight": 0.8 + }, + { + "source": "tests_test_adversarial_test_adversarial_apple_fruit_recipe", + "target": "src_models_decisioncategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_adversarial.py", + "source_location": "L64", + "weight": 0.8 + }, + { + "source": "tests_test_adversarial_test_adversarial_related_entity_without_scope_context", + "target": "src_models_decisioncategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_adversarial.py", + "source_location": "L99", + "weight": 0.8 + }, + { + "source": "tests_test_adversarial_test_adversarial_sao_paulo_city_vs_fc", + "target": "src_models_decisioncategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_adversarial.py", + "source_location": "L39", + "weight": 0.8 + }, + { + "source": "tests_test_benchmark_24_classifier", + "target": "src_classifier_inherenceclassifier", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_benchmark_24.py", + "source_location": "L24", + "weight": 0.8 + }, + { + "source": "tests_test_benchmark_24_test_benchmark_case", + "target": "src_models_ecpsnapshot", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_benchmark_24.py", + "source_location": "L38", + "weight": 0.8 + }, + { + "source": "tests_test_classifier_petrobras_ecp", + "target": "src_models_ecpsnapshot", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_classifier.py", + "source_location": "L11", + "weight": 0.8 + }, + { + "source": "tests_test_classifier_petrobras_ecp", + "target": "src_models_relatedentity", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_classifier.py", + "source_location": "L20", + "weight": 0.8 + }, + { + "source": "tests_test_classifier_test_contextual_inherent", + "target": "src_models_decisioncategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_classifier.py", + "source_location": "L57", + "weight": 0.8 + }, + { + "source": "tests_test_classifier_test_direct_inherent", + "target": "src_models_decisioncategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_classifier.py", + "source_location": "L41", + "weight": 0.8 + }, + { + "source": "tests_test_classifier_test_negative_anchor_suppression", + "target": "src_models_decisioncategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_classifier.py", + "source_location": "L98", + "weight": 0.8 + }, + { + "source": "tests_test_classifier_test_not_related", + "target": "src_models_decisioncategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_classifier.py", + "source_location": "L86", + "weight": 0.8 + }, + { + "source": "tests_test_classifier_test_tangential_inherent", + "target": "src_models_decisioncategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_classifier.py", + "source_location": "L72", + "weight": 0.8 + }, + { + "source": "tests_test_extract_article_contents_test_cli_main_success", + "target": "scripts_extract_article_contents_articlecrawler", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L295", + "weight": 0.8 + }, + { + "source": "tests_test_extract_article_contents_test_crawler_error_isolation", + "target": "scripts_extract_article_contents_articlecrawler", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L250", + "weight": 0.8 + }, + { + "source": "tests_test_extract_article_contents_test_newspaper_extractor", + "target": "scripts_extract_article_contents_newspaperdata", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L198", + "weight": 0.8 + }, + { + "source": "tests_test_extract_article_contents_test_process_batch_with_limit", + "target": "scripts_extract_article_contents_articlecrawler", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L275", + "weight": 0.8 + }, + { + "source": "tests_test_extract_article_contents_test_readability_extractor", + "target": "scripts_extract_article_contents_readabilitydata", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L208", + "weight": 0.8 + }, + { + "source": "tests_test_extract_article_contents_test_trafilatura_extractor", + "target": "scripts_extract_article_contents_trafilaturadata", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_extract_article_contents.py", + "source_location": "L189", + "weight": 0.8 + }, + { + "source": "tests_test_extract_google_news_test_e2e_extract_google_news_live_pipeline", + "target": "scripts_extract_google_news_extractionresult", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L307", + "weight": 0.8 + }, + { + "source": "tests_test_extract_google_news_test_extract_google_news_orchestration_mocked", + "target": "scripts_extract_google_news_extractionresult", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_extract_google_news.py", + "source_location": "L202", + "weight": 0.8 + }, + { + "source": "tests_test_models_test_classification_error_serialization", + "target": "src_models_errorcode", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_models.py", + "source_location": "L90", + "weight": 0.8 + }, + { + "source": "tests_test_models_test_classification_result_serialization", + "target": "src_models_decisioncategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_models.py", + "source_location": "L72", + "weight": 0.8 + }, + { + "source": "tests_test_models_test_ecp_snapshot_defaults", + "target": "src_models_ecpsnapshot", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_models.py", + "source_location": "L53", + "weight": 0.8 + }, + { + "source": "tests_test_models_test_ecp_snapshot_missing_required", + "target": "src_models_ecpsnapshot", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_models.py", + "source_location": "L67", + "weight": 0.8 + }, + { + "source": "tests_test_models_test_ecp_snapshot_valid", + "target": "src_models_ecpsnapshot", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_models.py", + "source_location": "L36", + "weight": 0.8 + }, + { + "source": "tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", + "target": "scripts_select_article_extractor_extractorname", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L380", + "weight": 0.8 + }, + { + "source": "tests_test_select_article_extractor_test_ct_001_three_candidates_clear_winner", + "target": "scripts_select_article_extractor_extractorname", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L124", + "weight": 0.8 + }, + { + "source": "tests_test_select_article_extractor_test_ct_002_technical_tie_smallest_shingles", + "target": "scripts_select_article_extractor_extractorname", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L137", + "weight": 0.8 + }, + { + "source": "tests_test_select_article_extractor_test_ct_003_technical_tie_priority_fallback", + "target": "scripts_select_article_extractor_extractorname", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L149", + "weight": 0.8 + }, + { + "source": "tests_test_select_article_extractor_test_ct_004_three_candidates_no_consensus", + "target": "scripts_select_article_extractor_extractorname", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L172", + "weight": 0.8 + }, + { + "source": "tests_test_select_article_extractor_test_ct_005_two_candidates_no_consensus", + "target": "scripts_select_article_extractor_extractorname", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L186", + "weight": 0.8 + }, + { + "source": "tests_test_select_article_extractor_test_ct_006_single_usable_candidate", + "target": "scripts_select_article_extractor_extractorname", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L198", + "weight": 0.8 + }, + { + "source": "tests_test_select_article_extractor_test_ct_007_degraded_candidates_only", + "target": "scripts_select_article_extractor_extractorname", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L211", + "weight": 0.8 + }, + { + "source": "tests_test_select_article_extractor_test_ct_008_all_candidates_unavailable", + "target": "scripts_select_article_extractor_extractorname", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L222", + "weight": 0.8 + }, + { + "source": "tests_test_select_article_extractor_test_ct_009_small_fragment_loses_due_to_low_coverage", + "target": "scripts_select_article_extractor_extractorname", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L239", + "weight": 0.8 + }, + { + "source": "tests_test_select_article_extractor_test_ct_010_excessive_boilerplate_loses_due_to_low_support", + "target": "scripts_select_article_extractor_extractorname", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L256", + "weight": 0.8 + }, + { + "source": "tests_test_select_article_extractor_test_ct_011_partial_content_loses_due_to_low_coverage", + "target": "scripts_select_article_extractor_extractorname", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_select_article_extractor.py", + "source_location": "L269", + "weight": 0.8 + } + ], + "hyperedges": [], + "built_at_commit": "6a45368cb0061020764a5dd31edf6f7eb0e54475" +} \ No newline at end of file diff --git a/graphify-out/2026-08-21/manifest.json b/graphify-out/2026-08-21/manifest.json new file mode 100644 index 0000000..30f9a3e --- /dev/null +++ b/graphify-out/2026-08-21/manifest.json @@ -0,0 +1,818 @@ +{ + ".specify/scripts/powershell/check-prerequisites.ps1": { + "mtime": 1787189272.2023797, + "seen": 1787189326.0933716, + "ast_hash": "ab9d4c9d5772d28c6b2150b1f53ac638", + "semantic_hash": "" + }, + ".specify/scripts/powershell/common.ps1": { + "mtime": 1787189272.20638, + "seen": 1787189326.0933838, + "ast_hash": "6d1dc2322173d3cd13a3633d61324293", + "semantic_hash": "" + }, + ".specify/scripts/powershell/create-new-feature.ps1": { + "mtime": 1787189272.211369, + "seen": 1787189326.0933893, + "ast_hash": "fad051375e6dcd47030cc49188472fe1", + "semantic_hash": "" + }, + ".specify/scripts/powershell/resolve-template.ps1": { + "mtime": 1787189272.2143798, + "seen": 1787189326.0933924, + "ast_hash": "645ad018c6297df6e23949ac3e915749", + "semantic_hash": "" + }, + ".specify/scripts/powershell/setup-plan.ps1": { + "mtime": 1787189272.2183795, + "seen": 1787189326.0933957, + "ast_hash": "02abf0794256a7423782adc760f0e0ca", + "semantic_hash": "" + }, + ".specify/scripts/powershell/setup-tasks.ps1": { + "mtime": 1787189272.22138, + "seen": 1787189326.093398, + "ast_hash": "9aa2f52ce7abece8476845b1f21a0ced", + "semantic_hash": "" + }, + ".agents/skills/graphify/SKILL.md": { + "mtime": 1787189375.57439, + "seen": 1787189383.8494325, + "ast_hash": "1656a8a8e4a05bbe69f32cd15de81e87", + "semantic_hash": "" + }, + ".agents/skills/graphify/references/add-watch.md": { + "mtime": 1787176247.1083012, + "seen": 1787189352.7428358, + "ast_hash": "d59d027fe449f06aa03905a01184e779", + "semantic_hash": "" + }, + ".agents/skills/graphify/references/exports.md": { + "mtime": 1787176247.109326, + "seen": 1787189352.742837, + "ast_hash": "9da2a2152e60a22f07f05fed5158f287", + "semantic_hash": "" + }, + ".agents/skills/graphify/references/extraction-spec.md": { + "mtime": 1787176247.109326, + "seen": 1787189352.7428386, + "ast_hash": "42fef56a01698118f7fd722acdadea34", + "semantic_hash": "" + }, + ".agents/skills/graphify/references/github-and-merge.md": { + "mtime": 1787176247.1118312, + "seen": 1787189352.7428403, + "ast_hash": "cde13df085e4c492aeb7ba298a996d0d", + "semantic_hash": "" + }, + ".agents/skills/graphify/references/hooks.md": { + "mtime": 1787176247.1128435, + "seen": 1787189352.7428415, + "ast_hash": "3f545db6ce646650bb9de588f5512a27", + "semantic_hash": "" + }, + ".agents/skills/graphify/references/query.md": { + "mtime": 1787176247.1138976, + "seen": 1787189352.742843, + "ast_hash": "3c46f8ad006874260614ed8657d02307", + "semantic_hash": "" + }, + ".agents/skills/graphify/references/transcribe.md": { + "mtime": 1787176247.1138976, + "seen": 1787189352.7428443, + "ast_hash": "67b6a5fa6c0974e18f60db9f8932fbd8", + "semantic_hash": "" + }, + ".agents/skills/graphify/references/update.md": { + "mtime": 1787176247.11542, + "seen": 1787189352.7428463, + "ast_hash": "9378bd03d56baaf78bd738ab3848f142", + "semantic_hash": "" + }, + ".agents/skills/ponytail-audit/SKILL.md": { + "mtime": 1786995804.1528327, + "seen": 1787189326.0934196, + "ast_hash": "741076540e91247a0bace7b89c27ac6b", + "semantic_hash": "" + }, + ".agents/skills/ponytail-debt/SKILL.md": { + "mtime": 1786995804.1528327, + "seen": 1787189326.0934212, + "ast_hash": "19c1eef33c9b109abb5805a762a545c8", + "semantic_hash": "" + }, + ".agents/skills/ponytail-gain/SKILL.md": { + "mtime": 1786995804.1542277, + "seen": 1787189326.0934231, + "ast_hash": "8f9cd980326238785d2fc23a9cfddc96", + "semantic_hash": "" + }, + ".agents/skills/ponytail-help/SKILL.md": { + "mtime": 1786995804.1542277, + "seen": 1787189326.0934246, + "ast_hash": "25b3214341fdc2f0805d2f8a5da6fefd", + "semantic_hash": "" + }, + ".agents/skills/ponytail-review/SKILL.md": { + "mtime": 1786995804.1552386, + "seen": 1787189326.0934267, + "ast_hash": "52f93e973047baa9a906c6dc5879a4a6", + "semantic_hash": "" + }, + ".agents/skills/ponytail/SKILL.md": { + "mtime": 1786995804.1562397, + "seen": 1787189326.0934284, + "ast_hash": "33f013ce03c8c66a6002ef941a433b81", + "semantic_hash": "" + }, + ".agents/skills/speckit-analyze/SKILL.md": { + "mtime": 1787189272.133064, + "seen": 1787189326.0934305, + "ast_hash": "d0496db1f414b10bb0c8d57d5009f378", + "semantic_hash": "" + }, + ".agents/skills/speckit-checklist/SKILL.md": { + "mtime": 1787189272.1603796, + "seen": 1787189326.0934336, + "ast_hash": "94a6ee97b010344e446c25798ad7779b", + "semantic_hash": "" + }, + ".agents/skills/speckit-clarify/SKILL.md": { + "mtime": 1787189272.137533, + "seen": 1787189326.0934358, + "ast_hash": "9ed49f88546289c1f40df65c485ace1a", + "semantic_hash": "" + }, + ".agents/skills/speckit-constitution/SKILL.md": { + "mtime": 1787189272.1413815, + "seen": 1787189326.0934374, + "ast_hash": "146185078e43d2e95014fda5b36f7461", + "semantic_hash": "" + }, + ".agents/skills/speckit-converge/SKILL.md": { + "mtime": 1787189272.1503813, + "seen": 1787189326.0934393, + "ast_hash": "6857bd3f30fc0c52352a450a8c2c0591", + "semantic_hash": "" + }, + ".agents/skills/speckit-implement/SKILL.md": { + "mtime": 1787189272.146373, + "seen": 1787189326.0934412, + "ast_hash": "562d500cddb51ca6d5f23971f7539341", + "semantic_hash": "" + }, + ".agents/skills/speckit-plan/SKILL.md": { + "mtime": 1787189272.15438, + "seen": 1787189326.0934432, + "ast_hash": "aba2d03c1b88c8f928ac22f7e3d75a25", + "semantic_hash": "" + }, + ".agents/skills/speckit-specify/SKILL.md": { + "mtime": 1787189272.165381, + "seen": 1787189326.093445, + "ast_hash": "a9dd8232755de1ac099f67ae212978b9", + "semantic_hash": "" + }, + ".agents/skills/speckit-tasks/SKILL.md": { + "mtime": 1787189272.1693797, + "seen": 1787189326.0934472, + "ast_hash": "faba87885d7a9309af89e1ad27d08e10", + "semantic_hash": "" + }, + ".agents/skills/speckit-taskstoissues/SKILL.md": { + "mtime": 1787189272.172365, + "seen": 1787189326.093449, + "ast_hash": "b99619d8bd31aac390a0ff96943d165c", + "semantic_hash": "" + }, + ".specify/memory/constitution.md": { + "mtime": 1787189272.25438, + "seen": 1787189326.0934513, + "ast_hash": "dcefb6b60e7cb3db2e966977b6f02f18", + "semantic_hash": "" + }, + ".specify/templates/checklist-template.md": { + "mtime": 1787189272.2233796, + "seen": 1787189326.0934534, + "ast_hash": "5af23404f7e1314e93fab2bcfcfa5c23", + "semantic_hash": "" + }, + ".specify/templates/constitution-template.md": { + "mtime": 1787189272.2263799, + "seen": 1787189326.093455, + "ast_hash": "dcefb6b60e7cb3db2e966977b6f02f18", + "semantic_hash": "" + }, + ".specify/templates/plan-template.md": { + "mtime": 1787189272.2293687, + "seen": 1787189326.0934572, + "ast_hash": "311db0670c3d19d2f5b781de97529b79", + "semantic_hash": "" + }, + ".specify/templates/spec-template.md": { + "mtime": 1787189272.2313685, + "seen": 1787189326.0934594, + "ast_hash": "45ac8538bc1220324c9f0d610145b53f", + "semantic_hash": "" + }, + ".specify/templates/tasks-template.md": { + "mtime": 1787189272.2343798, + "seen": 1787189326.0934615, + "ast_hash": "f8b4f62d384defa0a559bdbbaacb0540", + "semantic_hash": "" + }, + ".specify/workflows/speckit/workflow.yml": { + "mtime": 1787160407.4626267, + "seen": 1787189326.0934637, + "ast_hash": "06fd89e478bb8e0e668917a5f02f9055", + "semantic_hash": "" + }, + ".agents/rules/graphify.md": { + "mtime": 1787189347.4441817, + "seen": 1787189352.7428298, + "ast_hash": "a0e4d192b9e2e17256124dbfc8e24e6a", + "semantic_hash": "" + }, + ".agents/workflows/graphify.md": { + "mtime": 1787189347.4441817, + "seen": 1787189352.7449548, + "ast_hash": "a831cf3669f1e6ab85d8a80ebe655f99", + "semantic_hash": "" + }, + "specs/001-multilingual-entity-classifier/checklists/requirements.md": { + "mtime": 1787193985.655018, + "seen": 1787194003.0704188, + "ast_hash": "13e007d6da3f275d34b1f67fda546b81", + "semantic_hash": "" + }, + "specs/001-multilingual-entity-classifier/spec.md": { + "mtime": 1787194850.5106893, + "seen": 1787194931.113662, + "ast_hash": "41587427964956662ffb8f0dffea1027", + "semantic_hash": "" + }, + "specs/001-multilingual-entity-classifier/contracts/cli-contract.md": { + "mtime": 1787194605.824187, + "seen": 1787194638.8537047, + "ast_hash": "c4fdb88a5e3269fb10689a2940b9616f", + "semantic_hash": "" + }, + "specs/001-multilingual-entity-classifier/data-model.md": { + "mtime": 1787194591.677816, + "seen": 1787194638.853709, + "ast_hash": "7ccdd584024c65f16364444e9df4d860", + "semantic_hash": "" + }, + "specs/001-multilingual-entity-classifier/plan.md": { + "mtime": 1787194897.8541067, + "seen": 1787194931.1135547, + "ast_hash": "edcaea62d445dbb073ff30166115788e", + "semantic_hash": "" + }, + "specs/001-multilingual-entity-classifier/quickstart.md": { + "mtime": 1787194877.439851, + "seen": 1787194931.113557, + "ast_hash": "d630b7592e1ee761f1d36cfd0079771d", + "semantic_hash": "" + }, + "specs/001-multilingual-entity-classifier/research.md": { + "mtime": 1787194581.004019, + "seen": 1787194638.8537128, + "ast_hash": "159b7eec565d477f15f2c683c082e40d", + "semantic_hash": "" + }, + "specs/001-multilingual-entity-classifier/tasks.md": { + "mtime": 1787196452.595599, + "seen": 1787196463.1030743, + "ast_hash": "132f38dcd33d45eec9a8ca22ec4de880", + "semantic_hash": "" + }, + "specs/001-multilingual-entity-classifier/checklists/poc-readiness.md": { + "mtime": 1787195218.2475252, + "seen": 1787195225.042909, + "ast_hash": "f8488016a8e749938d2086d34999a91c", + "semantic_hash": "" + }, + "classify.py": { + "mtime": 1787264412.2457643, + "seen": 1787264519.0539427, + "ast_hash": "e89fc4b64bd7606fc466d5338108705b", + "semantic_hash": "" + }, + "pyproject.toml": { + "mtime": 1787264482.8509245, + "seen": 1787264519.0539448, + "ast_hash": "409c1fc0d7bbda6830ccb71c6196cb2f", + "semantic_hash": "" + }, + "src/__init__.py": { + "mtime": 1787195832.559486, + "seen": 1787196463.0953057, + "ast_hash": "13284e9b9f10de535dba5f461ecd7c7c", + "semantic_hash": "" + }, + "src/adapters/__init__.py": { + "mtime": 1787195842.2716768, + "seen": 1787196463.0953088, + "ast_hash": "541577ed019347ac3864002f85c116f1", + "semantic_hash": "" + }, + "src/adapters/base.py": { + "mtime": 1787264412.2437606, + "seen": 1787264519.0542011, + "ast_hash": "220635d5d74e73f58259069bf5207908", + "semantic_hash": "" + }, + "src/adapters/embeddings.py": { + "mtime": 1787264437.92723, + "seen": 1787264519.0542023, + "ast_hash": "7beb0ecfb7482c1fd10422da99f69abe", + "semantic_hash": "" + }, + "src/adapters/llm.py": { + "mtime": 1787264412.2437606, + "seen": 1787264519.0542035, + "ast_hash": "ba2990328f5b25ac6cdfc3b57acc9d39", + "semantic_hash": "" + }, + "src/classifier.py": { + "mtime": 1787264459.052089, + "seen": 1787264519.0542045, + "ast_hash": "b8fb440374ecd66bb8bf67c70c19ed1f", + "semantic_hash": "" + }, + "src/language.py": { + "mtime": 1787264437.9312274, + "seen": 1787264519.0542057, + "ast_hash": "cbaf52272ebb05372e34a05cd201c270", + "semantic_hash": "" + }, + "src/models.py": { + "mtime": 1787264437.9302285, + "seen": 1787264519.054207, + "ast_hash": "16e604c14f7d66634dc9e2ed7959dd7c", + "semantic_hash": "" + }, + "src/parser.py": { + "mtime": 1787264437.9312274, + "seen": 1787264519.054208, + "ast_hash": "d43fca3f063534e3626f86f36a97a2cc", + "semantic_hash": "" + }, + "tests/__init__.py": { + "mtime": 1787195847.5186412, + "seen": 1787196463.095328, + "ast_hash": "42d67f813e6eeac2ffca24fe6206aa9b", + "semantic_hash": "" + }, + "tests/test_adapters.py": { + "mtime": 1787264437.9292288, + "seen": 1787264519.0543096, + "ast_hash": "7ed9ba6f62fef404bfc28a2e16ada647", + "semantic_hash": "" + }, + "tests/test_benchmark_24.py": { + "mtime": 1787264437.9302285, + "seen": 1787264519.0543122, + "ast_hash": "052a51561002be035de1a79455256b67", + "semantic_hash": "" + }, + "tests/test_classifier.py": { + "mtime": 1787264437.92723, + "seen": 1787264519.0543132, + "ast_hash": "14da0c7a7d4c08762437ca777c086dea", + "semantic_hash": "" + }, + "tests/test_cli.py": { + "mtime": 1787264437.9292288, + "seen": 1787264519.0543146, + "ast_hash": "b6f57994937363f8a1b0f2f66ea53d3a", + "semantic_hash": "" + }, + "tests/test_language.py": { + "mtime": 1787264437.9292288, + "seen": 1787264519.0543184, + "ast_hash": "f1a09702410864434274f1b347769742", + "semantic_hash": "" + }, + "tests/test_models.py": { + "mtime": 1787264437.9302285, + "seen": 1787264519.0543194, + "ast_hash": "7ec72b612bf758be8c9a3617ce18b132", + "semantic_hash": "" + }, + "examples/content_northvolt_de.md": { + "mtime": 1787195963.813741, + "seen": 1787196463.1020777, + "ast_hash": "9033a8bdde7f2caba952eb0f50af8ba6", + "semantic_hash": "" + }, + "examples/content_presal_pt.md": { + "mtime": 1787195950.0247998, + "seen": 1787196463.10208, + "ast_hash": "d08c26af041b833fbc9e6673aec4ee80", + "semantic_hash": "" + }, + "examples/content_tangential_es.md": { + "mtime": 1787195975.5271506, + "seen": 1787196463.1020815, + "ast_hash": "55f37cf83b54926e1f5751a4ba6335a9", + "semantic_hash": "" + }, + "requirements.txt": { + "mtime": 1787240110.13472, + "seen": 1787240516.5993943, + "ast_hash": "f5d99630fa9c93c5fbaa44814f107e70", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/de/contextual.md": { + "mtime": 1787196180.7794595, + "seen": 1787196463.103077, + "ast_hash": "1e78706552a34512ac2a2b772ec2ecd1", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/de/direct.md": { + "mtime": 1787196169.5728126, + "seen": 1787196463.1030784, + "ast_hash": "25f60b38e35c96356d7ecbabdd6de545", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/de/not_related.md": { + "mtime": 1787196204.0937815, + "seen": 1787196463.1030807, + "ast_hash": "6d6165d5279cda9cde833a6aa2d71164", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/de/tangential.md": { + "mtime": 1787196193.1870873, + "seen": 1787196463.1030822, + "ast_hash": "3f5ddf01ca728aa2d0116882604718cf", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/en/contextual.md": { + "mtime": 1787196066.4274058, + "seen": 1787196463.1030838, + "ast_hash": "89114901dc8579adafa4fb503afbc761", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/en/direct.md": { + "mtime": 1787196054.1496131, + "seen": 1787196463.1030855, + "ast_hash": "dd15e4f08c2757ee499da0bea578c04c", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/en/not_related.md": { + "mtime": 1787196350.3334656, + "seen": 1787196463.103087, + "ast_hash": "9e2c91a29282eac5d4c21c38bef9767e", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/en/tangential.md": { + "mtime": 1787196082.7302663, + "seen": 1787196463.1030884, + "ast_hash": "fe681417b697406ea16e0e78f2df8ce4", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/es/contextual.md": { + "mtime": 1787196129.959492, + "seen": 1787196463.1030898, + "ast_hash": "8668670e9a018ba879fb256dbe5bd2fa", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/es/direct.md": { + "mtime": 1787196118.6405888, + "seen": 1787196463.103091, + "ast_hash": "d01aa9c2cda827336558b993098fa4a1", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/es/not_related.md": { + "mtime": 1787196152.6110358, + "seen": 1787196463.1030927, + "ast_hash": "720215fd2a9ec45f745564869b20a19d", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/es/tangential.md": { + "mtime": 1787196141.436479, + "seen": 1787196463.1030943, + "ast_hash": "ef16422876c7925ea0b2631483468f12", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/fr/contextual.md": { + "mtime": 1787196288.4152596, + "seen": 1787196463.1030955, + "ast_hash": "bf01dc91dc0a8abe21eca424fb44d0c4", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/fr/direct.md": { + "mtime": 1787196277.0201283, + "seen": 1787196463.1030967, + "ast_hash": "772cc74cec96c666c7e348f600720e14", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/fr/not_related.md": { + "mtime": 1787196312.47212, + "seen": 1787196463.1030984, + "ast_hash": "da5869eda42812d47e82a4cabf77f984", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/fr/tangential.md": { + "mtime": 1787196301.2256103, + "seen": 1787196463.103103, + "ast_hash": "6926ee30a0f12424c3c4f6691daeb1fd", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/it/contextual.md": { + "mtime": 1787196234.462201, + "seen": 1787196463.1031046, + "ast_hash": "53dfa9859257d99d54b3479702abbd11", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/it/direct.md": { + "mtime": 1787196221.6644733, + "seen": 1787196463.1031058, + "ast_hash": "493cbc253516b219d6b0d745bf6c750f", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/it/not_related.md": { + "mtime": 1787196259.3629923, + "seen": 1787196463.1031072, + "ast_hash": "3fbc57bc9b9c78af4b6eb93343cc4634", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/it/tangential.md": { + "mtime": 1787196245.9183564, + "seen": 1787196463.1031086, + "ast_hash": "43f800646fc2a4060528e7ef851e8d77", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/pt/contextual.md": { + "mtime": 1787196014.2010715, + "seen": 1787196463.10311, + "ast_hash": "2e5b837c09ac05daae5007235e2a85b5", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/pt/direct.md": { + "mtime": 1787196003.236562, + "seen": 1787196463.1031117, + "ast_hash": "f7e5ca68966f5e2b805fde6d46b90f7e", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/pt/not_related.md": { + "mtime": 1787196036.7240841, + "seen": 1787196463.103113, + "ast_hash": "980a58ca0db93f8dbb6c43e1c9108baf", + "semantic_hash": "" + }, + "tests/fixtures/benchmark_24/pt/tangential.md": { + "mtime": 1787196024.9788618, + "seen": 1787196463.1031141, + "ast_hash": "e05ab20a5190cfb5b9d41da64d5273cf", + "semantic_hash": "" + }, + "tests/test_adversarial.py": { + "mtime": 1787264437.9242287, + "seen": 1787264519.0543108, + "ast_hash": "d353633ce31a624a8dcda790efec4d5e", + "semantic_hash": "" + }, + "scripts/extract_google_news.py": { + "mtime": 1787264437.92723, + "seen": 1787264519.0540311, + "ast_hash": "97d8a193901d5e2edf6359fad256b7ef", + "semantic_hash": "" + }, + "tests/test_extract_google_news.py": { + "mtime": 1787264437.9312274, + "seen": 1787264519.054317, + "ast_hash": "7561ad8fedcf1bc6cc8ed1e86a345532", + "semantic_hash": "" + }, + "docs/googlenews_extractor_guia_completo.md": { + "mtime": 1787264437.9282286, + "seen": 1787264519.0578, + "ast_hash": "d7c3c64e2009dded496a08c7c91f63b9", + "semantic_hash": "" + }, + "specs/002-google-news-extractor/checklists/readiness.md": { + "mtime": 1787234305.932687, + "seen": 1787234772.8123577, + "ast_hash": "a1200a6959d41e256a73403dd5c4e1f6", + "semantic_hash": "" + }, + "specs/002-google-news-extractor/checklists/requirements.md": { + "mtime": 1787232386.6763985, + "seen": 1787234772.812359, + "ast_hash": "39cd86af76c9f74baa2984418870b677", + "semantic_hash": "" + }, + "specs/002-google-news-extractor/contracts/cli_contract.md": { + "mtime": 1787236744.3139226, + "seen": 1787236817.4979818, + "ast_hash": "76a61ad31df989244edc5e739081bf7b", + "semantic_hash": "" + }, + "specs/002-google-news-extractor/data-model.md": { + "mtime": 1787234040.8134317, + "seen": 1787234772.8123617, + "ast_hash": "e8380c98d2f6418f60ac8a511ecdb637", + "semantic_hash": "" + }, + "specs/002-google-news-extractor/plan.md": { + "mtime": 1787236725.9825225, + "seen": 1787236817.4983613, + "ast_hash": "a787c974414ae6c173d4c39e76113c31", + "semantic_hash": "" + }, + "specs/002-google-news-extractor/quickstart.md": { + "mtime": 1787236764.0206513, + "seen": 1787236817.4983652, + "ast_hash": "ada22d34a0fa8341f88136cf42f055a9", + "semantic_hash": "" + }, + "specs/002-google-news-extractor/research.md": { + "mtime": 1787236785.0466182, + "seen": 1787236817.498368, + "ast_hash": "60837e6c7463c4413911ceca0087374c", + "semantic_hash": "" + }, + "specs/002-google-news-extractor/spec.md": { + "mtime": 1787236709.0783155, + "seen": 1787236817.4983711, + "ast_hash": "dfd963f7ca351c93e09f74af9b11d19e", + "semantic_hash": "" + }, + "specs/002-google-news-extractor/tasks.md": { + "mtime": 1787236802.4808047, + "seen": 1787236817.4983742, + "ast_hash": "427f24026deaa7c9aca95d99e7587ae6", + "semantic_hash": "" + }, + "scripts/__init__.py": { + "mtime": 1787234973.5782337, + "seen": 1787235020.6850297, + "ast_hash": "627a6c953b250083ebe76ee74d605bb5", + "semantic_hash": "" + }, + "README.md": { + "mtime": 1787274445.4631622, + "seen": 1787274455.3244681, + "ast_hash": "5270e11cfba31a235ba379effb2db0d5", + "semantic_hash": "" + }, + "scripts/extract_article_contents.py": { + "mtime": 1787264465.3415215, + "seen": 1787264519.0540295, + "ast_hash": "2bea6b2a048526cb49d95fb88a001600", + "semantic_hash": "" + }, + "tests/test_extract_article_contents.py": { + "mtime": 1787264437.9292288, + "seen": 1787264519.0543158, + "ast_hash": "56aee72480f05c714865791a935d539c", + "semantic_hash": "" + }, + "docs/prd_extrator_artigos_nlp.md": { + "mtime": 1787237774.0092583, + "seen": 1787240516.5991437, + "ast_hash": "c90f25764acefb91f1160feaf497fb33", + "semantic_hash": "" + }, + "specs/003-article-content-extractor/checklists/extraction.md": { + "mtime": 1787239873.797626, + "seen": 1787240516.6008725, + "ast_hash": "3c78fb563727a7f6f23240dcaad3c010", + "semantic_hash": "" + }, + "specs/003-article-content-extractor/checklists/requirements.md": { + "mtime": 1787237950.8140705, + "seen": 1787240516.600874, + "ast_hash": "16b2bf7a7910722a7aa6c57cdcc31f1c", + "semantic_hash": "" + }, + "specs/003-article-content-extractor/contracts/cli-contract.md": { + "mtime": 1787239569.0560138, + "seen": 1787240516.6008754, + "ast_hash": "9326b1b3c124ad41636c3fae5c9de8b5", + "semantic_hash": "" + }, + "specs/003-article-content-extractor/contracts/json-schema.md": { + "mtime": 1787239578.9314032, + "seen": 1787240516.6008763, + "ast_hash": "93f1da07b16c61de15dc93071434d145", + "semantic_hash": "" + }, + "specs/003-article-content-extractor/data-model.md": { + "mtime": 1787239558.2362826, + "seen": 1787240516.6008773, + "ast_hash": "03ed32de948199c9a498c486e7bdafbd", + "semantic_hash": "" + }, + "specs/003-article-content-extractor/plan.md": { + "mtime": 1787264323.707266, + "seen": 1787264519.0605621, + "ast_hash": "b2232491829a303a49e749c75f3adca2", + "semantic_hash": "" + }, + "specs/003-article-content-extractor/quickstart.md": { + "mtime": 1787239589.9896657, + "seen": 1787240516.6008794, + "ast_hash": "7cac454150d33dad67f683367fca749f", + "semantic_hash": "" + }, + "specs/003-article-content-extractor/research.md": { + "mtime": 1787239545.8330145, + "seen": 1787240516.6008804, + "ast_hash": "beef81df32e2dc16798ece67726daa95", + "semantic_hash": "" + }, + "specs/003-article-content-extractor/spec.md": { + "mtime": 1787264319.2883234, + "seen": 1787264519.060745, + "ast_hash": "187b1307e28a02f0ac44895b5f9cca55", + "semantic_hash": "" + }, + "specs/003-article-content-extractor/tasks.md": { + "mtime": 1787240464.6520643, + "seen": 1787240516.6008823, + "ast_hash": "d95c4763728496703cd89590288a2bed", + "semantic_hash": "" + }, + "scripts/select_article_extractor.py": { + "mtime": 1787273522.903319, + "seen": 1787273548.728257, + "ast_hash": "3e6938964c7e4549051cb1637207698d", + "semantic_hash": "" + }, + "tests/test_select_article_extractor.py": { + "mtime": 1787274189.7777488, + "seen": 1787274207.7989414, + "ast_hash": "9f91e09d47f06140b243b6f516d14c60", + "semantic_hash": "" + }, + "docs/prd_deterministic_content_selection.md": { + "mtime": 1787264674.2038286, + "seen": 1787272611.6604555, + "ast_hash": "2c421402df8b6469ce60eaa984dce666", + "semantic_hash": "" + }, + "specs/004-deterministic-content-selection/checklists/deterministic-selection.md": { + "mtime": 1787272346.8692143, + "seen": 1787272611.6713927, + "ast_hash": "6d9bcda99dbd284ffcbce372102fd868", + "semantic_hash": "" + }, + "specs/004-deterministic-content-selection/checklists/requirements.md": { + "mtime": 1787264728.7202728, + "seen": 1787272611.6713977, + "ast_hash": "074efe6ba551e93f7d005c5462805693", + "semantic_hash": "" + }, + "specs/004-deterministic-content-selection/contracts/cli-contract.md": { + "mtime": 1787274329.2175446, + "seen": 1787274402.0944166, + "ast_hash": "2cd795eaed6198dc343424bd20673728", + "semantic_hash": "" + }, + "specs/004-deterministic-content-selection/contracts/json-schema.md": { + "mtime": 1787271837.7328393, + "seen": 1787272611.6714034, + "ast_hash": "155f0bccb7bcffabcedb6ef86b8003c5", + "semantic_hash": "" + }, + "specs/004-deterministic-content-selection/data-model.md": { + "mtime": 1787271825.5970395, + "seen": 1787272611.671406, + "ast_hash": "23ec4a144f4aeeed9fee259b6165bea3", + "semantic_hash": "" + }, + "specs/004-deterministic-content-selection/plan.md": { + "mtime": 1787271850.1744206, + "seen": 1787272611.671409, + "ast_hash": "3bebc2a73a9632d42ccca646af592133", + "semantic_hash": "" + }, + "specs/004-deterministic-content-selection/quickstart.md": { + "mtime": 1787274324.1467915, + "seen": 1787274402.0946271, + "ast_hash": "a7886ca618af43f33971213e2255b3c6", + "semantic_hash": "" + }, + "specs/004-deterministic-content-selection/research.md": { + "mtime": 1787274316.8544433, + "seen": 1787274402.0946283, + "ast_hash": "73ac1637d31472e25b0a1709cd137e5c", + "semantic_hash": "" + }, + "specs/004-deterministic-content-selection/spec.md": { + "mtime": 1787274311.1564865, + "seen": 1787274402.0946293, + "ast_hash": "b2c994a14871c2e6e1cf4a11db7dbeb5", + "semantic_hash": "" + }, + "specs/004-deterministic-content-selection/tasks.md": { + "mtime": 1787272595.8186145, + "seen": 1787272611.6714194, + "ast_hash": "3a2617478f44c6400ed57088d2039f93", + "semantic_hash": "" + } +} \ No newline at end of file diff --git a/graphify-out/GRAPH_REPORT.md b/graphify-out/GRAPH_REPORT.md index c63d99b..0a64ccc 100644 --- a/graphify-out/GRAPH_REPORT.md +++ b/graphify-out/GRAPH_REPORT.md @@ -1,16 +1,16 @@ -# Graph Report - TextNLPClassifierApp (2026-08-20) +# Graph Report - TextNLPClassifierApp (2026-08-21) ## Corpus Check -- 174 files · ~91,961 words +- 174 files · ~91,990 words - Verdict: corpus is large enough that graph structure adds value. ## Summary -- 1235 nodes · 1548 edges · 131 communities (93 shown, 38 thin omitted) +- 1235 nodes · 1541 edges · 131 communities (93 shown, 38 thin omitted) - Extraction: 97% EXTRACTED · 3% INFERRED · 0% AMBIGUOUS · INFERRED: 51 edges (avg confidence: 0.95) - Token cost: 0 input · 0 output ## Graph Freshness -- Built from commit: `6a45368c` +- Built from commit: `ff7a50e0` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). @@ -458,8 +458,8 @@ Cohesion: 0.07 Nodes (29): 10. Requisitos não funcionais, 11. Critérios de aceite, 12. Casos obrigatórios de teste, 13. Definition of Done, 1. Contexto, 2. Objetivo, 3.1 Incluído, 3.2 Fora do escopo (+21 more) ### Community 116 - "select_article_extractor.py" -Cohesion: 0.16 -Nodes (17): BatchProcessingResult, break_priority_tie(), calculate_consensus_metrics(), ExtractorCandidate, form_active_set(), main(), parse_args(), Namespace (+9 more) +Cohesion: 0.14 +Nodes (19): ArticleSelectionResult, BatchProcessingResult, break_priority_tie(), calculate_consensus_metrics(), ExtractorCandidate, form_active_set(), main(), parse_args() (+11 more) ### Community 117 - "1. Text Normalization Pipeline" Cohesion: 0.11 @@ -471,15 +471,15 @@ Nodes (18): Dependencies & Execution Order, Implementation for User Story 1, Imp ### Community 119 - "select_article_extractor" Cohesion: 0.08 -Nodes (37): ArticleSelectionResult, CandidateStatus, extract_candidate_data(), ExtractorName, Any, Enum, str, Extrai campo de texto, erro e calcula tokens/shingles para um motor. (+29 more) +Nodes (35): CandidateStatus, extract_candidate_data(), ExtractorName, Any, Enum, str, Extrai campo de texto, erro e calcula tokens/shingles para um motor., Nomes canônicos e catálogo fechado dos motores de extração. (+27 more) ### Community 120 - "process_batch" -Cohesion: 0.10 -Nodes (26): atomic_save_json(), process_batch(), Path, Salva dados em JSON de forma atômica utilizando arquivo temporário e rename., Lê o JSON de entrada, valida a estrutura, processa todos os artigos e grava o…, Path, CT-012: A entrada já contém selected_extractor -> Recalcular e substituir…, CT-013: articles está vazio -> Gerar saída válida com articles vazio. (+18 more) +Cohesion: 0.11 +Nodes (24): atomic_save_json(), process_batch(), Path, Salva dados em JSON de forma atômica utilizando arquivo temporário e rename., Lê o JSON de entrada, valida a estrutura, processa todos os artigos e grava o…, Path, CT-012: A entrada já contém selected_extractor -> Recalcular e substituir…, CT-013: articles está vazio -> Gerar saída válida com articles vazio. (+16 more) ### Community 122 - "test_select_article_extractor.py" -Cohesion: 0.21 -Nodes (14): generate_shingles(), normalize_text(), Executa a normalização determinística para comparação: 1. Decodificar entidades…, Gera conjunto de shingles ordenados de tamanho window_size (padrão 5). - Se…, Suíte de Testes Automatizados para o Seletor Determinístico de Extrator. Cobre…, Garante que marcação de imagem Markdown  seja descartada e link…, test_generate_shingles_empty(), test_generate_shingles_short_text() (+6 more) +Cohesion: 0.18 +Nodes (16): generate_shingles(), normalize_text(), Executa a normalização determinística para comparação: 1. Decodificar entidades…, Gera conjunto de shingles ordenados de tamanho window_size (padrão 5). - Se…, Suíte de Testes Automatizados para o Seletor Determinístico de Extrator. Cobre…, Garante que marcação de imagem Markdown  seja descartada e link…, E2E: Executa scripts/select_article_extractor.py como subprocesso real na linha…, test_e2e_cli_subprocess_real_execution() (+8 more) ### Community 123 - "Feature Specification: Deterministic Content Selection" Cohesion: 0.17 diff --git a/graphify-out/cache/ast/v0.9.47-s2/027743d36fd728fded28a085abf202e4eab0102bc5517cf4975a094d5df04c3f.json b/graphify-out/cache/ast/v0.9.47-s2/027743d36fd728fded28a085abf202e4eab0102bc5517cf4975a094d5df04c3f.json new file mode 100644 index 0000000..e5f6bc6 --- /dev/null +++ b/graphify-out/cache/ast/v0.9.47-s2/027743d36fd728fded28a085abf202e4eab0102bc5517cf4975a094d5df04c3f.json @@ -0,0 +1 @@ +{"nodes": [{"id": "$graphify-root$_scripts_select_article_extractor_py", "label": "select_article_extractor.py", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L1"}, {"id": "$graphify-root$_scripts_select_article_extractor_extractorname", "label": "ExtractorName", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L33", "_callable": true, "_callable_class": true}, {"id": "str", "label": "str", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/scripts/select_article_extractor.py"}, {"id": "enum", "label": "Enum", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/scripts/select_article_extractor.py"}, {"id": "$graphify-root$_scripts_select_article_extractor_candidatestatus", "label": "CandidateStatus", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L41", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_scripts_select_article_extractor_extractorcandidate", "label": "ExtractorCandidate", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L62", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_scripts_select_article_extractor_articleselectionresult", "label": "ArticleSelectionResult", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L78", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_scripts_select_article_extractor_batchprocessingresult", "label": "BatchProcessingResult", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L90", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_scripts_select_article_extractor_normalize_text", "label": "normalize_text()", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L106", "_callable": true}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/scripts/select_article_extractor.py"}, {"id": "$graphify-root$_scripts_select_article_extractor_generate_shingles", "label": "generate_shingles()", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L147", "_callable": true}, {"id": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "label": "extract_candidate_data()", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L167", "_callable": true}, {"id": "$graphify-root$_scripts_select_article_extractor_form_active_set", "label": "form_active_set()", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L211", "_callable": true}, {"id": "$graphify-root$_scripts_select_article_extractor_calculate_consensus_metrics", "label": "calculate_consensus_metrics()", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L236", "_callable": true}, {"id": "$graphify-root$_scripts_select_article_extractor_break_priority_tie", "label": "break_priority_tie()", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L284", "_callable": true}, {"id": "$graphify-root$_scripts_select_article_extractor_select_with_consensus", "label": "select_with_consensus()", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L293", "_callable": true}, {"id": "$graphify-root$_scripts_select_article_extractor_select_without_consensus", "label": "select_without_consensus()", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L330", "_callable": true}, {"id": "$graphify-root$_scripts_select_article_extractor_select_article_extractor", "label": "select_article_extractor()", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L387", "_callable": true}, {"id": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "label": "atomic_save_json()", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L448", "_callable": true}, {"id": "path", "label": "Path", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/scripts/select_article_extractor.py"}, {"id": "$graphify-root$_scripts_select_article_extractor_process_batch", "label": "process_batch()", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L470", "_callable": true}, {"id": "$graphify-root$_scripts_select_article_extractor_parse_args", "label": "parse_args()", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L544", "_callable": true}, {"id": "namespace", "label": "Namespace", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/scripts/select_article_extractor.py"}, {"id": "$graphify-root$_scripts_select_article_extractor_main", "label": "main()", "file_type": "code", "source_file": "scripts/select_article_extractor.py", "source_location": "L570", "_callable": true}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_34", "label": "Nomes can\u00f4nicos e cat\u00e1logo fechado dos motores de extra\u00e7\u00e3o.", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L34"}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_42", "label": "Estado de viabilidade do candidato para forma\u00e7\u00e3o do conjunto ativo.", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L42"}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_63", "label": "Representa\u00e7\u00e3o e m\u00e9tricas de um candidato a extrator em um artigo.", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L63"}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_79", "label": "Resultado detalhado da sele\u00e7\u00e3o para um artigo individual.", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L79"}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_91", "label": "Resultado consolidado do processamento em lote.", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L91"}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_107", "label": "Executa a normaliza\u00e7\u00e3o determin\u00edstica para compara\u00e7\u00e3o: 1. Decodificar entidades\u2026", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L107"}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_148", "label": "Gera conjunto de shingles ordenados de tamanho window_size (padr\u00e3o 5). - Se\u2026", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L148"}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_168", "label": "Extrai campo de texto, erro e calcula tokens/shingles para um motor.", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L168"}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_214", "label": "Forma o conjunto ativo de candidatos conforme PRD \u00a77.1: 1. Se existir pelo\u2026", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L214"}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_239", "label": "Constr\u00f3i o conjunto de consenso (shingles presentes em >= 2 candidatos ativos)\u2026", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L239"}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_285", "label": "Aplica a prioridade final estrita: newspaper4k > readability > trafilatura.", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L285"}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_296", "label": "Seleciona o melhor candidato quando existe consenso (PRD \u00a77.5): 1. Ordenar por\u2026", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L296"}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_333", "label": "Seleciona o candidato quando N\u00c3O existe consenso (PRD \u00a77.6): - Com 3 candidatos\u2026", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L333"}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_390", "label": "Orquestrador determin\u00edstico completo para um \u00fanico artigo. Classifica\u2026", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L390"}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_449", "label": "Salva dados em JSON de forma at\u00f4mica utilizando arquivo tempor\u00e1rio e rename.", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L449"}, {"id": "$graphify-root$_scripts_select_article_extractor_rationale_476", "label": "L\u00ea o JSON de entrada, valida a estrutura, processa todos os artigos e grava o\u2026", "file_type": "rationale", "source_file": "scripts/select_article_extractor.py", "source_location": "L476"}], "edges": [{"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "argparse", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L14", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "html", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "re", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "tempfile", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "unicodedata", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "collections", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "dataclasses", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "enum", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_extractorname", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_extractorname", "target": "str", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_extractorname", "target": "enum", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_candidatestatus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_candidatestatus", "target": "str", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_candidatestatus", "target": "enum", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_extractorcandidate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L62", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_articleselectionresult", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L78", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_batchprocessingresult", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L90", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_normalize_text", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L106", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_normalize_text", "target": "any", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L106", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_generate_shingles", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L147", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L167", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L167", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "target": "$graphify-root$_scripts_select_article_extractor_extractorname", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L167", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "target": "$graphify-root$_scripts_select_article_extractor_extractorcandidate", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L167", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_form_active_set", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L211", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_form_active_set", "target": "$graphify-root$_scripts_select_article_extractor_extractorname", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L211", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_form_active_set", "target": "$graphify-root$_scripts_select_article_extractor_extractorcandidate", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L211", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_form_active_set", "target": "$graphify-root$_scripts_select_article_extractor_extractorcandidate", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L211", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_calculate_consensus_metrics", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L236", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_calculate_consensus_metrics", "target": "$graphify-root$_scripts_select_article_extractor_extractorcandidate", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L236", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_break_priority_tie", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L284", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_break_priority_tie", "target": "$graphify-root$_scripts_select_article_extractor_extractorcandidate", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L284", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_break_priority_tie", "target": "$graphify-root$_scripts_select_article_extractor_extractorcandidate", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L284", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_select_with_consensus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L293", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_select_with_consensus", "target": "$graphify-root$_scripts_select_article_extractor_extractorcandidate", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L293", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_select_with_consensus", "target": "$graphify-root$_scripts_select_article_extractor_extractorname", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L293", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_select_without_consensus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L330", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_select_without_consensus", "target": "$graphify-root$_scripts_select_article_extractor_extractorcandidate", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L330", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_select_without_consensus", "target": "$graphify-root$_scripts_select_article_extractor_extractorname", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L330", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_select_article_extractor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L387", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_select_article_extractor", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L387", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_select_article_extractor", "target": "$graphify-root$_scripts_select_article_extractor_articleselectionresult", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L387", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L448", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "target": "any", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L448", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L448", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_process_batch", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L470", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_process_batch", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L470", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_process_batch", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L470", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_process_batch", "target": "$graphify-root$_scripts_select_article_extractor_batchprocessingresult", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L470", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_parse_args", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L544", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_parse_args", "target": "namespace", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L544", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_py", "target": "$graphify-root$_scripts_select_article_extractor_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L570", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "target": "$graphify-root$_scripts_select_article_extractor_extractorcandidate", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L171", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "target": "$graphify-root$_scripts_select_article_extractor_normalize_text", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L188", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "target": "$graphify-root$_scripts_select_article_extractor_generate_shingles", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L189", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_select_with_consensus", "target": "$graphify-root$_scripts_select_article_extractor_break_priority_tie", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L326", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_select_without_consensus", "target": "$graphify-root$_scripts_select_article_extractor_break_priority_tie", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L354", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_select_article_extractor", "target": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L395", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_select_article_extractor", "target": "$graphify-root$_scripts_select_article_extractor_form_active_set", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L398", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_select_article_extractor", "target": "$graphify-root$_scripts_select_article_extractor_articleselectionresult", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L402", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_select_article_extractor", "target": "$graphify-root$_scripts_select_article_extractor_calculate_consensus_metrics", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L426", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_select_article_extractor", "target": "$graphify-root$_scripts_select_article_extractor_select_with_consensus", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L429", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_select_article_extractor", "target": "$graphify-root$_scripts_select_article_extractor_select_without_consensus", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L431", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L450", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_process_batch", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L480", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_process_batch", "target": "$graphify-root$_scripts_select_article_extractor_select_article_extractor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L512", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_process_batch", "target": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L527", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_process_batch", "target": "$graphify-root$_scripts_select_article_extractor_batchprocessingresult", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L529", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_main", "target": "$graphify-root$_scripts_select_article_extractor_parse_args", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L571", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_main", "target": "$graphify-root$_scripts_select_article_extractor_process_batch", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L573", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_34", "target": "$graphify-root$_scripts_select_article_extractor_extractorname", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_42", "target": "$graphify-root$_scripts_select_article_extractor_candidatestatus", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_63", "target": "$graphify-root$_scripts_select_article_extractor_extractorcandidate", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L63", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_79", "target": "$graphify-root$_scripts_select_article_extractor_articleselectionresult", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L79", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_91", "target": "$graphify-root$_scripts_select_article_extractor_batchprocessingresult", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L91", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_107", "target": "$graphify-root$_scripts_select_article_extractor_normalize_text", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L107", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_148", "target": "$graphify-root$_scripts_select_article_extractor_generate_shingles", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L148", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_168", "target": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L168", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_214", "target": "$graphify-root$_scripts_select_article_extractor_form_active_set", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L214", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_239", "target": "$graphify-root$_scripts_select_article_extractor_calculate_consensus_metrics", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L239", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_285", "target": "$graphify-root$_scripts_select_article_extractor_break_priority_tie", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L285", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_296", "target": "$graphify-root$_scripts_select_article_extractor_select_with_consensus", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L296", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_333", "target": "$graphify-root$_scripts_select_article_extractor_select_without_consensus", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L333", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_390", "target": "$graphify-root$_scripts_select_article_extractor_select_article_extractor", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L390", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_449", "target": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L449", "weight": 1.0}, {"source": "$graphify-root$_scripts_select_article_extractor_rationale_476", "target": "$graphify-root$_scripts_select_article_extractor_process_batch", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/select_article_extractor.py", "source_location": "L476", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_scripts_select_article_extractor_normalize_text", "callee": "str", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/select_article_extractor.py", "source_location": "L118"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_normalize_text", "callee": "unescape", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L122", "receiver": "html"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_normalize_text", "callee": "sub", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L125", "receiver": "re"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_normalize_text", "callee": "sub", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L128", "receiver": "re"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_normalize_text", "callee": "sub", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L131", "receiver": "re"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_normalize_text", "callee": "normalize", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L134", "receiver": "unicodedata"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_normalize_text", "callee": "lower", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L137", "receiver": "s"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_normalize_text", "callee": "strip", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L140", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_normalize_text", "callee": "sub", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L140", "receiver": "re"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_normalize_text", "callee": "findall", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L143", "receiver": "re"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "callee": "get", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L169", "receiver": "article_dict"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "callee": "dict", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/select_article_extractor.py", "source_location": "L170"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "callee": "get", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L175", "receiver": "lib_data"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "callee": "get", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L177", "receiver": "lib_data"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "callee": "get", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L179", "receiver": "lib_data"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "callee": "get", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L183", "receiver": "lib_data"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "callee": "strip", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L185", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_extract_candidate_data", "callee": "str", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/select_article_extractor.py", "source_location": "L202"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_form_active_set", "callee": "values", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L220", "receiver": "candidates"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_form_active_set", "callee": "values", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L224", "receiver": "candidates"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_calculate_consensus_metrics", "callee": "Counter", "is_member_call": false, "source_file": "scripts/select_article_extractor.py", "source_location": "L251", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_calculate_consensus_metrics", "callee": "items", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L256", "receiver": "shingle_counts"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "callee": "resolve", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L450", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "callee": "mkdir", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L451", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "callee": "mkstemp", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L453", "receiver": "tempfile"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "callee": "dump", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L459", "receiver": "json"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "callee": "f", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/select_article_extractor.py", "source_location": "L459"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "callee": "dump", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L461", "receiver": "json"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "callee": "f", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/select_article_extractor.py", "source_location": "L461"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "callee": "write", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L462", "receiver": "f"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "callee": "replace", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L463", "receiver": "os"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "callee": "exists", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L465", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_atomic_save_json", "callee": "remove", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L466", "receiver": "os"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "resolve", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L480", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "is_file", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L481", "receiver": "in_file"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "FileNotFoundError", "is_member_call": false, "source_file": "scripts/select_article_extractor.py", "source_location": "L482", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "load", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L486", "receiver": "json"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "f", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/select_article_extractor.py", "source_location": "L486"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "ValueError", "is_member_call": false, "source_file": "scripts/select_article_extractor.py", "source_location": "L488", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "dict", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/select_article_extractor.py", "source_location": "L490"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "ValueError", "is_member_call": false, "source_file": "scripts/select_article_extractor.py", "source_location": "L491", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "get", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L493", "receiver": "data"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "list", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/select_article_extractor.py", "source_location": "L494"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "ValueError", "is_member_call": false, "source_file": "scripts/select_article_extractor.py", "source_location": "L495", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "resolve", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L501", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "Counter", "is_member_call": false, "source_file": "scripts/select_article_extractor.py", "source_location": "L504", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "dict", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/select_article_extractor.py", "source_location": "L507"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "append", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L513", "receiver": "selections"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_process_batch", "callee": "write", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L520", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_parse_args", "callee": "ArgumentParser", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L545", "receiver": "argparse"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_parse_args", "callee": "add_argument", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L548", "receiver": "parser"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_parse_args", "callee": "Path", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/select_article_extractor.py", "source_location": "L549"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_parse_args", "callee": "add_argument", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L551", "receiver": "parser"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_parse_args", "callee": "Path", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/select_article_extractor.py", "source_location": "L554"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_parse_args", "callee": "add_argument", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L558", "receiver": "parser"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_parse_args", "callee": "int", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/select_article_extractor.py", "source_location": "L559"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_parse_args", "callee": "add_argument", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L561", "receiver": "parser"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_parse_args", "callee": "parse_args", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L567", "receiver": "parser"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_main", "callee": "write", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L588", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_main", "callee": "dumps", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L588", "receiver": "json"}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_main", "callee": "write", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L592", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_main", "callee": "write", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L595", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_select_article_extractor_main", "callee": "write", "is_member_call": true, "source_file": "scripts/select_article_extractor.py", "source_location": "L598", "receiver": null}]} \ No newline at end of file diff --git a/graphify-out/cache/ast/v0.9.47-s2/0faa53d99044235bdde7cb366a601675f06de64ca615a9d783cae687dae87a17.json b/graphify-out/cache/ast/v0.9.47-s2/0faa53d99044235bdde7cb366a601675f06de64ca615a9d783cae687dae87a17.json new file mode 100644 index 0000000..769ea7b --- /dev/null +++ b/graphify-out/cache/ast/v0.9.47-s2/0faa53d99044235bdde7cb366a601675f06de64ca615a9d783cae687dae87a17.json @@ -0,0 +1 @@ +{"nodes": [{"id": "$graphify-root$_readme_md", "label": "README.md", "file_type": "document", "node_kind": "page", "source_file": "README.md", "source_location": "L1"}, {"id": "$graphify-root$_readme_textnlpclassifierapp", "label": "\ud83e\udde0 TextNLPClassifierApp", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L1"}, {"id": "$graphify-root$_readme_tabela_de_conte\u00fados", "label": "\ud83d\udcd1 Tabela de Conte\u00fados", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L13"}, {"id": "$graphify-root$_readme_vis\u00e3o_geral", "label": "\ud83c\udf1f Vis\u00e3o Geral", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L44"}, {"id": "$graphify-root$_readme_instala\u00e7\u00e3o_e_setup", "label": "\u2699\ufe0f Instala\u00e7\u00e3o e Setup", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L55"}, {"id": "$graphify-root$_readme_1_clonar_o_reposit\u00f3rio_e_criar_ambiente_virtual", "label": "1. Clonar o Reposit\u00f3rio e Criar Ambiente Virtual", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L57"}, {"id": "$graphify-root$_readme_2_instalar_depend\u00eancias", "label": "2. Instalar Depend\u00eancias", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L70"}, {"id": "$graphify-root$_readme_3_baixar_bin\u00e1rios_do_navegador_stealth_camoufox", "label": "3. Baixar Bin\u00e1rios do Navegador Stealth (Camoufox)", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L76"}, {"id": "$graphify-root$_readme_1_classificador_de_conte\u00fado_e_iner\u00eancia_nlp_llm_ecp", "label": "1. \ud83e\udde0 Classificador de Conte\u00fado e Iner\u00eancia (NLP / LLM / ECP)", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L86"}, {"id": "$graphify-root$_readme_o_que_\u00e9_e_como_funciona", "label": "O que \u00e9 e Como Funciona", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L88"}, {"id": "$graphify-root$_readme_arquitetura_de_classifica\u00e7\u00e3o_em_3_tiers", "label": "Arquitetura de Classifica\u00e7\u00e3o em 3 Tiers", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L94"}, {"id": "$graphify-root$_readme_categorias_de_decis\u00e3o", "label": "Categorias de Decis\u00e3o", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L115"}, {"id": "$graphify-root$_readme_formato_do_ecp_snapshot_e_markdown", "label": "Formato do ECP Snapshot e Markdown", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L124"}, {"id": "$graphify-root$_readme_exemplo_de_ecp_snapshot_ecp_sample_json", "label": "Exemplo de ECP Snapshot (`ecp_sample.json`):", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L126"}, {"id": "$graphify-root$_readme_exemplos_de_uso_cli", "label": "Exemplos de Uso CLI", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L148"}, {"id": "$graphify-root$_readme_2_extrator_de_manchetes_do_google_news", "label": "2. \ud83d\udcf0 Extrator de Manchetes do Google News", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L163"}, {"id": "$graphify-root$_readme_o_que_\u00e9_e_como_funciona_165", "label": "O que \u00e9 e Como Funciona", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L165"}, {"id": "$graphify-root$_readme_diferenciais_t\u00e9cnicos", "label": "Diferenciais T\u00e9cnicos", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L169"}, {"id": "$graphify-root$_readme_argumentos_e_flags_de_linha_de_comando", "label": "Argumentos e Flags de Linha de Comando", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L177"}, {"id": "$graphify-root$_readme_exemplos_pr\u00e1ticos_de_uso", "label": "Exemplos Pr\u00e1ticos de Uso", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L190"}, {"id": "$graphify-root$_readme_3_extrator_e_parser_multimotor_de_artigos", "label": "3. \ud83d\udcc4 Extrator e Parser Multimotor de Artigos", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L205"}, {"id": "$graphify-root$_readme_vis\u00e3o_geral_e_tr\u00edplice_extra\u00e7\u00e3o", "label": "Vis\u00e3o Geral e Tr\u00edplice Extra\u00e7\u00e3o", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L207"}, {"id": "$graphify-root$_readme_argumentos_e_flags_cli", "label": "Argumentos e Flags CLI", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L217"}, {"id": "$graphify-root$_readme_exemplos_de_uso", "label": "Exemplos de Uso", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L228"}, {"id": "$graphify-root$_readme_4_seletor_determin\u00edstico_de_conte\u00fado_de_artigos", "label": "4. \ud83c\udfaf Seletor Determin\u00edstico de Conte\u00fado de Artigos", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L243"}, {"id": "$graphify-root$_readme_vis\u00e3o_geral_e_algoritmo_de_consenso_f_1", "label": "Vis\u00e3o Geral e Algoritmo de Consenso ($F_1$)", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L245"}, {"id": "$graphify-root$_readme_pipeline_de_normaliza\u00e7\u00e3o_e_shingles", "label": "Pipeline de Normaliza\u00e7\u00e3o e Shingles", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L274"}, {"id": "$graphify-root$_readme_crit\u00e9rios_de_desempate_t\u00e9cnico_e_resili\u00eancia", "label": "Crit\u00e9rios de Desempate T\u00e9cnico e Resili\u00eancia", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L286"}, {"id": "$graphify-root$_readme_argumentos_e_flags_cli_298", "label": "Argumentos e Flags CLI", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L298"}, {"id": "$graphify-root$_readme_exemplos_pr\u00e1ticos_de_uso_307", "label": "Exemplos Pr\u00e1ticos de Uso", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L307"}, {"id": "$graphify-root$_readme_1_execu\u00e7\u00e3o_padr\u00e3o_autom\u00e1tica", "label": "1. Execu\u00e7\u00e3o Padr\u00e3o Autom\u00e1tica", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L309"}, {"id": "$graphify-root$_readme_2_execu\u00e7\u00e3o_com_modo_verboso", "label": "2. Execu\u00e7\u00e3o com Modo Verboso", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L315"}, {"id": "$graphify-root$_readme_3_uso_program\u00e1tico_como_m\u00f3dulo_python", "label": "3. Uso Program\u00e1tico como M\u00f3dulo Python", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L339"}, {"id": "$graphify-root$_readme_estrutura_do_projeto", "label": "\ud83d\udcc1 Estrutura do Projeto", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L356"}, {"id": "$graphify-root$_readme_testes_e_qualidade_de_c\u00f3digo", "label": "\ud83e\uddea Testes e Qualidade de C\u00f3digo", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L388"}, {"id": "$graphify-root$_readme_licen\u00e7a", "label": "\ud83d\udcc4 Licen\u00e7a", "file_type": "document", "node_kind": "heading", "source_file": "README.md", "source_location": "L415"}], "edges": [{"source": "$graphify-root$_readme_md", "target": "$graphify-root$_readme_textnlpclassifierapp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_readme_textnlpclassifierapp", "target": "$graphify-root$_readme_tabela_de_conte\u00fados", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L13", "weight": 1.0}, {"source": "$graphify-root$_readme_textnlpclassifierapp", "target": "$graphify-root$_readme_vis\u00e3o_geral", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L44", "weight": 1.0}, {"source": "$graphify-root$_readme_textnlpclassifierapp", "target": "$graphify-root$_readme_instala\u00e7\u00e3o_e_setup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L55", "weight": 1.0}, {"source": "$graphify-root$_readme_instala\u00e7\u00e3o_e_setup", "target": "$graphify-root$_readme_1_clonar_o_reposit\u00f3rio_e_criar_ambiente_virtual", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L57", "weight": 1.0}, {"source": "$graphify-root$_readme_instala\u00e7\u00e3o_e_setup", "target": "$graphify-root$_readme_2_instalar_depend\u00eancias", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L70", "weight": 1.0}, {"source": "$graphify-root$_readme_instala\u00e7\u00e3o_e_setup", "target": "$graphify-root$_readme_3_baixar_bin\u00e1rios_do_navegador_stealth_camoufox", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L76", "weight": 1.0}, {"source": "$graphify-root$_readme_textnlpclassifierapp", "target": "$graphify-root$_readme_1_classificador_de_conte\u00fado_e_iner\u00eancia_nlp_llm_ecp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L86", "weight": 1.0}, {"source": "$graphify-root$_readme_1_classificador_de_conte\u00fado_e_iner\u00eancia_nlp_llm_ecp", "target": "$graphify-root$_readme_o_que_\u00e9_e_como_funciona", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L88", "weight": 1.0}, {"source": "$graphify-root$_readme_1_classificador_de_conte\u00fado_e_iner\u00eancia_nlp_llm_ecp", "target": "$graphify-root$_readme_arquitetura_de_classifica\u00e7\u00e3o_em_3_tiers", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L94", "weight": 1.0}, {"source": "$graphify-root$_readme_1_classificador_de_conte\u00fado_e_iner\u00eancia_nlp_llm_ecp", "target": "$graphify-root$_readme_categorias_de_decis\u00e3o", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L115", "weight": 1.0}, {"source": "$graphify-root$_readme_1_classificador_de_conte\u00fado_e_iner\u00eancia_nlp_llm_ecp", "target": "$graphify-root$_readme_formato_do_ecp_snapshot_e_markdown", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L124", "weight": 1.0}, {"source": "$graphify-root$_readme_formato_do_ecp_snapshot_e_markdown", "target": "$graphify-root$_readme_exemplo_de_ecp_snapshot_ecp_sample_json", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L126", "weight": 1.0}, {"source": "$graphify-root$_readme_1_classificador_de_conte\u00fado_e_iner\u00eancia_nlp_llm_ecp", "target": "$graphify-root$_readme_exemplos_de_uso_cli", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L148", "weight": 1.0}, {"source": "$graphify-root$_readme_textnlpclassifierapp", "target": "$graphify-root$_readme_2_extrator_de_manchetes_do_google_news", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L163", "weight": 1.0}, {"source": "$graphify-root$_readme_2_extrator_de_manchetes_do_google_news", "target": "$graphify-root$_readme_o_que_\u00e9_e_como_funciona_165", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L165", "weight": 1.0}, {"source": "$graphify-root$_readme_2_extrator_de_manchetes_do_google_news", "target": "$graphify-root$_readme_diferenciais_t\u00e9cnicos", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L169", "weight": 1.0}, {"source": "$graphify-root$_readme_2_extrator_de_manchetes_do_google_news", "target": "$graphify-root$_readme_argumentos_e_flags_de_linha_de_comando", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L177", "weight": 1.0}, {"source": "$graphify-root$_readme_2_extrator_de_manchetes_do_google_news", "target": "$graphify-root$_readme_exemplos_pr\u00e1ticos_de_uso", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L190", "weight": 1.0}, {"source": "$graphify-root$_readme_textnlpclassifierapp", "target": "$graphify-root$_readme_3_extrator_e_parser_multimotor_de_artigos", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L205", "weight": 1.0}, {"source": "$graphify-root$_readme_3_extrator_e_parser_multimotor_de_artigos", "target": "$graphify-root$_readme_vis\u00e3o_geral_e_tr\u00edplice_extra\u00e7\u00e3o", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L207", "weight": 1.0}, {"source": "$graphify-root$_readme_3_extrator_e_parser_multimotor_de_artigos", "target": "$graphify-root$_readme_argumentos_e_flags_cli", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L217", "weight": 1.0}, {"source": "$graphify-root$_readme_3_extrator_e_parser_multimotor_de_artigos", "target": "$graphify-root$_readme_exemplos_de_uso", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L228", "weight": 1.0}, {"source": "$graphify-root$_readme_textnlpclassifierapp", "target": "$graphify-root$_readme_4_seletor_determin\u00edstico_de_conte\u00fado_de_artigos", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L243", "weight": 1.0}, {"source": "$graphify-root$_readme_4_seletor_determin\u00edstico_de_conte\u00fado_de_artigos", "target": "$graphify-root$_readme_vis\u00e3o_geral_e_algoritmo_de_consenso_f_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L245", "weight": 1.0}, {"source": "$graphify-root$_readme_4_seletor_determin\u00edstico_de_conte\u00fado_de_artigos", "target": "$graphify-root$_readme_pipeline_de_normaliza\u00e7\u00e3o_e_shingles", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L274", "weight": 1.0}, {"source": "$graphify-root$_readme_md", "target": "$graphify-root$_url_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L279", "weight": 1.0}, {"source": "$graphify-root$_readme_4_seletor_determin\u00edstico_de_conte\u00fado_de_artigos", "target": "$graphify-root$_readme_crit\u00e9rios_de_desempate_t\u00e9cnico_e_resili\u00eancia", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L286", "weight": 1.0}, {"source": "$graphify-root$_readme_4_seletor_determin\u00edstico_de_conte\u00fado_de_artigos", "target": "$graphify-root$_readme_argumentos_e_flags_cli_298", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L298", "weight": 1.0}, {"source": "$graphify-root$_readme_4_seletor_determin\u00edstico_de_conte\u00fado_de_artigos", "target": "$graphify-root$_readme_exemplos_pr\u00e1ticos_de_uso_307", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L307", "weight": 1.0}, {"source": "$graphify-root$_readme_exemplos_pr\u00e1ticos_de_uso_307", "target": "$graphify-root$_readme_1_execu\u00e7\u00e3o_padr\u00e3o_autom\u00e1tica", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L309", "weight": 1.0}, {"source": "$graphify-root$_readme_exemplos_pr\u00e1ticos_de_uso_307", "target": "$graphify-root$_readme_2_execu\u00e7\u00e3o_com_modo_verboso", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L315", "weight": 1.0}, {"source": "$graphify-root$_readme_exemplos_pr\u00e1ticos_de_uso_307", "target": "$graphify-root$_readme_3_uso_program\u00e1tico_como_m\u00f3dulo_python", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L339", "weight": 1.0}, {"source": "$graphify-root$_readme_textnlpclassifierapp", "target": "$graphify-root$_readme_estrutura_do_projeto", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L356", "weight": 1.0}, {"source": "$graphify-root$_readme_textnlpclassifierapp", "target": "$graphify-root$_readme_testes_e_qualidade_de_c\u00f3digo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L388", "weight": 1.0}, {"source": "$graphify-root$_readme_textnlpclassifierapp", "target": "$graphify-root$_readme_licen\u00e7a", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L415", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/graphify-out/cache/ast/v0.9.47-s2/22eb249629c891e4cd4b2bc09ce17c1e334bc908de3db53539ced305d3bfd287.json b/graphify-out/cache/ast/v0.9.47-s2/22eb249629c891e4cd4b2bc09ce17c1e334bc908de3db53539ced305d3bfd287.json new file mode 100644 index 0000000..e77c113 --- /dev/null +++ b/graphify-out/cache/ast/v0.9.47-s2/22eb249629c891e4cd4b2bc09ce17c1e334bc908de3db53539ced305d3bfd287.json @@ -0,0 +1 @@ +{"nodes": [{"id": "$graphify-root$_tests_test_select_article_extractor_py", "label": "test_select_article_extractor.py", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L1"}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_empty_and_invalid", "label": "test_normalize_text_empty_and_invalid()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L30", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_html_entities_and_tags", "label": "test_normalize_text_html_entities_and_tags()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L37", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_markdown_links", "label": "test_normalize_text_markdown_links()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L43", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_markdown_images_stripped_while_links_preserved", "label": "test_normalize_text_markdown_images_stripped_while_links_preserved()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L49", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_nfkc_unicode_and_punctuation", "label": "test_normalize_text_nfkc_unicode_and_punctuation()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L79", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_sliding_window", "label": "test_generate_shingles_sliding_window()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L105", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_short_text", "label": "test_generate_shingles_short_text()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L113", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_empty", "label": "test_generate_shingles_empty()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L121", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_001_three_candidates_clear_winner", "label": "test_ct_001_three_candidates_clear_winner()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L130", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_002_technical_tie_smallest_shingles", "label": "test_ct_002_technical_tie_smallest_shingles()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L146", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_003_technical_tie_priority_fallback", "label": "test_ct_003_technical_tie_priority_fallback()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L163", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_004_three_candidates_no_consensus", "label": "test_ct_004_three_candidates_no_consensus()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L184", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_005_two_candidates_no_consensus", "label": "test_ct_005_two_candidates_no_consensus()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L199", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_006_single_usable_candidate", "label": "test_ct_006_single_usable_candidate()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L215", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_007_degraded_candidates_only", "label": "test_ct_007_degraded_candidates_only()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L230", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_008_all_candidates_unavailable", "label": "test_ct_008_all_candidates_unavailable()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L242", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_009_small_fragment_loses_due_to_low_coverage", "label": "test_ct_009_small_fragment_loses_due_to_low_coverage()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L254", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_010_excessive_boilerplate_loses_due_to_low_support", "label": "test_ct_010_excessive_boilerplate_loses_due_to_low_support()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L271", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_011_partial_content_loses_due_to_low_coverage", "label": "test_ct_011_partial_content_loses_due_to_low_coverage()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L289", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "label": "test_ct_012_recalculate_existing_selected_extractor()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L302", "_callable": true}, {"id": "path", "label": "Path", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/test_select_article_extractor.py"}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "label": "test_ct_013_empty_articles_list()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L334", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "label": "test_ct_014_invalid_json_fails_atomically()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L353", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "label": "test_integration_reference_file()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L370", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "label": "test_article_1_regression_technical_tie_markdown_images()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L401", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "label": "test_integration_large_batch_determinism()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L435", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "label": "test_integration_pipeline_downstream_consumer()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L493", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "label": "test_e2e_cli_subprocess_real_execution()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L530", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "label": "test_e2e_cli_subprocess_default_naming()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L567", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "label": "test_e2e_cli_subprocess_invalid_input()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L595", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", "label": "test_e2e_cli_subprocess_missing_file()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L608", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_1", "label": "Su\u00edte de Testes Automatizados para o Seletor Determin\u00edstico de Extrator. Cobre\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L1"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_50", "label": "Garante que marca\u00e7\u00e3o de imagem Markdown  seja descartada e link\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L50"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_131", "label": "CT-001: Tr\u00eas candidatos com consenso e um vencedor claro -> Selecionar o maior\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L131"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_147", "label": "CT-002: Dois ou mais candidatos dentro de 0,03 do maior score -> Selecionar o\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L147"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_164", "label": "CT-003: Empate t\u00e9cnico e mesma quantidade de shingles -> Aplicar prioridade\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L164"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_185", "label": "CT-004: Tr\u00eas candidatos sem consenso -> Selecionar a quantidade mediana de\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L185"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_200", "label": "CT-005: Dois candidatos sem consenso -> Selecionar a maior quantidade de\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L200"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_216", "label": "CT-006: Somente um candidato utiliz\u00e1vel -> Selecionar esse candidato.", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L216"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_231", "label": "CT-007: Nenhum utiliz\u00e1vel, mas existe candidato degradado -> Executar o\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L231"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_243", "label": "CT-008: Todos os candidatos indispon\u00edveis -> Selecionar newspaper4k.", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L243"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_255", "label": "CT-009: Readability retorna apenas um fragmento pequeno enquanto os outros\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L255"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_272", "label": "CT-010: Um candidato cont\u00e9m o conte\u00fado comum e muito conte\u00fado excedente ->\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L272"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_290", "label": "CT-011: Um candidato cont\u00e9m somente parte do conte\u00fado comum -> Perde cobertura\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L290"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_303", "label": "CT-012: A entrada j\u00e1 cont\u00e9m selected_extractor -> Recalcular e substituir\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L303"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_335", "label": "CT-013: articles est\u00e1 vazio -> Gerar sa\u00edda v\u00e1lida com articles vazio.", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L335"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_354", "label": "CT-014: JSON inv\u00e1lido -> N\u00e3o gerar sa\u00edda.", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L354"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_371", "label": "Testa o processamento em lote completo sobre o arquivo real\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L371"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_402", "label": "Teste de regress\u00e3o para o Artigo 1 (Los puntajes de River vs. Independiente\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L402"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_436", "label": "Gera um lote de 100 artigos sint\u00e9ticos e verifica 100% de repetibilidade\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L436"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_494", "label": "Testa a integra\u00e7\u00e3o end-to-end do pipeline downstream: L\u00ea o JSON enriquecido com\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L494"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_531", "label": "E2E: Executa scripts/select_article_extractor.py como subprocesso real na linha\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L531"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_568", "label": "E2E: Executa CLI sem a flag -o e valida cria\u00e7\u00e3o autom\u00e1tica de\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L568"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_596", "label": "E2E: Executa CLI com JSON inv\u00e1lido e valida c\u00f3digo de sa\u00edda e erro no stderr.", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L596"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_609", "label": "E2E: Executa CLI com arquivo inexistente e valida c\u00f3digo 1 e mensagem no stderr.", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L609"}], "edges": [{"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "subprocess", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L12", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L13", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "scripts_select_article_extractor", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_empty_and_invalid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_html_entities_and_tags", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L37", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_markdown_links", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_markdown_images_stripped_while_links_preserved", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L49", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_nfkc_unicode_and_punctuation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L79", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_sliding_window", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L105", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_short_text", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L113", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_empty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L121", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_001_three_candidates_clear_winner", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L130", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_002_technical_tie_smallest_shingles", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L146", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_003_technical_tie_priority_fallback", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L163", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_004_three_candidates_no_consensus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L184", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_005_two_candidates_no_consensus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L199", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_006_single_usable_candidate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L215", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_007_degraded_candidates_only", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L230", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_008_all_candidates_unavailable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L242", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_009_small_fragment_loses_due_to_low_coverage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L254", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_010_excessive_boilerplate_loses_due_to_low_support", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L271", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_011_partial_content_loses_due_to_low_coverage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L289", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L302", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L302", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L334", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L334", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L353", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L353", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L370", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L370", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L401", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L435", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L435", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L493", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L493", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L530", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L530", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L567", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L567", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L595", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L595", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L608", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L325", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L341", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L372", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L408", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L499", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L532", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L583", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L600", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L610", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_1", "target": "$graphify-root$_tests_test_select_article_extractor_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_50", "target": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_markdown_images_stripped_while_links_preserved", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L50", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_131", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_001_three_candidates_clear_winner", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L131", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_147", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_002_technical_tie_smallest_shingles", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L147", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_164", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_003_technical_tie_priority_fallback", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L164", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_185", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_004_three_candidates_no_consensus", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L185", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_200", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_005_two_candidates_no_consensus", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L200", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_216", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_006_single_usable_candidate", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L216", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_231", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_007_degraded_candidates_only", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L231", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_243", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_008_all_candidates_unavailable", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L243", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_255", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_009_small_fragment_loses_due_to_low_coverage", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L255", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_272", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_010_excessive_boilerplate_loses_due_to_low_support", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L272", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_290", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_011_partial_content_loses_due_to_low_coverage", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L290", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_303", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L303", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_335", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L335", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_354", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L354", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_371", "target": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L371", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_402", "target": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L402", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_436", "target": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L436", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_494", "target": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L494", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_531", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L531", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_568", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L568", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_596", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L596", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_609", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L609", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_empty_and_invalid", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L31", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_empty_and_invalid", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L32", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_empty_and_invalid", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L33", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_empty_and_invalid", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L34", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_html_entities_and_tags", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L39", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_markdown_links", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L45", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_markdown_images_stripped_while_links_preserved", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L57", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_nfkc_unicode_and_punctuation", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L82", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_sliding_window", "callee": "generate_shingles", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L107", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_short_text", "callee": "generate_shingles", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L116", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_empty", "callee": "generate_shingles", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L122", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_001_three_candidates_clear_winner", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L141", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_002_technical_tie_smallest_shingles", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L159", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_003_technical_tie_priority_fallback", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L171", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_003_technical_tie_priority_fallback", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L180", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_004_three_candidates_no_consensus", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L194", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_005_two_candidates_no_consensus", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L210", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_006_single_usable_candidate", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L225", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_007_degraded_candidates_only", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L238", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_008_all_candidates_unavailable", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L249", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_009_small_fragment_loses_due_to_low_coverage", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L266", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_010_excessive_boilerplate_loses_due_to_low_support", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L285", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_011_partial_content_loses_due_to_low_coverage", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L298", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L322", "receiver": "in_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "callee": "dumps", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L322", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L324", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L326", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "callee": "load", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L329", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "callee": "f", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L329"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L338", "receiver": "in_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "callee": "dumps", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L338", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L340", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L342", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "callee": "load", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L345", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "callee": "f", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L345"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L356", "receiver": "in_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "callee": "raises", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L359", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "callee": "ValueError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L359"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L360", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L362", "receiver": "expected_out"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L373", "receiver": "ref_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "callee": "skip", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L374", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L379", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L383", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "callee": "load", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L386", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "callee": "f", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L386"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L409", "receiver": "ref_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "callee": "skip", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L410", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "callee": "load", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L413", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "callee": "f", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L413"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L416", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "callee": "append", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L472", "receiver": "articles"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L476", "receiver": "in_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "callee": "dumps", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L476", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L481", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L482", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L500", "receiver": "ref_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "callee": "skip", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L501", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L504", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "callee": "load", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L507", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "callee": "f", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L507"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "callee": "str", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L521"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "callee": "strip", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L522", "receiver": "chosen_text"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L533", "receiver": "ref_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "callee": "skip", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L534", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "callee": "resolve", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L537", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "callee": "resolve", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L542", "receiver": "ref_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "callee": "run", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L550", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L553", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "callee": "loads", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L556", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L580", "receiver": "in_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "callee": "dumps", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L580", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "callee": "resolve", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L583", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "callee": "run", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L586", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L588", "receiver": "expected_out"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "callee": "load", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L591", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "callee": "f", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L591"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L598", "receiver": "invalid_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "callee": "resolve", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L600", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "callee": "run", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L603", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", "callee": "resolve", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L610", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", "callee": "run", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L613", "receiver": "subprocess"}]} \ No newline at end of file diff --git a/graphify-out/cache/ast/v0.9.47-s2/7136c34e9fa9c525ff01d65f8c35c2368cace0468b2651e85901195bfb8730a5.json b/graphify-out/cache/ast/v0.9.47-s2/7136c34e9fa9c525ff01d65f8c35c2368cace0468b2651e85901195bfb8730a5.json new file mode 100644 index 0000000..c440a31 --- /dev/null +++ b/graphify-out/cache/ast/v0.9.47-s2/7136c34e9fa9c525ff01d65f8c35c2368cace0468b2651e85901195bfb8730a5.json @@ -0,0 +1 @@ +{"nodes": [{"id": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_md", "label": "quickstart.md", "file_type": "document", "node_kind": "page", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_quickstart_deterministic_article_content_selection", "label": "Quickstart: Deterministic Article Content Selection", "file_type": "document", "node_kind": "heading", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_1_pr\u00e9_requisitos", "label": "1. Pr\u00e9-requisitos", "file_type": "document", "node_kind": "heading", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L7"}, {"id": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_2_execu\u00e7\u00e3o_r\u00e1pida_via_cli", "label": "2. Execu\u00e7\u00e3o R\u00e1pida via CLI", "file_type": "document", "node_kind": "heading", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L14"}, {"id": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_cen\u00e1rio_1_selecionar_o_melhor_extrator_para_uma_extra\u00e7\u00e3o_existente", "label": "Cen\u00e1rio 1: Selecionar o melhor extrator para uma extra\u00e7\u00e3o existente", "file_type": "document", "node_kind": "heading", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L16"}, {"id": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_cen\u00e1rio_2_especificar_caminho_de_sa\u00edda_customizado_e_modo_verboso", "label": "Cen\u00e1rio 2: Especificar caminho de sa\u00edda customizado e modo verboso", "file_type": "document", "node_kind": "heading", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L24"}, {"id": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_3_execu\u00e7\u00e3o_dos_testes_automatizados", "label": "3. Execu\u00e7\u00e3o dos Testes Automatizados", "file_type": "document", "node_kind": "heading", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L33"}, {"id": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_4_valida\u00e7\u00e3o_program\u00e1tica_uso_como_m\u00f3dulo_python", "label": "4. Valida\u00e7\u00e3o Program\u00e1tica / Uso como M\u00f3dulo Python", "file_type": "document", "node_kind": "heading", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L43"}], "edges": [{"source": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_md", "target": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_quickstart_deterministic_article_content_selection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_md", "target": "$graphify-root$_specs_004_deterministic_content_selection_spec_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L3", "weight": 1.0, "target_file": "$graphify-root$/specs/004-deterministic-content-selection/spec.md"}, {"source": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_quickstart_deterministic_article_content_selection", "target": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_1_pr\u00e9_requisitos", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_quickstart_deterministic_article_content_selection", "target": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_2_execu\u00e7\u00e3o_r\u00e1pida_via_cli", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L14", "weight": 1.0}, {"source": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_2_execu\u00e7\u00e3o_r\u00e1pida_via_cli", "target": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_cen\u00e1rio_1_selecionar_o_melhor_extrator_para_uma_extra\u00e7\u00e3o_existente", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_2_execu\u00e7\u00e3o_r\u00e1pida_via_cli", "target": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_cen\u00e1rio_2_especificar_caminho_de_sa\u00edda_customizado_e_modo_verboso", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_quickstart_deterministic_article_content_selection", "target": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_3_execu\u00e7\u00e3o_dos_testes_automatizados", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_quickstart_deterministic_article_content_selection", "target": "$graphify-root$_specs_004_deterministic_content_selection_quickstart_4_valida\u00e7\u00e3o_program\u00e1tica_uso_como_m\u00f3dulo_python", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/004-deterministic-content-selection/quickstart.md", "source_location": "L43", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file diff --git a/graphify-out/cache/stat-index.json b/graphify-out/cache/stat-index.json index 489c1e5..3c6827d 100644 --- a/graphify-out/cache/stat-index.json +++ b/graphify-out/cache/stat-index.json @@ -1 +1 @@ -{".agents/skills/graphify/SKILL.md":{"size":41276,"mtime_ns":1787189375574389900,"indexed_at_ns":1787189383574665500,"word_count":5211,"hashes":{".agents/skills/graphify/skill.md":"3f0ba089a04e342e4337913a03515905fe205f57914b53b8eb1ff59dc926a4ea"}},".agents/skills/graphify/references/add-watch.md":{"size":2486,"mtime_ns":1787176247108301100,"indexed_at_ns":1787189352249948700,"word_count":366,"hashes":{".agents/skills/graphify/references/add-watch.md":"bc4c3ac2e736e36fff3e120b2a7967f1f049c6b05ca39db50606b4bb83c768f7"}},".agents/skills/graphify/references/exports.md":{"size":3362,"mtime_ns":1787176247109325900,"indexed_at_ns":1787189352252005200,"word_count":470,"hashes":{".agents/skills/graphify/references/exports.md":"81b09c0ad09d54d52b68755c32544024e290c02f53bdeb283b1b76d7eebc2445"}},".agents/skills/graphify/references/extraction-spec.md":{"size":7960,"mtime_ns":1787176247109325900,"indexed_at_ns":1787189352254091000,"word_count":1038,"hashes":{".agents/skills/graphify/references/extraction-spec.md":"d07c5b2e8224b1006b1a336f77d0af22f637fe8d20166895bf852c32324d851b"}},".agents/skills/graphify/references/github-and-merge.md":{"size":2177,"mtime_ns":1787176247111831300,"indexed_at_ns":1787189352255826900,"word_count":271,"hashes":{".agents/skills/graphify/references/github-and-merge.md":"189cf7c8c51988d23f6ad25dff96855ce0e7336bffa352dedb3867954e702f7b"}},".agents/skills/graphify/references/hooks.md":{"size":1267,"mtime_ns":1787176247112843500,"indexed_at_ns":1787189352257586300,"word_count":193,"hashes":{".agents/skills/graphify/references/hooks.md":"3e7d2df361e7059e921192b1693cc7859e4a2b0474446f8352be5a4624790eaa"}},".agents/skills/graphify/references/query.md":{"size":13456,"mtime_ns":1787176247113897600,"indexed_at_ns":1787189352259619700,"word_count":1763,"hashes":{".agents/skills/graphify/references/query.md":"151ad7ed0ee4aefe411f026261f605a61134cc6247324fe8df3ae1e785321283"}},".agents/skills/graphify/references/transcribe.md":{"size":3173,"mtime_ns":1787176247113897600,"indexed_at_ns":1787189352261502100,"word_count":418,"hashes":{".agents/skills/graphify/references/transcribe.md":"cbbbae90e451d722b39df0df7bc267bb9b7ecb3dd8a9e8be4b40237df053c8d6"}},".agents/skills/graphify/references/update.md":{"size":10425,"mtime_ns":1787176247115420200,"indexed_at_ns":1787189352263334600,"word_count":1196,"hashes":{".agents/skills/graphify/references/update.md":"b209dbb3bb5466e601a530b65925c55c34f040ffcf56d38ea64be9aaf75f92ce"}},".agents/skills/ponytail-audit/SKILL.md":{"size":1693,"mtime_ns":1786995804152832800,"indexed_at_ns":1787189325036907200,"word_count":234,"hashes":{".agents/skills/ponytail-audit/skill.md":"b29dd08e26692c4bdd87b024d43820e2b45527984d9b3330b5fcfc78491aac52"}},".agents/skills/ponytail-debt/SKILL.md":{"size":1747,"mtime_ns":1786995804152832800,"indexed_at_ns":1787189325037560500,"word_count":261,"hashes":{".agents/skills/ponytail-debt/skill.md":"4b8e8de454f0d7d46bce20b3f4b4ea4c5a1eb60691c0d8bef27ef4ded155e4bc"}},".agents/skills/ponytail-gain/SKILL.md":{"size":2023,"mtime_ns":1786995804154227800,"indexed_at_ns":1787189325038161300,"word_count":246,"hashes":{".agents/skills/ponytail-gain/skill.md":"9e15d99db7452555dae0cc55e5c37799e1dc8acaed4eb89c0e9641d3afbb9646"}},".agents/skills/ponytail-help/SKILL.md":{"size":2867,"mtime_ns":1786995804154227800,"indexed_at_ns":1787189325038779900,"word_count":379,"hashes":{".agents/skills/ponytail-help/skill.md":"4b6ba4d12d19068c08b12af63c05b0acc9ce3beed06654065450c0cd6042d9db"}},".agents/skills/ponytail-review/SKILL.md":{"size":2440,"mtime_ns":1786995804155238700,"indexed_at_ns":1787189325039426100,"word_count":339,"hashes":{".agents/skills/ponytail-review/skill.md":"694090b91438cff578931361d36947da438722dd1f9f7460022bb3aa5b18b4de"}},".agents/skills/ponytail/SKILL.md":{"size":6757,"mtime_ns":1786995804156239700,"indexed_at_ns":1787189325040071200,"word_count":1079,"hashes":{".agents/skills/ponytail/skill.md":"64fc6e81a1b2b008fd72f5c9686498e53383e9cb25d518dc81305799e985bf6f"}},".agents/skills/speckit-analyze/SKILL.md":{"size":11642,"mtime_ns":1787189272133064100,"indexed_at_ns":1787189325040713600,"word_count":1569,"hashes":{".agents/skills/speckit-analyze/skill.md":"12f78b5b87a05d7075320de7e7df0fc3890ee915bf5203ef2c397fee48b0d04e"}},".agents/skills/speckit-checklist/SKILL.md":{"size":22277,"mtime_ns":1787189272160379600,"indexed_at_ns":1787189325041377200,"word_count":2981,"hashes":{".agents/skills/speckit-checklist/skill.md":"1b9b592206c499d1c46699ea99fd3795ec31638e3968aa90054d07bff9f26852"}},".agents/skills/speckit-clarify/SKILL.md":{"size":19212,"mtime_ns":1787189272137533000,"indexed_at_ns":1787189325042095600,"word_count":2688,"hashes":{".agents/skills/speckit-clarify/skill.md":"d091faedcb83b3f11a3049a84424f5d66b6bdf181b192a8167c07b94133e617d"}},".agents/skills/speckit-constitution/SKILL.md":{"size":9959,"mtime_ns":1787189272141381400,"indexed_at_ns":1787189325042781900,"word_count":1376,"hashes":{".agents/skills/speckit-constitution/skill.md":"791892a3d87f7bd6ea936f896c5050b183942489d68bfb383c2ba4de8380a901"}},".agents/skills/speckit-converge/SKILL.md":{"size":12639,"mtime_ns":1787189272150381400,"indexed_at_ns":1787189325043428600,"word_count":1798,"hashes":{".agents/skills/speckit-converge/skill.md":"c04c22c94ac9a47d73d547636127b06f38647627a4dbfbc36ae50dd0a95971b3"}},".agents/skills/speckit-implement/SKILL.md":{"size":12703,"mtime_ns":1787189272146373000,"indexed_at_ns":1787189325044057400,"word_count":1691,"hashes":{".agents/skills/speckit-implement/skill.md":"a779bc551abfa24d77556554b4cc0225b3c57bc436956b9cb9aafe306c581945"}},".agents/skills/speckit-plan/SKILL.md":{"size":7857,"mtime_ns":1787189272154380100,"indexed_at_ns":1787189325044689700,"word_count":1083,"hashes":{".agents/skills/speckit-plan/skill.md":"74b5f950130fa658b857d1c81ac052d89277cbe9901c51f01270963c746277b6"}},".agents/skills/speckit-specify/SKILL.md":{"size":18258,"mtime_ns":1787189272165381000,"indexed_at_ns":1787189325045384300,"word_count":2452,"hashes":{".agents/skills/speckit-specify/skill.md":"b86e839509339a9e11a605b6db50fcd3a435511d5cbe1bbbf4f473ac4bdd5447"}},".agents/skills/speckit-tasks/SKILL.md":{"size":10978,"mtime_ns":1787189272169379600,"indexed_at_ns":1787189325046041900,"word_count":1581,"hashes":{".agents/skills/speckit-tasks/skill.md":"69de6853783574ace13eadf7c706a610df2f2584901974b713a51c1576e53339"}},".agents/skills/speckit-taskstoissues/SKILL.md":{"size":7686,"mtime_ns":1787189272172364900,"indexed_at_ns":1787189325046665600,"word_count":1153,"hashes":{".agents/skills/speckit-taskstoissues/skill.md":"fc53c7413cf050b143775a1aeca2773eabb248782a58d599b52d0d232c6c05fd"}},".specify/init-options.json":{"size":174,"mtime_ns":1787189272252382200,"indexed_at_ns":1787189325022221000,"word_count":16,"hashes":{".specify/init-options.json":"b39c8c1030871841dded0aede892fe2d25b36883333777cbab7d7c1c67b36f87"}},".specify/integration.json":{"size":279,"mtime_ns":1787189272181379700,"indexed_at_ns":1787189325023926100,"word_count":24,"hashes":{".specify/integration.json":"d7545650420a2ed3fd6878ad7006b8de79f5e812dd6352c0d86d530db3a12134"}},".specify/integrations/agy.manifest.json":{"size":1299,"mtime_ns":1787189272178366200,"indexed_at_ns":1787189325024675000,"word_count":31,"hashes":{".specify/integrations/agy.manifest.json":"504c42820b8e37a7eb26b328881026982f3a6a71fa16de670c425b35b37f00e4"}},".specify/integrations/speckit.manifest.json":{"size":1536,"mtime_ns":1787189272238379600,"indexed_at_ns":1787189325025369900,"word_count":35,"hashes":{".specify/integrations/speckit.manifest.json":"cc15502df7b241b7ef08785a613f642d69dc561b8b5db2ccba121fcb6d2c1680"}},".specify/memory/.constitution-template.json":{"size":103,"mtime_ns":1787189272257369800,"indexed_at_ns":1787189325026009300,"word_count":6,"hashes":{".specify/memory/.constitution-template.json":"a0f4bf5e5399e118b61e8bae9404743316cea6d0fff4270d8758aeb55525b988"}},".specify/memory/constitution.md":{"size":2346,"mtime_ns":1787189272254379900,"indexed_at_ns":1787189325047314000,"word_count":272,"hashes":{".specify/memory/constitution.md":"51f14d46d5b6abddce28779396666792636c8d9629f0202e84501a5e759267ab"}},".specify/scripts/powershell/check-prerequisites.ps1":{"size":6122,"mtime_ns":1787189272202379800,"indexed_at_ns":1787189325026668000,"word_count":685,"hashes":{".specify/scripts/powershell/check-prerequisites.ps1":"80f1c4dc6817140dea987bb5727d38be754679c7052f1d9a088031536423cb23"}},".specify/scripts/powershell/common.ps1":{"size":34245,"mtime_ns":1787189272206379800,"indexed_at_ns":1787189325027347800,"word_count":3419,"hashes":{".specify/scripts/powershell/common.ps1":"63b253c967802e85ab12e76ac716eca4bb164dde2b9324e08e406d848ec4104b"}},".specify/scripts/powershell/create-new-feature.ps1":{"size":13026,"mtime_ns":1787189272211369000,"indexed_at_ns":1787189325028005300,"word_count":1421,"hashes":{".specify/scripts/powershell/create-new-feature.ps1":"7b4eb36a1fbbbe9a449b5f99de1055b1aad88e775eeb0db3f86e4ff013e6ddd1"}},".specify/scripts/powershell/resolve-template.ps1":{"size":889,"mtime_ns":1787189272214379900,"indexed_at_ns":1787189325028621300,"word_count":86,"hashes":{".specify/scripts/powershell/resolve-template.ps1":"78234a87c584e697a8fda8b18f134914e41465cbb67c1608b81e69860741502c"}},".specify/scripts/powershell/setup-plan.ps1":{"size":2927,"mtime_ns":1787189272218379500,"indexed_at_ns":1787189325029271700,"word_count":325,"hashes":{".specify/scripts/powershell/setup-plan.ps1":"4d5b636734ae78061da3a7675f0af4acfa6b65f7d994d5372c8c051f25bb8966"}},".specify/scripts/powershell/setup-tasks.ps1":{"size":3892,"mtime_ns":1787189272221379900,"indexed_at_ns":1787189325029900900,"word_count":429,"hashes":{".specify/scripts/powershell/setup-tasks.ps1":"5c980d1a41d186b634bc350128c31e5f3074099b996989c0a0d95b22623b2932"}},".specify/templates/checklist-template.md":{"size":2033,"mtime_ns":1787189272223379700,"indexed_at_ns":1787189325047907900,"word_count":271,"hashes":{".specify/templates/checklist-template.md":"6fb0a979b8534e1b3343d1ce6e45f84d32b118e096620bfdeed241dbc1a1da8a"}},".specify/templates/constitution-template.md":{"size":2346,"mtime_ns":1787189272226379800,"indexed_at_ns":1787189325048534600,"word_count":272,"hashes":{".specify/templates/constitution-template.md":"ae22b7c7ecb6ccd516fed25916e465146432c58f1bef904a92b535ac0bbecfcf"}},".specify/templates/plan-template.md":{"size":3682,"mtime_ns":1787189272229368600,"indexed_at_ns":1787189325049160100,"word_count":463,"hashes":{".specify/templates/plan-template.md":"e5cfe5097c5de0add0f0de02b7a5d2cd2470c9a2f24c0e6e15439d274e12abe0"}},".specify/templates/spec-template.md":{"size":4556,"mtime_ns":1787189272231368600,"indexed_at_ns":1787189325049780800,"word_count":629,"hashes":{".specify/templates/spec-template.md":"2734a509d4b2f34ee6258475c4fb2e80a6dbfcbc47c8552df5b6278907529250"}},".specify/templates/tasks-template.md":{"size":9171,"mtime_ns":1787189272234379700,"indexed_at_ns":1787189325050369300,"word_count":1384,"hashes":{".specify/templates/tasks-template.md":"070ed0dfafd8310a243b51cc30b1b6dfb19883fdd5ad20e4b53e45eb7f939e3e"}},".specify/workflows/speckit/workflow.yml":{"size":2216,"mtime_ns":1787160407462626700,"indexed_at_ns":1787189324996696100,"word_count":276},".specify/workflows/workflow-registry.json":{"size":381,"mtime_ns":1787189272250379800,"indexed_at_ns":1787189325030509700,"word_count":34,"hashes":{".specify/workflows/workflow-registry.json":"2c5bf7f4ba03ddf54945cd64d4740301036c18ebea47448d93ff428c771eff3d"}},".agents/rules/graphify.md":{"size":947,"mtime_ns":1787189347444181700,"indexed_at_ns":1787189352246818600,"word_count":127,"hashes":{".agents/rules/graphify.md":"e55792958648fb69255e3ce3f71a8fcead36307c34b2d67feda9ac650ac61803"}},".agents/workflows/graphify.md":{"size":239,"mtime_ns":1787189347444181700,"indexed_at_ns":1787189352301037700,"word_count":37,"hashes":{".agents/workflows/graphify.md":"d92622463299d313da48e2cdbebf79d7ea24ffaf2ae2de2a1714be8ee42b22b3"}},"specs/001-multilingual-entity-classifier/checklists/requirements.md":{"size":1897,"mtime_ns":1787193985655018100,"indexed_at_ns":1787194002726038300,"word_count":258,"hashes":{"specs/001-multilingual-entity-classifier/checklists/requirements.md":"277036c8add1bae5eeae6da5595cf66405670d33f9d4842784b1c5581cef62d0"}},"specs/001-multilingual-entity-classifier/spec.md":{"size":10753,"mtime_ns":1787194850510689300,"indexed_at_ns":1787194930726970700,"word_count":1423,"hashes":{"specs/001-multilingual-entity-classifier/spec.md":"f136d1d2e6a539072ea238be9d0e918dbc32eb89555ffd37e9b84579064e7799"}},"specs/001-multilingual-entity-classifier/contracts/cli-contract.md":{"size":1808,"mtime_ns":1787194605824187100,"indexed_at_ns":1787194638410863000,"word_count":281,"hashes":{"specs/001-multilingual-entity-classifier/contracts/cli-contract.md":"894670a7228b93a2202203ac532aa0d415bd1921272b61a8d07e951a417bc75c"}},"specs/001-multilingual-entity-classifier/data-model.md":{"size":5137,"mtime_ns":1787194591677816000,"indexed_at_ns":1787194638411601100,"word_count":524,"hashes":{"specs/001-multilingual-entity-classifier/data-model.md":"89ecf2e55508b53ba208d011a76868294f0ff3cab87a217e7ed73c19edfbd9f6"}},"specs/001-multilingual-entity-classifier/plan.md":{"size":6215,"mtime_ns":1787194897854106700,"indexed_at_ns":1787194930724386200,"word_count":782,"hashes":{"specs/001-multilingual-entity-classifier/plan.md":"d37d1c5f3bffc4dad289ad128024ab6dffb409b06f49e96fc5a2fd2a735472a5"}},"specs/001-multilingual-entity-classifier/quickstart.md":{"size":3235,"mtime_ns":1787194877439851000,"indexed_at_ns":1787194930725082000,"word_count":339,"hashes":{"specs/001-multilingual-entity-classifier/quickstart.md":"816060813a37d728ceed955aa829d7fa4f80862f0932133cd5293bdbfdbd40db"}},"specs/001-multilingual-entity-classifier/research.md":{"size":4059,"mtime_ns":1787194581004019000,"indexed_at_ns":1787194638413783100,"word_count":509,"hashes":{"specs/001-multilingual-entity-classifier/research.md":"d4b61795fb09da693ead647d4c05e8f44699c36e9f43b47e808e09a2f970d996"}},"specs/001-multilingual-entity-classifier/tasks.md":{"size":6951,"mtime_ns":1787196452595599000,"indexed_at_ns":1787196460266934400,"word_count":874,"hashes":{"specs/001-multilingual-entity-classifier/tasks.md":"7a33202595cf192baf702d3d8e169ea8db59ca0f2fecb471594f7f3c48417082"}},"specs/001-multilingual-entity-classifier/checklists/poc-readiness.md":{"size":4154,"mtime_ns":1787195218247525200,"indexed_at_ns":1787195224690016000,"word_count":546,"hashes":{"specs/001-multilingual-entity-classifier/checklists/poc-readiness.md":"6da9d16dcd60e927f892c69aa05945e99840b6dc824f93ea2686f12801e81a8a"}},"classify.py":{"size":6143,"mtime_ns":1787264412245764200,"indexed_at_ns":1787264516410989400,"word_count":482,"hashes":{"classify.py":"7fc86ae608bd6656cd4d2d91285ab1857edf96864249e6df308dc5c327b35775"}},"examples/content_northvolt_de.md":{"size":530,"mtime_ns":1787195963813740900,"indexed_at_ns":1787196460246681400,"word_count":57,"hashes":{"examples/content_northvolt_de.md":"5708f5dac050fea9c5e4fbdee40910cbb4c4be0efc9c3212f7cf2a7a034eb91d"}},"examples/content_presal_pt.md":{"size":506,"mtime_ns":1787195950024799800,"indexed_at_ns":1787196460247532700,"word_count":72,"hashes":{"examples/content_presal_pt.md":"ef8c7d61a4d721f7d702fa608274da920476be3a4f7bfe6e4f603abba12a133f"}},"examples/content_tangential_es.md":{"size":414,"mtime_ns":1787195975527150700,"indexed_at_ns":1787196460248387000,"word_count":60,"hashes":{"examples/content_tangential_es.md":"d02c405931b0752377a2ba10cbffe4d664713e33c3b6a8fbdd36b4a75b30f11b"}},"examples/ecp_apple.json":{"size":723,"mtime_ns":1787195969757856700,"indexed_at_ns":1787196460143672700,"word_count":68,"hashes":{"examples/ecp_apple.json":"166fb76e5d0d181835dd636450b6828565c2baafcb21228313bcea3c850d9a92"}},"examples/ecp_petrobras.json":{"size":714,"mtime_ns":1787195944394575600,"indexed_at_ns":1787196460144504800,"word_count":62,"hashes":{"examples/ecp_petrobras.json":"5dd24cf4d5cb9f636f3a1c2511eeaa152be0511b80974a4f36d5d68aded046db"}},"examples/ecp_volkswagen.json":{"size":720,"mtime_ns":1787195955456870500,"indexed_at_ns":1787196460145217300,"word_count":56,"hashes":{"examples/ecp_volkswagen.json":"3d3866179c67e332ad5aa46f5d15eeb4de3fa829d1cc21ccf73cc7f3a7eb32c5"}},"pyproject.toml":{"size":762,"mtime_ns":1787264482850924600,"indexed_at_ns":1787264516414577000,"word_count":86,"hashes":{"pyproject.toml":"ab0b0276581056a63d591237beb2e4e8fe3a4441c06963a847dd1f74b569dd88"}},"requirements.txt":{"size":313,"mtime_ns":1787240110134720000,"indexed_at_ns":1787240513253720300,"word_count":29},"src/__init__.py":{"size":83,"mtime_ns":1787195832559486000,"indexed_at_ns":1787196460146819200,"word_count":9,"hashes":{"src/__init__.py":"81c4eae46f05fd529d4f81f2d318c2b4e3af282f140963e9c5c876690bb1ca74"}},"src/adapters/__init__.py":{"size":73,"mtime_ns":1787195842271676800,"indexed_at_ns":1787196460147577400,"word_count":9,"hashes":{"src/adapters/__init__.py":"f4dcecfaeea2ae0852fd9836bfb4f9b2a9bedd60057157064e6d3fed4a8c1bd7"}},"src/adapters/base.py":{"size":907,"mtime_ns":1787264412243760700,"indexed_at_ns":1787264516431216000,"word_count":95,"hashes":{"src/adapters/base.py":"39d8678210517983b9fe9bfa26a1990c1f4f63195651da2a180d3bb73db51a1e"}},"src/adapters/embeddings.py":{"size":1399,"mtime_ns":1787264437927229800,"indexed_at_ns":1787264516432540300,"word_count":139,"hashes":{"src/adapters/embeddings.py":"acf74e38373f16e923350dbcf514b2958215391024c8abed3b8a621b0e69bd61"}},"src/adapters/llm.py":{"size":1232,"mtime_ns":1787264412243760700,"indexed_at_ns":1787264516433377900,"word_count":135,"hashes":{"src/adapters/llm.py":"084a9de66475aad2eb213ff906128d4094408891bd8ddbbd9f0e5674a1cb6192"}},"src/classifier.py":{"size":9804,"mtime_ns":1787264459052089000,"indexed_at_ns":1787264516434381400,"word_count":820,"hashes":{"src/classifier.py":"d890fd0c6be9bb68eeb459e8a89ed988c075978cc220d923a8b81714563db177"}},"src/language.py":{"size":10957,"mtime_ns":1787264437931227400,"indexed_at_ns":1787264516435249300,"word_count":887,"hashes":{"src/language.py":"75d8e6444528450b5d11eee5b51965c98525070bb65eb0edabc996701a4c5075"}},"src/models.py":{"size":5959,"mtime_ns":1787264437930228400,"indexed_at_ns":1787264516436265800,"word_count":487,"hashes":{"src/models.py":"260513e4539e617b4123ac5b5352cb6ce7caf3a5dfba08badf6390bf60784ac9"}},"src/parser.py":{"size":2654,"mtime_ns":1787264437931227400,"indexed_at_ns":1787264516437222700,"word_count":299,"hashes":{"src/parser.py":"a789a6ba02724ad75604dcc56991e8b7989558abe673d4701242012723954407"}},"tests/__init__.py":{"size":69,"mtime_ns":1787195847518641200,"indexed_at_ns":1787196460153585600,"word_count":8,"hashes":{"tests/__init__.py":"2acdae7d2696c23d5391ed343046cffa11b82f3f0d7d85767dacf0e762a955d1"}},"tests/fixtures/benchmark_24/de/contextual.md":{"size":144,"mtime_ns":1787196180779459400,"indexed_at_ns":1787196460268138600,"word_count":17,"hashes":{"tests/fixtures/benchmark_24/de/contextual.md":"b6a18c4bef2defe99773d3ba43137148d25b42ac27562b10b73ccdee1a49f203"}},"tests/fixtures/benchmark_24/de/contextual_expected.json":{"size":136,"mtime_ns":1787196187032823100,"indexed_at_ns":1787196460154321700,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/de/contextual_expected.json":"cb741ed9bef3359a41d5c031ad213d4320c5b8fe3f8579e497ee9b1eda0ed478"}},"tests/fixtures/benchmark_24/de/direct.md":{"size":148,"mtime_ns":1787196169572812500,"indexed_at_ns":1787196460269192500,"word_count":16,"hashes":{"tests/fixtures/benchmark_24/de/direct.md":"67f375d26d8424655b76d5650c656b4af79b9964d52f2d24049e1f4de6545c9b"}},"tests/fixtures/benchmark_24/de/direct_expected.json":{"size":132,"mtime_ns":1787196175168070900,"indexed_at_ns":1787196460155004400,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/de/direct_expected.json":"5301a39d31b365266b529ce9823145381241f8876af1ec21f0a9c27c9bdc80fa"}},"tests/fixtures/benchmark_24/de/ecp.json":{"size":579,"mtime_ns":1787196164027193900,"indexed_at_ns":1787196460155664300,"word_count":40,"hashes":{"tests/fixtures/benchmark_24/de/ecp.json":"061fc3a9468d2baaaf2b3e8355d08d23261a9a7adc484cb06b45646eacba46fc"}},"tests/fixtures/benchmark_24/de/not_related.md":{"size":137,"mtime_ns":1787196204093781400,"indexed_at_ns":1787196460270056100,"word_count":21,"hashes":{"tests/fixtures/benchmark_24/de/not_related.md":"4904b694b45a2058614a4e4350046eee042c4bbd7bcd6b88c56408ee3aebd81d"}},"tests/fixtures/benchmark_24/de/not_related_expected.json":{"size":129,"mtime_ns":1787196209729787600,"indexed_at_ns":1787196460156391600,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/de/not_related_expected.json":"730fa882c1f3b8a7c0e2d3da9af55ee57ad7425a8b304c11f54e01899c740952"}},"tests/fixtures/benchmark_24/de/tangential.md":{"size":150,"mtime_ns":1787196193187087300,"indexed_at_ns":1787196460270857700,"word_count":21,"hashes":{"tests/fixtures/benchmark_24/de/tangential.md":"8207068977006dafa7c9c4459bd996b5c124972d25f1015a589d3b06d0999613"}},"tests/fixtures/benchmark_24/de/tangential_expected.json":{"size":128,"mtime_ns":1787196198703847300,"indexed_at_ns":1787196460157130400,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/de/tangential_expected.json":"82dea5e55d7586c4e7005755e3da4f44560238733094876047de51e854d41d92"}},"tests/fixtures/benchmark_24/en/contextual.md":{"size":148,"mtime_ns":1787196066427405900,"indexed_at_ns":1787196460271878300,"word_count":19,"hashes":{"tests/fixtures/benchmark_24/en/contextual.md":"258a9f1ae01dae52955c1f45cb176e7d981a72ba869c33232c8c295f4816acc0"}},"tests/fixtures/benchmark_24/en/contextual_expected.json":{"size":136,"mtime_ns":1787196073211713100,"indexed_at_ns":1787196460158457500,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/en/contextual_expected.json":"70605f9d8901d4c4b99d9fda1f30bc114cb0b65893579f77a1f9d50f62c1e3fc"}},"tests/fixtures/benchmark_24/en/direct.md":{"size":155,"mtime_ns":1787196054149613200,"indexed_at_ns":1787196460272766400,"word_count":21,"hashes":{"tests/fixtures/benchmark_24/en/direct.md":"c7e0b093c386ccf19d9d7cbef4763dfb665213a7a245093af43529b1eaff8266"}},"tests/fixtures/benchmark_24/en/direct_expected.json":{"size":132,"mtime_ns":1787196059966736300,"indexed_at_ns":1787196460159526700,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/en/direct_expected.json":"0b803b2ad37388be7ef4ea1d164db22c9fd784bcb9be6f56627d412f1f9299bc"}},"tests/fixtures/benchmark_24/en/ecp.json":{"size":594,"mtime_ns":1787197123717795600,"indexed_at_ns":1787197157494285900,"word_count":52,"hashes":{"tests/fixtures/benchmark_24/en/ecp.json":"601423ac1e0b0e2bb7a0151ac87f5bdfd32450d90a022eaf9ef030338e0b4893"}},"tests/fixtures/benchmark_24/en/not_related.md":{"size":146,"mtime_ns":1787196350333465500,"indexed_at_ns":1787196460273595300,"word_count":24,"hashes":{"tests/fixtures/benchmark_24/en/not_related.md":"2fa405b123733c5a9b5beba8c646b886b27e212cff55496a9fe7d6208ddfb11c"}},"tests/fixtures/benchmark_24/en/not_related_expected.json":{"size":129,"mtime_ns":1787196104521133100,"indexed_at_ns":1787196460161344300,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/en/not_related_expected.json":"cb046b055b5c72d8146b6035a935211d60fb0b313ef819576bb8e7048d55f468"}},"tests/fixtures/benchmark_24/en/tangential.md":{"size":147,"mtime_ns":1787196082730266300,"indexed_at_ns":1787196460274648200,"word_count":25,"hashes":{"tests/fixtures/benchmark_24/en/tangential.md":"793acebc11e5d6c17872d56881c8fe99cb187116c38fa4b2647d28fe3063a61e"}},"tests/fixtures/benchmark_24/en/tangential_expected.json":{"size":128,"mtime_ns":1787196089699545000,"indexed_at_ns":1787196460162151700,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/en/tangential_expected.json":"d5b1a4dc64246838a066f73c41f0e33dcd59636e61d6c0842a3728247e536aff"}},"tests/fixtures/benchmark_24/es/contextual.md":{"size":167,"mtime_ns":1787196129959491900,"indexed_at_ns":1787196460275850900,"word_count":22,"hashes":{"tests/fixtures/benchmark_24/es/contextual.md":"d45ef46752e2093455e35cbf97076f943ab2be736c9bc4580607960b9d068731"}},"tests/fixtures/benchmark_24/es/contextual_expected.json":{"size":136,"mtime_ns":1787196135705341100,"indexed_at_ns":1787196460162957600,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/es/contextual_expected.json":"083f7153df08f93f595782eb2959e8505ac4bda4daaf6634c7a11d444c1ba6b0"}},"tests/fixtures/benchmark_24/es/direct.md":{"size":179,"mtime_ns":1787196118640588800,"indexed_at_ns":1787196460276716800,"word_count":29,"hashes":{"tests/fixtures/benchmark_24/es/direct.md":"f6e282a68830d5518285b0cda510fe57fa844cc6322979604a427797f07fdbd7"}},"tests/fixtures/benchmark_24/es/direct_expected.json":{"size":132,"mtime_ns":1787196124282103900,"indexed_at_ns":1787196460163727400,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/es/direct_expected.json":"fb96e4ae9e2e1603b9ac4d31b6984b31d814b3f31a8a3ca03c52c1ffa4199471"}},"tests/fixtures/benchmark_24/es/ecp.json":{"size":590,"mtime_ns":1787196110761765400,"indexed_at_ns":1787196460164509700,"word_count":52,"hashes":{"tests/fixtures/benchmark_24/es/ecp.json":"09cad55a4cc5a8c04b9898dee21c28b0d40561fcdd8ff012fe4de96616c05f7f"}},"tests/fixtures/benchmark_24/es/not_related.md":{"size":148,"mtime_ns":1787196152611035900,"indexed_at_ns":1787196460277631800,"word_count":23,"hashes":{"tests/fixtures/benchmark_24/es/not_related.md":"1b8a7f7a6852c9ec33fc34513ab479bd5edba48762a0801f7982e48adcb0089b"}},"tests/fixtures/benchmark_24/es/not_related_expected.json":{"size":129,"mtime_ns":1787196158098444000,"indexed_at_ns":1787196460165309300,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/es/not_related_expected.json":"01645746a62894e6448895d9bf5eac394e94e54711d7f519d2ed14d8b8957487"}},"tests/fixtures/benchmark_24/es/tangential.md":{"size":141,"mtime_ns":1787196141436479100,"indexed_at_ns":1787196460278451000,"word_count":23,"hashes":{"tests/fixtures/benchmark_24/es/tangential.md":"41888c762fdc38fb9d5a6dc39373ac2e38331ba4520535088efef8943ea40e49"}},"tests/fixtures/benchmark_24/es/tangential_expected.json":{"size":128,"mtime_ns":1787196147026058000,"indexed_at_ns":1787196460166503400,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/es/tangential_expected.json":"aac2bd9ab5946710c62dc0a8daf8b1481462bed081e11db4558c08ef917fcf81"}},"tests/fixtures/benchmark_24/fr/contextual.md":{"size":167,"mtime_ns":1787196288415259700,"indexed_at_ns":1787196460279288100,"word_count":23,"hashes":{"tests/fixtures/benchmark_24/fr/contextual.md":"8a36d5737429e743ffbdc8c6ae78bcc9410915e048056dbd1fb4d3d493ac7ec6"}},"tests/fixtures/benchmark_24/fr/contextual_expected.json":{"size":136,"mtime_ns":1787196295706997200,"indexed_at_ns":1787196460167650500,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/fr/contextual_expected.json":"4a155288609fc5c935a39a633d7185109629871380b88af1c367922e44abe900"}},"tests/fixtures/benchmark_24/fr/direct.md":{"size":160,"mtime_ns":1787196277020128300,"indexed_at_ns":1787196460280073100,"word_count":20,"hashes":{"tests/fixtures/benchmark_24/fr/direct.md":"f218d9c8ada6c31e813c41bcb5e6a081a1df526022b907795065c0f845480077"}},"tests/fixtures/benchmark_24/fr/direct_expected.json":{"size":132,"mtime_ns":1787196282775093400,"indexed_at_ns":1787196460168573600,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/fr/direct_expected.json":"b93c2059a731e06a164fe1331e1c7ff01fb741f728c8aa1df151ee51bc993268"}},"tests/fixtures/benchmark_24/fr/ecp.json":{"size":600,"mtime_ns":1787197131861351500,"indexed_at_ns":1787197157506006100,"word_count":50,"hashes":{"tests/fixtures/benchmark_24/fr/ecp.json":"f2e7f9eafa1fd24514541868c83db90b69784d5faf4e8d039d79d11597b51428"}},"tests/fixtures/benchmark_24/fr/not_related.md":{"size":181,"mtime_ns":1787196312472120100,"indexed_at_ns":1787196460280811500,"word_count":30,"hashes":{"tests/fixtures/benchmark_24/fr/not_related.md":"475984d25541d876b7d9e3e8f7cff7b3db2bc1489c25d6612b911da6d2b2af8e"}},"tests/fixtures/benchmark_24/fr/not_related_expected.json":{"size":129,"mtime_ns":1787196317906240800,"indexed_at_ns":1787196460170379300,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/fr/not_related_expected.json":"31b3104faa21c2a417399fdd85d077d1c58fe74ee33fd41b0942580be6f81267"}},"tests/fixtures/benchmark_24/fr/tangential.md":{"size":158,"mtime_ns":1787196301225610200,"indexed_at_ns":1787196460281594400,"word_count":25,"hashes":{"tests/fixtures/benchmark_24/fr/tangential.md":"7f6c6ab84d2a26675f9f16fb23d45cf1e97b3ff5e28fb98df6aeaa2368d2c305"}},"tests/fixtures/benchmark_24/fr/tangential_expected.json":{"size":128,"mtime_ns":1787196306729905200,"indexed_at_ns":1787196460171141500,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/fr/tangential_expected.json":"cc117a22ba73be1b308d377767ca0ae8da8e5889ccdaa430893b3ae70a58c9ca"}},"tests/fixtures/benchmark_24/it/contextual.md":{"size":150,"mtime_ns":1787196234462201200,"indexed_at_ns":1787196460283346800,"word_count":21,"hashes":{"tests/fixtures/benchmark_24/it/contextual.md":"045391f6f676add7e1ae9391419ef65442259ab90f9cacb5caca4d468d292017"}},"tests/fixtures/benchmark_24/it/contextual_expected.json":{"size":136,"mtime_ns":1787196240055631300,"indexed_at_ns":1787196460171870600,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/it/contextual_expected.json":"b2b4b297f43e5af1cda526e259acede43a31b552c0321bee1ce1c72572cec557"}},"tests/fixtures/benchmark_24/it/direct.md":{"size":145,"mtime_ns":1787196221664473400,"indexed_at_ns":1787196460284281100,"word_count":23,"hashes":{"tests/fixtures/benchmark_24/it/direct.md":"d54bad27d944692fa7f00a036f882d1c0e42d189241822adcae86edf73a444da"}},"tests/fixtures/benchmark_24/it/direct_expected.json":{"size":132,"mtime_ns":1787196228986408600,"indexed_at_ns":1787196460172673300,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/it/direct_expected.json":"f94e71dc4b78c0646190ff288f08dab46c67f2356b8b75cc515c28af7c9c423c"}},"tests/fixtures/benchmark_24/it/ecp.json":{"size":529,"mtime_ns":1787196215715634300,"indexed_at_ns":1787196460173452600,"word_count":45,"hashes":{"tests/fixtures/benchmark_24/it/ecp.json":"bcbd12d3057368618b006c24f384341f91349c713d10a3028d3eb4afada32de6"}},"tests/fixtures/benchmark_24/it/not_related.md":{"size":153,"mtime_ns":1787196259362992300,"indexed_at_ns":1787196460285099000,"word_count":23,"hashes":{"tests/fixtures/benchmark_24/it/not_related.md":"bca227c7b17fd4404e5ca1d082b848981c1da28d0b657df1e025c03056387f13"}},"tests/fixtures/benchmark_24/it/not_related_expected.json":{"size":129,"mtime_ns":1787196265318256200,"indexed_at_ns":1787196460174468400,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/it/not_related_expected.json":"d007ac531224ad0834e9a8807582d0e047524be4c30fffdd1a19a51dba36d85d"}},"tests/fixtures/benchmark_24/it/tangential.md":{"size":155,"mtime_ns":1787196245918356300,"indexed_at_ns":1787196460285993500,"word_count":23,"hashes":{"tests/fixtures/benchmark_24/it/tangential.md":"a78a886f11462033c996a20b629e13c6bb55d4e08ffed20601cd4ea877b9db09"}},"tests/fixtures/benchmark_24/it/tangential_expected.json":{"size":128,"mtime_ns":1787196252898853500,"indexed_at_ns":1787196460175957500,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/it/tangential_expected.json":"18872f6fe4cbd71812566494e88bd97633d696f732b3b5bad871f81076703f74"}},"tests/fixtures/benchmark_24/pt/contextual.md":{"size":125,"mtime_ns":1787196014201071400,"indexed_at_ns":1787196460286845200,"word_count":18,"hashes":{"tests/fixtures/benchmark_24/pt/contextual.md":"e9ea12885a5c68822f96691e543b55885afba3d00a9e0fa65837bd88e559f157"}},"tests/fixtures/benchmark_24/pt/contextual_expected.json":{"size":136,"mtime_ns":1787196019487136800,"indexed_at_ns":1787196460176915600,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/pt/contextual_expected.json":"34145a845a7f6b155bf42c028bb0c6d8d43ed5cd0b1d179c089b1e621fecd08f"}},"tests/fixtures/benchmark_24/pt/direct.md":{"size":140,"mtime_ns":1787196003236562000,"indexed_at_ns":1787196460287899900,"word_count":21,"hashes":{"tests/fixtures/benchmark_24/pt/direct.md":"150182b9c1352163cb136c19141b85b3f0323e7eaa0cd023fce1dfef0de63d29"}},"tests/fixtures/benchmark_24/pt/direct_expected.json":{"size":132,"mtime_ns":1787196008785189600,"indexed_at_ns":1787196460177800600,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/pt/direct_expected.json":"a9c666394db6a6e2fcd503d8cf67549531ee9e70eb73b1edb2b6a2443316cbf2"}},"tests/fixtures/benchmark_24/pt/ecp.json":{"size":507,"mtime_ns":1787195997549710300,"indexed_at_ns":1787196460178615000,"word_count":40,"hashes":{"tests/fixtures/benchmark_24/pt/ecp.json":"cec78c3ed8d2ec311d079239922a10a35a7fc9c382d8886fec81c6322d2a70ac"}},"tests/fixtures/benchmark_24/pt/not_related.md":{"size":124,"mtime_ns":1787196036724084200,"indexed_at_ns":1787196460288769500,"word_count":19,"hashes":{"tests/fixtures/benchmark_24/pt/not_related.md":"3af103a7f0df8e93c6154157e9903dc7fc10d64fa69dd7c2b08d4f68b99b1972"}},"tests/fixtures/benchmark_24/pt/not_related_expected.json":{"size":129,"mtime_ns":1787196042201218800,"indexed_at_ns":1787196460179403700,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/pt/not_related_expected.json":"d5ce36bca028f31ba472e325993610eb82f98e1a8f84fa770bf92aa7158ce954"}},"tests/fixtures/benchmark_24/pt/tangential.md":{"size":140,"mtime_ns":1787196024978861700,"indexed_at_ns":1787196460289652400,"word_count":24,"hashes":{"tests/fixtures/benchmark_24/pt/tangential.md":"77d86f819ccbefe9830a57151354ca47d83e46b3d0e55d0f5139f37a1d9df0b8"}},"tests/fixtures/benchmark_24/pt/tangential_expected.json":{"size":128,"mtime_ns":1787196030395574000,"indexed_at_ns":1787196460180223100,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/pt/tangential_expected.json":"fb977fec8db613f9545c81adffe0295084c6198b5f7c9a85d8901a228de63a51"}},"tests/test_adapters.py":{"size":1166,"mtime_ns":1787264437929228700,"indexed_at_ns":1787264516466770300,"word_count":91,"hashes":{"tests/test_adapters.py":"32a9519d5c55012aedaa43a786aff1cec88e7391d186f5d0a54213ca1b204f48"}},"tests/test_benchmark_24.py":{"size":2757,"mtime_ns":1787264437930228400,"indexed_at_ns":1787264516468505400,"word_count":257,"hashes":{"tests/test_benchmark_24.py":"7c136ac4d442e47a2f8914303880ce265c2fe49485eb182014fc3e10c06f9e71"}},"tests/test_classifier.py":{"size":3836,"mtime_ns":1787264437927229800,"indexed_at_ns":1787264516469349200,"word_count":351,"hashes":{"tests/test_classifier.py":"d3323e05dd21f20686d9293f767ebb2ced206c7b74e7ca89d2ac02c0a4e31282"}},"tests/test_cli.py":{"size":3872,"mtime_ns":1787264437929228700,"indexed_at_ns":1787264516470059400,"word_count":314,"hashes":{"tests/test_cli.py":"0573d9b13e45413beefac33d86eae94e17dbbf37554120a1fc5720bfb3d67d63"}},"tests/test_language.py":{"size":1929,"mtime_ns":1787264437929228700,"indexed_at_ns":1787264516472426100,"word_count":242,"hashes":{"tests/test_language.py":"7f7aae057ecbda26edd747d24241e9cf36f611c71c5d70d0aa308df7d71e0547"}},"tests/test_models.py":{"size":3668,"mtime_ns":1787264437930228400,"indexed_at_ns":1787264516473330500,"word_count":306,"hashes":{"tests/test_models.py":"232210770fc690edcc732d940bafe46fcec9bfed7f17e0aa5c60e6cf6635751f"}},"tests/test_adversarial.py":{"size":8429,"mtime_ns":1787264437924228700,"indexed_at_ns":1787264516467613100,"word_count":704,"hashes":{"tests/test_adversarial.py":"3acc7ff372e6b0f1f42dad29d280b835ac51784b1dca8054472287a7355c9386"}},"docs/googlenews_extractor_guia_completo.md":{"size":23200,"mtime_ns":1787264437928228500,"indexed_at_ns":1787264516560203200,"word_count":2292,"hashes":{"docs/googlenews_extractor_guia_completo.md":"dcff19204ab04403030b2339663c0d3c161744f50a53f5254c459a894eb3b3c8"}},"examples/ecp_sao_paulo_futebol_clube.json":{"size":23358,"mtime_ns":1787229477299354200,"indexed_at_ns":1787234770609429300,"word_count":1524,"hashes":{"examples/ecp_sao_paulo_futebol_clube.json":"1af9006669d57f8dc123f0edea0d0fe8aaeb9016e36ec3e0d95023ea26996915"}},"scripts/extract_google_news.py":{"size":14720,"mtime_ns":1787264437927229800,"indexed_at_ns":1787264516421445500,"word_count":1314,"hashes":{"scripts/extract_google_news.py":"aa17b59997ab6bb549a918fb1026ddf5a5c5143c75c234895dc32447e2c5b85a"}},"specs/002-google-news-extractor/checklists/readiness.md":{"size":5258,"mtime_ns":1787234305932687100,"indexed_at_ns":1787234770736852100,"word_count":706,"hashes":{"specs/002-google-news-extractor/checklists/readiness.md":"ad4c18a1fe1c6f19f45a043748fe4f195db525afac53ed77905222015ec5230c"}},"specs/002-google-news-extractor/checklists/requirements.md":{"size":1144,"mtime_ns":1787232386676398600,"indexed_at_ns":1787234770737689600,"word_count":158,"hashes":{"specs/002-google-news-extractor/checklists/requirements.md":"d83944755d7f6e43d8c76e032f0047be6f8c4cb2b80dea65e198f57b9c5eccd7"}},"specs/002-google-news-extractor/contracts/cli_contract.md":{"size":2681,"mtime_ns":1787236744313922700,"indexed_at_ns":1787236813512122300,"word_count":424,"hashes":{"specs/002-google-news-extractor/contracts/cli_contract.md":"6b9e3c10becd7b8fa633e409e9a3298ff4b2903dfd5194054c8e41dd0c0c5f23"}},"specs/002-google-news-extractor/data-model.md":{"size":3008,"mtime_ns":1787234040813431800,"indexed_at_ns":1787234770739130200,"word_count":472,"hashes":{"specs/002-google-news-extractor/data-model.md":"78cec846c1173fbdff3c77313ba02c7977365e5ab102df527f90ed7b06e69519"}},"specs/002-google-news-extractor/plan.md":{"size":3947,"mtime_ns":1787236725982522400,"indexed_at_ns":1787236813514970600,"word_count":448,"hashes":{"specs/002-google-news-extractor/plan.md":"57a0a3eb1fd6d7afbe394be62e681a02d7ef26124f4142b9d8b72ea95259a34b"}},"specs/002-google-news-extractor/quickstart.md":{"size":2341,"mtime_ns":1787236764020651300,"indexed_at_ns":1787236813515935900,"word_count":317,"hashes":{"specs/002-google-news-extractor/quickstart.md":"3478a487614358839b3e53c15b05b86a4b850bead9b4142384566e244753bde3"}},"specs/002-google-news-extractor/research.md":{"size":3630,"mtime_ns":1787236785046618200,"indexed_at_ns":1787236813516811500,"word_count":483,"hashes":{"specs/002-google-news-extractor/research.md":"71e796c83a1c293fa380b4f01a2eed810275e4628548e0f8e8b9ecaa90d3ac13"}},"specs/002-google-news-extractor/spec.md":{"size":7506,"mtime_ns":1787236709078315600,"indexed_at_ns":1787236813517705300,"word_count":1096,"hashes":{"specs/002-google-news-extractor/spec.md":"e84b37b25f61ed209d1295f77bf84024ac6c3c818f6b98043204a9f81bff49f0"}},"specs/002-google-news-extractor/tasks.md":{"size":5315,"mtime_ns":1787236802480804800,"indexed_at_ns":1787236813518644500,"word_count":692,"hashes":{"specs/002-google-news-extractor/tasks.md":"94430da291ad0dc34b1cde7c30f2b8e1ce0c83d35b5e71ab68bd135146c9ef47"}},"tests/test_extract_google_news.py":{"size":12221,"mtime_ns":1787264437931227400,"indexed_at_ns":1787264516471687100,"word_count":1114,"hashes":{"tests/test_extract_google_news.py":"5304424b746b871720985cfdd031b0f8895c664bdd9d273b9c1723f445a2276f"}},"scripts/__init__.py":{"size":50,"mtime_ns":1787234973578233800,"indexed_at_ns":1787235018163517900,"word_count":6,"hashes":{"scripts/__init__.py":"f30a694c2114ef6bc58efa1caea7265dde8ef296d92cdb77c8b3e3d1f21af3a5"}},"README.md":{"size":21395,"mtime_ns":1787274445463162200,"indexed_at_ns":1787274452239721500,"word_count":2606,"hashes":{"readme.md":"391a52f77897cbbe1a555fcf94d432c1b7669343ecbf3b8336a941e5c10931d5"}},"docs/prd_extrator_artigos_nlp.md":{"size":11894,"mtime_ns":1787237774009258300,"indexed_at_ns":1787240513666474800,"word_count":1548,"hashes":{"docs/prd_extrator_artigos_nlp.md":"e10035c73584efc6d043bec17d43388ecbf25b576ca3475d0b9906cbc16fad90"}},"scripts/extract_article_contents.py":{"size":27025,"mtime_ns":1787264465341521500,"indexed_at_ns":1787264516419754800,"word_count":2069,"hashes":{"scripts/extract_article_contents.py":"a76fc087a959496bc2cf4767baaed89628bd945e1aaa8e981be840cf1240f1ba"}},"specs/003-article-content-extractor/checklists/extraction.md":{"size":4716,"mtime_ns":1787239873797626000,"indexed_at_ns":1787240513705426800,"word_count":609,"hashes":{"specs/003-article-content-extractor/checklists/extraction.md":"b8351909b93111f8f1e50f0f100446d3f579d0c11823eba4936c72a617aba5f8"}},"specs/003-article-content-extractor/checklists/requirements.md":{"size":1209,"mtime_ns":1787237950814070500,"indexed_at_ns":1787240513706099200,"word_count":164,"hashes":{"specs/003-article-content-extractor/checklists/requirements.md":"3c770288636c4523897b41c6dad5f2771af2007654d6b5f6b87d74bc9c33d11d"}},"specs/003-article-content-extractor/contracts/cli-contract.md":{"size":2493,"mtime_ns":1787239569056013800,"indexed_at_ns":1787240513706906100,"word_count":390,"hashes":{"specs/003-article-content-extractor/contracts/cli-contract.md":"44c5ec336c210bdd9671a5e852ee750e91f426b87c954b2c52499513cb85168d"}},"specs/003-article-content-extractor/contracts/json-schema.md":{"size":3065,"mtime_ns":1787239578931403200,"indexed_at_ns":1787240513707577900,"word_count":298,"hashes":{"specs/003-article-content-extractor/contracts/json-schema.md":"0cefe7faadd07932717b8c3493914e5367ec6ac50673671aee1f4edc7bde7e37"}},"specs/003-article-content-extractor/data-model.md":{"size":4410,"mtime_ns":1787239558236282500,"indexed_at_ns":1787240513708324600,"word_count":733,"hashes":{"specs/003-article-content-extractor/data-model.md":"651180962cf2a9253cb0a22429947eb3bf552c26be7defce98ef7583cbcd8fbf"}},"specs/003-article-content-extractor/plan.md":{"size":4642,"mtime_ns":1787264323707266000,"indexed_at_ns":1787264516630842500,"word_count":510,"hashes":{"specs/003-article-content-extractor/plan.md":"3ae38a2a907f1aeb6987c647a6290533acde67ef91f590445bdec0e1da5f52be"}},"specs/003-article-content-extractor/quickstart.md":{"size":2210,"mtime_ns":1787239589989665700,"indexed_at_ns":1787240513709638200,"word_count":282,"hashes":{"specs/003-article-content-extractor/quickstart.md":"332c407a9b1c3eafcb874d24f5396f005cde65d4d8e9e643fda95f47f093c544"}},"specs/003-article-content-extractor/research.md":{"size":4220,"mtime_ns":1787239545833014600,"indexed_at_ns":1787240513710259700,"word_count":588,"hashes":{"specs/003-article-content-extractor/research.md":"485f0e63023aa6dc8c4c64b22dd7394c032b7f468fa41632967789c4e269587b"}},"specs/003-article-content-extractor/spec.md":{"size":10428,"mtime_ns":1787264319288323400,"indexed_at_ns":1787264516635570600,"word_count":1515,"hashes":{"specs/003-article-content-extractor/spec.md":"1ad671e31d86c76aedaa27d5d4da839cdf2d602bd17e618310c80bd3747fab78"}},"specs/003-article-content-extractor/tasks.md":{"size":8201,"mtime_ns":1787240464652064400,"indexed_at_ns":1787240513711676500,"word_count":1070,"hashes":{"specs/003-article-content-extractor/tasks.md":"3122914461e8d6017e63900c66fa8935135b5efcc9fca8d64e762ee109602901"}},"tests/test_extract_article_contents.py":{"size":13204,"mtime_ns":1787264437929228700,"indexed_at_ns":1787264516470977000,"word_count":1039,"hashes":{"tests/test_extract_article_contents.py":"4333ac8911d1cd27964b0bacfa394ee8fe9e068bb2f25f3e0ff5e299564a7b4d"}},"docs/prd_deterministic_content_selection.md":{"size":15516,"mtime_ns":1787264674203828600,"indexed_at_ns":1787272605069414800,"word_count":2047,"hashes":{"docs/prd_deterministic_content_selection.md":"a337f19aa87b82ef5ee4f04bae19833331de5c49ee83bca2cf1f542eb893ae0b"}},"scripts/select_article_extractor.py":{"size":21476,"mtime_ns":1787273522903319000,"indexed_at_ns":1787273545925952600,"word_count":2083,"hashes":{"scripts/select_article_extractor.py":"cb68f74508ae41345d6ecaaf83418f460dff21cbfc81770bc5f6f136890ecfd5"}},"specs/004-deterministic-content-selection/checklists/deterministic-selection.md":{"size":4236,"mtime_ns":1787272346869214200,"indexed_at_ns":1787272605178155100,"word_count":566,"hashes":{"specs/004-deterministic-content-selection/checklists/deterministic-selection.md":"937ec7535aa3602a811212d196f441aff79338c4358b881c1bc8f7844b4f8241"}},"specs/004-deterministic-content-selection/checklists/requirements.md":{"size":1303,"mtime_ns":1787264728720272700,"indexed_at_ns":1787272605179339000,"word_count":175,"hashes":{"specs/004-deterministic-content-selection/checklists/requirements.md":"8a7f723658366b3ba5e135483200453bbbe100152977f488f39161c537903f56"}},"specs/004-deterministic-content-selection/contracts/cli-contract.md":{"size":2071,"mtime_ns":1787274329217544500,"indexed_at_ns":1787274399618300500,"word_count":293,"hashes":{"specs/004-deterministic-content-selection/contracts/cli-contract.md":"6e6d43cae2405e648ff02f937b911d61e8efbd1f34b1f608feed7166f6c241f4"}},"specs/004-deterministic-content-selection/contracts/json-schema.md":{"size":1982,"mtime_ns":1787271837732839400,"indexed_at_ns":1787272605181473200,"word_count":195,"hashes":{"specs/004-deterministic-content-selection/contracts/json-schema.md":"db8b8702249e41e00c89cfcba0c76be591c320e8c42c9ef9a1098bb764097da6"}},"specs/004-deterministic-content-selection/data-model.md":{"size":5498,"mtime_ns":1787271825597039400,"indexed_at_ns":1787272605182487300,"word_count":681,"hashes":{"specs/004-deterministic-content-selection/data-model.md":"5773f5110269524eda7750f0d154d16e0bb29990fac51f57f76b42702789de8a"}},"specs/004-deterministic-content-selection/plan.md":{"size":5319,"mtime_ns":1787271850174420500,"indexed_at_ns":1787272605183666400,"word_count":643,"hashes":{"specs/004-deterministic-content-selection/plan.md":"2baf2f08897f9e80d43db55aa178ac515e3f012fac265e43a7fb679eb4c01f1f"}},"specs/004-deterministic-content-selection/quickstart.md":{"size":2192,"mtime_ns":1787274324146791400,"indexed_at_ns":1787274399622292000,"word_count":241,"hashes":{"specs/004-deterministic-content-selection/quickstart.md":"33763f18c72242a3b8ddc296b18cc0c7a35c490165a78cd21d021263d43add3b"}},"specs/004-deterministic-content-selection/research.md":{"size":6915,"mtime_ns":1787274316854443300,"indexed_at_ns":1787274399622900200,"word_count":906,"hashes":{"specs/004-deterministic-content-selection/research.md":"11e7f5000a2fb8eeff02785f691ae153bc0eedd913432e3ca833022d394ff427"}},"specs/004-deterministic-content-selection/spec.md":{"size":11807,"mtime_ns":1787274311156486400,"indexed_at_ns":1787274399623530600,"word_count":1619,"hashes":{"specs/004-deterministic-content-selection/spec.md":"7f0baab75874dd05fc9fc891aefd4b4012b5ad82b2ed1738261ec6cb15d9f303"}},"specs/004-deterministic-content-selection/tasks.md":{"size":8181,"mtime_ns":1787272595818614500,"indexed_at_ns":1787272605189230700,"word_count":1024,"hashes":{"specs/004-deterministic-content-selection/tasks.md":"412b7a4261ea8c52655286c5b5761cc3800dfedf827289589380b700a4c40887"}},"tests/test_select_article_extractor.py":{"size":23724,"mtime_ns":1787274189777748800,"indexed_at_ns":1787274205164191000,"word_count":2232,"hashes":{"tests/test_select_article_extractor.py":"29b062645f2d57b34075195586c9d66d1f48f287082dcc75409c9b175e7a30dd"}}} \ No newline at end of file +{".agents/skills/graphify/SKILL.md":{"size":41276,"mtime_ns":1787189375574389900,"indexed_at_ns":1787189383574665500,"word_count":5211,"hashes":{".agents/skills/graphify/skill.md":"3f0ba089a04e342e4337913a03515905fe205f57914b53b8eb1ff59dc926a4ea"}},".agents/skills/graphify/references/add-watch.md":{"size":2486,"mtime_ns":1787176247108301100,"indexed_at_ns":1787189352249948700,"word_count":366,"hashes":{".agents/skills/graphify/references/add-watch.md":"bc4c3ac2e736e36fff3e120b2a7967f1f049c6b05ca39db50606b4bb83c768f7"}},".agents/skills/graphify/references/exports.md":{"size":3362,"mtime_ns":1787176247109325900,"indexed_at_ns":1787189352252005200,"word_count":470,"hashes":{".agents/skills/graphify/references/exports.md":"81b09c0ad09d54d52b68755c32544024e290c02f53bdeb283b1b76d7eebc2445"}},".agents/skills/graphify/references/extraction-spec.md":{"size":7960,"mtime_ns":1787176247109325900,"indexed_at_ns":1787189352254091000,"word_count":1038,"hashes":{".agents/skills/graphify/references/extraction-spec.md":"d07c5b2e8224b1006b1a336f77d0af22f637fe8d20166895bf852c32324d851b"}},".agents/skills/graphify/references/github-and-merge.md":{"size":2177,"mtime_ns":1787176247111831300,"indexed_at_ns":1787189352255826900,"word_count":271,"hashes":{".agents/skills/graphify/references/github-and-merge.md":"189cf7c8c51988d23f6ad25dff96855ce0e7336bffa352dedb3867954e702f7b"}},".agents/skills/graphify/references/hooks.md":{"size":1267,"mtime_ns":1787176247112843500,"indexed_at_ns":1787189352257586300,"word_count":193,"hashes":{".agents/skills/graphify/references/hooks.md":"3e7d2df361e7059e921192b1693cc7859e4a2b0474446f8352be5a4624790eaa"}},".agents/skills/graphify/references/query.md":{"size":13456,"mtime_ns":1787176247113897600,"indexed_at_ns":1787189352259619700,"word_count":1763,"hashes":{".agents/skills/graphify/references/query.md":"151ad7ed0ee4aefe411f026261f605a61134cc6247324fe8df3ae1e785321283"}},".agents/skills/graphify/references/transcribe.md":{"size":3173,"mtime_ns":1787176247113897600,"indexed_at_ns":1787189352261502100,"word_count":418,"hashes":{".agents/skills/graphify/references/transcribe.md":"cbbbae90e451d722b39df0df7bc267bb9b7ecb3dd8a9e8be4b40237df053c8d6"}},".agents/skills/graphify/references/update.md":{"size":10425,"mtime_ns":1787176247115420200,"indexed_at_ns":1787189352263334600,"word_count":1196,"hashes":{".agents/skills/graphify/references/update.md":"b209dbb3bb5466e601a530b65925c55c34f040ffcf56d38ea64be9aaf75f92ce"}},".agents/skills/ponytail-audit/SKILL.md":{"size":1693,"mtime_ns":1786995804152832800,"indexed_at_ns":1787189325036907200,"word_count":234,"hashes":{".agents/skills/ponytail-audit/skill.md":"b29dd08e26692c4bdd87b024d43820e2b45527984d9b3330b5fcfc78491aac52"}},".agents/skills/ponytail-debt/SKILL.md":{"size":1747,"mtime_ns":1786995804152832800,"indexed_at_ns":1787189325037560500,"word_count":261,"hashes":{".agents/skills/ponytail-debt/skill.md":"4b8e8de454f0d7d46bce20b3f4b4ea4c5a1eb60691c0d8bef27ef4ded155e4bc"}},".agents/skills/ponytail-gain/SKILL.md":{"size":2023,"mtime_ns":1786995804154227800,"indexed_at_ns":1787189325038161300,"word_count":246,"hashes":{".agents/skills/ponytail-gain/skill.md":"9e15d99db7452555dae0cc55e5c37799e1dc8acaed4eb89c0e9641d3afbb9646"}},".agents/skills/ponytail-help/SKILL.md":{"size":2867,"mtime_ns":1786995804154227800,"indexed_at_ns":1787189325038779900,"word_count":379,"hashes":{".agents/skills/ponytail-help/skill.md":"4b6ba4d12d19068c08b12af63c05b0acc9ce3beed06654065450c0cd6042d9db"}},".agents/skills/ponytail-review/SKILL.md":{"size":2440,"mtime_ns":1786995804155238700,"indexed_at_ns":1787189325039426100,"word_count":339,"hashes":{".agents/skills/ponytail-review/skill.md":"694090b91438cff578931361d36947da438722dd1f9f7460022bb3aa5b18b4de"}},".agents/skills/ponytail/SKILL.md":{"size":6757,"mtime_ns":1786995804156239700,"indexed_at_ns":1787189325040071200,"word_count":1079,"hashes":{".agents/skills/ponytail/skill.md":"64fc6e81a1b2b008fd72f5c9686498e53383e9cb25d518dc81305799e985bf6f"}},".agents/skills/speckit-analyze/SKILL.md":{"size":11642,"mtime_ns":1787189272133064100,"indexed_at_ns":1787189325040713600,"word_count":1569,"hashes":{".agents/skills/speckit-analyze/skill.md":"12f78b5b87a05d7075320de7e7df0fc3890ee915bf5203ef2c397fee48b0d04e"}},".agents/skills/speckit-checklist/SKILL.md":{"size":22277,"mtime_ns":1787189272160379600,"indexed_at_ns":1787189325041377200,"word_count":2981,"hashes":{".agents/skills/speckit-checklist/skill.md":"1b9b592206c499d1c46699ea99fd3795ec31638e3968aa90054d07bff9f26852"}},".agents/skills/speckit-clarify/SKILL.md":{"size":19212,"mtime_ns":1787189272137533000,"indexed_at_ns":1787189325042095600,"word_count":2688,"hashes":{".agents/skills/speckit-clarify/skill.md":"d091faedcb83b3f11a3049a84424f5d66b6bdf181b192a8167c07b94133e617d"}},".agents/skills/speckit-constitution/SKILL.md":{"size":9959,"mtime_ns":1787189272141381400,"indexed_at_ns":1787189325042781900,"word_count":1376,"hashes":{".agents/skills/speckit-constitution/skill.md":"791892a3d87f7bd6ea936f896c5050b183942489d68bfb383c2ba4de8380a901"}},".agents/skills/speckit-converge/SKILL.md":{"size":12639,"mtime_ns":1787189272150381400,"indexed_at_ns":1787189325043428600,"word_count":1798,"hashes":{".agents/skills/speckit-converge/skill.md":"c04c22c94ac9a47d73d547636127b06f38647627a4dbfbc36ae50dd0a95971b3"}},".agents/skills/speckit-implement/SKILL.md":{"size":12703,"mtime_ns":1787189272146373000,"indexed_at_ns":1787189325044057400,"word_count":1691,"hashes":{".agents/skills/speckit-implement/skill.md":"a779bc551abfa24d77556554b4cc0225b3c57bc436956b9cb9aafe306c581945"}},".agents/skills/speckit-plan/SKILL.md":{"size":7857,"mtime_ns":1787189272154380100,"indexed_at_ns":1787189325044689700,"word_count":1083,"hashes":{".agents/skills/speckit-plan/skill.md":"74b5f950130fa658b857d1c81ac052d89277cbe9901c51f01270963c746277b6"}},".agents/skills/speckit-specify/SKILL.md":{"size":18258,"mtime_ns":1787189272165381000,"indexed_at_ns":1787189325045384300,"word_count":2452,"hashes":{".agents/skills/speckit-specify/skill.md":"b86e839509339a9e11a605b6db50fcd3a435511d5cbe1bbbf4f473ac4bdd5447"}},".agents/skills/speckit-tasks/SKILL.md":{"size":10978,"mtime_ns":1787189272169379600,"indexed_at_ns":1787189325046041900,"word_count":1581,"hashes":{".agents/skills/speckit-tasks/skill.md":"69de6853783574ace13eadf7c706a610df2f2584901974b713a51c1576e53339"}},".agents/skills/speckit-taskstoissues/SKILL.md":{"size":7686,"mtime_ns":1787189272172364900,"indexed_at_ns":1787189325046665600,"word_count":1153,"hashes":{".agents/skills/speckit-taskstoissues/skill.md":"fc53c7413cf050b143775a1aeca2773eabb248782a58d599b52d0d232c6c05fd"}},".specify/init-options.json":{"size":174,"mtime_ns":1787189272252382200,"indexed_at_ns":1787189325022221000,"word_count":16,"hashes":{".specify/init-options.json":"b39c8c1030871841dded0aede892fe2d25b36883333777cbab7d7c1c67b36f87"}},".specify/integration.json":{"size":279,"mtime_ns":1787189272181379700,"indexed_at_ns":1787189325023926100,"word_count":24,"hashes":{".specify/integration.json":"d7545650420a2ed3fd6878ad7006b8de79f5e812dd6352c0d86d530db3a12134"}},".specify/integrations/agy.manifest.json":{"size":1299,"mtime_ns":1787189272178366200,"indexed_at_ns":1787189325024675000,"word_count":31,"hashes":{".specify/integrations/agy.manifest.json":"504c42820b8e37a7eb26b328881026982f3a6a71fa16de670c425b35b37f00e4"}},".specify/integrations/speckit.manifest.json":{"size":1536,"mtime_ns":1787189272238379600,"indexed_at_ns":1787189325025369900,"word_count":35,"hashes":{".specify/integrations/speckit.manifest.json":"cc15502df7b241b7ef08785a613f642d69dc561b8b5db2ccba121fcb6d2c1680"}},".specify/memory/.constitution-template.json":{"size":103,"mtime_ns":1787189272257369800,"indexed_at_ns":1787189325026009300,"word_count":6,"hashes":{".specify/memory/.constitution-template.json":"a0f4bf5e5399e118b61e8bae9404743316cea6d0fff4270d8758aeb55525b988"}},".specify/memory/constitution.md":{"size":2346,"mtime_ns":1787189272254379900,"indexed_at_ns":1787189325047314000,"word_count":272,"hashes":{".specify/memory/constitution.md":"51f14d46d5b6abddce28779396666792636c8d9629f0202e84501a5e759267ab"}},".specify/scripts/powershell/check-prerequisites.ps1":{"size":6122,"mtime_ns":1787189272202379800,"indexed_at_ns":1787189325026668000,"word_count":685,"hashes":{".specify/scripts/powershell/check-prerequisites.ps1":"80f1c4dc6817140dea987bb5727d38be754679c7052f1d9a088031536423cb23"}},".specify/scripts/powershell/common.ps1":{"size":34245,"mtime_ns":1787189272206379800,"indexed_at_ns":1787189325027347800,"word_count":3419,"hashes":{".specify/scripts/powershell/common.ps1":"63b253c967802e85ab12e76ac716eca4bb164dde2b9324e08e406d848ec4104b"}},".specify/scripts/powershell/create-new-feature.ps1":{"size":13026,"mtime_ns":1787189272211369000,"indexed_at_ns":1787189325028005300,"word_count":1421,"hashes":{".specify/scripts/powershell/create-new-feature.ps1":"7b4eb36a1fbbbe9a449b5f99de1055b1aad88e775eeb0db3f86e4ff013e6ddd1"}},".specify/scripts/powershell/resolve-template.ps1":{"size":889,"mtime_ns":1787189272214379900,"indexed_at_ns":1787189325028621300,"word_count":86,"hashes":{".specify/scripts/powershell/resolve-template.ps1":"78234a87c584e697a8fda8b18f134914e41465cbb67c1608b81e69860741502c"}},".specify/scripts/powershell/setup-plan.ps1":{"size":2927,"mtime_ns":1787189272218379500,"indexed_at_ns":1787189325029271700,"word_count":325,"hashes":{".specify/scripts/powershell/setup-plan.ps1":"4d5b636734ae78061da3a7675f0af4acfa6b65f7d994d5372c8c051f25bb8966"}},".specify/scripts/powershell/setup-tasks.ps1":{"size":3892,"mtime_ns":1787189272221379900,"indexed_at_ns":1787189325029900900,"word_count":429,"hashes":{".specify/scripts/powershell/setup-tasks.ps1":"5c980d1a41d186b634bc350128c31e5f3074099b996989c0a0d95b22623b2932"}},".specify/templates/checklist-template.md":{"size":2033,"mtime_ns":1787189272223379700,"indexed_at_ns":1787189325047907900,"word_count":271,"hashes":{".specify/templates/checklist-template.md":"6fb0a979b8534e1b3343d1ce6e45f84d32b118e096620bfdeed241dbc1a1da8a"}},".specify/templates/constitution-template.md":{"size":2346,"mtime_ns":1787189272226379800,"indexed_at_ns":1787189325048534600,"word_count":272,"hashes":{".specify/templates/constitution-template.md":"ae22b7c7ecb6ccd516fed25916e465146432c58f1bef904a92b535ac0bbecfcf"}},".specify/templates/plan-template.md":{"size":3682,"mtime_ns":1787189272229368600,"indexed_at_ns":1787189325049160100,"word_count":463,"hashes":{".specify/templates/plan-template.md":"e5cfe5097c5de0add0f0de02b7a5d2cd2470c9a2f24c0e6e15439d274e12abe0"}},".specify/templates/spec-template.md":{"size":4556,"mtime_ns":1787189272231368600,"indexed_at_ns":1787189325049780800,"word_count":629,"hashes":{".specify/templates/spec-template.md":"2734a509d4b2f34ee6258475c4fb2e80a6dbfcbc47c8552df5b6278907529250"}},".specify/templates/tasks-template.md":{"size":9171,"mtime_ns":1787189272234379700,"indexed_at_ns":1787189325050369300,"word_count":1384,"hashes":{".specify/templates/tasks-template.md":"070ed0dfafd8310a243b51cc30b1b6dfb19883fdd5ad20e4b53e45eb7f939e3e"}},".specify/workflows/speckit/workflow.yml":{"size":2216,"mtime_ns":1787160407462626700,"indexed_at_ns":1787189324996696100,"word_count":276},".specify/workflows/workflow-registry.json":{"size":381,"mtime_ns":1787189272250379800,"indexed_at_ns":1787189325030509700,"word_count":34,"hashes":{".specify/workflows/workflow-registry.json":"2c5bf7f4ba03ddf54945cd64d4740301036c18ebea47448d93ff428c771eff3d"}},".agents/rules/graphify.md":{"size":947,"mtime_ns":1787189347444181700,"indexed_at_ns":1787189352246818600,"word_count":127,"hashes":{".agents/rules/graphify.md":"e55792958648fb69255e3ce3f71a8fcead36307c34b2d67feda9ac650ac61803"}},".agents/workflows/graphify.md":{"size":239,"mtime_ns":1787189347444181700,"indexed_at_ns":1787189352301037700,"word_count":37,"hashes":{".agents/workflows/graphify.md":"d92622463299d313da48e2cdbebf79d7ea24ffaf2ae2de2a1714be8ee42b22b3"}},"specs/001-multilingual-entity-classifier/checklists/requirements.md":{"size":1897,"mtime_ns":1787193985655018100,"indexed_at_ns":1787194002726038300,"word_count":258,"hashes":{"specs/001-multilingual-entity-classifier/checklists/requirements.md":"277036c8add1bae5eeae6da5595cf66405670d33f9d4842784b1c5581cef62d0"}},"specs/001-multilingual-entity-classifier/spec.md":{"size":10753,"mtime_ns":1787194850510689300,"indexed_at_ns":1787194930726970700,"word_count":1423,"hashes":{"specs/001-multilingual-entity-classifier/spec.md":"f136d1d2e6a539072ea238be9d0e918dbc32eb89555ffd37e9b84579064e7799"}},"specs/001-multilingual-entity-classifier/contracts/cli-contract.md":{"size":1808,"mtime_ns":1787194605824187100,"indexed_at_ns":1787194638410863000,"word_count":281,"hashes":{"specs/001-multilingual-entity-classifier/contracts/cli-contract.md":"894670a7228b93a2202203ac532aa0d415bd1921272b61a8d07e951a417bc75c"}},"specs/001-multilingual-entity-classifier/data-model.md":{"size":5137,"mtime_ns":1787194591677816000,"indexed_at_ns":1787194638411601100,"word_count":524,"hashes":{"specs/001-multilingual-entity-classifier/data-model.md":"89ecf2e55508b53ba208d011a76868294f0ff3cab87a217e7ed73c19edfbd9f6"}},"specs/001-multilingual-entity-classifier/plan.md":{"size":6215,"mtime_ns":1787194897854106700,"indexed_at_ns":1787194930724386200,"word_count":782,"hashes":{"specs/001-multilingual-entity-classifier/plan.md":"d37d1c5f3bffc4dad289ad128024ab6dffb409b06f49e96fc5a2fd2a735472a5"}},"specs/001-multilingual-entity-classifier/quickstart.md":{"size":3235,"mtime_ns":1787194877439851000,"indexed_at_ns":1787194930725082000,"word_count":339,"hashes":{"specs/001-multilingual-entity-classifier/quickstart.md":"816060813a37d728ceed955aa829d7fa4f80862f0932133cd5293bdbfdbd40db"}},"specs/001-multilingual-entity-classifier/research.md":{"size":4059,"mtime_ns":1787194581004019000,"indexed_at_ns":1787194638413783100,"word_count":509,"hashes":{"specs/001-multilingual-entity-classifier/research.md":"d4b61795fb09da693ead647d4c05e8f44699c36e9f43b47e808e09a2f970d996"}},"specs/001-multilingual-entity-classifier/tasks.md":{"size":6951,"mtime_ns":1787196452595599000,"indexed_at_ns":1787196460266934400,"word_count":874,"hashes":{"specs/001-multilingual-entity-classifier/tasks.md":"7a33202595cf192baf702d3d8e169ea8db59ca0f2fecb471594f7f3c48417082"}},"specs/001-multilingual-entity-classifier/checklists/poc-readiness.md":{"size":4154,"mtime_ns":1787195218247525200,"indexed_at_ns":1787195224690016000,"word_count":546,"hashes":{"specs/001-multilingual-entity-classifier/checklists/poc-readiness.md":"6da9d16dcd60e927f892c69aa05945e99840b6dc824f93ea2686f12801e81a8a"}},"classify.py":{"size":6143,"mtime_ns":1787264412245764200,"indexed_at_ns":1787264516410989400,"word_count":482,"hashes":{"classify.py":"7fc86ae608bd6656cd4d2d91285ab1857edf96864249e6df308dc5c327b35775"}},"examples/content_northvolt_de.md":{"size":530,"mtime_ns":1787195963813740900,"indexed_at_ns":1787196460246681400,"word_count":57,"hashes":{"examples/content_northvolt_de.md":"5708f5dac050fea9c5e4fbdee40910cbb4c4be0efc9c3212f7cf2a7a034eb91d"}},"examples/content_presal_pt.md":{"size":506,"mtime_ns":1787195950024799800,"indexed_at_ns":1787196460247532700,"word_count":72,"hashes":{"examples/content_presal_pt.md":"ef8c7d61a4d721f7d702fa608274da920476be3a4f7bfe6e4f603abba12a133f"}},"examples/content_tangential_es.md":{"size":414,"mtime_ns":1787195975527150700,"indexed_at_ns":1787196460248387000,"word_count":60,"hashes":{"examples/content_tangential_es.md":"d02c405931b0752377a2ba10cbffe4d664713e33c3b6a8fbdd36b4a75b30f11b"}},"examples/ecp_apple.json":{"size":723,"mtime_ns":1787195969757856700,"indexed_at_ns":1787196460143672700,"word_count":68,"hashes":{"examples/ecp_apple.json":"166fb76e5d0d181835dd636450b6828565c2baafcb21228313bcea3c850d9a92"}},"examples/ecp_petrobras.json":{"size":714,"mtime_ns":1787195944394575600,"indexed_at_ns":1787196460144504800,"word_count":62,"hashes":{"examples/ecp_petrobras.json":"5dd24cf4d5cb9f636f3a1c2511eeaa152be0511b80974a4f36d5d68aded046db"}},"examples/ecp_volkswagen.json":{"size":720,"mtime_ns":1787195955456870500,"indexed_at_ns":1787196460145217300,"word_count":56,"hashes":{"examples/ecp_volkswagen.json":"3d3866179c67e332ad5aa46f5d15eeb4de3fa829d1cc21ccf73cc7f3a7eb32c5"}},"pyproject.toml":{"size":762,"mtime_ns":1787264482850924600,"indexed_at_ns":1787264516414577000,"word_count":86,"hashes":{"pyproject.toml":"ab0b0276581056a63d591237beb2e4e8fe3a4441c06963a847dd1f74b569dd88"}},"requirements.txt":{"size":313,"mtime_ns":1787310744908501900,"indexed_at_ns":1787310811272623600,"word_count":29},"src/__init__.py":{"size":83,"mtime_ns":1787195832559486000,"indexed_at_ns":1787196460146819200,"word_count":9,"hashes":{"src/__init__.py":"81c4eae46f05fd529d4f81f2d318c2b4e3af282f140963e9c5c876690bb1ca74"}},"src/adapters/__init__.py":{"size":73,"mtime_ns":1787195842271676800,"indexed_at_ns":1787196460147577400,"word_count":9,"hashes":{"src/adapters/__init__.py":"f4dcecfaeea2ae0852fd9836bfb4f9b2a9bedd60057157064e6d3fed4a8c1bd7"}},"src/adapters/base.py":{"size":907,"mtime_ns":1787264412243760700,"indexed_at_ns":1787264516431216000,"word_count":95,"hashes":{"src/adapters/base.py":"39d8678210517983b9fe9bfa26a1990c1f4f63195651da2a180d3bb73db51a1e"}},"src/adapters/embeddings.py":{"size":1399,"mtime_ns":1787264437927229800,"indexed_at_ns":1787264516432540300,"word_count":139,"hashes":{"src/adapters/embeddings.py":"acf74e38373f16e923350dbcf514b2958215391024c8abed3b8a621b0e69bd61"}},"src/adapters/llm.py":{"size":1232,"mtime_ns":1787264412243760700,"indexed_at_ns":1787264516433377900,"word_count":135,"hashes":{"src/adapters/llm.py":"084a9de66475aad2eb213ff906128d4094408891bd8ddbbd9f0e5674a1cb6192"}},"src/classifier.py":{"size":9804,"mtime_ns":1787264459052089000,"indexed_at_ns":1787264516434381400,"word_count":820,"hashes":{"src/classifier.py":"d890fd0c6be9bb68eeb459e8a89ed988c075978cc220d923a8b81714563db177"}},"src/language.py":{"size":10957,"mtime_ns":1787264437931227400,"indexed_at_ns":1787264516435249300,"word_count":887,"hashes":{"src/language.py":"75d8e6444528450b5d11eee5b51965c98525070bb65eb0edabc996701a4c5075"}},"src/models.py":{"size":5959,"mtime_ns":1787264437930228400,"indexed_at_ns":1787264516436265800,"word_count":487,"hashes":{"src/models.py":"260513e4539e617b4123ac5b5352cb6ce7caf3a5dfba08badf6390bf60784ac9"}},"src/parser.py":{"size":2654,"mtime_ns":1787264437931227400,"indexed_at_ns":1787264516437222700,"word_count":299,"hashes":{"src/parser.py":"a789a6ba02724ad75604dcc56991e8b7989558abe673d4701242012723954407"}},"tests/__init__.py":{"size":69,"mtime_ns":1787195847518641200,"indexed_at_ns":1787196460153585600,"word_count":8,"hashes":{"tests/__init__.py":"2acdae7d2696c23d5391ed343046cffa11b82f3f0d7d85767dacf0e762a955d1"}},"tests/fixtures/benchmark_24/de/contextual.md":{"size":144,"mtime_ns":1787196180779459400,"indexed_at_ns":1787196460268138600,"word_count":17,"hashes":{"tests/fixtures/benchmark_24/de/contextual.md":"b6a18c4bef2defe99773d3ba43137148d25b42ac27562b10b73ccdee1a49f203"}},"tests/fixtures/benchmark_24/de/contextual_expected.json":{"size":136,"mtime_ns":1787196187032823100,"indexed_at_ns":1787196460154321700,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/de/contextual_expected.json":"cb741ed9bef3359a41d5c031ad213d4320c5b8fe3f8579e497ee9b1eda0ed478"}},"tests/fixtures/benchmark_24/de/direct.md":{"size":148,"mtime_ns":1787196169572812500,"indexed_at_ns":1787196460269192500,"word_count":16,"hashes":{"tests/fixtures/benchmark_24/de/direct.md":"67f375d26d8424655b76d5650c656b4af79b9964d52f2d24049e1f4de6545c9b"}},"tests/fixtures/benchmark_24/de/direct_expected.json":{"size":132,"mtime_ns":1787196175168070900,"indexed_at_ns":1787196460155004400,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/de/direct_expected.json":"5301a39d31b365266b529ce9823145381241f8876af1ec21f0a9c27c9bdc80fa"}},"tests/fixtures/benchmark_24/de/ecp.json":{"size":579,"mtime_ns":1787196164027193900,"indexed_at_ns":1787196460155664300,"word_count":40,"hashes":{"tests/fixtures/benchmark_24/de/ecp.json":"061fc3a9468d2baaaf2b3e8355d08d23261a9a7adc484cb06b45646eacba46fc"}},"tests/fixtures/benchmark_24/de/not_related.md":{"size":137,"mtime_ns":1787196204093781400,"indexed_at_ns":1787196460270056100,"word_count":21,"hashes":{"tests/fixtures/benchmark_24/de/not_related.md":"4904b694b45a2058614a4e4350046eee042c4bbd7bcd6b88c56408ee3aebd81d"}},"tests/fixtures/benchmark_24/de/not_related_expected.json":{"size":129,"mtime_ns":1787196209729787600,"indexed_at_ns":1787196460156391600,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/de/not_related_expected.json":"730fa882c1f3b8a7c0e2d3da9af55ee57ad7425a8b304c11f54e01899c740952"}},"tests/fixtures/benchmark_24/de/tangential.md":{"size":150,"mtime_ns":1787196193187087300,"indexed_at_ns":1787196460270857700,"word_count":21,"hashes":{"tests/fixtures/benchmark_24/de/tangential.md":"8207068977006dafa7c9c4459bd996b5c124972d25f1015a589d3b06d0999613"}},"tests/fixtures/benchmark_24/de/tangential_expected.json":{"size":128,"mtime_ns":1787196198703847300,"indexed_at_ns":1787196460157130400,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/de/tangential_expected.json":"82dea5e55d7586c4e7005755e3da4f44560238733094876047de51e854d41d92"}},"tests/fixtures/benchmark_24/en/contextual.md":{"size":148,"mtime_ns":1787196066427405900,"indexed_at_ns":1787196460271878300,"word_count":19,"hashes":{"tests/fixtures/benchmark_24/en/contextual.md":"258a9f1ae01dae52955c1f45cb176e7d981a72ba869c33232c8c295f4816acc0"}},"tests/fixtures/benchmark_24/en/contextual_expected.json":{"size":136,"mtime_ns":1787196073211713100,"indexed_at_ns":1787196460158457500,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/en/contextual_expected.json":"70605f9d8901d4c4b99d9fda1f30bc114cb0b65893579f77a1f9d50f62c1e3fc"}},"tests/fixtures/benchmark_24/en/direct.md":{"size":155,"mtime_ns":1787196054149613200,"indexed_at_ns":1787196460272766400,"word_count":21,"hashes":{"tests/fixtures/benchmark_24/en/direct.md":"c7e0b093c386ccf19d9d7cbef4763dfb665213a7a245093af43529b1eaff8266"}},"tests/fixtures/benchmark_24/en/direct_expected.json":{"size":132,"mtime_ns":1787196059966736300,"indexed_at_ns":1787196460159526700,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/en/direct_expected.json":"0b803b2ad37388be7ef4ea1d164db22c9fd784bcb9be6f56627d412f1f9299bc"}},"tests/fixtures/benchmark_24/en/ecp.json":{"size":594,"mtime_ns":1787197123717795600,"indexed_at_ns":1787197157494285900,"word_count":52,"hashes":{"tests/fixtures/benchmark_24/en/ecp.json":"601423ac1e0b0e2bb7a0151ac87f5bdfd32450d90a022eaf9ef030338e0b4893"}},"tests/fixtures/benchmark_24/en/not_related.md":{"size":146,"mtime_ns":1787196350333465500,"indexed_at_ns":1787196460273595300,"word_count":24,"hashes":{"tests/fixtures/benchmark_24/en/not_related.md":"2fa405b123733c5a9b5beba8c646b886b27e212cff55496a9fe7d6208ddfb11c"}},"tests/fixtures/benchmark_24/en/not_related_expected.json":{"size":129,"mtime_ns":1787196104521133100,"indexed_at_ns":1787196460161344300,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/en/not_related_expected.json":"cb046b055b5c72d8146b6035a935211d60fb0b313ef819576bb8e7048d55f468"}},"tests/fixtures/benchmark_24/en/tangential.md":{"size":147,"mtime_ns":1787196082730266300,"indexed_at_ns":1787196460274648200,"word_count":25,"hashes":{"tests/fixtures/benchmark_24/en/tangential.md":"793acebc11e5d6c17872d56881c8fe99cb187116c38fa4b2647d28fe3063a61e"}},"tests/fixtures/benchmark_24/en/tangential_expected.json":{"size":128,"mtime_ns":1787196089699545000,"indexed_at_ns":1787196460162151700,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/en/tangential_expected.json":"d5b1a4dc64246838a066f73c41f0e33dcd59636e61d6c0842a3728247e536aff"}},"tests/fixtures/benchmark_24/es/contextual.md":{"size":167,"mtime_ns":1787196129959491900,"indexed_at_ns":1787196460275850900,"word_count":22,"hashes":{"tests/fixtures/benchmark_24/es/contextual.md":"d45ef46752e2093455e35cbf97076f943ab2be736c9bc4580607960b9d068731"}},"tests/fixtures/benchmark_24/es/contextual_expected.json":{"size":136,"mtime_ns":1787196135705341100,"indexed_at_ns":1787196460162957600,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/es/contextual_expected.json":"083f7153df08f93f595782eb2959e8505ac4bda4daaf6634c7a11d444c1ba6b0"}},"tests/fixtures/benchmark_24/es/direct.md":{"size":179,"mtime_ns":1787196118640588800,"indexed_at_ns":1787196460276716800,"word_count":29,"hashes":{"tests/fixtures/benchmark_24/es/direct.md":"f6e282a68830d5518285b0cda510fe57fa844cc6322979604a427797f07fdbd7"}},"tests/fixtures/benchmark_24/es/direct_expected.json":{"size":132,"mtime_ns":1787196124282103900,"indexed_at_ns":1787196460163727400,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/es/direct_expected.json":"fb96e4ae9e2e1603b9ac4d31b6984b31d814b3f31a8a3ca03c52c1ffa4199471"}},"tests/fixtures/benchmark_24/es/ecp.json":{"size":590,"mtime_ns":1787196110761765400,"indexed_at_ns":1787196460164509700,"word_count":52,"hashes":{"tests/fixtures/benchmark_24/es/ecp.json":"09cad55a4cc5a8c04b9898dee21c28b0d40561fcdd8ff012fe4de96616c05f7f"}},"tests/fixtures/benchmark_24/es/not_related.md":{"size":148,"mtime_ns":1787196152611035900,"indexed_at_ns":1787196460277631800,"word_count":23,"hashes":{"tests/fixtures/benchmark_24/es/not_related.md":"1b8a7f7a6852c9ec33fc34513ab479bd5edba48762a0801f7982e48adcb0089b"}},"tests/fixtures/benchmark_24/es/not_related_expected.json":{"size":129,"mtime_ns":1787196158098444000,"indexed_at_ns":1787196460165309300,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/es/not_related_expected.json":"01645746a62894e6448895d9bf5eac394e94e54711d7f519d2ed14d8b8957487"}},"tests/fixtures/benchmark_24/es/tangential.md":{"size":141,"mtime_ns":1787196141436479100,"indexed_at_ns":1787196460278451000,"word_count":23,"hashes":{"tests/fixtures/benchmark_24/es/tangential.md":"41888c762fdc38fb9d5a6dc39373ac2e38331ba4520535088efef8943ea40e49"}},"tests/fixtures/benchmark_24/es/tangential_expected.json":{"size":128,"mtime_ns":1787196147026058000,"indexed_at_ns":1787196460166503400,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/es/tangential_expected.json":"aac2bd9ab5946710c62dc0a8daf8b1481462bed081e11db4558c08ef917fcf81"}},"tests/fixtures/benchmark_24/fr/contextual.md":{"size":167,"mtime_ns":1787196288415259700,"indexed_at_ns":1787196460279288100,"word_count":23,"hashes":{"tests/fixtures/benchmark_24/fr/contextual.md":"8a36d5737429e743ffbdc8c6ae78bcc9410915e048056dbd1fb4d3d493ac7ec6"}},"tests/fixtures/benchmark_24/fr/contextual_expected.json":{"size":136,"mtime_ns":1787196295706997200,"indexed_at_ns":1787196460167650500,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/fr/contextual_expected.json":"4a155288609fc5c935a39a633d7185109629871380b88af1c367922e44abe900"}},"tests/fixtures/benchmark_24/fr/direct.md":{"size":160,"mtime_ns":1787196277020128300,"indexed_at_ns":1787196460280073100,"word_count":20,"hashes":{"tests/fixtures/benchmark_24/fr/direct.md":"f218d9c8ada6c31e813c41bcb5e6a081a1df526022b907795065c0f845480077"}},"tests/fixtures/benchmark_24/fr/direct_expected.json":{"size":132,"mtime_ns":1787196282775093400,"indexed_at_ns":1787196460168573600,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/fr/direct_expected.json":"b93c2059a731e06a164fe1331e1c7ff01fb741f728c8aa1df151ee51bc993268"}},"tests/fixtures/benchmark_24/fr/ecp.json":{"size":600,"mtime_ns":1787197131861351500,"indexed_at_ns":1787197157506006100,"word_count":50,"hashes":{"tests/fixtures/benchmark_24/fr/ecp.json":"f2e7f9eafa1fd24514541868c83db90b69784d5faf4e8d039d79d11597b51428"}},"tests/fixtures/benchmark_24/fr/not_related.md":{"size":181,"mtime_ns":1787196312472120100,"indexed_at_ns":1787196460280811500,"word_count":30,"hashes":{"tests/fixtures/benchmark_24/fr/not_related.md":"475984d25541d876b7d9e3e8f7cff7b3db2bc1489c25d6612b911da6d2b2af8e"}},"tests/fixtures/benchmark_24/fr/not_related_expected.json":{"size":129,"mtime_ns":1787196317906240800,"indexed_at_ns":1787196460170379300,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/fr/not_related_expected.json":"31b3104faa21c2a417399fdd85d077d1c58fe74ee33fd41b0942580be6f81267"}},"tests/fixtures/benchmark_24/fr/tangential.md":{"size":158,"mtime_ns":1787196301225610200,"indexed_at_ns":1787196460281594400,"word_count":25,"hashes":{"tests/fixtures/benchmark_24/fr/tangential.md":"7f6c6ab84d2a26675f9f16fb23d45cf1e97b3ff5e28fb98df6aeaa2368d2c305"}},"tests/fixtures/benchmark_24/fr/tangential_expected.json":{"size":128,"mtime_ns":1787196306729905200,"indexed_at_ns":1787196460171141500,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/fr/tangential_expected.json":"cc117a22ba73be1b308d377767ca0ae8da8e5889ccdaa430893b3ae70a58c9ca"}},"tests/fixtures/benchmark_24/it/contextual.md":{"size":150,"mtime_ns":1787196234462201200,"indexed_at_ns":1787196460283346800,"word_count":21,"hashes":{"tests/fixtures/benchmark_24/it/contextual.md":"045391f6f676add7e1ae9391419ef65442259ab90f9cacb5caca4d468d292017"}},"tests/fixtures/benchmark_24/it/contextual_expected.json":{"size":136,"mtime_ns":1787196240055631300,"indexed_at_ns":1787196460171870600,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/it/contextual_expected.json":"b2b4b297f43e5af1cda526e259acede43a31b552c0321bee1ce1c72572cec557"}},"tests/fixtures/benchmark_24/it/direct.md":{"size":145,"mtime_ns":1787196221664473400,"indexed_at_ns":1787196460284281100,"word_count":23,"hashes":{"tests/fixtures/benchmark_24/it/direct.md":"d54bad27d944692fa7f00a036f882d1c0e42d189241822adcae86edf73a444da"}},"tests/fixtures/benchmark_24/it/direct_expected.json":{"size":132,"mtime_ns":1787196228986408600,"indexed_at_ns":1787196460172673300,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/it/direct_expected.json":"f94e71dc4b78c0646190ff288f08dab46c67f2356b8b75cc515c28af7c9c423c"}},"tests/fixtures/benchmark_24/it/ecp.json":{"size":529,"mtime_ns":1787196215715634300,"indexed_at_ns":1787196460173452600,"word_count":45,"hashes":{"tests/fixtures/benchmark_24/it/ecp.json":"bcbd12d3057368618b006c24f384341f91349c713d10a3028d3eb4afada32de6"}},"tests/fixtures/benchmark_24/it/not_related.md":{"size":153,"mtime_ns":1787196259362992300,"indexed_at_ns":1787196460285099000,"word_count":23,"hashes":{"tests/fixtures/benchmark_24/it/not_related.md":"bca227c7b17fd4404e5ca1d082b848981c1da28d0b657df1e025c03056387f13"}},"tests/fixtures/benchmark_24/it/not_related_expected.json":{"size":129,"mtime_ns":1787196265318256200,"indexed_at_ns":1787196460174468400,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/it/not_related_expected.json":"d007ac531224ad0834e9a8807582d0e047524be4c30fffdd1a19a51dba36d85d"}},"tests/fixtures/benchmark_24/it/tangential.md":{"size":155,"mtime_ns":1787196245918356300,"indexed_at_ns":1787196460285993500,"word_count":23,"hashes":{"tests/fixtures/benchmark_24/it/tangential.md":"a78a886f11462033c996a20b629e13c6bb55d4e08ffed20601cd4ea877b9db09"}},"tests/fixtures/benchmark_24/it/tangential_expected.json":{"size":128,"mtime_ns":1787196252898853500,"indexed_at_ns":1787196460175957500,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/it/tangential_expected.json":"18872f6fe4cbd71812566494e88bd97633d696f732b3b5bad871f81076703f74"}},"tests/fixtures/benchmark_24/pt/contextual.md":{"size":125,"mtime_ns":1787196014201071400,"indexed_at_ns":1787196460286845200,"word_count":18,"hashes":{"tests/fixtures/benchmark_24/pt/contextual.md":"e9ea12885a5c68822f96691e543b55885afba3d00a9e0fa65837bd88e559f157"}},"tests/fixtures/benchmark_24/pt/contextual_expected.json":{"size":136,"mtime_ns":1787196019487136800,"indexed_at_ns":1787196460176915600,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/pt/contextual_expected.json":"34145a845a7f6b155bf42c028bb0c6d8d43ed5cd0b1d179c089b1e621fecd08f"}},"tests/fixtures/benchmark_24/pt/direct.md":{"size":140,"mtime_ns":1787196003236562000,"indexed_at_ns":1787196460287899900,"word_count":21,"hashes":{"tests/fixtures/benchmark_24/pt/direct.md":"150182b9c1352163cb136c19141b85b3f0323e7eaa0cd023fce1dfef0de63d29"}},"tests/fixtures/benchmark_24/pt/direct_expected.json":{"size":132,"mtime_ns":1787196008785189600,"indexed_at_ns":1787196460177800600,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/pt/direct_expected.json":"a9c666394db6a6e2fcd503d8cf67549531ee9e70eb73b1edb2b6a2443316cbf2"}},"tests/fixtures/benchmark_24/pt/ecp.json":{"size":507,"mtime_ns":1787195997549710300,"indexed_at_ns":1787196460178615000,"word_count":40,"hashes":{"tests/fixtures/benchmark_24/pt/ecp.json":"cec78c3ed8d2ec311d079239922a10a35a7fc9c382d8886fec81c6322d2a70ac"}},"tests/fixtures/benchmark_24/pt/not_related.md":{"size":124,"mtime_ns":1787196036724084200,"indexed_at_ns":1787196460288769500,"word_count":19,"hashes":{"tests/fixtures/benchmark_24/pt/not_related.md":"3af103a7f0df8e93c6154157e9903dc7fc10d64fa69dd7c2b08d4f68b99b1972"}},"tests/fixtures/benchmark_24/pt/not_related_expected.json":{"size":129,"mtime_ns":1787196042201218800,"indexed_at_ns":1787196460179403700,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/pt/not_related_expected.json":"d5ce36bca028f31ba472e325993610eb82f98e1a8f84fa770bf92aa7158ce954"}},"tests/fixtures/benchmark_24/pt/tangential.md":{"size":140,"mtime_ns":1787196024978861700,"indexed_at_ns":1787196460289652400,"word_count":24,"hashes":{"tests/fixtures/benchmark_24/pt/tangential.md":"77d86f819ccbefe9830a57151354ca47d83e46b3d0e55d0f5139f37a1d9df0b8"}},"tests/fixtures/benchmark_24/pt/tangential_expected.json":{"size":128,"mtime_ns":1787196030395574000,"indexed_at_ns":1787196460180223100,"word_count":10,"hashes":{"tests/fixtures/benchmark_24/pt/tangential_expected.json":"fb977fec8db613f9545c81adffe0295084c6198b5f7c9a85d8901a228de63a51"}},"tests/test_adapters.py":{"size":1166,"mtime_ns":1787264437929228700,"indexed_at_ns":1787264516466770300,"word_count":91,"hashes":{"tests/test_adapters.py":"32a9519d5c55012aedaa43a786aff1cec88e7391d186f5d0a54213ca1b204f48"}},"tests/test_benchmark_24.py":{"size":2757,"mtime_ns":1787264437930228400,"indexed_at_ns":1787264516468505400,"word_count":257,"hashes":{"tests/test_benchmark_24.py":"7c136ac4d442e47a2f8914303880ce265c2fe49485eb182014fc3e10c06f9e71"}},"tests/test_classifier.py":{"size":3836,"mtime_ns":1787264437927229800,"indexed_at_ns":1787264516469349200,"word_count":351,"hashes":{"tests/test_classifier.py":"d3323e05dd21f20686d9293f767ebb2ced206c7b74e7ca89d2ac02c0a4e31282"}},"tests/test_cli.py":{"size":3872,"mtime_ns":1787264437929228700,"indexed_at_ns":1787264516470059400,"word_count":314,"hashes":{"tests/test_cli.py":"0573d9b13e45413beefac33d86eae94e17dbbf37554120a1fc5720bfb3d67d63"}},"tests/test_language.py":{"size":1929,"mtime_ns":1787264437929228700,"indexed_at_ns":1787264516472426100,"word_count":242,"hashes":{"tests/test_language.py":"7f7aae057ecbda26edd747d24241e9cf36f611c71c5d70d0aa308df7d71e0547"}},"tests/test_models.py":{"size":3668,"mtime_ns":1787264437930228400,"indexed_at_ns":1787264516473330500,"word_count":306,"hashes":{"tests/test_models.py":"232210770fc690edcc732d940bafe46fcec9bfed7f17e0aa5c60e6cf6635751f"}},"tests/test_adversarial.py":{"size":8429,"mtime_ns":1787264437924228700,"indexed_at_ns":1787264516467613100,"word_count":704,"hashes":{"tests/test_adversarial.py":"3acc7ff372e6b0f1f42dad29d280b835ac51784b1dca8054472287a7355c9386"}},"docs/googlenews_extractor_guia_completo.md":{"size":23200,"mtime_ns":1787264437928228500,"indexed_at_ns":1787264516560203200,"word_count":2292,"hashes":{"docs/googlenews_extractor_guia_completo.md":"dcff19204ab04403030b2339663c0d3c161744f50a53f5254c459a894eb3b3c8"}},"examples/ecp_sao_paulo_futebol_clube.json":{"size":23358,"mtime_ns":1787229477299354200,"indexed_at_ns":1787234770609429300,"word_count":1524,"hashes":{"examples/ecp_sao_paulo_futebol_clube.json":"1af9006669d57f8dc123f0edea0d0fe8aaeb9016e36ec3e0d95023ea26996915"}},"scripts/extract_google_news.py":{"size":14720,"mtime_ns":1787264437927229800,"indexed_at_ns":1787264516421445500,"word_count":1314,"hashes":{"scripts/extract_google_news.py":"aa17b59997ab6bb549a918fb1026ddf5a5c5143c75c234895dc32447e2c5b85a"}},"specs/002-google-news-extractor/checklists/readiness.md":{"size":5258,"mtime_ns":1787234305932687100,"indexed_at_ns":1787234770736852100,"word_count":706,"hashes":{"specs/002-google-news-extractor/checklists/readiness.md":"ad4c18a1fe1c6f19f45a043748fe4f195db525afac53ed77905222015ec5230c"}},"specs/002-google-news-extractor/checklists/requirements.md":{"size":1144,"mtime_ns":1787232386676398600,"indexed_at_ns":1787234770737689600,"word_count":158,"hashes":{"specs/002-google-news-extractor/checklists/requirements.md":"d83944755d7f6e43d8c76e032f0047be6f8c4cb2b80dea65e198f57b9c5eccd7"}},"specs/002-google-news-extractor/contracts/cli_contract.md":{"size":2681,"mtime_ns":1787236744313922700,"indexed_at_ns":1787236813512122300,"word_count":424,"hashes":{"specs/002-google-news-extractor/contracts/cli_contract.md":"6b9e3c10becd7b8fa633e409e9a3298ff4b2903dfd5194054c8e41dd0c0c5f23"}},"specs/002-google-news-extractor/data-model.md":{"size":3008,"mtime_ns":1787234040813431800,"indexed_at_ns":1787234770739130200,"word_count":472,"hashes":{"specs/002-google-news-extractor/data-model.md":"78cec846c1173fbdff3c77313ba02c7977365e5ab102df527f90ed7b06e69519"}},"specs/002-google-news-extractor/plan.md":{"size":3947,"mtime_ns":1787236725982522400,"indexed_at_ns":1787236813514970600,"word_count":448,"hashes":{"specs/002-google-news-extractor/plan.md":"57a0a3eb1fd6d7afbe394be62e681a02d7ef26124f4142b9d8b72ea95259a34b"}},"specs/002-google-news-extractor/quickstart.md":{"size":2341,"mtime_ns":1787236764020651300,"indexed_at_ns":1787236813515935900,"word_count":317,"hashes":{"specs/002-google-news-extractor/quickstart.md":"3478a487614358839b3e53c15b05b86a4b850bead9b4142384566e244753bde3"}},"specs/002-google-news-extractor/research.md":{"size":3630,"mtime_ns":1787236785046618200,"indexed_at_ns":1787236813516811500,"word_count":483,"hashes":{"specs/002-google-news-extractor/research.md":"71e796c83a1c293fa380b4f01a2eed810275e4628548e0f8e8b9ecaa90d3ac13"}},"specs/002-google-news-extractor/spec.md":{"size":7506,"mtime_ns":1787236709078315600,"indexed_at_ns":1787236813517705300,"word_count":1096,"hashes":{"specs/002-google-news-extractor/spec.md":"e84b37b25f61ed209d1295f77bf84024ac6c3c818f6b98043204a9f81bff49f0"}},"specs/002-google-news-extractor/tasks.md":{"size":5315,"mtime_ns":1787236802480804800,"indexed_at_ns":1787236813518644500,"word_count":692,"hashes":{"specs/002-google-news-extractor/tasks.md":"94430da291ad0dc34b1cde7c30f2b8e1ce0c83d35b5e71ab68bd135146c9ef47"}},"tests/test_extract_google_news.py":{"size":12221,"mtime_ns":1787264437931227400,"indexed_at_ns":1787264516471687100,"word_count":1114,"hashes":{"tests/test_extract_google_news.py":"5304424b746b871720985cfdd031b0f8895c664bdd9d273b9c1723f445a2276f"}},"scripts/__init__.py":{"size":50,"mtime_ns":1787234973578233800,"indexed_at_ns":1787235018163517900,"word_count":6,"hashes":{"scripts/__init__.py":"f30a694c2114ef6bc58efa1caea7265dde8ef296d92cdb77c8b3e3d1f21af3a5"}},"README.md":{"size":21396,"mtime_ns":1787274502478128000,"indexed_at_ns":1787310811708847800,"word_count":2606,"hashes":{"readme.md":"0faa53d99044235bdde7cb366a601675f06de64ca615a9d783cae687dae87a17"}},"docs/prd_extrator_artigos_nlp.md":{"size":11894,"mtime_ns":1787237774009258300,"indexed_at_ns":1787240513666474800,"word_count":1548,"hashes":{"docs/prd_extrator_artigos_nlp.md":"e10035c73584efc6d043bec17d43388ecbf25b576ca3475d0b9906cbc16fad90"}},"scripts/extract_article_contents.py":{"size":27025,"mtime_ns":1787264465341521500,"indexed_at_ns":1787264516419754800,"word_count":2069,"hashes":{"scripts/extract_article_contents.py":"a76fc087a959496bc2cf4767baaed89628bd945e1aaa8e981be840cf1240f1ba"}},"specs/003-article-content-extractor/checklists/extraction.md":{"size":4716,"mtime_ns":1787239873797626000,"indexed_at_ns":1787240513705426800,"word_count":609,"hashes":{"specs/003-article-content-extractor/checklists/extraction.md":"b8351909b93111f8f1e50f0f100446d3f579d0c11823eba4936c72a617aba5f8"}},"specs/003-article-content-extractor/checklists/requirements.md":{"size":1209,"mtime_ns":1787237950814070500,"indexed_at_ns":1787240513706099200,"word_count":164,"hashes":{"specs/003-article-content-extractor/checklists/requirements.md":"3c770288636c4523897b41c6dad5f2771af2007654d6b5f6b87d74bc9c33d11d"}},"specs/003-article-content-extractor/contracts/cli-contract.md":{"size":2493,"mtime_ns":1787239569056013800,"indexed_at_ns":1787240513706906100,"word_count":390,"hashes":{"specs/003-article-content-extractor/contracts/cli-contract.md":"44c5ec336c210bdd9671a5e852ee750e91f426b87c954b2c52499513cb85168d"}},"specs/003-article-content-extractor/contracts/json-schema.md":{"size":3065,"mtime_ns":1787239578931403200,"indexed_at_ns":1787240513707577900,"word_count":298,"hashes":{"specs/003-article-content-extractor/contracts/json-schema.md":"0cefe7faadd07932717b8c3493914e5367ec6ac50673671aee1f4edc7bde7e37"}},"specs/003-article-content-extractor/data-model.md":{"size":4410,"mtime_ns":1787239558236282500,"indexed_at_ns":1787240513708324600,"word_count":733,"hashes":{"specs/003-article-content-extractor/data-model.md":"651180962cf2a9253cb0a22429947eb3bf552c26be7defce98ef7583cbcd8fbf"}},"specs/003-article-content-extractor/plan.md":{"size":4642,"mtime_ns":1787264323707266000,"indexed_at_ns":1787264516630842500,"word_count":510,"hashes":{"specs/003-article-content-extractor/plan.md":"3ae38a2a907f1aeb6987c647a6290533acde67ef91f590445bdec0e1da5f52be"}},"specs/003-article-content-extractor/quickstart.md":{"size":2210,"mtime_ns":1787239589989665700,"indexed_at_ns":1787240513709638200,"word_count":282,"hashes":{"specs/003-article-content-extractor/quickstart.md":"332c407a9b1c3eafcb874d24f5396f005cde65d4d8e9e643fda95f47f093c544"}},"specs/003-article-content-extractor/research.md":{"size":4220,"mtime_ns":1787239545833014600,"indexed_at_ns":1787240513710259700,"word_count":588,"hashes":{"specs/003-article-content-extractor/research.md":"485f0e63023aa6dc8c4c64b22dd7394c032b7f468fa41632967789c4e269587b"}},"specs/003-article-content-extractor/spec.md":{"size":10428,"mtime_ns":1787264319288323400,"indexed_at_ns":1787264516635570600,"word_count":1515,"hashes":{"specs/003-article-content-extractor/spec.md":"1ad671e31d86c76aedaa27d5d4da839cdf2d602bd17e618310c80bd3747fab78"}},"specs/003-article-content-extractor/tasks.md":{"size":8201,"mtime_ns":1787240464652064400,"indexed_at_ns":1787240513711676500,"word_count":1070,"hashes":{"specs/003-article-content-extractor/tasks.md":"3122914461e8d6017e63900c66fa8935135b5efcc9fca8d64e762ee109602901"}},"tests/test_extract_article_contents.py":{"size":13204,"mtime_ns":1787264437929228700,"indexed_at_ns":1787264516470977000,"word_count":1039,"hashes":{"tests/test_extract_article_contents.py":"4333ac8911d1cd27964b0bacfa394ee8fe9e068bb2f25f3e0ff5e299564a7b4d"}},"docs/prd_deterministic_content_selection.md":{"size":15516,"mtime_ns":1787264674203828600,"indexed_at_ns":1787272605069414800,"word_count":2047,"hashes":{"docs/prd_deterministic_content_selection.md":"a337f19aa87b82ef5ee4f04bae19833331de5c49ee83bca2cf1f542eb893ae0b"}},"scripts/select_article_extractor.py":{"size":21658,"mtime_ns":1787274502480126900,"indexed_at_ns":1787310811622526500,"word_count":2097,"hashes":{"scripts/select_article_extractor.py":"027743d36fd728fded28a085abf202e4eab0102bc5517cf4975a094d5df04c3f"}},"specs/004-deterministic-content-selection/checklists/deterministic-selection.md":{"size":4236,"mtime_ns":1787272346869214200,"indexed_at_ns":1787272605178155100,"word_count":566,"hashes":{"specs/004-deterministic-content-selection/checklists/deterministic-selection.md":"937ec7535aa3602a811212d196f441aff79338c4358b881c1bc8f7844b4f8241"}},"specs/004-deterministic-content-selection/checklists/requirements.md":{"size":1303,"mtime_ns":1787264728720272700,"indexed_at_ns":1787272605179339000,"word_count":175,"hashes":{"specs/004-deterministic-content-selection/checklists/requirements.md":"8a7f723658366b3ba5e135483200453bbbe100152977f488f39161c537903f56"}},"specs/004-deterministic-content-selection/contracts/cli-contract.md":{"size":2071,"mtime_ns":1787274329217544500,"indexed_at_ns":1787274399618300500,"word_count":293,"hashes":{"specs/004-deterministic-content-selection/contracts/cli-contract.md":"6e6d43cae2405e648ff02f937b911d61e8efbd1f34b1f608feed7166f6c241f4"}},"specs/004-deterministic-content-selection/contracts/json-schema.md":{"size":1982,"mtime_ns":1787271837732839400,"indexed_at_ns":1787272605181473200,"word_count":195,"hashes":{"specs/004-deterministic-content-selection/contracts/json-schema.md":"db8b8702249e41e00c89cfcba0c76be591c320e8c42c9ef9a1098bb764097da6"}},"specs/004-deterministic-content-selection/data-model.md":{"size":5498,"mtime_ns":1787271825597039400,"indexed_at_ns":1787272605182487300,"word_count":681,"hashes":{"specs/004-deterministic-content-selection/data-model.md":"5773f5110269524eda7750f0d154d16e0bb29990fac51f57f76b42702789de8a"}},"specs/004-deterministic-content-selection/plan.md":{"size":5319,"mtime_ns":1787271850174420500,"indexed_at_ns":1787272605183666400,"word_count":643,"hashes":{"specs/004-deterministic-content-selection/plan.md":"2baf2f08897f9e80d43db55aa178ac515e3f012fac265e43a7fb679eb4c01f1f"}},"specs/004-deterministic-content-selection/quickstart.md":{"size":2239,"mtime_ns":1787274502478128000,"indexed_at_ns":1787310811759309400,"word_count":245,"hashes":{"specs/004-deterministic-content-selection/quickstart.md":"7136c34e9fa9c525ff01d65f8c35c2368cace0468b2651e85901195bfb8730a5"}},"specs/004-deterministic-content-selection/research.md":{"size":6915,"mtime_ns":1787274316854443300,"indexed_at_ns":1787274399622900200,"word_count":906,"hashes":{"specs/004-deterministic-content-selection/research.md":"11e7f5000a2fb8eeff02785f691ae153bc0eedd913432e3ca833022d394ff427"}},"specs/004-deterministic-content-selection/spec.md":{"size":11807,"mtime_ns":1787274311156486400,"indexed_at_ns":1787274399623530600,"word_count":1619,"hashes":{"specs/004-deterministic-content-selection/spec.md":"7f0baab75874dd05fc9fc891aefd4b4012b5ad82b2ed1738261ec6cb15d9f303"}},"specs/004-deterministic-content-selection/tasks.md":{"size":8181,"mtime_ns":1787272595818614500,"indexed_at_ns":1787272605189230700,"word_count":1024,"hashes":{"specs/004-deterministic-content-selection/tasks.md":"412b7a4261ea8c52655286c5b5761cc3800dfedf827289589380b700a4c40887"}},"tests/test_select_article_extractor.py":{"size":24179,"mtime_ns":1787274502480126900,"indexed_at_ns":1787310811669359800,"word_count":2243,"hashes":{"tests/test_select_article_extractor.py":"22eb249629c891e4cd4b2bc09ce17c1e334bc908de3db53539ced305d3bfd287"}}} \ No newline at end of file diff --git a/graphify-out/graph.html b/graphify-out/graph.html index 24a4f11..70de111 100644 --- a/graphify-out/graph.html +++ b/graphify-out/graph.html @@ -63,12 +63,12 @@
-