SuperAPI AI Directory

memory-lifecycle

General & other

View repository

Updated 10-15 17:24

About this skill

Memory Lifecycle

Manage how entities move through status stages in Basic Memory. The core principle: archive, never delete. Completed work is valuable context — move it out of the active view, but keep it in the knowledge graph.

When to Use

  • User says something is "done", "finished", "completed", "submitted", "missed", or "cancelled"
  • Moving entities between status folders (active → archive, pipeline → active, etc.)
  • Reverting a mistaken completion
  • Periodic cleanup of stale active items

Core Principle: Archive, Never Delete

Deleting a note removes it from the knowledge graph — all its observations, relations, and history disappear. Archiving preserves everything while signaling the entity is no longer active.

# Good — entity stays in the knowledge graph
move_note → active/ to archive/
Bad — knowledge is lost

delete_note


The only exception: notes created by mistake (typos, true duplicates) can be deleted.

## Folder Conventions

Organize entities by status using folders. The exact folder names depend on your domain, but follow a consistent pattern:

entities/ active/ # Currently relevant, in-progress archive/ # Completed, no longer active, but worth keeping pipeline/ # Future items, not yet started


For tasks specifically:

tasks/ active/ # Work in progress completed/ # Finished work


For any entity type with a clear lifecycle:

[type]/ active/ # Current [end-state]/ # Whatever "done" means for this type


Pick folder names that match your domain. The pattern matters more than the specific names.

## Status Detection

When the user mentions completion or status change, extract the intent:

| Signal | Status | Action |
|--------|--------|--------|
| "finished", "done", "completed", "shipped" | Complete | Move to archive/completed folder |
| "submitted", "sent", "delivered" | Complete | Move to archive/completed folder |
| "missed", "passed", "skipped", "expired" | Missed | Move to archive or missed folder |
| "cancelled", "abandoned", "killed" | Cancelled | Move to archive folder |
| "paused", "on hold", "deferred" | Paused | Update frontmatter status, keep in place |
| "restarting", "reopening", "reviving" | Reactivate | Move back to active folder |

## Workflow

### 1. Find the Entity

Search Basic Memory with multiple variations to locate the entity:

```python
search_notes(query="quarterly report")
search_notes(query="Q1 report")

If multiple matches come back, present options and ask which one.

If no match is found, ask for clarification — don't guess.

2. Move the File

Use move_note to relocate the entity to the appropriate status folder:

move_note(
  identifier="tasks/active/quarterly-report",
  destination_path="tasks/completed/quarterly-report.md"
)

The permalink stays the same, so all existing [[wiki-links]] and memory:// URLs continue to resolve.

3. Update Frontmatter

After moving, update the status in frontmatter to match:

edit_note(
  identifier="quarterly-report",
  operation="find_replace",
  find_text="status: active",
  content="status: completed"
)

If there's a completion date field, set it:

edit_note(
  identifier="quarterly-report",
  operation="find_replace",
  find_text="completed:",
  content="completed: 2026-02-22"
)

4. Confirm

Report what was done concisely:

Marked complete: Quarterly Report
  Moved to: tasks/completed/quarterly-report.md
  Status: completed

Edge Cases

Already Archived

If the entity is already in an archive/completed folder, notify the user:

"Quarterly Report is already in tasks/completed/. Want me to update anything on it?"

Partial Completion

Sometimes only part of an entity is done. Don't move it — instead, update observations or status notes within the entity to reflect partial progress.

Revert / Reactivate

If something was archived by mistake, move it back:

move_note(
  identifier="tasks/completed/quarterly-report",
  destination_path="tasks/active/quarterly-report.md"
)

edit_note(
  identifier="quarterly-report",
  operation="find_replace",
  find_text="status: completed",
  content="status: active"
)

Status Without Movement

Some status changes don't require a folder move — "paused" or "blocked" items often stay in active/ with just a frontmatter update. Reserve folder moves for terminal or major state transitions.

Relationship to Other Skills

  • memory-tasks: Tasks are a specific lifecycle case. This skill covers the general pattern; memory-tasks covers task-specific fields (steps, current_step, context).
  • memory-notes: Use search-before-create (from memory-notes) to find the entity before transitioning it.
  • memory-defrag: Periodic defrag can identify stale active items that should be archived.

Guidelines

  • Archive, never delete. The knowledge graph benefits from historical context.
  • Move first, then update frontmatter. This order ensures the file is in the right place even if the edit step fails.
  • Permalinks survive moves. Links to the entity keep working after a move_note.
  • Be concise in confirmations. The user knows their system — just report what changed.
  • Ask when ambiguous. If multiple entities match or the target folder isn't clear, ask rather than guess.
  • Batch operations are fine. If the user says "archive all completed tasks", find them all, confirm the list, then move them in sequence.