openmemory-plus 1.2.0 → 1.3.0

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.
Files changed (35) hide show
  1. package/dist/index.js +524 -163
  2. package/package.json +1 -1
  3. package/templates/shared/_omp/commands/memory.md +6 -0
  4. package/templates/shared/{skills → _omp/skills}/memory-extraction/SKILL.md +92 -51
  5. package/templates/shared/_omp/skills/memory-extraction/scripts/validate.sh +94 -0
  6. package/templates/shared/_omp/skills/memory-extraction/templates/decision.yaml.tmpl +32 -0
  7. package/templates/shared/_omp/skills/memory-extraction/templates/session.yaml.tmpl +35 -0
  8. package/templates/shared/_omp/workflows/memory/steps/clean.md +92 -0
  9. package/templates/shared/_omp/workflows/memory/steps/decay.md +82 -0
  10. package/templates/shared/_omp/workflows/memory/steps/graph.md +88 -0
  11. package/templates/shared/_omp/workflows/memory/steps/search.md +68 -0
  12. package/templates/shared/_omp/workflows/memory/steps/status.md +63 -0
  13. package/templates/shared/_omp/workflows/memory/steps/store.md +81 -0
  14. package/templates/shared/_omp/workflows/memory/steps/sync.md +76 -0
  15. package/templates/shared/_omp/workflows/memory/workflow.md +147 -0
  16. package/templates/augment/AGENTS.md +0 -78
  17. package/templates/claude/CLAUDE.md +0 -52
  18. package/templates/common/AGENTS.md +0 -51
  19. package/templates/cursor/.cursorrules +0 -57
  20. package/templates/gemini/gemini.md +0 -77
  21. package/templates/shared/commands/memory.md +0 -86
  22. package/templates/shared/memory/activeContext.md +0 -34
  23. package/templates/shared/memory/productContext.md +0 -30
  24. package/templates/shared/memory/progress.md +0 -41
  25. package/templates/shared/memory/projectbrief.md +0 -36
  26. package/templates/shared/memory/systemPatterns.md +0 -39
  27. package/templates/shared/memory/techContext.md +0 -51
  28. package/templates/shared/memory-actions/clean.md +0 -54
  29. package/templates/shared/memory-actions/decay.md +0 -64
  30. package/templates/shared/memory-actions/graph.md +0 -75
  31. package/templates/shared/memory-actions/search.md +0 -38
  32. package/templates/shared/memory-actions/status.md +0 -35
  33. package/templates/shared/memory-actions/store.md +0 -45
  34. package/templates/shared/memory-actions/sync.md +0 -50
  35. package/templates/shared/rules/classification.md +0 -108
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openmemory-plus",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Agent Memory Management CLI - Install, configure, and manage OpenMemory Plus",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,6 @@
1
+ ---
2
+ name: 'memory'
3
+ description: '记忆管理 - 统一管理项目级和用户级记忆'
4
+ ---
5
+
6
+ IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_omp/workflows/memory/workflow.md, READ its entire contents and follow its directions exactly!
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: memory-extraction
3
- description: Agent-only workflow for extracting key information from conversations, code changes, and deployments into structured memory files. Automatically updates `.memory/` directory and notifies other agents. Triggered automatically at conversation end or when valuable information is detected.
3
+ description: Agent-only workflow for extracting key information from conversations, code changes, and deployments into structured memory files. Automatically updates `_omp/.memory/` directory and notifies other agents. Triggered automatically at conversation end or when valuable information is detected.
4
4
  metadata:
5
5
  author: Wendy (Workflow Builder)
6
- version: "2.0"
6
+ version: "2.1"
7
7
  language: zh-CN
8
8
  audience: agent-only
9
9
  ---
@@ -13,41 +13,81 @@ metadata:
13
13
  ## 目的
14
14
 
15
15
  **自动提取对话中的关键信息**,智能路由到正确的存储系统:
16
- - **项目级信息** → `.memory/` 目录 (Git 版本控制)
16
+ - **项目级信息** → `_omp/.memory/` 目录 (Git 版本控制)
17
17
  - **用户级信息** → `openmemory` MCP (跨项目共享)
