# task-114.1 완료 보고서

## 작업 내용
실패 시나리오 체크리스트 의무화 — 문서화 + 코드화

모든 위임 작업의 계획서(plan-*.md)에 실패 시나리오 체크리스트(5항목: 비정상 입력, 동시성, 비정상 종료, 스테일 데이터, 통합 충돌)를 필수 포함하도록 시스템에 강제하는 작업.

## 생성/수정 파일 목록

- **수정** `/home/jay/workspace/prompts/team_prompts.py`
  - 변경 사유: 실패 시나리오 체크리스트를 프롬프트에 자동 삽입
  - 수정자: 불칸(백엔드) / 2026-03-02
  - 변경 내역:
    - A) `_build_failure_scenario_section()` 함수 신규 추가 (105-131행)
    - B) `_build_direct_prompt()` 244행: 워크플로우 직전에 실패 시나리오 섹션 삽입
    - C) `_build_glm_prompt()` 312행: 동일 위치에 삽입
    - D) 워크플로우 2단계 강화 (247행, 315행): "실패 시나리오 체크리스트 5항목 포함 필수" 추가

- **수정** `/home/jay/workspace/memory/specs/anu-guide.md`
  - 변경 사유: 실패 시나리오 체크리스트 의무 규정 문서화
  - 수정자: 아테나(UX/UI) / 2026-03-02
  - 변경 내역:
    - 섹션 7 "실패 시나리오 체크리스트 의무" 추가 (245-280행)
    - 핵심 정리에 6번 항목 추가 (289행)
    - 문서 버전 v1.2 → v1.3 업데이트

- **생성** `/home/jay/workspace/teams/dev1/plan-task-114.1.md`
  - 변경 사유: 작업 계획서

## 테스트 결과

### team_prompts.py 검증 (아르고스)
- TEST 1 PASS: `_build_failure_scenario_section()` 함수 정상 — 5항목 모두 포함
- TEST 2 PASS: dev1-team 프롬프트 — 실패 시나리오 섹션 포함, 워크플로우 앞에 위치, 2단계 강화 확인
- TEST 3 PASS: dev2-team 프롬프트 — 실패 시나리오 섹션 포함
- TEST 4 PASS: dev3-team(GLM) 프롬프트 — 실패 시나리오 섹션 포함, 2단계 강화 확인

### anu-guide.md 검증 (아르고스)
- TEST A PASS: 섹션 7 구조 정상 (7.1 + 7.2)
- TEST B PASS: 핵심 정리 6번 항목 추가됨
- TEST C PASS: 버전 v1.3 + task-114.1 변경사항 기록
- TEST D PASS: 섹션 순서 정상 (6 → 7 → 핵심 정리)

## 버그 유무
없음. 모든 테스트 통과.

## 팀장 검토 결과

- **불칸(백엔드)**: 1차 검토 통과, 수정 사항 없음. team_prompts.py의 새 함수 추가 및 기존 함수 삽입이 정확하게 수행됨. 기존 코드 구조와 코딩 스타일 유지 확인.
- **아테나(UX/UI)**: 1차 검토 통과, 수정 사항 없음. anu-guide.md의 섹션 번호 체계, 체크리스트 내용, 버전 업데이트 모두 정확.
- **아르고스(테스터)**: 1차 검토 통과, 수정 사항 없음. 8개 테스트 전부 통과. import 검증, 프롬프트 내용 검증, 문서 구조 검증 완료.

## 검토한 대안과 기각 사유
- **대안 A**: 체크리스트를 별도 파일로 분리하여 include 방식 → 기각. 기존 구조가 함수 내 문자열 반환 방식이므로 일관성 유지 우선.
- **대안 B**: `_build_work_philosophy_section()`에 통합 → 기각. 작업 지시서에서 별도 섹션 + 별도 함수로 명시했으며, 관심사 분리 원칙에도 부합.

## 셀프 QC (아누 가이드 3.4 System 2 Forcing)

1. **이 변경이 다른 파일에 영향을 미치는가?**
   - team_prompts.py를 import하는 dispatch.py, orchestrator.py가 영향을 받음. 단, 함수 시그니처 변경 없이 내부 출력만 변경되므로 호환성 문제 없음. build_prompt()의 반환값이 길어질 뿐, 기존 호출 코드 수정 불필요.

2. **이 로직의 엣지 케이스는 무엇인가?**
   - `_build_failure_scenario_section()`은 인자 없는 순수 함수로 항상 동일한 문자열을 반환. 엣지 케이스 없음. 프롬프트에 삽입되는 위치가 f-string 연결이므로 None 반환 시 문제가 될 수 있으나, 항상 문자열을 반환하도록 구현되어 안전.

3. **이 구현이 작업 지시와 정확히 일치하는가?**
   - 수정 1(A, B, C) + 워크플로우 강화 + 수정 2(anu-guide.md 섹션 7) 모두 지시서 원문과 일치. 체크리스트 5항목 내용도 지시서 원문 그대로 사용.

4. **에러 처리와 보안은 확인했는가?**
   - 순수 문자열 반환 함수이므로 에러 발생 가능성 없음. 보안 관련 사항 해당 없음 (프롬프트 텍스트 추가만 수행).

5. **테스트가 모든 경로를 커버하는가?**
   - 3개 팀(dev1, dev2, dev3) 모두 테스트 완료. 함수 독립 테스트 + 통합 프롬프트 테스트 + 문서 구조 테스트 총 8개 케이스로 전체 변경 경로 커버.
