Communitygithub.com

jakirhussainkhan/dev-skills

AI 에이전트가 개발자와 소통하는 방법을 설계할 때 사용하세요 — 의도 명확화, 진행 상황 보고, 모호성 처리, 되돌릴 수 없는 작업 전 확인, 오류 전달, 자가 수정, 작업 추적 및 계획 모드 등이 포함됩니다. 에이전트 UX를 구축하거나 에이전트 행동 규칙을 정의할 때도 적합합니다.

dev-skills란 무엇인가요?

이 스킬은 AI 에이전트가 개발자와 효과적으로 소통하기 위한 최적의 프롬프트 패턴과 프로토콜을 제공합니다. 핵심 원칙은 '잘못된 가정으로 자신 있게 행동하는 에이전트보다 잠시 멈추고 묻는 에이전트가 더 낫다'는 것입니다. 작업 위험도에 따라 자율성 수준을 4단계(관찰 및 제안 → 계획 및 제안 → 확인 후 실행 → 완전 자율)로 조절할 수 있는 '자율성 다이얼(Autonomy Dial)'을 제공하며, 기본값은 복잡한 작업은 레벨 2, 잘 정의된 작업은 레벨 3으로 설정합니다. 또한 의도 명확화 프로토콜(Ask-when-Needed), 계획 모드 워크플로(분석 → 계획 → 확인 → 실행 → 검증), 작업 추적을 위한 3파일 구조(tasks.md, session.md, lessons.md), 되돌릴 수 없는 작업 전 확인 템플릿, 오류 심각도 수준별 커뮤니케이션 템플릿 등 체계적인 패턴을 통해 에이전트의 유용한 자율성을 극대화하고 위험을 최소화합니다. Claude Code, Cursor, Codex 등 모든 AI 에이전트 플랫폼에서 활용 가능하며, '에이전트 커뮤니케이션', '의도 명확화', '계획 모드', '작업 추적', '확인' 등의 키워드로 트리거됩니다.

지원 대상~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/jakirhussainkhan/dev-skills/tree/HEAD/.github/skills/ai-prompting-patterns

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

AI 프롬프트 패턴 & 에이전트 커뮤니케이션

핵심 원칙

잘못된 가정에 자신있게 행동하는 에이전트는 질문하고 멈추는 에이전트보다 더 많은 비용을 유발합니다.

목표는 최대 자율성이 아니라 최대 유용한 자율성입니다. 에이전트는 지속적으로 방해하지 않을 정도로 자율적이어야 하지만, 되돌릴 수 없거나 잘못된 작업을 수행하기 전에 스스로를 제어할 만큼 훈련되어야 합니다.


자율성 다이얼

작업 위험도에 따라 적절한 자율성 수준을 설정하세요:

수준모드사용 시기
1관찰 및 제안고위험 환경, 새로운 에이전트, 첫 상호작용
2계획 및 제안복잡한 작업 — 에이전트가 계획을 세우고, 모든 단계에 승인이 필요함
3확인 후 실행에이전트가 전체 작업 순서를 준비하고, 최종 승인/거부를 요청함
4자율 실행사전 승인된 저위험, 되돌릴 수 있는 작업만 해당

기본값: 복잡한 작업은 수준 2, 명확한 작업은 수준 3, 형식/스타일 변경만 수준 4.


의도 명확화

질문해야 할 때 (필요 시 질문 프로토콜)

다음과 같은 경우 행동하기 전에 질문하세요:

  • 핵심 매개변수가 누락된 경우
  • 여러 유효한 해석이 있는 경우
  • 작업이 여러 파일이나 시스템에 걸쳐 있는 경우
  • 작업을 되돌리기 어려울 수 있는 경우
  • 이해에 대한 신뢰도가 임계값 미만인 경우

질문하지 말아야 할 때:

  • 작업이 단순하고 단일 책임인 경우
  • 컨텍스트에서 의도가 명확한 경우
  • 코드베이스를 읽어 질문에 답할 수 있는 경우

질문하는 방법

이진/선택 패턴을 사용하세요 — 개방형 질문 대신 구체적인 옵션을 제안하세요:

❌ 나쁨: "무엇을 해야 할까요?"
✅ 좋음: "인증을 JWT 또는 OAuth2로 구현할 수 있습니다.
          requirements.txt에 oauthlib이 이미 있으므로
          OAuth2를 추천합니다. 진행할까요?"

