diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..a399af8 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,61 @@ +# 프로젝트 규칙 + +## 한국어 문체 규약 + +이 저장소의 모든 한국어 산출물은 아래 규칙을 준수한다. 규칙의 출처는 +[snflkd/fluent-korean](https://github.com/snflkd/fluent-korean) 출력 스타일이며, +PR #4에서 수행한 대규모 교정 작업의 기준도 이 규칙과 동일하다. + +### 적용 대상 + +| 대상 | 적용 여부 | +|---|---| +| `data/questions/**` 의 발문, 보기, 해설 | 적용 | +| `data/misconceptions/**` 의 오개념 서술 | 적용 | +| `README.md`, `AUTHORING.md` 등 문서 | 적용 | +| `assets/app.js` 의 UI 문자열 | 적용 | +| 변수명, 코드 주석, 커밋 메시지, 로그 문자열 | 미적용 (기존 관례를 따른다) | +| 인용문과 원문 링크의 제목 | 미적용 (원문을 그대로 유지한다) | + +### 규칙 + +1. **문장 성분을 생략하지 않는다.** 읽는 사람이 맥락 없이도 의미를 파악할 수 있어야 한다. + 관형격 조사 `~의`를 반복해서 사용하면 성분이 누락되기 쉬우므로 주의한다. + - 나쁨: `사본의 문구는 작업의 상황을` + - 좋음: `사본에 기재된 문구는 작업이 진행되는 상황을` + +2. **서술어와 종결어미로 문장을 끝맺는다.** 명사구, 부사구, 연결어미로 문장을 끊지 않는다. + 단, 헤더와 목록 항목, 표 내부의 셀에는 강제하지 않는다. + +3. **조사와 어미를 생략하지 않는다.** 부사, 보조사, 선어말어미, 보조 용언을 적극적으로 활용한다. + - 나쁨: `이 결정은 이후 중요 정책이 갈리는 자리. 컨텍스트 압축 전 신중 반영한다.` + - 좋음: `이 결정은 이후 중요한 정책에 지속적으로 영향을 주기 때문에, 컨텍스트가 압축되기 전에 신중히 반영합니다.` + +4. **맥락에 적합한 한자어를 사용하되 조사와 어미를 붙인다.** 한자어를 나열하기만 하면 의미 관계가 사라진다. + - 나쁨: `지출 비용 추론 용도의 토큰 카운트 함수의 오류 상황에서` + - 좋음: `지출한 비용을 추론하는 토큰 카운트 함수에 오류가 발생하면` + +5. **비유적 어휘로 일반 명사나 동사를 대체하지 않는다.** 다만 해당 분야에서 관용 표현으로 + 정착한 어휘는 그대로 사용한다. + - 나쁨: `분석의 흐름`, `코드로 박는 자리` + - 좋음: `분석의 방향성`, `코드에 명시하는 작업` + +6. **엠대시(—)를 사용하지 않는다.** 앞뒤 관계를 지나치게 함축하므로 콜론이나 접속사로 대체한다. + +7. **신조어와 문어체 한자어를 사용하지 않는다.** PR #4에서 제거한 `체류분`, `상정`, `과소 계상` + 같은 어휘가 이에 해당한다. + +8. **번역투를 사용하지 않는다.** `~에 대해`, `~을 가진다`, `~되어진다` 같은 표현은 + 한국어 통사 구조에 맞게 고쳐 쓴다. + +### 검증 + +문항을 추가하거나 수정한 다음에는 아래 순서로 확인한다. + +```bash +node tools/build.mjs # 문항을 컴파일하고 게이트를 통과하는지 확인한다 +node tools/check-links.mjs # 원문 링크가 살아 있는지 확인한다 +``` + +문항 저작 규약 자체는 [AUTHORING.md](./AUTHORING.md)에 정리되어 있다. 이 문서는 문체만 다루므로, +오답 설계와 난이도 배분은 AUTHORING.md를 따른다.