| name | doc-drift |
| context | fork |
| description | Use this skill when the user wants to audit the memory and documents Claude
Code loads into context โ CLAUDE.md (user global + project + nested),
MEMORY.md, @imports, .claude/skills, .claude/agents, .claude/commands,
installed plugins โ and detect three kinds of issues: outdated claims,
mutually contradictory statements, and risky-or-ambiguous wording. Produces
a prioritized improvement list at `.drift-reports/`. Zero config.
Trigger phrases: "doc drift", "memory drift", "memory audit", "context drift",
"docs audit", "๋ฌธ์ ์ ๊ฒ", "๋ฌธ์ ๊ฐ์ฌ", "๋ฉ๋ชจ๋ฆฌ ๊ฐ์ฌ", "๋ฉ๋ชจ๋ฆฌ ์ ๊ฒ",
"outdated ๋ฌธ์", "๋ฌธ์ ์ถฉ๋".
|
doc-drift โ Claude memory audit
ํ ๋ฌธ์ฅ: Claude๊ฐ ์ด ํ๋ก์ ํธ์์ ์ฝ์ด๋ค์ด๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ฌธ์๋ฅผ ํ์ด๋ณด๊ณ , ๋ก์ ๊ฒยท์๋ก ์ ๋ง๋ ๊ฒยท์ํํ๊ฑฐ๋ ๋ชจํธํ ๊ฒ์ ์ฐพ์์ ์ฐ์ ์์๋ก ์ ๋ฆฌํด์ค๋ค.
3๋จ๊ณ
1. ์ฝ๋ ๊ฒ๋ค ๋ชจ์ผ๊ธฐ
Claude Code๊ฐ ์ด ํ๋ก์ ํธ ๋งฅ๋ฝ์์ ์ค์ ๋ก ๋ก๋ํ๊ฑฐ๋ ์ฐธ์กฐํ ์ ์๋ ํ์ผ๋ค์ ๋ชจ์๋ค. ์คํฌ๋ฆฝํธ ์์ด LLM์ด Read / Glob / Grep์ผ๋ก ์ง์ ์ฐพ๋๋ค.
์์์
~/.claude/CLAUDE.md (์์ผ๋ฉด)
<cwd>/CLAUDE.md + nested **/CLAUDE.md
~/.claude/projects/<encoded-cwd>/memory/MEMORY.md
- ์ธ์ฝ๋ฉ: cwd ์ ๋๊ฒฝ๋ก์
/ ๋ฅผ - ๋ก ์นํ. ์: /foo/bar โ -foo-bar
<cwd>/.claude/skills/**/SKILL.md
<cwd>/.claude/agents/*.md
<cwd>/.claude/commands/*.md
~/.claude/plugins/** (์ค์น๋ ํ๋ฌ๊ทธ์ธ์ skills/agents/commands)
ํ์ฅ
๊ฐ ํ์ผ์์ ์๋๋ฅผ ์ถ์ถํด ์ฌ๊ท์ ์ผ๋ก ๋ฐ๋ผ๊ฐ๋ค:
@import ํ ํฐ (user global์ ~/.claude/ ๊ธฐ์ค, ๊ทธ ์ธ๋ ํ์ผ ๋๋ ํ ๋ฆฌ ๋๋ ํ๋ก์ ํธ ๋ฃจํธ ๊ธฐ์ค)
- ์๋๊ฒฝ๋ก ๋งํฌ๋ค์ด ๋งํฌ
[text](./path.md)
- ๋ฐฑํฑ ์์ ํ์ผ ๊ฒฝ๋ก ์ธ๊ธ (์ค์กดํ๋ ๊ฒฝ์ฐ๋ง)
์ ๋
ธ๋๊ฐ ๋ ์ ๋์ฌ ๋๊น์ง ์์ง.
2. ์ธ ๊ฐ์ง๋ฅผ ๊ฐ์ง
๊ฐ์ฌ ๋์ ๊ฐ ํ์ผ์ LLM์ด ์ฝ๊ณ , ๋ค์ ์ธ ๊ฐ์ง๋ง ์ฐพ๋๋ค:
| ์ข
๋ฅ | ๊ธฐ์ค |
|---|
| Outdated | ์ฝ๋/์ค์ ์ ํ์ค๊ณผ ์ ๋ง๋ ์ฃผ์ฅ (๊ฒฝ๋ก, ์ปค๋งจ๋, ์ซ์, ์ ์ฑ
, ๋ฒ์ ๋ฑ) |
| Conflict | ๋ ๋ฌธ์๊ฐ ๊ฐ์ ์ฃผ์ ๋ฅผ ์๋ก ๋ค๋ฅด๊ฒ ์์ |
| Risky / Ambiguous | ํด์์ด ๊ฐ๋ฆฌ๊ฑฐ๋, ์๋ชป ๋ฐ๋ผํ๋ฉด ์ํํ ์ง์ (์: "์ ๋นํ ํ๋ผ", "๊ฒฝ์ฐ์ ๋ฐ๋ผ", ๋ช
์ ์์ด ์ญ์ ยท์ค๋ฒ๋ผ์ด๋ ์ง์ ๋ฑ) |
๊ฐ finding์๋ ์ฆ๊ฑฐ๊ฐ ๋ถ์ด์ผ ํ๋ค: ์ฃผ์ฅํ ์์น(file:line)์ ๋ฐ์ฆ(file:line ๋๋ ํ์ฌ ์ฝ๋ ์ธ์ฉ).
ํ์ ๋ฎ์ผ๋ฉด ์์ ๋นผ๋ผ. ์คํ์ด ์ด ๋๊ตฌ์ ๊ฐ์ฅ ํฐ ์ ์ด๋ค.
3. ์ฐ์ ์์๋ก ๊ฐ์ ์ ์
๋ค์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํด ๋ฆฌํฌํธ ์์ฑ:
- ์ํฅ ๋ฒ์ โ
CLAUDE.md / MEMORY.md ๋ฑ ๋งค ๋ํ์ ๋ก๋๋๋ ํ์ผ์ด ์ต์์
- ์ฌ๊ฐ๋ โ ์๋ชป๋ ์ง์๋ฅผ ๋ฐ๋ฅด๋ฉด ๋ง๊ฐ์ง๋ ๊ฒ(HIGH), ํท๊ฐ๋ฆฌ์ง๋ง ๋ณต๊ตฌ ์ฌ์ด ๊ฒ(MED), ์ฌ์ํ ๋ถ์ผ์น(LOW)
- ์์ ๋์ด๋ โ ์์ ์์ด ๋ช
ํํ ๊ฒ๋ถํฐ
๊ฐ finding์ ์ ์ํ๋ ์์ ์์ ํฌํจ. ์ฌ๋์ด ํ๋์ "OK/NO"๋ก ํ๋จ ๊ฐ๋ฅํ ์์ค์ผ๋ก.
์ถ๋ ฅ
.drift-reports/ ๋๋ ํ ๋ฆฌ์ ์ ์ฅ (์์ผ๋ฉด ์์ฑ, .gitignore ์ถ๊ฐ ๊ธ์ง โ ํ์คํ ๋ฆฌ๊ฐ PR์์ ๋ณด์ฌ์ผ ํจ):
.drift-reports/<YYYY-MM-DD-HHMM>.md โ ํ์์คํฌํ ๋ฆฌํฌํธ
.drift-reports/latest.md โ ์ต์ ๋ณธ ๋ณต์ฌ
๋ฆฌํฌํธ ํ
ํ๋ฆฟ:
# Memory Audit โ {timestamp}
**Scanned:** {n} files reachable from CLAUDE.md / MEMORY.md / skills / agents
**Findings:** HIGH {h} / MED {m} / LOW {l}
## Top priority
1. **[HIGH] `path:line`** โ {ํ ์ค ์์ฝ}
- ์ฃผ์ฅ: "..."
- ํ์ค: `other/path:line` โ ...
- ์ ์: ...
2. ...
## Medium
...
## Low
...
## ํ๋จ ๋๊ธฐ (์ฌ๋ ๊ฒฐ์ ํ์)
- Conflict ์ค ์ด๋ ์ชฝ์ด ๋ง๋์ง ๋ถ๋ช
ํํ ํญ๋ชฉ
- Ambiguous ์ค ์๋๊ฐ ๋ถํ์คํ ํญ๋ชฉ
## ๋ค์ ๋จ๊ณ
์๋ ์์ PR ๋ง๋ค๊น์? (Outdated ์ค ์์ ์ ๋ช
ํํ ๊ฒ๋ง)
์๋ ์์ (์ ํ)
๋ฆฌํฌํธ ์์ฝ ์ถ๋ ฅ ๋ค์๋ง ๋ฌผ์ด๋ณธ๋ค:
"HIGH {h}๊ฑด ๋ฐ๊ฒฌ. ์ด๋ป๊ฒ ํ ๊น์?
- ์์ ์ ๋ช
ํํ ๊ฒ๋ง PR ์์ฑ
- ๋ฆฌํฌํธ๋ง"
์ ํ ์ docs/drift-fix-<timestamp> ๋ธ๋์น์ finding๋น atomic ์ปค๋ฐ, gh pr create.
ํญ์ ์ ์ธ: Conflict(์ด๋ ์ชฝ์ด ๋ง๋์ง ์ฌ๋ ํ๋จ), Risky/Ambiguous(์๋ ํ์ธ ํ์).
์์น
- ์คํ ์ต์ํ โ ํ์ ์์ผ๋ฉด ๋นผ๋ผ. ์ฌ๋์ด ๋ฆฌํฌํธ ์ ๋ขฐํด์ผ ๋๊ตฌ๊ฐ ์ฐ๋ค.
- ์ฆ๊ฑฐ ํ์ โ ๋ชจ๋ finding์
file:line ์์ชฝ ์ธ์ฉ.
- ์์ฝ + ๋งํฌ ํจํด ์กด์ค โ
CLAUDE.md๊ฐ ๋ค๋ฅธ ๋ฌธ์๋ฅผ ์์ฝยท๋งํฌํ๋ ๊ฑด ์ ์. ์๋ฏธ๊ฐ ์ค์ ๋ก driftํ ๊ฒฝ์ฐ์๋ง ์ ๊ณ .
- ๋งค ๋ํ ๋ก๋๋๋ ํ์ผ ์ฐ์ โ
CLAUDE.md, MEMORY.md ์ drift๊ฐ ๋ค๋ฅธ ์ด๋ค ํ์ผ๋ณด๋ค ์ํ.
์ธ์
| ์
๋ ฅ | ๋์ |
|---|
/doc-drift | ์ ์ฒด ๊ฐ์ฌ (๊ธฐ๋ณธ) |
/doc-drift recent / recent 50 | ์ต๊ทผ N ์ปค๋ฐ์ ๋ฐ๋ ์์ญ๋ง |
/doc-drift path <glob> | ํน์ ๊ฒฝ๋ก๋ง |