Skip to content

[Fix] 한국어 농구 용어 번역 품질 개선 및 추가 요청 반영 강화#84

Merged
zweadfx merged 2 commits intomainfrom
fix/ko-terminology-and-free-text-enhancement
Apr 6, 2026
Merged

[Fix] 한국어 농구 용어 번역 품질 개선 및 추가 요청 반영 강화#84
zweadfx merged 2 commits intomainfrom
fix/ko-terminology-and-free-text-enhancement

Conversation

@zweadfx
Copy link
Copy Markdown
Owner

@zweadfx zweadfx commented Apr 6, 2026

어떤 변경사항인가요?

한국어 루틴 생성 시 농구 용어 번역 품질을 개선하고, 추가 요청(free_text) 내용이 루틴에 더 적극적으로 반영되도록 프롬프트를 강화했습니다.

작업 상세 내용

  • KO_BASKETBALL_TERMINOLOGY 용어 매핑 테이블에 30+개 누락 용어 추가 (lay-in → 레이업, wrap-around → 볼 래핑, basket/rim → 림 등)
  • 프롬프트 구조 변경: 용어 규칙을 JSON 스키마 바로 위로 이동 + CRITICAL 강조 + 직역 금지 명시
  • coach_agent.py, weekly_coach_agent.py에 free_text를 루틴 전반에 적극 반영하라는 지시 추가
  • 4개 에이전트 모두 적용 (coach, coach_refine, weekly_coach, weekly_coach_refine)

체크리스트

  • self-test를 수행하였는가?
  • 관련 문서나 주석을 업데이트하였는가?
  • 설정한 코딩 컨벤션을 준수하였는가?

관련 이슈

리뷰 포인트

  • 용어 규칙을 JSON 스키마 바로 위로 이동 — GPT가 JSON 출력에 집중할 때도 용어 규칙을 경시하지 않도록 의도
  • free_text 반영 지시는 generate 에이전트에만 추가, refine 에이전트는 피드백 반영이 우선이므로 제외

참고사항 및 스크린샷(선택)

Summary by CodeRabbit

  • Improvements
    • Expanded Korean basketball terminology with stricter translation rules for more accurate, idiomatic coaching language.
    • Added many new English→Korean basketball term mappings (moves, defenses, passing and scoring terms).
    • Made generated routines and refinements actively incorporate and preserve user “free text” requests across step names, descriptions, and coach messages.
    • Improved application of Korean terminology to ensure more consistent output in Korean.

@zweadfx zweadfx self-assigned this Apr 6, 2026
@zweadfx zweadfx added the bug 발견된 오류나 결함을 수정할 때 사용합니다. label Apr 6, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 6, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 45021c22-e267-400a-9d11-1bf2158d5339

📥 Commits

Reviewing files that changed from the base of the PR and between 9424426 and be9a329.

📒 Files selected for processing (2)
  • src/services/agents/coach_refine_agent.py
  • src/services/agents/weekly_coach_refine_agent.py
✅ Files skipped from review due to trivial changes (1)
  • src/services/agents/coach_refine_agent.py

📝 Walkthrough

Walkthrough

Expanded and hardened the Korean basketball terminology constant and adjusted multiple coach/weekly agent prompts to require active incorporation of user free-text requests; moved the KO_BASKETBALL_TERMINOLOGY insertion from language-constraint areas into the JSON-schema sections of several prompts.

Changes

Cohort / File(s) Summary
Basketball Terminology Mapping
src/core/constants.py
Expanded KO_BASKETBALL_TERMINOLOGY with many new English→Korean mappings and tightened rules: disallow literal English-to-Korean translations and require authentic Korean basketball expressions for unmapped terms.
Coach + Weekly Agent Prompts
src/services/agents/coach_agent.py, src/services/agents/weekly_coach_agent.py
Added explicit requirement to actively integrate user's "Additional Request (raw)" across outputs (step names, descriptions, coach messages, day labels). Relocated the language-specific terminology block from the language constraint section into the JSON-schema area.
Refine Agents (prompt repositioning + preservation rule)
src/services/agents/coach_refine_agent.py, src/services/agents/weekly_coach_refine_agent.py
Moved conditional insertion of KO_BASKETBALL_TERMINOLOGY to immediately before the JSON-schema block; added rule to preserve personalized/free-text elements from the original request unless feedback asks otherwise.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Poem

