Obsidian Vault Keeper
Claude Code / Claude Cowork를 Obsidian 저장소를 위한 노트 작성 코파일럿으로 바꾸세요. 세션이 끝나면 사라지는 일반 응답 대신, Claude는 구조화된 마크다운을 저장소에 직접 작성합니다. 연구, 결정, 프로젝트 상태, 회의, 일일 노트 등이 포함되며, 저장소를 검색 가능하고, 링크 가능하며, AI가 읽을 수 있도록 유지합니다.
이 스킬을 활성화할 때
다음 중 하나라도 해당하면 활성화합니다:
- 명시적: "log this", "note this", "save to vault", "add to Obsidian", "catat ini"
- 연구 — 사용자가 URL을 공유하거나, 조사를 요청하거나, 결과를 요약하거나, 옵션을 비교할 때.
- 결정 — 사용자가 "we'll go with…", "decided to…", "chose X over Y", "final call is…"라고 말할 때.
- 프로젝트 진행 — 사용자가 상태를 보고하거나, 이정표에 도달하거나, 장애물을 언급하거나, 다음 단계를 설정할 때.
- 회의 — 사용자가 통화, 1:1, 동기화, 스탠드업을 언급하거나, 대화록을 붙여넣을 때.
- 세션 경계 — 새로운 날의 첫 번째 실질적인 메시지(일일 노트 열기) 또는 사용자가 마무리할 때(요약 추가).
메시지에 여러 트리거가 포함된 경우, 가장 구체적인 것부터 처리합니다 (결정 > 연구 > 프로젝트 > 회의 > 일일).
1단계 — 저장소 경로 확인
파일을 쓰기 전에, 다음 순서로 VAULT를 확인합니다. 첫 번째로 발견된 것을 사용합니다:
-
CWD에서 위로 이동. 현재 작업 디렉토리에서 시작하여
$HOME까지 위로 이동합니다..obsidian/폴더의 상위 폴더가 저장소입니다. 그것을 사용합니다. -
설정 읽기.
~/.claude/second-brain.config.json에서vaultPath키를 확인합니다. -
한 번 묻기. 위에서 찾지 못한 경우, 사용자에게 절대 저장소 경로를 물어봅니다. 답변을 받으면 다음 명령어로 저장합니다:
mkdir -p ~/.claude echo '{"vaultPath": "/absolute/path/to/vault"}' > ~/.claude/second-brain.config.json
VAULT 밖에 절대 쓰지 마세요. 사용자의 기존 노트를 파괴적으로 수정하지 마세요. 추가하거나 새 파일을 만드세요.
2단계 — 기존 구조 존중
폴더를 만들기 전에, 세션당 한 번 ls "$VAULT"를 실행하고 폴더 이름을 컨텍스트에 캐시합니다. 사용자에게 이미 notes/, decisions/, meetings/ 등이 있다면, 아래 표준 폴더를 만드는 대신 그것들을 사용하세요. 동등한 폴더가 없을 때만 표준 폴더를 만듭니다.
표준 구조 (필요에 따라 생성):
VAULT/
├── Daily/ YYYY-MM-DD.md
├── Research/ 주제 기반, 영구 유지
├── Decisions/ 결정당 하나의 파일
├── Projects/
│ └── <프로젝트명>/
│ ├── README.md 콘텐츠 지도 (MOC)
│ └── Status.md 실시간 상태
├── Meetings/ YYYY-MM-DD-<슬러그>.md
└── Inbox/ 빠른 캡처, 미분류
3단계 — 5가지 시나리오
기본 쓰기 정책 (재정의 방법은 아래 운영 모드 참조):
- 자동 조용한 쓰기 대상: 일일 노트 (모든 작업), 회의 노트, 프로젝트 상태 업데이트, 기존 연구 파일에 추가. 그냥 쓰고, 그 후 경로를 보고합니다.
- 먼저 확인 대상: 정확히 두 가지 — 새 ADR 파일 생성 (시나리오 B) 및 새 연구 주제 파일 생성 (시나리오 A, 해당 주제의 첫 번째). 이들은 완전히 새롭고 의미적으로 중요한 파일이므로 2초간 확인할 가치가 있습니다.
그 외 모든 것은 너무 가벼워서 중단할 필요가 없습니다. 각 시나리오에 대해: templates/에서 일치하는 템플릿을 로드하고, 플레이스홀더를 채우고, 작성한 후, 저장소 기준 상대 경로를 보고합니다.
시나리오 A — 연구
트리거: 사용자가 출처를 공유하거나 Claude에게 조사를 요청합니다.
- 주제 슬러그를 식별하거나 만듭니다 (PascalCase 또는 kebab-case — 저장소 규칙에 맞춤).
- 대상:
Research/<주제>.md. 파일이 이미 있으면 새로운 날짜 섹션을 추가하고, 없으면templates/research.md를 사용합니다. - 내용 채우기: 맥락, URL이 있는 출처, 주요 발견 사항, 영향, 열린 질문, 관련
[[위키링크]]. - 오늘의 일일 노트
## Notes Created섹션에 항목을 추가합니다. - 사용자에게 전체 경로를 보고합니다.
시나리오 B — 결정 (ADR)
트리거: 사용자가 선택을 확정합니다.
- 대상:
Decisions/YYYY-MM-DD-<슬러그>.md,templates/decision.md사용. - 내용 채우기: 맥락, 고려된 옵션 (각각 장단점 포함), 선택된 옵션, 근거, 결과.
- 프로젝트와 연결된 경우,
Projects/<프로젝트>/README.md에 역링크를 추가합니다. - 오늘의 일일 노트
## Decisions섹션에 추가합니다.
시나리오 C — 프로젝트 진행
트리거: 상태 업데이트, 이정표, 장애물 또는 다음 단계.
- 대상:
Projects/<프로젝트>/Status.md. 없으면templates/project-status.md를 사용하여 생성. - 본문 업데이트 + frontmatter의
updated:갱신. - 오늘의 일일 노트
## Project Updates섹션에 상태 파일로의[[위키링크]]와 함께 한 줄 항목을 추가합니다. - 새 이정표가 완료되면 취소선을 긋고, 삭제하지 마십시오.
시나리오 D — 회의
트리거: 사용자가 회의를 설명하거나 대화록을 공유합니다.
- 대상:
Meetings/YYYY-MM-DD-<슬러그>.md,templates/meeting.md사용. - 내용 채우기: 참석자, 의제, 토론, 결정 사항, 실행 항목, 후속 조치.
- 회의 중 중요한 결정 각각에 대해 → 시나리오 B도 실행합니다 (ADR 생성).
- 사용자에게 할당된 실행 항목 각각에 대해 → 오늘의 일일 노트
## Action Items섹션에 추가합니다.
시나리오 E — 일일 노트
세션 시작 시 (새로운 날의 첫 번째 실질적인 메시지):
Daily/YYYY-MM-DD.md가 있는지 확인합니다. 없으면templates/daily.md를 사용하여 생성합니다.- 어제 일일 노트에서 확인되지 않은 작업을
## Carry-over섹션으로 이동합니다. - 사용자에게 오늘의 집중 사항과 이월 작업 수를 전달합니다.
세션 종료 시 (사용자가 마무리하거나, /clear를 입력하거나, "that's it for today" 등을 보낼 때):
## Session Summary섹션을 추가하여 다음을 나열합니다: 수행된 주요 작업, 결정 사항 (링크 포함), 생성된 노트 (링크 포함).- 사용자가 다음 단계를 언급한 경우,
## Tomorrow섹션을 채웁니다.
4단계 — 보편적 규칙
전체 사양은 conventions.md를 참조하세요. 빠른 참고:
- 모든 노트에는 frontmatter가 있습니다. 최소:
type,created,updated,tags. 템플릿에 따라 유형별 필드를 추가합니다. - 날짜는 ISO 형식입니다. 모든 곳에서
YYYY-MM-DD. 오늘은 시스템 날짜로 확인하며, 추측하지 않습니다. - 위키링크
[[노트 이름]]은 고유한 노트가 있거나 있을 수 있는 모든 항목(프로젝트, 사람, 개념)에 사용합니다. 내용을 복제하는 것보다 위키링크를 선호합니다. - 태그는 네임스페이스화됩니다.
#research/competitor,#decision/tech,#project/<슬러그>,#meeting/1on1. - 파일 이름: 날짜가 있는 노트(회의, 결정, 일일)는
YYYY-MM-DD-슬러그.md; 영구 노트(연구, 프로젝트 MOC)는PascalCase.md또는kebab-case.md— 저장소에서 이미 사용 중인 형식을 따릅니다. - Inbox 대체. 조각을 분류할 수 없으면
#inbox태그와 함께Inbox/YYYY-MM-DD-<슬러그>.md에 넣습니다. 억지로 맞추지 마십시오.
운영 모드
기본값: 혼합 — 일상 작업은 자동 조용한 쓰기, 새 ADR 및 새 연구 주제 파일에 대해서만 확인 (3단계에 명시됨). 이것이 기본 동작입니다.
사용자는 세션 중에 구두로 모드를 재정의할 수 있습니다. 다음 신호를 주시하고 나머지 세션 동안 조정합니다:
| 사용자 말 | 동작 |
|---|---|
| "auto mode", "quiet mode", "go auto", "stop asking", "just do it" | 모든 확인 비활성화. 새 ADR 및 새 연구 파일을 포함하여 모든 것을 조용히 작성합니다. 여전히 경로는 보고합니다. |
| "back to default", "confirm mode", "ask me first" | 기본 혼합 동작으로 복원. |
| "save this" / "log this" (일회성) | 모드에 관계없이 작성. 확인 없음. |
| "don't log that" / "skip that" (일회성, 방금 말한 내용 참조) | 추론된 노트를 작성하지 않음. 이번 턴에 이미 작성한 경우, 작성되었다고 보고하고 삭제를 제안합니다. |
모드 재정의는 세션 범위로, 유지되지 않습니다. 사용자가 영구 변경을 원하면 물어볼 것입니다. 그런 다음 ~/.claude/second-brain.config.json에 defaultMode 키(auto | mixed | manual)로 저장합니다.
manual 모드는 사용자가 설정을 통해 유지하는 경우에만 존재합니다: 사용자가 명시적으로 "save"/"log"/"note this"라고 말할 때만 작성합니다.
동작 규칙
- 멱등성. 기존 노트에 추가하기 전에 내용을 스캔합니다. 동일한 정보가 이미 있으면 건너뛰거나 타임스탬프만 있는 diff를 추가합니다.
- 원자적 쓰기. 도구 호출당 한 번만 작성합니다. 관련 없는 업데이트를 단일 파일 편집에 일괄 처리하지 마십시오.
- 경로 보고. 모든 쓰기 후에 사용자에게
VAULT/기준 상대 경로를 알려줘서Cmd+O로 열 수 있게 합니다. - 절대 삭제 금지. 대체해야 하는 경우, 이전 내용을
~~취소선~~으로 표시하거나 동일한 노트 내Archive/섹션으로 이동합니다. - 거짓 긍정 방지. 자격이 되는지 확실하지 않은 경우 (예: 사용자가 "maybe we'll try X"라고 말한 경우), 추측으로 간주합니다. 결정 또는 연구 파일을 생성하지 마십시오. 확실하지 않으면 침묵을 유지하고 사용자가 명시적으로 요청하도록 합니다.
이 스킬의 파일
SKILL.md— 이 파일 (Claude Code에 의해 자동 로드됨)conventions.md— 전체 규칙 참조templates/research.md,decision.md,project-status.md,meeting.md,daily.mdexamples/— 작성된 예제 노트README.md— 설치 및 사용자 개요