Initial commit with translated description
This commit is contained in:
276
SKILL.md
Normal file
276
SKILL.md
Normal file
@@ -0,0 +1,276 @@
|
||||
---
|
||||
name: Memory
|
||||
slug: memory
|
||||
version: 1.0.2
|
||||
homepage: https://clawic.com/skills/memory
|
||||
description: "补充您代理内置记忆的无限有序记忆。"
|
||||
changelog: Redesigned as complementary system, user-defined categories, optional sync from built-in memory.
|
||||
metadata: {"clawdbot":{"emoji":"🧠","requires":{"bins":[]},"os":["linux","darwin","win32"]}}
|
||||
---
|
||||
|
||||
# Memory 🧠
|
||||
|
||||
**Superpowered memory that never forgets.**
|
||||
|
||||
Your agent has basic built-in memory. This skill adds infinite, perfectly organized memory for everything else — parallel and complementary, never conflicting.
|
||||
|
||||
## How It Works
|
||||
|
||||
```
|
||||
Built-in Agent Memory This Skill (~/memory/)
|
||||
┌─────────────────────┐ ┌─────────────────────────────┐
|
||||
│ MEMORY.md │ │ Infinite categorized storage │
|
||||
│ memory/ (daily logs)│ + │ Any structure you want │
|
||||
│ Basic recall │ │ Perfect organization │
|
||||
└─────────────────────┘ └─────────────────────────────┘
|
||||
↓ ↓
|
||||
Agent basics Everything else
|
||||
(works automatically) (scales infinitely)
|
||||
```
|
||||
|
||||
**Not a replacement.** Your agent's built-in memory keeps working. This adds a parallel system for unlimited, organized storage.
|
||||
|
||||
## Setup
|
||||
|
||||
On first use, read `setup.md` to configure the memory system with the user. Key decisions:
|
||||
1. What categories do they need?
|
||||
2. Should we sync anything from built-in memory?
|
||||
3. How do they want to find things?
|
||||
|
||||
## When to Use
|
||||
|
||||
User needs organized long-term storage beyond basic agent memory: detailed project histories, extensive contact networks, decision logs, domain knowledge, collections, or any structured data that grows over time.
|
||||
|
||||
## Architecture
|
||||
|
||||
Memory lives in `~/memory/` — a dedicated folder separate from built-in agent memory.
|
||||
|
||||
```
|
||||
~/memory/
|
||||
├── config.md # System configuration
|
||||
├── INDEX.md # What's stored, where to find it
|
||||
│
|
||||
├── [user-defined]/ # Categories the user needs
|
||||
│ ├── INDEX.md # Category overview
|
||||
│ └── {items}.md # Individual entries
|
||||
│
|
||||
└── sync/ # Optional: synced from built-in memory
|
||||
└── ...
|
||||
```
|
||||
|
||||
**The user defines the categories.** Common examples:
|
||||
- `projects/` — detailed project context
|
||||
- `people/` — contact network with full context
|
||||
- `decisions/` — reasoning behind choices
|
||||
- `knowledge/` — domain expertise, reference material
|
||||
- `collections/` — books, recipes, anything they collect
|
||||
|
||||
See `memory-template.md` for all templates.
|
||||
|
||||
## Quick Reference
|
||||
|
||||
| Topic | File |
|
||||
|-------|------|
|
||||
| First-time setup | `setup.md` |
|
||||
| All templates | `memory-template.md` |
|
||||
| Organization patterns | `patterns.md` |
|
||||
| Problems & fixes | `troubleshooting.md` |
|
||||
|
||||
---
|
||||
|
||||
## Core Rules
|
||||
|
||||
### 1. Separate from Built-In Memory
|
||||
|
||||
This system lives in `~/memory/`. Never modify:
|
||||
- Agent's MEMORY.md (workspace root)
|
||||
- Agent's `memory/` folder (if it exists in workspace)
|
||||
|
||||
**Parallel, not replacement.** Both systems work together.
|
||||
|
||||
### 2. User Defines Structure
|
||||
|
||||
During setup, ask what they want to store. Create categories based on their needs:
|
||||
|
||||
| They say... | Create |
|
||||
|-------------|--------|
|
||||
| "I have many projects" | `~/memory/projects/` |
|
||||
| "I meet lots of people" | `~/memory/people/` |
|
||||
| "I want to track decisions" | `~/memory/decisions/` |
|
||||
| "I'm learning [topic]" | `~/memory/knowledge/[topic]/` |
|
||||
| "I collect [things]" | `~/memory/collections/[things]/` |
|
||||
|
||||
**No preset structure.** Build what they need.
|
||||
|
||||
### 3. Every Category Has an Index
|
||||
|
||||
Each folder gets an INDEX.md that lists contents:
|
||||
|
||||
```markdown
|
||||
# Projects Index
|
||||
|
||||
| Name | Status | Updated | File |
|
||||
|------|--------|---------|------|
|
||||
| Alpha | Active | 2026-02 | alpha.md |
|
||||
| Beta | Paused | 2026-01 | beta.md |
|
||||
|
||||
Total: 2 active, 5 archived
|
||||
```
|
||||
|
||||
Indices stay small (<100 entries). When full, split into subcategories.
|
||||
|
||||
### 4. Write Immediately
|
||||
|
||||
When user shares important information:
|
||||
1. Write to appropriate file in ~/memory/
|
||||
2. Update the category INDEX.md
|
||||
3. Then respond
|
||||
|
||||
Don't wait. Don't batch. Write immediately.
|
||||
|
||||
### 5. Search Then Navigate
|
||||
|
||||
To find information:
|
||||
1. **Ask first:** "Is this in ~/memory/ or built-in memory?"
|
||||
2. **Search:** grep or semantic search in ~/memory/
|
||||
3. **Navigate:** INDEX.md → category → specific file
|
||||
|
||||
```bash
|
||||
# Quick search
|
||||
grep -r "keyword" ~/memory/
|
||||
|
||||
# Navigate
|
||||
cat ~/memory/INDEX.md # What categories exist?
|
||||
cat ~/memory/projects/INDEX.md # What projects?
|
||||
cat ~/memory/projects/alpha.md # Specific project
|
||||
```
|
||||
|
||||
### 6. Sync from Built-In (Optional)
|
||||
|
||||
If user wants certain info copied from built-in memory:
|
||||
|
||||
```
|
||||
~/memory/sync/
|
||||
├── preferences.md # Synced from built-in
|
||||
└── decisions.md # Synced from built-in
|
||||
```
|
||||
|
||||
**Sync is one-way:** Built-in → this system. Never modify built-in.
|
||||
|
||||
### 7. Scale by Splitting
|
||||
|
||||
When a category grows large:
|
||||
- INDEX.md > 100 entries → split into subcategories
|
||||
- Create sub-INDEX.md for each subcategory
|
||||
- Root INDEX.md points to subcategories
|
||||
|
||||
```
|
||||
~/memory/projects/
|
||||
├── INDEX.md # "See active/, archived/"
|
||||
├── active/
|
||||
│ ├── INDEX.md # 30 active projects
|
||||
│ └── ...
|
||||
└── archived/
|
||||
├── INDEX.md # 200 archived projects
|
||||
└── ...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## What to Store Here (vs Built-In)
|
||||
|
||||
| Store HERE (~/memory/) | Keep in BUILT-IN |
|
||||
|------------------------|------------------|
|
||||
| Detailed project histories | Current project status |
|
||||
| Full contact profiles | Key contacts quick-ref |
|
||||
| All decision reasoning | Recent decisions |
|
||||
| Domain knowledge bases | Quick facts |
|
||||
| Collections, inventories | — |
|
||||
| Anything that grows large | Summaries |
|
||||
|
||||
**Rule:** Built-in for quick context. Here for depth and scale.
|
||||
|
||||
---
|
||||
|
||||
## Finding Things
|
||||
|
||||
### For Small Memory (<50 files)
|
||||
```bash
|
||||
# Grep is fast enough
|
||||
grep -r "keyword" ~/memory/
|
||||
```
|
||||
|
||||
### For Large Memory (50+ files)
|
||||
Navigate via indices:
|
||||
```
|
||||
1. ~/memory/INDEX.md → find category
|
||||
2. ~/memory/{category}/INDEX.md → find item
|
||||
3. ~/memory/{category}/{item}.md → read details
|
||||
```
|
||||
|
||||
### For Huge Memory (500+ files)
|
||||
Use semantic search if available, or hierarchical indices:
|
||||
```
|
||||
~/memory/projects/INDEX.md → "web projects in web/"
|
||||
~/memory/projects/web/INDEX.md → "alpha project"
|
||||
~/memory/projects/web/alpha.md → details
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Maintenance
|
||||
|
||||
### Weekly (5 min)
|
||||
- Update INDEX.md files if entries added
|
||||
- Archive completed/inactive items
|
||||
|
||||
### Monthly (15 min)
|
||||
- Review category sizes
|
||||
- Split large categories
|
||||
- Remove outdated entries
|
||||
|
||||
### When Memory is Slow
|
||||
- Check INDEX.md sizes (keep <100 lines)
|
||||
- Split big categories into subcategories
|
||||
- Archive old content
|
||||
|
||||
---
|
||||
|
||||
## Common Traps
|
||||
|
||||
- **Modifying built-in memory** → Never touch agent's MEMORY.md or workspace memory/. This system is parallel.
|
||||
|
||||
- **No indices** → Without INDEX.md, finding things requires searching all files. Always maintain indices.
|
||||
|
||||
- **One giant category** → 500 items in one folder is slow. Split into subcategories.
|
||||
|
||||
- **Syncing everything** → Don't copy all built-in memory. Only sync what needs organization here.
|
||||
|
||||
- **Waiting to write** → Write immediately when user shares info. Don't batch.
|
||||
|
||||
---
|
||||
|
||||
## Security & Privacy
|
||||
|
||||
**Data location:**
|
||||
- All data in `~/memory/` on user's machine
|
||||
- No external services required
|
||||
- No network requests
|
||||
|
||||
**This skill does NOT:**
|
||||
- Access built-in agent memory (only reads if syncing)
|
||||
- Send data anywhere
|
||||
- Store credentials (never store secrets in memory)
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
Install with `clawhub install <slug>` if user confirms:
|
||||
- `decide` - Decision tracking patterns
|
||||
- `escalate` - When to involve humans
|
||||
- `learn` - Adaptive learning
|
||||
|
||||
## Feedback
|
||||
|
||||
- If useful: `clawhub star memory`
|
||||
- Stay updated: `clawhub sync`
|
||||
6
_meta.json
Normal file
6
_meta.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"ownerId": "kn73vp5rarc3b14rc7wjcw8f8580t5d1",
|
||||
"slug": "memory",
|
||||
"version": "1.0.2",
|
||||
"publishedAt": 1771774645950
|
||||
}
|
||||
292
memory-template.md
Normal file
292
memory-template.md
Normal file
@@ -0,0 +1,292 @@
|
||||
# Memory Templates
|
||||
|
||||
## System Configuration
|
||||
|
||||
Create `~/memory/config.md`:
|
||||
|
||||
```markdown
|
||||
# Memory Config
|
||||
|
||||
Created: YYYY-MM-DD
|
||||
Owner: [name]
|
||||
|
||||
## Sync Settings
|
||||
sync_from_builtin: false
|
||||
sync_categories: []
|
||||
|
||||
## Categories
|
||||
- projects/
|
||||
- people/
|
||||
- decisions/
|
||||
- [custom]/
|
||||
|
||||
## Preferences
|
||||
find_method: navigate | search | both
|
||||
maintenance: weekly | monthly
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Root Index
|
||||
|
||||
Create `~/memory/INDEX.md`:
|
||||
|
||||
```markdown
|
||||
# Memory Index
|
||||
|
||||
## Categories
|
||||
|
||||
| Category | Items | Updated | Index |
|
||||
|----------|-------|---------|-------|
|
||||
| Projects | 12 | 2026-02-22 | projects/INDEX.md |
|
||||
| People | 45 | 2026-02-20 | people/INDEX.md |
|
||||
| Decisions | 23 | 2026-02-22 | decisions/INDEX.md |
|
||||
|
||||
## Quick Stats
|
||||
Total items: ~80
|
||||
Last maintenance: 2026-02-15
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Projects
|
||||
|
||||
**Index: `~/memory/projects/INDEX.md`**
|
||||
```markdown
|
||||
# Projects Index
|
||||
|
||||
| Project | Status | Stack | Updated | File |
|
||||
|---------|--------|-------|---------|------|
|
||||
| Alpha | Active | React | 2026-02 | alpha.md |
|
||||
| Beta | Paused | Python | 2026-01 | beta.md |
|
||||
|
||||
Active: 5 | Paused: 3 | Archived: 20
|
||||
```
|
||||
|
||||
**Entry: `~/memory/projects/{name}.md`**
|
||||
```markdown
|
||||
# Project: [Name]
|
||||
|
||||
## Overview
|
||||
Status: active | paused | complete
|
||||
Started: YYYY-MM-DD
|
||||
Stack: [technologies]
|
||||
|
||||
## Description
|
||||
[What it is, why it matters]
|
||||
|
||||
## Key Decisions
|
||||
- [YYYY-MM-DD] [Decision and reasoning]
|
||||
|
||||
## History
|
||||
- [YYYY-MM-DD] [What happened]
|
||||
|
||||
## Current State
|
||||
[Where things stand]
|
||||
|
||||
## Next Steps
|
||||
- [ ] [Action]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## People
|
||||
|
||||
**Index: `~/memory/people/INDEX.md`**
|
||||
```markdown
|
||||
# People Index
|
||||
|
||||
## By Relationship
|
||||
|
||||
### Work
|
||||
| Name | Role | Company | File |
|
||||
|------|------|---------|------|
|
||||
| Alice | PM | Acme | alice.md |
|
||||
|
||||
### Clients
|
||||
| Name | Company | File |
|
||||
|------|---------|------|
|
||||
| Bob | ClientCo | bob.md |
|
||||
|
||||
### Personal
|
||||
| Name | Context | File |
|
||||
|------|---------|------|
|
||||
| Carol | Friend | carol.md |
|
||||
|
||||
Total: 45 contacts
|
||||
```
|
||||
|
||||
**Entry: `~/memory/people/{name}.md`**
|
||||
```markdown
|
||||
# [Name]
|
||||
|
||||
## Basic Info
|
||||
Role:
|
||||
Company:
|
||||
Relationship: work | client | personal
|
||||
Last contact: YYYY-MM-DD
|
||||
|
||||
## How We Know Each Other
|
||||
[Context]
|
||||
|
||||
## Key Facts
|
||||
- [Important things to remember]
|
||||
|
||||
## Communication Style
|
||||
- [How they prefer to communicate]
|
||||
|
||||
## History
|
||||
- [YYYY-MM-DD] [Interaction]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Decisions
|
||||
|
||||
**Index: `~/memory/decisions/INDEX.md`**
|
||||
```markdown
|
||||
# Decisions Index
|
||||
|
||||
## By Year
|
||||
|
||||
| Year | Count | File |
|
||||
|------|-------|------|
|
||||
| 2026 | 23 | 2026.md |
|
||||
| 2025 | 89 | 2025.md |
|
||||
|
||||
## By Category
|
||||
|
||||
| Category | Count | File |
|
||||
|----------|-------|------|
|
||||
| Technical | 45 | technical.md |
|
||||
| Business | 30 | business.md |
|
||||
| Personal | 37 | personal.md |
|
||||
```
|
||||
|
||||
**Entry: `~/memory/decisions/{category}.md` or `{year}.md`**
|
||||
```markdown
|
||||
# Decisions — [Category/Year]
|
||||
|
||||
## [YYYY-MM-DD] [Decision Title]
|
||||
|
||||
**Decision:** [What was decided]
|
||||
**Options considered:** [What else was possible]
|
||||
**Reasoning:** [Why this choice]
|
||||
**Outcome:** [What happened, if known]
|
||||
**Revisit:** [When to reconsider, if ever]
|
||||
|
||||
---
|
||||
|
||||
## [Another Decision]
|
||||
...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Knowledge
|
||||
|
||||
**Index: `~/memory/knowledge/INDEX.md`**
|
||||
```markdown
|
||||
# Knowledge Index
|
||||
|
||||
| Topic | Depth | Updated | File |
|
||||
|-------|-------|---------|------|
|
||||
| Machine Learning | Deep | 2026-02 | ml/ |
|
||||
| Cooking | Growing | 2026-01 | cooking.md |
|
||||
| Finance | Reference | 2025-12 | finance.md |
|
||||
```
|
||||
|
||||
**Entry: `~/memory/knowledge/{topic}.md`**
|
||||
```markdown
|
||||
# [Topic]
|
||||
|
||||
## Overview
|
||||
[What this is about]
|
||||
|
||||
## Key Concepts
|
||||
- **[Concept]:** [Explanation]
|
||||
|
||||
## References
|
||||
- [Source 1]
|
||||
- [Source 2]
|
||||
|
||||
## Notes
|
||||
[Learnings, insights]
|
||||
|
||||
## Questions
|
||||
- [Things still to learn]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Collections
|
||||
|
||||
**Index: `~/memory/collections/INDEX.md`**
|
||||
```markdown
|
||||
# Collections Index
|
||||
|
||||
| Collection | Items | Updated | File |
|
||||
|------------|-------|---------|------|
|
||||
| Books | 156 | 2026-02 | books.md |
|
||||
| Recipes | 45 | 2026-01 | recipes.md |
|
||||
| Ideas | 89 | 2026-02 | ideas.md |
|
||||
```
|
||||
|
||||
**Entry: Format varies by collection type**
|
||||
|
||||
Books example:
|
||||
```markdown
|
||||
# Books
|
||||
|
||||
## Read
|
||||
| Title | Author | Rating | Date | Notes |
|
||||
|-------|--------|--------|------|-------|
|
||||
| [Book] | [Author] | 5/5 | 2026-01 | [Key takeaway] |
|
||||
|
||||
## To Read
|
||||
- [Book] by [Author] — [Why interested]
|
||||
|
||||
## Notes on Specific Books
|
||||
### [Book Title]
|
||||
[Detailed notes]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Sync Folder (Optional)
|
||||
|
||||
If user wants to sync from built-in memory:
|
||||
|
||||
**`~/memory/sync/INDEX.md`**
|
||||
```markdown
|
||||
# Synced from Built-In Memory
|
||||
|
||||
| What | Source | Last Sync | File |
|
||||
|------|--------|-----------|------|
|
||||
| Preferences | MEMORY.md | 2026-02-22 | preferences.md |
|
||||
| Key Decisions | MEMORY.md | 2026-02-22 | decisions.md |
|
||||
|
||||
Note: This is one-way sync. Built-in memory is not modified.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Index Size Limits
|
||||
|
||||
| Index Type | Max Entries | When Exceeded |
|
||||
|------------|-------------|---------------|
|
||||
| Root INDEX.md | 20 categories | Unlikely, OK |
|
||||
| Category INDEX.md | 100 items | Split into subcategories |
|
||||
| Subcategory INDEX.md | 100 items | Split again |
|
||||
|
||||
**Splitting example:**
|
||||
```
|
||||
projects/
|
||||
├── INDEX.md # "See active/, archived/"
|
||||
├── active/
|
||||
│ ├── INDEX.md # Active projects
|
||||
│ └── ...
|
||||
└── archived/
|
||||
├── INDEX.md # Archived projects
|
||||
└── ...
|
||||
```
|
||||
197
patterns.md
Normal file
197
patterns.md
Normal file
@@ -0,0 +1,197 @@
|
||||
# Organization Patterns
|
||||
|
||||
## Pattern 1: Category-Based Structure
|
||||
|
||||
Most common. Organize by type of information:
|
||||
|
||||
```
|
||||
~/memory/
|
||||
├── projects/
|
||||
├── people/
|
||||
├── decisions/
|
||||
├── knowledge/
|
||||
└── collections/
|
||||
```
|
||||
|
||||
**Best for:** General use, multiple domains.
|
||||
|
||||
---
|
||||
|
||||
## Pattern 2: Domain-Focused Structure
|
||||
|
||||
Everything organized around one domain:
|
||||
|
||||
```
|
||||
~/memory/
|
||||
├── clients/
|
||||
├── deals/
|
||||
├── products/
|
||||
├── competitors/
|
||||
└── market-research/
|
||||
```
|
||||
|
||||
**Best for:** Professionals focused on one area (sales, research, etc).
|
||||
|
||||
---
|
||||
|
||||
## Pattern 3: Time-Based Structure
|
||||
|
||||
Organized by when things happened:
|
||||
|
||||
```
|
||||
~/memory/
|
||||
├── 2026/
|
||||
│ ├── q1/
|
||||
│ └── q2/
|
||||
├── 2025/
|
||||
└── archive/
|
||||
```
|
||||
|
||||
**Best for:** Journaling, logging, historical tracking.
|
||||
|
||||
---
|
||||
|
||||
## Pattern 4: Hybrid Structure
|
||||
|
||||
Mix of categories and time:
|
||||
|
||||
```
|
||||
~/memory/
|
||||
├── active/ # Current focus
|
||||
│ ├── projects/
|
||||
│ └── people/
|
||||
├── reference/ # Always relevant
|
||||
│ ├── knowledge/
|
||||
│ └── preferences/
|
||||
└── archive/ # Historical
|
||||
├── 2025/
|
||||
└── 2024/
|
||||
```
|
||||
|
||||
**Best for:** People who need both current and historical context.
|
||||
|
||||
---
|
||||
|
||||
## Pattern 5: Growing a Category
|
||||
|
||||
When a category gets big, split it:
|
||||
|
||||
**Before (100+ entries):**
|
||||
```
|
||||
~/memory/projects/INDEX.md # Too long
|
||||
```
|
||||
|
||||
**After (split by status):**
|
||||
```
|
||||
~/memory/projects/
|
||||
├── INDEX.md # Just points to subdirs
|
||||
├── active/
|
||||
│ └── INDEX.md # 20 entries
|
||||
├── paused/
|
||||
│ └── INDEX.md # 15 entries
|
||||
└── archived/
|
||||
└── INDEX.md # 100+ entries (OK, rarely accessed)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Pattern 6: Syncing from Built-In Memory
|
||||
|
||||
If user wants to copy info from agent's built-in memory:
|
||||
|
||||
```
|
||||
~/memory/sync/
|
||||
├── INDEX.md
|
||||
├── preferences.md # Copied from MEMORY.md
|
||||
└── key-decisions.md # Copied from MEMORY.md
|
||||
```
|
||||
|
||||
**Sync process:**
|
||||
1. Read from built-in (MEMORY.md, etc)
|
||||
2. Reformat for this system
|
||||
3. Write to ~/memory/sync/
|
||||
4. Update ~/memory/sync/INDEX.md with sync date
|
||||
|
||||
**Never modify built-in memory.** Sync is read-only.
|
||||
|
||||
---
|
||||
|
||||
## Pattern 7: Quick Capture → Organize Later
|
||||
|
||||
For fast entry without thinking about structure:
|
||||
|
||||
```
|
||||
~/memory/
|
||||
├── inbox/
|
||||
│ └── INDEX.md # Unsorted items
|
||||
├── projects/
|
||||
└── ...
|
||||
```
|
||||
|
||||
**Flow:**
|
||||
1. Capture to inbox/ immediately
|
||||
2. Weekly: sort inbox/ into proper categories
|
||||
3. Delete from inbox/ after sorting
|
||||
|
||||
---
|
||||
|
||||
## Pattern 8: Cross-References
|
||||
|
||||
When items relate to multiple categories:
|
||||
|
||||
```markdown
|
||||
# ~/memory/projects/alpha.md
|
||||
|
||||
## Team
|
||||
- Alice (PM) → see people/alice.md
|
||||
- Bob (Dev) → see people/bob.md
|
||||
|
||||
## Key Decisions
|
||||
- Database choice → see decisions/2026.md#database-alpha
|
||||
```
|
||||
|
||||
**Use relative links.** Never duplicate content.
|
||||
|
||||
---
|
||||
|
||||
## Pattern 9: Archiving Old Content
|
||||
|
||||
When content is old but might be needed:
|
||||
|
||||
**Don't delete. Archive:**
|
||||
```bash
|
||||
# Move to archive
|
||||
mv ~/memory/projects/old-thing.md ~/memory/archive/projects/
|
||||
|
||||
# Update indices
|
||||
# 1. Remove from projects/INDEX.md
|
||||
# 2. Add to archive/INDEX.md
|
||||
```
|
||||
|
||||
**Archive INDEX.md:**
|
||||
```markdown
|
||||
# Archive
|
||||
|
||||
| Item | Type | Archived | Reason |
|
||||
|------|------|----------|--------|
|
||||
| OldProject | project | 2026-01 | Completed |
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Pattern 10: Search Optimization
|
||||
|
||||
Make content findable with good keywords:
|
||||
|
||||
```markdown
|
||||
# ~/memory/people/alice.md
|
||||
|
||||
# Alice Smith
|
||||
|
||||
**Keywords:** PM, product manager, Acme Corp, alpha project, weekly sync
|
||||
|
||||
## Profile
|
||||
...
|
||||
```
|
||||
|
||||
When searching, keywords at top help grep/semantic search find the right file.
|
||||
95
setup.md
Normal file
95
setup.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# Setup — Memory
|
||||
|
||||
Read this on first use. Guide the user through setting up their personal memory system.
|
||||
|
||||
## Your Attitude
|
||||
|
||||
You're giving them superpowers. Infinite memory, perfectly organized, for anything they want. This is exciting — help them see the possibilities.
|
||||
|
||||
**Important:** This is SEPARATE from built-in agent memory. It's a parallel system that complements what already exists.
|
||||
|
||||
## The Conversation
|
||||
|
||||
### 1. Explain What This Is
|
||||
|
||||
"I can set up an infinite memory system for you — separate from my basic memory. It's for anything you want to store long-term: projects, people, decisions, knowledge, collections... whatever matters to you.
|
||||
|
||||
It won't interfere with how I normally remember things. This is additional, organized storage that scales as big as you need."
|
||||
|
||||
### 2. Ask What They Need
|
||||
|
||||
"What kinds of things would be most useful to have perfectly organized?
|
||||
|
||||
Some examples people use:
|
||||
- **Projects** — full history, decisions, context for each project
|
||||
- **People** — detailed profiles of everyone you work with
|
||||
- **Decisions** — why you chose X over Y, so you remember later
|
||||
- **Knowledge** — things you're learning, reference material
|
||||
- **Collections** — books, recipes, ideas, anything you collect"
|
||||
|
||||
Let them tell you. Don't assume.
|
||||
|
||||
### 3. Ask About Sync
|
||||
|
||||
"My built-in memory already tracks some things. Would you like me to sync any of that into this new system?
|
||||
|
||||
For example, I could copy:
|
||||
- Preferences you've told me
|
||||
- Important decisions we've made
|
||||
- Key contacts
|
||||
|
||||
Or we can start fresh and only add new things."
|
||||
|
||||
### 4. Create the Structure
|
||||
|
||||
Based on their answers, create `~/memory/` with:
|
||||
- `config.md` — their preferences
|
||||
- `INDEX.md` — root index
|
||||
- Folders for each category they mentioned
|
||||
- INDEX.md in each folder
|
||||
|
||||
### 5. First Entry
|
||||
|
||||
Ask: "What's something you'd like me to remember right now?"
|
||||
|
||||
Store it immediately. Show them it works.
|
||||
|
||||
## What You're Saving
|
||||
|
||||
**In ~/memory/config.md:**
|
||||
```markdown
|
||||
# Memory Config
|
||||
|
||||
Created: YYYY-MM-DD
|
||||
Sync from built-in: [yes/no]
|
||||
|
||||
## Categories
|
||||
- projects/
|
||||
- people/
|
||||
- [whatever they said]
|
||||
|
||||
## Preferences
|
||||
- [How they want to find things]
|
||||
- [How often to organize]
|
||||
```
|
||||
|
||||
**In ~/memory/INDEX.md:**
|
||||
```markdown
|
||||
# Memory Index
|
||||
|
||||
| Category | Description | Index |
|
||||
|----------|-------------|-------|
|
||||
| Projects | Project histories | projects/INDEX.md |
|
||||
| People | Contact network | people/INDEX.md |
|
||||
|
||||
Last updated: YYYY-MM-DD
|
||||
```
|
||||
|
||||
## When "Done"
|
||||
|
||||
Once you've:
|
||||
1. Created ~/memory/ with their categories
|
||||
2. Set up INDEX.md files
|
||||
3. Stored one real thing
|
||||
|
||||
...the system is live. It grows from there through normal use.
|
||||
227
troubleshooting.md
Normal file
227
troubleshooting.md
Normal file
@@ -0,0 +1,227 @@
|
||||
# Troubleshooting
|
||||
|
||||
## Can't Find Information
|
||||
|
||||
**Symptoms:**
|
||||
- "I don't see that in memory"
|
||||
- Information exists but not found
|
||||
|
||||
**Fixes:**
|
||||
|
||||
| Cause | Check | Fix |
|
||||
|-------|-------|-----|
|
||||
| Not indexed | `grep -l "topic" ~/memory/*/INDEX.md` | Add to relevant INDEX |
|
||||
| Wrong category | Check other categories | Move to correct place |
|
||||
| Search too narrow | Try different keywords | Add keywords to file header |
|
||||
| In built-in, not here | Check agent's MEMORY.md | Sync if needed |
|
||||
|
||||
**Quick search:**
|
||||
```bash
|
||||
# Find across all memory
|
||||
grep -r "keyword" ~/memory/
|
||||
|
||||
# Find in indices only (faster)
|
||||
grep -r "keyword" ~/memory/*/INDEX.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Memory Getting Slow
|
||||
|
||||
**Symptoms:**
|
||||
- Takes long to find things
|
||||
- Category indices are huge
|
||||
|
||||
**Fixes:**
|
||||
|
||||
1. **Check index sizes:**
|
||||
```bash
|
||||
wc -l ~/memory/*/INDEX.md
|
||||
# Any over 100 lines? Split them.
|
||||
```
|
||||
|
||||
2. **Split large categories:**
|
||||
```
|
||||
Before: projects/INDEX.md (150 entries)
|
||||
After: projects/active/INDEX.md (30 entries)
|
||||
projects/archived/INDEX.md (120 entries)
|
||||
```
|
||||
|
||||
3. **Archive old content:**
|
||||
```bash
|
||||
# Move old items to archive
|
||||
mv ~/memory/projects/old.md ~/memory/archive/
|
||||
# Update both indices
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Conflicting with Built-In Memory
|
||||
|
||||
**Symptoms:**
|
||||
- Agent confused about which memory to use
|
||||
- Duplicate information
|
||||
|
||||
**Rule:** This system (`~/memory/`) is SEPARATE from built-in.
|
||||
|
||||
**Fixes:**
|
||||
|
||||
1. **Never modify built-in memory** from this skill
|
||||
2. **Check locations:**
|
||||
- Built-in: workspace `MEMORY.md`, workspace `memory/`
|
||||
- This skill: `~/memory/` (home directory)
|
||||
3. **If duplicates:** Keep detailed version here, summary in built-in
|
||||
|
||||
---
|
||||
|
||||
## Structure is Messy
|
||||
|
||||
**Symptoms:**
|
||||
- Files everywhere
|
||||
- Hard to know where things go
|
||||
|
||||
**Fixes:**
|
||||
|
||||
1. **Establish clear categories:**
|
||||
```bash
|
||||
ls ~/memory/
|
||||
# Should show clear category folders, not loose files
|
||||
```
|
||||
|
||||
2. **No files in root:**
|
||||
```
|
||||
~/memory/
|
||||
├── config.md # OK (system file)
|
||||
├── INDEX.md # OK (root index)
|
||||
├── projects/ # OK (category)
|
||||
├── random.md # BAD - put in a category
|
||||
```
|
||||
|
||||
3. **Use inbox for unsorted:**
|
||||
```bash
|
||||
mkdir ~/memory/inbox
|
||||
# Put unclear items there, sort weekly
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Sync Not Working
|
||||
|
||||
**Symptoms:**
|
||||
- Sync folder empty or outdated
|
||||
- Built-in changes not reflected
|
||||
|
||||
**Fixes:**
|
||||
|
||||
1. **Check sync is enabled:**
|
||||
```bash
|
||||
cat ~/memory/config.md | grep sync
|
||||
```
|
||||
|
||||
2. **Manual sync:**
|
||||
- Read from agent's MEMORY.md
|
||||
- Extract relevant sections
|
||||
- Write to ~/memory/sync/
|
||||
- Update ~/memory/sync/INDEX.md with date
|
||||
|
||||
3. **Remember:** Sync is manual, not automatic. Re-sync periodically.
|
||||
|
||||
---
|
||||
|
||||
## Forgot What Categories Exist
|
||||
|
||||
**Quick check:**
|
||||
```bash
|
||||
# See all categories
|
||||
cat ~/memory/INDEX.md
|
||||
|
||||
# See folder structure
|
||||
ls ~/memory/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## INDEX.md Out of Date
|
||||
|
||||
**Symptoms:**
|
||||
- Files exist but not in INDEX
|
||||
- INDEX lists files that don't exist
|
||||
|
||||
**Fix:**
|
||||
|
||||
```bash
|
||||
# Check for unlisted files
|
||||
for f in ~/memory/projects/*.md; do
|
||||
name=$(basename "$f")
|
||||
grep -q "$name" ~/memory/projects/INDEX.md || echo "Not indexed: $name"
|
||||
done
|
||||
|
||||
# Check for dead links
|
||||
grep -oE '[a-z]+\.md' ~/memory/projects/INDEX.md | while read f; do
|
||||
[ ! -f ~/memory/projects/"$f" ] && echo "Missing: $f"
|
||||
done
|
||||
```
|
||||
|
||||
**Rebuild INDEX if badly broken:**
|
||||
```bash
|
||||
# Generate new index from existing files
|
||||
ls ~/memory/projects/*.md | while read f; do
|
||||
name=$(basename "$f" .md)
|
||||
echo "| $name | ? | $(date +%Y-%m-%d) | $name.md |"
|
||||
done
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Not Sure What Goes Where
|
||||
|
||||
**Decision tree:**
|
||||
|
||||
```
|
||||
Is it about a specific project?
|
||||
→ projects/
|
||||
|
||||
Is it about a person?
|
||||
→ people/
|
||||
|
||||
Is it a decision with reasoning?
|
||||
→ decisions/
|
||||
|
||||
Is it reference/learning material?
|
||||
→ knowledge/
|
||||
|
||||
Is it a list of things you collect?
|
||||
→ collections/
|
||||
|
||||
None of the above?
|
||||
→ inbox/ (sort later)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Quick Health Check
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
echo "=== Memory Health Check ==="
|
||||
|
||||
# Check root
|
||||
[ -d ~/memory ] && echo "✓ ~/memory exists" || echo "✗ ~/memory missing"
|
||||
[ -f ~/memory/INDEX.md ] && echo "✓ Root INDEX.md exists" || echo "✗ Root INDEX.md missing"
|
||||
[ -f ~/memory/config.md ] && echo "✓ config.md exists" || echo "✗ config.md missing"
|
||||
|
||||
# Check categories have indices
|
||||
echo ""
|
||||
echo "Category indices:"
|
||||
for dir in ~/memory/*/; do
|
||||
name=$(basename "$dir")
|
||||
[ -f "$dir/INDEX.md" ] && echo " ✓ $name/INDEX.md" || echo " ✗ $name/INDEX.md missing"
|
||||
done
|
||||
|
||||
# Count total files
|
||||
total=$(find ~/memory -name "*.md" | wc -l)
|
||||
echo ""
|
||||
echo "Total files: $total"
|
||||
|
||||
echo "=== Done ==="
|
||||
```
|
||||
Reference in New Issue
Block a user