[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PDHTMN0XHFGMCBK110N41X":3,"skill-same:01M6PDHTMN0XHFGMCBK110N41X":95},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":44,"ownerHtmlUrl":45,"ownerBlogUrl":46,"ownerDescription":47,"updatedAt":48,"install":49,"resources":62},"01M6PDHTMN0XHFGMCBK110N41X","ko-natural",null,"사람이 읽을 한국어 텍스트를 자연스럽게 생성·교정한다. 한국어로 된 요약, 앱 UI 카피, 푸시·알림 문구, 이메일, 보고서, 제품에 들어갈 텍스트 데이터를 생성할 때, 또는 기존 한국어 텍스트가 \"어색하다\", \"번역투다\", \"AI 티가 난다\", \"자연스럽게 고쳐줘\"라는 요청이 있을 때 반드시 사용한다. LLM 파이프라인용 한국어 프롬프트를 만들 때도 사용한다(export 스크립트). 사용자가 자연스러움을 명시하지 않아도, 두세 문장 이상의 사용자 대상 한국어 텍스트를 만들 때는 이 스킬을 적용한다. 단, 본문의 '발동 수위'에 따라 가벼운 텍스트는 원칙만 적용하고 파일 읽기·린트를 생략한다.","douinc\u002Fagent-skills","douinc","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F104253814?v=4","01M6PDGX2D777TNA7NETDKDHCW","dou inc.","01M6PDGX6QMFW72GNMX59GKN6P",1,"MIT","https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Fko-natural\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[24,25,26,27,28,29,30],"ko","ko natural","dev","ui","export","한국어","텍스트","2026-11-10 10:12:30",false,"---\nname: ko-natural\ndescription: \"사람이 읽을 한국어 텍스트를 자연스럽게 생성·교정한다. 한국어로 된 요약, 앱 UI 카피, 푸시·알림 문구, 이메일, 보고서, 제품에 들어갈 텍스트 데이터를 생성할 때, 또는 기존 한국어 텍스트가 \\\"어색하다\\\", \\\"번역투다\\\", \\\"AI 티가 난다\\\", \\\"자연스럽게 고쳐줘\\\"라는 요청이 있을 때 반드시 사용한다. LLM 파이프라인용 한국어 프롬프트를 만들 때도 사용한다(export 스크립트). 사용자가 자연스러움을 명시하지 않아도, 두세 문장 이상의 사용자 대상 한국어 텍스트를 만들 때는 이 스킬을 적용한다. 단, 본문의 '발동 수위'에 따라 가벼운 텍스트는 원칙만 적용하고 파일 읽기·린트를 생략한다.\"\nmetadata:\n  author: develinu\n  email: dev@dou.so\n  version: \"1.1.0\"\n---\n\n# ko-natural — 자연스러운 한국어 생성·교정\n\n## 왜 필요한가\n\nLLM 한국어는 두 방향으로 어긋난다. 첫째 **번역투** — 다국어 모델은 영어 중심 표상에서 한국어를 생성하므로 \"~에 대해\", \"~를 통해\", 이중피동, 소유격 대명사 남용, 명사화(\"검토를 진행하다\") 같은 직역 흔적이 남는다. 둘째 **GPT체** — 정렬 과정에서 보상받은 장황함, 헤징(\"~할 수 있습니다\" 연발), 상투구(\"중요한 역할을 합니다\"), 과잉 격식이 기본값이 된다. 이 스킬은 두 가지를 규칙 사전 + 자동 린트로 잡는다.\n\n## 발동 수위 — 먼저 결정하라\n\n참조 읽기와 린트 왕복은 과제 크기와 무관한 고정비다(대화 한 줄에도 같은 비용이 든다). 텍스트의 노출도에 맞는 수위를 먼저 고른다:\n\n- **0단계 — 원칙만 (파일 읽기·린트 없음).** 대화 응답, 2~3문장 내부 메모, 일회성 초안. 아래 핵심 원칙 8을 기억으로 적용하고 끝. 이 문서(SKILL.md)만으로 충분하며 references를 열지 않는다.\n- **1단계 — 표준 (린트 최대 2회).** 사용자에게 전달되는 결과물: 요약, 푸시, 이메일, 문서 단락. examples.md의 **해당 타입 섹션만** 읽고, 초안 → 린트 → 수정 → 재린트로 종료.\n- **2단계 — 전체.** 대량 생성(같은 유형 N건), 고노출 카피(온보딩·결제·릴리스 노트), 사용자가 품질을 명시 요구할 때. 축 플래그 전부 + 필요시 예시 추가 참조.\n- **배치 규칙.** 여러 건을 만들 땐 한 파일에 모아 린트 1회로 검사한다 — 고정비를 N으로 나누는 유일한 방법.\n\n읽기 금지 목록: `patterns.md`와 `lint.py` 소스는 읽지 않는다(린트 실행이 그 내용을 대신 적용한다). `patterns.json`도 직접 읽지 않는다 — 사전에 패턴을 추가할 때만 연다.\n\n## 작업 순서 (1단계 이상)\n\n1. **텍스트 타입 판별** — 아래 표에서 스펙 확인. 애매하면 독자와 매체(앱 화면? 메일함? 문서?)로 판단.\n2. **초안 작성** — 핵심 원칙(아래) 적용. 1단계 이상이면 해당 타입의 Before\u002FAfter 예시를 `references\u002Fexamples.md`에서 먼저 읽는다.\n3. **린트 실행** — 초안을 파일로 저장하고 `\u003C스킬 디렉터리>`(이 SKILL.md가 있는 곳)의 스크립트를 절대 경로로 실행한다:\n   ```bash\n   python3 \u003C스킬 디렉터리>\u002Fscripts\u002Flint.py 초안.txt --type push            # 타입 기본값(레지스터·어투·줄 길이) 자동 적용\n   python3 \u003C스킬 디렉터리>\u002Fscripts\u002Flint.py 초안.txt --profile retriever-push\n   python3 \u003C스킬 디렉터리>\u002Fscripts\u002Flint.py 초안.txt --type doc --tone 합니다체 --lexicon easy   # 축 오버라이드\n   ```\n   변수가 들어간 문구(`{count}` 등)는 실제 길이에 가까운 값으로 치환한 사본을 린트한다.\n4. **수정** — error는 전부 해소, warn은 맥락 판단(의도된 표현이면 유지 가능 — 예: 장소를 말하는 '근처에 있어서'는 T18 경고를 무시). 수정 후 재실행해 error 0 확인.\n5. **의미 보존·소리 내어 읽기** — 원문 정보가 빠지지 않았는지 대조하고, 소리 내 읽어 본다. 린트가 못 잡는 실패: 명사 나열('안 본 저장'), 현황판 말투('마지막 저장은 X'), 명사구 전보문('이동.', '끝.'), 짧은 문장만 이어지는 통보문.\n\n린트를 건너뛰지 않는다. 산문 규칙은 긴 컨텍스트에서 잊히지만 린트는 결정적으로 잡아낸다 — 이 스킬의 신뢰성은 3~4단계 루프에서 나온다.\n\n길이·어투 검증을 손으로 반복하지 마라. `--type`이 타입별 줄 길이·어투를 검사한다(`--max-line`·`--tone` 등으로 덮어쓰기). 초안 → 린트 → 수정 → 린트, 두 번 실행으로 끝내는 것이 정상 경로다.\n\n## 핵심 원칙 8\n\n1. **동사로 말하라.** 한국어는 동사 중심 언어다. \"검토를 진행하다\" → \"검토하다\", \"제공합니다\" → \"드려요\u002F줘요\". 명사를 겹쳐 쓰지 말고 풀어 쓴다: '안 본 저장 5개' → '저장해 두고 안 본 5개'.\n2. **대명사·소유격은 기본 생략.** \"당신의 저장함에서 그것을\" → \"저장함에서\". 반복되는 \"그것\u002F이것\"은 번역 흔적.\n3. **능동이 기본.** \"~에 의해 개발되었다\" → \"~이 개발했다\". 이중피동(보여지다, 되어지다)은 무조건 오류.\n4. **짧은 고유어가 이긴다** (앱·일상 레지스터). 수령→받다, 금일→오늘, 용이하다→쉽다. 단, 문서·격식 레지스터에서는 한자어 허용.\n5. **종결어미 하나로 통일.** 합니다체·해요체·다체·명사형 중 타입 스펙이 지정한 하나만.\n6. **헤징과 상투구를 지워라.** \"~할 수 있습니다\" 연발, \"중요한 역할\", \"다양한\", \"물론입니다\" — 구체적 사실·숫자로 대체한다. **사실은 입력에서만 가져온다**: 없는 숫자·이유·이름은 지어내지 말고 변수(`{count}`)나 `[확인 필요]`로 남겨 묻는다. 변수가 보장하지 않는 상태도 전제하지 않는다('최근 저장'을 '안 본 것'처럼 쓰지 않기). 원문에 있던 정보는 막연해도(\"내부 사정\") 지우지 않는다 — 교정은 표현을 고치는 일이다.\n7. **문장당 정보 하나.** 관형절 3겹, 80자 넘는 문장은 분리. 단, 짧은 문장만 연달아 끊으면 통보문처럼 차가워진다 — 이어지는 두 정보는 연결어미로 잇는다.\n8. **메타 담화 금지.** \"이 영상은 ~를 소개하고 있습니다\"처럼 내용을 소개한다고 말하지 말고 내용을 말하라. \"요약하자면\u002F결론적으로\"도 짧은 글에선 삭제.\n\n## 텍스트 타입 (프리셋) + 오버라이드 축\n\n타입이 기본값을 정하고, 요청에 따라 축 3개를 오버라이드한다. 무효 조합(카드 필드에 해요체 등)을 만들지 않으려면 타입 기본값에서 출발할 것.\n\n| 타입 | 기본 어투 | 길이 | 규칙 |\n|---|---|---|---|\n| 요약(카드·3줄) | '~다'체 문장(제품 말투가 있으면 그것) | 줄당 ≤45자 | 메타 문장 금지. **첫 줄은 이름 + 무엇 + 왜 좋은지** ('uv는 pip보다 10~100배 빠른 Python 패키지 매니저다') — 이름을 빼면 검색으로 못 찾고, 분류만으로는 저장할 이유가 안 보인다. 줄마다 완결된 문장으로 쓰고, 관련된 두 정보는 연결어미로 이어도 된다. 명사구+마침표('이동.')는 전보문처럼 읽힌다 |\n| UI 라벨·카드 필드 | 명사형(\"저장됨\") | ≤20자 | 마침표 없음, '해당·정보·목록' 군더더기 금지 |\n| 푸시·알림 | 해요체 | 1~2문장, 합계 ≤45자 | 현황만 알리지 말고 할 일 하나를 권한다. 숫자는 데이터에 있는 것만(없으면 변수로), \"~하시기 바랍니다\" 금지 |\n| 업무 이메일 | 합니다체(요청은 '~해 주세요' 허용) | — | 용건 먼저, 사과는 그 바로 뒤에. 이유는 아는 만큼 구체적으로(모르면 묻고, 원문의 사유는 지우지 않는다). 상투 서두·결구 금지 |\n| 문서·보고서 | '~다'체 | 문장 ≤80자 | 개조식\u002F서술식 혼용 금지, 판단·수치 명시 |\n\n**오버라이드 축** — 사용자 요청에서 신호를 읽어 적용하고, 린트 플래그로 검증한다:\n\n- **어투(tone)**: 해요체 | 합니다체 | 다체 | 명사형 → `lint.py --tone 해요체` (위반 = error)\n- **어휘(lexicon)**: easy(비전문가 — 한자어·전문용어 풀어쓰기, 문장 ≤60자) | normal | expert(실무자 — 전문용어 원어 유지, 풀어쓰기 금지) → `lint.py --lexicon easy`\n- **길이(length)**: 요약 계열에서 1line | 3line | paragraph\n\n\"비개발자도 이해하게\", \"쉽게 설명\" → lexicon easy. \"개발자용\", \"전문용어 그대로\" → lexicon expert. 자주 쓰는 조합은 `references\u002Fprofiles.json`에 명명 프로필로 저장돼 있다(retriever-push, ax-workshop-material 등). 새 프로젝트가 생기면 프로필을 추가하라.\n\n## 리소스\n\n- `references\u002Fpatterns.json` — 금칙·대체 사전(성장형, 린트가 읽음). 카테고리: 번역투(T)·GPT체(G)·형태(M)·어휘(L)·쉬운 어휘(E). 패턴마다 `tests`(걸려야 할\u002F걸리면 안 될 예문)가 있다\n- `references\u002Fprofiles.json` — 타입별 기본값(`types`, lint·export의 단일 출처)과 명명 프로필(타입+축 조합). 프로필은 프로젝트별로 추가\n- `references\u002Fpatterns.md` — 사전 해설: 각 카테고리가 왜 부자연스러운지, 대표 사례\n- `references\u002Fexamples.md` — 타입별 Before\u002FAfter 골든 예시. **생성 전에 해당 타입 섹션을 읽을 것**\n- `references\u002Fmaintenance.md` — 사전 성장 루프(패턴 추가·오탐 수정)와 외부 파이프라인 적용(export) 안내\n- `scripts\u002Flint.py` — 자동 검사(stdlib만 사용). `--type`\u002F`--profile`로 타입 기본값 적용, `--json`으로 채점·자동화 연동, `--selftest`로 사전 회귀 검사\n- `scripts\u002Fexport.py` — 외부 LLM 파이프라인용 시스템 프롬프트 블록 추출: `python3 \u003C스킬 디렉터리>\u002Fscripts\u002Fexport.py --profile retriever-push`\n\n## 유지보수·외부 파이프라인\n\n- 사용자가 어색하다고 지적한 표현을 사전에 넣거나 오탐을 고칠 때 → `references\u002Fmaintenance.md`의 '사전 성장 루프'를 먼저 읽는다.\n- 외부 LLM 파이프라인(예: 제품의 요약 생성)에 넣을 프롬프트가 필요할 때 → 같은 파일의 '외부 파이프라인 적용'을 읽고 `scripts\u002Fexport.py`를 쓴다.\n","# ko-natural — 자연스러운 한국어 생성·교정\n\n## 왜 필요한가\n\nLLM 한국어는 두 방향으로 어긋난다. 첫째 **번역투** — 다국어 모델은 영어 중심 표상에서 한국어를 생성하므로 \"~에 대해\", \"~를 통해\", 이중피동, 소유격 대명사 남용, 명사화(\"검토를 진행하다\") 같은 직역 흔적이 남는다. 둘째 **GPT체** — 정렬 과정에서 보상받은 장황함, 헤징(\"~할 수 있습니다\" 연발), 상투구(\"중요한 역할을 합니다\"), 과잉 격식이 기본값이 된다. 이 스킬은 두 가지를 규칙 사전 + 자동 린트로 잡는다.\n\n## 발동 수위 — 먼저 결정하라\n\n참조 읽기와 린트 왕복은 과제 크기와 무관한 고정비다(대화 한 줄에도 같은 비용이 든다). 텍스트의 노출도에 맞는 수위를 먼저 고른다:\n\n- **0단계 — 원칙만 (파일 읽기·린트 없음).** 대화 응답, 2~3문장 내부 메모, 일회성 초안. 아래 핵심 원칙 8을 기억으로 적용하고 끝. 이 문서(SKILL.md)만으로 충분하며 references를 열지 않는다.\n- **1단계 — 표준 (린트 최대 2회).** 사용자에게 전달되는 결과물: 요약, 푸시, 이메일, 문서 단락. examples.md의 **해당 타입 섹션만** 읽고, 초안 → 린트 → 수정 → 재린트로 종료.\n- **2단계 — 전체.** 대량 생성(같은 유형 N건), 고노출 카피(온보딩·결제·릴리스 노트), 사용자가 품질을 명시 요구할 때. 축 플래그 전부 + 필요시 예시 추가 참조.\n- **배치 규칙.** 여러 건을 만들 땐 한 파일에 모아 린트 1회로 검사한다 — 고정비를 N으로 나누는 유일한 방법.\n\n읽기 금지 목록: `patterns.md`와 `lint.py` 소스는 읽지 않는다(린트 실행이 그 내용을 대신 적용한다). `patterns.json`도 직접 읽지 않는다 — 사전에 패턴을 추가할 때만 연다.\n\n## 작업 순서 (1단계 이상)\n\n1. **텍스트 타입 판별** — 아래 표에서 스펙 확인. 애매하면 독자와 매체(앱 화면? 메일함? 문서?)로 판단.\n2. **초안 작성** — 핵심 원칙(아래) 적용. 1단계 이상이면 해당 타입의 Before\u002FAfter 예시를 `references\u002Fexamples.md`에서 먼저 읽는다.\n3. **린트 실행** — 초안을 파일로 저장하고 `\u003C스킬 디렉터리>`(이 SKILL.md가 있는 곳)의 스크립트를 절대 경로로 실행한다:\n   ```bash\n   python3 \u003C스킬 디렉터리>\u002Fscripts\u002Flint.py 초안.txt --type push            # 타입 기본값(레지스터·어투·줄 길이) 자동 적용\n   python3 \u003C스킬 디렉터리>\u002Fscripts\u002Flint.py 초안.txt --profile retriever-push\n   python3 \u003C스킬 디렉터리>\u002Fscripts\u002Flint.py 초안.txt --type doc --tone 합니다체 --lexicon easy   # 축 오버라이드\n   ```\n   변수가 들어간 문구(`{count}` 등)는 실제 길이에 가까운 값으로 치환한 사본을 린트한다.\n4. **수정** — error는 전부 해소, warn은 맥락 판단(의도된 표현이면 유지 가능 — 예: 장소를 말하는 '근처에 있어서'는 T18 경고를 무시). 수정 후 재실행해 error 0 확인.\n5. **의미 보존·소리 내어 읽기** — 원문 정보가 빠지지 않았는지 대조하고, 소리 내 읽어 본다. 린트가 못 잡는 실패: 명사 나열('안 본 저장'), 현황판 말투('마지막 저장은 X'), 명사구 전보문('이동.', '끝.'), 짧은 문장만 이어지는 통보문.\n\n린트를 건너뛰지 않는다. 산문 규칙은 긴 컨텍스트에서 잊히지만 린트는 결정적으로 잡아낸다 — 이 스킬의 신뢰성은 3~4단계 루프에서 나온다.\n\n길이·어투 검증을 손으로 반복하지 마라. `--type`이 타입별 줄 길이·어투를 검사한다(`--max-line`·`--tone` 등으로 덮어쓰기). 초안 → 린트 → 수정 → 린트, 두 번 실행으로 끝내는 것이 정상 경로다.\n\n## 핵심 원칙 8\n\n1. **동사로 말하라.** 한국어는 동사 중심 언어다. \"검토를 진행하다\" → \"검토하다\", \"제공합니다\" → \"드려요\u002F줘요\". 명사를 겹쳐 쓰지 말고 풀어 쓴다: '안 본 저장 5개' → '저장해 두고 안 본 5개'.\n2. **대명사·소유격은 기본 생략.** \"당신의 저장함에서 그것을\" → \"저장함에서\". 반복되는 \"그것\u002F이것\"은 번역 흔적.\n3. **능동이 기본.** \"~에 의해 개발되었다\" → \"~이 개발했다\". 이중피동(보여지다, 되어지다)은 무조건 오류.\n4. **짧은 고유어가 이긴다** (앱·일상 레지스터). 수령→받다, 금일→오늘, 용이하다→쉽다. 단, 문서·격식 레지스터에서는 한자어 허용.\n5. **종결어미 하나로 통일.** 합니다체·해요체·다체·명사형 중 타입 스펙이 지정한 하나만.\n6. **헤징과 상투구를 지워라.** \"~할 수 있습니다\" 연발, \"중요한 역할\", \"다양한\", \"물론입니다\" — 구체적 사실·숫자로 대체한다. **사실은 입력에서만 가져온다**: 없는 숫자·이유·이름은 지어내지 말고 변수(`{count}`)나 `[확인 필요]`로 남겨 묻는다. 변수가 보장하지 않는 상태도 전제하지 않는다('최근 저장'을 '안 본 것'처럼 쓰지 않기). 원문에 있던 정보는 막연해도(\"내부 사정\") 지우지 않는다 — 교정은 표현을 고치는 일이다.\n7. **문장당 정보 하나.** 관형절 3겹, 80자 넘는 문장은 분리. 단, 짧은 문장만 연달아 끊으면 통보문처럼 차가워진다 — 이어지는 두 정보는 연결어미로 잇는다.\n8. **메타 담화 금지.** \"이 영상은 ~를 소개하고 있습니다\"처럼 내용을 소개한다고 말하지 말고 내용을 말하라. \"요약하자면\u002F결론적으로\"도 짧은 글에선 삭제.\n\n## 텍스트 타입 (프리셋) + 오버라이드 축\n\n타입이 기본값을 정하고, 요청에 따라 축 3개를 오버라이드한다. 무효 조합(카드 필드에 해요체 등)을 만들지 않으려면 타입 기본값에서 출발할 것.\n\n| 타입 | 기본 어투 | 길이 | 규칙 |\n|---|---|---|---|\n| 요약(카드·3줄) | '~다'체 문장(제품 말투가 있으면 그것) | 줄당 ≤45자 | 메타 문장 금지. **첫 줄은 이름 + 무엇 + 왜 좋은지** ('uv는 pip보다 10~100배 빠른 Python 패키지 매니저다') — 이름을 빼면 검색으로 못 찾고, 분류만으로는 저장할 이유가 안 보인다. 줄마다 완결된 문장으로 쓰고, 관련된 두 정보는 연결어미로 이어도 된다. 명사구+마침표('이동.')는 전보문처럼 읽힌다 |\n| UI 라벨·카드 필드 | 명사형(\"저장됨\") | ≤20자 | 마침표 없음, '해당·정보·목록' 군더더기 금지 |\n| 푸시·알림 | 해요체 | 1~2문장, 합계 ≤45자 | 현황만 알리지 말고 할 일 하나를 권한다. 숫자는 데이터에 있는 것만(없으면 변수로), \"~하시기 바랍니다\" 금지 |\n| 업무 이메일 | 합니다체(요청은 '~해 주세요' 허용) | — | 용건 먼저, 사과는 그 바로 뒤에. 이유는 아는 만큼 구체적으로(모르면 묻고, 원문의 사유는 지우지 않는다). 상투 서두·결구 금지 |\n| 문서·보고서 | '~다'체 | 문장 ≤80자 | 개조식\u002F서술식 혼용 금지, 판단·수치 명시 |\n\n**오버라이드 축** — 사용자 요청에서 신호를 읽어 적용하고, 린트 플래그로 검증한다:\n\n- **어투(tone)**: 해요체 | 합니다체 | 다체 | 명사형 → `lint.py --tone 해요체` (위반 = error)\n- **어휘(lexicon)**: easy(비전문가 — 한자어·전문용어 풀어쓰기, 문장 ≤60자) | normal | expert(실무자 — 전문용어 원어 유지, 풀어쓰기 금지) → `lint.py --lexicon easy`\n- **길이(length)**: 요약 계열에서 1line | 3line | paragraph\n\n\"비개발자도 이해하게\", \"쉽게 설명\" → lexicon easy. \"개발자용\", \"전문용어 그대로\" → lexicon expert. 자주 쓰는 조합은 `references\u002Fprofiles.json`에 명명 프로필로 저장돼 있다(retriever-push, ax-workshop-material 등). 새 프로젝트가 생기면 프로필을 추가하라.\n\n## 리소스\n\n- `references\u002Fpatterns.json` — 금칙·대체 사전(성장형, 린트가 읽음). 카테고리: 번역투(T)·GPT체(G)·형태(M)·어휘(L)·쉬운 어휘(E). 패턴마다 `tests`(걸려야 할\u002F걸리면 안 될 예문)가 있다\n- `references\u002Fprofiles.json` — 타입별 기본값(`types`, lint·export의 단일 출처)과 명명 프로필(타입+축 조합). 프로필은 프로젝트별로 추가\n- `references\u002Fpatterns.md` — 사전 해설: 각 카테고리가 왜 부자연스러운지, 대표 사례\n- `references\u002Fexamples.md` — 타입별 Before\u002FAfter 골든 예시. **생성 전에 해당 타입 섹션을 읽을 것**\n- `references\u002Fmaintenance.md` — 사전 성장 루프(패턴 추가·오탐 수정)와 외부 파이프라인 적용(export) 안내\n- `scripts\u002Flint.py` — 자동 검사(stdlib만 사용). `--type`\u002F`--profile`로 타입 기본값 적용, `--json`으로 채점·자동화 연동, `--selftest`로 사전 회귀 검사\n- `scripts\u002Fexport.py` — 외부 LLM 파이프라인용 시스템 프롬프트 블록 추출: `python3 \u003C스킬 디렉터리>\u002Fscripts\u002Fexport.py --profile retriever-push`\n\n## 유지보수·외부 파이프라인\n\n- 사용자가 어색하다고 지적한 표현을 사전에 넣거나 오탐을 고칠 때 → `references\u002Fmaintenance.md`의 '사전 성장 루프'를 먼저 읽는다.\n- 외부 LLM 파이프라인(예: 제품의 요약 생성)에 넣을 프롬프트가 필요할 때 → 같은 파일의 '외부 파이프라인 적용'을 읽고 `scripts\u002Fexport.py`를 쓴다.\n",{"name":5,"metadata":36,"description":7},{"email":37,"author":38,"version":39},"dev@dou.so","develinu","1.1.0","main","ee55538fc8b60bb1595f860f18cbd7baba1925aa","skills\u002Fko-natural",0,"https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills","https:\u002F\u002Fgithub.com\u002Fdouinc","https:\u002F\u002Fdou.so","A clinical intelligence company","2026-11-11 17:58:59",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add douinc\u002Fagent-skills --skill ko-natural",{"tool":55,"command":56},"bunx","bunx skills add douinc\u002Fagent-skills --skill ko-natural",{"tool":58,"command":59},"pnpm","pnpm dlx skills add douinc\u002Fagent-skills --skill ko-natural","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Fko-natural\u002FSKILL.md",true,[63,69,73,77,81,85,91],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"references\u002Fexamples.md","REFERENCE","参考文档",6333,"https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Fko-natural\u002Freferences\u002Fexamples.md",{"path":70,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Fmaintenance.md",2605,"https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Fko-natural\u002Freferences\u002Fmaintenance.md",{"path":74,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":75,"sourceHtmlUrl":76},"references\u002Fpatterns.json",25531,"https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Fko-natural\u002Freferences\u002Fpatterns.json",{"path":78,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":79,"sourceHtmlUrl":80},"references\u002Fpatterns.md",5096,"https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Fko-natural\u002Freferences\u002Fpatterns.md",{"path":82,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002Fprofiles.json",1390,"https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Fko-natural\u002Freferences\u002Fprofiles.json",{"path":86,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":89,"sourceHtmlUrl":90},"scripts\u002Fexport.py","SCRIPT","脚本",10471,"https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Fko-natural\u002Fscripts\u002Fexport.py",{"path":92,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":93,"sourceHtmlUrl":94},"scripts\u002Flint.py",17179,"https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Fko-natural\u002Fscripts\u002Flint.py",[96,114,149,163,193,209],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":107,"publishedAt":31},"01M6PDKC7XDA3NYF969T945D7S","template-skill","Replace with description of the skill and when the agent should use it.","https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Ftemplate\u002FSKILL.md",[102],{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[108,109,110,111,112,113],"template skill","template","with","use","name","it",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":128,"publishedAt":31},"01M6PDK6MNC6EMGA8W7KD7NJQX","writing-project-readme","Use when explicitly invoked to write or fully rewrite a project README that must cover tech stack, architecture, features, and service description in a single document — readable by non-engineers (PM, design, ops, domain experts) as well as developers. Triggers on requests like \"write the README\", \"redo README.md based on the whole project\", \"make a comprehensive README everyone can understand\". Skip for one-section edits, badge tweaks, or generating a CHANGELOG.","https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Fwriting-project-readme\u002FSKILL.md",[120,123,124,125],{"categoryNo":121,"categoryName":122,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":126,"categoryName":127,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000036","内容创作者",[129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148],"writing","README","project","project readme","writing project readme","changelog","architecture","domain","design","alpha","stack","write","pm","as","tech","make","experts","cover","for","features",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":158,"publishedAt":31},"01M6PDK2S8KXK1NDM22C9FKE49","ux-writing-korean","한국어로 UI\u002FUX 문구를 작성하거나 검수할 때 사용합니다. 해요체, 능동형, 긍정형, 캐주얼 경어, 명사 조합 회피 등 5가지 핵심 원칙과 예외 규칙을 적용합니다.","https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Fux-writing-korean\u002FSKILL.md",[155,156,157],{"categoryNo":121,"categoryName":122,"taxonomyType":105,"taxonomyTypeDesc":106},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":126,"categoryName":127,"taxonomyType":21,"taxonomyTypeDesc":22},[159,160,161,162,129,27],"ux writing korean","ux writing","korean","ux",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":173,"publishedAt":31},"01M6PDJXK3DVWFR0420XV79HZ6","token-audit","Audit a Claude Code or Codex CLI project for token waste and fix it with the user's approval. Use whenever the user wants to check, reduce, or optimize token usage, context bloat, or API\u002Fsubscription costs of an agent project — phrases like \"토큰 점검\", \"토큰 낭비 찾아줘\", \"토큰 최적화\", \"컨텍스트 최적화\", \"Claude Code 비용 줄여줘\", \"API 비용이 너무 나와\", \"audit token efficiency\", \"check my CLAUDE.md\u002FAGENTS.md\u002FMCP setup\". Also trigger when the user complains that sessions hit context limits too fast, that costs jumped unexpectedly, or asks whether their project setup is token-efficient — even if they don't say the word \"token\".","https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-audit\u002FSKILL.md",[169,170],{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},{"categoryNo":171,"categoryName":172,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师",[174,175,176,177,178,179,180,181,182,183,131,184,185,186,187,188,189,190,191,192],"token","audit","token audit","limits","token efficiency","bloat","api","my","usage","mcp setup","efficiency","optimize","fix","context","reduce","code","codex cli","cli","MCP",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":199,"publishedAt":31},"01M6PDJR1Y9BAM48RDKRQHK5MQ","release-showcase","정식 릴리스의 변경을 이전·이후 스크린샷, 클릭 흐름 녹화 영상, 비교·단계·탭·흐름도 같은 HTML 컴포넌트로 보여 주는 파일 하나짜리 릴리스 문서를 만든다. 텍스트뿐인 릴리스 노트로는 어떤 UX가 바뀌었고 새 기능을 어떻게 쓰는지 감이 안 올 때 쓴다. '릴리스 노트 문서 만들어 줘', '릴리스 쇼케이스', '이번 배포 변경사항 정리해서 공유', '릴리즈 노트 HTML', '변경사항을 화면으로 보여 주는 문서', '업데이트 소개 페이지', 'what's new 페이지', 'release notes with screenshots', 'changelog page', '배포 공지 자료'처럼 버전 태그 사이의 변경을 팀·고객에게 시각적으로 알릴 때 반드시 사용한다. git 태그로 릴리스하는 저장소라면 웹·데스크톱·모바일 어느 앱이든 쓴다. 커밋 목록만 필요한 CHANGELOG.md 갱신, 릴리스 태그·배포 자체, 마케팅 영상 제작에는 쓰지 않는다.","https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Frelease-showcase\u002FSKILL.md",[],[200,201,202,203,204,205,206,134,110,207,208],"release","showcase","release showcase","git","release notes","notes","screenshots","html","page",{"skillNo":210,"name":211,"nameZh":6,"description":212,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":213,"categories":214,"keywords":217,"publishedAt":31},"01M6PDJJEQMBWWXW4TPXYNNV38","public-sector-rfp-authoring","Use when drafting or revising Korean government or local-government bid notices, requests for proposals, statements of work, or public-sector service\u002Fproject specifications from the ordering agency's perspective.","https:\u002F\u002Fgithub.com\u002Fdouinc\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills\u002Fpublic-sector-rfp-authoring\u002FSKILL.md",[215,216],{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[218,219,220,221,222,223,224,147,225,226,227,131,228,161,111,229,230,231],"public sector rfp authoring","authoring","rfp","public","hermes","agency","perspective","requests","specifications","service","local","proposals","work","hermes agent"]