@crewx/memory 0.1.5 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/SKILL.md CHANGED
@@ -1,37 +1,39 @@
1
1
  ---
2
- name: memory-v2
3
- description: 마크다운 + 프론트매터 기반 장기 기억 스킬. 드릴다운 구조로 확장성 있는 기억 관리.
4
- version: 0.10.0
2
+ name: crewx/memory
3
+ description: Markdown + frontmatter-based long-term memory skill. Scalable memory management with drill-down structure.
4
+ metadata:
5
+ version: 0.10.0
6
+ built-in: true
5
7
  ---
6
8
 
7
9
  # Memory V2 Skill
8
10
 
9
- 마크다운 + 프론트매터 기반의 장기 기억 관리 스킬입니다.
11
+ A long-term memory management skill based on markdown + frontmatter.
10
12
 
11
- ## 설치
13
+ ## Installation
12
14
 
13
- `packages/built-in/memory`에 포함되어 있으며, `npx memory` 명령으로 사용합니다.
15
+ Included in `packages/built-in/memory`, used via the `npx memory` command.
14
16
 
15
- ## 특징
17
+ ## Features
16
18
 
17
- - **프론트매터**: 메타데이터 분리 (날짜, 카테고리, 태그, 토픽)
18
- - **드릴다운**: index.md entries/ 구조
19
- - **가독성**: 사람이 직접 읽고 편집 가능
20
- - **Git 친화적**: 개별 파일로 버전 관리
19
+ - **Frontmatter**: Separated metadata (date, category, tags, topic)
20
+ - **Drill-down**: index.md -> entries/ structure
21
+ - **Readability**: Human-readable and editable
22
+ - **Git-friendly**: Version control with individual files
21
23
 
22
- ## 커맨드 Alias
24
+ ## Command Aliases
23
25
 
24
- 자주 쓰는 커맨드의 단축 별칭입니다. 기존 커맨드와 동일하게 동작합니다.
26
+ Shorthand aliases for frequently used commands. They work identically to the original commands.
25
27
 
26
- | Alias | 실제 커맨드 | 설명 |
27
- |-------|-----------|------|
28
- | `read` | `get` | 기억 상세 조회 |
29
- | `list` | `index` | 전체 인덱스 보기 |
30
- | `rm` | `delete` | 기억 삭제 |
31
- | `ls` | `recent` | 최근 기억 보기 |
28
+ | Alias | Actual Command | Description |
29
+ |-------|---------------|-------------|
30
+ | `read` | `get` | View memory details |
31
+ | `list` | `index` | View full index |
32
+ | `rm` | `delete` | Delete memory |
33
+ | `ls` | `recent` | View recent memories |
32
34
 
33
35
  ```bash
34
- # 아래 명령은 동일
36
+ # The following two commands are identical
35
37
  npx memory get agent_id ABC123
36
38
  npx memory read agent_id ABC123
37
39
 
@@ -39,215 +41,215 @@ npx memory index agent_id
39
41
  npx memory list agent_id
40
42
  ```
41
43
 
42
- ## 디렉토리 구조
44
+ ## Directory Structure
43
45
 
44
46
  ```
45
47
  memory/
46
- └── {agent_id}/
47
- ├── summary.md # 전체 요약 (토픽별 섹션 + entries/ 링크)
48
- ├── graph.json # 그래프 데이터
49
- └── entries/ # 개별 기억들
50
- └── {id}.md # 파일명 = nanoid (예: QOSIOs.md)
48
+ +-- {agent_id}/
49
+ +-- summary.md # Overall summary (topic-based sections + entries/ links)
50
+ +-- graph.json # Graph data
51
+ +-- entries/ # Individual memories
52
+ +-- {id}.md # Filename = nanoid (e.g., QOSIOs.md)
51
53
  ```
52
54
 
53
- > **파일명 규칙**: `{id}.md` (예: `QOSIOs.md`). 날짜·제목 메타데이터는 프론트매터에 있으므로 파일명에 중복하지 않습니다. 토큰 절약 + 파일명 충돌 방지.
55
+ > **Filename rule**: `{id}.md` (e.g., `QOSIOs.md`). Since metadata like date and title is in the frontmatter, it is not duplicated in the filename. This saves tokens and prevents filename collisions.
54
56
 
55
- ## 명령어
57
+ ## Commands
56
58
 
57
- ### 저장
59
+ ### Save
58
60
 
59
61
  ```bash
60
- npx memory save <agent_id> "<summary>" [category] [--topic=xxx] [--tags=a,b,c] [--body="상세 내용"]
62
+ npx memory save <agent_id> "<summary>" [category] [--topic=xxx] [--tags=a,b,c] [--body="detailed content"]
61
63
  ```
62
64
 
63
- **옵션:**
64
- | 옵션 | 설명 | 예시 |
65
- |------|------|------|
66
- | `category` | 기억 분류 | decision, task, project, schedule, context, preference, general |
67
- | `--topic` | 토픽 그룹 | `--topic=crewx-strategy` |
68
- | `--tags` | 태그 (쉼표 구분) | `--tags=gemini,pricing` |
69
- | `--body` | **상세 내용 (권장!)** | `--body="배경, 근거, 결정사항 "` |
65
+ **Options:**
66
+ | Option | Description | Example |
67
+ |--------|-------------|---------|
68
+ | `category` | Memory classification | decision, task, project, schedule, context, preference, general |
69
+ | `--topic` | Topic group | `--topic=crewx-strategy` |
70
+ | `--tags` | Tags (comma-separated) | `--tags=gemini,pricing` |
71
+ | `--body` | **Detailed content (recommended!)** | `--body="background, rationale, decisions, etc."` |
70
72
 
