---
task_id: task-1921_a
status: completed
type: context-notes
scope: dev4/dev6 QC verifiers 복구 + .done 무결성/스키마 검증
updated_at: 2026-04-17
---

# Context Notes: task-1921_a

## 발견 사항
- dev4 __init__.py: 12개 verifier만 등록 (shared/dev1은 15개)
- dev6도 dev4와 동일한 누락 (file_touch_ratio_check, symbol_existence_check, three_docs_check)
- dev4의 3개 stub 파일: 132~178B (빈 껍데기), shared의 full 구현: 5~10KB
- planned_check.py: shared에만 존재, 어떤 팀에도 미등록 → 이번 범위 외
- .done 해시 로직: 현재 전무. 수동 echo로 .done 생성 가능 (QC 우회)
- .done 스키마: 정의서 없음. 작성자별 필드가 다름 (qc_verify vs finish-task.sh vs auto_merge)

## 3 Step Why

### 1st Why: 왜 이 설계가 필요한가?
A: dev4/dev6에서 qc_verify.py 실행 시 ImportError 발생하여 QC 자체가 불가능. .done 수동 생성으로 QC 우회가 가능한 보안 취약점 존재.

### 2nd Why: 왜 A가 최선의 접근인가?
B: verifier 파일 복사는 독립 실행을 보장하며, SHA256 해시는 검증 가능하면서도 기존 .done 포맷과 하위호환 가능(해시 필드 추가만). 심볼릭 링크는 배포 환경에서 깨질 위험.

### 3rd Why: 왜 B가 다른 대안보다 나은가?
C: 대안1(중앙 verifier import) — sys.path 조작 필요, 기존 팀별 격리 원칙 위반. 대안2(HMAC 서명) — 비밀키 관리 복잡성 추가. SHA256 해시는 키 없이 변조 탐지 가능하며 구현 단순.

## 결정 근거
- 복사 > 심볼릭 링크: 팀별 독립 실행 + 배포 안정성
- SHA256 > HMAC: 키 관리 불필요, 충분한 변조 탐지
- done-watcher.py에 검증 집중: 단일 검증 지점으로 일관성 확보
