@@ -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 파일 리뷰

### 주요 기능
이 파일은 코드 리뷰에 대한 프롬프트를 제공하는 기능을 담당합니다. 다양한 유형의 리뷰 프롬프트를 정의하고, 필요한 데이터를 포함하여 프롬프트를 반환하는 함수들을 제공합니다.

### 좋은 점
- 코드는 가독성이 좋고, 각 함수의 역할이 명확합니다.
- 프롬프트 템플릿은 string.format() 메서드를 사용하여 동적으로 데이터를 포함할 수 있습니다.
- 함수명과 변수명이 명확하게 정의되어 있습니다.

### 개선할 점
- 함수의 역할이 명확하지만, 함수의 설명과 도큐먼트가 없습니다. 이는 코드의 이해를 어렵게 만들 수 있습니다.
- 에러 핸들링이 없습니다. 예를 들어, 함수에 잘못된 데이터가 입력된 경우, 적절한 에러 메시지를 반환해야 합니다.
- 프롬프트 템플릿에 대한 테스트가 없습니다. 이는 프롬프트 템플릿의 유효성을 확인하기 위해 필요합니다.

### 제안 사항
1. 함수에 대한 설명과 도큐먼트를 추가합니다.

```python
def get_review_prompt(code):
    """
    전체 코드 리뷰 프롬프트를 반환합니다.

    Args:
        code (str): 코드 내용

    Returns:
        str: 전체 코드 리뷰 프롬프트
    """
    return REVIEW_PROMPT.format(code=code)
```

2. 에러 핸들링을 추가합니다.

```python
def get_file_review_prompt(filename, content):
    if not filename or not content:
        raise ValueError("파일명과 내용은 반드시 제공되어야 합니다.")
    return FILE_REVIEW_PROMPT.format(filename=filename, content=content)
```

3. 프롬프트 템플릿에 대한 테스트를 추가합니다.

```python
import unittest

class TestReviewPrompt(unittest.TestCase):
    def test_get_review_prompt(self):
        code = "print('Hello World')"
        prompt = get_review_prompt(code)
        self.assertIn(code, prompt)

    def test_get_file_review_prompt(self):
        filename = "example.py"
        content = "print('Hello World')"
        prompt = get_file_review_prompt(filename, content)
        self.assertIn(filename, prompt)
        self.assertIn(content, prompt)
```

4. 프롬프트 템플릿을 더 유연하게 만들기 위해, 템플릿 엔진을 사용하는 것을 고려합니다.