71
- **⚠️ 중요: `--body` 옵션을 반드시 사용하세요!**
72
- - `--body` 없으면 플레이스홀더만 저장됨
73
- - 나중에 맥락 파악이 어려워짐
74
- - 최소 1-2문장 이상 상세 내용 권장
73
+ **WARNING: Important: Always use the `--body` option!**
74
+ - Without `--body`, only a placeholder is saved
75
+ - Makes it difficult to understand context later
76
+ - At least 1-2 sentences of detailed content is recommended
75
77
 
76
- **예시:**
78
+ **Examples:**
77
79
  ```bash
78
- # 나쁜 - 상세 없음
79
- npx memory save cto "Gemini 3.0 Flash 모먼트" decision --topic=crewx-strategy
80
+ # [BAD] Bad example - no details
81
+ npx memory save cto "Gemini 3.0 Flash moment" decision --topic=crewx-strategy
80
82
 
81
- # 좋은 - 상세 포함
82
- npx memory save cto "Gemini 3.0 Flash 모먼트 - 전략적 분기점" decision --topic=crewx-strategy --tags=gemini,pricing --body="SWE-bench 78%로 Claude 3.5 Sonnet(49%) 압도. 가격은 1/6. CrewX 전략 검증됨 - 오케스트레이션이 핵심 해자."
83
+ # [GOOD] Good example - details included
84
+ npx memory save cto "Gemini 3.0 Flash moment - strategic turning point" decision --topic=crewx-strategy --tags=gemini,pricing --body="SWE-bench 78% dominates Claude 3.5 Sonnet (49%). Price is 1/6. CrewX strategy validated -- orchestration is the key moat."
83
85
  ```
84
86
 
85
- ### 인덱스 조회
87
+ ### Index Query
86
88
 
87
89
  ```bash
88
- npx memory index <agent_id> # 중기기억 (토픽 요약만)
89
- npx memory index <agent_id> --recent # 최근 엔트리 목록
90
- npx memory index <agent_id> --full # 전체 보기
90
+ npx memory index <agent_id> # Medium-term memory (topic summaries only)
91
+ npx memory index <agent_id> --recent # Recent entry list
92
+ npx memory index <agent_id> --full # Full view
91
93
  ```
92
94
 
93
- **드릴다운 패턴:** `index` 필요한 토픽만 `topic` 필요한 엔트리만 `get`
95
+ **Drill-down pattern:** `index` -> drill into needed topic with `topic` -> drill into needed entry with `get`
94
96
 
95
- ### 토픽 드릴다운
97
+ ### Topic Drill-down
96
98
 
97
99
  ```bash
98
100
  npx memory topic <agent_id> <topic_name>
99
101
  ```
100
102
 
101
- ### 최근 기억
103
+ ### Recent Memories
102
104
 
103
105
  ```bash
104
106
  npx memory recent <agent_id> [days=30]
105
107
  ```
106
108
 
107
- ### 키워드 검색 (빠름)
109
+ ### Keyword Search (Fast)
108
110
 
109
111
  ```bash
110
112
  npx memory find <agent_id> "<keyword>"
111
113
  ```
112
114
 
113
- grep 기반 문자열 매칭. 빠르고 무료.
115
+ Grep-based string matching. Fast and free.
114
116
 
115
- ### 시맨틱 검색 (AI)
117
+ ### Semantic Search (AI)
116
118
 
117
119
  ```bash
118
- npx memory search <agent_id> "<질문>"
120
+ npx memory search <agent_id> "<query>"
119
121
  ```
120
122
 
121
- **Gemini 2.0 Flash** 기반 시맨틱 검색. 유사어/맥락 이해.
123
+ Semantic search powered by **Gemini 2.0 Flash**. Understands synonyms and context.
122
124
 
123
- - 스킬 내부 `@memory_searcher` 에이전트 사용 (crewx.yaml)
124
- - 비용: ~$0.015/1M tokens (거의 무료)
125
+ - Uses internal `@memory_searcher` agent (crewx.yaml)
126
+ - Cost: ~$0.015/1M tokens (virtually free)
125
127
 
126
- **예시:**
128
+ **Examples:**
127
129
  ```bash
128
- # 키워드 검색 (빠름)
129
- npx memory find crewx_dev_lead "에이전트"
130
+ # Keyword search (fast)
131
+ npx memory find crewx_dev_lead "agent"
130
132
 
131
- # 시맨틱 검색 (AI)
132
- npx memory search crewx_dev_lead "작업 배정할 주의할 "
133
+ # Semantic search (AI)
134
+ npx memory search crewx_dev_lead "things to watch out for when assigning tasks"
133
135
  ```
134
136
 
135
- ### 상세 조회 (드릴다운)
137
+ ### Detail View (Drill-down)
136
138
 
137
139
  ```bash
138
140
  npx memory get <agent_id> <memory_id>
139
141
  ```
140
142
 
141
- ### 기억 수정 (update)
143
+ ### Update Memory
142
144
 