명확화 템플릿

진행하기 전에 제 이해를 확인하고 싶습니다:
- 이 작업을 다음과 같이 해석합니다: [귀하의 해석]
- 제가 가정하는 핵심 사항: [가정]
- 이것이 맞다면 [조치]를 수행하겠습니다. 그렇지 않다면 명확히 해주세요.

계획 모드

중요하지 않은 작업(3단계 이상, 아키텍처 결정, 여러 파일 변경)의 경우:

계획 모드 워크플로우

1. 분석 — 읽기 전용 단계: 코드베이스 스캔, 종속성 파악,
   엣지 케이스 찾기. 수정 없음.

2. 계획 — 단계별 계획 초안 작성:
   - 수정할 정확한 파일
   - 어떤 변경이 이루어질지와 그 이유
   - 잠재적 위험 또는 트레이드오프
   - 예상 범위

3. 확인 — 개발자에게 계획 제시:
   "제가 제안한 계획입니다. 이것이 올바른가요?
   진행해도 될까요?"

4. 실행 — 확인 후에만 구현

5. 검증 — 테스트 실행, 출력 확인, 완료 확인

계획 형식

## 계획: [작업 이름]

### 접근 방식
[전략에 대한 1-2문장 요약]

### 단계
1. [파일/구성 요소] — [변경 사항 및 이유]
2. [파일/구성 요소] — [변경 사항 및 이유]
3. ...

### 위험
- [잠재적 문제 및 처리 방법]

### 완료 조건
- [ ] [검증 가능한 완료 기준]
- [ ] 테스트 통과
- [ ] 새로운 린트 오류 없음

진행해도 될까요?

작업 추적

장기 실행 또는 복잡한 작업의 경우 상태 로그를 유지하세요:

3파일 구조

tasks.md     — 완료 상태가 포함된 할 일 목록
session.md   — 활성 작업 및 결정에 대한 단기 로그
lessons.md   — 수정 사항에서 얻은 학습 내용

tasks.md 형식

## 스프린트: [작업 이름]

### 할 일
- [ ] 1단계: [설명]
- [ ] 2단계: [설명]
- [x] 3단계: [설명] ✓ 완료

### 결정 사항
- [이유] 때문에 Y 대신 X 선택

### 차단 요소
- [현재 차단 요소]

진행 보고서 형식

[2/5단계] 완료: 인증 모듈 단위 테스트 (12개 테스트, 모두 통과)
[3/5단계] 작업 중: 결제 서비스와 통합
다음: 4단계 — API 문서 업데이트

되돌릴 수 없는 작업 전 확인

되돌릴 수 없는 작업으로 간주되는 것

작업분류
메인/프로덕션 브랜치에 푸시되돌릴 수 없음
프로덕션 DB에서 데이터 삭제중요 / 되돌릴 수 없음
이메일 또는 알림 전송되돌릴 수 없음
프로덕션에 배포되돌릴 수 없음
API 키/자격 증명 교체되돌릴 수 없음
로컬 파일 편집되돌릴 수 있음 (되돌리기 가능)
기능 브랜치에 푸시부분적으로 되돌릴 수 있음
종속성 설치되돌릴 수 있음

확인 템플릿

⚠️ 되돌릴 수 없는 작업을 수행하려고 합니다:

작업: [구체적인 설명 — 예: "3개 파일을 `main` 브랜치에 푸시"]
영향: [변경/삭제/전송될 내용]
되돌릴 수 없는 이유: [되돌릴 수 없게 만드는 요소]

진행하려면 "확인"을 입력하거나 필요한 변경 사항을 설명해 주세요.

절대 동의를 추론하지 마세요. 항상 명시적인 텍스트 확인을 기다리세요.


오류 커뮤니케이션

무언가 실패하면 다음 구조를 사용하세요:

오류 보고서 템플릿

✗ [오류 유형]: [실패한 내용]

근본 원인: [실패 이유 — 모호하지 않고 구체적으로]
수행한 작업: [취한 즉각적인 복구 조치]
현재 상태: [시스템의 현재 상태]
향후 방향: [다음에 수행할 권장 사항]

[권장 조치]를 진행해도 될까요?

오류 심각도 수준

