Skip to content

Commit 2b72deb

Browse files
leebeanbincursoragent
andcommitted
chore(ci): Add branch management strategy + Issue/PR templates
- GitHub Issue templates: feature, bug, refactor (YAML form) - PR template with Closes #issue linking and checklist - dependabot.yml: unified PR limits, Conventional Commits prefix - stale-branches.yml: weekly 60-day inactive branch reporter - tests.yml: remove develop branch trigger - Makefile: new-feat/new-fix/new-refactor/pr/sync/done commands Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 8e82555 commit 2b72deb

9 files changed

Lines changed: 472 additions & 23 deletions

File tree

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
name: "Bug Report"
2+
description: "버그 리포트"
3+
title: "fix(<scope>): "
4+
labels: ["bug"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
버그를 발견하셨나요? 아래 양식을 작성해주시면 빠르게 해결하겠습니다.
10+
11+
- type: dropdown
12+
id: scope
13+
attributes:
14+
label: "Scope (영역)"
15+
description: "버그가 발생한 영역을 선택하세요."
16+
options:
17+
- rag
18+
- chat
19+
- agent
20+
- multi-agent
21+
- chain
22+
- kg (Knowledge Graph)
23+
- vision
24+
- audio
25+
- eval
26+
- optimizer
27+
- orchestrator
28+
- playground
29+
- cli
30+
- infrastructure
31+
- other
32+
validations:
33+
required: true
34+
35+
- type: textarea
36+
id: description
37+
attributes:
38+
label: "버그 설명"
39+
description: "어떤 버그인지 간단히 설명해주세요."
40+
validations:
41+
required: true
42+
43+
- type: textarea
44+
id: reproduce
45+
attributes:
46+
label: "재현 단계"
47+
description: "버그를 재현하는 방법을 단계별로 작성해주세요."
48+
placeholder: |
49+
1. `Client(model="gpt-4o")`로 클라이언트 생성
50+
2. `client.chat([{"role": "user", "content": "Hello"}])` 호출
51+
3. Rate limit 에러 발생 시 재시도 없이 바로 실패
52+
validations:
53+
required: true
54+
55+
- type: textarea
56+
id: expected
57+
attributes:
58+
label: "기대 동작"
59+
description: "정상적으로 동작해야 하는 방식을 설명해주세요."
60+
validations:
61+
required: true
62+
63+
- type: textarea
64+
id: actual
65+
attributes:
66+
label: "실제 동작"
67+
description: "현재 어떻게 동작하는지 설명해주세요."
68+
validations:
69+
required: true
70+
71+
- type: input
72+
id: python-version
73+
attributes:
74+
label: "Python 버전"
75+
placeholder: "3.11.5"
76+
validations:
77+
required: true
78+
79+
- type: input
80+
id: os
81+
attributes:
82+
label: "OS"
83+
placeholder: "macOS 15.2 / Ubuntu 22.04 / Windows 11"
84+
validations:
85+
required: true
86+
87+
- type: input
88+
id: beanllm-version
89+
attributes:
90+
label: "beanllm 버전"
91+
placeholder: "0.3.0"
92+
validations:
93+
required: false
94+
95+
- type: textarea
96+
id: logs
97+
attributes:
98+
label: "에러 로그 (선택)"
99+
description: "관련 에러 메시지나 traceback을 붙여넣어주세요."
100+
render: shell
101+
validations:
102+
required: false
103+
104+
- type: textarea
105+
id: additional
106+
attributes:
107+
label: "추가 정보 (선택)"
108+
description: "스크린샷, 관련 이슈 등"
109+
validations:
110+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: "Discussion / Question"
4+
url: https://github.com/leebeanbin/beanllm/discussions
5+
about: "질문이나 토론은 Discussions에서 진행해주세요."
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: "Feature Request"
2+
description: "새로운 기능 요청"
3+
title: "feat(<scope>): "
4+
labels: ["enhancement"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
새로운 기능을 제안해주세요. 가능한 한 구체적으로 작성해주시면 빠르게 반영할 수 있습니다.
10+
11+
- type: dropdown
12+
id: scope
13+
attributes:
14+
label: "Scope (영역)"
15+
description: "기능이 속하는 영역을 선택하세요."
16+
options:
17+
- rag
18+
- chat
19+
- agent
20+
- multi-agent
21+
- chain
22+
- kg (Knowledge Graph)
23+
- vision
24+
- audio
25+
- eval
26+
- optimizer
27+
- orchestrator
28+
- playground
29+
- cli
30+
- infrastructure
31+
- other
32+
validations:
33+
required: true
34+
35+
- type: textarea
36+
id: description
37+
attributes:
38+
label: "기능 설명"
39+
description: "어떤 기능이 필요한지 설명해주세요."
40+
placeholder: "예: HyDE (Hypothetical Document Embeddings) 기반 query expansion을 RAG 파이프라인에 추가"
41+
validations:
42+
required: true
43+
44+
- type: textarea
45+
id: motivation
46+
attributes:
47+
label: "동기 / 목적"
48+
description: "이 기능이 왜 필요한지 설명해주세요. 어떤 문제를 해결하나요?"
49+
placeholder: "예: 현재 RAG의 retrieval 정확도가 낮아서, query expansion으로 20% 이상 개선이 가능함"
50+
validations:
51+
required: true
52+
53+
- type: textarea
54+
id: proposed-solution
55+
attributes:
56+
label: "제안하는 구현 방법"
57+
description: "어떻게 구현하면 좋을지 아이디어가 있다면 적어주세요."
58+
placeholder: |
59+
1. domain/retrieval/hyde.py에 HyDEQueryExpander 클래스 추가
60+
2. RAGServiceImpl에서 query expansion 단계로 통합
61+
3. 벤치마크 테스트 추가
62+
validations:
63+
required: false
64+
65+
- type: textarea
66+
id: alternatives
67+
attributes:
68+
label: "대안 (선택)"
69+
description: "고려한 다른 방법이 있다면 적어주세요."
70+
validations:
71+
required: false
72+
73+
- type: textarea
74+
id: additional
75+
attributes:
76+
label: "추가 정보 (선택)"
77+
description: "스크린샷, 참고 링크, 관련 이슈 등"
78+
validations:
79+
required: false
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: "Refactoring / Improvement"
2+
description: "코드 리팩토링 또는 개선 제안"
3+
title: "refactor(<scope>): "
4+
labels: ["refactor"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
코드 품질, 성능, 아키텍처 개선을 제안해주세요.
10+
11+
- type: dropdown
12+
id: scope
13+
attributes:
14+
label: "Scope (영역)"
15+
description: "리팩토링 대상 영역을 선택하세요."
16+
options:
17+
- facade
18+
- handler
19+
- service
20+
- domain
21+
- infrastructure
22+
- playground
23+
- cli
24+
- ci
25+
- other
26+
validations:
27+
required: true
28+
29+
- type: dropdown
30+
id: type
31+
attributes:
32+
label: "개선 유형"
33+
description: "어떤 종류의 개선인지 선택하세요."
34+
options:
35+
- "코드 중복 제거"
36+
- "성능 최적화"
37+
- "아키텍처 개선"
38+
- "타입 안전성 강화"
39+
- "테스트 커버리지 향상"
40+
- "의존성 업데이트"
41+
- "문서화"
42+
- "기타"
43+
validations:
44+
required: true
45+
46+
- type: textarea
47+
id: current-problem
48+
attributes:
49+
label: "현재 문제"
50+
description: "현재 코드의 어떤 점이 문제인지 설명해주세요."
51+
placeholder: |
52+
예: ChatHandler에서 캐싱, rate limiting, 이벤트 발행 로직이 각 메서드마다
53+
30-50줄씩 중복되어 있어 유지보수가 어렵고 버그 발생 위험이 높음
54+
validations:
55+
required: true
56+
57+
- type: textarea
58+
id: proposed-improvement
59+
attributes:
60+
label: "개선 방향"
61+
description: "어떻게 개선하면 좋을지 설명해주세요."
62+
placeholder: |
63+
예: @with_distributed_features 데코레이터 패턴으로 추출하여
64+
중복 코드를 85-90% 감소시킬 수 있음
65+
validations:
66+
required: true
67+
68+
- type: textarea
69+
id: affected-files
70+
attributes:
71+
label: "영향 범위 (선택)"
72+
description: "변경이 필요한 파일이나 모듈을 나열해주세요."
73+
placeholder: |
74+
- src/beanllm/handler/core/chat_handler.py
75+
- src/beanllm/handler/core/rag_handler.py
76+
- src/beanllm/infrastructure/distributed/pipeline_decorators.py
77+
validations:
78+
required: false
79+
80+
- type: textarea
81+
id: additional
82+
attributes:
83+
label: "추가 정보 (선택)"
84+
description: "벤치마크 결과, 참고 자료, 관련 이슈 등"
85+
validations:
86+
required: false

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,32 @@
1-
## Description
2-
Please include a summary of the changes and the related issue.
1+
## Summary
2+
<!-- 변경 사항을 1-3 bullet point로 요약하세요 -->
3+
-
34

4-
Fixes # (issue)
5+
## Related Issues
6+
<!-- 이 PR로 해결되는 이슈를 연결하세요. 머지 시 이슈가 자동으로 닫힙니다. -->
7+
- Closes #
58

6-
## Type of change
7-
- [ ] Bug fix (non-breaking change which fixes an issue)
8-
- [ ] New feature (non-breaking change which adds functionality)
9-
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
10-
- [ ] Documentation update
9+
## Changes
10+
<!-- 구체적으로 무엇이 변경되었는지 설명하세요 -->
11+
### Added
12+
-
1113

12-
## Testing
13-
- [ ] Tests pass locally
14-
- [ ] New tests added for new features
15-
- [ ] Documentation updated
14+
### Changed
15+
-
1616

17-
## Checklist
18-
- [ ] My code follows the style guidelines of this project
19-
- [ ] I have performed a self-review of my code
20-
- [ ] I have commented my code, particularly in hard-to-understand areas
21-
- [ ] I have made corresponding changes to the documentation
22-
- [ ] My changes generate no new warnings
23-
- [ ] Any dependent changes have been merged and published
17+
### Removed
18+
-
19+
20+
## Test Plan
21+
<!-- 테스트 방법과 결과를 기술하세요 -->
22+
- [ ] `make quality` 통과 (ruff + mypy + bandit + pytest)
23+
- [ ] 관련 단위 테스트 추가/수정
24+
- [ ] 수동 테스트 완료
25+
- [ ] Breaking change 없음 (있다면 아래에 명시)
26+
27+
## Breaking Changes
28+
<!-- 하위 호환성이 깨지는 변경이 있으면 명시하세요. 없으면 "None" -->
29+
None
30+
31+
## Screenshots (optional)
32+
<!-- UI 변경이 있다면 스크린샷을 첨부하세요 -->

.github/dependabot.yml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,27 @@ updates:
44
directory: "/"
55
schedule:
66
interval: "weekly"
7-
open-pull-requests-limit: 10
7+
day: "monday"
8+
open-pull-requests-limit: 5
9+
labels:
10+
- "dependencies"
11+
commit-message:
12+
prefix: "chore(deps)"
13+
groups:
14+
# Minor/patch 업데이트는 하나의 PR로 묶음
15+
python-minor-patch:
16+
update-types:
17+
- "minor"
18+
- "patch"
819

920
- package-ecosystem: "github-actions"
1021
directory: "/"
1122
schedule:
1223
interval: "weekly"
24+
day: "monday"
25+
open-pull-requests-limit: 3
26+
labels:
27+
- "dependencies"
28+
- "ci"
29+
commit-message:
30+
prefix: "chore(ci)"

0 commit comments

Comments
 (0)