13 KiB
name, description, argument-hint, agent
| name | description | argument-hint | agent |
|---|---|---|---|
| run-sdlc | Run the full SDLC pipeline for a given cycle, automatically resuming from the first incomplete stage | 예: sdlc-001 Justin | agent |
지정된 SDLC 주기의 전체 파이프라인을 순서대로 실행한다.
인자:
sdlc-xyz: SDLC 주기 ID (예:sdlc-001)my-name: 각 단계 승인자 이름 (예:Justin)
목표:
- 지정된 SDLC 주기의 현재 진행 상태를 파악하고, 미완료 단계부터 순서대로 실행한다.
- 각 단계가 완료(
confirmed)되면 다음 단계로 자동 진행한다. - 사용자 판단이 필요한 경우 즉시 중단하고, 어떤 판단이 필요한지 명확하게 안내한다.
실행 절차
1. 입력 해석
- 첫 번째 인자를
CYCLE_ID로 사용한다 (예:sdlc-001). - 두 번째 인자를
APPROVER_NAME으로 사용한다 (예:Justin). docs/sdlc/아래에서CYCLE_ID로 시작하는 폴더를 찾는다.- 폴더가 없으면 오류를 보고하고 중단한다.
- 폴더가 여러 개이면 가장 최근(날짜 순)을 사용하고 선택한 폴더 경로를 보고한다.
- 이후 단계에서
SDLC_DIR = docs/sdlc/<일치하는 폴더>로 참조한다.
2. 현재 상태 파악
SDLC_DIR/index.md의 단계별 상태 테이블을 읽어 각 단계의 현재 상태를 확인한다.
파일이 없으면 각 문서 파일을 직접 읽어 # 0. 문서 상태의 - 상태: 줄에서 상태를 확인한다.
확인 대상 단계와 해당 문서 파일:
| 단계 | 문서 파일 | confirmed 조건 |
|---|---|---|
| Discovery | 1_discovery.md |
상태 = confirmed 또는 Ready for Planning: true |
| Planning | 2_planning.md |
상태 = confirmed 또는 Ready for Design: true |
| Design | 3_design.md |
상태 = confirmed 또는 Ready for Implementation: true |
| Implementation | 4_implementation.md |
상태 = confirmed 또는 Ready for Verification: true |
| Verification | 5_verification.md |
상태 = confirmed 또는 Ready for Release: true |
| Release | 6_release.md |
상태 = confirmed 또는 Ready for Operations: true |
| Operations | 7_operation.md |
상태 = confirmed 또는 SDLC 주기 완료: true |
3. 실행 시작 지점 결정
단계를 아래 순서로 순회하며 confirmed가 아닌 첫 번째 단계를 찾는다.
- Discovery
- Planning
- Design
- Implementation
- Verification
- Release
- Operations
모든 단계가 confirmed이면 SDLC 주기가 완료되었음을 보고하고 종료한다.
4. 단계별 실행
시작 지점부터 각 단계의 서브스텝을 아래 순서로 실행한다. 각 서브스텝 실행 후 결과를 확인하고, 블로킹 조건이 발생하면 즉시 중단한다.
4-1. Discovery 단계 (1_discovery.md)
1_discovery.md의 상태에 따라 아래 서브스텝을 실행한다.
| 현재 상태 | 실행할 서브스텝 |
|---|---|
| 파일 없음 | 오류 보고 후 중단 — Discovery 문서는 /new-sdlc로 먼저 생성해야 한다 |
draft 또는 review |
① review-discovery → ② confirm-discovery |
confirmed |
스킵 |
review-discovery실행 시: 검토 결과가 **보류(Hold)**이면 → 블로킹 처리confirm-discovery실행 시:APPROVER_NAME을Confirmed By값으로 사용한다. 승인 불가 보고를 받으면 → 블로킹 처리
4-2. Planning 단계 (2_planning.md)
2_planning.md의 상태에 따라 아래 서브스텝을 실행한다.
| 현재 상태 | 실행할 서브스텝 |
|---|---|
| 파일 없음 | ① draft-planning → ② review-planning → ③ confirm-planning |
draft |
① review-planning → ② confirm-planning |
review |
① confirm-planning |
confirmed |
스킵 |
draft-planning실행 시: Discovery가confirmed상태인지 확인한다. 아니면 중단.review-planning실행 시: 검토 결과가 **보류(Hold)**이면 → 블로킹 처리confirm-planning실행 시:APPROVER_NAME을Confirmed By값으로 사용한다. 승인 불가 보고를 받으면 → 블로킹 처리
4-3. Design 단계 (3_design.md)
3_design.md의 상태에 따라 아래 서브스텝을 실행한다.
| 현재 상태 | 실행할 서브스텝 |
|---|---|
| 파일 없음 | ① draft-design → ② review-design → ③ confirm-design |
draft |
① review-design → ② confirm-design |
review |
① confirm-design |
confirmed |
스킵 |
draft-design실행 시: Planning이confirmed상태인지 확인한다. 아니면 중단.review-design실행 시: 검토 결과가 **보류(Hold)**이면 → 블로킹 처리confirm-design실행 시:APPROVER_NAME을Confirmed By값으로 사용한다. 승인 불가 보고를 받으면 → 블로킹 처리
4-4. Implementation 단계 (4_implementation.md)
4_implementation.md의 상태에 따라 아래 서브스텝을 실행한다.
| 현재 상태 | 실행할 서브스텝 |
|---|---|
| 파일 없음 | ① draft-implementation → ② run-implementation → ③ review-implementation → ④ confirm-implementation |
draft |
① run-implementation → ② review-implementation → ③ confirm-implementation |
review |
① review-implementation → ② confirm-implementation |
confirmed |
스킵 |
draft-implementation실행 시: Design이confirmed상태인지 확인한다. 아니면 중단.run-implementation실행 시: 블로킹 태스크가 발생하면 → 블로킹 처리review-implementation실행 시: 검토 결과가 **보류(Hold)**이면 → 블로킹 처리confirm-implementation실행 시:APPROVER_NAME을Confirmed By값으로 사용한다. 승인 불가 보고를 받으면 → 블로킹 처리
4-5. Verification 단계 (5_verification.md)
5_verification.md의 상태에 따라 아래 서브스텝을 실행한다.
| 현재 상태 | 실행할 서브스텝 |
|---|---|
| 파일 없음 | ① draft-verification → ② review-verification → ③ confirm-verification |
draft |
① review-verification → ② confirm-verification |
review |
① confirm-verification |
confirmed |
스킵 |
draft-verification실행 시: Implementation이confirmed상태인지 확인한다. 아니면 중단.review-verification실행 시: 검토 결과가 **보류(Hold)**이면 → 블로킹 처리confirm-verification실행 시:APPROVER_NAME을Confirmed By값으로 사용한다. 승인 불가 보고를 받으면 → 블로킹 처리
4-6. Release 단계 (6_release.md)
6_release.md의 상태에 따라 아래 서브스텝을 실행한다.
| 현재 상태 | 실행할 서브스텝 |
|---|---|
| 파일 없음 | ① draft-release → ② review-release → ③ confirm-release |
draft |
① review-release → ② confirm-release |
review |
① confirm-release |
confirmed |
스킵 |
draft-release실행 시: Verification이confirmed상태인지 확인한다. 아니면 중단.review-release실행 시: 검토 결과가 **보류(Hold)**이면 → 블로킹 처리confirm-release실행 시:APPROVER_NAME을Confirmed By값으로 사용한다. 승인 불가 보고를 받으면 → 블로킹 처리
4-7. Operations 단계 (7_operation.md)
7_operation.md의 상태에 따라 아래 서브스텝을 실행한다.
| 현재 상태 | 실행할 서브스텝 |
|---|---|
| 파일 없음 | ① draft-operation → ② review-operation → ③ confirm-operation |
draft |
① review-operation → ② confirm-operation |
review |
① confirm-operation |
confirmed |
스킵 |
draft-operation실행 시: Release가confirmed상태인지 확인한다. 아니면 중단.review-operation실행 시: 검토 결과가 **보류(Hold)**이면 → 블로킹 처리confirm-operation실행 시:APPROVER_NAME을Confirmed By값으로 사용한다. 승인 불가 보고를 받으면 → 블로킹 처리
블로킹 처리
아래 상황 중 하나가 발생하면 즉시 실행을 중단하고 사용자에게 아래 정보를 제공한다.
-
review- 결과가 보류(Hold)인 경우*
- 어느 단계의 review에서 보류가 발생했는지
- 보류 이유 (review 결과에서 제시된 미충족 항목)
- 해결을 위해 필요한 사용자 조치
-
confirm- 결과가 승인 불가인 경우*
- 어느 단계의 confirm이 실패했는지
- C 유형 미해소 플레이스홀더 목록 (해당 시)
- 미해소 오픈 질문 목록 (해당 시)
- 해결 방법 안내 (예: 문서에서 해당 항목을 직접 채운 후
/run-sdlc <CYCLE_ID> <NAME>재실행)
-
run-implementation 실행 중 블로킹 태스크가 발생한 경우
- 블로킹된 태스크 번호(T-N)와 원인
- 사용자가 결정해야 할 사항
- 해결 후
/run-sdlc <CYCLE_ID> <NAME>재실행 안내
-
Verification 단계가 미완료인 경우
- Verification 문서의 현재 상태
- 필요한 조치 안내
5. 완료 보고
전체 파이프라인이 완료되면(모든 단계 confirmed) 아래 내용을 포함한 완료 보고를 출력한다.
- 완료된 주기:
CYCLE_ID - 각 단계별 최종 상태 (표 형식)
- 이번 실행에서 처리된 단계 목록
- 다음 Discovery 환류 항목: Operations
# 6섹션의 내용 요약 (있는 경우) - 다음 SDLC 주기 시작 안내:
/new-sdlc <다음 이슈 내용>명령 안내
서브스텝 실행 방식
각 서브스텝은 해당 프롬프트 파일의 전체 절차를 그대로 실행한다.
| 서브스텝 | 참조 프롬프트 |
|---|---|
review-discovery |
.github/prompts/review-discovery.prompt.md |
confirm-discovery |
.github/prompts/confirm-discovery.prompt.md |
draft-planning |
.github/prompts/draft-planning.prompt.md |
review-planning |
.github/prompts/review-planning.prompt.md |
confirm-planning |
.github/prompts/confirm-planning.prompt.md |
draft-design |
.github/prompts/draft-design.prompt.md |
review-design |
.github/prompts/review-design.prompt.md |
confirm-design |
.github/prompts/confirm-design.prompt.md |
draft-implementation |
.github/prompts/draft-implementation.prompt.md |
run-implementation |
.github/prompts/run-implementation.prompt.md |
review-implementation |
.github/prompts/review-implementation.prompt.md |
confirm-implementation |
.github/prompts/confirm-implementation.prompt.md |
draft-verification |
.github/prompts/draft-verification.prompt.md |
review-verification |
.github/prompts/review-verification.prompt.md |
confirm-verification |
.github/prompts/confirm-verification.prompt.md |
draft-release |
.github/prompts/draft-release.prompt.md |
review-release |
.github/prompts/review-release.prompt.md |
confirm-release |
.github/prompts/confirm-release.prompt.md |
draft-operation |
.github/prompts/draft-operation.prompt.md |
review-operation |
.github/prompts/review-operation.prompt.md |
confirm-operation |
.github/prompts/confirm-operation.prompt.md |
confirm-* 서브스텝 실행 시 APPROVER_NAME을 해당 문서의 Freeze 섹션 Confirmed By: 값으로 주입한다.
해당 줄이 문서에 없거나 플레이스홀더로 되어 있으면, 실행 전 APPROVER_NAME으로 교체한다.
중요 규칙
- 각 단계는 정해진 순서대로만 실행하며, 이전 단계가
confirmed가 아닌 상태에서 다음 단계를 시작하지 않는다. run-implementation은 실제 코드를 변경하는 단계이므로, 블로킹 조건이 없어도 실행 전4_implementation.md의 구현 계획(# 2 구현 계획)과 변경 파일 목록(# 3 변경 파일 목록)을 요약해 사용자에게 안내한 뒤 진행한다.- 사용자 판단 없이 임의로 결정할 수 없는 항목(담당자 지정, 외부 환경 정보, 정책 결정 등)은 반드시 중단하고 사용자에게 문의한다.
- 블로킹 처리 후 사용자가 문서를 직접 수정하면
/run-sdlc <CYCLE_ID> <APPROVER_NAME>을 재실행해 이어서 진행할 수 있다. - 현재 시각은 시스템 또는 컨텍스트에서 제공된 날짜/시간을 사용한다.