memory-factchecklisted
Install: claude install-skill LeeYudok/doksam-skills
# Memory Fact-Check (메모리 사실 검증)
메모리는 부패한다. 기록할 당시 참이었던 사실도 코드·스키마·인프라가 움직이면
거짓이 된다. **낡은 메모리는 없는 메모리보다 나쁘다** — 에이전트가 그것을 읽고
자신 있게 틀린 행동을 하기 때문이다.
이 스킬은 구조적 청소 작업이 **아니다**. 고아 파일, 중복 항목, 인덱스 비대,
깨진 내부 링크 — 그런 점검은 메모리 파일끼리 *서로* 비교한다. 이 스킬은
각 메모리를 **그것이 서술하는 세계와** 비교한다: 코드, 데이터베이스, 이슈
트래커, 파일시스템. 형식이 완벽하고 인덱스도 정확하고 최근에 수정된 메모리라도
내용은 완전히 거짓일 수 있다.
자동 삭제는 금지다. 무엇이 죽었는지는 원본 대조로만 판별할 수 있고, 장애 교훈
하나를 잃는 비용은 크다. 그래서 반자동이다: **교정은 자유롭게, 아카이브는 승인
후에만, 삭제는 절대 하지 않는다.**
## 1. 위치 파악과 인벤토리
메모리 집합을 찾는다. 흔한 위치, 우선순위 순:
- 프로젝트 에이전트 지침(`AGENTS.md` / `CLAUDE.md`)이 선언한 경로 — 예:
"메모리 SSOT 는 `.claude/memory/`". 선언된 경로가 모든 기본값에 우선한다.
- 레포 안의 `.claude/memory/` (팀 공유, 커밋됨)
- 호스트의 프로젝트별 메모리 디렉터리 (예: `~/.claude/projects/<slug>/memory/`)
파일마다 frontmatter(`name`/`description`/`type`)와 최종 수정일을 수집한다
(커밋된 메모리는 `git log -1 --format=%cs -- <file>`, 아니면 `stat`). 인덱스
파일(`MEMORY.md`)이 있으면 기록해 둔다 — 그것도 감사 대상이지만, 인덱스이지
메모리가 아니다.
**개인 파일은 범위 밖이다** — 프로젝트가 개인용으로 표시한 것(`user_*.md` 등)은
소유자의 것이다. 건드리지 않는다.
**다수 파일 읽기**: 메모리 50개를 한 번에 컨텍스트에 쏟아부으면 툴 출력 상한을
넘기고 예산을 낭비한다. `########## <파일명>` 헤더를 붙여 스크래치 파일 하나로
이어 붙인 뒤 페이지 단위로 읽는다. 대충 훑지 않는다 — 낡은 단언은 대개 멀쩡한
문단 안의 한 구절이다.
## 2. 핵심 단언 추출
파일마다 **에이전트의 행동을 바꾸는 단언(load-bearing claim) 1–3개**를 고른다.
서술·근거·배경은 무시한다; 메모리의 낡음은 행동 가능한 단언의 낡음��큼이다.
핵심 단언의 형태: "X 는 경로 P 에 있다" · "테이블 T 는 N 행이다" · "이슈 #N 은
아직 열려 있다" · "기능 F 는 아직 없다" · "라이브러리 L 은 설치돼 있지 않다" ·
"이 수정은 아직 대기 중이다" · "검증하려면 명령 C 를 실행한다".
## 3. 원본(source of truth) 대조 검증
**비용 낮고 수확 큰 것부터** 진행한다. 실전에서는 아래 순위가 성립한다: 이슈
상