@crewx/memory 0.1.6 → 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,6 +1,6 @@
1
1
  ---
2
2
  name: crewx/memory
3
- description: 마크다운 + 프론트매터 기반 장기 기억 스킬. 드릴다운 구조로 확장성 있는 기억 관리.
3
+ description: Markdown + frontmatter-based long-term memory skill. Scalable memory management with drill-down structure.
4
4
  metadata:
5
5
  version: 0.10.0
6
6
  built-in: true
@@ -8,32 +8,32 @@ metadata:
8
8
 
9
9
  # Memory V2 Skill
10
10
 
11
- 마크다운 + 프론트매터 기반의 장기 기억 관리 스킬입니다.
11
+ A long-term memory management skill based on markdown + frontmatter.
12
12
 
13
- ## 설치
13
+ ## Installation
14
14
 
15
- `packages/built-in/memory`에 포함되어 있으며, `npx memory` 명령으로 사용합니다.
15
+ Included in `packages/built-in/memory`, used via the `npx memory` command.
16
16
 
17
- ## 특징
17
+ ## Features
18
18
 
19
- - **프론트매터**: 메타데이터 분리 (날짜, 카테고리, 태그, 토픽)
20
- - **드릴다운**: index.md entries/ 구조
21
- - **가독성**: 사람이 직접 읽고 편집 가능
22
- - **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
23
23
 
24
- ## 커맨드 Alias
24
+ ## Command Aliases
25
25
 
26
- 자주 쓰는 커맨드의 단축 별칭입니다. 기존 커맨드와 동일하게 동작합니다.
26
+ Shorthand aliases for frequently used commands. They work identically to the original commands.
27
27
 
28
- | Alias | 실제 커맨드 | 설명 |
29
- |-------|-----------|------|
30
- | `read` | `get` | 기억 상세 조회 |
31
- | `list` | `index` | 전체 인덱스 보기 |
32
- | `rm` | `delete` | 기억 삭제 |
33
- | `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 |
34
34
 
35
35
  ```bash
36
- # 아래 명령은 동일
36
+ # The following two commands are identical
37
37
  npx memory get agent_id ABC123
38
38
  npx memory read agent_id ABC123
39
39
 
@@ -41,215 +41,215 @@ npx memory index agent_id
41
41
  npx memory list agent_id
42
42
  ```
43
43
 
44
- ## 디렉토리 구조
44
+ ## Directory Structure
45
45
 
46
46
  ```
47
47
  memory/
