storelistinglisted
Install: claude install-skill snwlee/Nereus
# storelisting
nereus:common 규칙을 따른다. 담당 에이전트: l10n-engineer.
제품이 사용자에게 닿는 표면은 셋인데, 지금까지 검사받은 건 하나뿐이었다:
| 표면 | 누가 보나 |
|---|---|
| 소스 코드 문자열 | `nereus-l10n:l10n` |
| **스토어 등재 텍스트**(제목·설명·패치노트) | **여기** |
| **스토어 이미지 안의 텍스트** | 여기 + `typeface` |
## 0. 이 스킬에는 게이트와 조언자가 따로 있다
| | 게이트 `store-l10n-check.mjs` | 조언자 `aso-advisor.mjs` |
|---|---|---|
| 낸다 | `violations` · `coverage` · `skipped` | `levers` · `unanswerable` |
| 뜻 | 선언과 실제가 어긋났다 | 어디를 먼저 채울까 |
`Ruling: 게이트와 조언자는 파일을 나눈다.` "잘린 채 발행됨"과 "브라질을 먼저 채우면
좋겠음"이 같은 무게로 나오면 진짜가 묻힌다.
## 1. 미달은 위반이 아니다
**요구 집합(Play 86) 대비 진행 상태는 `coverage` 이고, 위반은 선언과 실제가 어긋난 것뿐이다.**
| | 판정 |
|---|---|
| 요구 집합 중 안 채운 로케일 | `coverage.missing` — **위반 아님** |
| **선언한** 로케일인데 필드가 빈 것 | `declared-but-empty` — **위반** |
| 전 로케일 동일 문자열인데 사유 선언 없음 | `untranslated-undeclared` — **위반** |
미달을 위반으로 내면 운영 중인 제품 전부가 즉시 빨개진다. **그러면 사람이 게이트를 끄고,
꺼진 게이트는 아무것도 막지 못한다.** ToonTone 461:0 의 교훈이다.
**미설정은 보호다.** 대상 로케일을 선언하지 않으면 요구 집합이 **스토어 전체**가 된다.
선언 없음을 "영어만 하면 된다"로 읽으면 조용히 최악으로 떨어진다.
**제외는 삭제가 아니라 분류다.** `excluded: [{ locale, why }]` 로 빼면 `skipped` 에
셈과 이유가 남고 요구 집합에서 빠진다. **`why` 가 없으면 제외가 아니다** —
왜 뺐는지 모르면 되돌릴 수도 없다.
## 2. 번역하지 않기로 한 것은 선언한다 — 이 스킬의 핵심
**하네스는 번역할지 말지를 정하지 않는다.** 필드마다 답이 다르고 그건 사업 판단이다:
- **앱 이름은 검색 키워드다.** 번역하면 그 키워드로 오던 유입이 끊긴다.
도너(19 로케일 실운영)는 제목을 전 로케일 동일하게 두는 쪽을 **일부러** 골랐다.
- **설명문·패치노트는 번역하지 않으면 전환이 깎인다.**
하네스가 강제하는 것은 하나뿐 — **판단이 이유와 함께 기록에 남는 것**이다.
```json
"doNotTranslate": [
{ "field": "title", "why": "앱 이름이 검색 키워드다. 번역