Files
AI/ontology_platform/docs/phases/PHASE1_ACCEPTANCE_GATE.md
LASTA_DEV01\lasta e260e5f218 docs
2026-05-19 20:31:52 +09:00

2.0 KiB

Phase 1 Acceptance Gate 결과

작성일: 2026-05-19

범위: Trafilatura 기반 URL/HTML 입력 정렬, SourceDocument/EvidenceSpan 계약, URL 입력 API, fixture 기반 dedup 검증.

결과 요약

# Acceptance Gate 항목 상태 검증 방법
1 URL/HTML 입력이 정제 문서로 변환됨 통과 tests/unit/test_web_extractor.py
2 source URL, title, language, content hash, fingerprint 보존 통과 test_extract_from_korean_html_preserves_document_contract
3 SourceDocument, EvidenceSpan, Content metadata 경계 연결 통과 test_extracted_content_maps_to_source_document_and_evidence_spans, test_content_unit.py
4 /process/url, /api/v1/extract/url URL 입력 API 제공 통과 tests/integration/test_url_ingest.py
5 같은 본문 중복 입력은 fingerprint 기반으로 skip 통과 test_same_clean_body_gets_same_hash_and_fingerprint, test_process_url_skips_duplicate_payload_by_fingerprint
6 Phase 0 회귀 없음 통과 python -m pytest tests/unit tests/integration -q

검증 이력

일자 검증자 결과
2026-05-19 Codex Phase 1 신규 테스트 7/7 통과. 전체 unit/integration 34/34 통과.

구현 메모

  • ont_platform/core/extractors/web_extractor.py는 Trafilatura 2.x bare_extraction을 사용하되, local HTML fixture에서 Trafilatura fingerprint가 비어 있는 경우 normalized text 기반 sha1: fingerprint를 생성한다.
  • ont_platform/storage/models.py의 SQLAlchemy 예약어 충돌을 피하기 위해 DB 컬럼명은 metadata로 유지하고 Python attribute는 metadata_로 정리했다.
  • /process/url, /api/v1/process/url, /api/v1/extract/url은 같은 Phase 1 응답 계약을 사용한다.
  • OntoCast vendored core는 수정하지 않았다.

다음 Gate

Phase 2는 Candidate Storage 및 Review 책임 경계를 다룬다. 진행 전 PHASE_INDEX.md에서 Phase 2 항목만 명시적으로 선택해 작업한다.