18
18
 
19
19
  > **Agent-Only 原则**:
20
20
  > - **自动触发**:对话结束时或检测到有价值信息时自动运行
21
21
  > - **智能分类**:根据信息类型自动选择存储位置
22
22
  > - **零人工干预**:无需用户确认,静默执行
23
- > - **双系统同步**:同时管理 `.memory/` 和 `openmemory`
23
+ > - **双系统同步**:同时管理 `_omp/.memory/` 和 `openmemory`
24
24
 
25
- ## 双层记忆架构
25
+ ## 核心目录结构
26
26
 
27
27
  ```
28
- Agent 记忆系统
29
- ├── .memory/ (项目级)
30
- │ ├── project.yaml # 项目配置、部署信息
31
- ├── decisions.yaml # 技术决策记录
32
- │ └── changelog.yaml # 变更历史
33
- └── openmemory (用户级)
34
- ├── 用户偏好 # 跨项目通用
35
- ├── 用户技能 # 个人能力
36
- └── 对话上下文 # 历史记忆
28
+ _omp/ # OpenMemory Plus 核心目录
29
+ ├── commands/
30
+ │ ├── memory.md # 主命令入口
31
+ └── memory-actions/ # 7 个子动作
32
+ ├── skills/
33
+ └── memory-extraction/ # 本 Skill
34
+ ├── SKILL.md
35
+ ├── scripts/validate.sh
36
+ └── templates/*.tmpl
37
+ └── .memory/ # 项目级记忆
38
+ ├── project.yaml # 项目配置 (SSOT)
39
+ ├── decisions.yaml # 技术决策记录
40
+ ├── changelog.yaml # 变更历史
41
+ └── sessions/ # 会话记录
37
42
  ```
38
43
 
44
+ ## 双层记忆架构
45
+
46
+ | 系统 | 存储位置 | 用途 |
47
+ |------|----------|------|
48
+ | 项目级 | `_omp/.memory/` | 项目配置、技术决策、变更记录 |
49
+ | 用户级 | `openmemory` MCP | 用户偏好、技能、跨项目上下文 |
50
+
39
51
  ## 分类规则
40
52
 
41
- > 📌 详细规则见 `.rules/memory/classification.md`
53
+ ### 存储位置决策表
54
+
55
+ | 信息类型 | 存储位置 | 识别关键词 |
56
+ |----------|----------|------------|
57
+ | 项目配置 | `_omp/.memory/project.yaml` | url, domain, deploy, vercel, config, path |
58
+ | 技术决策 | `_omp/.memory/decisions.yaml` | 决定, 选择, 采用, 架构, decision, choose |
59
+ | 变更记录 | `_omp/.memory/changelog.yaml` | 更新, 修改, 发布, update, change, release |
60
+ | 用户偏好 | `openmemory` | 偏好, 喜欢, 习惯, prefer, style, always |
61
+ | 用户技能 | `openmemory` | 会, 熟悉, 经验, skill, experience, know |
62
+ | 对话上下文 | `openmemory` | 之前, 上次, 记得, remember, last time |
63
+
64
+ ### 分类优先级
65
+
66
+ 1. **项目相关** → `_omp/.memory/` (Git 版本控制)
67
+ 2. **用户相关** → `openmemory` (跨项目共享)
68
+ 3. **混合信息** → 拆分存储到两个系统
42
69
 
