@@ -0,0 +1,101 @@
+REVIEW_PROMPT = """
+You have deep knowledge and expertise in Python, FastAPI for the back end, React and Next.js for the front.
+Here is the new PR information.
+- title: {title}
+- description: {description}
+- commit messages: {commit_messages}
+- changed files: {changed_files}
+
+Please understand and review the purpose and context of the change considering PR information and commit message.
+Please be sure to thoroughly analyze and review the following format and provide a comprehensive review.
+If the author has written a post in accordance with the 🙏 review requirements (optional) written in the PR description section, 
+please provide a solution to resolve the content first.
+If not, please find one part of the entire code provided that needs the most improvement and provide a solution.
+Please find the number one priority that needs improvement in the entire code you provided and write it strictly in the format below.
+--------------------------------------------------------
+## 🧑🏻‍💻 주요 기능
+
+[Provide a brief description of the main features of this file, including its core functionality, expected input and output, and any specific exception cases it handles.]
+
+## 🔍 개선할 점
+
+[Write down any areas that need improvement, including performance bottlenecks, readability issues, and security vulnerabilities.]
+
+## 📢 제안된 솔루션
+
+1. 현재 코드
+
+[problematic code fragment]
+
+2. 권장되는 변경
+
+[updated code snippet]
+
+3. 변경 이유
+
+[Brief reasons why the new approach is better, considering performance, readability, security, etc.]
+--------------------------------------------------------
+
+Full Code: {all_code}
+
+If you need to put in a code block, keep it brief, no more than 10 lines of code that needs improvement.
+Please write one sentence within 70 characters, including the maximum space, that you need to explain.
+If you write one sentence for readability, please write the next sentence in the next column instead of the next one.
+
+The person receiving this feedback is a Korean developer.
+Please make sure to follow the above format strictly in Korean, but please provide specific and constructive feedback.
+"""
+
+FILE_REVIEW_PROMPT = """
+다음 {filename} 파일의 코드를 리뷰하고, 아래 형식으로 상세한 리뷰를 제공해주세요:
+
+## {filename} 파일 리뷰
+
+### 주요 기능
+[파일의 주요 기능 설명]
+
+### 좋은 점
+[좋은 점 나열]
+
+### 개선할 점
+[개선이 필요한 점 나열]
+
+### 제안 사항
+[구체적인 개선 제안, 코드 예시 포함]
+
+파일 내용:
+{content}
+"""
+
+LINE_COMMENTS_PROMPT = """
+다음 {filename} 파일의 코드를 리뷰하고, 중요한 라인에 대해 구체적인 코멘트를 제공해주세요. 
+형식은 '라인 번호: 코멘트'로 해주세요.
+
+{content}
+"""
+
+OVERALL_COMMENTS_PROMPT = """
+## AI 코드 리뷰 요약
+
+{overall_review}
+"""
+
+def get_review_prompt(all_code, pr_context, commit_messages, changed_files):
+    formatted_commit_messages = "\n".join([f"- {msg}" for msg in commit_messages])
+    return REVIEW_PROMPT.format(
+        title=pr_context['title'],
+        description=pr_context['description'],
+        commit_messages=formatted_commit_messages,
+        changed_files=changed_files,
+        all_code=all_code
+    )
+
+def get_file_review_prompt(filename, content):
+    return FILE_REVIEW_PROMPT.format(filename=filename, content=content)
+
+def get_line_comments_prompt(filename, content):
+    return LINE_COMMENTS_PROMPT.format(filename=filename, content=content)
+
+def get_total_comments_prompt(overall_review):
+    return OVERALL_COMMENTS_PROMPT.format(overall_review=overall_review)
+    
\ No newline at end of file

리뷰: ## scripts/review_prompt.py 파일 리뷰

### 주요 기능
이 파일은 코드 리뷰를 위한 프롬프트를 제공하는 함수들을 정의하고 있습니다. 이 파일은 코드 리뷰에 사용될 프롬프트를 생성하여 반환하는 역할을 합니다.

### 좋은 점
* 코드가 간결하고 이해하기 쉽습니다.
* 함수명이 명확하고, 함수의 역할이 분명합니다.
* 프롬프트의 형식을 정의하여 일관성을 유지하고 있습니다.

### 개선할 점
* 함수의 각 매개변수에 대한 설명이 없습니다.
* 프롬프트의 형식이 변경될 경우, 모든 함수에서 변경해야 합니다.
* 에러 핸들링이 없습니다. 예를 들어, 매개변수가 없는 경우에 대한 처리가 없습니다.

### 제안 사항
* 함수의 각 매개변수에 대한 설명을 추가하세요. 예를 들어, `get_review_prompt` 함수의 `code` 매개변수에 대한 설명을 추가할 수 있습니다.
```python
def get_review_prompt(code: str) -> str:
    """
    전체 코드 리뷰 프롬프트를 반환합니다.
    
    Args:
        code (str): 전체 코드
    
    Returns:
        str: 전체 코드 리뷰 프롬프트
    """
    return REVIEW_PROMPT.format(code=code)
```

* 프롬프트의 형식을 정의하여 일관성을 유지하고, 변경이 필요한 경우 모든 함수에서 변경해야 하는 문제를 해결하기 위해, 프롬프트의 형식을 별도의 파일이나 변수로 분리할 수 있습니다.
```python
# prompts.py
REVIEW_PROMPT_TEMPLATE = """
## 전체 코드 리뷰

### 좋은 점
[좋은 점 나열]

### 개선할 점
[개선이 필요한 점 나열]

### 제안 사항
[구체적인 개선 제안, 코드 예시 포함]

전체 코드:
{code}
"""

# review_prompt.py
from prompts import REVIEW_PROMPT_TEMPLATE

def get_review_prompt(code: str) -> str:
    return REVIEW_PROMPT_TEMPLATE.format(code=code)
```

* 에러 핸들링을 추가하여, 매개변수가 없는 경우에 대한 처리를 할 수 있습니다.
```python
def get_review_prompt(code: str) -> str:
    if not code:
        raise ValueError("code는 필수 매개변수입니다.")
    return REVIEW_PROMPT.format(code=code)
```