[프리랜서 클코 스터디] Claude Code가 스스로 자동화를 제안하게 만들기 - "프롬프트 기반 자동화 생성 시스템" 개발기 (개발 진행중)

Claude Code가 스스로 자동화를 제안하게 만들기 — "프롬프트 기반 자동화 생성 시스템" 개발기


소개

시도하고자 했던 것

"내가 반복하는 작업을 AI가 알아서 파악하고, 자동화를 제안해주면 어떨까?"

Claude Code(Anthropic의 공식 CLI 도구)를 쓰다 보면, 같은 요청을 반복하게 됩니다.

  • "커밋해줘"

  • "이 코드 리뷰해줘"

  • "테스트 돌려줘"

이런 반복 패턴을 AI가 스스로 감지해서 "이거 자동화할까요?" 하고 제안해주는 시스템을 만들고 싶었습니다.

왜 이걸 만들었나

Claude Code에는 3가지 자동화 도구가 있습니다:

도구

쉽게 말하면

예시

Skill

단축 명령어 (매크로)

/commit 치면 알아서 커밋

Agent

전문가 비서

코드 리뷰 전문가, 보안 분석가

Multi-Agent

전문가 팀

프론트+백엔드+보안 동시 리뷰

문제는 "언제 뭘 만들어야 하는지 모른다"는 겁니다. Skill로 충분한 걸 Agent로 만들면 오버엔지니어링이고, Agent가 필요한 걸 Skill로 만들면 부족하죠.

그래서 만들었습니다 — 내 프롬프트 사용 패턴을 분석해서, 적절한 자동화 유형을 추천해주는 시스템.


진행 방법

사용 도구

  • Claude Code (Anthropic 공식 CLI) — 개발 전 과정을 Claude와 대화하며 진행

  • Claude Code Hooks — 사용자 행동을 자동 감지하는 트리거 시스템

  • Node.js — Hook 스크립트 작성

  • GitHub — 코드 저장소

개발 과정 (시간순)


1단계: 아이디어의 시작 — "프롬프트를 저장하자"

처음 아이디어는 단순했습니다. Claude에게 물어봤죠:

나: claude 규칙을 적는 claude.md를 만들어라

그리고 이어서:

나: 프롬프트를 저장하는 sub-agent를 만들어줘

"내가 뭘 자주 물어보는지 기록해두면, 나중에 자동화할 게 보이지 않을까?" 라는 단순한 생각이었습니다.


2단계: 첫 번째 시행착오 — "왜 작동을 안 하지?"

Agent를 만들었는데... 작동을 안 했습니다.

나: save-prompt 에이전트를 실행이 되었는데 왜 프롬프트 저장을 안하지?

나: 오버엔지니어링인거야? 아니면 안되는거야?

알고 보니, CLAUDE.md에 "이 Agent를 실행해라"라고 적어놔도 자동으로 실행되지 않았습니다. Agent는 사용자가 직접 호출해야 하는 도구였고, 자동 실행은 Hook이라는 별도 시스템이 필요했습니다.

배운 점: Agent는 "전문가"이지, "자동 비서"가 아닙니다. 자동으로 뭔가 하려면 Hook을 써야 합니다.


3단계: Hook으로 방향 전환 — "프롬프트 자동 저장 성공!"

Hook은 "특정 이벤트가 발생하면 자동으로 실행되는 스크립트"입니다. 마치 현관문에 달린 센서등처럼, 사람이 지나가면(= 프롬프트를 입력하면) 자동으로 불이 켜지는(= 저장하는) 것이죠.

만든 Hook (save-prompt.js)의 동작:

사용자가 프롬프트 입력
    ↓
Hook이 자동 감지
    ↓
prompt/personal_prompt.md에 타임스탬프와 함께 저장
    ↓
10개 쌓이면 "분석해볼까요?" 알림

핵심 코드:

// 타임스탬프 생성
const now = new Date();
const timestamp = now.toISOString().slice(0, 16).replace('T', ' ');

