# task-1332.1 완료 보고서

## SCQA

**S**: finish-task.sh는 .done 생성, task-timer end, notify-completion을 수행하는 L1 마무리 스크립트로, Step 0에서 노하우 파일 업데이트만 검증하고 있다.

**C**: task-1331.1에서 두 가지 규칙 위반 발생: (1) Cycle 3 초과 시 에스컬레이션 없이 Cycle 4 자체 진행, (2) 로키(opus) 대신 팀장(sonnet)이 자체 평가 후 추정값으로 통과. 프롬프트 지시만으로는 위반을 방지할 수 없어 코드 레벨 차단이 필요했다.

**Q**: finish-task.sh에서 QC Cycle 상한 초과와 로키 미참여를 코드 레벨로 차단할 수 있는가?

**A**: Step 0b(QC 프로세스 검증)를 추가하여 3가지 검증을 코드로 강제했다. (1) Cycle 4+ 패턴 감지 시 exit 1, (2) "모델 사용 기록" 섹션에 로키(opus) 미기록 시 exit 1, (3) "팀장 시각 검수" 패턴 감지 시 WARNING. 9개 TC, 22개 체크 전부 PASS.

## 작업 내용

### 변경 사항

`/home/jay/workspace/scripts/finish-task.sh`에 Step 0b (Line 73~128) 추가:

1. **검증 1: Cycle 상한 체크** — 보고서에서 `cycle [4-9]`, `[4-9]차` 등 패턴 검색. 발견 시 exit 1. 우회: `SKIP_CYCLE_CHECK=1`
2. **검증 2: 로키 소환 검증** — Python으로 "모델 사용 기록" 섹션 파싱, "로키|Loki" AND "opus" 조합 검증. 미달 시 exit 1. 우회: `SKIP_LOKI_CHECK=1`
3. **검증 3: 팀장 시각 검수 패턴** — "팀장 시각 검수", "팀장 검수", "팀장 판단", "자체 평가" 패턴 감지 시 WARNING만 출력 (비차단)

### 조건
- 디자인/이미지 키워드가 task 파일에 있을 때만 실행 (기존 Step 0과 동일 조건)
- 보고서 파일 미존재 시 WARN 출력 후 스킵

## 산출물

- `/home/jay/workspace/scripts/finish-task.sh` (수정)
- `/home/jay/workspace/teams/dev1/tests/test_finish_task_step0b.sh` (신규)

## 테스트 결과

```
  PASS: 22
  FAIL: 0
  TOTAL: 22
```

테스트 케이스:
- TC1: Cycle 4 포함 보고서 → exit 1 차단 (3 checks PASS)
- TC2: 로키 기록 없음 → exit 1 차단 (3 checks PASS)
- TC2b: 로키 있지만 opus 없음 → exit 1 차단 (2 checks PASS)
- TC3: 정상 보고서(Cycle 3 + 로키 opus) → PASS (3 checks PASS)
- TC4: 개발 작업(디자인 키워드 없음) → 스킵 (2 checks PASS)
- TC5: SKIP_CYCLE_CHECK=1 + SKIP_LOKI_CHECK=1 → 우회 (3 checks PASS)
- TC5b: SKIP_CYCLE_CHECK=1만 → Cycle 우회, 로키 차단 (2 checks PASS)
- TC6: 보고서 파일 없음 → WARN만, 차단 없음 (2 checks PASS)
- TC7: "팀장 시각 검수" 패턴 → WARNING만 (2 checks PASS)

## 발견 이슈 및 해결

### 자체 해결 (1건)
1. **Cycle 패턴 범위 부족** — 원래 `[45]`만 검색했으나 Cycle 6+ 대비 `[4-9]` + `[1-9][0-9]`로 확장
   - 수정: `finish-task.sh:82` grep 패턴 변경

### 범위 외 미해결 (0건)
없음.

## 모델 사용 기록

- 팀원: 불칸 / 작업: finish-task.sh Step 0b 구현 / 모델: sonnet / 정당성: -
- 팀원: 아르고스 / 작업: 테스트 스크립트 작성 및 실행 / 모델: sonnet / 정당성: -
- 팀원: 헤르메스(팀장) / 작업: 코드 리뷰, Cycle 패턴 개선, 셀프 QC / 모델: opus / 정당성: 팀장 역할