48
- └── {agent_id}/
49
- ├── summary.md # 전체 요약 (토픽별 섹션 + entries/ 링크)
50
- ├── graph.json # 그래프 데이터
51
- └── entries/ # 개별 기억들
52
- └── {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)
53
53
  ```
54
54
 
55
- > **파일명 규칙**: `{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.
56
56
 
57
- ## 명령어
57
+ ## Commands
58
58
 
59
- ### 저장
59
+ ### Save
60
60
 
61
61
  ```bash
62
- 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"]
63
63
  ```
64
64
 
65
- **옵션:**
66
- | 옵션 | 설명 | 예시 |
67
- |------|------|------|
68
- | `category` | 기억 분류 | decision, task, project, schedule, context, preference, general |
69
- | `--topic` | 토픽 그룹 | `--topic=crewx-strategy` |
70
- | `--tags` | 태그 (쉼표 구분) | `--tags=gemini,pricing` |
71
- | `--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."` |
72
72
 
73
- **⚠️ 중요: `--body` 옵션을 반드시 사용하세요!**
74
- - `--body` 없으면 플레이스홀더만 저장됨
75
- - 나중에 맥락 파악이 어려워짐
76
- - 최소 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
77
77
 
78
- **예시:**
78
+ **Examples:**
79
79
  ```bash
80
- # 나쁜 - 상세 없음
81
- 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
82
82
 
83
- # 좋은 - 상세 포함
84
- 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."
85
85
  ```
86
86
 
87
- ### 인덱스 조회
87
+ ### Index Query
88
88
 
89
89
  ```bash
90
- npx memory index <agent_id> # 중기기억 (토픽 요약만)
91
- npx memory index <agent_id> --recent # 최근 엔트리 목록
92
- 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
93
93
  ```
94
94
 
95
- **드릴다운 패턴:** `index` 필요한 토픽만 `topic` 필요한 엔트리만 `get`
95
+ **Drill-down pattern:** `index` -> drill into needed topic with `topic` -> drill into needed entry with `get`
96
96
 
97
- ### 토픽 드릴다운
97
+ ### Topic Drill-down
98
98
 
99
99
  ```bash
100
100
  npx memory topic <agent_id> <topic_name>
101
101
  ```
102
102
 
103
- ### 최근 기억
103
+ ### Recent Memories
104
104
 
105
105
  ```bash
106
106
  npx memory recent <agent_id> [days=30]
107
107
  ```
108
108
 
109
- ### 키워드 검색 (빠름)
109
+ ### Keyword Search (Fast)
110
110
 
111
111
  ```bash
112
112
  npx memory find <agent_id> "<keyword>"
113
113
  ```
114
114
 
115
- grep 기반 문자열 매칭. 빠르고 무료.
115
+ Grep-based string matching. Fast and free.
116
116
 
117
- ### 시맨틱 검색 (AI)
117
+ ### Semantic Search (AI)
118
118
 
119
119
  ```bash
120
- npx memory search <agent_id> "<질문>"
120
+ npx memory search <agent_id> "<query>"
121
121
  ```
122
122
 
123
- **Gemini 2.0 Flash** 기반 시맨틱 검색. 유사어/맥락 이해.
123
+ Semantic search powered by **Gemini 2.0 Flash**. Understands synonyms and context.
124
124
 
125
- - 스킬 내부 `@memory_searcher` 에이전트 사용 (crewx.yaml)
126
- - 비용: ~$0.015/1M tokens (거의 무료)
125
+ - Uses internal `@memory_searcher` agent (crewx.yaml)
126
+ - Cost: ~$0.015/1M tokens (virtually free)
127
127
 
128
- **예시:**
128
+ **Examples:**
129
129
  ```bash
130
- # 키워드 검색 (빠름)
131
- npx memory find crewx_dev_lead "에이전트"
130
+ # Keyword search (fast)
131
+ npx memory find crewx_dev_lead "agent"
132
132
 
133
- # 시맨틱 검색 (AI)
134
- 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"
135
135
  ```
136
136
 
137
- ### 상세 조회 (드릴다운)
137
+ ### Detail View (Drill-down)
138
138
 
139
139
  ```bash
140
140
  npx memory get <agent_id> <memory_id>
141
141
  ```
142
142
 
143
- ### 기억 수정 (update)
143
+ ### Update Memory
144
144
 
145
145
  ```bash
146
- npx memory update <agent_id> <memory_id> [옵션]
146
+ npx memory update <agent_id> <memory_id> [options]
147
147
  ```
148
148
 
149
- **옵션:**
150
- | 옵션 | 설명 |
151
- |------|------|
152
- | `--summary` | 요약 수정 |
153
- | `--body` | 상세 내용 수정 |
154
- | `--topic` | 토픽 변경 |
155
- | `--category` | 카테고리 변경 |
156
- | `--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) |
157
157
 
158
- **예시:**
158
+ **Examples:**
159
159
  ```bash
160
- # 요약과 상세 내용 수정
161
- 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"
162
162
 
163
- # 토픽만 변경
163
+ # Change topic only
164
164
  npx memory update cto VkY9X6 --topic=new-topic
165
165
  ```
166
166
 
167
- ### 기억 삭제 (delete)
167
+ ### Delete Memory
168
168
 
169
169
  ```bash
170
170
  npx memory delete <agent_id> <memory_id> [--force]
171
171
  ```
172
172
 
173
- - `--force` 없으면 확인 메시지만 출력
174
- - `--force` 있으면 실제 삭제
173
+ - Without `--force`, only a confirmation message is displayed
174
+ - With `--force`, actually deletes the memory
175
175
 
176
- **예시:**
176
+ **Examples:**
177
177
  ```bash
178
- # 삭제 확인
178
+ # Deletion confirmation
179
179
  npx memory delete cto VkY9X6
180
180
 
181
- # 실제 삭제
181
+ # Actual deletion
182
182
  npx memory delete cto VkY9X6 --force
183
183
  ```
184
184
 
185
- ### 기억 병합 (merge)
185
+ ### Merge Memories
186
186
 
187
187
  ```bash
188
- npx memory merge <agent_id> <memory_id1> <memory_id2> [--summary="병합 요약"]
188
+ npx memory merge <agent_id> <memory_id1> <memory_id2> [--summary="merge summary"]
189
189
  ```
190
190
 
191
- - 기억을 하나로 병합
192
- - 원본 기억은 삭제됨
193
- - 태그는 합쳐짐 (중복 제거)
194
- - 병합된 파일에 `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
195
195
 
196
- **예시:**
196
+ **Examples:**
197
197
  ```bash
198
- # 기억 병합
198
+ # Merge two memories
199
199
  npx memory merge cto abc123 def456
200
200
 
201
- # 커스텀 요약으로 병합
202
- 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"
203
203
  ```
204
204
 
205
- ### 요약 생성 (summarize)
205
+ ### Generate Summary (summarize)
206
206
 
207
207
  ```bash
208
208
  npx memory summarize <agent_id> [--force]
209
209
  ```
210
210
 
211
- MemGAS 증분 요약 방식을 적용한 기억 요약 기능입니다.
211
+ Memory summarization using the MemGAS incremental summarization approach.
212
212
 
213
- **구조:**
214
- - `summary.md` 1개에 토픽별 요약 + entries/ 상대경로 링크
215
- - `save`/`delete` 실행 시 자동으로 summary.md 갱신
216
- - `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)
217
217
 
218
- **증분 추적:**
219
- - 프론트매터에 `last_entry_id` 저장
220
- - 다음 실행 해당 ID 이후 엔트리만 추출하여 요약에 반영
221
- - `@memory_summarizer` (Haiku) 에이전트가 요약 생성
222
- - 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
223
223
 
224
- **옵션:**
225
- | 옵션 | 설명 |
226
- |------|------|
227
- | `--force` | 전체 재생성 (증분 무시) |
224
+ **Options:**
225
+ | Option | Description |
226
+ |--------|-------------|
227
+ | `--force` | Full regeneration (ignore incremental) |
228
228
 
229
- **예시:**
229
+ **Examples:**
230
230
  ```bash
231
- # 증분 요약 ( 엔트리만 반영)
231
+ # Incremental summary (reflects new entries only)
232
232
  npx memory summarize ui_devlead
233
233
 
234
- # 강제 전체 재생성
234
+ # Force full regeneration
235
235
  npx memory summarize ui_devlead --force
236
236
  ```
237
237
 
238
- ### 요약 생성 (summarize-dirty)
238
+ ### Generate Summary (summarize-dirty)
239
239
 
240
- `save`/`delete`는 동기 summarize 대신 **dirty flag**만 생성하며, cron 연동해 dirty가 있는 에이전트만 비동기로 summary를 갱신합니다.
241
- 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.
242
242
 
243
243
  ```bash
244
244
  npx memory summarize-dirty
245
245
  ```
246
246
 
247
- **cron 등록 예시:**
247
+ **Cron registration example:**
248
248
  ```bash
249
249
  npx cron add "*/1 * * * *" "npx memory summarize-dirty" --mode command --name "memory-debounce"
250
250
  ```
251
251
 
252
- **summary.md 포맷:**
252
+ **summary.md format:**
253
253
  ```markdown
254
254
  ---
255
255
  last_entry_id: QOSIOs
@@ -258,300 +258,362 @@ entry_count: 48
258
258
  summarizer: haiku
259
259
  ---
260
260
 
261
- ## mcp-http (4)
262
- MCP HTTP 엔드포인트 구현 완료...
263
- [entries/HYpwPP.md](entries/HYpwPP.md)
264
- [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)
265
265
 
266
- ## cli-service (3)
267
- CLI 쉘환경 감지 성능 개선...
268
- [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)
269
269
  ```
270
270
 
271
- ### 파일명 마이그레이션 (migrate)
271
+ ### Filename Migration (migrate)
272
272
 
273
273
  ```bash
274
274
  npx memory migrate <agent_id>
275
275
  ```
276
276
 
277
- 기존 한글 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`).
278
278
 
