writing-adrlisted
Install: claude install-skill HarryJhin/groundwork
# writing-adr
ADR은 파일 하나가 설계 결정 하나를 담는 마크다운 문서다. 이 스킬이 형식·프로세스·신설 절차·산출물 규약의 정본이고, 다른 문서에 의존하지 않는다. `references/`의 문서는 ADR 관행 일반을 다루는 외부 배경 자료다. 이 스킬의 규정을 반영하지 않으므로 형식 기준으로 삼지 않는다.
ADR은 repo 안에 산다. 그 repo의 아키텍처 결정을 그 repo가 보관하고, 코드와 함께 커밋되어 함께 옮겨 다닌다. repo 밖에 ADR을 두지 않는다.
**경로 기준**: 이 문서의 상대 경로는 두 기준으로 갈린다. `references/`처럼 이 스킬이 거느린 파일은 스킬 디렉터리 `${CLAUDE_PLUGIN_ROOT}/skills/writing-adr/` 기준이고, `${CLAUDE_PLUGIN_ROOT}`는 groundwork 플러그인이 설치된 디렉터리이지 실행 시점 작업 디렉터리가 아니다. `docs/adr/`처럼 산출물이 놓이는 경로는 대상 repo 루트 기준이고, 그 루트는 `git rev-parse --show-toplevel`로 얻는다.
## 산출물 규약
- **위치**: `<repo 루트>/docs/adr/`. repo 루트는 `git rev-parse --show-toplevel`로 얻는다.
- **명명**: `ADR-NNNN-<topic>.md`. `NNNN`은 네 자리 제로패딩이고 `<topic>`은 결정 요지의 영문 kebab-case다.
- **번호 축**: 그 repo `docs/adr/` 안에서만 증가한다. repo마다 독립이라 다른 repo의 번호는 ���지 않는다.
- **스펙·플랜과 독립**: 같은 repo의 `docs/specs/SPEC-NNNN-<topic>.md`와 `docs/plans/PLAN-NNNN-<topic>.md`는 둘이 짝을 이뤄 번호를 공유하는 별도 축이고, ADR은 거기 참여하지 않는다. 한 작업이 ADR을 몇 개 남기든 스펙 번호는 줄지 않는다. 번호가 겹쳐도 파���명 접두(`ADR-` 대 `SPEC-`·`PLAN-`)가 구분한다.
- **커밋**: 그 repo의 정규 산출물이다. 결정을 낳은 코드 변경과 함께 커밋한다.
- **소비자**: 후속 세션이 `docs/adr/`를 열어 `ADR-NNNN`으로 인용한다.
## 형식 정본
ADR 파일은 최상단 h1 하나와 그 아래 `##` 섹션으로 이뤄진다. 섹션은 아래 순서를 지킨다.
| 섹션 | 내용 | 형식 |
|---|---|---|
| `## Title` | 결정을 한 문장으로 정의 | 능동태 완결 문장 |
| `## Status` | 결정의 수명 | 아래 「Status 값」 중 하나 |
| `## Date` | 결정 확정일 | ISO 8601 `YYYY-MM-DD` |
| `## Context` | 결정을 강제한 힘 | 서술 |
| `## Decision` | 결정 자체 | 능동태 서술 |
| `## Consequences` | 파급 | `Positive:` / `Negative: