# content QC C-minimal 구현 — CLOSEOUT · 260622

- 작성: 아누 / 2026-06-22 KST / 회장 승인(공유링크 t_6a39f583)
- **상태명: `ANU_WORK_CONTENT_QC_MINIMAL_IMPLEMENTED_VERIFIED_NOT_E2E_ACTIVE_FALSE`**
- 성격: 구현 closeout. 보고서 작성·전송 후 정지.

## 1. 구현 파일 목록 (2개)
```text
신규 teams/content/qc/qc_verify.py           sha256 b75dff5ad2c41674…  (content 전용 self-contained lightweight QC)
신규 tests/regression/test_content_qc_2769.py sha256 996d4abfeee5a1f9…  (10 test)
```

## 2. 변경 파일 검증 (expected_files 안쪽 / 밖 0)
```text
허용 expected_files: teams/content/qc/qc_verify.py (+ 테스트)
실제 변경:           위 2개 신규만. expected_files 밖 수정 0.
★ finish-task.sh 수정 0 — finish-task 가 teams/<team>/qc/qc_verify.py 를 자동으로 쓰는 기존 구조(:649) 그대로 활용.
```

## 3. 검사 항목 (fail-closed, 4종 + 전제 2)
```text
1. 디스클레이머 포함 여부            — 없으면 FAIL (정보성 맥락 AND 권유아님/상담권유 AND)
2. 특정 상품/가입 권유문 부재        — 적극 권유 명령형 감지 시 FAIL ("상담 권유"·"가입 전" 등 정보성은 제외)
3. 고객정보/개인정보(PII) 부재       — 주민번호/휴대폰/이메일 감지 시 FAIL
4. 외부발송/게시/업로드 확정 문구 부재 — "발송/게시/업로드 완료" 등 감지 시 FAIL
전제 A: `## 레벨: 문서만`(동의어 포함) 마커 필수 — 없으면 부적격 FAIL(코드 task 로 새지 않게)
전제 B: allowed_resources.paths 에 코드/설정/인프라 파일 혼입 0 — 1건이라도 섞이면 부적격 FAIL
```

## 4. 테스트 결과 (10/10 PASS)
```text
- good doc PASS / 디스클레이머 제거 FAIL / 권유문 FAIL / PII 3종(주민·전화·이메일) FAIL / 외부발송 FAIL
- 코드 파일 혼입 → 부적격 FAIL / `## 레벨` 부재 → 부적격 FAIL / .qc-result 생성(qc_result 키)
- ★ self-contained: env -i (PYTHONPATH 완전 제거) 환경 실행 → ModuleNotFoundError 0, exit 0
- ★ task-2768 실산출물(연금저축 vs IRP 초안) → PASS (디스클레이머/권유0/PII0/외부발송0)
- shared/utils import 0 (정규식으로 import 문 검사)
```

## 5. 무영향 증거 (sha 불변)
```text
scripts/finish-task.sh        484274f7…  불변
teams/shared/qc_verify.py     12be0504…  불변
teams/dev2/qc/qc_verify.py    12be0504…  불변
teams/design/qc/qc_verify.py  12be0504…  불변
teams/content/qc/verifiers    미생성(심볼릭 0)
memory/state/automation_capability_matrix.json  e03059be…  불변
```

## 6. 금지 준수
```text
사후 .done 생성 0 · result.json 수동 조작 0 · 외부 dirty 정리 0 · 추가 dispatch/canary/synthetic 0
verifiers 심볼릭 생성 0 · finish-task.sh/shared/dev/design QC 수정 0 · matrix 수정 0 · ACTIVE=false · P0-B FROZEN
```

## 7. 남은 gap
```text
- task-2768 은 기존 task md 에 `## 레벨` 마커가 없어 content QC 부적격(FAIL) → 사후 완료 대상 아님(정상).
- 다음 신규 콘텐츠 dispatch 에서 `## 레벨: 문서만` + merge_policy=none + content QC 가 결합되어
  봇 dispatch → content qc_verify 자동호출 → .qc-result → .done 의 end-to-end 가 자연 검증되어야 함.
  → 지금 추가 dispatch 로 검증하지 않음(추가 dispatch/synthetic 금지 준수).
- 권유/디스클레이머 정규식은 휴리스틱 — 운영 관측 후 정교화 여지(별도).
```

## 8. 상태 의미
```text
IMPLEMENTED + VERIFIED (10/10 regression, self-contained 실증)
NOT_E2E (봇 dispatch→finish-task 실통합은 다음 콘텐츠 dispatch 시 자연 검증, 지금 미실행)
ACTIVE=false · P0-B FROZEN
```

**content QC C-minimal 구현 CLOSED. finish-task.sh 무수정 · 코드 QC 무영향 · self-contained · 10/10 PASS · 실산출물 PASS. E2E 통합은 다음 콘텐츠 dispatch 시 자연 검증. 정지.**
