커밋 규약
git 아티팩트와 버전 관리를 위한 커밋 메시지 형식, 릴리스 태깅, 사람 전용 작성자 규율, 작업별 케이던스를 확립합니다.
git 커밋 메시지, 릴리스 태그, 작성자 규율에 대한 정규 참조.
CLAUDE.md규약의 요약은 인라인 선언이며, 이 페이지는 하류 기여자가 인용하는 독립 참조입니다.
1. Conventional Commits
커밋 제목은 Conventional Commits 형태를 따릅니다. <type>(<scope>): <subject>. 닫힌 <type> 집합은 {feat, fix, chore, docs, refactor, test, perf, ci, build, style, revert, release}입니다. <scope>는 커밋이 건드리는 표면입니다(예: feat(conformity), docs(adr), fix(ci)). scope는 국소화되지 않는 횡단 변경에 대해서만 생략됩니다.
제목은 명령형이며, type/scope 콜론 뒤는 소문자, 마침표 없음, 72자 미만입니다. 본문은 — 빈 줄로 제목과 구분되며 — diff가 무엇을 바꿨는지가 아니라 변경이 왜 존재하는지를 설명합니다. 무엇을 바꿨는지의 정규 기록은 diff 자체입니다.
2. 작성자 규율(사람 전용)
모든 git 아티팩트의 모든 작성자 표면(커밋 제목, 커밋 본문, Author: 필드, Co-Authored-By: 트레일러, Signed-off-by: 트레일러, 브랜치 이름, 태그 이름, 태그 주석, stash 이름, git-notes 본문, PR 제목, PR 설명)은 사람 기여자만 명명합니다. 하니스 런타임은 자기 자신, 기반 언어 모델, 런타임 / 환경 / IDE / 확장 / 공급업체, 또는 그 밖의 어떤 자동화 도구도 이러한 표면 중 어느 것에도 절대 귀속시키지 않습니다. 금지된 패턴에는 Co-Authored-By: <model-name>, Co-Authored-By: <noreply@*-vendor.com>, generated with X 또는 co-authored by an automated helper 같은 본문 서술, 그리고 사람이 아닌 작성자를 나타내는 모든 제목 행 마커가 포함됩니다. 전체 명세는 src/apothem/rules/production-ready-prs.md §6에 있습니다. 기계적 적용은 src/apothem/hooks/messages/pretooluse-bash.md Scan 3에 있습니다.
3. 릴리스 태그(시맨틱 버저닝)
릴리스 태그는 시맨틱 버저닝(vMAJOR.MINOR.PATCH)을 따릅니다. 1.0 이전 버전은 명세의 안정화 이전 규약에 따라 0.MINOR.PATCH입니다. 호환성을 깨는 변경은 MINOR를, 버그 수정은 PATCH를 증가시킵니다. 태그는 주석이 달려 있으며(git tag -a) site/content/docs/governance/release-engineering-policy.mdx에 따라 게시 계층에서 서명됩니다. 패키지 버전은 소스 매니페스트(pyproject.toml의 version)에 있으며, 런타임 / 버전을 담은 표면은 해당 패키지 메타데이터에서 파생됩니다.
4. 작업별 케이던스
커밋은 SHARED+ 진지도에서는 작업별로, PERSONAL_USE에서는 단계별로 이루어지며, EXPLORING에서는 선택 사항입니다. 작업의 커밋은 해당 작업의 검증 게이트가 통과한 직후 이루어집니다. 미룬 커밋은 컨텍스트를 누적하고 범위를 잃을 위험이 있습니다. 전체 규율은 src/apothem/rules/operational-mandates.md §CM-13에 있습니다.
5. 검증기
.pre-commit-config.yaml의 pre-commit 훅 체인은 쓰기별 품질 게이트를 적용합니다. bash 훅에서의 작성자 규율 적용(src/apothem/hooks/messages/pretooluse-bash.md의 Scan 3)은 어떤 git 쓰기 작업이 이루어지기 전에 금지된 트레일러와 본문 마커를 잡아냅니다.