---
baseline: N0020@r0000
created: 2026-04-13T02:44:52.318979400+00:00
---

## Delta

# Proposal 003: 명시적 Vault 경로 및 전역/로컬 선택 지원 (Explicit Vault Selection & Global Flag)

## 개요
현재 `elf` CLI는 `serve` 명령어를 제외하고는 명시적인 Vault 경로 지정(`--vault`)이나 전역 Vault(`~/.elendirna`) 강제 사용 플래그(`--global`)가 없습니다. 
AI 에이전트나 스크립트가 여러 프로젝트(로컬)와 개인 지식 베이스(전역)를 오가며 작업할 때, 현재 디렉터리에 의존하지 않고 명확하게 대상 Vault를 지정할 수 있는 기능을 제안합니다.

## 배경 및 문제점
1. **모호한 대상 지정**: 사용자가 프로젝트 루트 폴더에 있더라도 개인 전역 Vault에 기록하고 싶을 때, 현재는 환경 변수(`ELF_VAULT`)를 수정하거나 디렉터리를 이동해야 하는 번거로움이 있습니다.
2. **명령어 일관성 부족**: `elf serve`에는 `--vault` 플래그가 있지만, `elf entry new`, `elf query` 등 다른 모든 명령에는 해당 플래그가 없어 인터페이스가 불일치합니다.
3. **자동화 스크립트의 취약성**: CI/CD나 자동화 스크립트에서 실행 시 CWD(현재 작업 디렉터리) 상태에 따라 엉뚱한 Vault가 수정될 위험이 있습니다.

## 제안하는 변경 스펙

### 1. 전역 플래그(Global Flags) 도입
모든 서브커맨드 앞에 위치할 수 있는 전역 플래그를 추가합니다.

- `--vault <path>`: 특정 경로의 Vault를 강제로 사용합니다.
- `--global` (또는 `-g`): 홈 디렉터리의 전역 Vault(`~/.elendirna`)를 강제로 사용합니다.

### 2. 우선순위 확정
명령 실행 시 Vault 루트를 결정하는 우선순위를 다음과 같이 정규화합니다:
1. `--vault <path>` 플래그 (최우선)
2. `--global` 플래그 (홈 디렉터리 고정)
3. `ELF_VAULT` 환경 변수
4. 현재 디렉터리(CWD)로부터 상위로 `.elendirna` 탐색
5. (모두 실패 시) 기본 전역 Vault로 폴백

### 3. CLI 사용자 경험(UX) 개선
- `elf init --global`: 이미 구현되어 있으나, 다른 명령어와의 일관성을 위해 `--global` 플래그의 의미를 통일합니다.
- 에러 메시지 개선: Vault를 찾지 못했을 때, 현재 어떤 경로들을 탐색했는지와 `--global` 옵션을 사용할 수 있다는 힌트를 제공합니다.

## 기대 효과
1. **명확한 제어**: 에이전트와 사용자가 작업 대상을 실수 없이 명확하게 지정할 수 있습니다.
2. **유연한 워크플로**: 디렉터리 이동 없이 프로젝트 지식과 개인 지식을 동시에 관리하기 수월해집니다.
3. **일관된 인터페이스**: 모든 명령어에서 동일한 방식으로 Vault를 지정할 수 있어 학습 곡선이 낮아집니다.
