-
Notifications
You must be signed in to change notification settings - Fork 2
feat: 코드래빗 리뷰 성능 검증을 위한 테스트 #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
ea84f90
chore: clear all contents to start a fresh project
Siul49 111179b
ci: github actions, husky, lint setup and pr templates
Siul49 b26bc4f
docs: project architecture and convention guidelines
Siul49 3c3bfda
build: vitest and playwright test framework setup
Siul49 c6b38eb
feat(schedule): 일시 교집합 알고리즘 및 TDD 검증 통과
Siul49 555635f
feat(ui): ui skeleton routing and style token update
Siul49 0e4a6ab
feat: 커밋 메시지 한글 강제 작성 규칙 및 대문자 허용 플러그인 추가
Siul49 a437619
feat: 코드래빗 리뷰 성능 검증용 테스트 코드 주입
Siul49 43cba9b
fix: 코드래빗 스키마 속성명 수정
Siul49 8fc0b9b
feat: 원격 CI 파이프라인에 브랜치 형식 및 커밋 메시지 정책 검증 추가
Siul49 51541c4
feat: 코드래빗 리뷰 출력 언어를 한국어로 강제하는 설정 추가
Siul49 25a6d82
fix: package-lock.json 재생성으로 CI 의존성 동기화 해결
Siul49 d2af3ac
fix: 코드래빗 tone_instructions 250자 제한 준수 및 리뷰 지침 보강
Siul49 b16c90d
fix: 코드래빗 리뷰 지적 사항 반영 (스키마 호환 + CI 안전성)
Siul49 98a80ed
feat: 코드래빗 리뷰 설정 대폭 강화 (경로별 지침·정적분석·품질게이트)
Siul49 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| # 1. Domain Context | ||
| **프로젝트 명**: AI 캠퍼스 모임 (MVP 1차) | ||
| **핵심 목표**: 에브리타임 시간표와 캘린더 연동을 통해 대학생들의 공통적인 빈 시간을 자동으로 탐색하고 일정을 잡아주는 프론트엔드 환경 구축 | ||
| **핵심 스택**: `Next.js 14`, `React`, `TypeScript`, `Tailwind CSS v3`, `shadcn/ui`, `Vitest`, `Playwright` | ||
|
|
||
| ### 주요 도메인 | ||
|
|
||
| | 도메인 | 설명 | 핵심 파일 | | ||
| |--------|------|-----------| | ||
| | 스케줄링 | 가용시간 교집합, .ics 파싱, 시간 슬롯 관리 | `src/lib/scheduling/` | | ||
| | 인증 | 카카오/구글 소셜 로그인, Supabase Auth | `src/app/(auth)/`, `src/lib/supabase/` | | ||
| | UI 컴포넌트 | TimeGrid, ParticipantList 등 도메인 전용 | `src/components/schedule/` | | ||
|
|
||
| ### 주요 변경 사항 | ||
| - Next.js 14버전 초기화 및 App 라우터 아키텍처 스캐폴딩 구성 완료 (2026.04.14) | ||
| - TDD 기반 프로젝트 구조 수립: Vitest + RTL + Playwright 도입, PRD 기반 폴더 스켈레톤 생성 (2026.04.15) | ||
| - Tailwind v3 + shadcn/ui HSL 디자인 토큰 체계 정립 (2026.04.15) | ||
| - CI 파이프라인에 lint → test → build 검증 단계 추가 (2026.04.15) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| # 2. Execution Plan | ||
| **진행 상태**: `Phase 3 (TDD 기반 프로젝트 구조 수립 완료)` | ||
|
|
||
| ### 완료된 작업 (Done) | ||
| - [x] PRD 구조 분석 및 핵심 기술 스택(14분기점) 추출 | ||
| - [x] Next.js 14 + Tailwind + TypeScript 보일러플레이트 적용 (MOIM 리포지토리) | ||
| - [x] Socratic Auto-sync 기본 컨텍스트 1,2,3 초기화 | ||
| - [x] shadcn/ui 기반 설정(components.json, utils, css var 등) 디폴트 구성 완료 | ||
| - [x] GitHub Action CI/CD (lint & build test) 배포 구축 | ||
| - [x] GitHub PR/이슈 템플릿 양식 추가 완료 | ||
| - [x] 커밋 및 브랜치 규칙 강제화 시스템 세팅 (Husky, commitlint, lint-staged) | ||
| - [x] 초보자 친화적 `convention.md` 문서와 `.env.example` 작성 완료 | ||
| - [x] 시스템적 방어벽(GitHub Actions): PR 및 이슈 템플릿 준수율 자동 검증기 추가 | ||
| - [x] 테스트 프레임워크 설치 (Vitest + React Testing Library + Playwright) | ||
| - [x] PRD 기반 폴더 스켈레톤 생성 (라우팅, 컴포넌트, 비즈니스 로직, 타입) | ||
| - [x] 핵심 알고리즘 샘플 테스트 작성 (findCommonSlots — 6개 케이스 통과) | ||
| - [x] CI에 테스트 실행 단계 추가 (lint → test → build) | ||
| - [x] ARCHITECTURE.md 프로젝트 구조 가이드 작성 | ||
| - [x] Tailwind v3 + shadcn HSL 디자인 토큰 호환 수정 | ||
| - [x] ESLint underscore prefix 허용 규칙 추가 | ||
| - [x] 보안 문제 해결 (GitHub Actions Script Injection 조치 완료) | ||
| - [x] 스켈레톤 컴포넌트 시맨틱 HTML(WAI-ARIA) 속성 사전 반영 | ||
| - [x] 테스트 엣지 케이스 추가 및 Next.js 14 최신 보안 패치 적용 | ||
| - [x] 랜딩 페이지(page.tsx) 기본 템플릿 제거 및 MOIM Placeholder 적용 | ||
|
|
||
| ### 향후 작업 (To-Do) | ||
| - [ ] UI 컴포넌트 실제 구현 (TimeGrid, ParticipantList, AvailabilityResult) | ||
| - [ ] Supabase 백엔드 연동 및 OAuth 기본 환경 연결 | ||
| - [ ] 로그인 페이지 UI + 카카오/구글 소셜 로그인 구현 | ||
| - [ ] 일정 생성 페이지 폼 UI 구현 | ||
| - [ ] 참여자 입력 페이지 (캘린더 연동 / 수동 입력) 구현 | ||
| - [ ] .ics 파서 TDD 구현 | ||
| - [ ] E2E 테스트 작성 (호스트/참여자 플로우) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| # 3. File Index Map | ||
| **현재 디렉터리 위치**: `C:\Users\kksu1\Dev\MOIM` | ||
|
|
||
| ### 설정 파일 (루트) | ||
| | 파일 | 역할 | | ||
| |------|------| | ||
| | `package.json` | 의존성 & 스크립트 (dev, build, test, lint) | | ||
| | `tsconfig.json` | TypeScript 컴파일러 설정, `@/` 경로 별칭 | | ||
| | `tailwind.config.ts` | Tailwind v3 + shadcn HSL 디자인 토큰 | | ||
| | `vitest.config.ts` | 단위 테스트 러너 설정 (jsdom, 경로 별칭) | | ||
| | `playwright.config.ts` | E2E 테스트 설정 (Chromium, localhost:3000) | | ||
| | `.eslintrc.json` | ESLint 규칙 (underscore prefix 허용) | | ||
| | `commitlint.config.js` | 커밋 메시지 검증 규칙 | | ||
| | `components.json` | shadcn/ui CLI 설정 | | ||
|
|
||
| ### 소스 코드 (`src/`) | ||
| | 경로 | 역할 | | ||
| |------|------| | ||
| | `src/app/layout.tsx` | 루트 레이아웃 (Geist 폰트, 메타데이터) | | ||
| | `src/app/page.tsx` | `/` 랜딩 페이지 | | ||
| | `src/app/globals.css` | 전역 CSS + 디자인 토큰 (HSL 변수) | | ||
| | `src/app/(auth)/layout.tsx` | 인증 전용 레이아웃 (GNB 없음) | | ||
| | `src/app/(auth)/login/page.tsx` | `/login` 소셜 로그인 페이지 | | ||
| | `src/app/schedule/create/page.tsx` | `/schedule/create` 일정 생성 | | ||
| | `src/app/schedule/[id]/page.tsx` | `/schedule/:id` 참여자 진입 | | ||
| | `src/components/ui/` | shadcn 원시 컴포넌트 | | ||
| | `src/components/schedule/TimeGrid.tsx` | When2meet 시간 그리드 (스켈레톤) | | ||
| | `src/components/schedule/ParticipantList.tsx` | 참여자 현황 (스켈레톤) | | ||
| | `src/components/schedule/AvailabilityResult.tsx` | 가용시간 결과 (스켈레톤) | | ||
| | `src/lib/scheduling/availability.ts` | ⭐ 가용시간 교집합 알고리즘 (구현 완료) | | ||
| | `src/lib/scheduling/ics-parser.ts` | .ics 파일 파서 (스켈레톤) | | ||
| | `src/lib/scheduling/time-slot.ts` | 시간 슬롯 유틸 (스켈레톤) | | ||
| | `src/lib/scheduling/__tests__/` | 단위 테스트 (availability 6개 통과) | | ||
| | `src/lib/supabase/client.ts` | Supabase 브라우저 클라이언트 (스켈레톤) | | ||
| | `src/lib/supabase/server.ts` | Supabase 서버 클라이언트 (스켈레톤) | | ||
| | `src/lib/utils.ts` | 공용 유틸리티 (cn 함수) | | ||
| | `src/types/schedule.ts` | 스케줄링 타입 (TimeSlot, ScheduleSession 등) | | ||
| | `src/types/user.ts` | 사용자/인증 타입 | | ||
| | `src/test-setup.ts` | Vitest 전역 설정 (jest-dom) | | ||
|
|
||
| ### E2E 테스트 (`e2e/`) | ||
| | 파일 | 역할 | | ||
| |------|------| | ||
| | `e2e/host-flow.spec.ts` | 호스트 플로우 시나리오 (스켈레톤) | | ||
| | `e2e/participant-flow.spec.ts` | 참여자 플로우 시나리오 (스켈레톤) | | ||
|
|
||
| ### CI/CD (`.github/`) | ||
| | 파일 | 역할 | | ||
| |------|------| | ||
| | `.github/workflows/pr-compliance.yml` | PR 템플릿 검사 + 코드 품질 검증 (lint→test→build) | | ||
| | `.github/workflows/issue-compliance.yml` | 이슈 템플릿 준수 검사 | | ||
|
|
||
| ### 문서 | ||
| | 파일 | 역할 | | ||
| |------|------| | ||
| | `ARCHITECTURE.md` | 프로젝트 구조 가이드 (팀원 공유용) | | ||
| | `convention.md` | 협업 컨벤션 가이드 (커밋, 브랜치, PR, 이슈) | | ||
| | `PRD.md` / `PRD.pdf` | 프로젝트 기획 및 요구사항 정의서 | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,206 @@ | ||
| # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json | ||
|
|
||
| # ────────────────────────────────────────────────── | ||
| # CodeRabbit 설정 — MOIM 프로젝트 | ||
| # ────────────────────────────────────────────────── | ||
|
|
||
| language: "ko-KR" | ||
| tone_instructions: "한국어만 사용. 타협 없는 시니어 리뷰어. 인사말 없이 핵심 직답. 최소 정밀 수정만. TDD·방어적 코딩 강제. Why+How+코드스니펫 필수." | ||
|
|
||
| early_access: true | ||
|
|
||
| # ────────────────────────────────────────────────── | ||
| # 리뷰 설정 | ||
| # ────────────────────────────────────────────────── | ||
| reviews: | ||
| profile: "assertive" | ||
| request_changes_workflow: true | ||
| high_level_summary: true | ||
| high_level_summary_in_walkthrough: true | ||
| collapse_walkthrough: false | ||
| sequence_diagrams: true | ||
| changed_files_summary: true | ||
| assess_linked_issues: true | ||
| related_issues: true | ||
| related_prs: true | ||
| poem: false | ||
| estimate_code_review_effort: true | ||
|
|
||
| # ── 라벨링 ── | ||
| suggested_labels: true | ||
| auto_apply_labels: false | ||
| labeling_instructions: | ||
| - label: "bug" | ||
| instructions: "버그 수정 PR에 적용" | ||
| - label: "feature" | ||
| instructions: "새로운 기능 추가 PR에 적용" | ||
| - label: "refactor" | ||
| instructions: "기능 변경 없이 코드 구조 개선 PR에 적용" | ||
| - label: "test" | ||
| instructions: "테스트 코드만 추가/수정한 PR에 적용" | ||
|
|
||
| # ── 자동 리뷰 ── | ||
| auto_review: | ||
| enabled: true | ||
| auto_incremental_review: true | ||
| auto_pause_after_reviewed_commits: 8 | ||
| ignore_title_keywords: | ||
| - "WIP" | ||
| - "DO NOT MERGE" | ||
| - "DRAFT" | ||
| drafts: false | ||
| base_branches: | ||
| - "main" | ||
| - "dev" | ||
|
|
||
| # ── 파일 필터 ── | ||
| path_filters: | ||
| - "!**/*.json" | ||
| - "!**/*.md" | ||
| - "!package-lock.json" | ||
| - "!pnpm-lock.yaml" | ||
| - "!.husky/**" | ||
| - "!.agents/**" | ||
| - "!**/*.svg" | ||
| - "!**/*.ico" | ||
| - "!**/*.png" | ||
| - "!**/*.jpg" | ||
| - "!public/**" | ||
|
|
||
| # ── 경로별 리뷰 지침 ── | ||
| path_instructions: | ||
| - path: "**/*" | ||
| instructions: | | ||
| 모든 리뷰 출력(워크스루, 요약, 코멘트, 체크리스트)을 한국어로만 작성하세요. 영어 금지. | ||
| 코드 스니펫 내 변수명/함수명은 원본 유지, 설명은 반드시 한국어. | ||
| 전면 재작성 금지 — 핵심 라인만 정밀 타격하여 최소 수정 피드백. | ||
| 개선 제안 시 반드시 Why(기술적 근거) + How(코드 스니펫) 포함. | ||
|
|
||
| - path: "src/lib/**" | ||
| instructions: | | ||
| 비즈니스 로직 계층입니다. | ||
| 순수 함수 위주로 작성되었는지 검증하세요. | ||
| 외부 의존성(Supabase, API 등)이 직접 호출되면 의존성 역전 원칙 위반 여부를 지적하세요. | ||
| 에지 케이스, 타입 안전성, 예외 처리가 부족하면 엄격히 지적하세요. | ||
| 보안 취약점(OWASP Top 10), 메모리 누수 가능성에 주의하세요. | ||
|
|
||
| - path: "src/app/**" | ||
| instructions: | | ||
| Next.js App Router 페이지/레이아웃 계층입니다. | ||
| 서버 컴포넌트와 클라이언트 컴포넌트 경계가 올바른지 확인하세요. | ||
| 'use client' 지시문이 불필요하게 상위에 있으면 지적하세요. | ||
| 데이터 페칭이 서버 컴포넌트에서 이루어지는지 확인하세요. | ||
| 렌더링 성능(불필요한 리렌더, 번들 크기)에 주의하세요. | ||
|
|
||
| - path: "src/components/**" | ||
| instructions: | | ||
| 공유 UI 컴포넌트 계층입니다. | ||
| 컴포넌트가 단일 책임 원칙(SRP)을 따르는지 확인하세요. | ||
| Props 타입이 명확하게 정의되어 있는지 검증하세요. | ||
| 접근성(a11y) 속성(aria-label, role 등)이 적절한지 확인하세요. | ||
| shadcn/ui 기반이므로 불필요한 커스텀 구현이 있으면 지적하세요. | ||
|
|
||
| - path: "**/__tests__/**" | ||
| instructions: | | ||
| 테스트 파일입니다. | ||
| AAA 패턴(Arrange-Act-Assert)을 따르는지 확인하세요. | ||
| 테스트 설명(describe/it)이 행동(behavior)을 명확히 기술하는지 확인하세요. | ||
| 경계값, 에러 케이스, 빈 입력 등 엣지 케이스 커버리지를 평가하세요. | ||
| 테스트가 구현 세부사항이 아닌 공개 인터페이스를 검증하는지 확인하세요. | ||
| 모킹이 과도하면 통합 테스트 전환을 권고하세요. | ||
|
|
||
| - path: "src/types/**" | ||
| instructions: | | ||
| 공유 타입 정의 계층입니다. | ||
| 타입이 도메인 모델을 정확히 반영하는지 확인하세요. | ||
| any, unknown 남용이 없는지 검증하세요. | ||
| discriminated union 등 타입 안전 패턴 활용을 권장하세요. | ||
|
|
||
| # ── 정적 분석 도구 ── | ||
| tools: | ||
| eslint: | ||
| enabled: true | ||
| biome: | ||
| enabled: false | ||
| github-checks: | ||
| enabled: true | ||
| timeout_ms: 120000 | ||
| actionlint: | ||
| enabled: true | ||
| gitleaks: | ||
| enabled: true | ||
| semgrep: | ||
| enabled: true | ||
| languagetool: | ||
| enabled: false | ||
|
|
||
| # ── Finishing Touches ── | ||
| finishing_touches: | ||
| docstrings: | ||
| enabled: true | ||
| unit_tests: | ||
| enabled: true | ||
|
|
||
| # ── Pre-merge 체크 ── | ||
| pre_merge_checks: | ||
| title: | ||
| mode: "warning" | ||
| requirements: "PR 제목은 'feat:', 'fix:', 'refactor:', 'docs:', 'chore:', 'test:', 'design:' 중 하나로 시작해야 합니다." | ||
| description: | ||
| mode: "warning" | ||
| issue_assessment: | ||
| mode: "warning" | ||
|
|
||
| # ── Slop Detection ── | ||
| slop_detection: | ||
| enabled: true | ||
| label: "ai-slop" | ||
|
|
||
| # ────────────────────────────────────────────────── | ||
| # 지식 기반 (프로젝트 컨텍스트 강화) | ||
| # ────────────────────────────────────────────────── | ||
| knowledge_base: | ||
| opt_out: false | ||
| web_search: | ||
| enabled: true | ||
| learnings: | ||
| scope: "local" | ||
| issues: | ||
| scope: "local" | ||
| pull_requests: | ||
| scope: "local" | ||
| code_guidelines: | ||
| enabled: true | ||
| filePatterns: | ||
| - "ARCHITECTURE.md" | ||
| - "convention.md" | ||
|
|
||
| # ────────────────────────────────────────────────── | ||
| # 코드 생성 (테스트/독스트링 자동 생성 지침) | ||
| # ────────────────────────────────────────────────── | ||
| code_generation: | ||
| docstrings: | ||
| language: "ko-KR" | ||
| unit_tests: | ||
| path_instructions: | ||
| - path: "src/lib/**" | ||
| instructions: | | ||
| Vitest를 사용하세요. describe/it 블록의 설명은 한국어로 작성하세요. | ||
| AAA 패턴(Arrange-Act-Assert)을 따르세요. | ||
| 경계값, 에러 케이스, 빈 입력을 반드시 포함하세요. | ||
| 외부 의존성은 vi.mock()으로 격리하세요. | ||
|
|
||
| # ────────────────────────────────────────────────── | ||
| # 이슈 풍부화 | ||
| # ────────────────────────────────────────────────── | ||
| issue_enrichment: | ||
| auto_enrich: | ||
| enabled: true | ||
| planning: | ||
| enabled: true | ||
|
|
||
| # ────────────────────────────────────────────────── | ||
| # 채팅 | ||
| # ────────────────────────────────────────────────── | ||
| chat: | ||
| auto_reply: true | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| # 데이터베이스 및 API (Supabase) | ||
| NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url_here | ||
| NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key_here | ||
| SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key_here | ||
|
|
||
| # 캘린더 연동용 OAuth Client (Google/Apple) | ||
| GOOGLE_CLIENT_ID=your_google_client_id_here | ||
| GOOGLE_CLIENT_SECRET=your_google_client_secret_here | ||
|
|
||
| # Gemini API (이미지 분석용) | ||
| GEMINI_API_KEY=your_gemini_api_key_here | ||
|
|
||
| # 기타 연동 시 필요한 기본 주소 포트 설정 등 | ||
| NEXT_PUBLIC_BASE_URL=http://localhost:3000 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| { | ||
| "extends": ["next/core-web-vitals", "next/typescript"], | ||
| "rules": { | ||
| "@typescript-eslint/no-unused-vars": [ | ||
| "error", | ||
| { "argsIgnorePattern": "^_", "varsIgnorePattern": "^_" } | ||
| ] | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| --- | ||
| name: 버그 리포트 (Bug Report) | ||
| about: 시스템에서 발견된 버그나 오류를 제보합니다. | ||
| title: "[BUG] " | ||
| labels: bug | ||
| assignees: '' | ||
|
|
||
| --- | ||
|
|
||
| ## 🐛 버그 설명 (Describe the bug) | ||
| <!-- 어떻게 오류가 발생했는지 명확하고 간결하게 설명해주세요 --> | ||
| - | ||
|
|
||
| ## 🔄 재현 방법 (To Reproduce) | ||
| <!-- 버그를 재현할 수 있는 구체적인 단계(Step)를 적어주세요. --> | ||
| 1. '...' 페이지로 이동합니다. | ||
| 2. '...' 버튼을 누릅니다. | ||
| 3. '...'에서 오류가 발생합니다! | ||
|
|
||
| ## 🎯 예상되는 정상 동작 (Expected behavior) | ||
| <!-- 원래는 어떻게 작동해야 하는지 설명해주세요 --> | ||
| - | ||
|
|
||
| ## 📸 스크린샷 또는 콘솔 로그 (Screenshots or Logs) | ||
| <!-- 오류가 발생한 화면이나 개발자 도구의 에러 로그 캡처를 첨부해주세요 --> | ||
|
|
||
| ## 💻 환경 정보 (Environment) | ||
| - OS: [예: Windows, Mac, iOS] | ||
| - 브라우저: [예: Chrome, Safari] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| --- | ||
| name: 기능 추가 요청 (Feature Request) | ||
| about: 프로젝트에 새롭게 들어가야 할 기능이나 아이디어를 제안합니다. | ||
| title: "[FEAT] " | ||
| labels: enhancement | ||
| assignees: '' | ||
|
|
||
| --- | ||
|
|
||
| ## 🎯 어떤 기능이 필요한가요? (Is your feature request related to a problem?) | ||
| <!-- 해결하고자 하는 문제나 추가할 기능을 간략히 설명해주세요 --> | ||
| - | ||
|
|
||
| ## ✨ 구상하는 해결책 (Describe the solution you'd like) | ||
| <!-- 어떻게 구현하면 좋을지, 혹은 무엇이 있으면 좋겠는지 구체적으로 적어주세요 --> | ||
| - | ||
|
|
||
| ## ⚖️ 대안 (Describe alternatives you've considered) | ||
| <!-- 고려해본 다른 방법이 있다면 적어주세요 (생략 가능) --> | ||
| - | ||
|
|
||
| ## 📝 추가 정보 (Additional context) | ||
| <!-- 참고할 링크나 스크린샷 등이 있다면 첨부해주세요 --> |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick | 🔵 Trivial
PR 라벨과 커밋 컨벤션 불일치.
Why:
convention.md학습 내용에 따르면 커밋 타입은feat, fix, design, refactor, docs, chore임. 현재 라벨(bug,feature,refactor,test)은 이와 불일치:bug→ 커밋 컨벤션은fixfeature→ 커밋 컨벤션은feattest→ 커밋 컨벤션에 없음design,docs,chore라벨 누락How: 커밋 컨벤션과 일관성을 유지하려면 라벨 조정 권장.
♻️ 컨벤션 일치 수정안
Based on learnings: "커밋 메시지는
[타입]: [작업 내용 요약]형식을 따라야 하며, 타입은 feat, fix, design, refactor, docs, chore 중 하나여야 합니다"🤖 Prompt for AI Agents