skills/ret/SKILL.md
Team-based Research & Execute: Opus[1M] Leader + 5 Sonnet teammates 리서치/분석/실행
npx skillsauth add dgk-dev/dgk-claude skills/retInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
워크플로우: 6인 팀 기반 리서치 → 분석 → 실행
사용법: /ret [feature-description]
이 워크플로우는 반드시 TeamCreate로 팀을 생성하여 진행한다. Task 도구 단독 호출로 subagent만 사용하는 것은 금지. 리더: Opus[1M] / 팀원 5명: Sonnet (Task tool 제약으로 팀원은 200K context).
/tmp/ret-research/에만 작성.같은 파일을 두 에이전트가 동시에 수정하면 안 된다.
팀원이 subagent를 spawn하면 결과 대기 중 idle 알림이 올 수 있다.
in_progress이면 절대 개입하지 않는다팀원이 태스크를 완료·보고한 후, 다음 태스크 배정 시 교체 여부를 판단한다.
| 조건 | 행동 | 이유 | |------|------|------| | 다음 태스크가 이전 작업과 무관 | 해당 팀원 shutdown + pane kill → 새 팀원 spawn | 팀원 200K 컨텍스트가 차있어 auto-compact 시간 낭비 방지 | | 다음 태스크가 이전 작업의 연장선 | 같은 팀원 유지 | 기존 컨텍스트가 직접 활용됨 |
Claude Code의 graceful shutdown (shutdown_request → approved)은 Claude 프로세스만 종료하고 tmux pane은 남겨둔다 (알려진 버그 #24385). 원인: Claude Code가 send-keys로 shell 안에서 claude를 실행하므로, claude 종료 후 부모 shell이 살아있어 pane이 유지됨. 따라서 반드시 pane을 수동으로 kill해야 한다.
팀원 종료 절차 (PHASE 3 완료 시 + 팀원 교체 시):
tmuxPaneId 확보 (shutdown 후 config에서 제거되므로 사전 확보 필수)SendMessage shutdown_request 전송 및 응답 대기tmux kill-pane -t <paneId> # 팀원별 실행, 실패해도 무시 (2>/dev/null)
TeamDelete 진행참고: TeamDelete는 ~/.claude/teams/과 ~/.claude/tasks/ 파일만 정리하며, tmux pane 정리는 범위 밖이다.
팀원은 Task로 subagent를 활용할 수 있다.
리서치 산출물은 프로젝트 디렉토리를 오염시키면 안 된다.
/tmp/ret-research/{team_name}/에만 작성 (프로젝트 디렉토리에 .md 파일 생성 금지)/tmp/ret-research/는 PHASE 4에서 일괄 정리 (decisions.md만 보존)병렬 처리를 통한 속도 극대화와 전략적 판단에 집중이 팀원 위임의 핵심 목적이다. 기본 원칙: 위임 가능하면 위임. 리더가 직접 해야 판단이 가능한 경우에만 직접 수행.
허용:
금지:
예외: PHASE 0 부트스트랩(팀 생성 전)과 PHASE 4 검증(팀 해산 후)은 리더 직접 수행
# 1단계: 직접 관련 커밋 검색
git log --oneline -50 --grep="키워드" --format="%h %s"
# 2단계: 프로젝트 공통 교훈 확인
git log --oneline -30 --grep="\[gotcha\]\|\[insight\]\|\[context\]" --format="%s"
# 3단계: 필요한 커밋만 상세 확인
git show <commit-hash> --format="%B" --no-patch
/tmp/ret-research/{team_name}/tech-stack.md에 기록## 프로젝트 기술스택 섹션에 삽입됨TeamCreate({
team_name: "ret-<디테일한 작업명>",
description: "<디테일한 팀 목적>"
})
TeamCreate 완료 후 리서치 디렉토리 생성:
mkdir -p /tmp/ret-research/${team_name}/
팀원 5명을 한 번의 응답에서 병렬로 spawn:
| 파라미터 | 값 |
|----------|-----|
| team_name | TeamCreate에서 사용한 이름 |
| name | 작업 특성에 맞게 자율 결정 |
| model | "sonnet" |
| subagent_type | "general-purpose" |
| mode | "bypassPermissions" |
TaskCreate × N → TaskUpdate(owner) × N
목적: 팀원 5명이 병렬로 리서치/분석 수행
팀원 각자 실행:
리서치 도구 (교차 검증용, 공식 문서 신뢰도 최우선) (subagent에게 전달):
resolve-library-id → query-docs) — 공식 문서 조회, 데이터 신뢰도 최우선웹 접근 규칙:
팀원 산출물 (→ Leader 보고):
완료 조건: 모든 팀원 보고 완료 + Leader 종합 완료 (개별 보고는 도착 즉시 분석 가능)
Sequential Thinking MCP로 종합 분석:
코딩 핵심 체크:
최소 3가지 구현 옵션 도출 (모든 옵션 엔터프라이즈 레벨 필수):
객관적 비교 → 최적안 추천 (작업량은 평가 기준 아님, 최종 품질만 고려)
구현 계획 상세화: 변경 영역별 상세 설명
사용자 승인 대기 (AskUserQuestion):
전제: 사용자 승인 완료
이 Phase에서 Leader는 승인된 계획을 바탕으로 orchestrator로서 팀원에게 최대한 위임한다. Leader는 "전략적 리더 규율"을 준수하며 조율에 집중한다:
항상 적용되는 원칙:
git diff에 계획 외 파일이 보여도 다른 세션 작업일 수 있음. git restore/git checkout --는 bash-guard hook이 차단함. 에이전트의 실수가 의심되면 사용자에게 확인 후 조치PHASE 3 완료 후: "tmux Pane Cleanup" 절차에 따라 팀원 종료 (config에서 paneId 확보 → shutdown_request → tmux kill-pane) → TeamDelete
사용자 선택 (AskUserQuestion):
Cleanup + Commit (선택 시):
/tmp/ret-research/{team_name}/ 전체 삭제 (rm -rf), 프로젝트 디렉토리에 리서치 .md 혼입 여부 확인 → 발견 시 삭제pnpm lint --fixgit add 시 이번 세션에서 수정한 파일만 개별 명시 (git add . 금지)/rrr (GLM-5 코드 리뷰 스킬 호출)Conventional Commits + 학습 태그:
feat(auth): Add Google OAuth with refresh token rotation
- OAuth 2.0 authorization code grant 구현
- Access/Refresh token 자동 갱신 로직
[context] auth 모듈은 next-auth 없이 직접 구현 (경량화 목적)
[insight] OAuth state 파라미터는 CSRF 방지 필수
[gotcha] Google은 prompt=consent 있어야만 refresh_token 반환
[decision] JWT 대신 httpOnly 쿠키 선택 - XSS 공격 표면 최소화
[followup] silent refresh 미구현 - 토큰 만료 시 UX 영향
🤖 Generated with Claude Code
Co-Authored-By: Claude <[email protected]>
| 태그 | 용도 |
|------|------|
| [context] | 향후 세션에 필요한 배경/맥락 |
| [insight] | 새로 배운 사실, 패턴, 베스트 프랙티스 |
| [gotcha] | 함정, 삽질 원인, 문서에 없는 주의사항 |
| [decision] | 설계/아키텍처 결정과 그 이유 |
| [followup] | 미완성 작업, 기술 부채, 후속 필요 사항 |
필수 아님 - 의미 있는 학습이 있을 때만 기록
원칙: shadcn/ui 컴포넌트 + 테마 변수 최대 활용
pnpm dlx shadcn@latest add [component], shadcn에 없는 경우에만 커스텀// ❌ bg-blue-500 text-white border-gray-300
// ✅ bg-primary text-primary-foreground border-border
팀원 spawn 시 prompt에 반드시 포함할 내용:
당신은 "${name}" 팀원입니다. ${team_name} 팀에 소속되어 있습니다.
## 🚫 행동 제한 (최우선)
- **프로젝트 파일 수정 금지**: Leader가 구현을 명시적으로 위임하기 전까지 프로젝트 디렉토리의 파일을 Write/Edit하지 않는다. (리서치 파일은 `/tmp/ret-research/${team_name}/`에만 작성 가능)
- **구현 위임 시에도 범위 엄수**: Leader가 명시한 파일만 수정. 관련 있어 보여도 명시되지 않은 파일은 절대 수정 금지. 추가 수정이 필요하면 Leader에게 보고 후 승인받기.
- **git 명령 금지**: git add, commit, push, restore, checkout은 Leader만 수행한다. 팀원이 직접 커밋하거나 파일을 복원하는 것은 어떤 상황에서도 금지.
- WebFetch 사용 금지 (subagent/본인 모두). 웹페이지 접근은 Jina MCP 사용
- subagent 프롬프트에 반드시 "WebFetch 사용 금지. Context7 + WebSearch + Jina MCP 사용하세요." 명시
- 리서치 도구: Context7(공식 문서 신뢰도 최우선) + WebSearch + Jina MCP 자유롭게 활용
## 프로젝트 기술스택
/tmp/ret-research/{team_name}/tech-stack.md를 반드시 먼저 읽어 프로젝트 컨텍스트를 파악하세요.
## 역할
<구체적 역할 설명>
## 작업
<구체적 작업 지시>
## 보고
- 상세 분석은 /tmp/ret-research/{team_name}/[name]-report.md에 작성
## 팀 프로토콜
- 작업 시작: TaskGet → TaskUpdate(status: "in_progress")
- 작업 완료: TaskUpdate(status: "completed") → team-lead에게 결과 보고
- subagent 활용: Task 3~7개를 한 번의 응답에서 동시에 spawn, model: "haiku" (리서치/파일읽기만, 구현 위임 금지, 단순 3개/중간 4~5개/복잡 6~7개 자율 조절)
- ⚠️ Agent 도구로 subagent spawn 시 team_name 파라미터를 절대 포함하지 마세요. team_name을 포함하면 subagent가 아닌 새 팀원이 tmux pane으로 spawn됩니다.
- ⚠️ TeamCreate, TeamDelete 사용 금지 (Leader 전용)
- ⚠️ subagent 결과를 기다리는 중이면, 결과 수신 전에 반드시 team-lead에게 "subagent 대기 중, 완료되면 보고하겠습니다" 메시지를 보내세요. 결과를 모두 받고 정리한 뒤에 최종 보고하세요.
팀원 교체 시 (Per-task Replacement) 새 팀원의 spawn prompt에 추가할 섹션:
## 이전 작업 컨텍스트
이 팀에서 이전에 완료된 관련 작업 요약:
- [이전 팀원이 완료한 태스크 및 핵심 결과 요약]
- [관련 결정사항 (decisions.md에서 발췌)]
- [이전 산출물 경로 (참조 필요 시)]
위 컨텍스트는 참고용이며, 새 태스크에 집중하세요.
상세가 필요하면 /tmp/ret-research/{team_name}/ 파일 참조.
파라미터는 초기 spawn과 동일 (model: "sonnet", mode: "bypassPermissions")
Leader가 SendMessage로 팀원에게 작업을 위임/추가 지시할 때 반드시 준수:
포함 문구 정책:
⚠️ 리마인더:
- WebFetch 사용 금지. 웹페이지 접근은 Jina MCP 사용
- 리서치 도구: Context7(공식 문서 신뢰도 최우선) + WebSearch + Jina MCP 자유롭게 활용
- 리서치 파일은
/tmp/ret-research/{team_name}/에만 작성. 프로젝트 디렉토리에 .md 생성 금지
⚠️ 표준 리마인더 적용 (spawn prompt 참조)
이유: 팀원은 독립 세션이라 spawn prompt 이후 컨텍스트가 희석될 수 있음. 첫 위임 시 전체 포함, 이후는 축약으로 토큰 절약.
/re 워크플로우로 전환PHASE 0 (강제): 컨텍스트 스냅샷 → TeamCreate → 팀원 5명 Sonnet spawn → 태스크 배분
↓
PHASE 1 (강제): 팀원 병렬 리서치/분석 (각 subagent 3~7개 동시, 복잡도에 따라 자율 조절) → Leader 종합
↓
PHASE 2 (강제): Sequential Thinking 종합 (자기검증 3질문 포함) → 3+ 옵션 → ⏸️ 사용자 승인
↓
PHASE 3 (자율): Leader가 orchestrator로서 팀원에게 위임 — 구현/추가리서치/방향전환 자유 (팀원 교체 정책 적용, 리더 규율 준수)
↓ (팀원 종료 + tmux pane kill → TeamDelete)
PHASE 4 (강제): Leader 직접 검증 → ⏸️ 사용자 선택 → Cleanup → Commit
버전: 5.9.0
출처: https://github.com/dgk-dev/dgk-claude
tools
GLM-5 코드 리뷰 (유료). /rr의 상위 버전 — GLM-5 744B 모델로 더 깊은 리뷰. /rrr 또는 'GLM-5 리뷰' 요청 시 사용.
data-ai
코드 리뷰. 작업 후 변경사항을 Z.AI 모델로 깊이 있게 검토. /rr 또는 'GLM 리뷰' 요청 시 사용. (기본: glm-4.7-flash 무료)
research
Research-first workflow: 리서치 → 분석 → 실행/수정 → 검증 → 커밋 (상황에 맞게 PHASE 자동 조절)
data-ai
Commit & Push. 이 세션에서 수정한 파일만 커밋 + main 푸시.