143
145
  ```bash
144
- npx memory update <agent_id> <memory_id> [옵션]
146
+ npx memory update <agent_id> <memory_id> [options]
145
147
  ```
146
148
 
147
- **옵션:**
148
- | 옵션 | 설명 |
149
- |------|------|
150
- | `--summary` | 요약 수정 |
151
- | `--body` | 상세 내용 수정 |
152
- | `--topic` | 토픽 변경 |
153
- | `--category` | 카테고리 변경 |
154
- | `--tags` | 태그 변경 (쉼표 구분) |
149
+ **Options:**
150
+ | Option | Description |
151
+ |--------|-------------|
152
+ | `--summary` | Update summary |
153
+ | `--body` | Update detailed content |
154
+ | `--topic` | Change topic |
155
+ | `--category` | Change category |
156
+ | `--tags` | Change tags (comma-separated) |
155
157
 
156
- **예시:**
158
+ **Examples:**
157
159
  ```bash
158
- # 요약과 상세 내용 수정
159
- npx memory update cto VkY9X6 --summary="수정된 요약" --body="수정된 상세 내용"
160
+ # Update summary and detailed content
161
+ npx memory update cto VkY9X6 --summary="Updated summary" --body="Updated detailed content"
160
162
 
161
- # 토픽만 변경
163
+ # Change topic only
162
164
  npx memory update cto VkY9X6 --topic=new-topic
163
165
  ```
164
166
 
165
- ### 기억 삭제 (delete)
167
+ ### Delete Memory
166
168
 
167
169
  ```bash
168
170
  npx memory delete <agent_id> <memory_id> [--force]
169
171
  ```
170
172
 
171
- - `--force` 없으면 확인 메시지만 출력
172
- - `--force` 있으면 실제 삭제
173
+ - Without `--force`, only a confirmation message is displayed
174
+ - With `--force`, actually deletes the memory
173
175
 
174
- **예시:**
176
+ **Examples:**
175
177
  ```bash
176
- # 삭제 확인
178
+ # Deletion confirmation
177
179
  npx memory delete cto VkY9X6
178
180
 
179
- # 실제 삭제
181
+ # Actual deletion
180
182
  npx memory delete cto VkY9X6 --force
181
183
  ```
182
184
 
183
- ### 기억 병합 (merge)
185
+ ### Merge Memories
184
186
 
185
187
  ```bash
186
- npx memory merge <agent_id> <memory_id1> <memory_id2> [--summary="병합 요약"]
188
+ npx memory merge <agent_id> <memory_id1> <memory_id2> [--summary="merge summary"]
187
189
  ```
188
190
 
189
- - 기억을 하나로 병합
190
- - 원본 기억은 삭제됨
191
- - 태그는 합쳐짐 (중복 제거)
192
- - 병합된 파일에 `merged_from` 메타데이터 추가
191
+ - Merges two memories into one
192
+ - Both original memories are deleted
193
+ - Tags are combined (duplicates removed)
194
+ - `merged_from` metadata is added to the merged file
193
195
 
194
- **예시:**
196
+ **Examples:**
195
197
  ```bash
196
- # 기억 병합
198
+ # Merge two memories
197
199
  npx memory merge cto abc123 def456
198
200
 
199
- # 커스텀 요약으로 병합
200
- npx memory merge cto abc123 def456 --summary="VLM 파인튜닝 종합 정리"
201
+ # Merge with custom summary
202
+ npx memory merge cto abc123 def456 --summary="VLM fine-tuning comprehensive summary"
201
203
  ```
202
204
 
203
- ### 요약 생성 (summarize)
205
+ ### Generate Summary (summarize)
204
206
 
205
207
  ```bash
206
208
  npx memory summarize <agent_id> [--force]
207
209
  ```
208
210
 
209
- MemGAS 증분 요약 방식을 적용한 기억 요약 기능입니다.
211
+ Memory summarization using the MemGAS incremental summarization approach.
210
212
 
211
- **구조:**
212
- - `summary.md` 1개에 토픽별 요약 + entries/ 상대경로 링크
213
- - `save`/`delete` 실행 시 자동으로 summary.md 갱신
214
- - `summarize`는 수동 트리거용 (자동 갱신 실패 또는 `--force`로 전체 재생성)
213
+ **Structure:**
214
+ - A single `summary.md` containing topic-based summaries + relative path links to entries/
215
+ - Automatically updates summary.md on `save`/`delete` execution
216
+ - `summarize` is for manual triggering (when auto-update fails or with `--force` for full regeneration)
215
217
 
216
- **증분 추적:**
217
- - 프론트매터에 `last_entry_id` 저장
218
- - 다음 실행 해당 ID 이후 엔트리만 추출하여 요약에 반영
219
- - `@memory_summarizer` (Haiku) 에이전트가 요약 생성
220
- - AI 호출 실패 bullet-point 폴백
218
+ **Incremental tracking:**
219
+ - Stores `last_entry_id` in frontmatter
220
+ - On next run, extracts only entries after that ID and reflects them in the summary
221
+ - `@memory_summarizer` (Haiku) agent generates the summary
222
+ - Falls back to bullet-point format if AI call fails
221
223
 
222
- **옵션:**
223
- | 옵션 | 설명 |
224
- |------|------|
225
- | `--force` | 전체 재생성 (증분 무시) |
224
+ **Options:**
225
+ | Option | Description |
226
+ |--------|-------------|
227
+ | `--force` | Full regeneration (ignore incremental) |
226
228
 
