/knowledge-manager
지식 관리 에이전트 - 단일 에이전트 순차 처리 (Agent Teams 미지원 환경용)
> /plugin marketplace add treylom/knowledge-manager > /plugin install km@knowledge-manager
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/knowledge-manager
Context preview
What this command does when you run it.
지식 관리 에이전트 - 단일 에이전트 순차 처리 (Agent Teams 미지원 환경용)
Command definition
knowledge-manager.mddescription: 지식 관리 에이전트 - 단일 에이전트 순차 처리 (Agent Teams 미지원 환경용)
allowedTools: Read, Write, Bash, Glob, Grep, mcp__obsidian__*, mcp__notion__*, mcp__playwright__*, mcp__hyperbrowser__*, WebFetch, AskUserQuestion
Knowledge Manager 호출 (단일 에이전트)
> **이 명령어는 단일 에이전트가 모든 작업을 순차적으로 직접 수행합니다.** > Agent Teams 풀스케일 버전: `/knowledge-manager-at` (tmux + .team-os 필요) > 에이전트 정의: `agents/knowledge-manager.md` 참조 (프로젝트 설치에서는 `.claude/agents/knowledge-manager.md` — install-to-project.sh 가 복사) > **⚡ km 파이프라인**: `km-pipeline.md` — Linting + Filed Back + Q&A 오버레이
---
아키텍처
Main (Opus 1M, 단일 세션) — 7-Layer Fusion
└── Phase 0: 환경 감지 + 모드/선호도
└── Phase 1: DATA INGEST — 콘텐츠 추출
└── Phase 2: EXTRA TOOLS — Vault 탐색 + GraphRAG (Mode I에서도 항상)
└── Phase 3: COMPILE — raw→wiki 컴파일 + Q&A 양방향 [NEW]
└── Phase 4: LINTING — /autoresearch 지식 Health Check [NEW]
└── Phase 5: KNOWLEDGE STORE — 저장 + 연결 강화 + Cross-phase 검증
└── Phase 6: OUTPUTS + FILED BACK — 산출 + Wiki 환류 [NEW]
**어디서든 동작** (tmux 없어도, Agent Teams 없어도, VS Code/SDK에서도).
---
STEP 0: 환경 확인
0-PRE. 파이프라인 오버레이 참조
참조: km-pipeline.md (km 파이프라인 오버레이)
→ STEP 4.5에서 /autoresearch 패턴 적용 (lint 루프)
0-0. 환경 확인 (간소화)
**사용자에게 표시할 필요 없음. 내부적으로 판단만 수행.**
Obsidian 접근 방식 확인 (3-Tier)
# 집행 계약: km-config.json 의 obsidianCli.path 우선, 비어 있으면 OS별 자동 감지
CONFIG_CLI="$(python3 -c "import json;print(json.load(open('km-config.json')).get('obsidianCli',{}).get('path',''))" 2>/dev/null)"
if [ -n "$CONFIG_CLI" ]; then OBSIDIAN_CLI="$CONFIG_CLI"
elif [ -x "/Applications/Obsidian.app/Contents/MacOS/obsidian-cli" ]; then OBSIDIAN_CLI="/Applications/Obsidian.app/Contents/MacOS/obsidian-cli" # mac
elif [ -f "/mnt/c/Program Files/Obsidian/Obsidian.com" ]; then OBSIDIAN_CLI="/mnt/c/Program Files/Obsidian/Obsidian.com" # wsl
else OBSIDIAN_CLI="C:\Program Files\Obsidian\Obsidian.com"; fi # windows
# Tier 1: CLI 확인 (우선)
"$OBSIDIAN_CLI" version 2>/dev/null
→ 응답 있으면: obsidian_method = "cli"
# Tier 2: CLI 실패 시 MCP 확인
mcp__obsidian__list_notes({}) → 응답 여부
→ 응답 있으면: obsidian_method = "mcp"
# Tier 3: 둘 다 실패 시
→ obsidian_method = "filesystem"
→ Write/Read/Grep 도구로 직접 파일 저장0-1. 파이프라인 상태 초기화 (HARD GATE)
Bash("python3 agent-office/km-tools/km-tools.py state init")
→ JSON 응답에서 session_id 확인
→ 이후 모든 STEP 완료 시 state complete 호출 필수:
Bash("python3 agent-office/km-tools/km-tools.py state complete STEP-N")
→ error 응답(STEP_SKIP_DETECTED) 시 즉시 중단, 누락된 STEP 실행---
STEP 0.5: 모드 감지 (Mode Detection)
**STEP 1 진행 전에 사용자 요청을 분석하여 모드를 결정합니다.**
| 사용자 표현 | 모드 | |------------|------| | URL, "정리해줘", "분석해줘", 외부 콘텐츠 | **Mode I** (Content Ingestion) — 기존 워크플로우 | | "아카이브 정리", "카테고리 재편", "일괄 링크", "대규모 재편" | **Mode R** (Archive Reorganization) | | 기존 vault 폴더 50+ 파일 지칭 | **Mode R 제안** (사용자에게 확인) | | "그래프 구축", "GraphRAG", "지식그래프", "인사이트 분석", "커뮤니티 탐색", "그래프 업데이트", "프론트매터 동기화" | **Mode G** (GraphRAG) |
Mode R 감지 시
사용자 요청이 Mode R에 해당합니다.
대규모 vault 재편 모드(Mode R)로 진행할까요?
Mode R은 다음을 수행합니다:
- Phase R0: 사전 정리 (merge conflict, dead link, 레거시 폴더)
- Phase R1: Progressive Reading + 분석
- Phase R2: 카테고리 설계 + DA 검증
- Phase R3: 규칙서 생성 + DA 검증
- Phase R4: Python 배치 실행
- Phase R5: 검증 + 보고
참조 스킬: km-archive-reorganization.md
**Mode R 선택 시** → `km-archive-reorganization.md` 스킬의 Phase R0-R5 실행. 아래 STEP 1-6 대신 Mode R 워크플로우를 따릅니다.
**Mode R 추가 질문:**
AskUserQuestion({
"questions": [
{
"question": "재편 대상 폴더와 범위를 알려주세요.",
"header": "대상 폴더",
"options": [
{"label": "특정 폴더", "description": "vault 내 특정 폴더 지정"},
{"label": "전체 vault", "description": "vault 전체 재편"}
]
},
{
"question": "어떤 재편을 원하시나요?",
"header": "재편 범위",
"options": [
{"label": "카테고리 재분류", "description": "파일을 새 카테고리로 재배치"},
{"label": "링크 강화", "description": "기존 구조 유지, 교차 링크만 추가"},
{"label": "풀 재편", "description": "카테고리 + 링크 + MOC + 시리즈 전체"}
]
},
{
"question": "매 배치 후 auto-commit 할까요?",
"header": "Auto-commit",
"options": [
{"label": "예 (권장)", "description": "매 Python 배치 후 즉시 commit+push (auto-sync 경합 방지)"},
{"label": "아니오", "description": "모든 작업 완료 후 한 번에 커밋"}
]
}
]
})Mode G 감지 시
사용자 요청이 Mode G에 해당합니다.
그래프 구축 모드(Mode G)로 진행할까요?
Mode G는 다음을 수행합니다:
- Phase G0: Delta 감지 (frontmatter_hash 비교, 변경 노트 확인)
- Phase G1: 온톨로지 설계 (엔티티 타입, 관계 타입 정의)
- Phase G2: 엔티티 추출 (노트 → 그래프 엔티티 변환)
- Phase G3: 관계 구축 (엔티티 간 typed 관계 생성)
- Phase G4: 커뮤니티 탐지 (클러스터링, 커뮤니티 ID 부여)
- Phase G5: 인사이트 분석 (커뮤니티 요약, 글로벌 인사이트)
- Phase G6: Frontmatter 동기화 (graph_entity/community/connections 갱신)
참조 스킬: km-graphrag-ops.md(구축·운영 = `/tofugraph`) + `commands/search.md`(검색 = `/km:search`)
**Mode G 선택 시** → `skills/km-graphrag-ops.md`(구축·운영 = `/tofugraph`)와 `commands/search.md`(검색 = `/km:search`)를 따릅니다. 아래 STEP 1-6 대신 Mode G 워크플로우를 따릅니다.
**Mode I 선택 시** → 아래 STEP 1부터 기존 워크플로우 계속.
---
STEP 1: 사용자 선호도 확인 — USER-PROFILE 기반 축약
> **먼저 USER-PROFILE.md를 확인한다** (KM 단독 = vault `_meta/USER-PROFILE.md` / 통합 = `~/.claude/USER-PROFILE.md`). 프로필이 있으면 매번 4질문을 던지지 않고 **프로필에서 기본값을 유도해 확인 1질문**으로 축약한다 — 반복 질문 자체가 UX 페인포인트였다(setup-wizard Phase 4에서 근본 해소).
STEP 1-PRE: 프로필 확인 (분기)
Read(USER-PROFILE.md) # vault _meta/ 우선, 없으면 ~/.claude/
- **프로필 있음** → `roles`/`info_flow`/`workflows`에서 4개 기본값 유도 후 **확인 1질문만**:
- 유도 규칙(예): info_flow="링크·PDF 다수·자주 못 찾음" → 연결수준=최대·분할=3-tier / roles="코드/기술 중심" → 중점=기술·코드 / roles="글쓰기·리서치" → 중점=개념·이론, 상세=상세 / 기본 분할=3-tier·연결=최대
- 질문: `AskUserQuestion` 1개 — "당신 프로필 기준 이렇게 정리할게요: [상세수준 X·중점 Y·분할 Z·연결 W]. 이대로 진행할까요?" 옵션 = {이대로 진행 / 이번만 바꾸기(→ 아래 4질문)}
- **프로필 없음** → 아래 기존 4질문 그대로 (fallback). 끝에 "다음부터 반복 질문을 없애려면 `/knowledge-manager-setup`(플러그인 설치 = `/km:setup`)으로 1회 프로파일 인터뷰를 하세요" 안내 1줄.
(프로필 없을 때 fallback) 4개 질문
**콘텐츠 처리/읽기 전에 반드시 AskUserQuestion을 호출하세요!** **4개 질문을 한 번의 호출로 모두 물어봅니다!**
AskUserQuestion({
"questiRead more
description: 지식 관리 에이전트 - 단일 에이전트 순차 처리 (Agent Teams 미지원 환경용) allowedTools: Read, Write, Bash, Glob, Grep, mcp__obsidian__*, mcp__notion__*, mcp__playwright__*, mcp__hyperbrowser__*, WebFetch, AskUserQuestion
Knowledge Manager 호출 (단일 에이전트)
> **이 명령어는 단일 에이전트가 모든 작업을 순차적으로 직접 수행합니다.** > Agent Teams 풀스케일 버전: `/knowledge-manager-at` (tmux + .team-os 필요) > 에이전트 정의: `agents/knowledge-manager.md` 참조 (프로젝트 설치에서는 `.claude/agents/knowledge-manager.md` — install-to-project.sh 가 복사) > **⚡ km 파이프라인**: `km-pipeline.md` — Linting + Filed Back + Q&A 오버레이
---
아키텍처
Main (Opus 1M, 단일 세션) — 7-Layer Fusion └── Phase 0: 환경 감지 + 모드/선호도 └── Phase 1: DATA INGEST — 콘텐츠 추출 └── Phase 2: EXTRA TOOLS — Vault 탐색 + GraphRAG (Mode I에서도 항상) └── Phase 3: COMPILE — raw→wiki 컴파일 + Q&A 양방향 [NEW] └── Phase 4: LINTING — /autoresearch 지식 Health Check [NEW] └── Phase 5: KNOWLEDGE STORE — 저장 + 연결 강화 + Cross-phase 검증 └── Phase 6: OUTPUTS + FILED BACK — 산출 + Wiki 환류 [NEW]
**어디서든 동작** (tmux 없어도, Agent Teams 없어도, VS Code/SDK에서도).
---
STEP 0: 환경 확인
0-PRE. 파이프라인 오버레이 참조
참조: km-pipeline.md (km 파이프라인 오버레이) → STEP 4.5에서 /autoresearch 패턴 적용 (lint 루프)
0-0. 환경 확인 (간소화)
**사용자에게 표시할 필요 없음. 내부적으로 판단만 수행.**
Obsidian 접근 방식 확인 (3-Tier)
# 집행 계약: km-config.json 의 obsidianCli.path 우선, 비어 있으면 OS별 자동 감지
CONFIG_CLI="$(python3 -c "import json;print(json.load(open('km-config.json')).get('obsidianCli',{}).get('path',''))" 2>/dev/null)"
if [ -n "$CONFIG_CLI" ]; then OBSIDIAN_CLI="$CONFIG_CLI"
elif [ -x "/Applications/Obsidian.app/Contents/MacOS/obsidian-cli" ]; then OBSIDIAN_CLI="/Applications/Obsidian.app/Contents/MacOS/obsidian-cli" # mac
elif [ -f "/mnt/c/Program Files/Obsidian/Obsidian.com" ]; then OBSIDIAN_CLI="/mnt/c/Program Files/Obsidian/Obsidian.com" # wsl
else OBSIDIAN_CLI="C:\Program Files\Obsidian\Obsidian.com"; fi # windows
# Tier 1: CLI 확인 (우선)
"$OBSIDIAN_CLI" version 2>/dev/null
→ 응답 있으면: obsidian_method = "cli"
# Tier 2: CLI 실패 시 MCP 확인
mcp__obsidian__list_notes({}) → 응답 여부
→ 응답 있으면: obsidian_method = "mcp"
# Tier 3: 둘 다 실패 시
→ obsidian_method = "filesystem"
→ Write/Read/Grep 도구로 직접 파일 저장0-1. 파이프라인 상태 초기화 (HARD GATE)
Bash("python3 agent-office/km-tools/km-tools.py state init")
→ JSON 응답에서 session_id 확인
→ 이후 모든 STEP 완료 시 state complete 호출 필수:
Bash("python3 agent-office/km-tools/km-tools.py state complete STEP-N")
→ error 응답(STEP_SKIP_DETECTED) 시 즉시 중단, 누락된 STEP 실행---
STEP 0.5: 모드 감지 (Mode Detection)
**STEP 1 진행 전에 사용자 요청을 분석하여 모드를 결정합니다.**
| 사용자 표현 | 모드 | |------------|------| | URL, "정리해줘", "분석해줘", 외부 콘텐츠 | **Mode I** (Content Ingestion) — 기존 워크플로우 | | "아카이브 정리", "카테고리 재편", "일괄 링크", "대규모 재편" | **Mode R** (Archive Reorganization) | | 기존 vault 폴더 50+ 파일 지칭 | **Mode R 제안** (사용자에게 확인) | | "그래프 구축", "GraphRAG", "지식그래프", "인사이트 분석", "커뮤니티 탐색", "그래프 업데이트", "프론트매터 동기화" | **Mode G** (GraphRAG) |
Mode R 감지 시
사용자 요청이 Mode R에 해당합니다. 대규모 vault 재편 모드(Mode R)로 진행할까요? Mode R은 다음을 수행합니다: - Phase R0: 사전 정리 (merge conflict, dead link, 레거시 폴더) - Phase R1: Progressive Reading + 분석 - Phase R2: 카테고리 설계 + DA 검증 - Phase R3: 규칙서 생성 + DA 검증 - Phase R4: Python 배치 실행 - Phase R5: 검증 + 보고 참조 스킬: km-archive-reorganization.md
**Mode R 선택 시** → `km-archive-reorganization.md` 스킬의 Phase R0-R5 실행. 아래 STEP 1-6 대신 Mode R 워크플로우를 따릅니다.
**Mode R 추가 질문:**
AskUserQuestion({
"questions": [
{
"question": "재편 대상 폴더와 범위를 알려주세요.",
"header": "대상 폴더",
"options": [
{"label": "특정 폴더", "description": "vault 내 특정 폴더 지정"},
{"label": "전체 vault", "description": "vault 전체 재편"}
]
},
{
"question": "어떤 재편을 원하시나요?",
"header": "재편 범위",
"options": [
{"label": "카테고리 재분류", "description": "파일을 새 카테고리로 재배치"},
{"label": "링크 강화", "description": "기존 구조 유지, 교차 링크만 추가"},
{"label": "풀 재편", "description": "카테고리 + 링크 + MOC + 시리즈 전체"}
]
},
{
"question": "매 배치 후 auto-commit 할까요?",
"header": "Auto-commit",
"options": [
{"label": "예 (권장)", "description": "매 Python 배치 후 즉시 commit+push (auto-sync 경합 방지)"},
{"label": "아니오", "description": "모든 작업 완료 후 한 번에 커밋"}
]
}
]
})Mode G 감지 시
사용자 요청이 Mode G에 해당합니다. 그래프 구축 모드(Mode G)로 진행할까요? Mode G는 다음을 수행합니다: - Phase G0: Delta 감지 (frontmatter_hash 비교, 변경 노트 확인) - Phase G1: 온톨로지 설계 (엔티티 타입, 관계 타입 정의) - Phase G2: 엔티티 추출 (노트 → 그래프 엔티티 변환) - Phase G3: 관계 구축 (엔티티 간 typed 관계 생성) - Phase G4: 커뮤니티 탐지 (클러스터링, 커뮤니티 ID 부여) - Phase G5: 인사이트 분석 (커뮤니티 요약, 글로벌 인사이트) - Phase G6: Frontmatter 동기화 (graph_entity/community/connections 갱신) 참조 스킬: km-graphrag-ops.md(구축·운영 = `/tofugraph`) + `commands/search.md`(검색 = `/km:search`)
**Mode G 선택 시** → `skills/km-graphrag-ops.md`(구축·운영 = `/tofugraph`)와 `commands/search.md`(검색 = `/km:search`)를 따릅니다. 아래 STEP 1-6 대신 Mode G 워크플로우를 따릅니다.
**Mode I 선택 시** → 아래 STEP 1부터 기존 워크플로우 계속.
---
STEP 1: 사용자 선호도 확인 — USER-PROFILE 기반 축약
> **먼저 USER-PROFILE.md를 확인한다** (KM 단독 = vault `_meta/USER-PROFILE.md` / 통합 = `~/.claude/USER-PROFILE.md`). 프로필이 있으면 매번 4질문을 던지지 않고 **프로필에서 기본값을 유도해 확인 1질문**으로 축약한다 — 반복 질문 자체가 UX 페인포인트였다(setup-wizard Phase 4에서 근본 해소).
STEP 1-PRE: 프로필 확인 (분기)
Read(USER-PROFILE.md) # vault _meta/ 우선, 없으면 ~/.claude/
- **프로필 있음** → `roles`/`info_flow`/`workflows`에서 4개 기본값 유도 후 **확인 1질문만**:
- 유도 규칙(예): info_flow="링크·PDF 다수·자주 못 찾음" → 연결수준=최대·분할=3-tier / roles="코드/기술 중심" → 중점=기술·코드 / roles="글쓰기·리서치" → 중점=개념·이론, 상세=상세 / 기본 분할=3-tier·연결=최대
- 질문: `AskUserQuestion` 1개 — "당신 프로필 기준 이렇게 정리할게요: [상세수준 X·중점 Y·분할 Z·연결 W]. 이대로 진행할까요?" 옵션 = {이대로 진행 / 이번만 바꾸기(→ 아래 4질문)}
- **프로필 없음** → 아래 기존 4질문 그대로 (fallback). 끝에 "다음부터 반복 질문을 없애려면 `/knowledge-manager-setup`(플러그인 설치 = `/km:setup`)으로 1회 프로파일 인터뷰를 하세요" 안내 1줄.
(프로필 없을 때 fallback) 4개 질문
**콘텐츠 처리/읽기 전에 반드시 AskUserQuestion을 호출하세요!** **4개 질문을 한 번의 호출로 모두 물어봅니다!**
AskUserQuestion({
"questi📖 English documentation is available at the bottom of this page. 읽은 글·영상·PDF를 Obsidian 노트로 정리해 주고, 나중에 그 노트를 찾아 주는 Claude Code 플러그인이에요. 링크 하나를 건네면 요약·태그·관련 노트 연결까지 마친 노트가 vault(볼트 — Obsidian 이 노트를 모아 두는 폴더)에 저장되고, 궁금할 땐 /km:search 한 줄로 되찾습니다.

