Commitment-Driven Development CLI tool
npm install cdd-workflowCommitment-Driven Development (CDD) - 決断を記録しながら開発する
CDDは、決断を最小単位とし、プロジェクトにおける意思決定を残しながら開発を進めていく手法です。
ADR、SDDなどの文脈を引き継ぎつつ、CDDは人間の理解に重点を置き、人間とAIとの役割分担の可能性を探る目的で作られました。
CDDでは、cdd.mdというファイルを中心に開発を進めます。
cdd.mdには、決定事項だけでなく、そこに至るまでの文脈(なぜその決断をしたのか、何を却下したのか)を記述します。
ワークフロー:
1. AIといつものように会話をしながらcdd.mdを完成させる
2. 決断が固まったら実装を開始
3. 実装後、cdd.mdに基づいてレビュー
cdd-cliは、このワークフローを支援するCLIツールです。
``bash`
npm install -g cdd-cli
`bash`
cdd init
これにより、.cdd-manifest.json が作成され、プロジェクトがCDDに対応します。
`bash`
cdd new AUTH-001 "ユーザー認証の実装方針"
CDD/tasks/01-user-auth.cdd.md が作成されます。
Claude CodeまたはCodex CLIで /cdd-discuss Skillを使用します。
``
/cdd-discuss AUTH-001
AIが対話を通じてcdd.mdを完成させます。
決断が [DECIDED] になったら実装を開始します。
``
/cdd-implement AUTH-001
実装が完了したら、cdd.mdに基づいてレビューします。
``
/cdd-review AUTH-001
`bashステータス一覧
cdd status
cdd.mdの例
`yaml
---
id: FEATURE-001
title: ユーザー認証の実装方針
decisionStatus: DECIDED
implementationStatus: DONE
metadata:
assignee: yourname
created: '2026-01-23'
---Goal
ユーザー認証機能を実装し、セキュアなログイン体験を提供するContext
- 既存システムはセッションベース認証
- モバイルアプリ対応が必要
- セキュリティ要件: XSS/CSRF対策必須
- パフォーマンス要件: 認証処理は100ms以内Selection
JWT(JSON Web Token)ベースの認証を採用理由:
- ステートレスでスケーラブル
- モバイルアプリとの親和性が高い
- リフレッシュトークンで安全性を確保
実装方針:
- アクセストークン: 15分有効期限
- リフレッシュトークン: 7日有効期限、HTTP-only Cookie
- トークン検証はミドルウェアで一元管理
APIシグネチャ:
`typescript
// POST /api/auth/login
interface LoginRequest {
email: string
password: string
}
interface LoginResponse {
accessToken: string
user: { id: string; email: string }
}// POST /api/auth/refresh
interface RefreshResponse {
accessToken: string
}
`テスト戦略:
- ユニットテスト: トークン生成・検証ロジック
- 統合テスト: ログイン・リフレッシュフロー
- セキュリティテスト: 無効トークン、期限切れトークンの拒否
Rejections
$3
- モバイルアプリで複雑になる
- サーバー側の状態管理が必要
- スケーリング時の課題$3
- 過剰に複雑
- 自社システム内での認証には不要
- 学習コストが高い
`このように、cdd.mdには決断の背景、理由、却下した案、APIシグネチャ、テスト戦略などを記述します。
これにより、AIと人間が共通の文脈を持ち、効率的に開発を進めることができます。
CLI Commands
| コマンド | 説明 |
|---------|------|
|
cdd init | プロジェクトを初期化(.cdd-manifest.json作成) |
| cdd new | 新しい決断ドキュメントを作成 |
| cdd status | 全ての決断のステータスを一覧表示 |
| cdd status --detailed | 詳細なファイル一覧表示 |
| cdd status --decision | Decision Statusでフィルタ |
| cdd status --implementation | Implementation Statusでフィルタ |
| cdd status --doc-unsynced | DONE かつドキュメント未同期の決断を表示 |
| cdd status --in-review | IN_REVIEW の実装を表示 |
| cdd tree | 決断の親子関係をツリー表示 |
| cdd validate | 全てのcdd.mdをバリデーション |
| cdd archive | 完了した決断(DECIDED + DONE)をアーカイブ |Skills(AIエージェント用)
| Skill | 説明 |
|---------|------|
|
/cdd-discuss [id] | 決断の議論・記録 |
| /cdd-implement | 決断の実装 |
| /cdd-review | 実装のレビュー |
| /cdd-doc-update | DONE決断のドキュメント同期 |これらのSkillsは、
cdd init 実行時に選択したプラットフォームに自動配置されます。対応プラットフォーム
- Claude Code (
.claude/skills/) - Anthropic
- Codex CLI (.codex/skills/) - OpenAIAIプラットフォームのセットアップ
cdd init を実行すると、CDD/PROMPT.md ファイルが生成されます。
このファイルには、AIがCDDワークフローを理解するための情報が含まれています。各AIプラットフォームの設定ファイルに以下を追加してください:
$3
.claude/CLAUDE.md に追加:`markdown
CDD Workflow
Read and follow: CDD/PROMPT.md
`$3
AGENTS.md に追加:`markdown
CDD Workflow
Read and follow: CDD/PROMPT.md
`これにより、AIがCDDの開発プロセスを理解し、適切にサポートできるようになります。
ドキュメント
詳細なガイドは以下を参照してください:
- フォーマットと書き方:
CDD/GUIDE.md
- ワークフローと運用ルール: CDD/WORKFLOW.md
- ファイル配置と粒度: CDD/STRUCTURE.md
- 例: CDD/00-example.cdd.md`MIT
- GitHub: https://github.com/yourusername/cdd-cli
- Issues: https://github.com/yourusername/cdd-cli/issues