Memory

세션 간 장기 기억 — 검색, 읽기, 저장. Memory 스킬은 CLI-JAW에 사용자 선호도, 프로젝트 결정 사항, 그리고 단일 대화를 넘어 유지되는 지속적 지식에 대한 영구적 기억력을 부여합니다.

기본 활성: 예 카테고리: 생산성 L1 + L2 범위

빠른 참조

스킬 이름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
  • 인스턴스 간 연합 검색
  • 여러 인스턴스 / 홈
  • 읽기 전용
  • 사용자가 인스턴스 간 데이터를 명시적으로 요청할 때만 사용
L2 대시보드 메모리는 사용자가 대시보드 메모리, 모든 인스턴스, 다른 인스턴스/홈, 또는 인스턴스 간 컨텍스트를 요청할 때 사용하세요. 그 외에는 L1을 기본으로 사용합니다.

규칙

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"
팁: 폭넓게 검색하세요. 첫 번째 쿼리에서 결과가 없으면 한국어/영어 변형을 시도하세요. 예를 들어, 이중 언어 항목을 찾기 위해 "인증"과 "auth"를 모두 검색하세요.

읽기

특정 메모리 파일의 전체 내용을 읽거나 파일 내 특정 줄 범위를 읽습니다.

# 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가지 표준 워크플로우를 정의합니다.

새 대화

새 세션이 시작될 때:

1주입된 메모리 컨텍스트가 있으면 사용 (시스템이 관련 기억을 미리 로드할 수 있음)
2작업이 이전 결정이나 선호도에 의존하면 메모리를 검색
3정확한 문구나 세부 사항이 중요할 때 관련 파일을 읽기

사용자가 선호도를 언급할 때

사용자가 선호도를 밝힐 때 (예: "탭이 스페이스보다 좋아"):

1간단히 확인 ("알겠습니다, 기록했습니다.")
2structured/profile.md에 저장
3프로젝트별 사항이면 적절한 semantic 파일에도 저장

사용자가 "기억해...?"라고 물을 때

사용자가 이전에 논의된 내용을 기억하는지 물을 때:

1cli-jaw memory search "<keywords>" 실행
2찾으면 기억된 사실과 출처 파일을 인용하여 응답
3찾지 못하면 저장된 기록이 없다고 말하고 저장을 제안

중요한 세션 종료 시

세션에서 중요한 결정이나 결과가 나왔을 때:

1지속적 결정 또는 사실을 저장
2시간 기반 결과에는 에피소드 파일(episodes/) 사용
3장기 지식에는 semantic 또는 profile 파일 사용

사용 예시 (~해줘)

다음은 CLI-JAW가 이해하는 자연스러운 한국어 스타일의 실제 사용 패턴입니다.

"내가 저번에 Tailwind 쓴다고 했던 거 기억해?"
"기억해...?" 워크플로우를 실행합니다. 에이전트가 cli-jaw memory search "Tailwind"를 실행하고, structured/profile.md에서 저장된 선호도를 찾아 정확한 항목과 출처 파일을 응답합니다.
"앞으로 코드는 영어, UI 텍스트는 한국어로 해줘"
"사용자가 선호도를 언급할 때" 워크플로우를 실행합니다. 에이전트가 확인한 후, - Code language: English, UI text: Koreanstructured/profile.md에 저장하여 이후 모든 세션에서 이 선호도를 반영합니다.
"지난번 배포 때 DB 마이그레이션 어떻게 했더라?"
"응답 전에 검색" 규칙을 실행합니다. 에이전트가 메모리에서 "DB migration deploy"와 "배포 마이그레이션"을 검색한 후, 관련 에피소드 항목을 읽어 사용된 정확한 마이그레이션 단계를 확인합니다.
"이 프로젝트에서 API 에러 핸들링은 항상 ErrorResponse 타입 쓰기로 결정했어. 기억해줘."
즉시 저장을 실행합니다. 에이전트가 - API error handling: always use ErrorResponse typestructured/semantic/project-architecture.md에 저장하여 이 아키텍처 결정을 지속시킵니다.
"다른 인스턴스에서 이 프로젝트 어떻게 설정했는지 찾아봐"
L2 대시보드 메모리를 실행합니다. 에이전트가 "다른 인스턴스"를 인식하고 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 제한"

검색 팁

메모리 검색 인덱스는 전문 키워드 매칭을 지원합니다. 최상의 결과를 얻으려면:

임베딩 검색은 선택 사항이며 기본 OFF입니다. 이 스킬은 벡터/시맨틱 검색이 사용 가능하다고 가정하지 않습니다. 모든 검색 작업은 기본적으로 SQLite 전문 검색 인덱스를 사용합니다.

참고 사항

관련 문서