Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
7 changes: 4 additions & 3 deletions .github/workflows/pr-automation.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: PR Automation
on:
pull_request:
types: [opened, ready_for_review, synchronize, reopened]
types: [opened, ready_for_review, reopened]
permissions:
contents: read
pull-requests: write
Expand All @@ -17,9 +17,10 @@ jobs:
if: github.event.action == 'opened' || github.event.action == 'ready_for_review'
steps:
- name: Auto Assign
uses: kentaro-m/auto-assign-action@v2.0.1
uses: kentaro-m/auto-assign-action@v2.0.2
with:
configuration-path: ".github/auto_assign.yml"
repo-token: ${{ secrets.GITHUB_TOKEN }}

# ─────────────────────────────────────────────
# 2. Auto Labeler
Expand Down Expand Up @@ -100,4 +101,4 @@ jobs:
noprefix: true
nodetail: false
notimestamp: false
ack_no_webhook: true
ack_no_webhook: true
20 changes: 20 additions & 0 deletions Fantasy-Grower/.claude/commands/commit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Perform the following steps in order to git commit the current project changes.

## Steps

1. Run `git status --porcelain` to check the list of changed files.
- If there are no changes, notify "No changes to commit." and exit.

2. Run `git diff HEAD` to analyze the changes.
- If there are no staged changes, also check unstaged changes with `git diff`.

3. Based on the changed files and content, write a commit message in Conventional Commits format in English.
- Format: `type: subject` (choose from feat / fix / refactor / docs / chore)
- Summarize the changes concisely
- Example: `feat: add /report slash command`

4. Show me the generated commit message and proceed with the commit.

5. Stage all changes with `git add -A`, then commit with `git commit -m "..."`.

6. After the commit, run `git log --oneline -1` to verify and display the result.
22 changes: 22 additions & 0 deletions Fantasy-Grower/.claude/commands/push.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Perform the following steps in order to commit and push the current project changes to the remote repository.

## Steps

1. Run `git status --porcelain` to check the list of changed files.
- If there are no changes, skip to step 5 to push any unpushed commits.

2. Run `git diff HEAD` to analyze the changes.
- If there are no staged changes, also check unstaged changes with `git diff`.

3. Based on the changed files and content, write a commit message in Conventional Commits format.
- Format: `type: subject` (choose from feat / fix / refactor / docs / chore)
- **Write the subject in Korean**
- Summarize the changes concisely
- Example: `feat: /report 슬래시 커맨드 추가`

4. Stage all changes with `git add -A`, then commit with `git commit -m "..."`.

5. Run `git push` to push to the remote repository.
- If the upstream is not set, run `git push -u origin HEAD` instead.

6. After the push, run `git log --oneline -1` to verify and display the result.
7 changes: 7 additions & 0 deletions Fantasy-Grower/.claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"permissions": {
"allow": [
"Bash(npm install:*)"
]
}
}
64 changes: 64 additions & 0 deletions Fantasy-Grower/.gemini/commands/commit.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
description = "Git 변경사항을 논리적 단위로 분리하여 커밋합니다."
prompt = """
Create Git commits following the project's commit conventions.
## Current Changes
### git status
!{git status}
### git diff (unstaged)
!{git diff}
### git diff (staged)
!{git diff --cached}
---
## Commit Message Format
{type}: {Korean description}
**Types:**
| Type | When to use |
|--------|-------------|
| feat | New file(s) added (new system / component / UI / shader / animation / scene) |
| fix | Broken behavior fixed, or missing reference / config corrected |
| modify | Existing file(s) modified — rename, restructure, method added to existing class |
| docs | Documentation changes only |
| chore | Tooling, CI/CD, dependency updates, config changes with no behavior change |
| asset | Art / audio / VFX / animation asset added or updated (no code change) |
**Boundary rules:**
- New script file added (System / Manager / Controller / Handler) → `feat`
- New method added to an existing script → `modify`
- Missing component reference or Inspector binding corrected → `fix`
- New system file + its initialization/registration together → `feat` (one logical unit)
- New scene or prefab added → `feat`
- Existing scene or prefab modified → `modify`
- New UI screen or panel added → `feat`
- Existing UI layout or logic modified → `modify`
- New shader or VFX graph added → `feat`
- Shader / VFX parameter tuning only → `modify`
- Art / audio / animation asset added or swapped → `asset`
- Refactoring without behavior change → `modify`
- Input binding / build setting / project setting changed → `chore`
**Description rules:**
- Written in **Korean**
- Short and imperative (단문)
- No trailing punctuation (`.`, `!`, etc.)
- Prefer verb style over noun style
**Examples:**
- feat: 전투 콤보 시스템 추가
- feat: 인벤토리 UI 화면 추가
- fix: 점프 중 이동 입력 씹히는 문제 수정
- fix: PlayerController Inspector 참조 누락 수정
- modify: 캐릭터 이동 속도 보간 방식 변경
- modify: 보스 패턴 스크립트 리팩토링
- asset: 플레이어 공격 이펙트 VFX 추가
- chore: Input System 패키지 버전 업데이트
**Do NOT:**
- Add Claude/Gemini as co-author
- Write descriptions in English
- Add a commit body — subject line only
---
## Steps
1. Analyze all changes from the git status and diff above.
2. Categorize changes into **logical units** — group files that belong to the same feature or fix.
3. For each logical unit:
a. Stage only the relevant files with `git add <files>`
b. Write a concise commit message following the format above
c. Execute `git commit -m "message"`
4. After all commits, verify with `git log --oneline -n {number of commits made}`.
"""
160 changes: 160 additions & 0 deletions Fantasy-Grower/.gemini/commands/pr.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
description = "현재 브랜치 기반으로 GitHub PR을 생성합니다. 사용법: /pr 또는 /pr {base-branch}"

