AgentSkillsCN

til

今日所学——先对主题展开研究,以互动式方式开展学习,随后以兼容 Obsidian 的 TIL Markdown 格式进行保存

SKILL.md
--- frontmatter
name: til
description: "Today I Learned - 주제를 리서치하고 대화형으로 학습한 뒤 Obsidian 호환 TIL 마크다운으로 저장"
argument-hint: "<주제> [카테고리]"
plugin-version: "__PLUGIN_VERSION__"

TIL (Today I Learned) Skill

주제를 리서치하고, 대화형으로 학습을 도와준 뒤, 결과물을 Obsidian 호환 TIL 마크다운 파일로 저장합니다.

활성화 조건

  • "오늘 배운 것 정리해줘"
  • "TIL 작성해줘"
  • "/til <주제>"
  • "<주제>에 대해 학습하고 TIL로 정리해줘"

비활성화 조건

  • 넓은 주제의 학습 로드맵이 필요할 때 → /research 사용
  • 백로그 진행 상황만 확인할 때 → /backlog 사용
  • 이미 작성된 TIL을 수정만 하고 싶을 때 → 직접 파일을 편집 (심화 학습이 필요하면 /til로 같은 주제를 다시 호출)
  • 주제가 너무 넓어서 TIL 한 장으로 정리할 수 없을 때 → /research로 분해 후 개별 /til

MCP 도구 활용

oh-my-til MCP 서버가 연결되어 있으면 MCP 도구를 활용한다:

  • Phase 1 시작 전: til_list로 기존 TIL 목록을 확인하여 동일/유사 주제가 있으면 심화 학습 모드로 전환. til_list는 JSON을 반환한다: { totalCount, categories: [{ name, count, files }] }
  • Phase 2 중: til_get_context로 주제 관련 기존 TIL과 백로그를 파악하여 마크다운 링크 후보 확보
  • Phase 3 저장 전: vault_get_active_file로 사용자가 보고 있는 파일 컨텍스트 확인

MCP 도구를 사용할 수 없는 경우, ./til/TIL MOC.md./til/{카테고리}/backlog.md를 직접 읽어 기존 TIL과 백로그를 파악한다.

워크플로우

Phase 1: 주제 리서치

code
[Phase 1/3] 주제 리서치 중...
  1. til_get_context로 주제 관련 기존 TIL이 있는지 확인한다. MCP 도구를 사용할 수 없으면 til_list로 폴백한다
    • 백로그에서 항목을 학습할 때, til_backlog_status(category 지정) 응답의 sourceUrls를 확인한다
    • sourceUrls가 있으면 해당 URL들을 우선 참조하여 원본 콘텐츠 기반으로 학습한다
    • sourceUrls가 없으면 기존대로 웹 검색으로 리서치한다
  2. 기존 TIL이 있으면: 사용자에게 선택지를 제시한다:
    code
    "{주제}"에 대한 기존 TIL이 있습니다: {파일 경로}
    어떻게 진행할까요?
    1. 심화 학습 — 기존 내용을 기반으로 더 깊이 학습 (기존 TIL에 보강)
    2. 새로 작성 — 다른 관점에서 새 TIL 작성
    
    • 심화 학습 선택 시: 기존 TIL 파일을 읽어 이미 다룬 내용을 파악하고, 새로운 영역을 웹 검색/문서로 조사한다
    • 새로 작성 선택 시: 기존 TIL과 무관하게 새로 조사한다 (저장 시 슬러그 충돌은 /save에서 처리)
  3. 기존 TIL이 없으면: 웹 검색과 문서를 통해 주제를 조사한다
  4. 핵심 개념, 예시, 관련 자료를 수집한다
  5. 수집한 내용을 사용자에게 요약해서 보여준다

Phase 2: 대화형 학습

code
[Phase 2/3] 대화형 학습
  1. 리서치 결과를 바탕으로 핵심 내용을 설명한다
  2. 심화 학습 모드: 기존 TIL에서 이미 다룬 내용은 반복하지 않고, 새로운 관점/심화 내용에 집중한다
  3. 사용자가 궁금한 점을 질문하면 답변한다
  4. 사용자가 "저장해줘", "정리해줘", "TIL로 만들어줘" 등을 말하면 Phase 3으로 전환한다
  5. Phase 3 전환은 반드시 사용자의 명시적 요청에 의해서만 이루어진다. AI가 "충분히 이해했다"고 판단하여 자동 전환하지 않는다

Phase 3: 저장

사용자가 "저장해줘", "정리해줘", "TIL로 만들어줘" 등을 말하면 /save 스킬의 규칙을 따라 저장한다. 템플릿, Daily 노트, MOC, 백로그 규칙은 모두 /save 스킬에 정의되어 있다.

심화 학습 모드: 기존 파일에 자동 병합된다 (기존 내용 유지 + 보강, updated 날짜 추가). 상세 병합 규칙은 /save 스킬 Step 3 참조.

인수 처리

  • 첫 번째 인수: 학습 주제 (필수)
    • 예: "JavaScript 클로저", "Docker 네트워크", "Rust ownership"
  • 두 번째 인수: 카테고리 (선택)
    • 예: "javascript", "devops", "rust"
    • 미지정 시 주제에서 자동 추론

실행 예시

code
/til JavaScript 클로저
/til Docker 네트워크 모드 devops
/til Rust의 소유권 개념

주의사항

  • Phase 2(대화형 학습)에서 사용자가 원하면 바로 Phase 3으로 건너뛸 수 있다
  • 리서치 결과가 부족하면 사용자에게 알리고 추가 키워드를 요청한다
  • 한국어로 작성하되, 기술 용어는 원어 병기 (예: "클로저(Closure)")
  • 링크는 항상 [표시명](til/{카테고리}/{slug}.md) 표준 마크다운 형식을 사용한다. 기존 TIL과 백로그 항목은 본문에서 바로 링크하고, 존재하지 않는 개념은 저장 시 사용자에게 확인 후 관련 노트 섹션에 추가한다
  • [[위키링크]] 형식 사용 금지 — 항상 표준 마크다운 [표시명](til/{카테고리}/{slug}.md) 형식만 사용한다

피해야 할 실패 모드

  • 사용자 동의 없이 저장: "저장해줘"라고 말하기 전에 Phase 3으로 넘어가지 않는다
  • Phase 2 건너뛰기: 리서치 결과만 보여주고 바로 저장하지 않는다. 사용자가 명시적으로 건너뛰기를 요청한 경우만 예외
  • 얕은 내용: Phase 2에서 충분한 대화 없이 피상적인 TIL을 생성
  • 민감 정보 노출: Phase 2 대화에서 나온 개인정보, 회사 내부 URL, API 키, 실제 서버 주소 등을 Phase 3 문서에 그대로 포함하지 않는다. 예시에는 example.com, your-api-key, 192.168.x.x 같은 대체값을 사용한다