korean-prose · diff

git:20260820.8f0fbf5 to git:20261022.6e98dee

58 added, 13 removed. Audit A to A.

---
name: korean-prose
- description: 자연스럽고 일관된 한국어 산문을 작성하거나 교정합니다. 커밋과 PR 본문, README와 기술 문서, UI 문구, 여러 줄 코드 주석이 대상입니다. "한국어로 써 줘", "말투를 고쳐 줘", "PR 본문을 작성해 줘", "번역투를 없애 줘" 같은 요청과 한국어 산문을 새로 쓰거나 다듬는 모든 상황에서 사용합니다. 짧은 한 줄 주석과 변수명에는 사용하지 않습니다.
+ description: 자연스럽고 일관된 한국어 산문을 작성하거나 교정합니다. 커밋과 PR 본문, README와 기술 문서, i18n 다국어 문구와 UI 문구, 에러 메시지, 여러 줄 코드 주석이 대상입니다. "한국어로 써 줘", "말투를 고쳐 줘", "PR 본문을 작성해 줘", "번역투를 없애 줘", "i18n 문구를 다듬어 줘" 같은 요청과 한국어 산문을 새로 쓰거나 다듬는 모든 상황에서 사용합니다. 짧은 한 줄 주석과 변수명에는 사용하지 않습니다.
---
한국어 산문을 작성하기 전에 적용할 문체 규약을 확인하세요.
1. 현재 작업 디렉터리에 `docs/korean-style.md`가 있으면 해당 규약을 우선 적용하세요.
2. 저장소 규약이 없으면 [기본 문체 규약](references/style.md)을 적용하세요.
3. 한 문서 안에서 해요체와 습니다체를 섞지 마세요.
+ ## 코드 및 로직 관련 문장 리서치
+
+ 코드 안에서 사용되거나 코드 및 로직과 맞물려 있는 문장(예: i18n 다국어 문구, UI 컴포넌트 텍스트,
+ 에러 및 유효성 검증 메시지, CLI 출력, 여러 줄 주석, 코드 변경을 설명하는 기술 문서와 PR 본문)을
+ 작성하거나 수정할 때는 문장만 단독으로 넘기지 마세요. `scripts/prose.ts`를 호출하기 전에
+ 저장소에서 아래 맥락을 먼저 조사해 함께 전달하세요.
+
+ 1. **실제 사용 위치와 UI 요소 확인**: 해당 문구나 i18n 키, 상수가 실제로 호출되거나 렌더링되는
+ 컴포넌트와 함수 위치를 검색하세요. 버튼 라벨, 모달 제목과 본문, 토스트 알림, 입력창 하단
+ 오류, 빈 화면 안내 중 어디에 표시되는지 파악해 `--medium`에도 구체적으로 지정하세요.
+ 2. **발생 조건과 전후 동작 파악**: 어떤 분기 조건(권한 부족, 네트워크 실패, 입력값 초과, 저장
+ 완료 등)에서 노출되는 문구인지, 사용자가 직전에 무엇을 했고 직후에 어떤 행동을 해야 하는지
+ 코드 로직을 확인하세요.
+ 3. **보간 변수와 단위 확인**: `{name}`, `{count}`, `%s`, `${limit}` 같은 플레이스홀더에 실제로
+ 어떤 값과 단위가 들어가는지 확인하세요. 들어가는 값에 따라 조사와 서술어가 자연스럽게
+ 이어져야 합니다.
+ 4. **주변 문구와 용어 통일**: 같은 화면이나 인접한 i18n 키에서 이미 사용 중인 용어, 호칭, 어미
+ 형태(해요체, 습니다체, 명사형)를 수집해 일관성을 유지하세요.
+
## Gemini로 초고 받기
- 번역투를 교정하거나 긴 산문을 작성할 때는 이 스킬 폴더의 `scripts/prose.ts`를 실행하세요.
- 스크립트 경로는 이 `SKILL.md`의 위치를 기준으로 정하고, 현재 작업 디렉터리는 대상 저장소로
- 지정하세요.
+ 번역투를 교정하거나 산문을 작성할 때는 이 스킬 폴더의 `scripts/prose.ts`를 실행하세요. 스크립트
+ 경로는 이 `SKILL.md`의 위치를 기준으로 정하고, 현재 작업 디렉터리는 대상 저장소로 지정하세요.
```bash
node <skill-directory>/scripts/prose.ts --medium 'GitHub PR 본문' "이 변경의 PR 본문"
git diff --stat | node <skill-directory>/scripts/prose.ts --medium 'GitHub PR 본문' "이 변경의 PR 본문"
+
+ # 코드 및 i18n 문구를 수정할 때는 리서치한 사용 위치 예제와 주변 맥락을 표준 입력으로 함께 전달하세요.
+ cat <<'EOF' | node <skill-directory>/scripts/prose.ts --medium '결제 실패 토스트 알림' "payment.error.limit_exceeded 문구를 자연스럽게 다듬어 줘"
+ [원본 i18n]
+ "payment.error.limit_exceeded": "일일 한도({limit}원)에 의해 결제가 거부되었습니다."
+
+ [사용 위치: src/features/checkout/PaymentForm.tsx]
+ if (error.code === 'DAILY_LIMIT_EXCEEDED') {
+ toast.error(t('payment.error.limit_exceeded', { limit: formatCurrency(error.dailyLimit) }));
+ }
+
+ [인접한 i18n 문구]
+ "payment.error.expired_card": "유효기간이 지난 카드예요. 다른 카드를 선택해 주세요."
+ EOF
```
- - 인자에는 작성 요청을, 표준 입력에는 참고 자료를 전달하세요.
- - `--medium` 옵션에는 `GitHub PR 본문`, `앱 내 안내 팝업`, `버튼 이름`, `SNS 스레드`,
- `내부 개발 문서`처럼 실제 출력 매체를 지정하세요.
+ - 인자에는 작성 요청을, 표준 입력에는 리서치한 코드 사용 예제와 참고 자료를 전달하세요.
+ - `--medium` 옵션에는 `GitHub PR 본문`, `회원 탈퇴 확인 모달 본문`, `결제 실패 토스트 알림`,
+ `버튼 이름`, `SNS 스레드`, `내부 개발 문서`처럼 실제 출력 매체와 UI 자리를 구체적으로
+ 지정하세요.
+ - `openrouter`와 `google-ai-studio` 제공자를 사용할 때는 `prose.ts`에 저장소 탐색용 읽기 전용
+ 도구(`search_code`, `read_file`, `list_files`)가 내장되어 있어, Gemini가 필요할 때 현재 작업
+ 디렉터리에서 i18n 키의 사용 위치나 주변 코드를 추가로 조회할 수 있습니다. 도구 호출을 끄려면
+ `--no-tools` 옵션을 지정하세요.
- 기본 제공자는 OpenRouter이며 `OPENROUTER_API_KEY`가 필요합니다.
- Google AI Studio를 직접 사용하려면 `--provider google-ai-studio`와 `GEMINI_API_KEY`를
사용하세요. 빠르고 저렴한 초고에는 기본값인 `gemini-3.5-flash-lite`를 사용하고, 더 높은
품질이 필요하면 `--model gemini-3.7-flash`를 지정하세요.
- `KOREAN_PROSE_PROVIDER`와 `KOREAN_PROSE_MODEL` 환경변수로 기본 제공자와 모델을 바꿀 수
있습니다. 명령줄의 `--provider`와 `--model`이 환경변수보다 우선합니다.
- 선택한 제공자의 API 키나 CLI 로그인이 준비되지 않았다면 작업을 멈추고 설정 방법을
안내하세요.
- 짧은 한 줄 주석이나 변수명처럼 도구를 실행하는 비용이 더 큰 작업은 직접 처리하세요.
### Antigravity 사전 동의
Antigravity는 [추가 약관](https://antigravity.google/terms)상 제3자 제품이나 도구와 연결해
사용하는 행위로 해석될 수 있으며, 계정 제한이나 정지 위험이 있습니다. 작성 요청, 표준 입력의
참고 자료와 적용되는 문체 규약이 Google에 전송되고, 상호작용이 저장되거나 검토될 수 있습니다.
`--provider antigravity`를 실행하기 직전에 다음 절차를 지키세요.
1. 사용자에게 약관 위험과 Google에 전송되는 범위를 알리세요.
2. 이번 한 번의 실행을 진행해도 되는지 명시적으로 물으세요.
3. 사용자가 위험을 확인하고 진행에 명확히 동의한 경우에만
`--accept-antigravity-risk`를 추가해 실행하세요.
4. 제공자를 Antigravity로 지정한 요청, 이전 실행에서 받은 동의, 환경변수나 저장된 설정을
현재 실행의 동의로 간주하지 마세요.
5. 사용자가 답하지 않거나 동의하지 않으면 실행하지 말고 OpenRouter 또는 Google AI Studio를
안내하세요.
로그인된 Antigravity CLI를 사용할 때의 기본 모델은 `gemini-3.6-flash-low`이며, 사용 가능한
모델은 `agy models`로 확인할 수 있습니다. `--accept-antigravity-risk`는 약관 준수를 보장하지
않으며, 위험 고지와 일회성 동의를 강제하는 확인 장치입니다.
## 결과 검증
출력 결과는 초고로만 활용하세요. 모델이 저장소의 파일 경로, 줄 수, 동작을 지어낼 수 있으므로
- 원본 자료와 대조하여 사실관계를 확인하세요. 숫자와 고유명사도 함께 검증하세요.
+ 원본 자료와 대조하여 사실관계를 확인하세요. 숫자와 고유명사, 코드 내 플레이스홀더(`{name}`,
+ `%s` 등)가 누락되거나 바뀌지 않았는지도 함께 검증하세요.
- - 입력과 참고 자료로 뒷받침되지 않은 주장, 수치, 출처를 추가하지 않았는지 확인하세요.
- - 과장된 의미 부여, 홍보성 수식어, 출처가 모호한 표현이 남아 있지 않은지 확인하세요.
- - 내용 없는 꼬리 문장이나 요청하지 않은 전망, 도전 과제, 결론을 덧붙이지 않았는지 확인하세요.
- - 상투적인 병렬 구조, 기계적인 세 항목 나열, 과도한 볼드체와 기호가 없는지 확인하세요.
- - UI 문구는 사실 중심 원칙을 지키면서도 사용자에게 필요한 친절함을 유지하세요.
+ - 입력과 참고 자료로 뒷받침되지 않은 주장, 수치, 출처, 임의의 담당 주체를 추가하지 않았는지
+ 확인하세요.
+ - 주어가 빠져 수행 주체가 모호해지지 않았는지, 앞 문장에 대상이 없는 지시어(`그 기준`, `이를
+ 통해` 등)로 내용을 건너뛰지 않았는지 확인하세요.
+ - `단순히 A가 아니라 B다`, `A보다 B에 가깝다` 같은 불필요한 대조 구문이나 내용 없는 선언형
+ 문장(`핵심은 분명합니다`, `중요한 것은 ~입니다`)이 남아 있지 않은지 확인하세요.
+ - `~를 함께 봅니다` 같은 모호한 포괄 동사, `결을 살리다`나 `밀도를 더하다` 같은 추상어 조합,
+ 지나치게 사전적인 한자어 합성어의 반복이 없는지 확인하세요.
+ - 관계 설명 없는 기계적인 세 항목 나열, 조사와 어미를 떼어내고 명사만 붙여 쓴 어색한 간결체,
+ 과도한 볼드체와 기호가 없는지 확인하세요.
+ - UI 문구는 실제 표시되는 화면 자리와 전후 흐름에 맞으면서도 사용자에게 필요한 친절함을
+ 유지하는지 확인하세요.
em-dash나 en-dash가 포함되어 있으면 그대로 출력하지 마세요. 공백 하이픈, 쉼표, 콜론으로
고친 뒤 다시 검증하세요.