← Basic Memory CloudCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Basic Memory Cloud
Snapshot Sep 30, 2026 · 22:48 UTC · version 2.0.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "memory-lifecycle",
"description": "Manage entity status transitions in Basic Memory: archive completed work, move notes between status folders, update frontmatter, and handle edge cases. Use when marking items complete, archiving old entities, or managing any folder-based status workflow.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 400
}
],
"skill_md_contents": "---\nname: memory-lifecycle\ndescription: \"Manage entity status transitions in Basic Memory: archive completed work, move notes between status folders, update frontmatter, and handle edge cases. Use when marking items complete, archiving old entities, or managing any folder-based status workflow.\"\n---\n\n# Memory Lifecycle\n\nManage 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.\n\n## When to Use\n\n- User says something is \"done\", \"finished\", \"completed\", \"submitted\", \"missed\", or \"cancelled\"\n- Moving entities between status folders (active → archive, pipeline → active, etc.)\n- Reverting a mistaken completion\n- Periodic cleanup of stale active items\n\n## Core Principle: Archive, Never Delete\n\nDeleting 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.\n\n```\n# Good — entity stays in the knowledge graph\nmove_note → active/ to archive/\n\n# Bad — knowledge is lost\ndelete_note\n```\n\nThe only exception: notes created by mistake (typos, true duplicates) can be deleted.\n\n## Folder Conventions\n\nOrganize entities by status using folders. The exact folder names depend on your domain, but follow a consistent pattern:\n\n```\nentities/\n active/ # Currently relevant, in-progress\n archive/ # Completed, no longer active, but worth keeping\n pipeline/ # Future items, not yet started\n```\n\nFor tasks specifically:\n\n```\ntasks/\n active/ # Work in progress\n completed/ # Finished work\n```\n\nFor any entity type with a clear lifecycle:\n\n```\n[type]/\n active/ # Current\n [end-state]/ # Whatever \"done\" means for this type\n```\n\nPick folder names that match your domain. The pattern matters more than the specific names.\n\n## Status Detection\n\nWhen the user mentions completion or status change, extract the intent:\n\n| Signal | Status | Action |\n|--------|--------|--------|\n| \"finished\", \"done\", \"completed\", \"shipped\" | Complete | Move to archive/completed folder |\n| \"submitted\", \"sent\", \"delivered\" | Complete | Move to archive/completed folder |\n| \"missed\", \"passed\", \"skipped\", \"expired\" | Missed | Move to archive or missed folder |\n| \"cancelled\", \"abandoned\", \"killed\" | Cancelled | Move to archive folder |\n| \"paused\", \"on hold\", \"deferred\" | Paused | Update frontmatter status, keep in place |\n| \"restarting\", \"reopening\", \"reviving\" | Reactivate | Move back to active folder |\n\n## Workflow\n\n### 1. Find the Entity\n\nSearch Basic Memory with multiple variations to locate the entity:\n\n```python\nsearch_notes(query=\"quarterly report\")\nsearch_notes(query=\"Q1 report\")\n```\n\nIf multiple matches come back, present options and ask which one.\n\nIf no match is found, ask for clarification — don't guess.\n\n### 2. Move the File\n\nUse `move_note` to relocate the entity to the appropriate status folder:\n\n```python\nmove_note(\n identifier=\"tasks/active/quarterly-report\",\n destination_path=\"tasks/completed/quarterly-report.md\"\n)\n```\n\nThe permalink stays the same, so all existing `[[wiki-links]]` and `memory://` URLs continue to resolve.\n\n### 3. Update Frontmatter\n\nAfter moving, update the status in frontmatter to match:\n\n```python\nedit_note(\n identifier=\"quarterly-report\",\n operation=\"find_replace\",\n find_text=\"status: active\",\n content=\"status: completed\"\n)\n```\n\nIf there's a completion date field, set it:\n\n```python\nedit_note(\n identifier=\"quarterly-report\",\n operation=\"find_replace\",\n find_text=\"completed:\",\n content=\"completed: 2026-02-22\"\n)\n```\n\n### 4. Confirm\n\nReport what was done concisely:\n\n```\nMarked complete: Quarterly Report\n Moved to: tasks/completed/quarterly-report.md\n Status: completed\n```\n\n## Edge Cases\n\n### Already Archived\n\nIf the entity is already in an archive/completed folder, notify the user:\n\n> \"Quarterly Report is already in tasks/completed/. Want me to update anything on it?\"\n\n### Partial Completion\n\nSometimes only part of an entity is done. Don't move it — instead, update observations or status notes within the entity to reflect partial progress.\n\n### Revert / Reactivate\n\nIf something was archived by mistake, move it back:\n\n```python\nmove_note(\n identifier=\"tasks/completed/quarterly-report\",\n destination_path=\"tasks/active/quarterly-report.md\"\n)\n\nedit_note(\n identifier=\"quarterly-report\",\n operation=\"find_replace\",\n find_text=\"status: completed\",\n content=\"status: active\"\n)\n```\n\n### Status Without Movement\n\nSome 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.\n\n## Relationship to Other Skills\n\n- **memory-tasks**: Tasks are a specific lifecycle case. This skill covers the general pattern; memory-tasks covers task-specific fields (steps, current_step, context).\n- **memory-notes**: Use search-before-create (from memory-notes) to find the entity before transitioning it.\n- **memory-defrag**: Periodic defrag can identify stale active items that should be archived.\n\n## Guidelines\n\n- **Archive, never delete.** The knowledge graph benefits from historical context.\n- **Move first, then update frontmatter.** This order ensures the file is in the right place even if the edit step fails.\n- **Permalinks survive moves.** Links to the entity keep working after a `move_note`.\n- **Be concise in confirmations.** The user knows their system — just report what changed.\n- **Ask when ambiguous.** If multiple entities match or the target folder isn't clear, ask rather than guess.\n- **Batch operations are fine.** If the user says \"archive all completed tasks\", find them all, confirm the list, then move them in sequence.\n"
}SHA-256: 61cc132709c42040b2155b56226881b34a3ae25c97a7c2963d805c3566b4195d