기능

슬래시 커맨드

반복 작업을 자동화하고, 내장 커맨드를 실행하고, 간단한 마크다운 파일로 Bob의 기능을 확장하는 커스텀 슬래시 커맨드를 만들 수 있습니다.

개요

시작하려면 채팅에서 /를 입력해 사용 가능한 모든 커맨드를 확인하거나, .bob/commands/ 또는 ~/.bob/commands/에 마크다운 파일을 추가해 직접 만들 수 있습니다.

주요 이점:

  • 워크플로우 자동화: 복잡한 다단계 프로세스를 단일 커맨드로 전환
  • 팀 표준화: 일관된 방식을 위해 팀과 커맨드 공유
  • 컨텍스트 보존: 모든 커맨드에 프로젝트 특정 컨텍스트 포함
  • 빠른 접근: 즉각적인 커맨드 검색을 위한 퍼지 검색 및 자동완성

내장 커맨드

Bob에는 핵심 기능을 제공하는 여러 내장 커맨드가 포함되어 있습니다:

/init

Bob으로 새 프로젝트나 workspace를 초기화합니다. 이 커맨드는 프로젝트에서 Bob과 작업하기 위한 필요한 설정과 구조 설정을 돕습니다.

/review

포괄적인 분석으로 코드 변경 사항을 검토합니다. 이 커맨드는 여러 방법으로 사용할 수 있습니다:

  • /review – 작업 디렉토리의 로컬 커밋되지 않은 변경 사항 검토
  • /review <branch> – 현재 브랜치(HEAD)와 브랜치 비교
  • /review #<issue-number> --issue-coverage – GitHub 이슈 대비 로컬 변경 사항 검증
  • /review <issue-url> --issue-coverage – GitHub 이슈 URL 대비 로컬 변경 사항 검증

리뷰 커맨드는 버그 감지, 보안 검사, 성능 문제, 스타일 일관성을 포함한 철저한 코드 분석을 수행합니다.

/create-pr

AI 생성 설명으로 풀 리퀘스트를 만듭니다. 이 커맨드는 변경 사항을 분석하고 브랜치 간 diff를 기반으로 포괄적인 PR 설명을 생성합니다.

커스텀 커맨드 만들기

커스텀 커맨드는 특정 디렉토리에 마크다운 파일을 추가해 Bob의 기능을 확장합니다:

  • 프로젝트 특정: workspace 루트의 .bob/commands/
  • 전역: 홈 디렉토리의 ~/.bob/commands/

파일명이 커맨드 이름이 됩니다. 예를 들어:

  • review.md/review
  • test-api.md/test-api
  • deploy-check.md/deploy-check

커맨드 이름 처리

UI를 통해 커맨드를 만들 때 커맨드 이름은 자동으로 처리됩니다:

  • 소문자로 변환
  • 공백을 대시로 교체
  • 특수 문자 제거
  • 앞뒤 대시 제거

예: "내 멋진 커맨드!" → 내-멋진-커맨드 (라틴 문자의 경우 my-cool-command)

기본 커맨드 형식

마크다운 파일을 추가해 간단한 커맨드를 만듭니다:

Help me review this code for security issues and suggest improvements.

frontmatter를 사용한 고급 커맨드

향상된 기능을 위해 frontmatter를 사용해 메타데이터를 추가합니다:

---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.
Include proper error handling and documentation.

frontmatter 필드

  • description: 커맨드의 목적을 사용자가 이해할 수 있도록 커맨드 메뉴에 표시됩니다
  • argument-hint: 커맨드 사용 시 예상되는 인수에 대한 힌트를 제공합니다

커맨드 관리 UI

Bob은 커스텀 커맨드를 관리하기 위한 전용 UI를 제공합니다.

Bob 패널의 커맨드 아이콘을 클릭해 커맨드 매니저를 엽니다.

새 커맨드 만들기

  1. 입력 필드에 커맨드 이름을 입력합니다 (예: "샘플 커맨드 이름")
    • 버튼을 클릭해 커맨드를 만듭니다
  2. 새 파일이 자동으로 생성되고 열립니다 (예: sample-command-name.md)

슬래시 커맨드 사용하기

채팅에서 /를 입력해 두 가지 유형의 커맨드가 모두 포함된 통합 메뉴를 확인합니다. 메뉴는 같은 인터페이스에서 커스텀 워크플로우 커맨드와 모드 전환 커맨드를 모두 보여줍니다.

  1. 통합 메뉴: 커스텀 커맨드와 모드 전환 커맨드가 함께 표시됩니다
  2. 자동완성: 입력을 시작해 커맨드를 필터링합니다 (예: /samsample-command-name 표시)
  3. 퍼지 검색: 부분 일치로도 커맨드를 찾을 수 있습니다
  4. 설명 미리보기: 메뉴에서 커맨드 설명을 확인합니다
  5. 시각적 표시: 모드 커맨드는 특수 아이콘으로 커스텀 커맨드와 구분됩니다

인수 힌트

인수 힌트는 슬래시 커맨드에 즉각적인 도움을 제공하며, 커맨드가 추가 입력을 필요로 할 때 어떤 정보를 제공해야 하는지 보여줍니다.

커맨드 메뉴를 열기 위해 /를 입력할 때, 인수를 기대하는 커맨드에는 옆에 연한 회색 힌트가 표시됩니다. 이 힌트는 커맨드가 어떤 종류의 인수를 기대하는지 알려줍니다.

예를 들어:

  • /mode <mode_slug> – 힌트 <mode_slug>code 또는 debug 같은 모드 이름을 제공해야 함을 나타냅니다
  • /api-endpoint <endpoint-name> <http-method> – 엔드포인트 이름과 HTTP 메서드 둘 다 필요함을 보여줍니다

커맨드를 선택하면 공백에 이어 채팅 입력에 삽입됩니다. 힌트는 삽입되지 않습니다. 다음에 무엇을 입력해야 하는지 알려주는 시각적 안내일 뿐입니다. 커맨드 뒤에 인수를 수동으로 입력해야 합니다.

커스텀 커맨드에 인수 힌트 추가하기

frontmatter의 argument-hint 필드를 사용해 커스텀 커맨드에 인수 힌트를 추가할 수 있습니다:

---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.

이렇게 하면 커맨드 메뉴에 /api-endpoint <endpoint-name> <http-method>로 표시됩니다.

인수 힌트 베스트 프랙티스

  • 구체적으로: <arg> 같은 일반적인 것 대신 <file-path> 같은 설명적인 플레이스홀더를 사용합니다
  • 여러 인수 표시: 커맨드에 여러 입력이 필요하면 모두 표시합니다: <source> <destination>
  • 일관된 형식 사용: 항상 플레이스홀더를 꺾쇠 괄호로 감쌉니다: <플레이스홀더>
  • 간결하게 유지: 힌트는 짧고 명확해야 합니다

자주 묻는 질문

  • "인수를 제공하지 않으면 어떻게 되나요?" 커맨드가 예상대로 작동하지 않거나 추가 정보를 요구할 수 있습니다. 힌트는 처음부터 올바르게 입력할 수 있도록 돕기 위한 것입니다.
  • "모든 커맨드에 힌트가 있나요?" 아니요, 인수를 받도록 설계된 커맨드에만 힌트가 있습니다. 추가 입력 없이 작동하는 커맨드는 힌트를 표시하지 않습니다.
  • "힌트를 교체하지 않고 커맨드를 사용할 수 있나요?" 힌트 텍스트(예: <mode_slug>)는 실제 값으로 교체해야 합니다. 힌트 텍스트를 그대로 두면 커맨드가 실패하거나 예기치 않게 동작할 가능성이 높습니다.

베스트 프랙티스

커맨드 명명

  • 설명적이고 행동 지향적인 이름 사용
  • 이름을 간결하지만 명확하게 유지
  • 여러 단어 커맨드에는 하이픈 사용
  • helptest 같은 일반적인 이름 피하기
  • 참고: 이름은 자동으로 슬러그화됩니다 (소문자, 특수 문자 제거)
  • .md 확장자는 필요에 따라 자동으로 추가/제거됩니다

커맨드 내용

  • 명확한 지시로 시작
  • 구조화된 형식 사용 (목록, 섹션)
  • 구체적인 요구사항 포함
  • 프로젝트 관례 참조
  • 커맨드를 단일 작업에 집중

조직화

  • 관련 커맨드를 하위 디렉토리에 그룹화
  • 일관된 명명 패턴 사용
  • 복잡한 커맨드 문서화
  • 커맨드 버전 관리
  • 프로젝트 저장소에서 팀 커맨드 공유

문제 해결

커맨드가 나타나지 않음

  • 파일 위치 확인: 커스텀 커맨드 파일이 .bob/commands/ 또는 ~/.bob/commands/에 있는지 확인합니다
  • 파일 확장자 확인: 커스텀 커맨드는 .md 파일이어야 합니다

커맨드를 찾을 수 없음

슬래시 커맨드를 찾을 수 없는 경우 LLM에는 다음이 표시됩니다:

The slash command '/unknown-command' was not found. Please check the command name and try again.

커맨드 충돌

  • 커스텀 프로젝트 커맨드는 같은 이름의 전역 커스텀 커맨드보다 우선합니다
  • 충돌을 피하기 위해 고유한 이름 사용
  • UI를 통해 중복 이름을 만들 때 숫자가 추가됩니다 (예: new-command-1, new-command-2)

모드 커맨드에 대해

슬래시 메뉴에는 AI의 운영 모드를 근본적으로 변경하는 모드 전환 커맨드(/code, /ask 등)가 포함되어 있습니다. 이것들은 단순히 텍스트를 삽입하는 것이 아니라 전체 AI 컨텍스트를 전환합니다. 만든 커스텀 모드도 슬래시 커맨드로 표시됩니다 (예: 슬러그 reviewer인 모드는 /reviewer가 됩니다). 이 모드 커맨드는 커스텀 워크플로우 커맨드로 재정의할 수 없습니다.

자세한 내용은 모드사용자 지정 모드를 참조하세요.

이 주제는 어떤가요?