227
- **예시:**
229
+ **Examples:**
228
230
  ```bash
229
- # 증분 요약 ( 엔트리만 반영)
231
+ # Incremental summary (reflects new entries only)
230
232
  npx memory summarize ui_devlead
231
233
 
232
- # 강제 전체 재생성
234
+ # Force full regeneration
233
235
  npx memory summarize ui_devlead --force
234
236
  ```
235
237
 
236
- ### 요약 생성 (summarize-dirty)
238
+ ### Generate Summary (summarize-dirty)
237
239
 
238
- `save`/`delete`는 동기 summarize 대신 **dirty flag**만 생성하며, cron 연동해 dirty가 있는 에이전트만 비동기로 summary를 갱신합니다.
239
- cron이 1분마다 체크하여 실행합니다.
240
+ `save`/`delete` creates only a **dirty flag** instead of synchronous summarize, and works with cron to asynchronously update summaries only for agents with dirty flags.
241
+ Cron checks and executes every 1 minute.
240
242
 
241
243
  ```bash
242
244
  npx memory summarize-dirty
243
245
  ```
244
246
 
245
- **cron 등록 예시:**
247
+ **Cron registration example:**
246
248
  ```bash
247
249
  npx cron add "*/1 * * * *" "npx memory summarize-dirty" --mode command --name "memory-debounce"
248
250
  ```
249
251
 
250
- **summary.md 포맷:**
252
+ **summary.md format:**
251
253
  ```markdown
252
254
  ---
253
255
  last_entry_id: QOSIOs
@@ -256,300 +258,362 @@ entry_count: 48
256
258
  summarizer: haiku
257
259
  ---
258
260
 
259
- ## mcp-http (4)
260
- MCP HTTP 엔드포인트 구현 완료...
261
- [entries/HYpwPP.md](entries/HYpwPP.md)
262
- [entries/ImH-56.md](entries/ImH-56.md)
261
+ ## mcp-http (4 entries)
262
+ MCP HTTP endpoint implementation completed...
263
+ -> [entries/HYpwPP.md](entries/HYpwPP.md)
264
+ -> [entries/ImH-56.md](entries/ImH-56.md)
263
265
 
264
- ## cli-service (3)
265
- CLI 쉘환경 감지 성능 개선...
266
- [entries/a3cOL8.md](entries/a3cOL8.md)
266
+ ## cli-service (3 entries)
267
+ CLI shell environment detection performance improvement...
268
+ -> [entries/a3cOL8.md](entries/a3cOL8.md)
267
269
  ```
268
270
 
269
- ### 파일명 마이그레이션 (migrate)
271
+ ### Filename Migration (migrate)
270
272
 
271
273
  ```bash
272
274
  npx memory migrate <agent_id>
273
275
  ```
274
276
 
275
- 기존 한글 slug 파일명(`2026-02-16-한글slug.md`) ID 기반(`QOSIOs.md`)으로 일괄 변환합니다.
277
+ Batch converts existing slug filenames (`2026-02-16-slug-name.md`) to ID-based filenames (`QOSIOs.md`).
276
278
 
277
- - .md 파일의 프론트매터에서 `id` 읽고 `{id}.md`로 리네이밍
278
- - 완료 summary.md 자동 재생성 + 그래프 갱신
279
- - 이미 ID 파일명인 파일은 스킵
279
+ - Reads `id` from each .md file's frontmatter -> renames to `{id}.md`
280
+ - Automatically regenerates summary.md + updates graph after completion
281
+ - Skips files that already have ID-based filenames
280
282
 
281
- **예시:**
283
+ **Example:**
282
284
  ```bash
283
285
  npx memory migrate ui_devlead
284
286
  ```
285
287
 
286
- ## 프론트매터 스키마
288
+ ## Frontmatter Schema
287
289
 
288
290
  ```yaml
289
291
  ---
290
- id: yLC8Iv # nanoid 6자리
292
+ id: yLC8Iv # 6-character nanoid
291
293
  date: 2025-12-23
292
294
  category: decision
293
295
  tags: ["strategy", "gemini"]
294
296
  topic: crewx-strategy
295
- summary: " 줄 요약"
297
+ summary: "One-line summary"
296
298
  ---
297
299
  ```
298
300
 
299
- ## 에이전트 프롬프트 가이드
301
+ ## Agent Prompt Guide
300
302
 
301
303
  ```markdown
302
304
  <memory-v2-guide agent_id="{{agent_id}}">
303
- # Memory V2 사용 가이드
305
+ # Memory V2 Usage Guide
304
306
 
305
- ## 대화 시작 (필수!)
307
+ ## At Conversation Start (Required!)
306
308
  ```bash
307
- # 중기기억 로드 (토픽 요약 + 드릴다운 안내)
309
+ # Load medium-term memory (topic summaries + drill-down guide)
308
310
  npx memory index {{agent_id}}
309
311
 
