이 문서는 memory-bank를 단순한 대화 검색 도구가 아니라, 세션 로그를 구조화된 장기 기억으로 변환하는 지식 파이프라인으로 해석합니다. 입력 수집부터 fact 정규화, ontology 연결, MCP 기반 recall surface까지 각 레이어가 왜 분리되어 있는지와 그 설계 의도를 한 화면에 정리했습니다.
대화 JSONL, tool call, 세션 메타데이터, 프로젝트 경로와 브랜치 같은 실행 문맥이 memory-bank의 원재료가 됩니다.
embedding, indexing, fact extraction, contradiction 처리로 로그를 검색 가능하고 재사용 가능한 구조로 바꿉니다.
MCP, CLI, UI, avatar가 같은 기반 지식을 서로 다른 진입점으로 노출해 회수 비용을 낮춥니다.
~/.claude/projects 기반 세션 원본 보존~/.config/superpowers/conversation-index/db.sqlite@xenova/transformers + all-MiniLM-L6-v2src/sync.ts가 conversation JSONL을 archive로 복사하고 incremental 처리 대상을 만듭니다.
src/indexer.ts가 exchange를 SQLite와 vector table에 적재해 대화 회수 기반을 만듭니다.
src/search.ts가 semantic, text, hybrid 모드로 과거 대화를 다시 찾게 해줍니다.
src/fact-extractor.ts가 세션 종료 시 장기 보존 가치가 있는 사실을 추출합니다.
src/consolidator.ts가 중복, 충돌, 진화 이력을 정리해 fact 품질을 유지합니다.
src/ontology-classifier.ts가 domain/category를 붙이고 typed relation으로 연결합니다.
src/mcp-server.ts, CLI, UI가 search, graph, avatar 인터페이스를 제공합니다.
search는 archived conversation을 semantic, text, hybrid 방식으로 탐색합니다.read는 줄 단위 범위를 열어 원문과 문맥을 직접 확인하게 합니다.search_facts는 정규화된 long-term fact만 빠르게 질의합니다.search_ontology, trace_fact, explore_graph는 기억을 구조 단위로 순회하게 만듭니다.memory-bank의 핵심은 대화를 저장하는 것이 아니라, 대화를 다시 사용할 수 있는 지식 구조로 변환하는 데 있습니다. 그래서 archive, retrieval, fact, ontology, recall surface가 순차적으로 분리되어 있고, 이 분리는 검색 성능, 지식 품질, 설명 가능성, 프로젝트 스코프 제어를 동시에 만족시키기 위한 구조적 선택으로 읽는 편이 맞습니다.