🐰 I hopped through rules and mapped each play,
Korean terms now lead the way,
Free-text requests must take their part,
Prompts and schema beat as one big heart,
Bounce the ball — the ritual's now art! 🏀

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title is partially related to the changeset. It describes meaningful improvements (Korean basketball terminology and free-text request handling) that are indeed present, but is written in Korean and does not clearly convey the primary changes to an English-speaking developer scanning pull request history. Consider using an English title that clearly summarizes the main changes, such as 'Enhance Korean basketball terminology and improve free-text integration in coach agents' for better discoverability and clarity across international teams.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/ko-terminology-and-free-text-enhancement

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@zweadfx zweadfx changed the title fix: improve Korean basketball terminology and free_text reflection i… [Fix] 한국어 농구 용어 번역 품질 개선 및 추가 요청 반영 강화 Apr 6, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
src/services/agents/coach_refine_agent.py (1)

134-136: Consider clarifying free_text preservation for refine agents.

Per PR design, refine agents intentionally omit the explicit free_text reflection directive. The current instruction "Preserve all parts of the previous response that are NOT affected by the feedback" should implicitly preserve free_text integration from the initial generation.

However, if users report that refined routines lose the free_text customizations, you may want to add a brief note like: "Preserve any personalized elements (from user's original request) unless the feedback explicitly asks to change them."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/services/agents/coach_refine_agent.py` around lines 134 - 136, The
refine-agent instruction text in coach_refine_agent.py (the directive used by
the CoachRefineAgent/refine prompt generation) should explicitly clarify that
personalized free_text elements from the original response must be preserved
unless the feedback explicitly requests their change; update the instruction
string that currently reads "Preserve all parts of the previous response that
are NOT affected by the feedback" to append a short sentence such as: "Preserve
any personalized elements or free_text customizations from the user's original
request unless the feedback explicitly asks to change them." This change should
be applied where the refine prompt is constructed (e.g., in the CoachRefineAgent
class or refine prompt builder) so that refine runs retain free_text
customizations by default.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@src/services/agents/coach_refine_agent.py`:
- Around line 134-136: The refine-agent instruction text in
coach_refine_agent.py (the directive used by the CoachRefineAgent/refine prompt
generation) should explicitly clarify that personalized free_text elements from
the original response must be preserved unless the feedback explicitly requests
their change; update the instruction string that currently reads "Preserve all
parts of the previous response that are NOT affected by the feedback" to append
a short sentence such as: "Preserve any personalized elements or free_text
customizations from the user's original request unless the feedback explicitly
asks to change them." This change should be applied where the refine prompt is
constructed (e.g., in the CoachRefineAgent class or refine prompt builder) so
that refine runs retain free_text customizations by default.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 988525be-5a7a-4ec4-903e-fa4d7771f2c7

📥 Commits

Reviewing files that changed from the base of the PR and between 9668469 and 9424426.

📒 Files selected for processing (5)
  • src/core/constants.py
  • src/services/agents/coach_agent.py
  • src/services/agents/coach_refine_agent.py
  • src/services/agents/weekly_coach_agent.py
  • src/services/agents/weekly_coach_refine_agent.py

@zweadfx zweadfx merged commit a1593e8 into main Apr 6, 2026
2 checks passed
@zweadfx zweadfx deleted the fix/ko-terminology-and-free-text-enhancement branch April 6, 2026 10:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug 발견된 오류나 결함을 수정할 때 사용합니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Fix] 한국어 용어 번역 품질 개선 (2차) + AI 맞춤 루틴 반영 강화

1 participant