310
- # 필요시 드릴다운
311
- npx memory index {{agent_id}} --recent # 최근 목록
312
- npx memory topic {{agent_id}} <topic> # 토픽 상세
313
- npx memory get {{agent_id}} <id> # 개별 기억
312
+ # Drill down as needed
313
+ npx memory index {{agent_id}} --recent # Recent list
314
+ npx memory topic {{agent_id}} <topic> # Topic details
315
+ npx memory get {{agent_id}} <id> # Individual memory
314
316
  ```
315
317
 
316
- ## 기억 저장 트리거
317
- - "기억해둬", "저장해", "메모해" 요청 시
318
- - 중요한 결정사항 발생
319
- - CEO 지침 수령
318
+ ## Memory Save Triggers
319
+ - When asked to "remember this", "save this", "note this"
320
+ - When important decisions are made
321
+ - When receiving executive directives
320
322
 
321
- ## 토픽 선택 가이드
323
+ ## Topic Selection Guide (Important)
322
324
 
323
- **저장 반드시 적절한 토픽을 지정하세요!**
325
+ **Always specify an appropriate topic when saving!**
324
326
 
325
- 1. **기존 토픽 확인**: `index` 명령으로 기존 토픽 목록 확인
326
- 2. **기존 토픽 선택**: 관련 토픽이 있으면 토픽 사용
327
- 3. **새 토픽 생성**: 없으면 토픽명 생성 (kebab-case, 예: `new-feature`)
327
+ 1. **Check existing topics**: Use `index` command to see existing topic list
328
+ 2. **Select existing topic**: Use that topic if a related one exists
329
+ 3. **Create new topic**: Create a new topic name if none exists (kebab-case, e.g., `new-feature`)
328
330
 
329
- **토픽 네이밍 규칙:**
330
- - kebab-case 사용 (예: `vlm-finetuning`, `crewx-strategy`)
331
- - 프로젝트/기능/주제 단위로 묶기
332
- - 너무 세분화하지 (5개 미만이면 병합 고려)
331
+ **Topic naming rules:**
332
+ - Use kebab-case (e.g., `vlm-finetuning`, `crewx-strategy`)
333
+ - Group by project/feature/subject
334
+ - Don't over-segment (consider merging if fewer than 5 entries)
333
335
 
334
- **예시:**
336
+ **Examples:**
335
337
  ```bash
336
- # 기존 토픽에 추가
337
- npx memory save {{agent_id}} "VLM 학습률 조정" decision --topic=vlm-finetuning
338
+ # Add to existing topic
339
+ npx memory save {{agent_id}} "VLM learning rate adjustment" decision --topic=vlm-finetuning
338
340
 
339
- # 토픽 생성
340
- npx memory save {{agent_id}} "신규 기능 기획" decision --topic=new-feature-x
341
+ # Create new topic
342
+ npx memory save {{agent_id}} "New feature planning" decision --topic=new-feature-x
341
343
  ```
342
344
 
343
- ## 저장 명령 (--body 필수!)
345
+ ## Save Command (--body required!)
344
346
  ```bash
345
- # ⚠️ 항상 --body 포함해서 저장!
346
- npx memory save {{agent_id}} "<요약>" <category> --topic=<topic> --body="<상세 내용>"
347
+ # WARNING: Always save with --body included!
348
+ npx memory save {{agent_id}} "<summary>" <category> --topic=<topic> --body="<detailed content>"
347
349
  ```
348
350
 
349
- **--body 작성 가이드:**
350
- - 결정을 했는지 (배경/근거)
351
- - 핵심 수치나 데이터
352
- - 관련 파일/문서 경로
353
- - 후속 액션이 있으면 포함
351
+ **--body writing guide:**
352
+ - Why this decision was made (background/rationale)
353
+ - Key metrics or data
354
+ - Related file/document paths
355
+ - Include follow-up actions if any
354
356
 
355
- ## 카테고리 선택
356
- - **decision**: 의사결정, CEO 지침
357
- - **task**: 일, 작업 계획
358
- - **project**: 프로젝트 정보
359
- - **schedule**: 일정, 미팅
360
- - **context**: 배경 정보, 상황
361
- - **preference**: 선호도, 규칙
362
- - **general**: 기타
357
+ ## Category Selection
358
+ - **decision**: Decisions, executive directives
359
+ - **task**: To-dos, work plans
360
+ - **project**: Project information
361
+ - **schedule**: Schedules, meetings
362
+ - **context**: Background information, context
363
+ - **preference**: Preferences, rules
364
+ - **general**: Other
363
365
 
364
366
  </memory-v2-guide>
365
367
  ```
366
368
 
367
- ## 기존 memory 스킬과 차이점
369
+ ## Differences from Legacy Memory Skill
368
370
 
369
- | 항목 | memory (v1) | memory-v2 |
371
+ | Item | memory (v1) | memory-v2 |
370
372
  |------|-------------|-----------|
371
- | 저장 형식 | JSON 배열 | 마크다운 파일 |
372
- | 메타데이터 | content 혼합 | 프론트매터 분리 |
373
- | 조회 | 전체 로드 | 인덱스 드릴다운 |
374
- | 토픽 지원 | 없음 | 있음 |
375
- | 가독성 | 낮음 | 높음 |
373
+ | Storage format | JSON array | Markdown files |
374
+ | Metadata | Mixed within content | Separated in frontmatter |
375
+ | Query | Full load | Index -> drill-down |
376
+ | Topic support | None | Supported |
377
+ | Readability | Low | High |
376
378
 
377
- ## 기억 연결 그래프
379
+ ## Memory Connection Graph
378
380
 
379
- 기억 연관성을 그래프로 관리합니다.
381
+ Manages associations between memories as a graph.
380
382
 
