---
task_id: task-2081
type: context
scope: task
created: 2026-04-22
updated: 2026-04-22
status: completed
---

# 맥락 노트: task-2081

**task**: task-2081

---

## 결정 근거

### 삽입 위치: git gate 후, .done 직전
- 이유: git gate 통과 후 상태를 검증하는 것이 가장 정확. member idle 복원은 실패해도 무해하므로 그 후에 배치
- 대안 기각: QC 직후(머지 전)에 넣으면 머지/git gate 이후 상태 미검증

### 레벨 판정: task-timers.json 우선 + task 파일 fallback
- 이유: task-timers.json의 work_level이 dispatch 시점에 정확히 설정됨 (신뢰도 높음)
- fallback: task 파일의 ## 레벨 섹션 파싱 (work_level이 빈 경우 대비)
- 대안 기각: --level CLI 인자는 기존 호출부 전체 수정 필요 → ROI 낮음

### 레벨 판정 버그 수정: section.split()[0] → 키워드 직접 할당
- 문제: `## 레벨` 섹션이 `- critical` 형태(마크다운 리스트)일 때 split()[0]이 "-"를 반환
- 수정: 키워드 매칭 후 해당 키워드 문자열을 직접 level에 할당

## 3 Step Why

1st Why: "왜 이 설계가 필요한가?" → Lv.3+ 작업에서 g3_verifier가 수동 실행이므로 생략 가능, .done이 검증 없이 생성되는 품질 구멍 존재
2nd Why: "왜 finish-task.sh에 통합하는 것이 최선인가?" → finish-task.sh가 유일한 .done 생성 경로이므로 여기서 게이트를 걸면 우회 불가능
3rd Why: "왜 다른 대안(프롬프트 지시 강화, 별도 스크립트)보다 나은가?" → 프롬프트 지시는 에이전트가 무시 가능, 별도 스크립트는 호출 누락 가능, finish-task.sh 내 강제가 가장 확실

## 참조 자료

- task-2080 보고서: `memory/reports/task-2080.md` (G3-3 항목)
- g3_verifier: `scripts/g3_independent_verifier.py`
- Codex 사전 검증: 6개 리스크 지적, 레벨 판정 불안정성 → 수정 반영

## 주의사항

- set -euo pipefail 환경에서 g3_verifier exit 1을 캡처하기 위해 set +e / set -e 패턴 사용
- FAIL 시 .g3-failed 이벤트 생성 (기존 QC FAIL의 .failed 패턴과 유사)
