From consensus-build
한 줄 기능 설명으로 기능정의서 + 구현 계획 + 코드 구현까지 자동 완주. Agent Teams 3명이 CRITICAL/MAJOR 이슈가 없을 때까지 자율 반복 검토.
How this skill is triggered — by the user, by Claude, or both
Slash command
/consensus-build:build [review-spec <기능정의서-경로> | review-impl <구현계획-경로> | plan <기능정의서-경로> | implement <구현계획-경로> | [sonnet|opus|haiku] <기능 설명>][review-spec <기능정의서-경로> | review-impl <구현계획-경로> | plan <기능정의서-경로> | implement <구현계획-경로> | [sonnet|opus|haiku] <기능 설명>]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
$ARGUMENTS
$ARGUMENTS
모드 판별: 첫 번째 단어로 모드를 결정한다.
/consensus-build:build [모델] <기능 설명>
review-spec도 review-impl도 plan도 implement도 아닌 경우/consensus-build:build review-spec [모델] <기능정의서 파일경로>
review-spec/consensus-build:build review-impl [모델] <구현계획 파일경로>
review-impl/consensus-build:build plan [모델] <기능정의서 파일경로>
plan/consensus-build:build implement [모델] <구현계획 파일경로>
implement모든 모드에서 두 번째 단어가 모델명(sonnet, opus, haiku)이면 해당 모델 사용, 아니면 기본 opus.
파싱한 모델명을 기억하라. Agent Teams 호출 시 model 파라미터로 전달한다.
이 스킬은 아래 지원 파일들을 사용한다. 각 Phase에서 필요할 때 Read 도구로 읽어라.
파이프라인 시작 시 상태 파일을 생성한다. Write 도구로 .claude/consensus-build-state.local.md에 아래 내용을 그대로 작성한다. 플레이스홀더({...})만 실제 값으로 치환하고, 템플릿에 없는 필드를 절대 추가하지 말 것. session_id, timestamp, feature_name 등 임의 필드를 추가하지 말 것. session_id는 stop hook이 자동으로 관리한다:
전체 파이프라인 모드:
active: true
mode: pipeline
phase: 1
completed: false
spec_file:
impl_file:
current_task:
tasks_completed: 0
tasks_total: 0
기능정의서 리뷰 전용 모드:
active: true
mode: review-spec
phase: 2
completed: false
review_file: {리뷰 대상 기능정의서 파일 경로}
구현 계획 리뷰 전용 모드:
active: true
mode: review-impl
phase: 4
completed: false
review_file: {리뷰 대상 구현 계획 파일 경로}
계획+구현 모드:
active: true
mode: plan
phase: 3
completed: false
spec_file: {기능정의서 파일 경로}
impl_file:
current_task:
tasks_completed: 0
tasks_total: 0
구현 전용 모드:
active: true
mode: implement
phase: 6
completed: false
impl_file: {구현 계획 파일 경로}
current_task:
tasks_completed: 0
tasks_total: 0
.claude 디렉토리가 없으면 생성한다.
상태 파일 생성 후, docs/learnings.md가 존재하면 Read 도구로 읽는다. 최근 5건의 학습 기록만 로드하여 컨텍스트 소모를 제한한다 (2K 토큰 이내). 이 학습 내용은 이후 Phase에서 같은 실수를 반복하지 않기 위한 참고 자료로 활용한다. 30일 이상 경과한 항목은 (Nd ago — 현재 유효한지 검증 필요) 표시를 붙여 참고만 한다.
또한, 프로젝트 루트의 AGENTS.md (또는 CLAUDE.md)에 ## Discovered Patterns 섹션이 있으면 해당 섹션도 읽는다.
모드에 따라:
파싱한 기능 설명을 바탕으로 상세하고 구체적인 기능정의서를 작성하라. 추상적 서술을 피하고, 수치/일정/용어를 명확히 정의해야 리뷰가 의미 있다.
# {기능명} 기능정의서
## 1. 개요
- 기능 한 줄 요약
- 핵심 가치 제안
## 2. 배경 및 목적
- 해결하려는 문제
- 현재 상태(As-Is)와 목표 상태(To-Be)
- 비즈니스 임팩트
## 3. 용어 정의
- 문서 전체에서 사용하는 핵심 용어와 그 정의를 표로 정리
- 이후 문서에서 이 용어를 일관되게 사용할 것
## 4. 사용자 스토리
- US-001, US-002... 형식
- As a {역할}, I want {기능}, So that {가치}
## 5. 기능 요구사항
- FR-001, FR-002... 형식
- 각 요구사항에 우선순위(P0/P1/P2), 관련 사용자 스토리 ID 포함
- 구체적 수치 포함 (예: 응답시간 200ms 이내, 최대 동시 접속 1000명)
## 6. 비기능 요구사항
- NFR-001, NFR-002... 형식
- 성능, 보안, 확장성, 가용성, 접근성 등
- 측정 가능한 기준 포함
## 7. 기술 설계
- 아키텍처 개요
- 주요 컴포넌트와 역할
- 기술 스택
- 시스템 간 연동 방식
## 8. 데이터 모델
- 주요 엔티티, 속성, 관계
- 테이블/스키마 설계 (필요시)
## 9. API 설계
- 주요 엔드포인트, 메서드, 요청/응답 형식
- 인증/인가 방식
## 10. UI/UX 고려사항
- 주요 화면 흐름
- 핵심 인터랙션
- 접근성 요구사항
## 11. 마일스톤 및 일정
- Phase 1, 2, 3... 단계별 구현 계획
- 각 단계의 산출물, 예상 기간, 의존 관계
- 구체적 날짜 또는 상대적 기간(예: 착수 후 2주)
## 12. 리스크 및 완화 방안
- RISK-001, RISK-002... 형식
- 발생 확률(H/M/L), 영향도(H/M/L), 완화 전략
## 13. 성공 지표
- 정량적 KPI, 목표값, 측정 방법, 측정 주기
- 기능 요구사항의 수치와 일관되게 작성할 것
## 14. 의존성
- 외부 시스템, 팀, 라이브러리 의존성
- 각 의존성의 리스크 수준
## 15. 범위 제외 사항
- 이번 스코프에 포함하지 않는 것
- 향후 고려 가능 여부
docs/feature-spec-{적절한-kebab-case-이름}.mdPhase 1 완료 후 Edit 도구로 상태 파일을 업데이트한다: phase: 1 → phase: 2, spec_file: → spec_file: {생성한 기능정의서 경로}. 즉시 Phase 2로 진행. 멈추지 말 것.
기능정의서 리뷰 전용 모드(review-spec)에서는 이 Phase부터 시작한다. 대상 파일은 입력 파싱에서 결정한 파일 경로를 사용. 전체 파이프라인 모드에서는 Phase 1에서 저장한 파일 경로를 사용.
최대 5라운드까지 반복한다. 라운드 번호를 Round 1부터 추적.
Agent 도구를 사용하여 Agent Teams 3명을 동시에(병렬로) 실행하라. 동일한 지시와 동일한 내용을 주어 가중 투표 방식으로 검토 결과를 취합한다.
중요: 각 Agent 호출 시 model 파라미터에 입력 파싱에서 결정한 모델명을 지정할 것.
각 Agent에게 기능정의서 파일 경로와 함께 review-spec-prompt.md의 내용을 전달한다.
파일 경로의 {Phase 1에서 저장한 파일 경로} 부분을 실제 경로로 치환하여 전달할 것.
라운드 독립성 규칙: 모든 라운드에서 각 Agent에게 전달하는 내용은 오직 (1) 기능정의서 파일 경로와 (2) review-spec-prompt.md의 내용뿐이어야 한다. Round 2 이상에서도 Round 1과 완전히 동일한 프롬프트를 사용한다. 다음 정보를 Agent 프롬프트에 절대 포함하지 말 것:
Agent는 문서를 처음 보는 것처럼 독립적으로 검토해야 한다. 이 규칙은 Agent 호출에만 적용된다. 메인 에이전트는 Step 2.2 취합 시 이전 라운드 결과를 참조하여 반복 이슈를 판별한다.
aggregation-rules.md의 절차를 따라 취합한다.
취합 결과를 docs/review-round-{라운드번호}.md에 저장한다.
Needs Review 이슈는 자동 반영하지 않고 기록만 해둔다 (Phase 5에서 자율 판단하여 반영).
루프 판정 기준에 따라 계속 또는 다음 Phase로 이동.
Phase 2 완료 후:
review-spec): Edit 도구로 상태 파일의 phase: 2 → phase: 5로 변경한다. 즉시 Phase 5로 진행. 멈추지 말 것.phase: 2 → phase: 3으로 변경한다. 즉시 Phase 3으로 진행. 멈추지 말 것.Phase 2에서 확정된 기능정의서를 기반으로 구현 계획을 작성한다. tdd-tidy.md의 원칙을 엄격히 준수하여 태스크를 설계한다.
# {기능명} 구현 계획
## 구현 원칙
- TDD 사이클: Red → Green → Refactor
- Tidy First: 구조적 변경과 행위적 변경을 분리
- 구조적 변경 먼저, 행위적 변경은 그 다음
- 각 커밋은 구조적 또는 행위적 중 하나만 포함
## 요구사항 추적 매트릭스
| 요구사항 ID | 요구사항 요약 | 관련 태스크 |
|-------------|-------------|-------------|
| FR-001 | ... | TASK-003, TASK-004 |
| NFR-001 | ... | TASK-007 |
## 구현 순서 개요
기능을 작은 증분(increment)으로 나누고, 각 증분은 아래 패턴을 따른다:
1. Structural: 필요한 구조 준비 (파일 생성, 인터페이스 정의, 리팩토링)
2. Red: 실패하는 테스트 작성
3. Green: 테스트를 통과시키는 최소 코드 작성
4. Refactor: 통과 후 코드 개선 (구조적 변경으로 분리)
## 태스크 목록
### TASK-001: {제목}
- **변경 유형**: Structural | Behavioral
- **TDD 단계**: Setup | Red | Green | Refactor
- **설명**: 이 태스크에서 수행할 작업
- **테스트**: (Red인 경우) 작성할 테스트와 예상 실패 이유
- **구현**: (Green인 경우) 테스트를 통과시키기 위한 최소 구현
- **의존성**: TASK-xxx (선행 태스크)
- **관련 요구사항**: FR-xxx, NFR-xxx
- **완료 기준**: 이 태스크가 완료된 상태의 정의
- **커밋 메시지 예시**: "structural: ..." 또는 "behavioral: ..."
### TASK-002: {제목}
...
## 태스크 의존성 그래프
TASK-001 → TASK-002 → TASK-003
↘ TASK-004
(텍스트 기반 의존성 시각화)
## 테스트 전략
- 단위 테스트: 각 컴포넌트의 핵심 로직
- 통합 테스트: 컴포넌트 간 연동
- E2E 테스트: 사용자 시나리오 기반
- 테스트 커버리지 목표: 80% 이상
docs/impl-plan-{적절한-kebab-case-이름}.mdPhase 3 완료 후 Edit 도구로 상태 파일을 업데이트한다: phase: 3 → phase: 4, impl_file: → impl_file: {생성한 구현 계획 경로}. 즉시 Phase 4로 진행. 멈추지 말 것.
구현 계획 리뷰 전용 모드(review-impl)에서는 이 Phase부터 시작한다. 대상 파일은 입력 파싱에서 결정한 파일 경로를 사용.
최대 5라운드까지 반복한다. 라운드 번호를 Round 1부터 추적.
Agent 도구를 사용하여 Agent Teams 3명을 동시에(병렬로) 실행하라.
중요: 각 Agent 호출 시 model 파라미터에 입력 파싱에서 결정한 모델명을 지정할 것.
각 Agent에게 구현 계획 파일 경로와 함께 review-impl-prompt.md의 내용을 전달한다. 파일 경로의 플레이스홀더를 실제 경로로 치환하여 전달할 것.
라운드 독립성 규칙: 모든 라운드에서 각 Agent에게 전달하는 내용은 오직 (1) 구현 계획 파일 경로와 (2) review-impl-prompt.md의 내용뿐이어야 한다. Round 2 이상에서도 Round 1과 완전히 동일한 프롬프트를 사용한다. 다음 정보를 Agent 프롬프트에 절대 포함하지 말 것:
Agent는 문서를 처음 보는 것처럼 독립적으로 검토해야 한다. 이 규칙은 Agent 호출에만 적용된다. 메인 에이전트는 Step 4.2 취합 시 이전 라운드 결과를 참조하여 반복 이슈를 판별한다.
aggregation-rules.md의 절차를 따라 취합한다.
취합 결과를 docs/impl-review-round-{라운드번호}.md에 저장한다.
Needs Review 이슈는 자동 반영하지 않고 기록만 해둔다 (Phase 5에서 자율 판단하여 반영).
루프 판정 기준에 따라 계속 또는 Phase 5로 이동.
Phase 4 완료 후 Edit 도구로 상태 파일의 phase: 4 → phase: 5로 변경한다. 즉시 Phase 5로 진행. 멈추지 말 것.
실행된 리뷰 Phase(Phase 2 및/또는 Phase 4)에서 기록해 둔 Needs Review 이슈를 자율 판단한다. 해당 모드에서 실행되지 않은 Phase의 이슈는 존재하지 않으므로 무시한다.
docs/decisions-log.md에 저장한다# 자율 결정 로그
## 결정 원칙
- 사용자 경험 최적화 우선
- 기술적 안전성 우선 (불확실하면 보수적으로)
- 초기 버전은 단순하게, 복잡한 것은 이후 Phase로
## 결정 목록
### DEC-001: {이슈 제목}
- **원본 이슈**: {어느 Phase, 어느 Round에서 발견}
- **선택지**: A) ... B) ... C) ...
- **결정**: {선택한 옵션}
- **근거**: {왜 이 결정을 내렸는지}
- **반영 위치**: {어느 문서의 어느 섹션에 반영했는지}
- **사용자 확인 필요도**: 높음 | 보통 | 낮음
리뷰 전용 모드에서는 Phase 5가 최종 단계이다. 리뷰 결과를 보고하고 상태 파일의 completed를 true로 변경한다.
# {기능정의서 | 구현 계획} 리뷰 완료
## 결과 요약
- 대상 파일: {리뷰 대상 파일 경로}
- 리뷰 유형: {기능정의서 리뷰 (review-spec-prompt.md) | 구현 계획 리뷰 (review-impl-prompt.md)}
- Agent Teams 모델: {사용된 모델명}
- 총 리뷰 라운드: {N}회
- 최종 상태: {PASS | 잔여 이슈 있음}
## 라운드별 이력
| 라운드 | 발견 이슈 | CRITICAL | MAJOR | MINOR | 수정 반영 |
|--------|-----------|----------|-------|-------|-----------|
## 잔여 이슈 (있는 경우)
- ⚪ Low Priority 또는 MINOR 이슈 목록
전체 파이프라인 / 계획+구현 / 구현 전용 모드에서는 Phase 5 완료 후 Edit 도구로 상태 파일의 phase: 5 → phase: 6으로 변경한다. 즉시 Phase 6으로 진행. 멈추지 말 것.
구현 계획(impl-plan)을 Read 도구로 읽고, TASK 순서대로 코드를 구현한다. tdd-tidy.md의 원칙을 실제 코드에 적용한다.
입력 파싱에서 결정한 구현 계획 파일을 읽어 사용한다.
각 TASK에 대해:
Structural 태스크: 파일 생성, 디렉토리 구조 설정, 인터페이스 정의, 리팩토링 등 구조적 변경만 수행. 테스트를 실행하여 기존 동작이 변경되지 않았음을 확인.
Behavioral 태스크 (Red → Green → Refactor):
docs/learnings.md에 append한다 (실패한 접근법, 새로 발견한 패턴). 배운 게 없으면 기록하지 말 것 — 억지로 채우지 말 것. 이미 기록된 내용과 중복되면 생략. 형식은 Phase 7 Step 7.0과 동일.git add . 금지 — 변경한 파일만 개별 git add. node_modules, .env, dist, build 등 빌드 산출물/의존성 금지. .gitignore가 있으면 준수. 커밋 전 git diff --cached로 추가된 파일을 확인하여 의도하지 않은 파일이 포함되어 있으면 제거. 커밋 메시지는 구현 계획의 "커밋 메시지 예시"를 따르되 형식은 <type>(<scope>): <설명> (type: feat, fix, test, refactor, docs, chore). Structural TASK는 refactor: 프리픽스, Behavioral TASK는 feat:/fix:/test: 프리픽스를 사용. 커밋 전 모든 테스트가 통과하는 상태인지 확인한다. git 저장소가 아닌 경우 이 커밋 단계는 생략.docs/learnings.md에 실패 사실을 기록하고 systemMessage로 알려준다. 그때 근본 원인을 분석하여 learnings.md의 해당 항목에 Why와 How to apply를 보완하라. 다른 접근을 우선 고려하되, 같은 방법의 미세 변형이 답일 수도 있음. hook이 동작하지 않는 경우 수동으로 기록하라.docs/impl-deviations.md에 기록docs/decisions-log.md에 추가 기록한다.Phase 6 시작 시, 구현 계획 파일에서 ### TASK- 패턴의 총 개수를 센다. Edit 도구로 상태 파일을 업데이트한다:
tasks_total: 0 → tasks_total: {총 TASK 수}current_task: → current_task: TASK-001각 TASK 완료 후 Edit 도구로:
tasks_completed를 1 증가current_task를 다음 TASK 번호로 변경Phase 6 완료 후 Edit 도구로 상태 파일의 phase: 6 → phase: 7로 변경한다. 즉시 Phase 7로 진행. 멈추지 말 것.
모든 Phase가 완료된 후, 먼저 학습을 정리하고 최종 보고를 출력한다.
이번 파이프라인에서 배운 것을 docs/learnings.md에 append한다.
Phase 6에서 즉시 기록한 항목이 있으면, 이를 재검토하여 병합·보완한다 (중복 항목은 하나로 통합).
## {날짜} — {기능명 또는 TASK 범위}
### 실패한 접근법
- {시도한 것}
- Why: {왜 실패했는지}
- How to apply: {다음에 이 상황에서 어떻게 할지}
- ...
### 발견한 패턴
- {패턴 이름}
- Why: {왜 효과적인지 / 왜 중요한지}
- How to apply: {어떤 상황에서 적용할지}
- ...
(성공 패턴도 여기에 포함. 기록 기준: "처음 시도했는데 바로 성공(비자명)" 또는 "실패 후 전환해서 성공"한 경우만)
### 다음에 다르게 할 것
- {1줄 조언}
규칙:
AGENTS.md (또는 CLAUDE.md)의 ## Discovered Patterns 섹션에 영구 기록한다. 승격 후 learnings.md에서 해당 항목을 제거한다. 해당 섹션이 없으면 파일 끝에 생성한다.docs/learnings.md 파일이 없으면 생성한다.
# 파이프라인 완료
## 결과 요약
- 기능정의서: {파일 경로}
- 구현 계획: {파일 경로}
- Agent Teams 모델: {모델명}
## 기능정의서 리뷰 (Phase 2)
- 총 리뷰 라운드: {N}회
- 최종 상태: {PASS}
| 라운드 | 발견 이슈 | CRITICAL | MAJOR | MINOR | 수정 반영 |
|--------|-----------|----------|-------|-------|-----------|
## 구현 계획 리뷰 (Phase 4)
- 총 리뷰 라운드: {N}회
- 최종 상태: {PASS}
| 라운드 | 발견 이슈 | CRITICAL | MAJOR | MINOR | 수정 반영 |
|--------|-----------|----------|-------|-------|-----------|
## 자율 결정 사항 (Phase 5)
- 총 결정: {N}건
- 사용자 확인 필요도 높음: {N}건
| # | 결정 | 근거 요약 | 확인 필요도 |
|---|------|----------|------------|
## 코드 구현 (Phase 6)
- 완료 TASK: {N}/{총 TASK 수}
- 테스트 결과: {통과/실패 수}
- 계획 대비 변경사항: {있음/없음} (docs/impl-deviations.md 참조)
## 생성된 파일 목록
- docs/feature-spec-{name}.md (기능정의서)
- docs/impl-plan-{name}.md (구현 계획)
- docs/decisions-log.md (자율 결정 로그)
- docs/impl-deviations.md (구현 중 계획 변경 사항, 있는 경우)
- docs/learnings.md (학습 기록 — append)
- docs/review-round-*.md (기능정의서 리뷰)
- docs/impl-review-round-*.md (구현 계획 리뷰)
- src/ (구현된 소스 코드)
- tests/ (테스트 코드)
자율 결정 로그(docs/decisions-log.md) 중 확인 필요도 "높음" 항목을 나열하고, 변경이 필요하면 알려달라고 안내한다.
최종 보고 출력 후, 상태 파일의 completed를 true로 변경한다. 이것으로 Stop Hook이 다음 종료를 허용하게 된다.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub nb3025/consensus-build --plugin consensus-build