Memory
세션 간 장기 기억 — 검색, 읽기, 저장. Memory 스킬은 CLI-JAW에 사용자 선호도, 프로젝트 결정 사항, 그리고 단일 대화를 넘어 유지되는 지속적 지식에 대한 영구적 기억력을 부여합니다.
빠른 참조
| 스킬 이름 | memory |
| 상태 | 활성 (모든 세션에 자동 주입) |
| 카테고리 | 생산성 |
| SKILL.md 경로 | ~/.cli-jaw/skills/memory/SKILL.md |
| 데이터 디렉토리 | ~/.cli-jaw/memory/structured/ |
| 필수 요건 | 없음 (외부 종속성 없음) |
| 설치 | 사전 설치됨 (CLI-JAW에 기본 포함) |
| 범위 | L1 인스턴스 로컬 (읽기/쓰기) + L2 대시보드 (읽기 전용) |
| 임베딩 검색 | 선택 사항, 기본 OFF |
개요
memory 스킬은 CLI-JAW의 영구 지식 계층입니다. 대화 컨텍스트에만 의존하지 않고 AI가 세션 간에 사실, 선호도, 결정 사항을 기억할 수 있게 합니다. 모든 세션에 memory 스킬이 자동으로 주입되므로 수동으로 로드할 필요가 없습니다.
Memory는 두 가지 범위에서 작동합니다:
L1 인스턴스 로컬 메모리
- 명령어:
cli-jaw memory search/read/save - 모든 작업의 기본 경로
- 현재 인스턴스만 해당
- 읽기 + 쓰기
- 모든 저장 작업에 사용
L2 대시보드 메모리
- 명령어:
cli-jaw dashboard memory search/read/instances - 인스턴스 간 연합 검색
- 여러 인스턴스 / 홈
- 읽기 전용
- 사용자가 인스턴스 간 데이터를 명시적으로 요청할 때만 사용
규칙
Memory 스킬은 메모리의 사용 시점과 방법을 규정하는 7가지 엄격한 규칙을 따릅니다:
| # | 규칙 | 상세 |
|---|---|---|
| 1 | 응답 전에 검색 | 과거 작업, 결정, 선호도에 대해 질문받으면 응답하기 전에 항상 cli-jaw memory search <keywords>를 먼저 실행하세요. |
| 2 | 지속적 사실은 즉시 저장 | 사용자 선호도, 주요 결정, 안정적인 프로젝트 사실은 확인 즉시 저장해야 합니다. |
| 3 | 구조화된 경로 사용 | 임의의 경로보다 structured/profile.md, structured/semantic/..., 또는 structured/episodes/...를 우선 사용하세요. |
| 4 | 부족한 부분은 인정 | 검색 결과가 없으면 "해당 기록이 없습니다."라고 말하세요. 기억을 지어내지 마세요. |
| 5 | 안정적 사실만 저장 | 일시적인 TODO, 단계 로그, 임시 체크리스트는 저장하지 마세요. 지속적인 지식만 메모리에 보관합니다. |
| 6 | 폭넓게 검색 | 검색 쿼리를 구성할 때 한국어/영어 변형, 에러 코드, 기호, 파일명을 고려하세요. |
| 7 | 주입된 컨텍스트 활용 | 작업 스냅샷이 이미 프롬프트에 있을 수 있지만, 정확도가 중요하거나 정확한 문구가 필요할 때는 여전히 검색하세요. |
명령어
검색
메모리 인덱스에서 키워드를 검색합니다. 일치하는 항목과 원본 파일 경로를 반환합니다.
# Basic keyword search
cli-jaw memory search "keyword"
# Search for user preferences
cli-jaw memory search "user preference"
# Search with error codes or technical terms
cli-jaw memory search "auth login 401"
# Search with system/service terms
cli-jaw memory search "launchd plist service"
# Cross-instance search (L2 dashboard, read-only)
cli-jaw dashboard memory search "cross-instance topic"
읽기
특정 메모리 파일의 전체 내용을 읽거나 파일 내 특정 줄 범위를 읽습니다.
# Read the user profile
cli-jaw memory read structured/profile.md
# Read a semantic knowledge file
cli-jaw memory read structured/semantic/cli-jaw.md
# Read an episodic entry
cli-jaw memory read structured/episodes/live/2026-03-07.md
# Read only specific lines (useful for large files)
cli-jaw memory read structured/profile.md --lines 1-30
저장
지속적 사실을 메모리 파일에 추가합니다. 내용은 덮어쓰지 않고 추가됩니다.
# Save a user preference to the profile
cli-jaw memory save structured/profile.md "- User prefers Korean UI and English code"
# Save a technical fact to a semantic file
cli-jaw memory save structured/semantic/cli-jaw.md "- Memory runtime uses task snapshots before response generation"
# Save a time-bound episode
cli-jaw memory save structured/episodes/live/2026-03-07.md "## 16:30\n- Decided to remove query-provider setup from memory UX"
목록 & 초기화
메모리 디렉토리를 검사하고 초기화하기 위한 유틸리티 명령어입니다.
# List all memory files and their sizes
cli-jaw memory list
# Initialize the memory directory structure (first-time setup)
cli-jaw memory init
저장소 구조
메모리는 ~/.cli-jaw/memory/ 아래의 구조화된 디렉토리 계층으로 구성됩니다. 각 하위 디렉토리는 고유한 목적을 가집니다:
| 경로 | 용도 | 사용 시점 |
|---|---|---|
structured/profile.md |
안정적 프로필, 선호도, 장기 프로젝트 컨텍스트 | 사용자 선호도, 도구 설정, 기본 동작 |
structured/episodes/ |
시간 순서 에피소드 기억 | 세션 결과, 날짜가 포함된 결정, 시간 기반 이벤트 |
structured/semantic/ |
지속적 사실 및 추출된 지식 | 기술 지식, 프로젝트 아키텍처 노트, API 패턴 |
structured/procedures/ |
재사용 가능한 워크플로우 및 규칙 | 단계별 가이드, 배포 절차, 표준 프로세스 |
structured/sessions/ |
선택적 세션 파생 기억 | 완료된 세션에서 자동 추출된 인사이트 |
structured/index.sqlite |
검색 인덱스 | 자동 관리됨; memory search를 구동 |
~/.cli-jaw/memory/
structured/
profile.md # User preferences and identity
index.sqlite # Full-text search index
episodes/
live/
2026-03-07.md # Daily episodic entries
2026-05-29.md
semantic/
cli-jaw.md # CLI-JAW-specific knowledge
deployment.md # Deployment procedures
project-architecture.md # Architecture decisions
procedures/
release-checklist.md # Reusable workflows
code-review-process.md
sessions/
session-2026-05-29-abc123.md # Auto-extracted session notes
워크플로우
Memory 스킬은 대화 중 메모리가 어떻게 사용되는지를 규정하는 4가지 표준 워크플로우를 정의합니다.
새 대화
새 세션이 시작될 때:
사용자가 선호도를 언급할 때
사용자가 선호도를 밝힐 때 (예: "탭이 스페이스보다 좋아"):
structured/profile.md에 저장사용자가 "기억해...?"라고 물을 때
사용자가 이전에 논의된 내용을 기억하는지 물을 때:
cli-jaw memory search "<keywords>" 실행중요한 세션 종료 시
세션에서 중요한 결정이나 결과가 나왔을 때:
episodes/) 사용사용 예시 (~해줘)
다음은 CLI-JAW가 이해하는 자연스러운 한국어 스타일의 실제 사용 패턴입니다.
cli-jaw memory search "Tailwind"를 실행하고, structured/profile.md에서 저장된 선호도를 찾아 정확한 항목과 출처 파일을 응답합니다.- Code language: English, UI text: Korean을 structured/profile.md에 저장하여 이후 모든 세션에서 이 선호도를 반영합니다.- API error handling: always use ErrorResponse type을 structured/semantic/project-architecture.md에 저장하여 이 아키텍처 결정을 지속시킵니다.cli-jaw dashboard memory search "project setup"을 실행하여 인스턴스 간 연합 검색을 수행하고, 대시보드에서 읽기 전용 결과를 반환합니다.저장할 것 vs. 건너뛸 것
| 저장 (지속적) | 건너뛰기 (일시적) |
|---|---|
| 사용자가 모든 UI에서 다크 모드를 선호함 | 현재 작업: "로그인 버그 수정" |
| 프로젝트에서 npm이 아닌 pnpm 사용 | 단계 로그: "2단계 오후 3시에 시작" |
| API 응답 형식 결정 | 임시 디버그 체크리스트 |
| 프로덕션 배포 절차 | "내일 이것 확인하라고 알려줘" |
| 아키텍처: 이벤트 버스 기반 마이크로서비스 | 진행 중인 TODO 목록 |
| 팀에서 Conventional Commits 사용 | 세션별 변수 값 |
올바른 저장 경로 선택
사실을 저장할 때 정보의 성격에 따라 저장 경로를 선택하세요:
| 정보 유형 | 저장 경로 | 예시 |
|---|---|---|
| 개인 선호도 | structured/profile.md | "사용자가 한국어 UI, 영어 코드를 선호함" |
| 프로젝트 아키텍처 사실 | structured/semantic/<project>.md | "CLI-JAW는 메모리 인덱스에 SQLite 사용" |
| 날짜가 있는 결정 | structured/episodes/live/<date>.md | "2026-05-29: Prisma 대신 Drizzle ORM 선택" |
| 재사용 가능한 워크플로우 | structured/procedures/<name>.md | "릴리스 체크리스트: lint, test, tag, deploy" |
| 도메인 지식 | structured/semantic/<domain>.md | "Cloudflare D1은 데이터베이스당 10GB 제한" |
검색 팁
메모리 검색 인덱스는 전문 키워드 매칭을 지원합니다. 최상의 결과를 얻으려면:
- 양쪽 언어 모두 사용 — 사용자가 이중 언어로 작업하면 "auth"와 "인증"을 모두 검색하세요
- 에러 코드 포함 — 인증 관련 기억을 찾으려면 "401 unauthorized"를 검색하세요
- 파일명 시도 — 시스템 서비스 기억을 찾으려면 "launchd"나 "plist"를 검색하세요
- 구체적으로 시작하고 넓게 확장 — "Cloudflare D1 migration"으로 시작하고 "database migration"으로 폴백하세요
- 기호 검색 — "ECONNREFUSED" 같은 에러 코드나 "JAW_HOME" 같은 설정 키도 인덱싱됩니다
참고 사항
- 장황한 로그보다 간결하고 지속적인 항목을 선호하세요
- 메모리는 관례적으로 추가 전용입니다 — save 명령은 덮어쓰지 않고 추가합니다
- 검색 인덱스(
index.sqlite)는 파일이 저장될 때 자동으로 관리됩니다 - 인스턴스 간(L2) 메모리는 항상 읽기 전용입니다; 다른 인스턴스에 저장할 수 없습니다
- 인스턴스에서 임베딩 검색이 활성화된 경우 키워드 검색을 보완하지만 대체하지는 않습니다
관련 문서
- 개념: Memory — 메모리 시스템 아키텍처의 상위 수준 개요
- CLI 명령어 —
cli-jaw memory명령어 전체 참조 - 대시보드 가이드 — L2 대시보드 메모리 및 인스턴스 간 연합
- 스킬 카탈로그 — 대표 스킬 카탈로그 탐색
- 생산성 스킬 — 메모리 및 관련 스킬 카테고리 페이지