11. 커스텀 슬래시 명령과 출력 스타일
- 커스텀 슬래시 명령(프롬프트 템플릿)을 만들고 쓸 수 있다
- 슬래시 명령이 Skills와 어떻게 통합되었는지 안다
- 인자 치환($ARGUMENTS 등)으로 동적인 명령을 만든다
- 출력 스타일로 Claude의 응답 형식을 조절한다
커스텀 슬래시 명령이란
3장에서 /init·/review 같은 내장 슬래시 명령을 봤습니다. 여기에 더해, 당신만의 명령을 만들 수 있습니다. 가장 단순하게는, 자주 입력하는 긴 프롬프트를 짧은 명령으로 저장하는 프롬프트 템플릿입니다.
비유하자면, 매번 길게 설명하던 주문을 메뉴판의 "1번 세트"로 등록하는 것입니다. "1번"만 외치면 정해진 구성이 나오죠.
flowchart LR
A["매번 긴 프롬프트<br/>'main과 HEAD 차이를 보안 관점에서...'"]:::user --> B[명령 파일로 저장<br/>.claude/commands/security.md]:::tool
B --> C["/security 한 번으로 호출"]:::result
classDef user fill:#FFE082,stroke:#F9A825,color:#000
classDef tool fill:#90CAF9,stroke:#1E88E5,color:#000
classDef result fill:#A5D6A7,stroke:#43A047,color:#000
만드는 법
커스텀 명령은 마크다운 파일입니다. 위치에 따라 범위가 정해집니다.
| 위치 | 범위 |
|---|---|
.claude/commands/<name>.md | 프로젝트(팀 공유) |
~/.claude/commands/<name>.md | 유저(개인, 모든 프로젝트) |
마크다운 본문이 곧 프롬프트 템플릿이고, 선택적 YAML frontmatter로 설명·허용 도구·기본 모델을 지정합니다.
--- description: 스테이징 브랜치 보안 리뷰 실행 allowed-tools: Read, Grep, Glob, Bash, WebFetch model: sonnet --- `main`과 `HEAD` 사이의 diff를 보안 이슈 관점에서 감사해줘. 특히: - 인증/인가 변경 - 입력 처리 경계 - 로그에 노출된 비밀 - 새로 추가된 의존성 발견 사항을 punch list로 보고해줘.
이렇게 저장하면 세션 시작 시 로드되어 /<name>(예: /security)으로 호출됩니다.
allowed-tools로 명령이 쓸 도구를 한정할 수 있고, model로 이 명령만 다른 모델로 돌릴 수 있습니다. 모델명은 자주 바뀌니 별칭(sonnet·opus·haiku)을 쓰거나 공식 문서를 확인하세요.슬래시 명령과 Skills의 통합
여기서 한 가지 중요한 변화를 짚어야 합니다. 2026년 기준, 슬래시 명령과 Skills는 통합되었습니다. 예전의 "커스텀 명령"은 Skills 시스템으로 합쳐졌습니다.
.claude/commands/의 파일은 여전히 동작하지만, 권장 방식은.claude/skills/입니다.- 모든 스킬은 자동으로
/스킬이름형태의 슬래시 명령 인터페이스를 갖습니다. - frontmatter로 Claude의 자동 호출 여부·메뉴 노출 여부·서브에이전트 실행 여부를 제어합니다.
flowchart TB
subgraph Old["예전"]
Cmd[커스텀 명령<br/>.claude/commands/]:::tool
end
subgraph New["2026 통합 후"]
Skill[Skill<br/>.claude/skills/]:::tool
Skill --> Slash["/스킬이름 으로 호출"]:::result
Skill --> Auto["Claude 자동 호출"]:::agent
end
Cmd -.여전히 동작.-> New
classDef tool fill:#90CAF9,stroke:#1E88E5,color:#000
classDef result fill:#A5D6A7,stroke:#43A047,color:#000
classDef agent fill:#80DEEA,stroke:#00ACC1,color:#000
인자 치환: 동적인 명령
명령에 인자를 넘겨 동적으로 만들 수 있습니다.
| 토큰 | 의미 |
|---|---|
$ARGUMENTS | 전달된 모든 인자 |
$0, $1, $2 | 위치 인자 |
${CLAUDE_SKILL_DIR} | 스킬 디렉터리 경로 |
예를 들어 /fix-issue 123처럼 호출하면 명령 본문 안의 $1이 123으로 치환됩니다.
/명령)으로도, 설명이 작업과 맞으면 Claude가 자동으로 호출할 수도 있습니다. 또한 명령 안에서 "서브에이전트를 띄워라", "이 스킬을 써라"처럼 다른 동작을 오케스트레이션해(research → 코드 스캔 → 문서 작성) 파이프라인을 짤 수도 있습니다.출력 스타일: 응답 형식 바꾸기
출력 스타일(output styles) 은 Claude가 응답을 어떻게 포맷하는지를 조절합니다 — 장황함(verbosity), 코드 주석 밀도, 문체 등. /config 설정 UI나 settings.json의 outputStyle로 선택하며, 몇 가지 내장 스타일과 사용자 정의 스타일이 있습니다.
대표 활용 — Explanatory(설명형) 스타일:
/output-style explanatory
또는 settings.json에 "outputStyle": "Explanatory".
낯선 코드베이스를 익히거나, 자주 안 쓰는 언어를 리뷰하거나, 새 프로젝트에 온보딩할 때 유용합니다. Claude가 작업하면서 프레임워크·코드 패턴을 설명하고 "★ Insight" 블록으로 설계 의도와 이유를 덧붙여 줍니다.
⚠️ 트레이드오프 — 컨텍스트: 설명형은 응답이 길어져 컨텍스트가 더 빨리 차고 컴팩션이 일찍 옵니다(→ 4장). 속도를 원할 땐 기본 스타일로 돌아가세요.
~/.claude/output-styles/에 마크다운 파일로 만들 수 있습니다.이 장에서 배운 것
- 커스텀 슬래시 명령은 자주 쓰는 프롬프트를
/<name>으로 저장하는 템플릿이다..claude/commands/(프로젝트)·~/.claude/commands/(유저)에 둔다. - 2026년 기준 슬래시 명령은 Skills로 통합됐다. 기존
commands/도 동작하지만 권장은.claude/skills/이고, 모든 스킬은/이름인터페이스를 갖는다. $ARGUMENTS·$1등 인자 치환으로 동적 명령을 만들고, 명령으로 서브에이전트·스킬을 오케스트레이션할 수 있다.- 출력 스타일로 응답 형식을 조절한다. Explanatory는 학습에 좋지만 컨텍스트를 더 쓴다.
✍️ 확인 문제
- 단순 프롬프트 템플릿과 Skill 중 무엇을 쓸지 어떻게 판단하나요?
- 커스텀 명령에서
$1이나$ARGUMENTS는 어떤 역할을 하나요? - Explanatory 출력 스타일의 장점과 트레이드오프는 각각 무엇인가요?
🎉 3부 완료! 다음 장부터는 4부 확장입니다.
다음 장: 12. Skills(에이전트 스킬)