381
- ### 그래프 빌드
383
+ ### Build Graph
382
384
 
383
385
  ```bash
384
386
  npx memory mindmap build <agent_id>
385
387
  ```
386
388
 
387
- 규칙 기반으로 연결 생성:
388
- - **같은 topic**: weight 0.7 (⚠️ `general` 제외)
389
- - **공통 tags**: weight 0.4~0.8 (1개=0.4, 2개=0.6, 3개+=0.8)
390
- - **같은 날짜**: weight 0.3 (기본 OFF)
391
- - **같은 category**: weight 0.2 (⚠️ `general` 제외)
389
+ Rule-based connection generation:
390
+ - **Same topic**: weight 0.7 (WARNING: excludes `general`)
391
+ - **Shared tags**: weight 0.4~0.8 (1 tag=0.4, 2 tags=0.6, 3+ tags=0.8)
392
+ - **Same date**: weight 0.3 (default OFF)
393
+ - **Same category**: weight 0.2 (WARNING: excludes `general`)
392
394
 
393
- > **edgeThreshold = 0.3** weight 0.3 이상이어야 연결됨
395
+ > **edgeThreshold = 0.3** -> Total weight must be 0.3 or above to create a connection
394
396
 
395
- ### 연결성 높이는 저장
397
+ ### (Important) Tips for Increasing Connectivity
396
398
 
397
- **핵심: `general`을 피하고 구체적으로!**
399
+ **Key: Avoid `general` and be specific!**
398
400
 
399
- | 방법 | Weight | 효과 |
400
- |------|--------|------|
401
- | topic 지정 | +0.7 | 같은 토픽 기억들 자동 연결 |
402
- | 태그 2개+ | +0.6 | 토픽 달라도 태그로 연결 |
403
- | 태그 3개+ | +0.8 | 최대 연결 강도 |
404
- | category | +0.2 | decision/task 등 구체적으로 |
401
+ | Method | Weight | Effect |
402
+ |--------|--------|--------|
403
+ | Specify topic | +0.7 | Memories with same topic auto-connect |
404
+ | 2+ tags | +0.6 | Connect via tags even across different topics |
405
+ | 3+ tags | +0.8 | Maximum connection strength |
406
+ | category | +0.2 | Use specific ones like decision/task |
405
407
 
406
- **❌ 나쁜 (연결 안 됨)**
408
+ **[BAD] Bad example (no connections)**
407
409
  ```bash
408
- # topic=general, category=general 연결 0
409
- npx memory save agent "Discord 설정 제거" general
410
+ # topic=general, category=general -> 0 connections
411
+ npx memory save agent "Discord settings removal" general
410
412
  ```
411
413
 
412
- **✅ 좋은 (강한 연결)**
414
+ **[GOOD] Good example (strong connections)**
413
415
  ```bash
414
- # topic + category + tags 최대 연결
415
- npx memory save agent "Discord 설정 제거 결정" decision \
416
+ # topic + category + tags -> maximum connections
417
+ npx memory save agent "Discord settings removal decision" decision \
416
418
  --topic=discord \
417
419
  --tags=settings,cpo-decision,oauth \
418
- --body="CPO 회의 결과..."
420
+ --body="CPO meeting result..."
419
421
  ```
420
422
 
421
- **태그 활용 전략:**
422
- - 관련 기능/모듈명: `discord`, `oauth`, `settings`
423
- - 회의/결정자: `cpo-decision`, `dev-meeting`
424
- - 상태: `completed`, `blocked`, `wip`
423
+ **Tag usage strategy:**
424
+ - Related feature/module names: `discord`, `oauth`, `settings`
425
+ - Meeting/decision-maker: `cpo-decision`, `dev-meeting`
426
+ - Status: `completed`, `blocked`, `wip`
425
427
 
426
- ### 그래프 요약 보기
428
+ ### View Graph Summary
427
429
 
428
430
  ```bash
429
431
  npx memory mindmap show <agent_id>
430
432
  ```
431
433
 
432
- 토픽별 클러스터, 허브 노드(연결 많은 기억) 등 표시.
433
- 기본 출력은 **Mermaid 포맷**이며, VS Code 마크다운 프리뷰에서 그래프로 시각화됩니다.
434
- `--format=mermaid`가 기본값이고, `--format=text`로 텍스트 출력도 가능합니다.
434
+ Displays topic-based clusters, hub nodes (memories with many connections), etc.
435
+ Default output is in **Mermaid format**, which can be visualized as a graph in VS Code markdown preview.
436
+ `--format=mermaid` is the default, and `--format=text` is also available for text output.
435
437
 
436
- **기간 필터 옵션:**
438
+ **Period filter options:**
437
439
  ```bash
438
440
  npx memory mindmap show <agent_id> --period=stm # 24h
439
441
  npx memory mindmap show <agent_id> --period=mtm # 7d
440
442
  npx memory mindmap show <agent_id> --period=ltm # 30d
441
443
  ```
442
444
 
443
- ### PNG 이미지 내보내기
445
+ ### Export as PNG Image
444
446
 
445
- Mermaid 출력을 PNG 이미지로 변환하여 시각적으로 확인할 수 있습니다.
447
+ Convert Mermaid output to PNG images for visual inspection.
446
448
 
447
449
  ```bash
448
- # 1. mermaid 코드를 파일로 저장
450
+ # 1. Save mermaid code to file
449
451
  npx memory mindmap show <agent_id> | sed 's/^```mermaid$//' | sed 's/^```$//' > /tmp/graph.mmd