43
- | 信息类型 | 存储位置 | 识别信号 |
44
- |----------|----------|----------|
45
- | 项目配置 | `.memory/project.yaml` | url, deploy, config |
46
- | 技术决策 | `.memory/decisions.yaml` | 决定, 选择, 采用 |
47
- | 变更记录 | `.memory/changelog.yaml` | 更新, 发布, release |
48
- | 用户偏好 | `openmemory` | 偏好, 喜欢, 习惯 |
49
- | 用户技能 | `openmemory` | 会, 熟悉, 经验 |
50
- | 对话上下文 | `openmemory` | 之前, 上次, 记得 |
70
+ ### 敏感信息过滤
71
+
72
+ **禁止存储**(检测后阻止):
73
+
74
+ | 类型 | 检测模式 |
75
+ |------|----------|
76
+ | API Key | `sk-`, `api_key`, `token=`, `bearer` |
77
+ | 密码 | `password`, `secret`, `credential` |
78
+ | 私钥 | `-----BEGIN`, `PRIVATE KEY` |
79
+ | 个人信息 | 身份证号, 银行卡号, 手机号 |
80
+
81
+ ### ROT 过滤规则
82
+
83
+ **不存储的信息**:
84
+
85
+ | 类型 | 示例 |
86
+ |------|------|
87
+ | 琐碎确认 | "好的", "OK", "明白了" |
88
+ | 临时状态 | "正在处理...", "稍等" |
89
+ | 重复信息 | 已存在的相同内容 |
90
+ | 过期信息 | 被明确否定或更新的旧信息 |
51
91
 
52
92
  ## 触发条件
53
93
 
@@ -83,20 +123,20 @@ Agent 记忆系统
83
123
  | P0 | 服务配置 | `config`, `secret`, `token`, API 密钥 | 更新 VERCEL_TOKEN |
84
124
  | P1 | 技术决策 | `决定`, `选择`, `采用`, 架构变更 | 选择 YAML 格式 |
85
125
  | P1 | 项目里程碑 | `完成`, `上线`, `发布`, 版本号 | v1.0 发布 |
86
- | P2 | 路径变更 | 目录创建/移动, 文件重组 | 创建 .memory/ |
126
+ | P2 | 路径变更 | 目录创建/移动, 文件重组 | 创建 _omp/.memory/ |
87
127
  | P2 | 工具配置 | CLI 安装, 依赖更新 | 安装 resumes-cli |
88
128
 
89
129
  ### Phase 2: 信息分类与路由
90
130
 
91
131
  根据检测结果,**智能路由**到正确的存储系统:
92
132
 
93
- #### 项目级 → `.memory/`
133
+ #### 项目级 → `_omp/.memory/`
94
134
 
95
135
  | 分类 | 目标文件 | 内容类型 |
96
136
  |------|----------|----------|
97
- | `project` | `.memory/project.yaml` | 项目常量、部署信息、路径 |
98
- | `decisions` | `.memory/decisions.yaml` | 重要技术决策记录 |
99
- | `changelog` | `.memory/changelog.yaml` | 变更历史 |
137
+ | `project` | `_omp/.memory/project.yaml` | 项目常量、部署信息、路径 |
138
+ | `decisions` | `_omp/.memory/decisions.yaml` | 重要技术决策记录 |
139
+ | `changelog` | `_omp/.memory/changelog.yaml` | 变更历史 |
100
140
 
101
141
  #### 用户级 → `openmemory`
102
142
 
@@ -158,7 +198,7 @@ paths:
158
198
 
159
199
  **示例写入**:
160
200
  ```yaml
161
- # .memory/project.yaml
201
+ # _omp/.memory/project.yaml
162
202
  deployment:
163
203
  vercel:
164
204
  url: https://web-zeta-six-79.vercel.app
@@ -171,7 +211,7 @@ deployment:
171
211
  更新完成后,在以下位置添加通知标记:
172
212
 
173
213
  ```yaml
174
- # .memory/project.yaml (底部)
214
+ # _omp/.memory/project.yaml (底部)
175
215
  _meta:
176
216
  last_updated: 2026-02-02T10:30:00Z
177
217
  updated_by: memory-extraction-skill
@@ -183,10 +223,10 @@ _meta:
183
223
 
184
224
  ## 输出格式
185
225
 
186
- ### `.memory/project.yaml` (主配置)
226
+ ### `_omp/.memory/project.yaml` (主配置)
187
227
  见现有文件结构,本 Skill 负责自动更新。
188
228
 