수준시기대응
정보사소한 문제, 자동 수정간략한 메모, 계속
경고문제 발견, 주의 필요보고 및 일시 중지
오류작업 실패, 부분 완료전체 오류 보고서, 진행 방법 질문
심각데이터 손실 위험, 프로덕션 영향즉시 중지, 전체 보고서, 지침 대기

예시 — 좋은 오류 커뮤니케이션 vs 나쁜 오류 커뮤니케이션

❌ 나쁨: "무언가 잘못되었습니다."

✅ 좋음: "✗ 빌드 실패: src/auth/login.ts:45의 TypeScript 오류
근본 원인: 'Session' 유형에 'userId' 속성이 없음 — 
            Session 유형이 최근 업데이트되었습니다.
수행한 작업: 파일을 수정하지 않았습니다.
향후 방향: (a) Session 유형에 userId를 포함하도록 업데이트하거나
              (b) 새 sessionData.user.id 패턴을 사용할 수 있습니다.
어떤 접근 방식을 취해야 할까요?"

자체 수정

에이전트는 기다리지 않고 스스로 오류를 감지하고 수정해야 합니다:

자체 수정 루프

1. 작업 실행
2. 출력 검증 (테스트, 린트, 타입 검사 실행)
3. 문제 발견 시:
   a. 근본 원인 진단
   b. 문제 수정
   c. 재검증
   d. 보고: "다음 문제를 발견하고 수정했습니다: [문제]. [간략한 설명]"
4. 검증이 완료된 경우에만 출력 제시

자체 수정 보고서

이전 출력에서 문제를 감지했습니다:
- 오류: [잘못된 내용]
- 근본 원인: [발생 이유]
- 적용된 수정: [변경한 내용]
- 검증 완료: [수정이 작동하는지 확인한 방법]
- 교훈: [향후 이를 방지하기 위한 규칙]

자체 개선 루프

모든 수정 사항에서 교훈을 얻으세요:

모든 개발자 수정 후

이 수정 사항을 기록했습니다. 교훈을 정리하겠습니다:
- 수행한 작업: [잘못된 작업]
- 수행해야 했던 작업: [올바른 작업]
- 일반 규칙: [추상화된 원칙]
- 이 세션의 모든 남은 작업에 적용하겠습니다.

lessons.md 형식

# Lessons Learned

## [날짜] — [간략한 설명]
- 오류: [잘못된 내용]
- 근본 원인: [근본적인 이유]
- 규칙: [재발 방지를 위한 일반 원칙]
- 적용: [향후 행동에 미치는 영향]

출력 검증

출력을 제시하기 전에 다음 검사를 실행하세요:

코드 출력 체크리스트

  • 컴파일/타입 검사가 통과합니까?
  • 기존 테스트가 여전히 통과합니까?
  • 엣지 케이스가 처리되었습니까?
  • 오류 처리가 존재합니까?
  • 요청된 형식/패턴과 일치합니까?
  • 하드코딩된 비밀 또는 환경별 값이 없습니까?

검증 보고서

✓ 검증 완료:
- 컴파일: ✓
- 테스트: 14/14 통과 ✓
- 린트: 0 오류 ✓
- 엣지 케이스 확인: null 입력, 빈 배열, 최대값 ✓
검토 준비가 되었습니다.

커뮤니케이션 톤 및 형식

  • 간결함 — 요점을 먼저 말하고, 세부 사항은 나중에
  • 명시적 — 구체적인 파일, 함수, 줄 번호를 지정하세요. 절대 "그 함수"라고 말하지 말고 finance.ts:47의 calculateTax()라고 말하세요.
  • 구조화 — 글머리 기호, 번호 매기기 단계, 코드 블록을 사용하세요.
  • 정직함 — 확실하지 않으면 그렇게 말하세요. API나 라이브러리를 절대 환각하지 마세요.
  • 쓸데없는 말 없음 — "훌륭한 질문입니다!", "물론입니다!", "당연하죠!" 건너뛰세요.
  • 전문적 — 직접적이지만 정중하게. 속어 없음, 지나치게 캐주얼한 톤 없음.

복잡한 작업에 대한 응답 구조

[간략한 상태 / 수행한 작업]
[내린 주요 결정과 이유]
[현재 상태]
[다음에 할 일 / 필요한 사항]

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

관련 스킬