// 저장할 내용
const entry = `\n## [${timestamp}]\n\n${prompt.trim()}\n\n---\n`;

// 파일에 추가
fs.appendFileSync(promptFile, entry, 'utf8');

슬래시 명령어(/analyze-prompt 같은)나 빈 프롬프트는 자동으로 걸러냅니다.


4단계: 분석 시스템 구축 — "점수로 판단하자"

프롬프트가 쌓이면, 이제 분석해야 합니다. 어떤 자동화가 적합한지 어떻게 판단할까요?

점수제를 도입했습니다:

유형

조건

점수

Skill

같은 명령 2회 이상 반복

+3

Skill

"~해줘" 형태의 명령

+2

Agent

복잡한 분석/판단 필요

+3

Agent

읽기 전용으로 충분

+3

Multi-Agent

여러 전문 영역 필요

+4

Multi-Agent

병렬 처리 가능

+3

5점 이상이면 해당 유형을 추천합니다.

예를 들어:

  • "커밋해줘"를 4번 반복 → 반복 +3, 명령형 +2 = Skill 5점 → Skill 추천!

  • "이 코드 리뷰해줘" → 복잡한 판단 +3, 전문 지식 +2 = Agent 5점 → Agent 추천!

이 기준은 .claude/rules/automation-criteria.md에 정리해뒀고, Anthropic 해커톤 우승작인 everything-claude-code의 양식을 참고했습니다.


5단계: 결정적 발견 — "Claude가 모든 대화를 이미 저장하고 있었다!"

여기서 큰 전환점이 있었습니다.

나: 과거에 너랑 대화 내용이 자동으로 저장되는 곳은 없지?

Claude: C:\Users\P\.claude\projects\ 경로에 모든 세션이 JSONL 형태로 저장되어 있습니다.

확인해보니 진짜였습니다. Claude Code는 모든 대화 내용 — 내가 한 질문, Claude의 답변, 어떤 도구를 썼는지, 에러가 났는지 — 를 전부 로컬에 자동 저장하고 있었습니다!

이 순간 아이디어가 확장됐습니다:

나: 내가 질문한 프롬프트 말고도 답변한 것도 같이 보여주면 좋으려나? 여기에 있는 대화내용들 처럼 모든 걸 다 저장하고 그걸 토대로 추천해주는게 더 develop 되려나?

"프롬프트 텍스트만 분석"에서 "실제 작업 기록 전체를 분석"으로 업그레이드!


6단계: 심층 분석 모드 (Deep Analysis Mode) 구현

세션 파일에는 이런 정보가 들어있습니다:

- 어떤 도구를 몇 번 썼는지 (Bash 45회, Read 30회, Edit 20회...)
- 에러가 얼마나 발생했는지
- 도구 호출 순서 패턴 (Read → Grep → Edit 반복)

이 데이터를 활용한 세션 보너스 점수를 추가했습니다:

유형

세션에서 발견한 패턴

보너스

Skill

같은 Bash 명령이 3개 이상 세션에서 반복

+3

Skill

같은 도구 순서가 반복

+2

Agent

읽기 전용 도구만 사용

+3

Agent

에러 후 재시도 패턴

+2

Multi-Agent

서로 다른 종류의 도구 혼합

+3

Multi-Agent

단계별 전문화 패턴

+2

하지만 세션 파일이 항상 있는 건 아닙니다. 그래서 이중 모드로 만들었습니다:

세션 파일 있음? → Deep Analysis Mode (프롬프트 + 세션 데이터 분석)
세션 파일 없음? → Prompt-Only Mode (프롬프트만 분석, 기존 방식)

어느 쪽이든 동작하되, 세션 데이터가 있으면 더 정확한 추천을 해주는 구조입니다.


7단계: 세션 파일 자동 탐색

세션 파일을 찾는 것도 자동화해야 했습니다. 문제는 운영체제마다 경로가 다르다는 것:

  • Windows: C:\Users\사용자\.claude\projects\C--dev-02-agent\

  • Mac: /Users/사용자/.claude/projects/-Users-사용자-dev-project/

