openclaw-home-pc/openclaw/skills/self-improving-1.2.10/operations.md
2026-03-21 15:31:06 +08:00

3.4 KiB
Executable File

Memory Operations

User Commands

Command Action
"What do you know about X?" Search all tiers, return matches with sources
"Show my memory" Display memory.md contents
"Show [project] patterns" Load and display specific namespace
"Forget X" Remove from all tiers, confirm deletion
"Forget everything" Full wipe with export option
"What changed recently?" Show last 20 corrections
"Export memory" Generate downloadable archive
"Memory status" Show tier sizes, last compaction, health

Automatic Operations

On Session Start

  1. Load memory.md (HOT tier)
  2. Check index.md for context hints
  3. If project detected → preload relevant namespace

On Correction Received

1. Parse correction type (preference, pattern, override)
2. Check if duplicate (exists in any tier)
3. If new:
   - Add to corrections.md with timestamp
   - Increment correction counter
4. If duplicate:
   - Bump counter, update timestamp
   - If counter >= 3: ask to confirm as rule
5. Determine namespace (global, domain, project)
6. Write to appropriate file
7. Update index.md line counts

On Pattern Match

When applying learned pattern:

1. Find pattern source (file:line)
2. Apply pattern
3. Cite source: "Using X (from memory.md:15)"
4. Log usage for decay tracking

Weekly Maintenance (Cron)

1. Scan all files for decay candidates
2. Move unused >30 days to WARM
3. Archive unused >90 days to COLD
4. Run compaction if any file >limit
5. Update index.md
6. Generate weekly digest (optional)

File Formats

memory.md (HOT)

# Self-Improving Memory

## Confirmed Preferences
- format: bullet points over prose (confirmed 2026-01)
- tone: direct, no hedging (confirmed 2026-01)

## Active Patterns
- "looks good" = approval to proceed (used 15x)
- single emoji = acknowledged (used 8x)

## Recent (last 7 days)
- prefer SQLite for MVPs (corrected 02-14)

corrections.md

# Corrections Log

## 2026-02-15
- [14:32] Changed verbose explanation → bullet summary
  Type: communication
  Context: Telegram response
  Confirmed: pending (1/3)

## 2026-02-14
- [09:15] Use SQLite not Postgres for MVP
  Type: technical
  Context: database discussion
  Confirmed: yes (said "always")

projects/{name}.md

# Project: my-app

Inherits: global, domains/code

## Patterns
- Use Tailwind (project standard)
- No Prettier (eslint only)
- Deploy via GitLab CI

## Overrides
- semicolons: yes (overrides global no-semi)

## History
- Created: 2026-01-15
- Last active: 2026-02-15
- Corrections: 12

Edge Case Handling

Contradiction Detected

Pattern A: "Use tabs" (global, confirmed)
Pattern B: "Use spaces" (project, corrected today)

Resolution:
1. Project overrides global → use spaces for this project
2. Log conflict in corrections.md
3. Ask: "Should spaces apply only to this project or everywhere?"

User Changes Mind

Old: "Always use formal tone"
New: "Actually, casual is fine"

Action:
1. Archive old pattern with timestamp
2. Add new pattern as tentative
3. Keep archived for reference ("You previously preferred formal")

Context Ambiguity

User says: "Remember I like X"

But which namespace?
1. Check current context (project? domain?)
2. If unclear, ask: "Should this apply globally or just here?"
3. Default to most specific active context