189
- ### `.memory/sessions/{date}.yaml` (会话记录)
229
+ ### `_omp/.memory/sessions/{date}.yaml` (会话记录)
190
230
  ```yaml
191
231
  date: 2026-02-02
192
232
  sessions:
@@ -196,12 +236,12 @@ sessions:
196
236
  summary: "部署 Vercel 并配置 Cloudflare Worker"
197
237
  key_actions:
198
238
  - "更新 VERCEL_TOKEN GitHub Secret"
199
- - "创建 .memory/ 目录结构"
239
+ - "创建 _omp/.memory/ 目录结构"
200
240
  decisions:
201
241
  - "采用 YAML 格式作为 memory 存储格式"
202
242
  ```
203
243
 
204
- ### `.memory/decisions.yaml` (决策记录)
244
+ ### `_omp/.memory/decisions.yaml` (决策记录)
205
245
  ```yaml
206
246
  decisions:
207
247
  - id: dec-2026-02-02-001
@@ -219,16 +259,16 @@ decisions:
219
259
 
220
260
  ### 读取方(其他 Agent)
221
261
 
222
- 其他 Agent 应在启动时读取 `.memory/project.yaml`:
262
+ 其他 Agent 应在启动时读取 `_omp/.memory/project.yaml`:
223
263
 
224
264
  ```markdown
225
265
  <!-- 在 CLAUDE.md 或 Agent 配置中 -->
226
- > 📌 **配置中心**: 项目常量统一存储在 `.memory/project.yaml`
266
+ > 📌 **配置中心**: 项目常量统一存储在 `_omp/.memory/project.yaml`
227
267
  ```
228
268
 
229
269
  ### 写入方(本 Skill)
230
270
 
231
- 本 Skill 是 `.memory/` 的唯一写入者,确保:
271
+ 本 Skill 是 `_omp/.memory/` 的唯一写入者,确保:
232
272
  - 格式一致性
233
273
  - 无冲突写入
234
274
  - 变更可追溯
@@ -248,15 +288,15 @@ decisions:
248
288
 
249
289
  ### 回退机制
250
290
 
251
- 1. **写入前备份**: 修改前复制到 `.memory/.backup/`
291
+ 1. **写入前备份**: 修改前复制到 `_omp/.memory/.backup/`
252
292
  2. **原子写入**: 写入临时文件,验证后重命名
253
- 3. **错误日志**: 记录到 `.memory/sessions/{date}.yaml` 的 `errors` 字段
293
+ 3. **错误日志**: 记录到 `_omp/.memory/sessions/{date}.yaml` 的 `errors` 字段
254
294
 
255
295
  ### 验证脚本
256
296
 
257
297
  ```bash
258
298
  # 验证所有 YAML 文件
