diff --git a/.github/prompts/commit.prompt.md b/.github/prompts/commit.prompt.md new file mode 100644 index 0000000..8863c5e --- /dev/null +++ b/.github/prompts/commit.prompt.md @@ -0,0 +1,54 @@ +--- +description: "Use when: /commit or /commit all to review changes, generate a commit message, commit, and optionally push with --push" +name: "commit" +argument-hint: "Optional: 'all' and/or '--push'. Examples: '/commit', '/commit all', '/commit --push', '/commit all --push'" +agent: "agent" +model: "GPT-4.1" +tools: [read, search, agent, todo, execute] +--- + +당신은 변경사항을 검토하고 커밋/푸시를 자동으로 수행하는 실행 도우미다. +반드시 GPT-4.1 모델 기준으로 동작한다. + +반드시 아래 규칙을 지켜라. +1. 출력은 한국어로 작성한다. +2. 입력 해석 규칙: + - 빈 입력 또는 `all`: `/commit`과 동일하게 처리한다. + - `--push` 옵션이 있으면 커밋 후 원격 푸시까지 수행한다. + - 허용 예시: `/commit`, `/commit all`, `/commit --push`, `/commit all --push` + - 위 형식 외 인자는 오류로 보고하고 종료한다. +3. 실행 전 검증: + - git 저장소가 아니면 오류로 보고하고 종료한다. + - 변경 파일이 없으면 "커밋할 변경사항이 없다"고 보고하고 종료한다. +4. 변경 검토: + - `git status --short`와 `git diff`(필요 시 `git diff --staged`)로 변경을 파악한다. + - 변경 의도를 요약한 커밋 메시지를 1줄로 생성한다. + - 커밋 메시지 형식은 Conventional Commits를 우선 사용한다. +5. 커밋 수행: + - `/commit`, `/commit all` 모두 `git add -A` 후 `git commit -m "<생성 메시지>"`를 수행한다. + - 커밋 실패 시 오류 내용을 보고하고 종료한다. +6. 푸시 수행: + - `--push` 옵션이 있을 때만 `git push`를 수행한다. + - 기본 대상은 현재 체크아웃 브랜치의 upstream을 사용한다. + - upstream이 없으면 `origin <현재브랜치>`로 푸시를 시도하고 결과를 보고한다. +7. 안전 규칙: + - 파괴적 명령(`reset --hard`, `checkout --`, 강제 push)은 사용하지 않는다. + - 사용자가 명시하지 않은 변경을 되돌리지 않는다. + +실행 절차: +1. 입력 옵션 파싱(`all`, `--push`) +2. 저장소/변경 여부 확인 +3. 변경 내용 검토 및 커밋 메시지 생성 +4. `git add -A` + `git commit` +5. 옵션이 있으면 `git push` +6. 결과 보고 + +최종 응답 형식: +1. 실행 옵션 요약 +2. 생성된 커밋 메시지 +3. 커밋 결과(해시, 변경 파일 수) +4. 푸시 결과(실행한 경우) +5. 다음 액션 + +사용자 입력: +{{input}} diff --git a/.github/prompts/design-review.prompt.md b/.github/prompts/design-review.prompt.md index 4416144..d36c046 100644 --- a/.github/prompts/design-review.prompt.md +++ b/.github/prompts/design-review.prompt.md @@ -48,11 +48,15 @@ tools: [read, edit, search, todo, agent] - {{DECIDE: 질문}} - {{CONFIRM: 내용}} - {{DATA: 필요한 정보}} + - {{DELEGATE_TO: agent}} (agent 자동 결정) - 추가 의사결정이 필요한 경우 반드시 플레이스홀더를 삽입한다. 11. 플레이스홀더 집계 규칙: - 본문에 미해결 플레이스홀더가 있으면 `# 9. 사용자 결정 필요 항목 요약`에 유형별로 집계한다. + - 집계 시 {{DECIDE}}, {{CONFIRM}}, {{DATA}}, {{DELEGATE_TO}}를 유형별로 분리하고 중복 문구는 1회만 남긴다. - 본문에 미해결 플레이스홀더가 없으면 `현재 미해결 플레이스홀더 없음`으로 정규화한다. 12. 여러 문서를 처리할 때 문서별 결과를 분리해 보고한다. +13. 본문 플레이스홀더 정규화 규칙: + - {{DELEGATE_TO: agent}} 형식의 항목은 agent가 결정을 생성해 본문 문장으로 대체하고, 요약 섹션에서도 제거한다. 실행 절차: 1. 입력 ID 목록 정규화 및 형식 검증 @@ -72,7 +76,7 @@ tools: [read, edit, search, todo, agent] 5. 연결 Planning 미승인/미발견 목록(있으면) 6. 문서별 검토 결과 7. 문서별 수정 내역 요약 -8. 문서별 추가된 사용자 결정 항목({{DECIDE}}/{{CONFIRM}}/{{DATA}}) +8. 문서별 추가된 사용자 결정 항목({{DECIDE}}/{{CONFIRM}}/{{DATA}}/{{DELEGATE_TO}}) 9. 업데이트된 파일 경로 목록 10. 다음 액션 diff --git a/.github/prompts/implementation.prompt.md b/.github/prompts/implementation.prompt.md index 25062bb..8922208 100644 --- a/.github/prompts/implementation.prompt.md +++ b/.github/prompts/implementation.prompt.md @@ -12,9 +12,10 @@ tools: [read, edit, search, create_file, agent, todo] 반드시 아래 규칙을 지켜라. 1. 출력은 한국어로 작성한다. -2. 입력 형식: `imp-<3자리숫자> <항목목록>` +2. 입력 형식: `imp-<3자리숫자>` 또는 `imp-<3자리숫자> <항목목록>` - imp ID: `imp-<3자리숫자>` 형식 필수 - - 항목 목록: `I-001, I-002` 또는 `P-001, P-002` 또는 혼합 가능 + - 항목 목록(선택): `I-001, I-002` 또는 `P-001, P-002` 또는 혼합 가능 + - 항목 목록이 생략되면 imp 문서 `# 3. 작업 단위 분해`의 미완료 항목 전체를 위에서 아래 순서대로 실행한다. - 형식 오류 시 오류로 보고하고 종료한다. 3. imp 파일 검색 규칙: - 경로: docs/sdlc/implementation/ @@ -23,6 +24,8 @@ tools: [read, edit, search, create_file, agent, todo] 4. imp 문서 상태 확인: - 상태가 `draft`가 아니면 "이미 확정된 Implementation 문서다. 상태를 확인하라"로 보고하고 종료한다. 5. 항목 해석 규칙: + - 항목 목록이 없는 경우: `# 3. 작업 단위 분해` 표의 모든 I-ID 중 상태가 `완료`가 아닌 항목을 문서 순서대로 대상에 포함한다. + - 항목 목록이 없는데 미완료 I-ID가 없으면 "실행할 미완료 항목이 없다"고 보고하고 종료한다. - I-ID 입력 시: imp 문서 `# 3. 작업 단위 분해` 표에서 해당 I-ID 행을 직접 찾는다. - P-ID 입력 시: `# 3. 작업 단위 분해` 표에서 `연결 설계/AC` 열에 해당 P-ID가 포함된 모든 I-ID를 찾는다. - 상태가 이미 `완료`인 항목은 건너뛰고 보고한다. @@ -46,14 +49,15 @@ tools: [read, edit, search, create_file, agent, todo] - 확인 필요: {{CONFIRM: 내용}} - 추가 정보 필요: {{DATA: 필요한 정보}} 10. 범위 제한: - - 이번 명령에서 지정하지 않은 I-ID는 절대 수정하지 않는다. + - 항목 목록을 명시한 경우, 이번 명령에서 지정하지 않은 I-ID는 절대 수정하지 않는다. + - 항목 목록이 생략된 경우, 문서의 미완료 I-ID 전체가 이번 명령의 지정 항목으로 간주된다. - imp 문서 외 SDLC 문서(Design, Planning 등)는 참조만 하고 수정하지 않는다. - 지정한 파일 변경 계획 외의 추가 파일을 임의로 수정하지 않는다. 실행 절차: -1. 입력 파싱: imp ID + 항목 목록 형식 검증 +1. 입력 파싱: imp ID 및 항목 목록(선택) 형식 검증 2. imp 파일 검색 및 상태 확인 -3. 항목 해석: I-ID 직접 조회 또는 P-ID → I-ID 변환 +3. 항목 해석: 항목 목록 없음 -> 미완료 I-ID 전체(문서 순서), 항목 목록 있음 -> I-ID 직접 조회 또는 P-ID → I-ID 변환 4. 상태가 이미 `완료`인 항목 필터링 및 보고 5. Design 문서 읽기 (실행 내용 근거 확보) 6. 항목별 순서대로 실행: @@ -64,7 +68,7 @@ tools: [read, edit, search, create_file, agent, todo] 8. 최종 응답 제공 최종 응답 형식: -1. 실행 입력 요약 (imp ID, 지정 항목 목록) +1. 실행 입력 요약 (imp ID, 지정 항목 목록 또는 전체 미완료 자동 선택) 2. 항목별 실행 결과 (성공/건너뜀/실패) 3. 생성/수정된 실제 파일 경로 목록 4. imp 문서 갱신 내역 (상태 변경된 항목) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dbe9c82 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.vscode/ \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 852768a..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "chat.tools.terminal.autoApprove": { - "git remote": true - } -} \ No newline at end of file