Community생산성 & 협업github.com

tderoussel/vault-doctor

Obsidian 보관소의 구조적 건강 상태를 진단하고 수리합니다. 깨진 [[위키링크]], 모호한 중복 파일명, 누락되거나 잘못된 프론트매터, 오래된 상태 마커, 그리고 허브 노트의 상태 섹션이 더 이상 유효하지 않은 경우를 찾습니다.

vault-doctor란 무엇인가요?

이 스킬은 Obsidian 보관소(vault)의 구조적 건강을 종합적으로 검사하고 필요한 경우 수리 제안을 제공하는 전문 AI 에이전트 도구입니다. 깨진 위키링크, 중복 파일명(duplicate basenames), 파싱되지 않는 프론트매터, 잘못된 태그, 오래된 상태 마커, 그리고 '차가운 허브 노트(cold hub notes)'를 감지합니다. 모든 수정은 사용자 승인 후에만 적용되는 읽기 전용 검사를 기본으로 하며, 안전성과 데이터 무결성을 최우선으로 합니다. 이 스킬은 Claude Code, Cursor, Codex와 같은 AI 코딩 에이전트 플랫폼에서 사용할 수 있으며, '보관소 상태', '깨진 링크', '보관소 정리' 등의 사용자 요청에 반응합니다. 특히 깨진 링크를 단순히 '수정'하는 대신, 교차 시스템 참조, 의도적 데모 링크, 이름 변경(drift), 진정한 누락 노트의 네 가지 범주로 분류하여 올바른 조치를 취합니다. 또한 무분별한 찾기-바꾸기(find-and-replace)를 금지하고 파일별로 수정을 제안하며, 프론트매터의 YAML 파싱 오류를 실제 파서로 검증하는 등 안전한 수리 방식을 강조합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tderoussel/agent-skills/tree/main/skills/vault-doctor

Installed? Explore more 생산성 & 협업 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Vault doctor

대부분의 Obsidian 보관소에는 git이나 실행 취소(undo) 기능이 없으며, 많은 경우 iCloud, OneDrive, Dropbox를 통해 실시간 동기화됩니다. 모든 쓰기 작업을 되돌릴 수 없는 것으로 간주하세요. 어떤 것도 건드리기 전에 보관소의 실제 백업 상황을 확인하고, 덮어쓰기 전에 먼저 읽고, 전체 파일을 다시 쓰기보다는 대상 수정을 선호하며, 빠른 쓰기 루프를 절대 실행하지 마세요. 동기화된 폴더에서 이렇게 하면 충돌 복사본이 생성됩니다.

스캔

.md 파일을 탐색하고, node_modules, .git, .obsidian 및 보관소에 축적된 빌드 또는 임시 디렉터리를 건너뜁니다. 모든 파일 기본 이름(첨부 파일 포함, .md만 해당하지 않음)에서 링크 대상 집합을 구축한 다음, |별칭, #제목, ^블록 접미사를 제거하여 [[대상]]을 추출합니다.

기준을 기록합니다. 노트 수, 고유한 깨진 대상 수, 총 깨진 참조 수, 중복된 기본 이름 수입니다. 이후 실행 시 동일한 인구 조사를 반복하지 않고 변화를 보여줄 수 있습니다.

수리 전 분류

원시적인 깨진 링크 개수는 결함 목록이 아닙니다. 모든 적중 항목을 다음 네 가지 버킷 중 하나로 정렬하세요.

1. 교차 시스템 참조 — "수정"하지 마십시오. 일부 대상은 보관소 노트가 전혀 아닙니다. 에이전트 메모리 ID, 티켓 키 또는 다른 도구의 식별자로서 우연히 위키링크 구문으로 작성된 것들입니다. 절대 해결되지 않습니다. 이를 일반 텍스트로 변환하는 것은 변호할 수 있지만, 이를 만족시키기 위해 스텁 노트(stub note)를 만드는 것은 그렇지 않습니다.

2. 깨진 링크에 대한 문서 — 절대 건드리지 마십시오. 일부 노트는 깨진 링크를 의도적으로 예시로 인용하거나 ("도구가 이것을 찾지 못하면 도구가 잘못된 것입니다") 연습 문제의 근거 자료로 사용합니다. 이를 편집하면 그 가르치는 내용이 손상됩니다. 산문 내에 인용된 위키링크 구문도 동일한 클래스입니다.

3. 이름 변경(drift) — 소스가 아닌 대상에서 수정하십시오. 많은 참조가 짧은 이름을 가리키는데 노트가 더 긴 이름으로 저장된 경우, 모든 참조 파일을 편집하는 대신 대상의 프론트매터에 aliases: [짧은이름]을 추가하는 것을 선호하십시오. 한 번의 수정, 기본 Obsidian 메커니즘, 주변 맥락을 망칠 위험이 없습니다.

4. 진정으로 누락된 노트. 대상이 존재한 적이 없습니다. 보고하십시오. 자동 생성하지 마십시오. 빈 스텁은 답변된 것처럼 보이기 때문에 깨진 링크보다 더 나쁩니다.

찾기-바꾸기 금지

범위가 지정되지 않은 찾기-바꾸기로 링크를 수리하지 마십시오. 보관소 전체를 대상으로 하는 맹목적인 대체는 검색 문자열을 포함하는 폴더 이름, URL, 코드 블록 및 태그 어휘를 망가뜨릴 것입니다. 실행 취소가 불가능하므로 손상은 영구적입니다. 파일별로 수정하고, 주변 줄을 먼저 읽으십시오.

