Files
portfolio-hub/.github/prompts/confirm-release.prompt.md
T
2026-04-23 04:32:10 +00:00

98 lines
5.2 KiB
Markdown

---
name: "confirm-release"
description: "Approve a Release document and mark it as confirmed, ready for Operations"
argument-hint: "예: sdlc-001 또는 docs/sdlc/sdlc-001_20260417_stage-pilot/6_release.md"
agent: "agent"
---
SDLC Release 문서를 최종 승인 처리한다.
목표:
- `6_release.md`의 상태를 `confirmed`로 변경한다.
- `# 9. Release Freeze`의 `Handoff Decision`을 `승인`으로, `Ready for Operations`를 `true`로 변경한다.
- `마지막 갱신 시각(KST)`과 승인 시각(`CONFIRMED_AT_KST`)을 현재 시각으로 채운다.
- 승인 불가 조건이 있으면 문서를 변경하지 않고 이유를 보고한다.
---
## 플레이스홀더 분류 기준
모든 `{{...}}` 플레이스홀더를 동일하게 차단 조건으로 취급하지 않는다. 아래 세 유형으로 먼저 분류한다.
### A. 승인 행위 자체로 채워지는 플레이스홀더 (자동 해소)
| 플레이스홀더 패턴 | 자동 채움 값 |
|---|---|
| `{{CONFIRMED_AT_KST...}}` | 현재 시각 (KST, `YYYY-MM-DD HH:MM:SS KST`) |
| `{{CONFIRMED_BY...}}` | 섹션 9의 `Confirmed By:` 줄에서 읽은 값. 해당 줄이 없으면 차단하지 않고 플레이스홀더를 제거한 뒤 빈 값으로 처리 |
### B. 맥락상 해소된 플레이스홀더 (자동 정리)
섹션 6(체크리스트) 또는 섹션 8(사용자 결정 요약)에 있는 플레이스홀더는 **해당 결정의 실질 값이 섹션 9에 이미 기입되어 있으면** 해소된 것으로 간주한다. 차단하지 않는다.
### C. 실질 미해소 플레이스홀더 (차단 대상)
섹션 1~5(본문 내용)에 남아 있는 `{{...}}` 플레이스홀더로서, 위 A·B 유형에 해당하지 않는 것. 이 플레이스홀더가 하나라도 있으면 승인을 보류한다.
---
## 실행 절차
### 1. 입력 해석
- 사용자가 제공한 값이 CYCLE_ID(예: `sdlc-001`)이면 `docs/sdlc/` 아래에서 해당 패턴으로 시작하는 폴더를 찾아 `6_release.md` 경로를 확정한다.
- 사용자가 파일 경로를 직접 제공했으면 해당 경로를 사용한다.
- 파일이 존재하지 않으면 경로를 재확인하도록 사용자에게 피드백하고 중단한다.
### 2. 플레이스홀더 분류 및 사전 해소
문서 전체의 `{{...}}` 플레이스홀더를 스캔해 A·B·C 유형으로 분류한다.
- **A 유형**: 목록만 기록한다. 4단계에서 자동으로 채운다.
- **B 유형**: 섹션 9에서 실질 값을 읽어 치환 가능한지 확인한다. 가능하면 4단계에서 함께 처리한다.
- **C 유형**: 목록을 보고하고 승인을 보류한다.
### 3. 승인 가능 여부 확인 (사전 게이트 검사)
아래 조건을 모두 충족해야 승인을 진행한다.
| 항목 | 확인 기준 |
|------|-----------|
| 문서 상태 | `confirmed`가 아닌 상태(`draft` 또는 `review`)여야 한다. 이미 `confirmed`면 중단한다. |
| 실질 미해소 플레이스홀더 (C 유형) | C 유형 플레이스홀더가 0개여야 한다. |
| 오픈 질문 미해소 | `# 5` 오픈 질문 목록에 `상태: Open`인 항목이 없어야 한다. |
| 필수 섹션 미완성 | `# 2`, `# 3`, `# 4`, `# 6`, `# 8`, `# 9` 섹션이 존재하고 내용이 채워져 있어야 한다. |
| Ready for Operations 사전 설정 | `Ready for Operations: false`이거나 아직 갱신 전인 경우만 승인 처리 대상이다. 이미 `true`이면 이미 처리된 문서임을 알린다. |
> **예외**: C 유형 플레이스홀더 또는 오픈 질문 미해소만 문제인 경우, 사용자가 명시적으로 `--force`를 표현했으면 해당 항목 목록을 보고하되 승인을 진행한다.
### 4. 문서 업데이트 (승인 가능 시에만 실행)
아래 항목을 변경한다. 이 목록 외 내용은 절대 수정하지 않는다.
1. `# 0. 문서 상태`의 `- 상태:` 줄 → `confirmed`로 변경
2. `# 0. 문서 상태`의 `- 마지막 갱신 시각(KST):` → 현재 시각으로 변경
3. `# 9. Release Freeze`의 `- Handoff Decision:` → `승인`으로 변경
4. `# 9. Release Freeze`의 `- Ready for Operations:` → `true`로 변경
5. **A 유형 플레이스홀더** → 각 자동 채움 값으로 치환
6. **B 유형 플레이스홀더** → 섹션 9에서 읽은 실질 값으로 치환 (또는 플레이스홀더 제거)
7. `docs/sdlc/<CYCLE_ID>/index.md`의 Release 행 `상태` 열 → `` `confirmed` ``로 변경. 행 형식: `| 6. Release | ... | ... |`
### 5. 결과 보고
응답에 아래 내용을 포함한다.
- **처리 결과**: 승인 완료 또는 승인 불가
- **자동 처리된 플레이스홀더 목록** (A·B 유형, 승인 완료 시)
- **변경된 필드 목록** (승인 완료 시)
- **미충족 항목 목록** (승인 불가 시): 각 항목에 대한 조치 안내 포함
- **다음 단계 안내**: 승인 완료 시 Operations 단계(`/draft-operation <CYCLE_ID>`) 실행 안내
---
## 중요 규칙
- 4단계에서 명시된 항목 외에는 문서 내용을 절대 변경하지 않는다.
- C 유형 미해소 조건이 있으면 문서에 아무 변경도 가하지 않는다.
- 이미 `confirmed` 상태인 문서에는 재처리하지 않는다.
- 현재 시각은 시스템 또는 컨텍스트에서 제공된 날짜/시간을 사용한다.