From dev-squad
Use when starting new feature development - sets up Agent Teams, gathers requirements, creates plan, implements with parallel agents, runs code review/QA/security checks, and commits with conventional commits
How this skill is triggered — by the user, by Claude, or both
Slash command
/dev-squad:new-featureThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
새로운 기능 개발을 **Agent Teams 협업** 방식으로 진행합니다.
새로운 기능 개발을 Agent Teams 협업 방식으로 진행합니다. 단독 작업이 아닌 Agent Teams (TeamCreate + SendMessage) 협업으로 진행한다. 아래 Phase를 순서대로 진행해줘.
⚠️ 핵심 원칙: Agent Teams 필수 (절대 위반 금지)
team_name 파라미터와 함께 생성 (팀원으로 등록)아래 파일들이 모두 존재하는지 확인해줘.
cto-lead.mdfrontend-senior.mdbackend-senior.mduiux-senior.mdsecurity-senior.mdqa-senior.mdnew-feature.md (이 파일)누락된 파일이 있으면:
모두 존재하면 → .claude/templates/agents/에 템플릿이 있는데 .claude/agents/에 없는 파일이 있으면 복사 후 "사전 조건 검증 완료" 표시
현재 작업 디렉토리(CWD)의 하위 디렉토리를 스캔해줘:
| 파일 | 추정 type |
|---|---|
build.gradle + Spring 의존성 | spring-boot |
pom.xml + Spring 의존성 | spring-boot |
nuxt.config.ts 또는 nuxt.config.js | nuxt |
next.config.* | nextjs |
vite.config.* | vite |
Cargo.toml | rust |
go.mod | go |
package.json만 있음 | node |
| 기타 | unknown |
감지 결과를 테이블로 보여줌.
AskUserQuestion으로 각 디렉토리의 설정을 확인:
확인된 정보로 .claude/project-config.json을 생성/갱신:
{
"directories": [
{ "name": "backend", "path": "backend", "type": "spring-boot" },
{ "name": "frontend", "path": "frontend", "type": "nuxt" }
],
"baseBranch": "master",
"branchPrefix": "feature/"
}
대상 디렉토리들에서 각각 git status --short 실행.
변경사항이 있는 경우:
git stash push -m "auto-stash: $(date +%Y%m%d-%H%M%S)" 실행변경사항이 없으면 "깨끗합니다" 표시 후 다음으로.
AskUserQuestion으로 base 브랜치 선택:
선택된 base 브랜치로:
git checkout {base-branch}git pull origin {base-branch} (실패해도 진행)이 base 브랜치명을 Phase 6에서 사용하므로 기억해둔다.
⚠️ 반드시 브랜치를 먼저 생성한 후 작업을 시작한다. master에서 직접 작업하지 않는다.
AskUserQuestion으로 기능 이름을 수집:
user-profile-edit)AskUserQuestion으로 브랜치명 확인:
git checkout -b {new-branch} 실행
브랜치 생성 확인:
✅ 브랜치 생성 완료: {new-branch}
이후 모든 작업은 이 브랜치에서 진행됩니다.
AskUserQuestion으로 기능의 상세 정보를 수집:
TeamCreate로 팀 생성:
team_name: "{feature-name}"
description: "{기능 설명 요약}"
팀원을 **Task(team_name 필수)**로 생성:
| name | subagent_type | 역할 |
|---|---|---|
| cto-lead | general-purpose | 전체 아키텍처 + 오케스트레이션 |
| frontend-senior | general-purpose | 프론트엔드 구현 |
| backend-senior | general-purpose | 백엔드 구현 |
| uiux-senior | general-purpose | 화면 설계 (필요 시) |
| security-senior | general-purpose | 보안 검증 |
| qa-senior | general-purpose | 테스트/QA |
각 에이전트 생성 시 prompt에:
.claude/agents/{name}.md 파일 내용을 포함⚠️ team_name 없이 Task 실행 = sub-agent = 에이전트 간 메시지 불가 = 절대 금지
CTO Lead가 요구사항을 분석하여:
에이전트들이 SendMessage로 소통하며 Plan 초안 작성:
CTO Lead가 각 초안을 취합하여 최종 Plan 확정:
→ docs/plan/features/{feature}.plan.md 생성
→ feature 이름 최종 확정
(브랜치는 Phase 1-6에서 이미 생성됨)
git add docs/plan/features/{feature}.plan.md
git commit -m "docs: {feature} Plan 문서 작성
기능 요구사항 및 범위 정의.
Co-Authored-By: Claude Opus 4.6 <[email protected]>"
Agent Teams 기반으로 구현 진행:
구현 완료 후 다음을 진행:
| 에이전트 | 작업 | 실패 시 |
|---|---|---|
| Frontend Senior | 프론트 코드리뷰 | 지적사항 기록 → 수정 → 수정내역 기록 |
| Backend Senior | 백엔드 코드리뷰 | 지적사항 기록 → 수정 → 수정내역 기록 |
| Security Senior | 보안 점검 (OWASP Top 10, 인증/인가) | 해당 Senior에게 SendMessage로 수정 요청 |
| QA Senior | 테스트 작성 + 실행 | 수정 → 재실행 (최대 3회) |
| CTO Lead | 요구사항 충족률 확인 | < 90%: 미충족 항목 수정 → 재분석 |
⚠️ npm run test:unit (vitest) 실행 후 fork worker 프로세스가 남아있을 수 있다.
QA Senior는 frontend 테스트 실행 완료 후 반드시 잔여 프로세스를 정리해야 한다:
# vitest/node 잔여 프로세스 확인 및 종료
pkill -f "vitest" 2>/dev/null || true
# fork worker 프로세스 정리
pgrep -f "node.*vitest" | xargs kill 2>/dev/null || true
테스트 완료 후 pgrep -f "vitest" 로 잔여 프로세스가 없는지 확인한다.
각 Senior는 코드리뷰 결과를 CTO Lead에게 SendMessage로 아래 형식으로 보고:
## 코드리뷰 결과 — {Frontend/Backend}
### 지적사항
1. [파일:라인] 내용 — 심각도(Critical/Major/Minor)
2. ...
### 수정 내역
1. [파일:라인] 수정 내용 — 관련 지적사항 번호
2. ...
### 미수정 사유 (있을 경우)
1. [지적사항 번호] 사유
CTO Lead는 이 정보를 Phase 5 최종 요약에 포함한다.
모든 검증 통과 후 아래 형식으로 보고:
작업 완료!
─────────────────────────────────────────────────
Feature: {feature-name}
Branch: feature/{feature-name}
─────────────────────────────────────────────────
대상 디렉토리:
{name}: {type} — {path}
─────────────────────────────────────────────────
검증 결과:
Code Review: Frontend ✅ / Backend ✅
Security: 보안 점검 통과
QA: N/N 시나리오 통과
요구사항: 충족률 {N}%
─────────────────────────────────────────────────
코드리뷰 지적사항 요약:
[Frontend]
Critical (N건):
- 요약...
Major (N건):
- 요약...
Minor (N건):
- 요약...
[Backend]
Critical (N건):
- 요약...
Major (N건):
- 요약...
Minor (N건):
- 요약...
수정 완료: N/N건
미수정: N건 (사유 포함)
─────────────────────────────────────────────────
Stash: {stash 내역 또는 "없음"}
Plan: docs/plan/features/{feature}.plan.md
─────────────────────────────────────────────────
아래 규칙을 반드시 준수하여 커밋:
| prefix | 용도 |
|---|---|
feat: | 새 기능 |
fix: | 버그 수정 |
refactor: | 리팩토링 (동작 변경 없음) |
chore: | 빌드/설정 변경 |
test: | 테스트 추가/수정 |
docs: | 문서 변경 |
git diff --stat으로 변경 파일 확인git status와 git diff --stat으로 전체 변경사항 파악커밋 분리 계획:
1. feat: 사용자 프로필 편집 API 추가 — backend/...
2. feat: 프로필 편집 화면 구현 — frontend/...
3. test: 프로필 편집 테스트 추가 — backend/..., frontend/...
feat: 사용자 프로필 편집 API 추가
프로필 편집 기능의 백엔드 구현.
PUT /api/users/profile 엔드포인트를 추가하여
이름, 이메일, 프로필 이미지 수정을 지원.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
AskUserQuestion으로 다음 단계를 물어봄:
git push -u origin {feature-branch}git checkout {base-branch} && git merge {feature-branch}
({base-branch}는 Phase 1-5에서 선택한 기본 브랜치)QA/테스트 중 실행했던 서버들과 잔여 프로세스를 종료:
lsof -ti :8080 | xargs kill -9 2>/dev/null || true (backend)lsof -ti :3000 | xargs kill -9 2>/dev/null || true (frontend)pkill -f "vitest" 2>/dev/null || true (vitest 잔여 프로세스)pgrep -f "node.*vitest" | xargs kill 2>/dev/null || true (vitest fork worker)team_name 파라미터를 반드시 포함npx claudepluginhub leoheo/dev-squad --plugin dev-squadLaunches agent team for feature implementation using parallel coders, specialized reviewers, and tech lead with structured pipeline. For multi-file changes or frontend/backend features.
Implements features using parallel subagents with scope control, reflection, and MCP servers for memory/context. Activates on implement/build/create requests in JS/TS projects.
Orchestrates unified workflows for feature implementation, bug fixes, autonomous batch processing, planning, ATDD agent teams, and end-to-end coding.