279
- - .md 파일의 프론트매터에서 `id` 읽고 `{id}.md`로 리네이밍
280
- - 완료 summary.md 자동 재생성 + 그래프 갱신
281
- - 이미 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
282
282
 
283
- **예시:**
283
+ **Example:**
284
284
  ```bash
285
285
  npx memory migrate ui_devlead
286
286
  ```
287
287
 
288
- ## 프론트매터 스키마
288
+ ## Frontmatter Schema
289
289
 
290
290
  ```yaml
291
291
  ---
292
- id: yLC8Iv # nanoid 6자리
292
+ id: yLC8Iv # 6-character nanoid
293
293
  date: 2025-12-23
294
294
  category: decision
295
295
  tags: ["strategy", "gemini"]
296
296
  topic: crewx-strategy
297
- summary: " 줄 요약"
297
+ summary: "One-line summary"
298
298
  ---
299
299
  ```
300
300
 
301
- ## 에이전트 프롬프트 가이드
301
+ ## Agent Prompt Guide
302
302
 
303
303
  ```markdown
304
304
  <memory-v2-guide agent_id="{{agent_id}}">
305
- # Memory V2 사용 가이드
305
+ # Memory V2 Usage Guide
306
306
 
307
- ## 대화 시작 (필수!)
307
+ ## At Conversation Start (Required!)
308
308
  ```bash
