LLM์ด ๊ด๋ฆฌํ๊ฑฐ๋ ์กฐํํ๋ ์ํค, ์ง์ ๋ฒ ์ด์ค, Obsidian ๋ณผํธ์ ์ด์ ์ํ๋ฅผ ์ง๋จํ๊ธฐ ์ํ ๊ฐ๋ฒผ์ด ๊ฐ์ด๋ ํจํค์ง์ ๋๋ค. ์ํค๊ฐ ์ปค์ง์๋ก ์๊ธฐ๋ ์ง๋ฌธ์ ๋ตํ๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค.
- ๋ด ์ํค๋ LLM์ด ์ฐพ๊ธฐ ์ข์ ๊ตฌ์กฐ์ธ๊ฐ?
- ๋ฌธ์, ์ธ๋ฑ์ค, ๋ก๊ทธ, ๊ทธ๋ํ, ์ธ์ ๊ธฐ๋ก์ด ์ ์ฐ๊ฒฐ๋์ด ์๋๊ฐ?
- ์์ฒญ ํ ๋ฒ์ ๊ฒ์, ์กฐํ, ์๊ฐ, ํ ํฐ, ๋๊ตฌ ํธ์ถ์ด ์ผ๋ง๋ ๋๋๊ฐ?
- ์ํค๊ฐ ์ ์ ๋ฌด๊ฑฐ์์ง๋ ์ค์ธ๊ฐ, ์๋๋ฉด ์์ง ๋ฒํฐ๋ ์ค์ธ๊ฐ?
์ด ํ๋ก์ ํธ๋ ๊ณ ์ ๋ ํ๋ฌ๊ทธ์ธ ์คํ ํ์ผ์ด ์๋๋ผ README + 3๋จ๊ณ Markdown + ์์๋ก ๊ตฌ์ฑ๋ ์ง๋จ ๊ฐ์ด๋์
๋๋ค. ์ฌ์ฉ์๋ ์ด ํด๋๋ฅผ Claude Code, Codex, Cursor, ๋ก์ปฌ LLM ๊ฐ์ ์์ด์ ํธ์๊ฒ ์ฃผ๊ณ , ์์ด์ ํธ๊ฐ ์์ ์ ํ๊ฒฝ์ ๋ง๋ ์์ ์์ง๊ธฐ์ HTML ๋ฆฌํฌํธ๋ฅผ ๋ง๋ค๊ฒ ํฉ๋๋ค.
์ ์์ ์ธ ์คํ์ ๋ค์ ์ฐ์ถ๋ฌผ์ ๋จ๊น๋๋ค.
source inventory: ์ด๋ค ํ์ผ, ์ธ๋ฑ์ค, ๋ก๊ทธ, ๊ทธ๋ํ, ์ธ์ /telemetry๊ฐ ์ฆ๊ฑฐ๋ก ์ฐ์๋์งintake/profile: ํ์ฌ ์ํค ๊ตฌ์กฐ์ ์ ์ธ ๋ฒ์, ์ ๋งคํ ๊ฐ์ aggregate metrics: ๋ฌธ์ ์, ์ธ๋ฑ์ค ๋ถ๋ด, ์ฐ๊ฒฐ์ฑ, ํ๋ ์ถ์ธ, ์์ฒญ๋น ๋น์ฉ, ์ธก์ ๊ณต๋ฐฑsession/telemetry probe: query log๊ฐ ์์ ๋ ์ธ์ ๊ธฐ๋ก์ผ๋ก ์ถ์ ํ ์์ฒญ๋น ์๊ฐ, ๋๊ตฌ ํธ์ถ, ํ ํฐ ์ ํธHTML report: ์๋จ์๋ ํต์ฌ ์งํ์ ํด์, ํ๋จ์๋ ์ธ๋ถ ์ฐจํธ์ ์์๋ฃ ์์ฝevaluation note: ์ด๋ค ๊ฐ์ด ์ค์ธก์ด๊ณ ์ด๋ค ๊ฐ์ด ์ถ์ ์ธ์ง, ๋ค์ run์์ ๋ฌด์์ ๊ฐ์ ํ ์ง
ํต์ฌ ๋ฆฌํฌํธ๋ ๋ ์ง๋ฌธ์ ๋ตํด์ผ ํฉ๋๋ค.
์ํค๊ฐ ์ ๊ตฌ์ถ๋์ด ์๋๊ฐ?๋ด๊ฐ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์๋๊ฐ?
์ด ์ ์ฅ์๋ฅผ ๋ด๋ ค๋ฐ์ ๋ค, ๋ถ์ํ๋ ค๋ ์ํค ๊ฒฝ๋ก์ ํจ๊ป ์์ด์ ํธ์๊ฒ ์๋์ฒ๋ผ ์์ฒญํ์ธ์.
์ด ๋๋ ํ ๋ฆฌ์ README์ 01-03 ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด์ <target wiki>์ LLM wiki๋ฅผ ์ง๋จํ๊ณ HTML ๋ฆฌํฌํธ๊น์ง ์์ฑํด์ค.
Obsidian ๋ณผํธ ์์์ ๋ฐ๋ก ์คํํ๋ค๋ฉด:
ํ์ฌ ์์
๋๋ ํ ๋ฆฌ์ llm-wiki-diagnostics ๊ฐ์ด๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด Obsidian ๋ณผํธ๊ฐ ์ ๊ตฌ์ถ๋์ด ์๊ณ ํจ์จ์ ์ผ๋ก ์ฌ์ฉ๋๊ณ ์๋์ง ๋ถ์ํด์ค.
์์ฒญ๋ณ query log๊ฐ ์๋ค๋ฉด, ์ํค๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ ์์ด์ ํธ๋ ์ธ์ ํํธ๋ฅผ ๊ฐ์ด ์ฃผ์ธ์.
์์ฒญ๋ณ ๋ก๊ทธ๋ ๋ฐ๋ก ์์ง๋ง, ์ด ์ํค๋ ์ฃผ๋ก <agent/runtime>์ <project-or-session>์์ ์กฐํํ๊ณ ์์ ํ์ด. ๊ฐ๋ฅํ๋ฉด ํด๋น ์ธ์
๊ธฐ๋ก์ ๊ฐ์ ๋ถ์ํด์ ์์ฒญ๋น ์๊ฐ, ๋๊ตฌ ํธ์ถ, ๋ฌธ์ ์กฐํ, ํ ํฐ ์ถ์ ์น๋ฅผ ํจ๊ป ๋ฆฌํฌํธํด์ค.
๋ ์ข์ ์ ๋ ฅ:
- ์ํค ๊ฒฝ๋ก์ ๋ํ ์ง์ ์
- ์ฃผ๋ก ์ฐ๋ ์์ด์ ํธ, ์ฑ, ํ๋ก์ ํธ๋ช , ์ธ์ ๋ช
- query/request log, hook log, graph/search/vector trace๊ฐ ์๋์ง
- ์กฐํ ์์ฒญ๋ง ๋ณผ์ง, ์์ฑ/์ ๋ฆฌ/์ธ๋ฑ์ฑ ์์ฒญ๋ ๋ถ๋ฆฌํด์ ๋ณผ์ง
ํ์ฌ ๋ฌธ์๋ ๋ค์ ํ๊ฒฝ์ ์ผ๋์ ๋๊ณ ๋ง๋ค์์ต๋๋ค.
- Claude Code, Codex, Cursor, ๋ก์ปฌ LLM ๊ฐ์ ์์ด์ ํธ ๊ธฐ๋ฐ ์์
- ๊ธฐ๋ณธ Markdown/Obsidian ์ํค
- PARA์ฒ๋ผ ํด๋์ ํ์ ์ธ๋ฑ์ค๋ฅผ ํจ๊ป ์ฐ๋ ๊ตฌ์กฐ
- guide/index/log ์ค์ฌ์ LLM wiki
- Graphify, graph DB, vector index, custom search route์ฒ๋ผ ๋ฌธ์ ๋ฐ์ ์ฐ๊ฒฐ ๊ฒฝ๋ก๊ฐ ์๋ ๊ตฌ์กฐ
- query log๊ฐ ์์ง๋ง ์ธ์ transcript๋ runtime trace๋ฅผ ๊ฐ์ ๋ถ์ํ ์ ์๋ ๊ตฌ์กฐ
๋ค๋ง ๋ชจ๋ ์ํค์ ์๋์ผ๋ก ์ ํํ ๋ง๋ ์ ํ์ ์๋๋๋ค. ์ด ํจํค์ง๋ ๊ณ ์ parser๊ฐ ์๋๋ผ ์ด๋ค ์ง๋ฌธ์ ํด์ผ ํ๊ณ , ์ด๋ค ์ฆ๊ฑฐ๋ฅผ ์ฐพ์์ผ ํ๋ฉฐ, ์ด๋ค ๋ฆฌํฌํธ๋ฅผ ๋ง๋ค์ด์ผ ํ๋์ง๋ฅผ ์๋ ค์ฃผ๋ ๊ฐ์ด๋์
๋๋ค. ์ค์ ๊ณ์ฐ์, ํ์, source family, ์ฐ๊ฒฐ ๋ชจ๋ธ์ ์ฌ์ฉ์์ ์์ด์ ํธ๊ฐ ํ๊ฒฝ์ ๋ง๊ฒ ์กฐ์ ํด์ผ ํฉ๋๋ค.
- para-knowledge-base โ PARAํ Obsidian ๋ณผํธ์ LLM wiki ๊ตฌ์กฐ, ์ธ๋ฑ์ค, ๋ก๊ทธ, ingest/query/lint/index ์ด์ ํ๋ฆ์ ์ถ๊ฐํ๋ Claude Code ํ๋ฌ๊ทธ์ธ.
llm-wiki-diagnostics๋ ๊ทธ ์ํค๊ฐ ์ ๊ตฌ์ถ๋์ด ์๊ณ ํจ์จ์ ์ผ๋ก ์ฌ์ฉ๋๋์ง ์ง๋จํ๋ ๋ณ๋ ๊ฐ์ด๋ ํจํค์ง์ ๋๋ค.
ํจ๊ป ๊ด๋ฆฌํ๊ธฐ ์ข์ GitHub topics:
llm-wikiobsidianknowledge-basepkmwiki-diagnosticsquery-telemetryagent-observability
- ์ฒซ run์ ์์น๋ ์ง๋จ ์์์ ์ ๋๋ค. ํนํ ์ธ์ ๊ธฐ๋ฐ ์๊ฐ/ํ ํฐ์ query log๊ฐ ์์ผ๋ฉด ์ถ์ ์น์ ๋๋ค.
- stub, orphan, dead-end, broken reference๋ ์๋ ๊ฒฐํจ์ด ์๋๋ผ ๊ฒํ ํ๋ณด์ ๋๋ค. daily note, archive, generated log, deliberate chunk๋ ์ฝํ๊ฒ ๋ณด์ผ ์ ์์ต๋๋ค.
- Obsidian wikilink, frontmatter, graph edge, vector search, MCP route, Graphify export ์ค ๋ฌด์์ด ์ฐ๊ฒฐ ๋ชจ๋ธ์ธ์ง๋ ์ํค๋ง๋ค ๋ค๋ฆ ๋๋ค.
- ๊ฐ์ธ์ ๋ณด๊ฐ ๋ง์ ์ธ์ /๋ก๊ทธ๋ฅผ ๋ถ์ํ ์ ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ ์ฐ์ถ๋ฌผ์ aggregate, path, role, hash, confidence ์ค์ฌ์ด์ด์ผ ํฉ๋๋ค.
- ์์ ํ์ผ์ ์คํ์ผ ์ฐธ๊ณ ์ฉ์ ๋๋ค. ์์ ์์น, ๊ฒฝ๋ก, threshold๋ฅผ ์ค์ ์ํค์ ๋ณต์ฌํ๋ฉด ์ ๋ฉ๋๋ค.
๋ค๋ฅธ ์์ด์ ํธ, ๋ค๋ฅธ ์ํค ๊ตฌ์กฐ, ๋ค๋ฅธ telemetry ํฌ๋งท์์ ์ด์ํ ๋ถ๋ถ์ด ์์ผ๋ฉด ์ด์๋ PR์ ํ์ํฉ๋๋ค. ํนํ ๋ค์ ํผ๋๋ฐฑ์ด ์ ์ฉํฉ๋๋ค.
- ํน์ ํ๊ฒฝ์์ intake๊ฐ ๋์น๋ source family
- query/request log๋ก ๋จ๊ธฐ๋ฉด ์ข์ ์ต์ ํ๋
- ๋ ์ง๊ด์ ์ธ ๋ฆฌํฌํธ ์ง๋ฌธ, ์ฐจํธ, ์ฉ์ด
- Graphify, graph DB, vector index, local LLM trace ์ ์ฉ ์ฌ๋ก
์ด ํจํค์ง๋ฅผ ์คํํ๋ ์์ด์ ํธ๋ ๋์ ์ํค๋ฅผ ๊น๊ฒ ํ์ํ๊ธฐ ์ ์ ๋จผ์ ์์ ์ฐ์ถ๋ฌผ๋ถํฐ ๋จ๊ฒจ์ผ ํฉ๋๋ค.
- ์ถ๋ ฅ ํด๋๋ฅผ ๋ง๋ค๊ณ
run manifest๋๋intake checkpoint๋ฅผ ์ฆ์ ์ ์ฅํฉ๋๋ค. - ํ์๋ ์์ง๊ธฐ๋ฅผ ์์ฑํ๊ธฐ ์ ์
source inventory์ด์์ ์ ์ฅํฉ๋๋ค. ์ฒ์์๋ source family, ์์ ์ญํ , ์ ๊ฒ ์ํ, cap, ๋ฏธํ์ธ ๊ฐ์ ๋ด์ skeleton์ด์ด๋ ๋ฉ๋๋ค. - ํฐ ํ์๋ ์์ง๊ธฐ๋ฅผ ์์ฑํ๊ธฐ ์ ์
collection checkpoint์ด์์ ์ ์ฅํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์์ง ๋ฒ์, cap, source family, ์ด๋ค ๊ฐ์ด ์ค์ธก/์ถ์ /์ธก์ ๋ถ๊ฐ๊ฐ ๋ ์ง์ ์ด๊ธฐ ๊ณํ์ ๋ก๋๋ค. - ๋์ ํ๋ณด๊ฐ ๋ง์ ํ์ ๊ฒฐ๊ณผ๋ ํฐ๋ฏธ๋์ ๊ธธ๊ฒ ์ถ๋ ฅํ์ง ์๊ณ
source inventoryartifact์ ์ ๋ฐ์ดํธํฉ๋๋ค. - ์์ง์ ํฐ all-in-one ์คํฌ๋ฆฝํธ ํ๋๋ณด๋ค ์์ ๋จ๊ณ๋ณ artifact๋ก ์งํํฉ๋๋ค: intake, source inventory, collection checkpoint, static summary, session/telemetry probe, aggregate metrics, HTML report, evaluation note.
- ํฐ๋ฏธ๋ ์ถ๋ ฅ์ ์งํ ์ํ, ๊ฐ์, artifact ๊ฒฝ๋ก, ๊ฒ์ฆ ์ค๋ฅ๋ง ์งง๊ฒ ๋ณด์ฌ์ค๋๋ค. ์์ฑํ JSON/HTML/collector ์คํฌ๋ฆฝํธ์ ์ ์ฒด ๋ณธ๋ฌธ์ด๋ diff๋ฅผ ๋ก๊ทธ์ ๊ธธ๊ฒ ๋จ๊ธฐ์ง ์์ต๋๋ค.
- query log๊ฐ ์์ผ๋ฉด ์ธ์ /trace ํ๋ณด๋ฅผ ์ฐพ์ ์์ ํ์๋ก ์์ฒญ๋น ์๊ฐ, ๋๊ตฌ ํธ์ถ, ๋ฌธ์ ์กฐํ, ํ ํฐ ์ ํธ๋ฅผ ์ถ์ ํ๋, ์ถ์ ๊ณผ ์ค์ธก์ ๊ตฌ๋ถํฉ๋๋ค.
- ์ต์ข
prose๋ HTML์ ๊ธธ๊ฒ ์์ฑํ๊ธฐ ์ ์
aggregate metricsartifact๋ฅผ ๋จผ์ ์ ์ฅํ๊ณ JSON ํ์ฑ ๊ฒ์ฆ์ ํต๊ณผ์ํต๋๋ค. ๊ทธ๋์ผ report ๋จ๊ณ๊ฐ ๋ฉ์ถฐ๋ ์์ง ๊ฒฐ๊ณผ๋ฅผ ์ด์ด๋ฐ์ ์ฌ์์ฑํ ์ ์์ต๋๋ค. - ์ต์ข
HTML์ ๋ ์ง๋ฌธ์ ๋ตํด์ผ ํฉ๋๋ค:
์ํค๊ฐ ์ ๊ตฌ์ถ๋์ด ์๋๊ฐ?,๋ด๊ฐ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์๋๊ฐ? - ์คํ ๋ฐํ์์ด ๋ด๋ถ diff๋ command body๋ฅผ ๋ก๊ทธ์ ๋จ๊ธธ ์ ์๋ค๋ฉด, ๋ณ๋์ ์งง์
run summaryartifact๋ฅผ ๋จ๊ฒจ ์ฌ์ฉ์๊ฐ ์ฝ์ ํ์ค ์์ฝ๋ฉด์ผ๋ก ์ผ์ต๋๋ค.
์ด ๊ณ์ฝ์ ํน์ ๊ตฌํ ์ธ์ด๋ ํน์ ์์ด์ ํธ์ฉ ํฌ๋งท์ด ์๋๋๋ค. Markdown, graph DB, Graphify, vector index, Claude, Codex, Cursor, ๋ก์ปฌ LLM ๋ชจ๋์ ๋์ผํ๊ฒ ์ ์ฉ๋๋ ์คํ ์์์ ๋๋ค.
์คํ ๋ฐฉ์์ ์์ง๊ธฐ ์ฐ์ ๋ชจ๋๊ฐ ๊ธฐ๋ณธ์ ๋๋ค. ์์ด์ ํธ๋ ์์ ๋ก์ปฌ ์์ง๊ธฐ๋ ํ์๋ฅผ ๋ง๋ค์ด compact JSON/HTML ์ฐ์ถ๋ฌผ๋ก ์ ๋ฆฌํด์ผ ํฉ๋๋ค. ํฐ๋ฏธ๋ ์ถ๋ ฅ์ด ๋ง์์ง๋ ๊ฒ ์์ฒด๊ฐ ์คํจ๋ ์๋์ง๋ง, ์๋ฌธ ๋ก๊ทธ, ์ ์ฒด JSONL, ์ ์ฒด ๋ฌธ์ ๋ณธ๋ฌธ, ๋๋ ํ์ผ ๋ชฉ๋ก, ์ ์ฒด ์คํ trace๊ฐ LLM ์ปจํ ์คํธ๋ฅผ ์ ์ํด ์ต์ข ์ฐ์ถ๋ฌผ ์์ฑ์ ๋ฐฉํดํ๋ฉด ์์ง ๋ฐฉ์์ด ์๋ชป๋ ๊ฒ์ ๋๋ค.
์ ์์ ์ธ ์คํ์ ์ด๋ฐ๋ถํฐ ํ์ผ ์ฐ์ถ๋ฌผ์ ๋จ๊น๋๋ค. ์๋ฅผ ๋ค์ด ์คํ manifest, source inventory, collection checkpoint, static summary, session/telemetry probe, aggregate metrics, HTML report, evaluation note๊ฐ ์์ฐจ์ ์ผ๋ก ์๊ธฐ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ถ์์ด ์ค๋ ๊ฑธ๋ฆฌ๋๋ผ๋ ์๋ฌด ํ์ผ๋ ์์ด ํฐ๋ฏธ๋์๋ง ๊ธด ํ์ ๋ด์ฉ์ ์ถ๋ ฅํ๋ ํ๋ฆ์ ๋ถ์์ ํ ์คํ์ ๋๋ค.
์ฐธ๊ณ ์คํ ๋น์ฉ: ์๋ฐฑ-์ฒ์ฌ ๊ฐ Markdown ํ์ผ๊ณผ ์ฌ๋ฌ ๊ฐ์ LLM ์ธ์ ๋ก๊ทธ๋ฅผ ํจ๊ป ๋ถ์ํ๋ ๊ฒ์ฆ ์คํ์์๋ ์ฝ 10-16๋ถ์ด ๊ฑธ๋ ธ๊ณ , ๋ฐํ์ ๋ก๊ทธ๋ 1-4MB ์์ค๊น์ง ์ปค์ง ์ ์์์ต๋๋ค. ์ด ์ซ์๋ ์ฑ๋ฅ ๋ชฉํ๊ฐ ์๋๋ผ ๊ท๋ชจ ๊ฐ๊ฐ์ ๋๋ค. ์ค์ ์คํ์์๋ stage๋ณ ์์/์ข ๋ฃ ์๊ฐ, ์ค์บ ํ์ผ ์, ํ์ฑ ์ธ์ ์, ์์ฑ artifact, ์คํจ/์ค๋จ ์ง์ ์ run summary๋ evaluation note์ ๋จ๊ธฐ๋ ํธ์ด ์ข์ต๋๋ค.
README.md: ํ๋ก์ ํธ ๊ฐ์, ์ฌ์ฉ ํ๋ฆ, ๊ฐ์ธ์ ๋ณด ๊ธฐ๋ณธ๊ฐ, ๊ฒ์ฆ ๊ธฐ์ค.01-intake-discovery.md: ์ํค ๊ตฌ์กฐ์ ์ฌ์ฉ ํ๊ฒฝ์ ํ์ ํ๋๊ตฌ์กฐ ๋ถ์.02-metric-collection.md: ์ฌ์ฉ์ ํ๊ฒฝ์ ๋ง๋ ์งํ๋ฅผ ์ถ์ถํ๋์งํ ์์ง.03-report-composition.md: ์์ง๋ ์งํ๋ฅผ ํด์ํ๊ณ HTML๋ก ๋ณด์ฌ์ฃผ๋๋ฆฌํฌํธ ์์ฑ.example/: ์ ํ์ ์ผ๋ก ์ฐธ๊ณ ํ๋ ์์ ์๋ฃ.
ํต์ฌ ๋ฌธ์๋ค์ ์์ด์ ํธ๊ฐ ๋ฌด์์ ์ดํดํ๊ณ , ์ธก์ ํ๊ณ , ์ค๋ช ํด์ผ ํ๋์ง๋ฅผ ์ ํฉ๋๋ค. Claude Code, Codex, Cursor, ๋ก์ปฌ LLM, Obsidian, Graphify, ๊ทธ๋ํ DB, ๋ฒกํฐ ๊ฒ์, MCP trace ๊ฐ์ ํน์ ๋ฐํ์์ ํ์ฑ ๋ฐฉ์์ ๊ณ ์ ํ์ง ์์ต๋๋ค. ์คํํ๋ ์์ด์ ํธ๊ฐ ์ฌ์ฉ์์ ์ค์ ํ๊ฒฝ์ ๋ง๊ฒ ์์ง๊ธฐ์ ๋ฆฌํฌํธ๋ฅผ ์กฐ์ ํฉ๋๋ค.
๋ชจ๋ ์ง๋จ์ ๋ค์ ๋ ์ง๋ฌธ์ ๋ตํด์ผ ํฉ๋๋ค.
์ํค๊ฐ ์ ๊ตฌ์ถ๋์ด ์๋๊ฐ?๋ด๊ฐ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์๋๊ฐ?
์ต์ข ๋ฆฌํฌํธ์์๋ ์ด ๋์ ์ง๋ฌธ์ ๋ ๊ตฌ์ฒด์ ์ธ ํ์ ์ง๋ฌธ์ผ๋ก ํ์ด์ผ ํฉ๋๋ค. ํ์ ์ง๋ฌธ์ ํ๊ฒฝ์ ๋ง๊ฒ ๋ฐ๊ฟ ์ ์์ง๋ง, ์๋จ ํต์ฌ ๋ถ์์์ ๊ฐ ํฐ ์ง๋ฌธ๋ง๋ค ์ต์ 3๊ฐ ์ ๋์ ์ง๋ฌธ๊ณผ ์งง์ ๋ต์ด ๋์ ๋ณด์ฌ์ผ ํฉ๋๋ค.
์ํค๊ฐ ์ ๊ตฌ์ถ๋์ด ์๋๊ฐ?๋ฅผ ํ๊ฐํ๋ ๋ํ ํ์ ์ง๋ฌธ:
- ์ด๋ค ํ์ผ, ๋ ธ๋, ์ฒญํฌ, ๋ ์ฝ๋๊ฐ ์ค์ ์ํค ๊ฐ์ฒด์ด๊ณ ๋ฌด์์ด ์ง์ ์ , ๋ก๊ทธ, ์์ฑ๋ฌผ, ์ธ์ ์ฆ๊ฑฐ, telemetry์ธ๊ฐ?
- ๊ฐ์ด๋, ์คํค๋ง/๊ท์น, ์ธ๋ฑ์ค, ๋ก๊ทธ, ๊ฒ์/์กฐํ ๊ฒฝ๋ก๊ฐ ์๋ณ ๊ฐ๋ฅํ๊ณ ์ ์ฉํ๊ฐ?
- ๋ฌธ์๋ ์ง์ ๊ฐ์ฒด์ ํฌ๊ธฐ๊ฐ ๊ฒ์๊ณผ ์ข ํฉ์ ์ ์ ํ๊ฐ?
- ์ค์ํ ์ง์์ด ์ฌ์ฉ์์ ์ค์ ์ฐ๊ฒฐ ๋ชจ๋ธ์์ ๋๋ฌ ๊ฐ๋ฅํ๊ฐ?
- ์ถ๊ฐ, ์์ , ์ด๋, ์์นด์ด๋ธ, ์ธ๋ฑ์ค ๊ฐฑ์ , ์ ์ง๋ณด์ ํ๋์ด ์๊ฐ์ ๋ฐ๋ผ ๋ณด์ด๋๊ฐ?
๋ด๊ฐ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์๋๊ฐ?๋ฅผ ํ๊ฐํ๋ ๋ํ ํ์ ์ง๋ฌธ:
- ํ ์์ฒญ์ ์ฒ๋ฆฌํ ๋ ๊ฒ์, ์กฐํ, ์์ฑ, ๋๊ตฌ ํธ์ถ, ๊ฐ์ฒด ์, ์๊ฐ, ํ ํฐ, ์์, hop์ด ์ผ๋ง๋ ๋๋๊ฐ?
- ์์ฒญ๋๋ฟ ์๋๋ผ ์์ฒญ๋น ์๊ฐ, ํ ํฐ, ๋๊ตฌ ํธ์ถ, ์กฐํ ๊ฐ์ฒด ์๊ฐ ์๊ฐ์ ๋ฐ๋ผ ๋ฌด๊ฑฐ์์ง๋๊ฐ?
- ์์ฃผ ์ฌ์ฉ๋๋ ๊ฐ์ฒด๊ฐ ์ค์ ๋ด์ฉ์ธ์ง, ์์ ๊ฐ์ด๋/์ธ๋ฑ์ค/๋ก๊ทธ/์์ฑ๋ฌผ์ธ์ง ๊ตฌ๋ถ๋๋๊ฐ?
- ์ด๋ค ์์ฒญ ์ ํ, ํ๋ก์ ํธ, ๊ฒฝ๋ก, ๋๋ฝ ์งํ๊ฐ ๋น์ฉ์ด๋ ์คํจ๋ฅผ ๋ง๋ ๋ค๊ณ ๋ณผ ์ ์๋๊ฐ?
- ์ด๋ค ๊ฐ์ด ์ค์ธก, ์ถ์ , ๋ถ์์ , ์ธก์ ๋ถ๊ฐ์ธ์ง ๋ช ํํ๊ฐ?
๋ฆฌํฌํธ๊ฐ ์ฒ์๋ถํฐ ๋ฌธ์๋ณ ์๋ฆฌ ๋ชฉ๋ก์ด ๋์ด์๋ ์ ๋ฉ๋๋ค. ๋ฌธ์ ํฌ๊ธฐ, stub/orphan/dead-end, broken-reference ํ๋ณด๋ ์ ์ฉํ ๋ณด์กฐ ์ฆ๊ฑฐ์ง๋ง, ํต์ฌ ์ด์ผ๊ธฐ๋ ์ํค๊ฐ ์ ์๋ํ๋์ง์ ์ฌ์ฉํ ์๋ก ๋ฌด๊ฑฐ์์ง๋์ง์ ๋๋ค.
๊ฐ ๋จ๊ณ๋ ํน์ ์งํ ์ด๋ฆ์ ๋งํ๋ ๊ฒ๋ณด๋ค ์๋ ์ง๋ฌธ์ ๋ตํ ์ ์์ด์ผ ํฉ๋๋ค.
- ์ด ๊ฐ์ ์ฌ์ฉ์์ ์ด๋ค ํ๋จ์ ๋ฐ๊พธ๋๊ฐ?
- ์ด ์ซ์์ ๋ถ๋ชจ๋ ๋ฌด์์ด๋ฉฐ, ๋น ์ง source family๊ฐ ์์ผ๋ฉด ๊ฒฐ๋ก ์ด ๋ฌ๋ผ์ง๋๊ฐ?
- ์ด ๊ฒฐ๋ก ์ ์ค์ธก, ์ธ์ ์ถ์ , ๊ตฌ์กฐ์ ์ถ์ , ๋๋ ์ธก์ ๋ถ๊ฐ ์ค ์ด๋์ ์ํ๋๊ฐ?
- ์ฌ์ฉ์์ ์ค์ ์ฐ๊ฒฐ ๋ชจ๋ธ์์ ์ค์ํ ์ง์์ด ๋ฟ๊ณ ์ด์ด์ง๋๊ฐ?
- ์ด๋์ด ์๋๋ผ ์์ฒญ๋น, ์๊ฐ๋๋ณ, ์ญํ ๋ณ๋ก ๋ด๋ ๊ฐ์ ๊ฒฐ๋ก ์ธ๊ฐ?
- ์ฌ์ฉ์๊ฐ ๊ฐ์ ๋ฐ๋ฐํ๋ฉด intake, collection, report ์ค ์ด๋ ๋จ๊ณ๋ฅผ ๋ค์ ๋๋ ค์ผ ํ๋๊ฐ?
์ด ํจํค์ง๋ ํน์ ๋๊ตฌ์ ๊ณ์ฐ์์ ๊ทธ๋๋ก ๊ฐ์ ธ์ค์ง ์์ต๋๋ค. ๋์ ์ค๋๋ ์ํค/์ฝํ ์ธ ์ด์ ๊ดํ์์ ๋ฐ๋ณต์ ์ผ๋ก ๋ฑ์ฅํ๋ ์ง๋ฌธ์ LLM wiki ์ง๋จ์ฉ์ผ๋ก ๋ฒ์ญํฉ๋๋ค.
- MediaWiki์ maintenance special pages์ฒ๋ผ
lonely/orphan,dead-end,wanted/missing,broken redirect/reference,ancient pages,long pages,most linked pages๋ฅผ ๊ฒํ ํ๋ณด๋ก ๋ณผ ์ ์๋๊ฐ?
์ฐธ๊ณ : https://www.mediawiki.org/wiki/Help:Special_pages - Wikipedia์ content assessment์ฒ๋ผ ๋จ์ ๋ฌธ์ ์๊ฐ ์๋๋ผ ํ์ง, ์ค์๋, ๊ฐ์ ์ฐ์ ์์๋ฅผ ํจ๊ป ๋ณผ ์ ์๋๊ฐ?
์ฐธ๊ณ : https://en.wikipedia.org/wiki/Wikipedia:Content_assessment - ์ฝํ
์ธ inventory์ audit์ฒ๋ผ ๋ชจ๋ ๊ฐ์ฒด์ ๋ชฉ๋ก์ ์ธ๋ ๊ฒ๊ณผ ํ์ง/๊ฐ์ ํ์์ฑ์ ํ๋จํ๋ ๊ฒ์ ๋ถ๋ฆฌํ๋๊ฐ?
์ฐธ๊ณ : https://www.nngroup.com/articles/content-audits/ - ROT ๋ถ์์ฒ๋ผ redundant, outdated, trivialํ ์ฝํ
์ธ ๊ฐ ์์ฌ ๊ฒ์๊ณผ ์ ์ง๋ณด์๋ฅผ ๋ฐฉํดํ๋์ง ๋ณผ ์ ์๋๊ฐ?
์ฐธ๊ณ : https://www.usda.gov/about-usda/policies-and-links/digital/digital-strategy/content/content-plays - ๋ด๋ถ ๊ฒ์ ๋ถ์์ฒ๋ผ zero-result, fallback, query refinement, selected result ๊ฐ์ ์ ํธ๊ฐ ์์ผ๋ฉด ์ฌ์ฉ์์ ์๋์ ์ฝํ
์ธ gap์ ๋ณผ ์ ์๋๊ฐ?
์ฐธ๊ณ : https://www.algolia.com/blog/product/how-to-analyze-your-site-search-data - OpenTelemetry trace/span ๋ชจ๋ธ์ฒ๋ผ ํ ์์ฒญ์ start/end, attributes, child operations๋ฅผ ๋จ๊ธฐ๋ฉด ์๊ฐ, ๋จ๊ณ, route, token, hit/fallback์ ๋ ์๋ฐํ ์ธก์ ํ ์ ์๋๊ฐ?
์ฐธ๊ณ : https://opentelemetry.io/docs/concepts/signals/traces/ ๋ฐ https://opentelemetry.io/docs/specs/otel/overview/ - graph/wiki ๊ตฌ์กฐ๋ผ๋ฉด connected component, reachable neighborhood, isolated node์ฒ๋ผ ์ฌ์ฉ์์ ์ฐ๊ฒฐ ๋ชจ๋ธ์์ ๋๋ฌ ๊ฐ๋ฅํ์ง ๋ณผ ์ ์๋๊ฐ?
์ฐธ๊ณ : https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.components.connected_components.html
Each stage should leave an inspectable checkpoint before the next stage depends on it. A default run can continue automatically, but intake assumptions and collection caveats should not appear only inside the final HTML.
The core Markdown files are instructions, not evidence. A validation or real run may restrict the agent to these core files as the only package guidance, but the agent should still inspect the target wiki, session sources, and telemetry candidates at a safe aggregate level. A contract-only intake that never looks at the target evidence is partial, not a successful discovery run.
In the common local self-run case, the user's own agent is diagnosing the user's own wiki. In that mode, guide memory, project memory, skill documents, routing rules, session summaries, command histories, plugin state, and user-level agent/session stores outside the wiki root are useful evidence for how the wiki is actually used. Read them when available to infer the usage model and parser scope; keep generated artifacts compact unless the user explicitly wants raw excerpts.
Do not collapse similarly named sources. A hidden folder inside the wiki root may be plugin state, project notes, or diagnostics, while a user-level store with a similar name may contain the actual request history. Treat those as separate source families and explain which one was used.
Each diagnostic run should start from the target wiki and currently discovered source families, not from old diagnostic outputs. Previous reports, validation folders, scratch JSON, or temporary collectors are derived artifacts. Use them only when the user explicitly asks for comparison or when they are inside example/ as style references. Otherwise create a fresh output area and keep previous run artifacts out of the metric evidence.
Discover the user's wiki model before counting.
The agent should identify:
- operating components: guide/startup memory, schema/rules, entrypoints, indexes/hubs, logs/activity, retrieval routes, telemetry/session sources
- live wiki content versus generated output, archives, diagnostics, dependencies, and runtime artifacts
- connection surfaces: links, tags, folders, frontmatter, graph edges, semantic neighbors, search routes, MCP tools, or custom routes
- likely session or telemetry sources for request-level analysis
- a source inventory for non-document evidence, including rough structure, parseability, and supported metric families
- assumptions that are safe to proceed with and assumptions that need a targeted user question
The intake should identify real candidate paths, connectors, or source families from the target environment. Generic source-family examples are useful only as fallback notes; they should not replace evidence from the target wiki.
Ask only when the answer changes counting or interpretation.
Checkpoint: wiki_intake_profile plus a short intake note covering scope, exclusions, detected sources, assumptions, and open questions.
If a checkpoint is JSON, validate that it parses before the next stage consumes it. If the agent wants to preserve messy excerpts, put them in a Markdown note or summarize them; do not break machine-readable artifacts with unescaped raw text.
Collect concept-level metrics with clear scope and confidence.
Prefer metric families that answer user questions:
- operating component coverage
- activity and growth
- request/session usage cost
- document/object reading burden
- connection health
- trust, freshness, provenance, and schema consistency
- measurement gaps and next telemetry
Measured telemetry is preferred for request-level metrics. Useful future fields include request ID, request type, start/end/elapsed time, retrieval route, returned/selected/read/written objects, route depth or selected rank, token fields, and hit/fallback/usefulness.
When telemetry is absent but structured wiki-use sessions exist, the agent may generate a temporary environment-specific parser to infer request windows, tool calls, searches, reads, writes, objects touched, elapsed time, token signals, and caveats. Session-derived values should be labeled as inferred unless the trace explicitly measures them.
Do not confuse project/session summaries with request traces. A project log, OMC-style session summary, or status file can explain workload context, active tools, and likely parser vocabulary, but it usually cannot measure ์์ฒญ๋น ๋น์ฉ unless it contains per-turn events. For current ad-hoc diagnostics, a Claude/Codex/local-LLM style transcript or JSONL history with request IDs, timestamps, tool calls, and usage fields is often the most useful temporary source. If token fields are absent, token-like values may be estimated from text or payload size, but the report must keep those estimates separate from measured token usage.
Do not hardcode one user's filenames as rules. Local paths and source families may appear in generated artifacts because intake discovered them, but the core logic should reason from source role, structure, and parseability.
Checkpoint: aggregate metrics, session/telemetry probe result, measurement gaps, and a short collection note explaining which intake assumptions were used.
Generate a Korean-first, self-contained HTML report when possible.
The report should lead with:
- a compact top area with key values and trends
- answers to the two main questions with 3-4 subquestions each
- three recommendation directions: structure/navigation, usage workflow, and telemetry/measurement
The lower area should preserve richer evidence:
- operating component inventory
- request/session analysis or a clear parser/telemetry gap
- time-window trends
- size and reading-burden views
- connection-health candidates and broken references
- trust/schema/freshness signals
- measurement gaps and diagnostic run cost
Use visuals when they clarify burden, trend, or concentration: cards, bars, timelines, sparklines, histograms, ranked bars, stacked availability views, or small route/graph views when readable. Tables are useful for exact values, but they should not be the only way the user sees growth, cost pressure, or connection problems.
Checkpoint: HTML report, optional Markdown companion, and evaluation note. The evaluation should reference intake and collection artifacts, not only the final report.
The first run should produce a useful default report without asking about cosmetic preferences.
After the report, user questions should refine the diagnostic:
- If a count looks wrong, revisit intake scope and denominators.
- If request cost looks wrong, revisit telemetry fields, session parser scope, and request-window rules.
- If connection labels look wrong, revisit the connection surfaces before changing report wording.
- If a chart is confusing, keep the metric but improve the visual or explanation.
- If precision is insufficient, recommend the smallest query/hook/wrapper telemetry that would measure it next time.
When a metric definition or scope changes, rerun collection before regenerating the report. Do not hand-edit the final HTML as the source of truth.
Default outputs should be aggregate and path-based, but discovery may read richer local context when it helps infer the usage model.
Use two practical modes:
aggregate output: default artifact mode. Store counts, paths, role labels, field names, examples, confidence labels, and summarized request windows.local full-context discovery: acceptable when the user's own local agent is running the diagnostic. The agent may inspect raw memories, skill files, session transcripts, and guide documents to design better parsers, then summarize what mattered in the artifacts.
Prefer:
- counts, ratios, paths, role labels, hashes, examples, and confidence labels
- summaries of request windows rather than raw prompts
- source-family labels such as static wiki, logs, session inference, telemetry, graph/search output, or user hint
Avoid printing or storing raw prompts, raw answers, full trace lines, full note bodies, credentials, API keys, personal contact data, or private calendar/task details unless the user explicitly opts in. Candidate source inspection should use field names, counts, types, hashes, path examples, and redacted summaries rather than raw line or full-body dumps. This applies to terminal/debug logs as well as final artifacts: do not inspect session candidates by dumping raw JSONL/chat lines with cat, head, sed, or similar commands. Use a redacting shape probe that drops or length-counts fields such as prompt, answer, content, message, input_preview, output_preview, arguments, result, body, and tool_output before printing anything.
A run may create derived artifacts such as:
- intake/profile summary
- aggregate metrics or concept measurements
- generated collector or temporary session parser
- session/telemetry probe result
- HTML report
- optional Markdown companion
- evaluation or self-check note
Only the README and three stage Markdown files are core. Generated collectors, reports, scripts, JSON outputs, and evaluation files are derived outputs and should not become the next baseline unless the user explicitly wants to diagnose the diagnostic package itself.
Use stage artifacts for feedback. If a user challenges the final report, identify whether the problem belongs to intake scope, metric collection, or report composition, then rerun only the affected stage and downstream stages.
example/ contains sanitized reference material only. It may show expected report shape, terminology, and artifact style, but it should not contain a full implementation or private vault/session data.
Use examples in two modes:
Core-only validation: give a fresh agent only this README and the three stage Markdown files. It should still discover structure, adapt metrics, attempt relevant session/telemetry probing, and generate a useful HTML report.Example-assisted validation: after core-only validation is acceptable, provideexample/as a style reference. The agent may use it to improve layout and explanation, but must not copy example counts, paths, thresholds, or metric availability.
A fresh run is acceptable when it produces a Korean-first HTML report that:
- answers both main questions with concrete subquestions
- shows key metrics and trends near the top
- distinguishes measured, inferred, unreliable, and unavailable values
- attempts request-level analysis through telemetry or session inference when relevant
- audits likely session/telemetry source families before declaring request-level time, token, tool, or read/write cost unavailable
- treats missing time/token/depth/hit fields as measurement gaps
- represents guide/schema/index/log/retrieval/telemetry components before deep document repair lists
- explains connection concepts such as stub, orphan, dead-end, hot weak, and broken reference as review candidates
- includes a lower evidence area rich enough for the user to challenge and regenerate the analysis
A run is not fully acceptable just because files were generated. If discovered logs, dated notes, sessions, or telemetry vanish from derived metrics, if accessible user-level session stores are ignored, or if artifact counts contradict each other, mark the run as partial and rerun the affected collection step.
Stage artifacts that are meant to be machine-readable must parse successfully. Invalid JSON, truncated HTML, or broken links between stage artifacts should be treated as stage failure, not as a cosmetic issue.
The first diagnostic should be bounded. If a source or parser keeps failing, leave a partial artifact with the failure reason, measurement gap, and next collection recommendation instead of blocking the whole report.