adr-log
Document architecture decisions with ADR (Architecture Decision Records). Use when making significant technical decisions, choosing between alternatives, or when onboarding needs context on past decisions.
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o adr-log.zip https://jpskill.com/download/18863.zip && unzip -o adr-log.zip && rm adr-log.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/18863.zip -OutFile "$d\adr-log.zip"; Expand-Archive "$d\adr-log.zip" -DestinationPath $d -Force; ri "$d\adr-log.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
adr-log.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
adr-logフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
ADR (Architecture Decision Records)
アーキテクチャの決定を文書化し、「なぜそのようにしたのか」を記録するスキルです。
コア原則
「決定の『何』よりも『なぜ』が重要です。」 「6ヶ月後の自分でも理解できるように記録します。」
ADRが必要な場合
| 状況 | 例 |
|---|---|
| 技術選択 | React vs Vue, PostgreSQL vs MongoDB |
| アーキテクチャパターン | Monolith vs Microservices |
| 依存関係の追加 | 新しいライブラリの導入 |
| セキュリティ決定 | 認証方式の選択 |
| パフォーマンストレードオフ | キャッシュ戦略の決定 |
| 標準の変更 | コーディング規約の変更 |
ADRフォルダー構造
docs/
└── adr/
├── 0000-adr-template.md
├── 0001-use-nextjs-app-router.md
├── 0002-choose-postgresql-over-mongodb.md
├── 0003-implement-jwt-authentication.md
└── README.md
ADRテンプレート
docs/adr/0000-adr-template.md
# [番号]. [決定タイトル]
日付: YYYY-MM-DD
## 状態
[Proposed | Accepted | Deprecated | Superseded by ADR-XXXX]
## コンテキスト
この決定が必要な背景/問題状況を説明します。
- 現在の状況は何ですか?
- どのような問題を解決しようとしていますか?
- どのような制約がありますか?
## 決定
私たちは[X]を選択しました。
### 検討した代替案
1. **代替案 A**: [説明]
- 利点: ...
- 欠点: ...
2. **代替案 B**: [説明]
- 利点: ...
- 欠点: ...
3. **選択: 代替案 C**: [説明]
- 利点: ...
- 欠点: ...
## 結果
### ポジティブな影響
- ...
### ネガティブな影響
- ...
### リスク
- ...
## 参考資料
- [リンク1]
- [リンク2]
実際のADRの例
docs/adr/0001-use-nextjs-app-router.md
# 1. Next.js App Router の使用
日付: 2024-01-15
## 状態
Accepted
## コンテキスト
新しいプロジェクトのフロントエンドフレームワークを選択する必要があります。
要件:
- SEO最適化が必要 (マーケティングページ)
- 高速な初期ロード
- チームのReact経験の活用
- サーバーサイドデータフェッチ
## 決定
**Next.js 14 App Router** を選択します。
### 検討した代替案
1. **Next.js Pages Router**
- 利点: 安定している、リファレンスが多い
- 欠点: レガシー化が進行中、新機能が限定的
2. **Remix**
- 利点: 優れたデータローディング、プログレッシブエンハンスメント
- 欠点: チームの学習コスト、比較的小さいエコシステム
3. **選択: Next.js App Router**
- 利点: React Server Components、改善されたキャッシング、Vercel最適化
- 欠点: 一部のライブラリとの互換性問題、学習曲線
## 結果
### ポジティブな影響
- React Server Componentsによりバンドルサイズが削減されます
- レイアウトのネストによりコードの再利用性が向上します
- Vercelデプロイが最適化されます
### ネガティブな影響
- 一部のクライアント専用ライブラリを使用する場合、「use client」が必要です
- Pages Router経験者の学習が必要です
### リスク
- App Routerの比較的新規性 (安定性の確認が必要)
- 一部のサードパーティライブラリとの互換性
## 参考資料
- [Next.js App Router Docs](https://nextjs.org/docs/app)
- [Server Components RFC](https://github.com/reactjs/rfcs/pull/188)
docs/adr/0002-choose-postgresql-over-mongodb.md
# 2. PostgreSQL の選択 (MongoDB の代わりに)
日付: 2024-01-20
## 状態
Accepted
## コンテキスト
プロジェクトの主要なデータベースを選択する必要があります。
データ特性:
- ユーザー、プロジェクト、メディア間の関係が存在
- トランザクションの整合性が必要 (決済連携予定)
- 複雑なクエリ (フィルタリング、ソート、集計)
## 決定
**PostgreSQL** を選択します。
### 検討した代替案
1. **MongoDB**
- 利点: スキーマの柔軟性、水平スケーリングが容易
- 欠点: 複雑なJOINが困難、トランザクションが限定的
2. **選択: PostgreSQL**
- 利点: ACID保証、強力なJOIN、JSONサポート
- 欠点: 水平スケーリングが複雑、スキーマ変更にマイグレーションが必要
## 結果
### ポジティブな影響
- Prismaとの完全な互換性
- 複雑な関係クエリの最適化
- 決済データの整合性保証
### ネガティブな影響
- スキーマ変更時にマイグレーションが必要
- 初期スキーマ設計が重要
### 関連する決定
- Prisma ORM の使用 (ADR-003 予定)
- マイグレーション戦略の策定が必要
ADR作成ガイド
番号体系
0001 ~ 0099: 基本アーキテクチャ決定
0100 ~ 0199: フロントエンド関連
0200 ~ 0299: バックエンド関連
0300 ~ 0399: インフラ/DevOps関連
0400 ~ 0499: セキュリティ関連
状態フロー
Proposed → Accepted → [Deprecated | Superseded]
- Proposed: レビュー中
- Accepted: 承認され、適用中
- Deprecated: もはや有効ではない
- Superseded by ADR-XXXX: 新しい決定に置き換えられた
作成のヒント
## コンテキスト作成のヒント
- 背景説明は新規チームメンバーも理解できるように
- 制約条件 (時間、予算、技術スタック) を明記
- 問題の緊急性/重要性に言及
## 決定作成のヒント
- 決定内容を1文で要約
- 代替案を公平に比較
- 選択理由を明確に
## 結果作成のヒント
- トレードオフを正直に
- 予想されるリスクと対応策
- 関連する後続の決定に言及
ADRツール
adr-tools (CLI)
# macOS
brew install adr-tools
# 初期化
adr init docs/adr
# 新しいADRの作成
adr new "Use Next.js App Router"
# ADRリスト
adr list
# ADRの作成 (代替)
adr new -s 1 "Switch to Remix"
README.md (ADRインデックス)
# Architecture Decision Records
| 番号 | タイトル | 状態 | 日付 |
|------|------|------|------|
| [0001](0001-use-nextjs-app-router.md) | Next.js App Router の使用 | Accepted | 2024-01-15 |
| [0002](0002-choose-postgresql-over-mongodb.md) | PostgreSQL の選択 | Accepted | 2024-01-20 |
| [0003](0003-jwt-authentication.md) | JWT 認証の実装 | Accepted | 2024-01-25 |
ワークフロー
ADR作成のタイミング
1. 技術選択/変更の議論開始
2. 代替案の検討と比較
3. チームでの議論 (PRまたはミーティング)
4. 決定後、ADRを作成
5. PRでADRを追加
6. レビュー後、マージ
コードレビューにて
PRレビューア:
「このライブラリ選択に関するADRはありますか?」
作成者:
「ADR-0015に根拠がまとめられています。」
または
「ADRを追加します。」
チェックリスト
プロジェクト設定
- [ ]
docs/adr/フォルダーの作成 - [ ] ADRテンプレートファイルの追加
- [ ] README.md (インデックス) の作成
- [ ] 番号体系の定義
ADR作成時
- [ ] コンテキストが十分に説明されているか?
- [ ] 代替案が公平に比較されているか?
- [ ] 決定理由が明確か?
- [ ] トレードオフが正直に記録されているか?
- [ ] 関連するADR/イシューがリンクされているか?
参考資料
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
ADR (Architecture Decision Records)
아키텍처 결정을 문서화하여 "왜 그렇게 했는지"를 기록하는 스킬입니다.
Core Principle
"결정의 '무엇'보다 '왜'가 중요하다." "6개월 후의 나도 알아볼 수 있게 기록한다."
ADR이 필요한 경우
| 상황 | 예시 |
|---|---|
| 기술 선택 | React vs Vue, PostgreSQL vs MongoDB |
| 아키텍처 패턴 | Monolith vs Microservices |
| 의존성 추가 | 새 라이브러리 도입 |
| 보안 결정 | 인증 방식 선택 |
| 성능 트레이드오프 | 캐싱 전략 결정 |
| 표준 변경 | 코딩 컨벤션 변경 |
ADR 폴더 구조
docs/
└── adr/
├── 0000-adr-template.md
├── 0001-use-nextjs-app-router.md
├── 0002-choose-postgresql-over-mongodb.md
├── 0003-implement-jwt-authentication.md
└── README.md
ADR 템플릿
docs/adr/0000-adr-template.md
# [번호]. [결정 제목]
날짜: YYYY-MM-DD
## 상태
[Proposed | Accepted | Deprecated | Superseded by ADR-XXXX]
## 컨텍스트
이 결정이 필요한 배경/문제 상황을 설명합니다.
- 현재 상황은 무엇인가?
- 어떤 문제를 해결하려 하는가?
- 어떤 제약 조건이 있는가?
## 결정
우리는 [X]를 선택했다.
### 고려한 대안들
1. **대안 A**: [설명]
- 장점: ...
- 단점: ...
2. **대안 B**: [설명]
- 장점: ...
- 단점: ...
3. **선택: 대안 C**: [설명]
- 장점: ...
- 단점: ...
## 결과
### 긍정적 영향
- ...
### 부정적 영향
- ...
### 리스크
- ...
## 참고 자료
- [링크1]
- [링크2]
실제 ADR 예시
docs/adr/0001-use-nextjs-app-router.md
# 1. Next.js App Router 사용
날짜: 2024-01-15
## 상태
Accepted
## 컨텍스트
새 프로젝트의 프론트엔드 프레임워크를 선택해야 한다.
요구사항:
- SEO 최적화 필요 (마케팅 페이지)
- 빠른 초기 로딩
- 팀의 React 경험 활용
- 서버 사이드 데이터 페칭
## 결정
**Next.js 14 App Router**를 선택한다.
### 고려한 대안들
1. **Next.js Pages Router**
- 장점: 안정적, 레퍼런스 많음
- 단점: 레거시화 진행 중, 새 기능 제한적
2. **Remix**
- 장점: 뛰어난 데이터 로딩, 프로그레시브 향상
- 단점: 팀 학습 비용, 상대적으로 작은 생태계
3. **선택: Next.js App Router**
- 장점: React Server Components, 향상된 캐싱, Vercel 최적화
- 단점: 일부 라이브러리 호환성 이슈, 학습 곡선
## 결과
### 긍정적 영향
- React Server Components로 번들 크기 감소
- 레이아웃 중첩으로 코드 재사용성 향상
- Vercel 배포 최적화
### 부정적 영향
- 일부 클라이언트 전용 라이브러리 사용 시 'use client' 필요
- Pages Router 경험자의 학습 필요
### 리스크
- App Router의 상대적인 신규성 (안정성 확인 필요)
- 일부 third-party 라이브러리 호환성
## 참고 자료
- [Next.js App Router Docs](https://nextjs.org/docs/app)
- [Server Components RFC](https://github.com/reactjs/rfcs/pull/188)
docs/adr/0002-choose-postgresql-over-mongodb.md
# 2. PostgreSQL 선택 (MongoDB 대신)
날짜: 2024-01-20
## 상태
Accepted
## 컨텍스트
프로젝트의 주 데이터베이스를 선택해야 한다.
데이터 특성:
- 사용자, 프로젝트, 미디어 간 관계 존재
- 트랜잭션 무결성 필요 (결제 연동 예정)
- 복잡한 쿼리 (필터링, 정렬, 집계)
## 결정
**PostgreSQL**을 선택한다.
### 고려한 대안들
1. **MongoDB**
- 장점: 스키마 유연성, 수평 확장 용이
- 단점: 복잡한 JOIN 어려움, 트랜잭션 제한
2. **선택: PostgreSQL**
- 장점: ACID 보장, 강력한 JOIN, JSON 지원
- 단점: 수평 확장 복잡, 스키마 변경 마이그레이션 필요
## 결과
### 긍정적 영향
- Prisma와 완벽한 호환
- 복잡한 관계 쿼리 최적화
- 결제 데이터 무결성 보장
### 부정적 영향
- 스키마 변경 시 마이그레이션 필요
- 초기 스키마 설계 중요
### 관련 결정
- Prisma ORM 사용 (ADR-003 예정)
- 마이그레이션 전략 수립 필요
ADR 작성 가이드
번호 체계
0001 ~ 0099: 기초 아키텍처 결정
0100 ~ 0199: 프론트엔드 관련
0200 ~ 0299: 백엔드 관련
0300 ~ 0399: 인프라/DevOps 관련
0400 ~ 0499: 보안 관련
상태 흐름
Proposed → Accepted → [Deprecated | Superseded]
- Proposed: 검토 중
- Accepted: 승인되어 적용 중
- Deprecated: 더 이상 유효하지 않음
- Superseded by ADR-XXXX: 새 결정으로 대체됨
작성 팁
## 컨텍스트 작성 팁
- 배경 설명은 신규 팀원도 이해할 수 있게
- 제약 조건(시간, 예산, 기술 스택) 명시
- 문제의 긴급성/중요도 언급
## 결정 작성 팁
- 결정 내용을 한 문장으로 요약
- 대안들을 공정하게 비교
- 선택 이유를 명확히
## 결과 작성 팁
- 트레이드오프를 솔직하게
- 예상 리스크와 대응 방안
- 관련된 후속 결정 언급
ADR 도구
adr-tools (CLI)
# macOS
brew install adr-tools
# 초기화
adr init docs/adr
# 새 ADR 생성
adr new "Use Next.js App Router"
# ADR 목록
adr list
# ADR 생성 (대체)
adr new -s 1 "Switch to Remix"
README.md (ADR 인덱스)
# Architecture Decision Records
| 번호 | 제목 | 상태 | 날짜 |
|------|------|------|------|
| [0001](0001-use-nextjs-app-router.md) | Next.js App Router 사용 | Accepted | 2024-01-15 |
| [0002](0002-choose-postgresql-over-mongodb.md) | PostgreSQL 선택 | Accepted | 2024-01-20 |
| [0003](0003-jwt-authentication.md) | JWT 인증 구현 | Accepted | 2024-01-25 |
Workflow
ADR 작성 시점
1. 기술 선택/변경 논의 시작
2. 대안 검토 및 비교
3. 팀 논의 (PR 또는 미팅)
4. 결정 후 ADR 작성
5. PR로 ADR 추가
6. 리뷰 후 머지
코드 리뷰에서
PR 리뷰어:
"이 라이브러리 선택에 대한 ADR이 있나요?"
작성자:
"ADR-0015에 근거 정리되어 있습니다."
또는
"ADR 추가하겠습니다."
Checklist
프로젝트 설정
- [ ]
docs/adr/폴더 생성 - [ ] ADR 템플릿 파일 추가
- [ ] README.md (인덱스) 생성
- [ ] 번호 체계 정의
ADR 작성 시
- [ ] 컨텍스트가 충분히 설명되었는가?
- [ ] 대안들이 공정하게 비교되었는가?
- [ ] 결정 이유가 명확한가?
- [ ] 트레이드오프가 솔직하게 기록되었는가?
- [ ] 관련 ADR/이슈가 링크되었는가?