Files
TextNLPClassifierApp/graphify-out/cache/ast/v0.9.47-s2/b8351909b93111f8f1e50f0f100446d3f579d0c11823eba4936c72a617aba5f8.json
andreferraro 6a45368cb0 feat(extractor): implement multi-engine article content extractor
- Added scripts/extract_article_contents.py for batch scraping with stealth Foxcape and triple extraction (Trafilatura, Newspaper4k, Readability)
- Created unit, integration, and E2E test suite in tests/test_extract_article_contents.py (90/90 passing)
- Updated specs/003-article-content-extractor and README.md with usage documentation and CLI contracts
- Passed ruff linting/formatting and mypy type checking cleanly
2026-08-20 19:22:20 -03:00

1 line
6.7 KiB
JSON

{"nodes": [{"id": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_md", "label": "extraction.md", "file_type": "document", "node_kind": "page", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", "label": "Extraction Pipeline Checklist: Article Content Multi-Engine Extractor", "file_type": "document", "node_kind": "heading", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L1"}, {"id": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_1_requirement_completeness", "label": "1. Requirement Completeness", "file_type": "document", "node_kind": "heading", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L13"}, {"id": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_2_requirement_clarity_non_ambiguity", "label": "2. Requirement Clarity & Non-Ambiguity", "file_type": "document", "node_kind": "heading", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L24"}, {"id": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_3_requirement_consistency_data_contracts", "label": "3. Requirement Consistency & Data Contracts", "file_type": "document", "node_kind": "heading", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L33"}, {"id": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_4_scenario_edge_case_coverage", "label": "4. Scenario & Edge Case Coverage", "file_type": "document", "node_kind": "heading", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L41"}, {"id": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_5_non_functional_operational_readiness", "label": "5. Non-Functional & Operational Readiness", "file_type": "document", "node_kind": "heading", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L51"}, {"id": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_notes", "label": "Notes", "file_type": "document", "node_kind": "heading", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L58"}], "edges": [{"source": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_md", "target": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_md", "target": "$graphify-root$_specs_003_article_content_extractor_spec_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L5", "weight": 1.0, "target_file": "$graphify-root$/specs/003-article-content-extractor/spec.md"}, {"source": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_md", "target": "$graphify-root$_specs_003_article_content_extractor_data_model_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L5", "weight": 1.0, "target_file": "$graphify-root$/specs/003-article-content-extractor/data-model.md"}, {"source": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_md", "target": "$graphify-root$_specs_003_article_content_extractor_contracts_md", "relation": "references", "confidence": "EXTRACTED", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", "target": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_1_requirement_completeness", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L13", "weight": 1.0}, {"source": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", "target": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_2_requirement_clarity_non_ambiguity", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", "target": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_3_requirement_consistency_data_contracts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", "target": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_4_scenario_edge_case_coverage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", "target": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_5_non_functional_operational_readiness", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L51", "weight": 1.0}, {"source": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_extraction_pipeline_checklist_article_content_multi_engine_extractor", "target": "$graphify-root$_specs_003_article_content_extractor_checklists_extraction_notes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "specs/003-article-content-extractor/checklists/extraction.md", "source_location": "L58", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}