309
- # 중기기억 로드 (토픽 요약 + 드릴다운 안내)
309
+ # Load medium-term memory (topic summaries + drill-down guide)
310
310
  npx memory index {{agent_id}}
311
311
 
312
- # 필요시 드릴다운
313
- npx memory index {{agent_id}} --recent # 최근 목록
314
- npx memory topic {{agent_id}} <topic> # 토픽 상세
315
- 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
316
316
  ```
317
317
 
318
- ## 기억 저장 트리거
319
- - "기억해둬", "저장해", "메모해" 요청 시
320
- - 중요한 결정사항 발생
321
- - 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
322
322
 
323
- ## 토픽 선택 가이드
323
+ ## Topic Selection Guide (Important)
324
324
 
325
- **저장 반드시 적절한 토픽을 지정하세요!**
325
+ **Always specify an appropriate topic when saving!**
326
326
 
327
- 1. **기존 토픽 확인**: `index` 명령으로 기존 토픽 목록 확인
328
- 2. **기존 토픽 선택**: 관련 토픽이 있으면 토픽 사용
329
- 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`)
330
330
 
331
- **토픽 네이밍 규칙:**
332
- - kebab-case 사용 (예: `vlm-finetuning`, `crewx-strategy`)
333
- - 프로젝트/기능/주제 단위로 묶기
334
- - 너무 세분화하지 (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)
335
335
 
336
- **예시:**
336
+ **Examples:**
337
337
  ```bash
338
- # 기존 토픽에 추가
339
- 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
340
340
 
341
- # 토픽 생성
342
- 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
343
343
  ```
344
344
 
345
- ## 저장 명령 (--body 필수!)
345
+ ## Save Command (--body required!)
346
346
  ```bash
347
- # ⚠️ 항상 --body 포함해서 저장!
348
- 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>"
349
349
  ```
350
350
 
351
- **--body 작성 가이드:**
352
- - 결정을 했는지 (배경/근거)
353
- - 핵심 수치나 데이터
354
- - 관련 파일/문서 경로
355
- - 후속 액션이 있으면 포함
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
356
356
 
357
- ## 카테고리 선택
358
- - **decision**: 의사결정, CEO 지침
359
- - **task**: 일, 작업 계획
360
- - **project**: 프로젝트 정보
361
- - **schedule**: 일정, 미팅
362
- - **context**: 배경 정보, 상황
363
- - **preference**: 선호도, 규칙
364
- - **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
365
365
 
366
366
  </memory-v2-guide>
367
367
  ```
368
368
 
369
- ## 기존 memory 스킬과 차이점
369
+ ## Differences from Legacy Memory Skill
370
370
 
371
- | 항목 | memory (v1) | memory-v2 |
371
+ | Item | memory (v1) | memory-v2 |
372
372
  |------|-------------|-----------|
373
- | 저장 형식 | JSON 배열 | 마크다운 파일 |
374
- | 메타데이터 | content 혼합 | 프론트매터 분리 |
375
- | 조회 | 전체 로드 | 인덱스 드릴다운 |
376
- | 토픽 지원 | 없음 | 있음 |
377
- | 가독성 | 낮음 | 높음 |
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 |
378
378
 
379
- ## 기억 연결 그래프
379
+ ## Memory Connection Graph
380
380
 
381
- 기억 연관성을 그래프로 관리합니다.
381
+ Manages associations between memories as a graph.
382
382
 
383
- ### 그래프 빌드
383
+ ### Build Graph
384
384
 
385
385
  ```bash
386
386
  npx memory mindmap build <agent_id>
