1---2name: task-final-report3description: 하이퍼-워터폴 타스크의 최종 보고와 PR 게시 절차를 적용한다. 최종 결과 보고서(`_report.md`) 작성, 오늘할일 완료 처리, 최종 커밋, publish/task{N} 원격 push, {BASE_BRANCH} 대상 Open PR 생성을 수행한다. 모든 단계 완료 후 PR 직전에만 호출.4---56# 하이퍼-워터폴 최종 보고와 PR 게시78## 트리거910- 작업지시자가 "최종 보고서 작성", "PR 준비"를 명시 지시한 경우11- 본 SKILL을 직접 호출한 경우1213## 사전 조건1415- 구현 계획서의 모든 단계 종료, 각 단계 보고서 커밋 완료16- 통합 검증(전체 수용 기준) 통과 확인17- `local/task{N}`에 commit 안 된 변경 없음 또는 본 절차에서 함께 커밋할 것만 남아 있음1819## 절차20211. 통합 검증: 구현 계획서의 "수용 기준" 또는 마지막 단계 "검증" 섹션 명령 실행222. 최종 보고서 작성: `mydocs/report/task_m{milestone}_{N}_report.md`23 - 중앙 템플릿 `mydocs/_templates/final_report.md`를 기준으로 작성한다.24 - 템플릿을 읽을 수 없는 경우에만 다음 최소 섹션을 fallback으로 사용한다:25 - 작업 요약 (이슈 링크, 마일스톤, 단계 수)26 - 변경 파일 목록과 영향 범위27 - 변경 전·후 정량 비교 (라인 수, 토큰, 검증 통과 등 적용 시)28 - 검증 결과 (수용 기준별 OK/MISS)29 - 잔여 위험과 후속 작업30 - 작업지시자 승인 요청313. 오늘할일 갱신: `mydocs/orders/{yyyymmdd}.md`의 #{N} 행32 - 출력 형식은 `mydocs/_templates/orders.md`를 기준으로 한다.33 - 상태 `완료`로 변경, 비고에 `완료: HH:mm` 기록344. 변경 점검35 ```bash36 git status --short37 git diff --check38 git log --oneline {BASE_BRANCH}..local/task{N}39 ```405. 최종 커밋 (Stage 마지막 + 최종 보고서를 묶을 수도, 보고서만 단일 커밋도 가능)41 ```bash42 git add mydocs/report/task_m{milestone}_{N}_report.md mydocs/orders/{yyyymmdd}.md43 git commit -m "Task #{N} Stage {마지막} + 최종 보고서: {요약}"44 # 또는45 git commit -m "Task #{N}: 최종 보고서 작성과 오늘할일 완료 처리"46 ```476. 원격 게시 브랜치 push48 ```bash49 git push origin local/task{N}:publish/task{N}50 ```517. {BASE_BRANCH} 대상 Open PR 생성52 ```bash53 HEAD_SHA=$(git rev-parse HEAD)54 PR_BODY=/tmp/task{N}-pr-body.md55 # {PR_TEMPLATE_PATH}를 출발점으로 삼아 최종 보고서와 단계 보고서 기준으로 "$PR_BODY" 작성56 gh pr create --base {BASE_BRANCH} --head publish/task{N} \57 --title "Task #{N}: {제목}" \58 --body-file "$PR_BODY"59 ```60 - PR 본문은 `{PR_TEMPLATE_PATH}`를 기준으로 작성한다.61 - 최대 4개 요약 bullet (대상 타스크/왜/무엇/리뷰 포인트), Stage당 1줄 요약, 검증 결과 요약, 남은 리스크를 포함62 - Stage 제목은 단계 보고서 URL로, 옆의 짧은 commit SHA는 commit URL로 링크63 - 작업 문서는 `HEAD_SHA` 기준 `https://github.com/{REPO_SLUG}/blob/{HEAD_SHA}/mydocs/...` URL로 연결64 - 링크 표시는 raw URL이 아니라 `[파일명](URL)` 형식으로 작성65 - 상대 링크(`mydocs/...`)나 `blob/publish/task{N}/...` 링크는 사용하지 않음66 - PR 본문 검증 섹션은 `자동 검증`, `수동/시나리오 검증`, `CI/원격 검증`, `검증 한계` 하위 섹션을 사용한다.67 - 자동 검증은 `주제 / 검증 방법 / 결과 / 근거` 표로 적고, 명령 나열이 아니라 어떤 수용 기준을 확인했는지와 핵심 출력·통과 개수·확인 조건을 함께 남긴다.68 - 수동/시나리오 검증은 `시나리오 / 확인 절차 / 결과 / 자료` 표로 적고, 어떤 화면·파일·산출물에서 무엇을 확인했는지 남긴다.69 - CI/원격 검증은 `항목 / 결과 / 근거` 표로 적고, GitHub Check 이름, run 링크 또는 확인 시점을 남긴다.70 - 실행하지 않은 검증은 표에 남기지 말고 `검증 한계` 또는 `남은 리스크`에 사유를 적는다.71 - 긴 로그는 PR 본문에 붙이지 말고 최종 보고서나 단계 보고서 링크로 넘긴다.72 - 시각적 변경사항이 있을 때만 `스크린샷` Before/After 표를 유지73 - `관련 이슈`에는 대상 타스크가 아니라 선행, 후속, Epic, upstream, 참고 PR/issue만 작성748. 작업지시자에게 PR URL 전달과 리뷰·merge 승인 요청7576## 검증7778- 모든 단계 보고서 + 최종 보고서 존재79- 최종 보고서가 `mydocs/_templates/final_report.md`의 필수 섹션을 채움80- `git status --short` 결과 빈 출력81- `gh pr view` 결과에 draft가 아닌 PR이 정확한 base/head로 등록82- PR 본문 `변경 내역`의 Stage별 요약이 단계 보고서 링크와 짧은 commit SHA 링크를 함께 사용83- PR 본문 `변경 내역`의 작업 문서 항목이 commit SHA 고정 URL과 `[파일명](URL)` 표시 형식을 사용84- PR 본문 작업 문서 항목에 raw GitHub blob URL, 상대 링크, `blob/publish/task{N}` 링크 없음85- PR 본문 `검증` 섹션이 `자동 검증`, `수동/시나리오 검증`, `CI/원격 검증`, `검증 한계` 구조를 따름86- PR 본문에 실행하지 않은 검증 체크리스트가 남아 있지 않고, 미수행 항목은 `검증 한계` 또는 `남은 리스크`로 분리됨87- 오늘할일 #{N} 상태 `완료` + `완료: HH:mm`8889## 절대 하지 말 것9091- 통합 검증 실패 상태에서 PR 생성92- `local/task{N}` 브랜치를 원격에 직접 push (반드시 `publish/task{N}`로 명명)93- squash merge 강제 옵션 사용 (단계 커밋 의미 보존)94- 작업지시자 명시 지시 없이 Draft PR로 생성하거나 self-merge9596## 호출 방법9798- Codex: `$task-final-report` 또는 `/skills` 메뉴99- Claude Code: `/task-final-report`