450
452
 
451
- # 2. PNG 변환 (npx로 설치 없이 실행)
453
+ # 2. Convert to PNG (runs without installation via npx)
452
454
  npx @mermaid-js/mermaid-cli -i /tmp/graph.mmd -o graph.png -w 2400 -H 1600 -b white
453
455
 
454
- # 기간 필터 + PNG (예: 최근 24시간만)
456
+ # Period filter + PNG (e.g., last 24 hours only)
455
457
  npx memory mindmap show <agent_id> --period=stm | sed 's/^```mermaid$//' | sed 's/^```$//' | grep -v '^(' > /tmp/graph-stm.mmd
456
458
  npx @mermaid-js/mermaid-cli -i /tmp/graph-stm.mmd -o graph-stm.png -w 1600 -H 900 -b white
457
459
  ```
458
460
 
459
- > **팁**: 전체 그래프(58+ 노드) 복잡하므로 `--period=stm`(24h)이나 `--period=mtm`(7d)으로 축소해서 보는 걸 권장합니다.
461
+ > **Tip**: Full graphs (58+ nodes) can be complex, so it's recommended to narrow the view using `--period=stm` (24h) or `--period=mtm` (7d).
460
462
 
461
- ### 연결된 기억 조회
463
+ ### Query Related Memories
462
464
 
463
465
  ```bash
464
466
  npx memory mindmap related <agent_id> <memory_id>
465
467
  ```
466
468
 
467
- 특정 기억과 연결된 기억들을 weight 순으로 표시.
469
+ Displays memories connected to a specific memory, sorted by weight.
468
470
 
469
- ### 수동 연결 관리
471
+ ### Manual Connection Management
470
472
 
471
473
  ```bash
472
- # 연결 추가
474
+ # Add connection
473
475
  npx memory mindmap add <agent_id> <from_id> <to_id> [type]
474
476
 
475
- # 연결 제거
477
+ # Remove connection
476
478
  npx memory mindmap remove <agent_id> <from_id> <to_id>
477
479
  ```
478
480
 
479
- ### 시각화 (HTML) - 공용 그래프
481
+ ### Visualization (HTML) - Shared Graph
480
482
 
481
483
  ```bash
482
484
  npx memory mindmap html
483
485
  ```
484
486
 
485
- **모든 에이전트의 연결 그래프를 곳에 통합한 공용 시각화**를 생성합니다.
487
+ Generates a **shared visualization combining connection graphs of all agents** in one place.
486
488
 
487
- **특징:**
488
- - 모든 에이전트의 graph.json 데이터를 하나의 HTML에 임베드
489
- - 드롭다운으로 에이전트 선택 해당 그래프로 실시간 전환
490
- - D3.js force-directed 그래프
491
- - 토픽별 색상 구분
492
- - & 드래그 지원
493
- - 호버 상세 정보 툴팁
494
- - 노드 크기 = 연결
495
- - 서버 없이 file:// 프로토콜로 바로 열기 가능
489
+ **Features:**
490
+ - Embeds graph.json data from all agents into a single HTML
491
+ - Dropdown to select agent -> real-time graph switching
492
+ - D3.js force-directed graph
493
+ - Color-coded by topic
494
+ - Zoom & drag support
495
+ - Tooltip with details on hover
496
+ - Node size = number of connections
497
+ - Can be opened directly via file:// protocol without a server
496
498
 
497
- **사용법:**
499
+ **Usage:**
498
500
  ```bash
499
- # 1. 공용 HTML 생성 (agent_id 필요 없음)
501
+ # 1. Generate shared HTML (no agent_id needed)
500
502
  npx memory mindmap html
501
503
 
502
- # 2. 브라우저에서 열기
504
+ # 2. Open in browser
503
505
  npx memory mindmap open
504
506
  ```
505
507
 
506
- **예시:**
508
+ **Example:**
507
509
  ```bash
508
- # 전체 에이전트 그래프 통합 시각화
510
+ # Generate integrated visualization of all agent graphs
509
511
  npx memory mindmap html
510
512
  ```
511
513
 
512
- ### 브라우저에서 열기
514
+ ### Open in Browser
513
515
 
514
516
  ```bash
515
517
  npx memory mindmap open [agent_id]
516
518
  ```
517
519
 
518
- 특정 에이전트의 그래프를 브라우저에서 바로 엽니다.
520
+ Opens a specific agent's graph directly in the browser.
519
521
 
520
- **예시:**
522
+ **Examples:**
521
523
  ```bash
522
- # CTO 그래프 열기
524
+ # Open CTO graph
523
525
  npx memory mindmap open cto
524
526
 
525
- # 전체 (기본 에이전트) 열기
527
+ # Open default (all agents)
526
528
  npx memory mindmap open
527
529
  ```
528
530
 
529
- ### 저장 위치
531
+ ### Storage Location
530
532
 
531
533
  ```