2단계 탐색 전략을 구현했습니다:

Strategy A: 현재 프로젝트 경로를 변환해서 직접 찾기
  C:\dev\02_agent → C--dev-02_agent 폴더 존재하는지 확인

Strategy B: (A가 실패하면) 모든 폴더를 하나씩 열어서 경로 비교
  각 폴더의 sessions-index.json에서 originalPath 확인

찾은 경로는 .claude/.session-path-cache에 캐싱해서 매번 다시 찾지 않게 했습니다.


최종 완성된 시스템 흐름

[평소 사용]
  사용자가 프롬프트 입력
    ↓
  Hook이 자동으로:
    ├── 프롬프트 저장 (prompt/personal_prompt.md)
    └── 세션 경로 캐싱 (.claude/.session-path-cache)
    ↓
  10개 쌓이면 알림: "📊 분석해볼까요?"

[분석 실행: /analyze-prompt]
    ↓
  세션 캐시 확인
    ├── 있음 → Deep Analysis Mode
    │   ├── 세션 파일에서 도구 사용 통계 수집
    │   ├── 에러 패턴 분석
    │   └── 워크플로우 시퀀스 파악
    └── 없음 → Prompt-Only Mode
    ↓
  프롬프트 패턴 분석
    ↓
  기본 점수 + 세션 보너스 계산
    ↓
  추천 결과 표시
    ↓
  사용자가 번호 선택 → 자동화 파일 생성 완료!

실제 분석 결과 화면 (예시)

Deep Analysis Mode (세션 데이터 있을 때)

📊 프롬프트 분석 결과 (Deep Analysis Mode)

> 🔍 세션 파일 5개 분석 완료 — 도구 사용 데이터 기반 심층 분석

### 도구 사용 통계
| 도구 | 호출 수 | 비율 |
|------|---------|------|
| Bash | 45 | 35% |
| Read | 30 | 23% |
| Edit | 20 | 15% |

### 발견된 패턴
| 패턴 | 횟수 | 추천 | 기본점수 | 세션보너스 | 최종점수 | 근거 |
|------|------|------|----------|-----------|----------|------|
| "커밋해줘" | 4 | Skill | 5 | +3 | 8점 | git commit 패턴 5세션 반복 |
| "코드 리뷰해줘" | 3 | Agent | 5 | +3 | 8점 | Read/Grep만 사용 |

### 💡 자동화 제안
1. commit (Skill) — 8점
   📋 근거: Bash에서 git commit 패턴 5개 세션 반복

---
생성: 번호 입력 (1, 2, all)

Prompt-Only Mode (세션 데이터 없을 때)

📊 프롬프트 분석 결과 (Prompt-Only Mode)

> ℹ️ 세션 파일 미발견 — 프롬프트 텍스트 기반 분석

### 발견된 패턴
| 패턴 | 횟수 | 추천 | 점수 |
|------|------|------|------|
| "커밋해줘" | 4 | Skill | 8점 |

---
생성: 1, 2, all

만들어진 파일 구조

prompt-automation/
├── .claude/
│   ├── settings.json              ← Hook 설정 (자동 실행 규칙)
│   ├── .session-path-cache        ← 세션 경로 캐시 (자동 생성)
│   ├── hooks/
│   │   └── save-prompt.js         ← 프롬프트 자동 저장 + 세션 탐색
│   ├── commands/
│   │   └── analyze-prompt.md      ← /analyze-prompt 명령어 (이중 모드)
│   ├── agents/
│   │   └── prompt-analyzer.md     ← 분석 전문가 Agent (세션 인식)
│   └── rules/
│       └── automation-criteria.md ← 점수 기준표 (기본 + 세션 보너스)
├── prompt/
│   └── personal_prompt.md         ← 저장된 프롬프트 기록
├── CLAUDE.md                      ← 시스템 문서 (영문)
└── README.md                      ← 사용 가이드 (한국어)