기타 검사

  • 중복 기본 이름은 보관소 전체에서 링크를 모호하게 만듭니다. Obsidian이 보관소 전체에서 파일 이름으로 [[링크]]를 확인하기 때문입니다. 일반적인 원인은 보관소 내부에 존재하는 코드 프로젝트나 종속성 트리로, 수천 개의 유령 .md 파일을 생성합니다. 이를 플래그로 표시하십시오. 해결 방법은 프로젝트를 보관소 밖으로 이동하거나 제외 항목을 추가하는 것입니다. 묻지 않고 아무것도 삭제하지 마십시오.

  • 프론트매터는 실제로 파싱되어야 합니다. 모든 블록을 실제 YAML 파서를 통해 실행하십시오. 눈으로 확인하지 마십시오. 지배적인 실패는 : (콜론-공백)을 포함하는 따옴표 없는 일반 스칼라로, 해당 문자에서 실패하고 그 아래의 모든 키를 함께 가져가 전체 블록을 Obsidian의 속성 패널과 Dataview에 보이지 않게 만듭니다. 두 번째 일반적인 실패: | 또는 >로 시작하는 따옴표 없는 값은 YAML 블록 스칼라를 엽니다.

    수정은 값 인용을 의미하며, 많은 로드를 지탱하는 노트의 경우 수백 개의 키에 영향을 미칠 수 있습니다. 제안만 하고, 승인 없이 절대 수행하지 마십시오, 그리고 파일을 먼저 백업하십시오. 수정될 때까지는 두 번째 스타일을 도입하지 말고 기존의 (깨진) 관례를 따르십시오. 유효하지 않은 블록 내의 외로운 유효 키는 아무것도 사지 않습니다.

  • 태그는 인라인 해시태그가 아닌 YAML 목록에 속합니다. 이상적인 어휘가 아닌 보관소의 실제 어휘와 대조하십시오. 표류(drift)를 보고하십시오. 일방적으로 다시 태그를 지정하지 마십시오.

  • 오래된 상태 — PAUSED/STALLED/TODO 마커를 가지고 있지만 프로젝트가 이미 진행된 노트입니다. 보고하십시오. 직접 해결하지 마십시오.

  • 차가운 허브 — 가장 최근의 상태 섹션이 프로젝트의 가장 최근 활동보다 이전인 허브 노트는 최신 상태가 아닙니다. 그 차이를 보고하십시오.

출력

버킷별로 정렬되고, 개수와 정확한 파일:줄 참조가 포함된 보고서입니다. 수리를 제안하십시오. 사용자가 승인한 수리만 수행하십시오.

어떤 발견이 검증된 것이고 어떤 것이 이름에서 추론된 것인지 명확히 밝히십시오. 표류(drift)처럼 보이는 대상은 사용자가 작성하려는 노트일 수 있습니다.

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

tderoussel/codebase-audit

Runs a ranked, evidence-backed audit of a product, codebase, or subsystem, ending in a verify list that separates proven findings from inferred ones. Use when the user asks for an audit, a gap analysis, a deep read, a bug hunt, a readiness check, a re-audit, a state reconciliation, or asks what they are not seeing. Trigger phrases include "audit", "gap analysis", "what am I missing", "deep audit", "readiness", "bug hunt", "review the whole thing". Produces findings and a verify list; does not fix.

tderoussel/competitive-teardown

Researches a competing product against your own and produces a ranked build-or-ignore verdict, plus optional comparison-page copy. Use when the user names a competitor or asks how their product stacks up against one. Trigger phrases include "vs us", "competitor", "what does X have", "should we copy", "competitive gap", "teardown", "are we behind". Produces a ranked verdict with effort estimates and an explicit not-worth-copying list.

tderoussel/decision-council

Run a structured multi-perspective review of a decision instead of getting one agreeable answer. Use when the user says run a council, get me perspectives on this, should I do X, stress-test this decision, or is this a good idea.

tderoussel/fleet-brief

Authors a workstream brief for dispatching multiple parallel build agents across one codebase, with per-lane file ownership, shared-ground warnings, and a derived DO-NOT list. Use whenever work is about to be split across concurrent agents, workers, lanes, or waves — even if the user does not say "write a brief". Trigger phrases include "fan out", "parallel agents", "orchestrate this", "split into lanes", "workstreams", "run these in parallel", "review-gated build". Produces the brief; does not dispatch.

tderoussel/inbox-triage

Triage an email inbox — sort what needs a reply, draft the replies, flag what needs a decision, and surface what can be ignored or unsubscribed. Use when the user says triage my inbox, do my email, what's in my inbox, or clean up my email.

tderoussel/overnight-build

Composes an autonomous unattended Claude Code build prompt that survives usage-limit resets via BUILD_LOG.md checkpointing, plus the launcher that restarts it. Use when the user asks for an overnight build, an autonomous build, a build to run while they sleep, an unattended or unsupervised session, or any long build they will not be monitoring. Trigger phrases include "overnight build", "run overnight", "build while I sleep", "autonomous build", "let it run", "unattended". Produces a single copyable prompt; does not run the build.

tderoussel/session-log

Write a durable record of a work session — what was built, root-caused, or shipped — into the project's notes. Use when the user says log this session, write a session log, record this, or when a substantial piece of work has just finished and needs to be handed off to a future session.

tderoussel/ship-gate

Verification gate for a Next.js-on-Vercel + Supabase + GitHub Actions stack, to run before claiming anything is shipped, deployed, live, merged, passing, or done. Use before saying a change is in production, before merging a PR, before reporting CI green, and before writing any status into a document — even if the user does not ask for verification. Trigger phrases include "is it live", "did it deploy", "ship it", "merge it", "is CI green", "confirm prod", "did that work". Encodes traps where the obvious check returns a false pass.

관련 스킬