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
This commit is contained in:
2026-08-20 19:22:20 -03:00
parent 6e3d57619b
commit 6a45368cb0
85 changed files with 18345 additions and 3897 deletions
+23 -7
View File
@@ -4,7 +4,7 @@
"2": "SpecKit Utilities",
"3": "Graphify Commands",
"4": "speckit-analyze/SKILL.md",
"5": "POC Readiness & Requirements Quality Checklist: Multilingual NLP Entity Inherence Classifier",
"5": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)",
"6": "Feature Specification Template",
"7": "Graphify Rules",
"8": "Implementation Planning",
@@ -44,10 +44,10 @@
"42": "1. Input Schemas",
"43": "2. Basic CLI Usage Examples",
"44": "2. Standard Streams & Exit Codes",
"45": "ECPSnapshot",
"46": "Tasks: Multilingual NLP Entity Inherence Classifier (POC)",
"45": "LocalEmbeddingsAdapter",
"46": "InherenceClassifier",
"47": "detect_language",
"48": "test_models.py",
"48": "classifier.py",
"49": "content_northvolt_de.md",
"50": "content_presal_pt.md",
"51": "content_tangential_es.md",
@@ -79,7 +79,7 @@
"77": "pt/tangential.md",
"78": "tests/__init__.py",
"79": "text-nlp-classifier",
"80": "get_hl_gl_ceid",
"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",
@@ -96,6 +96,22 @@
"94": "Specification Quality Checklist: Google News Headlines Extractor",
"95": "CLI Contract: Google News Headlines Extractor",
"96": "readiness.md",
"98": "build_parser",
"99": "sample_rss_xml"
"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": "ClassificationResult",
"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"
}