Skip to content

feat(i18n): finish-the-work.sh·router.sh에 한국어 시그널 패턴 추가#10

Open
OKEUNSOO wants to merge 1 commit into
fivetaku:mainfrom
OKEUNSOO:feat/korean-signals
Open

feat(i18n): finish-the-work.sh·router.sh에 한국어 시그널 패턴 추가#10
OKEUNSOO wants to merge 1 commit into
fivetaku:mainfrom
OKEUNSOO:feat/korean-signals

Conversation

@OKEUNSOO

@OKEUNSOO OKEUNSOO commented Jul 7, 2026

Copy link
Copy Markdown

문제

classify_task.py에는 한국어 키워드(간단히/끝까지/배포/버그…)가 이미 들어 있지만, finish-the-work.shrouter.sh는 영어 패턴만 검사합니다. 그래서 한국어로 진행되는 세션에서는 두 훅이 아예 발화하지 않습니다:

  1. 어시스턴트가 "이제 수정하겠습니다."라고 말만 하고 턴을 끝내도 — 영어라면 "Let me fix it now"로 잡혔을 상황 — promise 가드가 통과시킵니다.
  2. 사용자가 "이 버그고쳐줘"라고 해도 investigation-protocol 팩이 주입되지 않습니다. "debug this"였다면 주입됐을 프롬프트인데요.

(재밌게도 finish-the-work.sh의 기존 주석엔 이미 "(English + Korean)"이라고 적혀 있었어요 — 이 PR이 그 주석을 사실로 만듭니다.)

변경 내용

hooks/finish-the-work.sh — 기존 영어 정규식은 promise_en으로 그대로 두고 promise_ko를 추가:

  • 약속 종결 패턴: (이제|이어서|다음으로|곧|바로)?…(하겠습니다|할게요|하겠어요|진행하겠|시작하겠|작성하겠|만들겠|실행하겠|수정하겠|저장하겠)
  • asks-user 허용 목록에 한국어 질문 종결 추가: 할까요|괜찮을까|어떻게 할|어느 것|선택해

hooks/router.sh — 두 case 블록에 한국어 시그널 추가:

  • 디버깅 → investigation: 버그|에러|오류|디버그|고쳐|안 돼|안돼|트레이스백|실패|죽
  • 렌더 산출물 → grounding: 화면|렌더|차트|슬라이드|웹페이지|미리보기

오탐이 늘지 않는 이유 (설계 노트)

과거형 오탐 — "수정습니다"(완료 보고)를 약속으로 잡는 것 — 이 가장 걱정되실 텐데, 한국어에서는 별도 부정 조건 없이 구조적으로 배제됩니다. 약속 패턴이 전부 미래/의지 어미 "-겠-"을 포함하는데, 이 형태소는 과거형 활용에는 나타나지 않기 때문입니다. 형태론이 시제 구분을 공짜로 해주는 셈입니다.

기존 안전장치는 전부 유지됩니다: 마지막 400자만 검사, 도구 호출로 끝난 턴 제외, stop_hook_active 루프 가드, v2.1.1의 transcript_path 검증.

테스트

합성 트랜스크립트로 수정본 훅을 직접 실행해 확인했습니다:

# 시나리오 기대 결과
1 "…이제 수정하겠습니다." (텍스트만) block block ✅
2 "…완료했습니다. 결과는 위와 같습니다." pass pass ✅
3 "…진행하겠습니다. 괜찮을까요?" pass (질문) pass ✅
4 "Let me fix the parser now." (영어 회귀) block block ✅
5 프롬프트 "이 버그 좀 고쳐줘" investigation 팩 주입
6 프롬프트 "차트 만들어줘" grounding 팩 주입
7 프롬프트 "debug this crash" (영어 회귀) investigation 팩 주입
8 프롬프트 "안녕" (무관) 무발화

bash -n 통과. 07-04부터 한국어화 로컬 포크로 실제 세션에 붙여 운영 중이며, 위 block/pass 동작이 실전에서도 동일하게 재현됩니다.

🤖 Generated with Claude Code

…er.sh

classify_task.py already ships Korean keywords, but the promise guard
and the pack router matched English only, so both hooks never fired in
Korean-language sessions.

- finish-the-work.sh: Korean promise endings (…하겠습니다/할게요/…).
  Past tense is excluded by construction — the Korean future/intent
  morpheme -겠- never appears in past-tense forms. Korean question
  endings added to the asks-user allowlist.
- router.sh: Korean debugging and render-artifact signals.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants