--- name: "review-operation" description: "Review and validate SDLC Operations document for consistency, completeness, and readiness for approval" argument-hint: "예: sdlc-001 또는 docs/sdlc/sdlc-001_20260417_stage-pilot/7_operation.md" agent: "agent" --- SDLC Operations 문서를 체계적으로 검토하고, 승인 가능한 상태인지 판단한다. 목표: - `7_operation.md` 파일의 일관성 확인 (모니터링/런북/환류 항목 간 충돌 및 누락) - 기술적 오류, 잘못된 표현, 명확하지 않은 문구 식별 - AI agent에게 할당된 플레이스홀더(`{{...}}`) 중 판단/결정 가능한 항목 처리 - 플레이스홀더 중 사용자 결정이 정말 필요한 항목만 남겼는지 확인 - 최종 승인 가능 상태 판단 --- ## 검토 절차 ### 1. 입력 해석 - 사용자가 제공한 문서 경로 또는 CYCLE_ID에서 `7_operation.md` 파일 위치를 확정한다. - 파일이 없으면 입력값을 다시 확인하도록 사용자에게 피드백하고 중단한다. - `6_release.md`도 함께 읽어 인계 내용 정합성 확인에 사용한다. ### 2. 인계 정합성 검토 - 배포 결과 요약이 Release `# 2`/`# 4`의 내용과 일치하는가 - 이월된 오픈 질문이 Release `# 5`의 `Deferred` 항목과 대응하는가 - 런북의 장애 대응 절차가 Release `# 3`의 롤백 계획과 연결되는가 ### 3. 일관성 검토 (모든 섹션 대상) - **모니터링 실현 가능성**: `# 2` 모니터링 항목의 임계값이 수치화되었는가 ("오류가 없어야 한다" 대신 "5xx 오류율 1% 이하" 등) - **런북 실행 가능성**: `# 3` 절차가 실제 운영자가 따를 수 있을 만큼 구체적인가 - **에스컬레이션 일관성**: 에스컬레이션 경로가 실제 연락 가능한 대상인가 - **숫자 연속성**: R-N, OQ-N 번호가 누락 없이 연속인지 확인 ### 4. 표현 검토 (모든 텍스트) - **문법**: 문장 구조, 주술 호응, 시제 일관성 - **명확성**: "문제가 생기면", "필요할 때" 같은 모호한 표현 식별 - **작성 수준**: 기술 문서 기준의 형식적 톤 유지 - **오타**: 한글 띄어쓰기, 숫자 오류, 테이블 형식 검증 ### 5. 플레이스홀더 처리 모든 `{{...}}` 플레이스홀더를 나열하고 각 항목의 의도를 파악한다. AI agent가 채울 수 있는 항목: - `{{..._DECISION:...}}` 형태 — 문서 내 다른 섹션이나 Release 내용으로 추론 가능한지 확인 - 모니터링 확인 방법(`OPS_MONITOR_METHOD_N`), 장애 대응 첫 단계 등 구조적으로 추론 가능한 항목 사용자 결정이 필요한 항목 (플레이스홀더 유지): - 모니터링 담당자(`OPS_MONITOR_OWNER`) - 에스컬레이션 연락처(`OPS_ESCALATION_1`) - Freeze 확정 담당자(`CONFIRMED_BY`) 각 항목에 대해 아래 중 하나를 판단한다: - **채울 수 있음**: 문서 내 맥락, Release 내용으로 합리적 추론 가능 → 실제 내용으로 치환 - **판단 불가능**: 실제 운영 정보, 담당자 지정 필요 → 플레이스홀더 유지하되 명확성 강화 처리 결과를 별도 목록으로 보고한다. ### 6. 섹션별 최소 검수 기준 | 섹션 | 최소 기준 | |------|---------| | `# 0 문서 상태` | 메타데이터 완성도 확인 (CREATED_AT_KST, REL_PATH 채워졌는가) | | `# 1 Release 인계 요약` | 배포 환경과 스모크 테스트 결과가 명시되었는가 | | `# 2 운영 모니터링` | 모니터링 항목 최소 1개 이상, 각 항목에 임계값과 대응 방안이 있는가 | | `# 3 런북` | 정상 운영 절차 1단계 이상, 장애 대응 절차 1단계 이상, 에스컬레이션 경로가 있는가 | | `# 5 리스크/오픈 질문` | OQ `Open` 상태가 있으면 종료 조건이 명시되었는가 | | `# 6 다음 Discovery 환류` | "없음"이거나 구체적인 인사이트/개선 사항이 기록되었는가 | | `# 7 확인 체크` | 체크 항목이 구체적이고 측정 가능한가 | | `# 9 사용자 결정 필요` | 플레이스홀더가 실제 `{{...}}` 형식인가 | | `# 10 Freeze` | Handoff Decision과 Rationale이 채워졌는가 | ### 7. 최종 승인 판단 - **승인 가능 (SDLC 주기 완료)**: - 모니터링 항목에 임계값과 대응 방안이 모두 명시되었는가 - 런북(정상 운영/장애 대응/에스컬레이션)이 완비되었는가 - `# 5` 오픈 질문에 `Open` 상태 항목이 없거나 모두 `Deferred` 처리 완료인가 - `# 6` 다음 Discovery 환류 항목이 작성되었거나 "없음"으로 명시되었는가 - Freeze 플래그가 준비되었는가 (`SDLC_CYCLE_COMPLETE: true`로 변경 가능한가) - **조건부 (Pending Minor Changes)**: - 일부 모니터링 임계값이 모호하거나, 런북 절차 보완 필요 - **보류 (Hold)**: - 모니터링 항목 없음, 장애 대응 절차 없음, 에스컬레이션 경로 없음 등 근본적 재검토 필요 --- ## 응답 형식 - **검토 결과 요약** - Release 인계 정합성 오류 (있으면 나열) - 발견된 일관성 오류 (있으면 나열) - 표현/문법 오류 (있으면 나열) - 섹션별 완성도 (예: `# 2` 모니터링 임계값 미수치화) - **플레이스홀더 처리 결과** - 채워진 항목 (예: `{{OPS_MONITOR_METHOD_1}}` → `GitHub 저장소 오류 로그 확인` 로 치환) - 유지된 항목 (예: `{{OPS_MONITOR_OWNER:TBD}}` → 담당자 지정 필요로 유지) - **수정 사항 목록** (적용된 변경) - **최종 판단** - 승인 가능 / 조건부 / 보류 - 근거 및 남은 작업 사항