Markdown 보관함을
벼리는 커맨드라인 도구
문서·링크·이미지·front matter·태그를 증분 색인하고 오류를 보고합니다. 안전한 수정과 정적 HTML 내보내기까지 — 전부 로컬에서. 계정도, 광고도, 원격분석도 없습니다.
$ vaultsmith init D:\Notes $ vaultsmith scan D:\Notes → 1,284 docs · 312 changed · 9,640 links resolved $ vaultsmith check . --fail-on warning → VLT200 broken link · guides/setup.md:42 → VLT300 orphan asset · img/old-diagram.png $ vaultsmith query . "tag:project broken:false" $ vaultsmith fix . --rule VLT106 --dry-run $ vaultsmith export . --out D:\Export
보관함의 무결성을 지키는 6가지
분석 전용 파서와 HTML 렌더러를 분리해, 외부 렌더러를 바꿔도 검사 결과는 그대로 유지됩니다.
증분 색인
size·mtime 비교 후 변경 후보만 SHA-256 해시. 바뀐 문서만 파싱해 SQLite 인덱스를 트랜잭션으로 갱신합니다.
링크 · 자산 검사
깨진 내부 링크, 누락 이미지, orphan 자산, fragment·anchor 불일치, vault 외부 탈출 경로까지 잡아냅니다.
메타데이터 검증
front matter 파싱, 중복 제목·정규화 slug, 경로 대소문자 불일치, 태그 충돌, 잘못된 날짜를 점검합니다.
안전한 수정
기본 dry-run. 백업 → expected hash 검사 → parse·patch·parse 재검증. 하나라도 실패하면 그 파일은 건드리지 않습니다.
HTML 내보내기
raw HTML 기본 차단, javascript URL 제거, 외부 링크 rel=noopener, 로컬 자산 복사, 변경분만 증분 export.
로컬 우선
계정·광고·원격분석 없음. 출력은 relative path 기준 결정적. 10,000 문서 초기 스캔 60초, 증분 100개 3초 목표.
일곱 개의 명령어
읽기 전용 분석부터 명시적 --apply 수정까지, 동작이 예측 가능하도록 설계된 인터페이스.
init
.vaultsmith/config.json을 생성합니다. 기존 파일은 덮어쓰지 않습니다.
scan
기본 증분 색인. --full 전체 재해시·재파싱, --no-rules 인덱스만 갱신.
check
규칙을 평가하고 --fail-on 임계치에 따라 종료 코드를 반환합니다.
query
tag: path: broken: 등 v1 문법. 모호하면 임의 해석 대신 오류.
report / export
text·json·jsonl·html 보고서, 그리고 정적 사이트 HTML 내보내기.
fix / doctor
--apply 없이는 수정하지 않습니다. doctor는 권한·DB·경로 충돌을 진단합니다.
VLT 규칙 카탈로그
각 finding은 line 번호를 제외한 안정적 fingerprint를 가져, 단순 줄 이동으로 baseline이 깨지지 않습니다.
Parse
VLT001–005VLT001invalid UTF-8VLT002front matter 오류VLT005닫히지 않은 fence
Documents
VLT100–106VLT102중복 slugVLT105vault 외부 탈출VLT106경로 대소문자
Links
VLT200–206VLT200깨진 내부 링크VLT201누락 자산VLT203모호한 확장자 생략
Assets
VLT300–303VLT300orphan assetVLT302크기 초과VLT303위험한 파일명
Metadata
VLT400–403VLT400잘못된 날짜VLT401태그 충돌VLT403alias 충돌