From ecc
Claude Code 세션 중 내려진 아키텍처 결정을 구조화된 ADR로 기록합니다. 의사결정 시점을 감지하고, 맥락, 검토한 대안, 근거를 남깁니다. 미래 개발자가 왜 코드베이스가 현재 형태가 되었는지 이해할 수 있도록 ADR 로그를 유지합니다.
npx claudepluginhub sam42-lab/everything-claude-code-krThis skill uses the workspace's default tool permissions.
코딩 세션 중 발생하는 아키텍처 결정을 바로 기록합니다. 결정이 Slack 스레드, PR 댓글, 개인 기억 속에만 남지 않도록, 이 스킬은 코드와 함께 보관되는 구조화된 ADR 문서를 만듭니다.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
코딩 세션 중 발생하는 아키텍처 결정을 바로 기록합니다. 결정이 Slack 스레드, PR 댓글, 개인 기억 속에만 남지 않도록, 이 스킬은 코드와 함께 보관되는 구조화된 ADR 문서를 만듭니다.
"let's record this decision" 또는 "ADR this"라고 명시할 때"we decided to..." 또는 "the reason we're doing X instead of Y is..."라고 말할 때"why did we choose X?"라고 물을 때(기존 ADR 조회)Michael Nygard의 경량 ADR 형식을 AI 보조 개발에 맞게 적용해 사용합니다.
# ADR-NNNN: [Decision Title]
**Date**: YYYY-MM-DD
**Status**: proposed | accepted | deprecated | superseded by ADR-NNNN
**Deciders**: [who was involved]
## Context
What is the issue that we're seeing that is motivating this decision or change?
[2-5 sentences describing the situation, constraints, and forces at play]
## Decision
What is the change that we're proposing and/or doing?
[1-3 sentences stating the decision clearly]
## Alternatives Considered
### Alternative 1: [Name]
- **Pros**: [benefits]
- **Cons**: [drawbacks]
- **Why not**: [specific reason this was rejected]
### Alternative 2: [Name]
- **Pros**: [benefits]
- **Cons**: [drawbacks]
- **Why not**: [specific reason this was rejected]
## Consequences
What becomes easier or more difficult to do because of this change?
### Positive
- [benefit 1]
- [benefit 2]
### Negative
- [trade-off 1]
- [trade-off 2]
### Risks
- [risk and mitigation]
의사결정 시점을 감지하면 다음 순서로 진행합니다.
docs/adr/가 없으면, 디렉터리와 인덱스 표 헤더가 들어간 README.md, 수동 작성용 빈 template.md를 만들기 전에 사용자 확인을 받습니다. 명시적 동의 없이 파일을 만들지 않습니다.docs/adr/의 기존 ADR을 스캔해 다음 번호를 정합니다.docs/adr/NNNN-decision-title.md에 기록합니다. 사용자가 거절하면 파일을 쓰지 않고 폐기합니다.docs/adr/README.md에 추가합니다.사용자가 "why did we choose X?"라고 물으면 다음 순서로 처리합니다.
docs/adr/가 있는지 확인합니다. 없으면 "No ADRs found in this project. Would you like to start recording architectural decisions?"라고 답합니다.docs/adr/README.md 인덱스에서 관련 항목을 찾습니다.Context, Decision 섹션을 제시합니다."No ADR found for that decision. Would you like to record one now?"라고 답합니다.docs/
└── adr/
├── README.md ← index of all ADRs
├── 0001-use-nextjs.md
├── 0002-postgres-over-mongo.md
├── 0003-rest-over-graphql.md
└── template.md ← blank template for manual use
# Architecture Decision Records
| ADR | Title | Status | Date |
|-----|-------|--------|------|
| [0001](0001-use-nextjs.md) | Use Next.js as frontend framework | accepted | 2026-01-15 |
| [0002](0002-postgres-over-mongo.md) | PostgreSQL over MongoDB for primary datastore | accepted | 2026-01-20 |
| [0003](0003-rest-over-graphql.md) | REST API over GraphQL | accepted | 2026-02-01 |
대화에서 다음 패턴이 보이면 아키텍처 결정으로 판단합니다.
명시적 신호
암묵적 신호(ADR 기록을 제안하되 사용자 확인 없이 자동 생성하지 않음)
"ORM을 쓴다"가 아니라 "Prisma ORM을 사용한다""We will use X"가 아니라 "We use X"Context가 10줄을 넘으면 너무 깁니다"그냥 골랐다"는 유효한 근거가 아닙니다proposed → accepted → [deprecated | superseded by ADR-NNNN]
| Category | Examples |
|---|---|
| 기술 선택 | 프레임워크, 언어, 데이터베이스, 클라우드 공급자 |
| 아키텍처 패턴 | 모놀리식 vs 마이크로서비스, 이벤트 기반, CQRS |
| API 설계 | REST vs GraphQL, 버전 전략, 인증 방식 |
| 데이터 모델링 | 스키마 설계, 정규화 결정, 캐싱 전략 |
| 인프라 | 배포 모델, CI/CD 파이프라인, 모니터링 스택 |
| 보안 | 인증 전략, 암호화 방식, 시크릿 관리 |
| 테스트 | 테스트 프레임워크, 커버리지 목표, E2E와 통합 테스트의 균형 |
| 프로세스 | 브랜치 전략, 리뷰 프로세스, 릴리스 주기 |