배경
2026-08-13 E2E QA에서 AI 전체 테스트와 Ruff가 설치 프로필·운영체제·내장 프로젝트 경계 없이 한 명령에 섞여 있는 문제가 다시 확인됐습니다.
현재 develop 대상 PR에는 자동 status check가 없으며 main push의 배포 workflow만 실행됩니다. 따라서 기능 회귀와 선택 의존성/운영체제 차이를 PR에서 구분할 수 없습니다.
2026-08-13 재현 결과
E2E QA 시점 origin/main 보고:
- 624개 중 618개 통과, 6개 실패
- Qdrant/Language Retrieval 선택 의존성 미설치: 4개 실패
- macOS PowerShell 부재: Windows OCR smoke 2개 실패
최신 develop + AI #42 작업 브랜치 재현:
- 전체:
628 passed, 6 failed, 1 skipped
- 환경 의존 파일을 분리한 core:
617 passed, 1 skipped
- 남은 실패 종류는 동일하게 Qdrant 4건, PowerShell 2건
루트 Ruff 120건:
app + tests: E501 7건
- 내장
hwp-editor: 105건
scripts: 8건
한 루트 규칙으로 서로 다른 코드 소유권과 의존성 프로필을 검사하고 있어, 전체 Ruff 실패만으로 앱 변경의 품질을 판단하기 어렵습니다.
작업
1. Core PR CI
2. Qdrant 프로필
3. Windows OCR 프로필
4. Model Provider 프로필
5. Ruff 소유권 분리
6. Branch protection
완료 조건
- PR 생성·갱신 시 core 기능 회귀가 자동으로 차단됨
- 선택 의존성/운영체제 부재가 core 기능 실패로 표시되지 않음
- Qdrant·Windows OCR·실모델 검증 결과가 별도 check 이름으로 보임
- 앱 변경은 내장
hwp-editor 기존 부채와 분리해 Ruff 판정 가능
- 실패한 PR은 develop 병합 전에 확인 가능
관련 PR: #33, #44
관련 QA 작업: #42
배경
2026-08-13 E2E QA에서 AI 전체 테스트와 Ruff가 설치 프로필·운영체제·내장 프로젝트 경계 없이 한 명령에 섞여 있는 문제가 다시 확인됐습니다.
현재
develop대상 PR에는 자동 status check가 없으며mainpush의 배포 workflow만 실행됩니다. 따라서 기능 회귀와 선택 의존성/운영체제 차이를 PR에서 구분할 수 없습니다.2026-08-13 재현 결과
E2E QA 시점
origin/main보고:최신
develop+ AI #42 작업 브랜치 재현:628 passed, 6 failed, 1 skipped617 passed, 1 skipped루트 Ruff 120건:
app + tests: E501 7건hwp-editor: 105건scripts: 8건한 루트 규칙으로 서로 다른 코드 소유권과 의존성 프로필을 검사하고 있어, 전체 Ruff 실패만으로 앱 변경의 품질을 판단하기 어렵습니다.
작업
1. Core PR CI
.github/workflows/ci.yml추가pull_request의develop,main대상uv sync --frozen --extra devapp + testsRuff E501 7건 정리 후 required check로 설정2. Qdrant 프로필
uv sync --frozen --extra dev --extra language-retrievaltests/integration/language/test_qdrant_retrieval.pytests/integration/language/test_runtime_composition.py3. Windows OCR 프로필
tests/ocr/test_smoke_script.py실행4. Model Provider 프로필
5. Ruff 소유권 분리
app + testshwp-editorscripts6. Branch protection
완료 조건
hwp-editor기존 부채와 분리해 Ruff 판정 가능관련 PR: #33, #44
관련 QA 작업: #42