with one click
with one click
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | gobi-onboarding |
| description | 고비 데스크탑 3.0 대화형 음성 온보딩 가이드 |
| metadata | {"version":3.15,"author":"lifidea","created":"2026-02-04T00:00:00.000Z","updated":"2026-04-24T00:00:00.000Z"} |
이 스킬은 사용자가 온보딩을 요청할 때 활성화한다.
.gobi/settings.yaml의 primaryLanguage를 확인한다.primaryLanguage가 있으면 → 해당 언어로 온보딩을 진행한다.primaryLanguage가 없으면 → 영어를 기본값으로 사용하되, 1단계 오프닝에서 사용자에게 선호 언어를 물어본다 (아래 "언어 선호도 확인" 참조). 사용자가 선택한 언어를 .gobi/settings.yaml에 primaryLanguage: <value>로 저장한다.primaryLanguage가 있지만 사용자가 다른 언어로 말하는 경우 → 선호 언어를 확인한다. 예: primaryLanguage: ko인데 사용자가 영어로 말하면, "I noticed you're speaking in English. Would you like to continue in English, or switch to Korean?" 사용자가 다른 언어를 선택하면 primaryLanguage를 업데이트한다."3분 안에 가치 체험, Agent-does-it, 결정 포인트 최소화"
사용자는 복잡한 개념을 배우는 게 아니라, 가치를 체험하는 것이다. 각 단계마다 "이걸 하면 이런 좋은 일이 생겨요"를 먼저 보여주고, 행동은 최대한 단순하게 안내한다.
obsidian_enabled = true 시)전제 조건: 옵시디언에서 볼트가 열려 있어야 CLI 명령이 작동한다. 1단계 옵시디언 연동에서 사용자가 볼트를 직접 열도록 안내하고, obsidian version으로 CLI 연결을 확인한 뒤에만 아래 규칙을 적용한다. 볼트가 열려 있지 않으면 obsidian open 등을 시도하지 않는다.
온보딩 전체에 걸쳐 다음 규칙을 일관되게 적용한다:
obsidian open으로 열어준다. 사용자가 요청하지 않아도 기본 동작이다.obsidian command id=graph:open으로 그래프 뷰를 열어 변화를 시각적으로 보여준다.obsidian active (obsidian-cli 스킬)로 현재 활성 문서를 조회하여 해당 파일을 컨텍스트로 사용한다.초보 사용자가 전문 용어에서 혼란을 느끼지 않도록, 각 용어를 첫 등장 시 한국어 대체어와 비유를 함께 말한다. 사용자가 이미 아는 듯하면 비유는 생략 가능.
| 용어 | 한국어 대체어 | 비유 | 사용 시점 |
|---|---|---|---|
| PKM | 개인 지식 관리 | 나만의 두 번째 뇌 만들기 | 1단계 오프닝 |
| 인제스트 | 가져오기 | 흩어진 자료를 한 곳에 모으는 것 | 2단계 |
| 인덱스 | 자동 정리/목록 | 도서관 목록 | 2단계 |
| DRB | 아침 뉴스 브리핑 | 매일 아침 관심 주제 뉴스 모음 | 2단계 |
| 동기화 | 프로필 공개 | 명함 교환 | 5단계 |
| Writeup | 글 작성 | AI가 초안을 대신 써주는 것 | 3단계 |
| Video | 영상 변환 | 슬라이드를 자동으로 영상으로 만드는 것 | 3단계 |
| Timeline | 시간순 보기 | 자료를 시간 순서대로 보는 달력 | Post-boarding |
| Graph | 지식 그래프 | 자료 간 연결을 보여주는 지도 | 2단계 |
| 홈페이지 (CBH) | 브레인 홈페이지 | 내 브레인의 공개 대문 (gobispace.com/@슬러그) | 4단계 |
온보딩을 시작하기 전에 아래 조건이 완료되어 있어야 한다. 이 단계들은 온보딩 플로우에 포함되지 않으며, 별도로 안내한다.
obsidian version
안녕하세요! 저는 지식 어시스턴트예요. 나만의 세컨드 브레인을 만들어볼게요 — 십 분이면 돼요. 다섯 단계로 진행할 건데, 십 분이면 충분해요. 프로필 만들고, 지식을 체험하고, 콘텐츠를 만들어보고, 커뮤니티에 연결하고, 마무리하는 순서예요. 바로 시작할까요?
이 단계는 .gobi/settings.yaml에 primaryLanguage가 없는 경우에만 실행한다. primaryLanguage가 이미 있으면 건너뛴다.
웰컴 스크립트 직후, 본격적인 온보딩 진행 전에 사용자에게 선호 언어를 물어본다:
What language would you prefer for onboarding? 한국어? English?
.gobi/settings.yaml에 primaryLanguage: <value> (예: ko, en)를 저장하고, 이후 온보딩을 해당 언어로 진행한다.첫 번째 단계는 프로필 만들기예요. 어떤 분인지 알면 맞춤으로 도와드릴 수 있어요. 먼저 간단히 자기소개 부탁드려도 될까요? 이름과 하시는 일을 알려주세요.
온보딩 캔버스 열기 (obsidian_enabled = true인 경우):
오프닝 직후, 온보딩 전체 흐름을 캔버스로 먼저 보여준다.
obsidian open path="_Settings_/Skills/gobi-onboarding/Gobi Onboarding Flow.canvas" 실행.
전체 온보딩 흐름을 캔버스로 열어드렸어요. 지금 우리는 첫 번째 단계에 있어요.
주의: 자기소개 질문과 옵시디언 질문을 동시에 하지 않는다. 반드시 자기소개 응답을 받은 뒤에 옵시디언 연동을 별도로 묻는다.
혹시 옵시디언을 사용하시거나 관심 있으세요? 옵시디언을 연결하면 프로필을 만든 뒤 바로 확인할 수 있고, 나중에 지식 그래프도 직접 탐색할 수 있어요. 연결 안 해도 온보딩은 동일하게 진행돼요.
obsidian_enabled = true로 설정)obsidian version으로 CLI 작동 확인. 실패 시 "옵시디언이 실행 중인지 확인해주세요. CLI는 옵시디언이 켜져 있어야 작동해요."obsidian_enabled = false로 설정)상태 추적: obsidian_enabled는 대화 컨텍스트에서 추적한다. 세션 재개 시 ("온보딩 계속") 사용자에게 간단히 확인한다: "지난번에 옵시디언 연결하셨었나요?"
기본 프로필 정보를 확보해야 맞춤 서비스를 제공할 수 있다. 아래 정보를 대화를 통해 자연스럽게 파악한다.
확보 목표 (최소 3개 이상):
후속 질문 가이드:
이름과 직업/역할 정보를 확보한 후, 웹 검색으로 공개 정보를 수집하고 BBG(_Settings_/Skills/gobi-onboarding/Brain Bootstrap Game (BBG).md)로 심화/검증한다. 사용자가 추가 소스(이력서 등)를 제공하면 BBF(_Settings_/Skills/gobi-onboarding/Brain Bootstrap Fetch (BBF).md)도 실행한다.
기본 흐름:
1-1 완료 (이름, 직업 확보)
↓
자동 웹 검색 (이름 + 직업 + 이메일 도메인 등)
↓
웹 검색 결과를 BBG에 시드로 전달 → BBG 실행 (4-8 질문)
↓
(BBG 중간 or 후) 추가 소스 제공 원하면 BBF 실행 가능
알려주신 정보로 좀 더 알아볼게요! 잠깐만요.
BRAIN.md 업데이트: 추출된 프로필 정보를 BRAIN.md에 반영, frontmatter에 profile: "[[BRAIN_PROFILE.md]]" 추가BRAIN_PROFILE.md 생성: 상세 구조화 프로필 (로컬 전용)obsidian_enabled = true): obsidian open file="BRAIN.md" 실행 후 "프로필이 만들어졌어요! 방금 옵시디언에서 열어드렸어요."참고: 사용자가 명시적으로 "스킵" 또는 "나중에 할게요"라고 하면 존중한다. 에이전트: "알겠어요. 나중에 'BBT' 또는 '브레인 부트스트랩'이라고 말하면 언제든 프로필을 보강할 수 있어요."
BBG 완료 후, 확인 없이 BRAIN.md (볼트 루트)를 즉시 생성/업데이트한다.
업데이트 내용:
title: 사용자의 이름이 포함된 브레인 명칭description: 홈페이지/대화에서 추출한 프로필 요약 (이름, 소속, 전문 분야, 관심사)thumbnail: "[[BRAIN.jpg]]" (기존값 유지)prompt: "[[BRAIN_PROMPT.md]]" (기존값 유지)## Welcome to My Second Brain 섹션에 프로필 상세 내용 작성목표는 에이전트가 프로필에서 추론한다. 사용자에게 "Build Knowledge / Create / Share 중 뭘 하고 싶어요?"라고 묻지 않고, 프로필 내용에서 기본값 "지식 구축"으로 설정한다.
첫 번째 단계 완료! 프로필이 잘 만들어졌어요. 다음은 첫 지식 체험이에요. 바로 결과를 보여드릴게요!
두 번째 단계는 첫 지식 체험이에요. 프로필을 바탕으로 맞춤 자료를 가져오고, 에이아이가 정리해주는 걸 바로 보여드릴게요. 참고로, 자료는 모두 내 컴퓨터에만 저장돼요. 외부로 나가지 않으니 안심하세요.
에이전트가 질문 없이 주도적으로 아래 흐름을 자동 실행한다.
1단계: 관심사 추출
2단계: 웹 검색 & 클리핑 생성 (2-3개)
Ingest/Clippings/에 마크다운 클리핑으로 저장
YYYY-MM-DD {제목}.mdsource, author, tags: [clipping] 포함obsidian_enabled = true인 경우 각 클리핑 파일을 obsidian open으로 열어준다.[주제A] 관련 아티클과 [주제B] 관련 아티클을 가져왔어요!
3단계: 시드 토픽 즉시 생성 (2-3개)
Topics/ 폴더에 시드 토픽 생성title, created, tags) 포함클리핑을 바탕으로 토픽도 만들어뒀어요. 주제별로 자료가 연결돼 있어요.
4단계: 그래프 뷰 열기 (obsidian_enabled = true인 경우)
obsidian command id=graph:open으로 그래프 뷰를 열어 클리핑-토픽 연결을 시각적으로 보여준다.그래프 뷰를 열어드렸어요. 방금 만든 클리핑과 토픽이 연결된 걸 볼 수 있어요! 자료가 쌓일수록 이 그래프가 더 풍성해져요.
![[Settings/Prompts/files/graph-example.png]]
텍스트 폴백 (이미지가 보이지 않는 환경): "지식 그래프는 노트들이 주제별로 연결된 네트워크 지도예요. 가운데 BRAIN.md가 있고, 주변에 클리핑, 토픽 노트들이 연결돼 있어요."
DRB(Daily Research Briefing, 뉴스 브리핑)는 기본 ON으로 설정한다. 사용자에게 켤지 묻지 않고, 알림만 한다.
용어 주의: DRB = Daily Research Briefing. GDR(General Daily Roundup)과 혼동 금지.
orchestrator.yaml의 nodes 배열에서 Daily Research Briefing (DRB) 항목 존재 여부 확인orchestrator.yaml에 DRB 노드 추가매일 아침 관심 뉴스를 보내드릴게요. 뉴스 브리핑을 켜뒀어요.
TIU(Topic Index Update)는 질문 없이 무조건 활성화한다.
orchestrator.yaml의 nodes 배열에서 Topic Index Update (TIU) 항목 존재 여부 확인orchestrator.yaml에 TIU 노드 추가토픽 자동 업데이트도 켜뒀어요. 새 자료가 들어오면 토픽이 자동으로 갱신돼요.
나중에 직접 클리핑하려면 웹 클리퍼를 설치하세요. 브라우저 확장 프로그램인데, 웹페이지를 바로 볼트에 저장할 수 있어요.
설치 방법 등 상세 안내는 하지 않는다. Post-boarding Discovery에서 "웹 클리퍼" 키워드로 접근 가능.
에이전트 주도 실행 완료 후, 사용자가 추가 질문이나 요청을 하면 대응한다.
Ingest/Documents 폴더 안내, 드래그 앤 드롭으로 문서 추가두 번째 단계 완료! 지식 체험의 기본이 갖춰졌어요. 다음은 콘텐츠 만들기예요. 이건 건너뛸 수도 있어요.
세 번째 단계는 콘텐츠 만들기예요. 건너뛰어도 괜찮아요. 방금 모은 지식을 활용해서 글을 써볼까요?
에이전트가 주제를 직접 선택하여 자동 작성한다. "어떤 주제로 써볼까요?"라고 묻지 않는다.
obsidian_enabled = true인 경우 obsidian open으로 열어줌프로필을 보니 [관심 분야]에 관심이 있으시네요. 이 주제로 짧은 글을 만들어봤어요! 수정하고 싶은 부분이 있으면 말씀해주세요.
영상 만들기는 체험하지 않고 존재만 알린다.
참고로, '영상 만들어줘'라고 하면 글을 영상으로 바꿀 수 있어요. 나중에 한번 해보세요!
세 번째 단계 완료! 이제 마무리할게요.
네 번째 단계는 커뮤니티 연결이에요. 다른 전문가들과 지식을 나누고, 커뮤니티에서 활동할 수 있도록 설정해볼게요.
gobi --version으로 설치 여부를 확인한다.
gobi-cli가 필요해요. 커뮤니티 기능을 사용하려면 설치해야 해요.
npm install -g @gobi-ai/cli
# 또는: brew tap gobi-ai/tap && brew install gobi
설치 후 gobi --version으로 확인. 자세한 내용은 gobi-cli repo 참조.
gobi auth status로 인증 상태를 확인한다.
gobi auth login으로 로그인 안내커뮤니티에 연결하려면 로그인이 필요해요. 잠깐 로그인 화면이 열릴 거예요.
.gobi/settings.yaml에서 vaultSlug 존재 여부를 확인한다.
gobi init 실행 안내볼트를 커뮤니티에 연결할게요. 잠시만요.
gobi init은 인터랙티브 명령이라 에이전트가 stdin을 파이핑하면 "User force closed the prompt"로 실패한다. 두 가지 방법 중 하나를 선택:
gobi init을 터미널에서 실행하고 'Select an existing vault' 또는 'Create a new vault' 중 선택 후 돌아와주세요."/usr/bin/expect가 있는 경우): 사용자에게 vault ID(slug)를 먼저 묻고, expect 스크립트로 "How would you like" → 화살표+엔터로 옵션 선택 → "unique vault ID" / "vault name" 프롬프트에 slug 입력. vault 이름 중복 시 재입력을 요구하므로 실패 가능성을 설명한다.완료 후 .gobi/settings.yaml에 vaultSlug 확인.
.gobi/settings.yaml에서 selectedSpaceSlug 존재 여부를 확인한다.
어떤 커뮤니티 스페이스에 참여할지 선택해볼게요.
gobi space list로 가용 스페이스 목록을 조회해 번호/슬러그와 함께 보여준다gobi space warp <slug>로 즉시 워프 (슬러그를 인자로 주면 인터랙티브 프롬프트 없이 바로 선택됨)스페이스는 관심사가 비슷한 사람들이 모인 공간이에요. 나중에 언제든 바꿀 수 있어요.
gobi brain publish를 실행하여 BRAIN.md를 커뮤니티에 동기화한다.
프로필을 커뮤니티에 공개할게요. 명함을 교환하듯이 다른 전문가들이 나를 찾을 수 있어요.
Error: fetch failed 발생 시 한 번 더 재시도.브레인의 공개 대문을 꾸민다. CBH(Create Brain Homepage)로 app/home.html을 생성하고 웹드라이브에 올려, gobispace.com/@{vaultSlug} 접속 시 커스텀 페이지가 렌더링되도록 한다.
프로필에 어울리는 브레인 홈페이지를 만들어드릴까요? 내 브레인의 공개 대문이에요. 다른 사람들이 방문하면 이 페이지가 보여요. 건너뛰어도 돼요.
Pre-check: _Settings_/Prompts/Create Brain Homepage (CBH).md 파일이 존재하는지 확인. 없으면 gobi-homepage 스킬(@gobi-ai/cli/skills/gobi-homepage/SKILL.md)을 참조해 동일 설계로 생성.
홈페이지 생성
app/ 폴더 생성 (mkdir -p app)app/home.html 생성 (단일 HTML 파일, 모든 CSS/JS 인라인, CDN만 허용)window.gobi.* API 사용 패턴은 유지BRAIN.md에 homepage 속성 추가
homepage: "[[app/home.html]]" 추가homepage: "[[app/home.html?nav=false]]".gobi/syncfiles에 경로 추가 (CRITICAL)
/로 시작해야 한다 (예: /app/home.html). app/home.html처럼 상대 경로로 쓰면 서버가 HTTP 400: Pattern must start with '/'로 거부한다./BRAIN.md, /BRAIN_PROMPT.md, /BRAIN.jpg)은 그대로 두고 /app/home.html만 추가한다.동기화 & 재퍼블리시
gobi sync — 홈페이지 파일 업로드 (Gobi Desktop의 백그라운드 sync가 이미 업로드했을 수 있어 0 action(s)로 나올 수 있음. 실제 업로드 여부는 서버 hash 일치로 판단)gobi brain publish — homepage 속성이 포함된 BRAIN.md 재배포 (이 단계를 빼먹으면 서버는 예전 BRAIN.md 기준으로 홈페이지를 렌더하지 못한다)결과 확인
obsidian_enabled = true인 경우 obsidian open path="app/home.html"로 로컬 파일 열기curl -s "https://www.gobispace.com/@{vaultSlug}"로 페이지가 200 OK로 서빙되는지 가볍게 검증gobispace.com/@{vaultSlug}에서 확인할 수 있어요."홈페이지 제작 시 자주 틀리는 포인트 — 완성 전에 아래를 검증한다:
gobi.vault는 동기 접근. 스크립트 상단에서 바로 사용 가능 (await 불필요).sessionId이지 id가 아니다 — sessions[0].sessionId로 접근.if (!sessionId) sessionId = crypto.randomUUID(); — 서버가 lazy 생성.'human' | 'assistant' — 'user' 아님.marked.parse(resolveWikiImages(content)) 사용. 프리뷰는 escapeHtml(content.substring(0, 200)) — substring 결과에 marked를 돌리면 깨진 HTML 생성.<a>에 target="_blank" rel="noopener" 주입. 홈페이지는 sandboxed iframe이라 기본 링크 클릭 시 iframe 자체가 교체된다.fetch() / XMLHttpRequest 금지 (CORS 차단). 모든 데이터 접근은 window.gobi.*.https://www.gobispace.com/@{slug}?og=1 (?og=1로 OG 메타 포함).app/home.html을 덮어쓰고 gobi sync만 재실행하면 된다 (BRAIN.md 변경 없으면 gobi brain publish 생략 가능).선택한 스페이스에 자기소개를 남길지 묻는다. 스레드(gobi space create-thread)와 브레인 업데이트(gobi brain post-update) 두 가지 형식 모두 가능.
커뮤니티에 인사를 남길까요? 스레드나 브레인 업데이트로 간단히 올려드릴 수 있어요.
gobi space create-thread로 BRAIN.md 프로필 정보 기반 인사 스레드 작성gobi brain post-update --title "..." --content "..."로 BU 게시 (프로필 톤에 맞춘 1인칭 소개)네 번째 단계 완료! 커뮤니티에 연결됐어요. 이제 마무리할게요.
마지막 단계예요! 몇 가지만 정리하고 마무리할게요.
프로필을 커뮤니티와 동기화하면 명함을 교환하듯이 다른 전문가들이 나를 찾을 수 있어요. 동기화할까요?
.gobi/syncfiles에 아래 파일 추가 (모든 패턴은 /로 시작)
/BRAIN.md (프로필)/BRAIN_PROMPT.md (커뮤니티 에이전트 프롬프트 — 존재하는 경우)/BRAIN_PROFILE.md (상세 프로필 — 존재하는 경우)/BRAIN.jpg (프로필 이미지 — 존재하는 경우)/app/home.html (4-6 CBH로 생성한 경우)gobi sync를 실행하고 결과를 확인한 뒤 다음으로 진행한다.BRAIN.md처럼 / 없이 쓰면 서버가 HTTP 400: Pattern must start with '/'로 거부한다.에이전트는 완료 항목과 건너뛴 항목을 구체적으로 나열한다:
온보딩에서 빠진 기능들을 키워드 트리거 목록으로 안내한다.
더 해볼 수 있는 것들이 있어요. 키워드만 말하면 바로 시작할 수 있어요.
| 키워드 | 기능 |
|---|---|
| "음성 캔버스" | Capture Tab 체험 |
| "타임라인" | Timeline 시각화 |
| "웹 클리퍼" | Obsidian Web Clipper 설치 안내 |
| "브레인 탐색" | Brain Network Discovery |
| "영상 만들기" | Video 파이프라인 |
| "홈페이지 만들기" / "CBH" | 브레인 홈페이지 생성/재생성 |
| "옵시디언 설치" | 옵시디언 설치 가이드 (미연동 시) |
축하해요! 온보딩을 완료하셨어요! 이제 고비 데스크탑이 매일 나를 도와줄 준비가 됐어요.
obsidian_enabled = false인 경우 추가 안내:
옵시디언을 설치하면 볼트를 더 편리하게 관리할 수 있어요. 관심 있으면 '옵시디언 설치'라고 말해주세요.
이제 뭘 하면 좋을까요? 두 가지를 추천해요. 첫째, 자료를 더 넣어보세요. 자료가 쌓일수록 에이아이가 더 잘 도와줘요. 둘째, 아무거나 질문해보세요. 내 자료를 바탕으로 답변해줄게요.
언제든 도움이 필요하면 '도움'이라고 말해주세요. 궁금한 게 있으면 뭐든 물어보세요. 항상 여기 있을게요. 고비와 함께 즐거운 지식 여행 되세요!
온보딩 중 EIC/EDM 등 파이프라인이 트리거된 후, _Settings_/Tasks/ 폴더의 태스크 파일을 통해 진행 상황을 추적한다.
파이프라인이 트리거되면 _Settings_/Tasks/에 태스크 파일이 자동 생성된다:
YYYY-MM-DD {task_type} - {title}.mdstatus: PROCESSING → PROCESSED / FAILEDtask_type: EIC, EDM, GDR, TIUoutput: 출력 파일 위키 링크 (예: [[AI/Summary/파일명 - EIC]])generation_log: 로그 파일 링크파이프라인 트리거 후 다음 순서로 확인:
_Settings_/Tasks/에서 해당 task_type의 최신 파일을 폴링 (최대 120초, 5초 간격)
obsidian search query="task_type: EIC" path="_Settings_/Tasks" limit=1로 최신 태스크 파일 검색, obsidian property:read name=status file="task-file"로 상태 확인status 필드 읽기
PROCESSED → 성공, output 필드에서 결과 파일 경로 확인FAILED → 실패, generation_log에서 원인 확인output 경로의 파일이 실제로 존재하는지 검증| 시점 | 파이프라인 | 모니터링 대상 |
|---|---|---|
| 2단계: 웹 클리핑 후 | EIC | _Settings_/Tasks/*EIC* → AI/Summary/ 출력 |
| 2단계: PDF 추가 후 | EDM | _Settings_/Tasks/*EDM* → Ingest/Documents/*.md 출력 |
| 2단계: TIU auto-trigger 후 | TIU | _Settings_/Tasks/*TIU* → Topics/ 출력 |
파이프라인 완료 시 사용자에게 자연스럽게 알려준다:
obsidian_enabled = true): obsidian open 으로 출력 파일을 직접 열어준 뒤 "요약이 완료됐어요! 방금 열어드렸어요."obsidian_enabled = false): "요약이 완료됐어요! 에이아이 서머리 폴더에서 확인할 수 있어요."EIC/EDM 등 파이프라인이 처리 시간이 길어질 때 (5분 이상) 자연스럽게 안내한다:
사용자: "나중에 할게요" / "그만할래요"
에이전트: "알겠어요. 지금까지 N단계까지 완료했어요. 나중에 '온보딩 계속'이라고 말씀하시면 여기서 이어서 할 수 있어요. 수고하셨어요!"
사용자: "온보딩 계속" / "이어서 하자"
에이전트: "다시 오셨군요! 지난번에 N단계까지 완료하셨어요. N+1단계부터 이어서 할게요. 준비되셨나요?"
진행 표시 형식:
✅ 1단계: 프로필 만들기 — 프로필 완료
🔄 2단계: 첫 지식 체험 — 클리핑 ✅ / DRB ✅ / TIU 남음
⬜ 3단계: 콘텐츠 만들기
⬜ 4단계: 커뮤니티 온보딩
⬜ 5단계: 마무리