feat(skills): add qmd skill for vault search and memory, deprecate SQLite memory

- Add skills/qmd/SKILL.md: qmd-based knowledge retrieval and memory system
  - Search workflows: BM25, vector semantic, hybrid+rerank modes
  - Memory write patterns via direct filesystem writes to ~/CODEX/80-memory/
  - Session summary workflow for capturing work at session end
  - Auto-recall pattern for context injection at session start

- Deprecate skills/memory/SKILL.md: SQLite-based memory replaced by qmd
  - qmd provides superior hybrid search over entire vault
  - No external OpenAI embedding dependency
  - Uses local GPU (7900 XTX) for embeddings and reranking

- Update skills/obsidian/SKILL.md: remove memory search sections
  - Memory search now handled by qmd skill
  - Keep CRUD operations and daily notes functionality
  - Update integration table to reference qmd

Related: CODEX vault updated with memory template, session-summary template,
and sessions directory. qmd collections and context annotations configured.
This commit is contained in:
m3tm3re
2026-03-14 10:03:53 +01:00
parent 39ac89f388
commit 8bcb5e11fb
2 changed files with 199 additions and 89 deletions

View File

@@ -218,7 +218,8 @@ curl -X POST "http://127.0.0.1:27124/create-note" \
| Research note | research | Save research findings with tags |
| Project note | task-management | Link tasks to project notes |
| Plan document | plan-writing | Save generated plan to vault |
| Memory note | memory | Create/read memory notes in 80-memory/ |
| Vault search | qmd | Search vault content via qmd hybrid search |
| Memory note | qmd | Create/read memory notes in 80-memory/ |
## Best Practices
@@ -232,97 +233,15 @@ curl -X POST "http://127.0.0.1:27124/create-note" \
---
## Memory Folder Conventions
## Memory System
The `80-memory/` folder stores dual-layer memories synced with Mem0.
Memory storage and retrieval is handled by the **qmd skill** (`skills/qmd/SKILL.md`).
### Structure
- **Search**: Use qmd for searching vault content (hybrid BM25 + vector + reranking)
- **Write**: Use this skill's REST API or direct filesystem writes for creating/updating notes
- **Structure**: `80-memory/` folder with subdirectories (preferences, facts, decisions, entities, other, sessions)
```
80-memory/
├── preferences/ # Personal preferences (UI, workflow, communication)
├── facts/ # Objective information (role, tech stack, constraints)
├── decisions/ # Choices with rationale (tool selections, architecture)
├── entities/ # People, organizations, systems, concepts
└── other/ # Everything else
```
### Naming Convention
Memory notes use kebab-case: `prefers-dark-mode.md`, `uses-typescript.md`
### Required Frontmatter
```yaml
---
type: memory
category: # preference | fact | decision | entity | other
mem0_id: # Mem0 memory ID (e.g., "mem_abc123")
source: explicit # explicit | auto-capture
importance: # critical | high | medium | low
created: 2026-02-12
updated: 2026-02-12
tags:
- memory
sync_targets: []
---
```
### Key Fields
| Field | Purpose |
|-------|---------|
| `mem0_id` | Links to Mem0 entry for semantic search |
| `category` | Determines subfolder and classification |
| `source` | How memory was captured (explicit request vs auto) |
| `importance` | Priority for recall ranking |
---
## Memory Note Workflows
### Create Memory Note
When creating a memory note in the vault:
```bash
# Using REST API
curl -X POST "http://127.0.0.1:27124/create-note" \
-H "Content-Type: application/json" \
-d '{
"path": "80-memory/preferences/prefers-dark-mode.md",
"content": "---\ntype: memory\ncategory: preference\nmem0_id: mem_abc123\nsource: explicit\nimportance: medium\ncreated: 2026-02-12\nupdated: 2026-02-12\ntags:\n - memory\nsync_targets: []\n---\n\n# Prefers Dark Mode\n\n## Content\n\nUser prefers dark mode in all applications.\n\n## Context\n\nStated during UI preferences discussion on 2026-02-12.\n\n## Related\n\n- [[UI Settings]]\n"
}'
```
### Read Memory Note
Read by path with URL encoding:
```bash
curl -X GET "http://127.0.0.1:27124/read-note?path=80-memory%2Fpreferences%2Fprefers-dark-mode.md"
```
### Search Memories
Search within memory folder:
```bash
curl -X GET "http://127.0.0.1:27124/search?q=dark%20mode&path=80-memory"
```
### Update Memory Note
Update content and frontmatter:
```bash
curl -X PUT "http://127.0.0.1:27124/update-note" \
-H "Content-Type: application/json" \
-d '{
"path": "80-memory/preferences/prefers-dark-mode.md",
"content": "# Updated content..."
}'
```
See the qmd skill for memory workflows, session summaries, and auto-recall patterns.
---