npm package: @gaebalai/cdd
Description: Install CDD prompts to AI coding assistants (Claude Code, Cursor, Windsurf, GitHub Copilot, OpenAI Codex)
Latest version: 0.1.1

# CDD（Conversation-Driven Development）

**AI와의 대화에서 생성된 문맥을 잃지 않고 구현 단계로 전달하기 위한 개발 스타일**

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## CDD란?

CDD(Conversation-Driven Development)는
AI와의 대화를 통해 만들어진 아이디어와 의사결정 사항을 구현 단계로 확실하게 전달하기 위한 개발 방법론입니다.

기존의 AI 지원 개발에서는
대화 중에 결정된 내용이 구현 단계에서 사라지거나,
“왜 이런 구현이 되었는지”를 알 수 없게 되는 문제가 있었습니다.

CDD는 이러한 문제를 해결하기 위해
**대화 → 구조화 → 구현** 단계를 명확히 분리합니다.

## 설치

```bash
npx @gaebalai/cdd
```

대화형으로 AI 에이전트와 설치 위치를 선택할 수 있습니다.

### 지원 AI 에이전트

| 에이전트 | 로컬 | 글로벌 | 명령어 |
|------------|:--------:|:----------:|-----------|
| Claude Code | ✅ | ✅ | `cdd:verify` 등 |
| OpenAI Codex | - | ✅ | `cdd-verify` 등 |
| GitHub Copilot | ✅ | - | `cdd-verify.prompt` 등 |
| Cursor | ✅ | ✅ | `cdd-verify` 등 |
| Windsurf | ✅ | ✅ | `cdd-verify` 등 |

### 설치 대상 디렉터리

- **Claude Code**: `.claude/commands/cdd/` (로컬) 또는 `~/.claude/commands/cdd/` (글로벌)
- **OpenAI Codex**: `~/.codex/prompts/` (글로벌 전용)
- **GitHub Copilot**: `.github/prompts/` (로컬 전용)
- **Cursor**: `.cursor/commands/` (로컬) 또는 `~/.cursor/commands/` (글로벌)
- **Windsurf**: `.windsurf/rules/` (로컬) 또는 `~/.codeium/windsurf/global_workflows/` (글로벌)

## CDD 전체 구조 (3개의 Lane)

CDD는 3개의 Lane으로 구성됩니다.

### 1. Idea Lane (사고 · 브레인스토밍)

아이디어 도출과 요구사항 검토를 진행하는 단계입니다.

- **목적**: 아이디어 도출 / 요구사항 검토 / 제약 조건 및 대안 논의
- **사용 AI**: ChatGPT / Claude / Gemini 등 자유롭게 사용
- **특징**:
  - 고민해도 괜찮음
  - 미확정 사항이 남아 있어도 괜찮음
  - 사람이 충분히 납득할 때까지 생각하는 단계

### 2. Context Lane (문맥 정리)

대화 로그를 구현을 위한 형태로 번역·확정하는 단계입니다.

- **목적**: 대화 로그에서 전제 조건, 판단 근거, 결정 사항을 추출 / 구현 가능한 형태로 구조화
- **사용 AI**: Idea Lane에서 사용한 동일한 AI
- **산출물**: `handoff.yml`（Handoff Pack v1）

Idea Lane에서 대화한 동일한 채팅 내에서
`prompts/context-lane.md` 프롬프트를 실행하면
`Handoff Pack v1`을 생성할 수 있습니다.
미확정 사항이 남아 있는 경우 질문이 반환되며,
이에 응답함으로써 `Handoff Pack v1`을 완성합니다.

### 3. Code Lane (구현)

`handoff.yml`을 전제로 실제 코드를 작성하는 단계입니다.

- **목적**: 구조화된 요구사항을 기반으로 구현 수행
- **사용 AI**: Claude Code / Cursor 등
- **전제**: 구현의 근거는 `handoff.yml`에 기재된 내용만 사용

## Code Lane의 구현 방식

### 사전 준비: handoff.yml 검증

`handoff.yml`은 코드베이스 정보를 알지 못하므로,
`verify` 명령을 통해 구현 상의 문제를 사전에 검증합니다.

```bash
# Claude Code 사용 시
/cdd:verify
<Handoff Pack v1 붙여넣기>
```

검증이 완료되면
`.cdd/<slug>/handoff.yml` 파일이 생성됩니다.

프로젝트 규모와 요구사항에 따라
아래 3가지 구현 방식 중 하나를 선택할 수 있습니다.

### 1. Direct Implementation (직접 구현)

`handoff.yml`을 기반으로 바로 구현하는 방식입니다.

```bash
/cdd:impl-direct <slug>
```

- **적용 상황**: 
  - 소~중규모 구현
  - 수정 범위가 명확한 경우
- **특징**:
  - Intent Snapshot → Mini Plan → Implement → Verify 흐름
  - 빠르게 구현을 시작할 수 있음

### 2. Task-Oriented Implementation (태스크 분해 구현)

`handoff.yml` 을 기반으로 태스크를 분해하여 순차적으로 구현합니다.

```bash
# 태스크 분해
/cdd:tasks <slug>

# 구현 (태스크 또는 페이즈 단위)
/cdd:impl <slug> <task_id>    # 예: /cdd:impl user-auth 1-1
/cdd:impl <slug> <phase_id>   # 예: /cdd:impl user-auth 1
```

- **적용 상황**: 
  - 대규모 구현
  - 영향 범위가 넓은 기능
  - 단계적으로 진행하고 싶은 경우
- **특징**:
  - Phase (2~5개)와 Task (1~4시간 단위)로 분해
  - `tasks.yaml` 로 진행 상황 추적
  - 의존성을 고려한 구현 순서 관리

### 3. CDD-SDD Hybrid (사양 주도 개발 연계)

cc-sdd (Spec-Driven Development)와 연계하여
보다 엄격한 사양 기반 개발 프로세스를 적용하는 방식입니다.
cc-sdd에서 `kiro:spec-init` 실행 후
아래 명령을 실행합니다.

```bash
/cdd:cc-sdd <cdd:slug> <cc-sdd:slug>
```

이후 cc-sdd에서 `kiro:spec-requirements`를 실행하여 
`requirements.md`형식으로 맞춥니다.

- **적용 상황**: 
  - 엄격한 사양 기반 개발
  - 문서화와 프로세스를 중시하는 경우
- **특징**:
  - `handoff.yml` → `requirements.md` 변환
  - 요구사항 정의 → 설계 → 구현까지 일관된 흐름

## 라이선스

MIT License

## 기여

Issue 및 Pull Request를 환영합니다.

- [Issues](https://github.com/gaebalai/cdd/issues)
- [Repository](https://github.com/gaebalai/cdd)