Help us improve
Share bugs, ideas, or general feedback.
From forge-research
forge-outputs 문서에서 벡터+BM25 하이브리드 의미 검색을 수행하는 스킬. 정부과제 자료, 리서치, 기획서 등에서 키워드가 아닌 의미 기반으로 관련 문서/청크를 찾는다. "투자 유치" → "VC 라운드, 시드 펀딩, 민간투자" 등 동의어까지 검색.
npx claudepluginhub moongci38-oss/forge-plugins --plugin forge-researchHow this skill is triggered — by the user, by Claude, or both
Slash command
/forge-research:rag-searchhaikuThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**역할**: 당신은 워크스페이스 전체 문서에서 벡터+BM25 하이브리드 의미 검색을 수행하는 문서 검색 전문가입니다.
Creates p5.js generative art with seeded randomness, noise fields, and interactive parameter exploration. Use for algorithmic art, flow fields, or particle systems.
Share bugs, ideas, or general feedback.
역할: 당신은 워크스페이스 전체 문서에서 벡터+BM25 하이브리드 의미 검색을 수행하는 문서 검색 전문가입니다. 컨텍스트: 사용자가 키워드가 아닌 의미 기반으로 정부과제 근거, 기획서, 리서치 자료 등 특정 구절을 찾을 때 호출됩니다. 출력: 파일 경로·유사도 점수·텍스트 프리뷰를 포함한 상위 N개 검색 결과를 반환합니다.
forge-outputs/ 문서에서 벡터(의미) + BM25(키워드) 하이브리드 검색을 수행한다.
/rag-search 투자 유치 전략
/rag-search TagHub 기술 차별점 --top-k 10
/rag-search 시장 규모 TAM --mode vector
# reasoning_context 포함 (AgentIR 패턴) — 현재 추론 단계를 쿼리에 명시
/rag-search [보안 취약점 분석 중] JWT 토큰 검증 방법
/rag-search [GodBlade 가챠 시스템 설계 중] 확률 설정 선례
reasoning_context 파라미터 (선택):
[현재 추론 단계] 형식으로 쿼리 앞에 붙이면 관련 문서 리트리브 정확도 향상.
오케스트레이터는 현재 작업 컨텍스트(CoT 요약)를 대괄호에 담아 전달한다.
인덱스가 없으면 빌드를 먼저 제안한다:
# 인덱스 존재 확인
ls {target_dir}/.rag-index/meta.json
# 없으면 빌드
python3 ~/forge/shared/scripts/rag/index.py {target_dir}
인덱스 위치:
${FORGE_OUTPUTS:-$HOME/forge-outputs}/.rag-index/ (통합 인덱스 — 기본)${FORGE_OUTPUTS:-$HOME/forge-outputs}/09-grants/.rag-index/ (과제 전용)다른 폴더: python3 ~/forge/shared/scripts/rag/index.py ${FORGE_OUTPUTS:-$HOME/forge-outputs}/01-research/
# 전체 forge-outputs 검색 (기본)
python3 ~/forge/shared/scripts/rag/search.py "{검색어}" --top-k {N} --mode {hybrid|vector|bm25} --index-dir ${FORGE_OUTPUTS:-$HOME/forge-outputs}/.rag-index
# 정부과제만 검색
python3 ~/forge/shared/scripts/rag/search.py "{검색어}" --index-dir ${FORGE_OUTPUTS:-$HOME/forge-outputs}/09-grants/.rag-index
파라미터:
--top-k N: 결과 수 (기본 5)--mode hybrid: 벡터+BM25 조합 (기본, 권장)--mode vector: 의미 검색만--mode bm25: 키워드 검색만--graph: Graph RAG 모드 — 시맨틱 결과의 Obsidian [[wikilink]] 이웃 노드 확장--graph-hops N: 그래프 순회 홉 수 (기본 1, 2면 A→B→C 체인)--json: JSON 출력 (프로그래밍용)--index-dir: 인덱스 위치 지정검색 결과에서:
Obsidian vault(forge-outputs, .obsidian 루트)의 [[wikilink]] 관계를 그래프로 구축하여
시맨틱 검색 결과를 관계 기반으로 확장한다. 단순 유사도로는 못 잡는 연결 문서를 끌어온다.
[[wikilink]] 이웃(정방향 links_to + 역링크 links_from)을 그래프에서 조회# 20-wiki 위키링크 → obsidian_graph.json 구축 (vault-local 인덱스)
python3 ~/forge/shared/scripts/rag/graph_builder.py --index-dir ${FORGE_OUTPUTS:-$HOME/forge-outputs}/.rag-index
# 양쪽 인덱스(workspace + vault-local) 동시 갱신
python3 ~/forge/shared/scripts/rag/graph_builder.py --both
[[wikilink]] (정/역방향)obsidian_graph.json의 graph_dict에 저장 (LlamaIndex 소유 graph_store.json과 분리 — persist 클로버 방지)20-wiki/에 집중 (전체 vault wikilink의 ~98%)# Graph RAG — 시맨틱 시드 + 위키링크 이웃 확장
python3 ~/forge/shared/scripts/rag/search.py "에이전트 패턴" --graph --top-k 5 --index-dir ${FORGE_OUTPUTS:-$HOME/forge-outputs}/.rag-index
# 2홉 체인 (A→B→C)
python3 ~/forge/shared/scripts/rag/search.py "하네스 설계" --graph --graph-hops 2
그래프 이웃은 점수 0.5로 결과에 추가 (시맨틱 결과보다 낮게 랭크).
graph_neighbor: true메타로 구분. 위키 파일이 벡터 인덱스에 없으면 시드가 안 잡혀 확장 X — 위키 인덱싱 선행 필요.
# 최초 빌드
python3 ~/forge/shared/scripts/rag/index.py ${FORGE_OUTPUTS:-$HOME/forge-outputs}/09-grants
# 문서 추가/변경 후 재빌드
python3 ~/forge/shared/scripts/rag/index.py ${FORGE_OUTPUTS:-$HOME/forge-outputs}/09-grants --rebuild
cat ${FORGE_OUTPUTS:-$HOME/forge-outputs}/09-grants/.rag-index/meta.json
# 리서치 폴더
python3 ~/forge/shared/scripts/rag/index.py ${FORGE_OUTPUTS:-$HOME/forge-outputs}/01-research
# 전체 forge-outputs
python3 ~/forge/shared/scripts/rag/index.py ${FORGE_OUTPUTS:-$HOME/forge-outputs}
| 구성 요소 | 선택 | 비고 |
|---|---|---|
| 프레임워크 | LlamaIndex | 문서 로딩 + 인덱싱 |
| 벡터 저장소 | FAISS (로컬) | 서버 불필요 |
| 키워드 검색 | BM25Retriever | 하이브리드 병합 |
| 임베딩 모델 | multilingual-e5-small (로컬) | 한국어 지원, 비용 0 |
| 임베딩 차원 | 384 | |
| 청크 크기 | 512 토큰 | overlap 50 |
| 지원 파일 | md, txt, json, docx, pdf | hwp/pptx/이미지 제외 |
| Graph RAG | Obsidian [[wikilink]] 그래프 | obsidian_graph.json, --graph 플래그 |
| 그래프 빌더 | graph_builder.py | 노드=파일, 엣지=정/역 위키링크 |
pip install -r ~/forge/shared/scripts/rag/requirements.txtpip install llama-index-embeddings-huggingface sentence-transformers docx2txt--rebuild 제안[컨텍스트] 형식으로 포함 — 검색 정확도 향상