259
- .augment/skills/memory-extraction/scripts/validate.sh
299
+ _omp/skills/memory-extraction/scripts/validate.sh
260
300
  ```
261
301
 
262
302
  ---
@@ -270,7 +310,7 @@ decisions:
270
310
  | 用户结束对话 | 用户说 "bye", "结束", "exit", "谢谢" | `用户: 好的,先这样` |
271
311
  | 部署完成 | 检测到 deploy/vercel/wrangler 输出 | `vercel --prod` 成功 |
272
312
  | 配置变更 | 修改了 env/secret/config 文件 | 更新 `.env` |
273
- | 创建新目录 | 创建了项目级目录 | `mkdir .memory/` |
313
+ | 创建新目录 | 创建了项目级目录 | `mkdir _omp/.memory/` |
274
314
  | 重要决策 | 对话中明确了技术选型 | `决定使用 YAML 格式` |
275
315
 
276
316
  ### 不触发的场景
@@ -290,9 +330,9 @@ decisions:
290
330
 
291
331
  ### Schema 验证
292
332
 
293
- - `.memory/schema/project.schema.json`
294
- - `.memory/schema/decisions.schema.json`
295
- - `.memory/schema/session.schema.json`
333
+ - `_omp/.memory/schema/project.schema.json`
334
+ - `_omp/.memory/schema/decisions.schema.json`
335
+ - `_omp/.memory/schema/session.schema.json`
296
336
 
297
337
  ---
298
338
 
@@ -327,7 +367,7 @@ Agent 在查询记忆时应检测两系统数据一致性:
327
367
 
328
368
  提取关键实体 (URL, 配置值, 技术选型)
329
369
 
330
- 比对 .memory/ vs openmemory
370
+ 比对 _omp/.memory/ vs openmemory
331
371
 
332
372
  发现差异 → 提示用户确认
333
373
 
@@ -338,7 +378,7 @@ Agent 在查询记忆时应检测两系统数据一致性:
338
378
 
339
379
  | 场景 | 处理方式 |
340
380
  |------|----------|
341
- | URL 不一致 | 提示用户,优先 `.memory/` |
381
+ | URL 不一致 | 提示用户,优先 `_omp/.memory/` |
342
382
  | 技术选型冲突 | 展示两边,请求决策 |
343
383
  | 时间戳可判断 | 自动保留较新版本 |
344
384
 
@@ -352,7 +392,7 @@ Agent 在对话开始时应**并行查询**两个系统:
352
392
  对话开始
353
393
 
354
394
  ┌─────────────────┐ ┌─────────────────┐
355
- .memory/ │ │ openmemory │
395
+ _omp/.memory/ │ │ openmemory │
356
396
  │ (读取 YAML) │ │ (search_memory) │
357
397
  └────────┬────────┘ └────────┬────────┘
358
398
  │ │
@@ -362,7 +402,7 @@ Agent 在对话开始时应**并行查询**两个系统:
362
402
  ```
363
403
 
364
404
  **加载步骤**:
365
- 1. 读取 `.memory/project.yaml` 获取项目配置
405
+ 1. 读取 `_omp/.memory/project.yaml` 获取项目配置
366
406
  2. 调用 `search_memory_openmemory` 查询相关用户记忆
367
407
  3. 融合两边信息作为对话上下文
368
408
 
@@ -371,12 +411,12 @@ Agent 在对话开始时应**并行查询**两个系统:
371
411
  **当 openmemory MCP 不可用时**:
372
412
 
373
413
  1. 检测 MCP 连接状态(调用失败或超时)
374
- 2. 降级到仅 `.memory/` 存储
375
- 3. 用户级信息临时存入 `.memory/user-context.yaml`
414
+ 2. 降级到仅 `_omp/.memory/` 存储
415
+ 3. 用户级信息临时存入 `_omp/.memory/user-context.yaml`
376
416
  4. 服务恢复后提示用户同步
377
417
 
