Files
ParaWiki/.claude/skills/lint/SKILL.md
minsung 3bd01e31c9
All checks were successful
Publish ParaWiki / build-and-deploy (push) Successful in 29s
에이전트 협업 인프라 구축 — .claude/ 확장
- PLAN.md · PROGRESS.md 도입: 병렬 에이전트 조정 지점
- CLAUDE.md 린화 + 에이전트 작업 흐름 섹션 (상세는 Output/guides/로 분리)
- Output/guides/cimery-dev-guide.md, obsidian-cli.md 신설
- Agents: cimery-architect-researcher, adr-drafter
- Commands: /plan, /progress, /adr, /research, /cimery-start
- Skill: plan-commit
- Hooks: raw/ 쓰기 차단, SessionStart PLAN/PROGRESS 주입,
  wiki/ADR 변경 시 log 갱신 알림, auto-approve (deny 훅 우선 유지)
- .gitignore: .claude/ 공유 자산 포함, 로컬 상태·바이너리만 유지 제외

Closes #3

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 17:21:11 +09:00

4.9 KiB

name, description
name description
lint Library-tidying scan over the entire wiki/. Detects broken wikilinks, orphan pages, missing frontmatter fields, stale sources, index mismatches, oversized index lines, and log gaps — then proposes and applies fixes. Use when the user says "위키 정리", "lint", "도서관 정리", or "/lint".

lint

위키 전체를 점검하고, 깨지거나 낡은 것·규칙 위반을 찾아 수정·업데이트까지 수행하는 도서관 정리 스킬.

절차 (순서대로 실행)

1. 인벤토리 수집

  • wiki/*.md 전체 파일 목록(이하 WIKI_FILES).
  • raw/ 전체 파일 목록(이하 RAW_FILES, README/CLAUDE 제외).
  • wiki/index.md 내 모든 [[...]] wikilink 목록(INDEX_LINKS).
  • wiki/log.mdcreate/delete/rename 이벤트 목록(LOG_EVENTS).
  • 각 위키 페이지의 frontmatter(title, tags, sources, updated, principles)와 본문 내 wikilink 전체(PAGE_LINKS_BY_FILE).

2. 점검 항목

각 항목은 찾기(detect) → 제안(report) → 가능하면 자동 수정(apply). 의미가 모호한 수정은 제안만 하고 사용자 확인을 남겨둠.

  • 각 페이지의 [[X]] 에 대해 wiki/X.md 가 존재하는지 검사.
  • 없으면 깨진 링크. 유사 이름(대소문자·띄어쓰기 차이) 페이지가 있으면 자동 교정 제안.

B. 오탈자·이명 (자동 수정 어려움 — 제안)

  • 페이지 제목과 wikilink 텍스트 불일치 확인.

C. 고아 페이지 (자동)

  • WIKI_FILES 중 어떤 다른 페이지에서도 링크되지 않고, index.md에도 없는 페이지.
  • index.md에 한 줄 엔트리를 추가 (카테고리: 내용 기반 판단, 애매하면 "개념"). 120자 이내.

D. index.md 누락·불일치 (자동)

  • WIKI_FILESINDEX_LINKS → 누락된 페이지는 index에 추가.
  • INDEX_LINKSWIKI_FILES → 삭제된 페이지에 대한 죽은 엔트리는 index에서 제거.

E. index 엔트리 길이 (자동)

  • - [[X]] — ... 한 줄이 120자 초과 시 설명을 요약해 자르기.

F. frontmatter 누락·형식 (자동)

  • 필수 필드: title, sources, updated.
  • 누락이면 추가. title은 파일명에서, updated오늘 날짜로, sources는 빈 배열로 두고 사용자 보완 제안.

G. 존재하지 않는 source 참조 (제안)

  • 각 페이지의 sources: 배열이 가리키는 경로가 실제로 raw/에 있는지 확인. 없으면 이름 변경·삭제 여부 조사를 제안.

H. 로그 누락 (자동)

  • WIKI_FILES 각 페이지에 대해 log.md해당 페이지명의 create 이벤트가 있는지 확인.
  • 없으면 "(late)" 태그와 함께 오늘 날짜의 create 엔트리를 log.md 맨 위에 추가: - YYYY-MM-DD create [[페이지명]] — (late) lint에 의해 역추적 등록.

I. 삭제된 페이지의 죽은 참조 (자동)

  • log.md의 delete 이벤트 대상 페이지가 여전히 다른 페이지에서 링크되면, 해당 링크를 일반 텍스트로 변환 또는 새 대상 제안.

J. 오래된 updated: (제안)

  • 페이지의 sources: 파일들의 mtime이 페이지 updated:보다 7일 이상 새것이면 재검토 제안.

K. 잠정 설계 원칙 연결 누락 (제안)

  • 페이지가 "해석" 섹션에서 원칙(비패밀리/증분/선형-GIS) 중 하나를 언급하는데, frontmatter principles: 에 빠져 있으면 추가 제안.

L. 중복 개념 (제안)

  • 두 페이지 제목·핵심 용어가 과도하게 겹치면 병합 후보로 리포트. 자동 병합은 금지.

3. 실행 순서

  1. 자동 가능한 항목부터 수정 (E → F → H → D → I → C 순서).
  2. log.md- YYYY-MM-DD meta — lint run: 자동 수정 N건 적용. 한 줄 추가.
  3. 제안만 가능한 항목(A, B, G, J, K, L)은 최종 보고에 리스트화.

4. 최종 보고 형식

## Lint 결과

### 자동 수정 N건
- [A] ...
- [B] ...

### 수동 확인 필요 M건
- **깨진 링크**: [[X]] (페이지 [[Y]] 내부) → 제안: [[Z]] 로 변경?
- **병합 후보**: [[A]] ⟷ [[B]]
- **오래된 updated**: [[C]] (sources 변경된 지 N일)
- **원칙 연결 누락**: [[D]]에 'principles: [증분]' 추가?

### 원칙 커버리지 현황
- 비패밀리: 페이지 N개
- 증분: 페이지 N개
- 선형-GIS: 페이지 N개 ← ⚠️ 비어 있음 / 부족

주의사항

  • raw/ 파일은 절대 수정·이동·삭제 금지 (불변 원본). lint는 오직 wiki/ 쪽만 수정.
  • 자동 수정 전, 각 변경은 사용자가 되돌릴 수 있도록 log.md에 흔적을 남긴다.
  • 애매한 의미 수정(깨진 링크의 의도 추정, 병합)은 절대 자동화 금지. 보고만.
  • 한 번의 실행에서 너무 많은 파일을 재작성하지 않는다. 30건 넘으면 일부만 처리하고 나머지는 보고.