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

2.2 KiB

Phase 2 Acceptance Gate 결과

작성일: 2026-05-19

범위: Candidate Storage 및 Review 책임 경계. Lightweight/OntoCast 후보 저장 경로, review 상태 전이, audit trail, evidence 기반 promotion gate.

결과 요약

# Acceptance Gate 항목 상태 검증 방법
1 extraction 결과가 candidate로 저장됨 통과 tests/unit/test_candidate_repository.py
2 lightweight와 OntoCast 저장 경로가 분리됨 통과 test_repository_saves_lightweight_candidates_with_evidence, test_repository_saves_ontocast_candidates_on_separate_source_path
3 승인/반려/자동승인 상태 변경 이력이 남음 통과 tests/unit/test_review_service.py
4 evidence 없는 항목은 승인 및 graph commit 대상이 아님 통과 test_candidate_without_evidence_cannot_be_approved, test_promotion_plan_blocks_approved_candidate_without_evidence
5 Review API가 ingest/list/detail/approve/reject/promote 흐름을 제공함 통과 tests/integration/test_review_api.py
6 Phase 0-1 회귀 없음 통과 python -m pytest tests/unit tests/integration -q

검증 이력

일자 검증자 결과
2026-05-19 Codex Phase 2 신규 테스트 9/9 통과. 전체 unit/integration 43/43 통과. 변경 파일 대상 ruff 통과.

구현 메모

  • CandidateEntity, CandidateRelationsource_type, created_by, validation_passed, promoted_at을 추가해 review queue 계약을 명확히 했다.
  • ReviewDecision으로 상태 변경 audit trail을 남긴다.
  • CandidateRepository.save_lightweight_result()save_ontocast_result()를 분리해 두 입력 경로가 같은 candidate contract로 정규화되되, 출처는 유지된다.
  • ReviewServicepending -> approved/rejected/auto_approved, approved/auto_approved -> rejected만 허용한다.
  • CandidatePromotionServiceapproved 또는 auto_approved이면서 evidence가 실제 존재하는 후보만 commit plan에 포함한다.
  • OntoCast vendored core는 수정하지 않았다.

다음 Gate

Phase 3은 Crawl4AI 수집 계층 및 Job Orchestration이다. 진행 전 PHASE_INDEX.md에서 Phase 3 항목만 명시적으로 선택해 작업한다.