378
418
  ```yaml
379
- # .memory/user-context.yaml (降级时使用)
419
+ # _omp/.memory/user-context.yaml (降级时使用)
380
420
  _degraded: true
381
421
  _reason: "openmemory MCP unavailable"
382
422
  pending_memories:
@@ -388,6 +428,7 @@ pending_memories:
388
428
 
389
429
  | 版本 | 变更 |
390
430
  |------|------|
431
+ | v2.1 | 目录重构:_omp/ 统一目录,移除 rules/,分类规则内嵌 |
391
432
  | v2.0 | 双层记忆架构:整合 openmemory MCP,智能分类路由 |
392
433
  | v1.1 | 添加错误处理、Schema 验证、模板文件、触发条件详解 |
393
434
  | v1.0 | 初始版本:自动提取、YAML 存储、多 Agent 通知 |
@@ -0,0 +1,94 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Memory YAML Validation Script
4
+ # Usage: ./validate.sh [file|all]
5
+ # Validates _omp/.memory/*.yaml files against JSON Schema
6
+ #
7
+ # Dependencies (optional, for full schema validation):
8
+ # npm install -g ajv-cli
9
+ #
10
+ # Without ajv-cli, only YAML syntax is validated.
11
+
12
+ set -e
13
+
14
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
15
+ # Navigate up to project root: scripts -> memory-extraction -> skills -> _omp -> project_root
16
+ PROJECT_ROOT="${SCRIPT_DIR}/../../../../"
17
+ MEMORY_DIR="${PROJECT_ROOT}/_omp/.memory"
18
+ SCHEMA_DIR="${MEMORY_DIR}/schema"
19
+
20
+ # Colors
21
+ RED='\033[0;31m'
22
+ GREEN='\033[0;32m'
23
+ YELLOW='\033[1;33m'
24
+ NC='\033[0m'
25
+
26
+ validate_yaml() {
27
+ local file="$1"
28
+ local schema="$2"
29
+
30
+ echo -n " Validating $(basename "$file")... "
31
+
32
+ # Check if file exists
33
+ if [ ! -f "$file" ]; then
34
+ echo -e "${RED}NOT FOUND${NC}"
35
+ return 1
36
+ fi
37
+
38
+ # Check YAML syntax using ruby (built-in on macOS)
39
+ if command -v ruby &> /dev/null; then
40
+ if ! ruby -e "require 'yaml'; YAML.load_file('$file')" 2>/dev/null; then
41
+ echo -e "${RED}YAML SYNTAX ERROR${NC}"
42
+ return 1
43
+ fi
44
+ # Fallback: basic structure check
45
+ elif ! grep -q "^[a-z_]*:" "$file" 2>/dev/null; then
46
+ echo -e "${YELLOW}COULD NOT VALIDATE${NC}"
47
+ return 0
48
+ fi
49
+
50
+ # Validate against schema (if ajv or similar is available)
51
+ if command -v ajv &> /dev/null && [ -f "$schema" ]; then
52
+ if ajv validate -s "$schema" -d "$file" --spec=draft7 2>/dev/null; then
53
+ echo -e "${GREEN}VALID${NC}"
54
+ return 0
55
+ else
56
+ echo -e "${YELLOW}SCHEMA MISMATCH${NC}"
57
+ return 1
58
+ fi
59
+ else
60
+ echo -e "${GREEN}YAML OK${NC} (schema validation skipped)"
61
+ return 0
62
+ fi
63
+ }
64
+
65
+ echo "🔍 Memory YAML Validation"
66
+ echo "========================="
67
+ echo ""
68
+
69
+ ERRORS=0
70
+
71
+ # Validate project.yaml
72
+ echo "📁 _omp/.memory/"
73
+ validate_yaml "${MEMORY_DIR}/project.yaml" "${SCHEMA_DIR}/project.schema.json" || ERRORS=$((ERRORS + 1))
74
+ validate_yaml "${MEMORY_DIR}/decisions.yaml" "${SCHEMA_DIR}/decisions.schema.json" || ERRORS=$((ERRORS + 1))
75
+ validate_yaml "${MEMORY_DIR}/changelog.yaml" "" || ERRORS=$((ERRORS + 1))
76
+
77
+ # Validate session files
78
+ echo ""
79
+ echo "📁 _omp/.memory/sessions/"
80
+ for session_file in "${MEMORY_DIR}"/sessions/*.yaml; do
81
+ if [ -f "$session_file" ]; then
82
+ validate_yaml "$session_file" "${SCHEMA_DIR}/session.schema.json" || ERRORS=$((ERRORS + 1))
83
+ fi
84
+ done
85
+
86
+ echo ""
87
+ if [ $ERRORS -eq 0 ]; then
88
+ echo -e "${GREEN}✅ All validations passed!${NC}"
89
+ exit 0
90
+ else
91
+ echo -e "${RED}❌ $ERRORS validation error(s) found${NC}"
92
+ exit 1
93
+ fi
94
+
@@ -0,0 +1,32 @@
1
+ # Decision Template
2
+ # 追加到 .memory/decisions.yaml 的 decisions 数组中
3
+ #
4
+ # ============================================
5
+ # 使用说明 (Agent 参考)
6
+ # ============================================
7
+ # 变量占位符:
8
+ # {{date}} - 日期 (YYYY-MM-DD)
9
+ # {{seq}} - 当日序号 (001, 002, 003...)
10
+ # {{title}} - 决策标题
11
+ # {{context}} - 决策背景/问题描述
12
+ # {{choice}} - 最终选择
13
+ # {{alt_1}} - 备选方案 (可多个: alt_2, alt_3...)
14
+ # {{rationale}} - 选择理由
15
+ # {{impact_1}} - 影响范围 (可多个: impact_2, impact_3...)
16
+ # ============================================
17
+
18
+ - id: dec-{{date}}-{{seq}}
19
+ date: {{date}}
20
+ title: "{{title}}"
21
+ context: |
22
+ {{context}}
23
+ choice: "{{choice}}"
24
+ alternatives:
25
+ - "{{alt_1}}"
26
+ - "{{alt_2}}"
27
+ rationale: |
28
+ {{rationale}}
29
+ impact:
30
+ - "{{impact_1}}"
31
+ status: active
32
+
@@ -0,0 +1,35 @@
1
+ # .memory/sessions/{{date}}.yaml - 会话记录
2
+ # 由 memory-extraction skill 自动维护
3
+ #
4
+ # ============================================
5
+ # 使用说明 (Agent 参考)
6
+ # ============================================
7
+ # 变量占位符:
8
+ # {{date}} - 日期 (YYYY-MM-DD)
9
+ # {{timestamp}} - ISO 8601 时间戳 (2026-02-02T14:30:00+08:00)
10
+ # {{summary}} - 会话摘要
11
+ # {{action_1}} - 关键操作 (可多个: action_2, action_3...)
12
+ # {{decision_id}} - 决策 ID (dec-YYYY-MM-DD-NNN)
13
+ # {{decision_title}} - 决策标题
14
+ # {{outcome_1}} - 成果 (可多个: outcome_2, outcome_3...)
15
+ # ============================================
16
+
17
+ date: {{date}}
18
+
19
+ sessions:
20
+ - id: session-001
21
+ summary: "{{summary}}"
22
+ key_actions:
23
+ - "{{action_1}}"
24
+ decisions:
25
+ - id: "{{decision_id}}"
26
+ title: "{{decision_title}}"
27
+ outcomes:
28
+ - "{{outcome_1}}"
29
+
30
+ # 元数据
31
+ _meta:
32
+ last_updated: {{timestamp}}
33
+ updated_by: memory-extraction-skill
34
+ total_sessions: 1
35
+
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: clean
3
+ description: 清理过期、冗余或琐碎的记忆 (ROT)
4
+ ---
5
+
6
+ # Step: 清理记忆
7
+
8
+ ## EXECUTION RULES
9
+
10
+ - ✅ Analyze all memories for ROT
11
+ - ✅ Show candidates before deletion
12
+ - ✅ Require user confirmation
13
+
14
+ ---
15
+
16
+ ## EXECUTION
17
+
18
+ ### 1. Get All Memories
19
+
20
+ Call `list_memories_openmemory` to get all user memories.
21
+
22
+ ### 2. Analyze ROT
23
+
24
+ Identify cleanup candidates:
25
+
26
+ | Type | Definition | Detection |
27
+ |------|------------|-----------|
28
+ | **Redundant** (冗余) | 重复或相似 | 语义相似度 > 0.9 |
29
+ | **Outdated** (过时) | 超过 90 天 | 创建时间 > 90 days |
30
+ | **Trivial** (琐碎) | 无实际价值 | 内容 < 10 chars or too generic |
31
+
32
+ ### 3. Display Candidates
33
+
34
+ ```
35
+ 🧹 清理候选记忆
36
+
37
+ 以下记忆可能需要清理:
38
+
39
+ ⚠️ Outdated (过时):
40
+ {foreach outdated}
41
+ {n}. "{content}"
42
+ 创建: {days_ago} 天前
43
+ {/foreach}
44
+
45
+ ⚠️ Redundant (冗余):
46
+ {foreach redundant}
47
+ {n}. "{content}" (与 "{similar_to}" 相似)
48
+ {/foreach}
49
+
50
+ ⚠️ Trivial (琐碎):
51
+ {foreach trivial}
52
+ {n}. "{content}"
53
+ {/foreach}
54
+
55
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
56
+
57
+ 操作选项:
58
+ - "全部删除" - 删除所有候选
59
+ - "删除 1,2,3" - 删除指定项
60
+ - "取消" - 不删除
61
+ ```
62
+
63
+ ### 4. Execute Deletion
64
+
65
+ Based on user selection:
66
+ - Get memory IDs to delete
67
+ - Call `delete_memories_openmemory` with IDs
68
+ - Display deletion result
69
+
70
+ ### 5. Display Result
71
+
72
+ ```
73
+ 🗑️ 清理完成
74
+
75
+ 已删除 {n} 条记忆
76
+ 释放空间: {estimated_size}
77
+ ```
78
+
79
+ ---
80
+
81
+ ## SAFETY
82
+
83
+ - ⚠️ NEVER delete without user confirmation
84
+ - ⚠️ Show content preview before deletion
85
+ - ⚠️ Support selective deletion
86
+
87
+ ---
88
+
89
+ ## RETURN TO MENU
90
+
91
+ 完成后提示:
92
+ > "还需要其他操作吗?输入 **M** 返回菜单,或直接输入下一个操作"
@@ -0,0 +1,82 @@
1
+ ---
2
+ name: decay
3
+ description: 分析记忆的时间衰减状态
4
+ ---
5
+
6
+ # Step: 衰减分析
7
+
8
+ ## EXECUTION RULES
9
+
10
+ - ✅ Calculate decay scores for all memories
11
+ - ✅ Group by decay status
12
+ - ✅ Provide actionable recommendations
13
+
14
+ ---
15
+
16
+ ## EXECUTION
17
+
18
+ ### 1. Get All Memories
19
+
20
+ Call `list_memories_openmemory` to get all user memories with timestamps.
21
+
22
+ ### 2. Calculate Decay Scores
23
+
24
+ For each memory, calculate decay score based on:
25
+ - Days since creation
26
+ - Content importance (keywords)
27
+
28
+ **Simplified formula:**
29
+ ```
30
+ score = max(0, 1 - (daysSinceCreation / 180))
31
+ ```
32
+
33
+ ### 3. Classify by Status
34
+
35
+ | Status | Score Range | Meaning |
36
+ |--------|-------------|---------|
37
+ | 🟢 Active | 0.7 - 1.0 | 活跃,近期创建 |
38
+ | 🟡 Aging | 0.3 - 0.7 | 老化,需要关注 |
39
+ | 🔴 Stale | 0.1 - 0.3 | 陈旧,考虑清理 |
40
+ | ⚫ Cleanup | 0 - 0.1 | 待清理 |
41
+
42
+ ### 4. Display Analysis
43
+
44
+ ```
45
+ ⏰ 记忆衰减分析
46
+
47
+ 📊 总览: {total} 条记忆
48
+
49
+ 🟢 Active ({n}条) {progress_bar} {percent}%
50
+ {foreach top_3}
51
+ ├── {content} [{score}]
52
+ {/foreach}
53
+ └── ... (输入 "展开 active" 查看全部)
54
+
55
+ 🟡 Aging ({n}条) {progress_bar} {percent}%
56
+ {foreach all}
57
+ ├── {content} [{score}]
58
+ {/foreach}
59
+
60
+ 🔴 Stale ({n}条) {progress_bar} {percent}%
61
+ {foreach all}
62
+ └── {content} [{score}]
63
+ {/foreach}
64
+
65
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
66
+
67
+ 💡 建议:
68
+ {recommendations}
69
+ ```
70
+
71
+ ### 5. Follow-up Actions
72
+
73
+ - `"清理 stale"` → Delete all Stale memories
74
+ - `"刷新 N"` → Update memory (re-add to refresh)
75
+ - `"展开 {status}"` → Show all in category
76
+
77
+ ---
78
+
79
+ ## RETURN TO MENU
80
+
81
+ 完成后提示:
82
+ > "还需要其他操作吗?输入 **M** 返回菜单,或直接输入下一个操作"