cdd-workflow
v0.2.9
Published
Commitment-Driven Development CLI tool
Maintainers
Readme
cdd-cli
Commitment-Driven Development (CDD) - 決断を記録しながら開発する
CDDは、決断を最小単位とし、プロジェクトにおける意思決定を残しながら開発を進めていく手法です。 ADR、SDDなどの文脈を引き継ぎつつ、CDDは人間の理解に重点を置き、人間とAIとの役割分担の可能性を探る目的で作られました。
基本的な使い方
CDDでは、cdd.mdというファイルを中心に開発を進めます。 cdd.mdには、決定事項だけでなく、そこに至るまでの文脈(なぜその決断をしたのか、何を却下したのか)を記述します。
ワークフロー:
- AIといつものように会話をしながらcdd.mdを完成させる
- 決断が固まったら実装を開始
- 実装後、cdd.mdに基づいてレビュー
cdd-cliは、このワークフローを支援するCLIツールです。
Installation
npm install -g cdd-cliGetting Started
1. プロジェクトを初期化
cdd initこれにより、.cdd-manifest.json が作成され、プロジェクトがCDDに対応します。
2. 決断ドキュメントを作成
cdd new AUTH-001 "ユーザー認証の実装方針"CDD/tasks/01-user-auth.cdd.md が作成されます。
3. AIと対話しながら決断を記録
Claude CodeまたはCodex CLIで /cdd-discuss Skillを使用します。
/cdd-discuss AUTH-001AIが対話を通じてcdd.mdを完成させます。
4. 実装
決断が [DECIDED] になったら実装を開始します。
/cdd-implement AUTH-0015. レビュー
実装が完了したら、cdd.mdに基づいてレビューします。
/cdd-review AUTH-0016. 進捗確認
# ステータス一覧
cdd status
# ツリー表示
cdd tree
# レビュー待ちの実装を表示
cdd status --in-reviewcdd.mdの例
---
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
却下案1: セッションベース認証の継続
- モバイルアプリで複雑になる
- サーバー側の状態管理が必要
- スケーリング時の課題
却下案2: OAuth 2.0のみ
- 過剰に複雑
- 自社システム内での認証には不要
- 学習コストが高い
このように、cdd.mdには決断の背景、理由、却下した案、APIシグネチャ、テスト戦略などを記述します。
これにより、AIと人間が共通の文脈を持ち、効率的に開発を進めることができます。
## CLI Commands
| コマンド | 説明 |
|---------|------|
| `cdd init` | プロジェクトを初期化(.cdd-manifest.json作成) |
| `cdd new <id> <title>` | 新しい決断ドキュメントを作成 |
| `cdd status` | 全ての決断のステータスを一覧表示 |
| `cdd status --detailed` | 詳細なファイル一覧表示 |
| `cdd status --decision <status>` | Decision Statusでフィルタ |
| `cdd status --implementation <status>` | 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 <id>` | 決断の実装 |
| `/cdd-review <id>` | 実装のレビュー |
| `/cdd-doc-update` | DONE決断のドキュメント同期 |
これらのSkillsは、`cdd init` 実行時に選択したプラットフォームに自動配置されます。
## 対応プラットフォーム
- **Claude Code** (`.claude/skills/`) - Anthropic
- **Codex CLI** (`.codex/skills/`) - OpenAI
## AIプラットフォームのセットアップ
`cdd init` を実行すると、`CDD/PROMPT.md` ファイルが生成されます。
このファイルには、AIがCDDワークフローを理解するための情報が含まれています。
各AIプラットフォームの設定ファイルに以下を追加してください:
### Claude Code
`.claude/CLAUDE.md` に追加:
```markdown
## CDD Workflow
Read and follow: CDD/PROMPT.mdCodex CLI
AGENTS.md に追加:
## CDD Workflow
Read and follow: CDD/PROMPT.mdこれにより、AIがCDDの開発プロセスを理解し、適切にサポートできるようになります。
ドキュメント
詳細なガイドは以下を参照してください:
- フォーマットと書き方:
CDD/GUIDE.md - ワークフローと運用ルール:
CDD/WORKFLOW.md - ファイル配置と粒度:
CDD/STRUCTURE.md - 例:
CDD/00-example.cdd.md
License
MIT
Links
- GitHub: https://github.com/yourusername/cdd-cli
- Issues: https://github.com/yourusername/cdd-cli/issues