결과와 배운 점

배운 점

1. Claude Code는 모든 대화를 로컬에 자동 저장한다

이게 이번 프로젝트의 가장 큰 발견이었습니다. ~/.claude/projects/ 폴더에 모든 세션이 JSONL 파일로 저장되어 있습니다. 내가 뭘 물어봤는지, Claude가 어떤 도구를 썼는지, 에러가 났는지 전부 기록되어 있습니다. 이 데이터를 활용하면 단순한 텍스트 분석보다 훨씬 정확한 자동화 추천이 가능합니다.

2. Hook과 Agent는 역할이 다르다

처음에는 Agent로 자동 저장을 시도했다가 실패했습니다.

  • Hook = 자동 센서 (이벤트 발생 시 자동 실행)

  • Agent = 전문가 (호출해야 일하는 존재)

자동으로 뭔가 하려면 Hook, 복잡한 판단이 필요하면 Agent입니다.

3. "안 되면 방향을 바꿔라"

Agent로 안 되니까 Hook으로, 프롬프트만으로 부족하니까 세션 데이터로. 막히면 다른 길을 찾는 게 중요합니다.

시행착오

문제

원인

해결

Agent가 자동 실행 안됨

CLAUDE.md에서 Agent 자동 호출 불가

Hook 시스템으로 전환

프롬프트 저장 안됨

Agent가 내부 도구를 직접 호출 못함

Node.js Hook 스크립트로 직접 파일 저장

프롬프트만으로 분석 부족

텍스트만으로는 도구 사용 패턴 파악 불가

세션 파일 분석 (Deep Analysis Mode) 추가

세션 파일 경로를 모름

OS마다 경로 규칙이 다름

2단계 탐색 전략 (인코딩 매칭 + 인덱스 스캔)

분석이 너무 자주 뜸

처음에 5개마다 알림 → 귀찮음

10개로 변경 + 수동 실행 옵션

꿀팁

  1. Claude Code의 숨겨진 데이터 활용하세요~/.claude/projects/ 폴더를 확인해보세요. 여러분의 모든 작업 기록이 있습니다.

  2. 자동화는 Hook부터 시작하세요 — Agent나 Skill보다 Hook이 먼저입니다. Hook으로 데이터를 모으고, Agent로 분석하고, Skill로 실행하는 구조가 깔끔합니다.

  3. 점수제로 판단 기준을 명확히 하세요 — "이걸 자동화해야 하나?" 고민될 때, 점수 기준이 있으면 객관적으로 판단할 수 있습니다.

  4. Fallback을 항상 만드세요 — 세션 데이터가 없어도 프롬프트만으로 동작하게 만들었습니다. 어떤 환경에서든 동작하는 게 중요합니다.

  5. everything-claude-code 레포를 참고하세요 — Anthropic 해커톤 우승작입니다. Agent/Skill/Hook 양식의 정석이 여기 있습니다.

앞으로의 계획

  1. 실제 프로젝트에 적용 — 현재는 테스트 프로젝트에서 개발 중입니다. 실제 업무 프로젝트에 .claude/ 폴더를 복사해서 사용할 예정입니다.

  2. 자동 생성 품질 개선 — 추천뿐 아니라, 생성되는 Skill/Agent의 품질을 높이고 싶습니다.

  3. 다른 사람들도 쉽게 쓸 수 있도록.claude/ 폴더만 복사하면 누구나 사용할 수 있게 패키징할 예정입니다.


한 줄 요약

Claude Code가 내 작업 패턴을 자동으로 분석해서 "이거 자동화할까요?"라고 제안하는 시스템을 만들었습니다. 핵심은 Claude가 이미 모든 대화를 저장하고 있다는 발견이었고, 이 데이터를 활용해 프롬프트 텍스트 + 실제 도구 사용 기록까지 분석하는 심층 분석 모드를 구현했습니다.

2
3개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요