387
387
  ```
388
388
 
389
- 규칙 기반으로 연결 생성:
390
- - **같은 topic**: weight 0.7 (⚠️ `general` 제외)
391
- - **공통 tags**: weight 0.4~0.8 (1개=0.4, 2개=0.6, 3개+=0.8)
392
- - **같은 날짜**: weight 0.3 (기본 OFF)
393
- - **같은 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`)
394
394
 
395
- > **edgeThreshold = 0.3** weight 0.3 이상이어야 연결됨
395
+ > **edgeThreshold = 0.3** -> Total weight must be 0.3 or above to create a connection
396
396
 
397
- ### 연결성 높이는 저장
397
+ ### (Important) Tips for Increasing Connectivity
398
398
 
399
- **핵심: `general`을 피하고 구체적으로!**
399
+ **Key: Avoid `general` and be specific!**
400
400
 
401
- | 방법 | Weight | 효과 |
402
- |------|--------|------|
403
- | topic 지정 | +0.7 | 같은 토픽 기억들 자동 연결 |
404
- | 태그 2개+ | +0.6 | 토픽 달라도 태그로 연결 |
405
- | 태그 3개+ | +0.8 | 최대 연결 강도 |
406
- | 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 |
407
407
 
408
- **❌ 나쁜 (연결 안 됨)**
408
+ **[BAD] Bad example (no connections)**
409
409
  ```bash
410
- # topic=general, category=general 연결 0
411
- npx memory save agent "Discord 설정 제거" general
410
+ # topic=general, category=general -> 0 connections
411
+ npx memory save agent "Discord settings removal" general
412
412
  ```
413
413
 
414
- **✅ 좋은 (강한 연결)**
414
+ **[GOOD] Good example (strong connections)**
415
415
  ```bash
416
- # topic + category + tags 최대 연결
417
- npx memory save agent "Discord 설정 제거 결정" decision \
416
+ # topic + category + tags -> maximum connections
417
+ npx memory save agent "Discord settings removal decision" decision \
418
418
  --topic=discord \
419
419
  --tags=settings,cpo-decision,oauth \
420
- --body="CPO 회의 결과..."
420
+ --body="CPO meeting result..."
421
421
  ```
422
422
 
423
- **태그 활용 전략:**
424
- - 관련 기능/모듈명: `discord`, `oauth`, `settings`
425
- - 회의/결정자: `cpo-decision`, `dev-meeting`
426
- - 상태: `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`
427
427
 
428
- ### 그래프 요약 보기
428
+ ### View Graph Summary
429
429
 
430
430
  ```bash
431
431
  npx memory mindmap show <agent_id>
432
432
  ```
433
433
 
434
- 토픽별 클러스터, 허브 노드(연결 많은 기억) 등 표시.
435
- 기본 출력은 **Mermaid 포맷**이며, VS Code 마크다운 프리뷰에서 그래프로 시각화됩니다.
436
- `--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.
437
437
 
438
- **기간 필터 옵션:**
438
+ **Period filter options:**
439
439
  ```bash
440
440
  npx memory mindmap show <agent_id> --period=stm # 24h
441
441
  npx memory mindmap show <agent_id> --period=mtm # 7d
442
442
  npx memory mindmap show <agent_id> --period=ltm # 30d
443
443
  ```
444
444
 
445
- ### PNG 이미지 내보내기
445
+ ### Export as PNG Image
446
446
 
447
- Mermaid 출력을 PNG 이미지로 변환하여 시각적으로 확인할 수 있습니다.
447
+ Convert Mermaid output to PNG images for visual inspection.
448
448
 
449
449
  ```bash
450
- # 1. mermaid 코드를 파일로 저장
450
+ # 1. Save mermaid code to file
451
451
  npx memory mindmap show <agent_id> | sed 's/^```mermaid$//' | sed 's/^```$//' > /tmp/graph.mmd
452
452
 
453
- # 2. PNG 변환 (npx로 설치 없이 실행)
453
+ # 2. Convert to PNG (runs without installation via npx)
454
454
  npx @mermaid-js/mermaid-cli -i /tmp/graph.mmd -o graph.png -w 2400 -H 1600 -b white
455
455
 
456
- # 기간 필터 + PNG (예: 최근 24시간만)
456
+ # Period filter + PNG (e.g., last 24 hours only)
457
457
  npx memory mindmap show <agent_id> --period=stm | sed 's/^```mermaid$//' | sed 's/^```$//' | grep -v '^(' > /tmp/graph-stm.mmd
