Files
HaBraid/AGENTS.md
Contributor 5d5336757d feat: HaBraid v0.1.0 — host-following memory visualization engine for Obsidian
- Hybrid BM25 + HNSW vector search with context enrichment
- Knowledge graph with entities, relations, and community detection
- Host-following LLM route with fallback backends
- 3-tier lint system (static + HNSW dup + contradiction detection)
- Q&A Synthesis (Karpathy LLM Wiki pattern)
- 16 MCP tools for agent-driven workflows
- Incremental wiki generation with checkpointing
- SQLite-backed item store with FTS5 + vector indexes
2026-04-18 15:46:42 +09:00

4.6 KiB

AGENTS.md — habraid

Codex 에이전트를 위한 프로젝트 지도. 상세한 내용은 docs/ 참조.

작업 시작 전 필수 읽기

  1. docs/specs/host-following-llm.md (해당 변경 작업일 때)
  2. docs/architecture.md
  3. docs/config-reference.md
  4. 관련 PLAN*.md

작업 규칙

  • 구현 전에 관련 docs/specs/*.md를 먼저 읽고, 없으면 먼저 spec부터 작성한다.
  • 프롬프트/요구사항 정리는 Goal / Context / Constraints / Done when 구조를 우선한다.
  • 큰 변경은 탐색 → 설계 → 구현 → 검증 순서로 진행한다.
  • HaBraid는 memory backend를 wiki 표현층으로 바꾸는 orchestration layer다.
  • 모델 선택은 기본적으로 host가 담당하고, habraid는 host-following을 기본값으로 지향한다.
  • standalone LLM backend는 fallback/독립 실행 용도로만 유지한다.

프로젝트 개요

habraid: Obsidian 마크다운 위키 엔진. 지식 아이템을 수집/검색/위키화. MemPalace가 있으면 연동하고, 없어도 자체 SQLite DB로 완전 동작.

빠른 시작

npm install
npx tsx src/index.ts --help     # 실행
npx tsx src/index.ts init       # 볼트 초기화
npx tsx src/index.ts sync       # 전체 동기화

아키텍처

src/
├── index.ts          # CLI 진입점 (commander)
├── mcp-server.ts     # MCP 서버 (stdio)
├── types.ts          # 공통 타입
├── config.ts         # 설정 로드 (JSON)
├── errors.ts         # 커스텀 에러
├── utils.ts          # 유틸
├── db/
│   ├── database.ts   # SQLite 연결 + 마이그레이션
│   ├── items.ts      # items CRUD + FTS5 검색
│   └── kg.ts         # Knowledge Graph
├── sources/
│   ├── adapter.ts    # SourceAdapter 인터페이스
│   ├── mempalace.ts  # MemPalace 연동 (선택)
│   └── manual.ts     # 직접 추가
├── vault/
│   ├── init.ts       # 볼트 디렉토리 + SCHEMA.md 생성
│   ├── render.ts     # 아이템 → 마크다운 렌더링
│   ├── index.ts      # index.md 갱신
│   └── log.ts        # log.md 갱신
├── wiki/
│   ├── generator.ts  # 위키 생성 오케스트레이터
│   ├── llm.ts        # z.ai API 클라이언트 (OpenAI 호환)
│   └── prompts.ts    # 시스템 프롬프트
├── sync/
│   ├── git.ts        # git pull/push (simple-git)
│   └── pipeline.ts   # 전체 sync 파이프라인
└── cli/
    └── commands.ts   # CLI 명령어 정의

핵심 규칙

코딩 규칙

  • TypeScript strict mode, ES2022 target, Node16 module resolution
  • 모든 함수와 클래스에 JSDoc 주석
  • 에러는 커스텀 에러 클래스로 래핑 (src/errors.ts)
  • async 함수는 항상 try/catch로 감싸기
  • 파일 경로는 항상 path.join() / path.resolve() 사용

볼트 규칙

  • raw/ 아래 파일은 절대 수정하지 않음 (불변)
  • 모든 마크다운은 YAML frontmatter 포함
  • Obsidian 호환: 백링크 [[]], frontmatter ---
  • 한국어 본문, 코드/경로는 영어 원문 유지

MemPalace 연동 (선택)

  • mempalace.enabled: true + 경로 존재 시에만 활성화
  • 없으면 자체 SQLite DB로 동작
  • ChromaDB 직접 접근하지 않음 (Python 스크립트나 MCP 경유)

Git

  • 커밋 메시지: type: description (conventional commits)
  • 볼트 변경 후 항상 index.md 갱신

의존성

패키지 용도
commander CLI 프레임워크
gray-matter YAML frontmatter 파싱
better-sqlite3 자체 DB + MemPalace DB 읽기
simple-git Git 조작
chalk 터미널 색상
ora 스피너
@modelcontextprotocol/sdk MCP 서버
zod MCP 툴 스키마

MCP 툴

설명
hw_status 볼트 + DB 통계
hw_ingest 소스 → raw/ 수집 (MemPalace + 기타)
hw_add 아이템 직접 추가
hw_search FTS5 키워드 검색
hw_generate raw/ → wiki/ LLM 생성
hw_sync 전체 파이프라인
hw_read vault 내 파일 읽기
hw_lint 정합성 검사
hw_graph KG 쿼리

설정

기본 경로: ~/.habraid/data/config.json 레거시 fallback: ~/.config/habraid/config.json

상세 문서

  • docs/architecture.md — 전체 아키텍처 설계
  • docs/vault-schema.md — 볼트 디렉토리/파일 스키마
  • docs/wiki-generation.md — 위키 생성 프롬프트 전략
  • docs/config-reference.md — 설정 파일 레퍼런스
  • PLAN.md — v1 기획서
  • PLAN-v2.md — v2 독립 아키텍처 기획서