532
- memory/{agent_id}/graph.json # 그래프 데이터
533
- memory/mindmap.html # 공용 시각화 HTML (npx memory mindmap html로 생성)
534
+ memory/{agent_id}/graph.json # Graph data
535
+ memory/mindmap.html # Shared visualization HTML (generated by npx memory mindmap html)
534
536
  ```
535
537
 
536
538
  ---
537
539
 
538
- ## 기억 계층 구조
540
+ ## Memory Hierarchy Structure
539
541
 
540
- `index` 명령은 인지심리학(Ebbinghaus, Atkinson-Shiffrin) AI 에이전트 메모리 연구(MemoryOS, A-Mem)에 기반한 3계층 출력을 제공합니다.
542
+ The `index` command provides 3-tier output based on cognitive psychology (Ebbinghaus, Atkinson-Shiffrin) and AI agent memory research (MemoryOS, A-Mem).
541
543
 
542
- | 계층 | 시간 | 출력 |
543
- |------|------|------|
544
- | 단기 (STM) | 24h | `## 🔥 최근 작업` |
545
- | 중기 (MTM) | 7 | 토픽별 요약 (summary.md) |
546
- | 장기 (LTM) | 30 | `--recent` 또는 `--full` |
544
+ | Tier | Timeframe | Output |
545
+ |------|-----------|--------|
546
+ | Short-term (STM) | 24h | `## ** Recent Work` |
547
+ | Medium-term (MTM) | 7 days | Topic summaries (summary.md) |
548
+ | Long-term (LTM) | 30 days | `--recent` or `--full` |
547
549
 
548
- 상세 설계 근거: [README.md](./README.md#설계-근거-계층적-기억-아키텍처)
550
+ Design rationale details: [README.md](./README.md#design-rationale-hierarchical-memory-architecture)
549
551
 
550
552
  ---
551
553
 
552
- ## v1 → v2 마이그레이션
554
+ ## Configuration (crewx.yaml)
555
+
556
+ Memory engine settings can be customized via the `settings.memory` block in `crewx.yaml`. All fields are optional — defaults are used when not specified.
557
+
558
+ > **Settings are applied immediately** — no restart required. The config file is read on every command invocation.
559
+
560
+ ### Fields
561
+
562
+ ```yaml
563
+ settings:
564
+ memory:
565
+ summarizer_agent: "@memory_summarizer" # crewx.yaml에 정의된 에이전트 ID. summary.md 생성에 사용
566
+ searcher_agent: "@memory_searcher" # crewx.yaml에 정의된 에이전트 ID. semantic search에 사용
567
+ summarizer_timeout: 60000 # summarizer 에이전트 호출 타임아웃 (ms). 초과 시 bullet-point fallback
568
+ searcher_timeout: 300000 # searcher 에이전트 호출 타임아웃 (ms). 초과 시 에러 반환
569
+ summary_days: 7 # index 명령의 중기기억(MTM) 요약 범위 (일 단위)
570
+ recent_days: 30 # index --recent / recent 명령의 조회 범위 (일 단위)
571
+ short_term_hours: 24 # index 명령의 단기기억(STM, "🔥 Recent Work") 범위 (시간 단위)
572
+ ```
573
+
574
+ ### Resolve priority
575
+
576
+ | Field | Priority |
577
+ |-------|----------|
578
+ | `summary_days`, `recent_days` | `config parameter` > `crewx.yaml` > `environment variable` (`MEMORY_SUMMARY_DAYS`, `MEMORY_RECENT_DAYS`) > `built-in default` |
579
+ | `summarizer_agent`, `searcher_agent`, `summarizer_timeout`, `searcher_timeout`, `short_term_hours` | `config parameter` > `crewx.yaml` > `built-in default` |
580
+
581
+ > **Note:** Environment variables are only supported for `summary_days` (`MEMORY_SUMMARY_DAYS`) and `recent_days` (`MEMORY_RECENT_DAYS`). Other fields do not have corresponding env vars.
582
+
583
+ ### Config file location
584
+
585
+ By default, `crewx.yaml` is read from the project root. To use a different path, set the `CREWX_CONFIG` environment variable:
586
+
587
+ ```bash
588
+ CREWX_CONFIG=/path/to/custom-crewx.yaml npx memory index my_agent
589
+ ```
590
+
591
+ ### Error handling
592
+
593
+ - **YAML parse failure** (file missing, syntax error): All fields silently fall back to built-in defaults. No error is raised — check your YAML syntax if settings seem ignored.
594
+ - **Invalid numeric value** (e.g., `summary_days: "abc"`): 잘못된 숫자 값(예: "abc")은 NaN으로 설정되어 예기치 않은 동작을 유발할 수 있습니다. 숫자 필드에는 반드시 유효한 정수만 입력하세요.
595
+
596
+ ### Customization example
597
+
598
+ Expand the summary window to 2 weeks and use a custom summarizer agent:
599
+
600
+ ```yaml
601
+ settings:
602
+ memory:
603
+ summary_days: 14 # 기본 7일 → 2주로 확장
604
+ summarizer_agent: "@my_custom_summarizer" # 커스텀 요약 에이전트 (crewx.yaml agents 섹션에 정의 필요)
605
+ summarizer_timeout: 120000 # 커스텀 에이전트에 맞춰 타임아웃 2분으로 증가
606
+ ```
607
+
608
+ Or override via environment variable (e.g., in CI/CD):
609
+
610
+ ```bash
611
+ MEMORY_SUMMARY_DAYS=14 npx memory summarize my_agent
612
+ ```
613
+
614
+ ---
615
+
616
+ ## v1 -> v2 Migration
553
617
 
554
618
  ```bash
555
619
  npx memory migrate <agent_id>