Agentify
Guide users to convert functionality into the appropriate Claude Code automation type.
When to Use
- - User says "agentify [something]" or just "agentify"
- User wants to create an agent, skill, or plugin
- User wants to automate a repetitive workflow
Quick Reference
| Type | Trigger | Best For |
|---|
| Skill | Auto (context match) | Instructions, domain guidance |
| Agent |
Task tool delegation | Multi-step execution, tools |
|
Rules | Auto (session start) | AI behavior constraints, project conventions |
|
Slash Command | User types
/cmd | Simple prompt templates |
|
Hook | Events (tool use, etc) | Automation on actions |
→ Full comparison: automation-decision-guide.md
Workflow
Step 1: Analyze Target & Check Duplicates
If no target specified ("agentify" alone):
- - Review conversation for automation candidates
- Look for: verbose outputs, multi-step workflows, repeated patterns
- ⚠️ MUST use
multiSelect: true when presenting candidates (users often want multiple)
If target specified:
- 1. Check local marketplaces first:
-
~/.claude/plugins/marketplaces/*/plugins/*/
- Use
/skill-dedup command to find overlaps
- 2. If not found locally, search remote: INLINECODE4
- If found → recommend existing or extend. If not → proceed to create
Step 1.5: Merge 분석 (⚠️ 복수 선택 시 필수)
복수 후보가 선택되면 반드시 그룹핑 후 AskUserQuestion으로 merge 여부를 먼저 확인한다.
그룹핑 기준:
- - 같은 도메인/서비스 (예: 모두 "openclaw" 관련)
- 같은 컨텍스트에서 호출됨
- 하나의 단어로 묶을 수 있음 (예: "openclaw 관리")
merge 판단 기준:
| 조건 | 권장 |
|---|
| 같은 도메인, 3개 이하 기능 | multi-topic Skill |
| 각각 독립 트리거 + 긴 실행 흐름 |
별도 Agent |
| 지시사항 위주 + 일부 Bash |
Skill (Agent 아님) |
| 복잡한 multi-step + 여러 tool | Agent |
AskUserQuestion 예시 (merge 여부):
CODEBLOCK0
⚠️ 금지: merge 여부 확인 없이 관련 기능을 무조건 별도 에이전트로 생성하지 말 것.
Step 2: Gather Requirements
Use AskUserQuestion to clarify:
- - Trigger: Automatic / Manual / Event-based
- Scope: Global (
~/.claude/) / Project (.claude/) - Language: code comments, variable names, documentation
→ Question patterns: askuserquestion-patterns.md
Step 3: Recommend Type
| Requirements | Type |
|---|
| Auto + instructions | Skill |
| Auto + tool execution |
Agent |
| Auto + constraints/conventions | Rules |
| Manual + simple | Slash Command |
| Event reaction | Hook |
Step 4: Create
⚠️ CRITICAL: Follow the creation method for each type
Skill with scripts → 스크립트가 있으면 반드시 skill 디렉토리 구조로 생성:
skill-name/
├── SKILL.md ← frontmatter + 사용법 + node scripts/xxx.js 실행 지침
├── topic-a.md ← 알파벳순
├── topic-b.md ← 알파벳순
└── scripts/
└── xxx.js ← 실제 로직 (tmp 파일 금지, 여기에 영구 보관)
- -
tmp_*.js 같은 임시 파일로 만들지 말고 scripts/ 안에 영구 파일로 생성 - SKILL.md에서
node <skill-dir>/scripts/xxx.js <mode> 형태로 실행 - 스크립트 경로는
__dirname 기준 상대경로 사용 - 토픽 파일 및 SKILL.md 토픽 테이블은 반드시 알파벳순으로 정렬
Skill (no scripts) → MUST use skill-writer (do NOT create directly)
CODEBLOCK2
Agent → Create in ~/.claude/agents/ or .claude/agents/
→ agent-templates.md
Rules → Create in ~/.claude/rules/ or .claude/rules/
→ rules-guide.md
Slash Command → Create in ~/.claude/commands/ or .claude/commands/
→ slash-command-syntax.md
Hook → Add to settings.json
→ hook-examples.md
Plugin (open source) →
→ plugin-creation.md
Step 5: Validate
- - Verify file location
- Test activation/invocation
- Confirm expected behavior
Plugin Structure
Marketplace vs Cache:
- - Marketplace (
~/.claude/plugins/marketplaces/<marketplace>/plugins/<plugin>/): Source of truth, edit here - Cache (
~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/): Runtime copy, loaded on session start
Important: Cache is loaded at session start. Marketplace edits require:
- 1. Manual sync to cache, OR
- New session to reload
Auto-sync hook: plugin-cache-sync.sh syncs marketplace → cache on Edit/Write
Output Guidelines
Keep responses concise:
- - Use tables over verbose lists
- Link to references instead of inline
- Use AskUserQuestion instead of text options
AskUserQuestion Defaults
| Context | multiSelect |
|---|
| Automation candidates | true (users often want multiple) |
| Merge 여부 (복수 선택 후) |
false (merge vs 분리 - 상호 배타적) |
| Type selection | false (mutually exclusive) |
| Scope selection | false (one location) |
| Feature selection |
true (additive choices) |
실패 사례
❌ 잘못된 흐름 (2026-03-09):
- - openclaw 관련 3가지 기능 선택됨
- merge 여부 확인 없이 바로 별도 에이전트 3개 생성
- 결과: 유사 에이전트 난립, 사용자 불만
✅ 올바른 흐름:
- 1. 3가지 후보 선택됨
- "모두 openclaw 도메인 - merge할까요?" AskUserQuestion
- "스킬로 merge" 선택 → skill-writer로 multi-topic 스킬 생성
Ralph 모드 (AskUserQuestion 불가)
INLINECODE20 디렉토리가 존재하면 Ralph 모드로 동작합니다.
동작 변경:
| 단계 | 사용자 세션 | Ralph 모드 |
|---|
| Step 1: 대화 스캔 | AskUserQuestion (multiSelect) | 전체 후보를 .ralph/improvements.md에 기록 |
| Step 1.5: Merge 분석 |
AskUserQuestion | 추천 구성을 improvements.md에 기록 |
| Step 2: 요구사항 수집 | AskUserQuestion | 추천 trigger/scope를 improvements.md에 기록 |
| Step 3: 유형 추천 | 추천 제시 | 추천을 improvements.md에 기록 |
| Step 4: 생성 | 실제 생성 |
금지 —
[NEEDS_REVIEW] 기록만 |
| Step 5: 검증 | 검증 |
스킵 (생성 안 했으므로) |
improvements.md 기록 형식:
CODEBLOCK3
자가개선
이 스킬 호출 완료 후, 대화를 기반으로 자가개선:
- 1. 대화에서 이 스킬의 한계·실패·우회 패턴 탐지
- 개선 후보 발견 시
/skill-toolkit upgrade agentify 실행
Agentify
사용자가 기능을 적절한 Claude Code 자동화 유형으로 변환할 수 있도록 안내합니다.
사용 시기
- - 사용자가 agentify [무언가] 또는 agentify라고 말할 때
- 사용자가 에이전트, 스킬 또는 플러그인을 만들고자 할 때
- 사용자가 반복적인 워크플로우를 자동화하고자 할 때
빠른 참조
| 유형 | 트리거 | 최적 용도 |
|---|
| 스킬 | 자동 (컨텍스트 매칭) | 지침, 도메인 가이드 |
| 에이전트 |
태스크 도구 위임 | 다단계 실행, 도구 |
|
규칙 | 자동 (세션 시작) | AI 행동 제약, 프로젝트 규칙 |
|
슬래시 명령어 | 사용자가 /cmd 입력 | 간단한 프롬프트 템플릿 |
|
훅 | 이벤트 (도구 사용 등) | 작업 기반 자동화 |
→ 전체 비교: automation-decision-guide.md
워크플로우
1단계: 대상 분석 및 중복 확인
대상이 지정되지 않은 경우 (agentify만 입력):
- - 대화에서 자동화 후보 검토
- 다음 항목 확인: 장황한 출력, 다단계 워크플로우, 반복 패턴
- ⚠️ 후보 제시 시 반드시 multiSelect: true 사용 (사용자가 여러 개를 원하는 경우가 많음)
대상이 지정된 경우:
- 1. 먼저 로컬 마켓플레이스 확인:
- ~/.claude/plugins/marketplaces/
/plugins//
- /skill-dedup 명령어로 중복 확인
- 2. 로컬에 없으면 원격 검색: WebFetch https://claudemarketplaces.com/?search=[키워드]
- 발견 시 → 기존 항목 추천 또는 확장. 없을 시 → 생성 진행
1.5단계: 병합 분석 (⚠️ 복수 선택 시 필수)
복수 후보가 선택되면 반드시 그룹핑 후 AskUserQuestion으로 병합 여부를 먼저 확인합니다.
그룹핑 기준:
- - 같은 도메인/서비스 (예: 모두 openclaw 관련)
- 같은 컨텍스트에서 호출됨
- 하나의 단어로 묶을 수 있음 (예: openclaw 관리)
병합 판단 기준:
| 조건 | 권장 |
|---|
| 같은 도메인, 3개 이하 기능 | 다중 주제 스킬 |
| 각각 독립 트리거 + 긴 실행 흐름 |
별도 에이전트 |
| 지시사항 위주 + 일부 Bash |
스킬 (에이전트 아님) |
| 복잡한 다단계 + 여러 도구 | 에이전트 |
AskUserQuestion 예시 (병합 여부):
모두 openclaw 도메인입니다. 어떻게 구성할까요?
options:
- 하나의 다중 주제 스킬로 합치기 (openclaw 스킬 → exec/gateway/test 주제)
- 각각 별도 에이전트로 생성
- 스킬 + 에이전트 혼합 (지시사항=스킬, 실행=에이전트)
⚠️ 금지: 병합 여부 확인 없이 관련 기능을 무조건 별도 에이전트로 생성하지 마십시오.
2단계: 요구사항 수집
AskUserQuestion을 사용하여 명확히 합니다:
- - 트리거: 자동 / 수동 / 이벤트 기반
- 범위: 전역 (~/.claude/) / 프로젝트 (.claude/)
- 언어: 코드 주석, 변수명, 문서
→ 질문 패턴: askuserquestion-patterns.md
3단계: 유형 추천
| 요구사항 | 유형 |
|---|
| 자동 + 지침 | 스킬 |
| 자동 + 도구 실행 |
에이전트 |
| 자동 + 제약/규칙 | 규칙 |
| 수동 + 간단 | 슬래시 명령어 |
| 이벤트 반응 | 훅 |
4단계: 생성
⚠️ 중요: 각 유형별 생성 방법을 따르십시오
스크립트가 있는 스킬 → 스크립트가 있으면 반드시 스킬 디렉토리 구조로 생성:
skill-name/
├── SKILL.md ← frontmatter + 사용법 + node scripts/xxx.js 실행 지침
├── topic-a.md ← 알파벳순
├── topic-b.md ← 알파벳순
└── scripts/
└── xxx.js ← 실제 로직 (임시 파일 금지, 여기에 영구 보관)
- - tmp*.js 같은 임시 파일로 만들지 말고 scripts/ 안에 영구 파일로 생성
- SKILL.md에서 node /scripts/xxx.js 형태로 실행
- 스크립트 경로는 _dirname 기준 상대경로 사용
- 주제 파일 및 SKILL.md 주제 테이블은 반드시 알파벳순으로 정렬
스크립트가 없는 스킬 → 반드시 skill-writer 사용 (직접 생성하지 마십시오)
스킬 도구: skill: project-automation:skill-writer
에이전트 → ~/.claude/agents/ 또는 .claude/agents/에 생성
→ agent-templates.md
규칙 → ~/.claude/rules/ 또는 .claude/rules/에 생성
→ rules-guide.md
슬래시 명령어 → ~/.claude/commands/ 또는 .claude/commands/에 생성
→ slash-command-syntax.md
훅 → settings.json에 추가
→ hook-examples.md
플러그인 (오픈 소스) →
→ plugin-creation.md
5단계: 검증
- - 파일 위치 확인
- 활성화/호출 테스트
- 예상 동작 확인
플러그인 구조
마켓플레이스 vs 캐시:
- - 마켓플레이스 (~/.claude/plugins/marketplaces/<마켓플레이스>/plugins/<플러그인>/): 진실 공급원, 여기서 편집
- 캐시 (~/.claude/plugins/cache/<마켓플레이스>/<플러그인>/<버전>/): 런타임 복사본, 세션 시작 시 로드
중요: 캐시는 세션 시작 시 로드됩니다. 마켓플레이스 편집 시 다음 필요:
- 1. 캐시에 수동 동기화, 또는
- 새 세션으로 다시 로드
자동 동기화 훅: plugin-cache-sync.sh가 편집/쓰기 시 마켓플레이스 → 캐시 동기화
출력 가이드라인
응답을 간결하게 유지:
- - 장황한 목록 대신 표 사용
- 인라인 대신 참조 링크
- 텍스트 옵션 대신 AskUserQuestion 사용
AskUserQuestion 기본값
| 컨텍스트 | multiSelect |
|---|
| 자동화 후보 | true (사용자가 여러 개를 원하는 경우가 많음) |
| 병합 여부 (복수 선택 후) |
false (병합 vs 분리 - 상호 배타적) |
| 유형 선택 | false (상호 배타적) |
| 범위 선택 | false (하나의 위치) |
| 기능 선택 |
true (추가적 선택) |
실패 사례
❌ 잘못된 흐름 (2026-03-09):