prompt = """
Generate and create a GitHub Pull Request based on the current branch.

## Runtime Context

### Current branch
!{git branch --show-current}

### Recent tags
!{git tag --sort=-v:refname | head -10}

### Existing release branches
!{git branch -a | grep release}

### User-provided argument (base branch override)
{{args}}

---

## Step 0. Determine behavior

- If `{{args}}` is **not empty**: set Base Branch = `{{args}}`, skip to **Case 3** immediately.
- If `{{args}}` is **empty**: check the current branch name and follow the rules below.

---

## Case 1: Current branch is `develop`

**Step 1.** Determine the latest version from tags and release branches.

**Step 2.** Analyze changes from `main`:
- `git log main..HEAD --oneline`
- `git diff main...HEAD --stat`

**Step 3.** Recommend a version bump (Major / Minor / Patch) and explain why briefly.

**Step 4.** Ask the user: "현재 버전: {current_version} / 추천: {recommended_version} ({reason}) — 사용할 버전 번호를 입력해주세요. (예: 1.0.1)"

**Step 5.** After the user replies with a version number:
- Run: `git checkout -b release/{version}`
- Analyze changes from `main` for the PR body

**Step 6.** Write the PR body following the **PR Body Template** below. Save to `PR_BODY.md`.

**Step 7.** Run:
```
gh pr create --title "release/{version}" --body-file PR_BODY.md --base main
```

**Step 8.** Run: `rm PR_BODY.md`

---

## Case 2: Current branch matches `release/x.x.x`

**Step 1.** Extract version from branch name (e.g., `release/1.2.0` → `1.2.0`).

**Step 2.** Analyze changes from `main`:
- `git log main..HEAD --oneline`
- `git diff main...HEAD --stat`

**Step 3.** Write PR body following the **PR Body Template** below. Save to `PR_BODY.md`.

**Step 4.** Run:
```
gh pr create --title "release/{version}" --body-file PR_BODY.md --base main
```

**Step 5.** Run: `rm PR_BODY.md`

---

## Case 3: Any other branch (or base branch was specified via argument)

**Step 1.** Set Base Branch:
- If `{{args}}` is not empty → Base Branch = `{{args}}`
- Otherwise → Base Branch = `develop`

**Step 2.** Analyze changes from Base Branch:
- `git log {Base Branch}..HEAD --oneline`
- `git diff {Base Branch}...HEAD --stat`
- `git diff {Base Branch}...HEAD`

**Step 3.** Suggest **three PR title options** following the **PR Title Convention** below.

**Step 4.** Write the PR body following the **PR Body Template** below. Save to `PR_BODY.md`.

**Step 5.** Show the PR body preview and the three title options to the user. Ask:
"PR 제목을 선택해주세요. (1 / 2 / 3 / 직접 입력)"

**Step 6.** After the user selects or types a title:
```
gh pr create --title "{chosen title}" --body-file PR_BODY.md --base {Base Branch}
```

**Step 7.** Run: `rm PR_BODY.md`

---

## PR Title Convention

Format: `{type}: {Korean description}`

**Types:**
- `feature` — new system / UI / scene / shader / mechanic added
- `fix` — bug fix or missing component reference / binding corrected
- `update` — modification to existing script, prefab, or UI
- `asset` — art / audio / VFX / animation asset added or updated
- `refactor` — refactoring without behavior change
- `docs` — documentation changes
- `chore` — tooling, CI/CD, build setting, dependency updates

**Rules:**
- Description in Korean
- Short and imperative (단문)
- No trailing punctuation

**Examples:**
- `feature: 콤보 전투 시스템 추가`
- `fix: 점프 중 이동 입력 씹히는 문제 수정`
- `update: 보스 패턴 밸런스 조정`
- `asset: 플레이어 공격 VFX 추가`
- `refactor: PlayerController 구조 정리`

---

## PR Body Template

Use this exact structure (keep the emoji headers):

```
## 📚작업 내용

- {change item 1}
- {change item 2}

## ◀️참고 사항

{additional notes, context, before/after comparisons if relevant. Write "." if nothing to add.}

## ✅체크리스트

> `[ ]`안에 x를 작성하면 체크박스를 체크할 수 있습니다.

- [x] 현재 의도하고자 하는 기능이 정상적으로 작동하나요?
- [x] 변경한 기능이 다른 기능을 깨뜨리지 않나요?


> *추후 필요한 체크리스트는 업데이트 될 예정입니다.*
```

**Writing rules:**
- Fill `작업 내용` bullets by grouping commits meaningfully — not one bullet per commit
- `참고 사항`: Inspector 설정, 씬 구성, 에셋 경로, before/after 비교 등. Write `"."` if nothing to add
- Keep total body under 2500 characters
- All text content in Korean (keep section header emojis as-is)
- No emojis in body text — section headers only
"""
8 changes: 8 additions & 0 deletions Fantasy-Grower/Assets/Prefabs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Fantasy-Grower/Assets/Prefabs/Enemy.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading