Bob Shell에서 스킬 만들기 및 사용하기
Bob Shell에 반복 가능한 changelog 항목 워크플로우를 가르치는 재사용 가능한 스킬을 만들고, 명시적으로 호출하거나 Bob이 자동으로 활성화하도록 합니다.
IBM Bob Shell 스킬은 Bob에게 반복 가능한 워크플로우를 가르치는 SKILL.md 파일에 저장된 재사용 가능한 지시 세트입니다. 이 튜토리얼에서는 Keep a Changelog 형식으로 CHANGELOG.md에 항목을 추가하는 changelog-entry 스킬을 만들고, $changelog-entry로 명시적으로 실행한 다음, 프롬프트가 스킬 설명과 일치할 때 Bob이 자동으로 활성화하는 것을 확인합니다.
스킬을 사용하면 모든 프롬프트에 동일한 형식 규칙이나 체크리스트를 다시 입력할 필요가 없습니다. 워크플로우를 한 번 정의하면 Bob이 스킬이 적용될 때마다 그것을 따릅니다.
사전 요구 사항
- 아직 없다면, Galaxium Travels 데모 코드를 클론하세요.
git clone https://github.com/IBM/galaxium-travels - 필수는 아니지만, 먼저 /init 및 AGENTS.md로 프로젝트 시작하기와 Bob Shell을 위한 효과적인 프롬프트 작성하기를 완료하는 것을 고려하세요.
changelog-entry 스킬 만들기
Bob Shell은 SKILL.md 파일이 있는 폴더에서 스킬을 로드합니다. 프로젝트 스킬은 프로젝트 루트의 .bob/skills/에 위치하므로 Git이 코드베이스와 함께 추적하고 팀이 사용할 수 있습니다. 전역 스킬은 ~/.bob/skills/에 위치하며 모든 프로젝트에 적용됩니다.
스킬 폴더 만들기
Galaxium Travels 루트 디렉터리로 이동하고 스킬을 위한 폴더를 만듭니다:
cd galaxium-travels
mkdir -p .bob/skills/changelog-entrySKILL.md 파일 작성하기
다음 내용으로 .bob/skills/changelog-entry/SKILL.md를 만듭니다. 텍스트 편집기를 사용하거나 다음 명령을 그대로 실행할 수 있습니다:
cat > .bob/skills/changelog-entry/SKILL.md <<'EOF'
---
name: changelog-entry
description: Adds an entry to CHANGELOG.md using the Keep a Changelog format, creating the file if it does not exist, so change history stays consistent and release-ready.
locale: ko
---
Add an entry to CHANGELOG.md using the Keep a Changelog format (https://keepachangelog.com/).
- If CHANGELOG.md does not exist, create it at the project root with this structure before adding an entry:
# Changelog
All notable changes to this project are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
## [Unreleased]
- Add new entries under the `## [Unreleased]` section, under one of these subheadings: `### Added`, `### Changed`, `### Fixed`, `### Removed`. Create the subheading if it is not already present under `## [Unreleased]`.
- Write each entry as a single bullet point in the imperative mood ("Add", not "Added"), starting with a capital letter, with no trailing period.
- Base the entry on the actual diff, not on the wording of the request. Run `git diff` to review what changed before writing the entry.
- Only edit CHANGELOG.md. Do not stage or commit the change.
EOF프론트매터는 두 개의 필수 필드를 정의합니다:
name: 스킬 이름. 폴더 이름과 일치시키세요. Bob Shell은 폴더 이름으로 스킬을 참조합니다(예:$changelog-entry).description: Bob이 이름으로 호출하지 않을 때 요청에 스킬이 적용되는지 결정하기 위해 읽는 내용. 생략하면 Bob은 지시의 첫 번째 줄을 대신 사용하므로 항상 명확한 설명을 작성하세요.
닫는 --- 아래의 모든 내용이 스킬이 활성화될 때 Bob이 따르는 지시 세트입니다.
Bob Shell 시작하기
Galaxium Travels 루트 디렉터리에서 Agent 모드로 대화형 세션을 시작합니다:
bob chat --mode agentAgent 모드는 Bob이 스킬을 활성화하고 파일을 편집하는 데 필요한 도구 접근 권한을 제공합니다. Bob Shell이 폴더를 신뢰할지 물어보면, Bob이 프로젝트의 스킬을 로드할 수 있도록 폴더를 신뢰하세요.
스킬을 직접 호출하기
스킬을 이름으로 참조하여 Bob이 따르는 지시를 확인합니다.
README.md 편집하기
기록할 것을 만들기 위해 Bob에게 작고 위험도 낮은 편집을 요청합니다:
Add a one-line note to the end of the README.md that says "Powered by IBM Bob."Bob이 제안된 변경을 diff로 보여줍니다. Approve를 선택하여 편집을 적용합니다.
스킬로 변경 사항 기록하기
$를 입력하여 스킬 선택기를 열고 changelog-entry를 선택합니다. Bob Shell이 스킬 참조를 프롬프트에 삽입합니다:
$changelog-entry Add a changelog entry for this change.Bob이 스킬을 사용하고 파일을 편집하는 권한을 요청합니다. 각 요청을 승인합니다. Bob은 changelog-entry 스킬을 로드하고 프로젝트에 CHANGELOG.md가 없으므로 생성합니다. 그런 다음 다음과 유사한 항목을 추가합니다:
## [Unreleased]
### Added
- Add "Powered by IBM Bob." note to the end of README.md첫 번째 changelog 항목 확인하기
Bob에게 changelog를 보여달라고 요청합니다:
Show me @CHANGELOG.md항목은 스킬로 변경 사항 기록하기에서 Bob이 생성한 changelog 항목과 일치합니다.
Bob이 스킬을 자동으로 활성화하게 하기
두 번째 변경을 수행하고 스킬 이름을 언급하지 않고 Bob에게 기록하도록 요청합니다. Bob은 스킬의 description에서 스킬이 적용됨을 인식하고 스스로 활성화할 수 있습니다.
두 번째 README.md 편집하기
Bob에게 두 번째 편집을 요청합니다:
Add a one-line comment above the main heading in README.md that says "Galaxium Travels".메시지가 표시되면 편집을 승인합니다.
스킬을 명명하지 않고 변경 사항 기록하기
스킬을 명명하지 않고 Bob에게 변경 사항을 기록하도록 요청합니다:
Add an entry to CHANGELOG.md in Keep a Changelog format.Bob은 요청이 changelog-entry 스킬의 description과 일치함을 인식하고 $changelog-entry 참조 없이 활성화합니다. 메시지가 표시되면 스킬 및 파일 편집 요청을 승인합니다. Bob은 같은 형식으로 다른 항목을 추가합니다.
두 changelog 항목 모두 확인하기
Bob에게 changelog를 보여달라고 요청합니다:
Show me @CHANGELOG.md이제 changelog에는 ## [Unreleased] 아래에 두 개의 항목이 있으며, 다음과 유사합니다:
## [Unreleased]
### Added
- Add "Powered by IBM Bob." note to the end of README.md
- Add "Galaxium Travels" comment above the main heading in README.md스킬 관리하기
각 스킬은 디스크의 폴더이므로 일반 파일 도구로 관리합니다:
- 스킬 나열하기: 프로젝트 스킬은
.bob/skills/에서, 전역 스킬은~/.bob/skills/에서 확인합니다. 두 위치에 같은 이름의 스킬이 있는 경우 프로젝트 스킬이 우선합니다. - 스킬 편집하기:
SKILL.md파일을 편집합니다. 템플릿이나 체크리스트와 같은 지원 파일도 스킬 폴더에 추가할 수 있습니다. - 스킬 참조하기: Bob Shell에서
$를 입력하거나/skills를 입력하여 프롬프트에 스킬 참조를 삽입합니다.
문제 해결
$ 선택기에 스킬이 나타나지 않는 경우
파일 경로가 .bob/skills/changelog-entry/SKILL.md인지, 프론트매터에 name과 description이 포함되어 있는지, 폴더가 신뢰되어 있는지 확인하세요. 자세한 내용은 신뢰할 수 있는 폴더를 참조하세요. 스킬 폴더 이름은 changelog-entry와 같이 소문자 kebab-case여야 합니다. Bob은 유효하지 않은 이름의 폴더를 오류 없이 무시합니다. 스킬을 추가한 후 Bob Shell을 다시 시작하세요.
Bob이 스킬을 자동으로 활성화하지 않는 경우
Bob은 스킬의 description에 대해 요청을 매칭합니다. 설명의 단어를 사용하여 프롬프트를 다시 표현하거나, $changelog-entry로 스킬을 직접 참조하세요.
다음 단계
이 튜토리얼에서는 스킬을 통해 워크플로우를 한 번 정의하고 Bob이 일관되게 적용하게 할 수 있다는 것을 배웠습니다. $<skill-name>으로 스킬을 명시적으로 참조하거나 설명을 기반으로 Bob이 자동으로 활성화하게 할 수 있습니다.
스킬에 템플릿과 지원 파일을 추가하려면 스킬을 참조하세요.
고유한 역할, 지시, 도구 접근을 갖춘 전문화된 페르소나를 만들려면 커스텀 모드를 참조하세요.