458
458
  npx @mermaid-js/mermaid-cli -i /tmp/graph-stm.mmd -o graph-stm.png -w 1600 -H 900 -b white
459
459
  ```
460
460
 
461
- > **팁**: 전체 그래프(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).
462
462
 
463
- ### 연결된 기억 조회
463
+ ### Query Related Memories
464
464
 
465
465
  ```bash
466
466
  npx memory mindmap related <agent_id> <memory_id>
467
467
  ```
468
468
 
469
- 특정 기억과 연결된 기억들을 weight 순으로 표시.
469
+ Displays memories connected to a specific memory, sorted by weight.
470
470
 
471
- ### 수동 연결 관리
471
+ ### Manual Connection Management
472
472
 
473
473
  ```bash
474
- # 연결 추가
474
+ # Add connection
475
475
  npx memory mindmap add <agent_id> <from_id> <to_id> [type]
476
476
 
477
- # 연결 제거
477
+ # Remove connection
478
478
  npx memory mindmap remove <agent_id> <from_id> <to_id>
479
479
  ```
480
480
 
481
- ### 시각화 (HTML) - 공용 그래프
481
+ ### Visualization (HTML) - Shared Graph
482
482
 
483
483
  ```bash
484
484
  npx memory mindmap html
485
485
  ```
486
486
 
487
- **모든 에이전트의 연결 그래프를 곳에 통합한 공용 시각화**를 생성합니다.
487
+ Generates a **shared visualization combining connection graphs of all agents** in one place.
488
488
 
489
- **특징:**
490
- - 모든 에이전트의 graph.json 데이터를 하나의 HTML에 임베드
491
- - 드롭다운으로 에이전트 선택 해당 그래프로 실시간 전환
492
- - D3.js force-directed 그래프
493
- - 토픽별 색상 구분
494
- - & 드래그 지원
495
- - 호버 상세 정보 툴팁
496
- - 노드 크기 = 연결
497
- - 서버 없이 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
498
498
 
499
- **사용법:**
499
+ **Usage:**
500
500
  ```bash
501
- # 1. 공용 HTML 생성 (agent_id 필요 없음)
501
+ # 1. Generate shared HTML (no agent_id needed)
502
502
  npx memory mindmap html
503
503
 
504
- # 2. 브라우저에서 열기
504
+ # 2. Open in browser
505
505
  npx memory mindmap open
506
506
  ```
507
507
 
508
- **예시:**
508
+ **Example:**
509
509
  ```bash
510
- # 전체 에이전트 그래프 통합 시각화
510
+ # Generate integrated visualization of all agent graphs
511
511
  npx memory mindmap html
512
512
  ```
513
513
 
514
- ### 브라우저에서 열기
514
+ ### Open in Browser
515
515
 
516
516
  ```bash
517
517
  npx memory mindmap open [agent_id]
518
518
  ```
519
519
 
520
- 특정 에이전트의 그래프를 브라우저에서 바로 엽니다.
520
+ Opens a specific agent's graph directly in the browser.
521
521
 
522
- **예시:**
522
+ **Examples:**
523
523
  ```bash
524
- # CTO 그래프 열기
524
+ # Open CTO graph
525
525
  npx memory mindmap open cto
526
526
 
527
- # 전체 (기본 에이전트) 열기
527
+ # Open default (all agents)
528
528
  npx memory mindmap open
529
529
  ```
530
530
 
531
- ### 저장 위치
531
+ ### Storage Location
532
532
 
533
533
  ```
534
- memory/{agent_id}/graph.json # 그래프 데이터
535
- 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)
536
536
  ```
537
537
 
538
538
  ---
539
539
 
540
- ## 기억 계층 구조
540
+ ## Memory Hierarchy Structure
541
541
 
542
- `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).
543
543
 
544
- | 계층 | 시간 | 출력 |
545
- |------|------|------|
546
- | 단기 (STM) | 24h | `## 🔥 최근 작업` |
547
- | 중기 (MTM) | 7 | 토픽별 요약 (summary.md) |
548
- | 장기 (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` |
549
549
 
550
- 상세 설계 근거: [README.md](./README.md#설계-근거-계층적-기억-아키텍처)
550
+ Design rationale details: [README.md](./README.md#design-rationale-hierarchical-memory-architecture)
551
551
 
552
552
  ---
553
553
 
554
- ## 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
555
617
 
556
618
  ```bash
557
619
  npx memory migrate <agent_id>