Skip to content
OpenSmartRoute
Skillv1.0.0

memory

Unified read-side memory operations including knowledge graph search, session context loading, decision timeline viewing, and Mermaid graph visualization. Subcommands: search, load, history, viz, stat

by yonatangross(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from yonatangross/orchestkit (src/skills/memory/SKILL.md) via skills.sh. Install upstream with npx skills add yonatangross/orchestkit --skill memory. Copyright stays with the author (MIT).

Memory - Read & Access Operations

Unified read-side memory skill with subcommands for searching, loading, syncing, history, and visualization.

Cross-session read strategy (Opus 5 / CC 2.1.111+): Opus 5 reads filesystem memory reliably across sessions. When loading context at session start, prefer the layered read order:

  1. ~/.claude/projects/<slug>/memory/MEMORY.md (durable index — load first, always)
  2. .claude/chain/state.json + most recent NN-*.json handoff (session continuation)
  3. MCP mcp__memory__search_nodes for anything the filesystem index doesn't answer (typed graph traversal)

Layer 1 is cheap (small index file), Layer 2 is scoped (session-specific), Layer 3 is selective (only when needed). Avoid dumping the full knowledge graph into context — use the index to narrow the search first.

Argument Resolution

SUBCOMMAND = "$ARGUMENTS[0]"  # First token: search, load, history, viz, status
QUERY = "$ARGUMENTS[1]"       # Second token onward: search query or flags
# $ARGUMENTS is the full string (CC 2.1.59 indexed access)

Usage

/ork:memory search <query>  # Search knowledge graph
/ork:memory load             # Load context at session start
/ork:memory history          # View decision timeline
/ork:memory viz              # Visualize knowledge graph
/ork:memory status           # Show memory system health

CRITICAL: Use AskUserQuestion When No Subcommand

If invoked without a subcommand, ask the user what they want:

AskUserQuestion(
  questions=[{
    "question": "What memory operation do you need?",
    "header": "Operation",
    "options": [
      {"label": "search", "description": "Search decisions and patterns in knowledge graph"},
      {"label": "load", "description": "Load relevant context for this session"},
      {"label": "history", "description": "Decision timeline + knowledge-graph viz (--mermaid)"},
      {"label": "status", "description": "Check memory system health"}
    ],
    "multiSelect": false
  }]
)

Subcommands

Load details: Read("references/memory-commands.md") for full usage, flags, output formats, and context-aware result limits for each subcommand.

Subcommand Purpose
search Search past decisions, patterns, entities. Supports --category (maps to metadata.category), --limit, --agent (scopes by agent_id), --global filter flags
load Auto-load relevant memories at session start. Supports --project, --global
history Decision timeline with table, Mermaid, or JSON output. Supports --since, --mermaid
viz Render knowledge graph as Mermaid diagram. See also Read("references/mermaid-patterns.md")
status Memory system health check

Scheduled Sweeps (cron)

Nightly KG staleness report

Cron job in .github/workflows/memory-staleness.yml runs nightly at 04:00 UTC. Calls scripts/staleness_cron.py to scan ALL memory MCP entities, flag those whose latest observation timestamp is older than 30 days, and write a Markdown report to docs/reports/memory-staleness-YYYY-MM-DD.md.

python3 ${CLAUDE_SKILL_DIR}/scripts/staleness_cron.py docs/reports/ \
    --threshold-days 30 --limit 50

Auto-skip conditions (all exit 0, all WARN-logged):

Skip reason Trigger
yg-mcp-core not importable yg-mcp-core>=0.3.0 not installed (orchestkit is public; yg-mcp-core lives on private pypi.yonyon.ai — HQ-only)
memory MCP unreachable memory MCP server down OR .mcp.json doesn't define memory

Report contents:

  • Total / stale / fresh entity counts
  • Top N stale entries sorted by staleness (no-timestamp first, then oldest → newest)
  • Each row: name, entityType, age in days, observations count
  • Suggested actions per age bucket (>90d review, >180d archive candidate)

Treats entities with no parsable timestamp as stale — operator intervention is the right outcome (backfill last_read observation OR prune).

Pure helpers (parse_iso_timestamp, latest_observation_timestamp, is_stale, build_report_payload, render_markdown) live in sibling staleness_lib.py for unit-testability.

Mirrors Yonatan-HQ/hq-ext-plugin#194 (audio_podcast) and orchestkit#1886 (post-synth podcast) + #1887 (memory writeback) pattern. Unblocked by Yonatan-HQ/core#993 (yg-mcp-core 0.3.0).


Workflow

1. Parse Subcommand

Extract first argument as subcommand
If no subcommand -> AskUserQuestion
Validate subcommand is one of: search, load, history, viz, status
Parse remaining flags
Check for --agent <agent-id> flag → agent_id: "ork:{agent-id}"

2. Execute Subcommand

Route to appropriate handler based on subcommand.

3. Report Results

Format output appropriate to the operation.


Rules Quick Reference

Rule Impact What It Covers
entity-extraction-patterns (load rules/entity-extraction-patterns.md) HIGH Entity types, relation types, graph query semantics
deduplication-strategy (load rules/deduplication-strategy.md) HIGH Edit-over-Write pattern, anchor-based insertion, verification

Session Resume

Load details: Read("references/session-resume-patterns.md") for CC 2.1.31 resume hints, context capture before ending, and resume workflows for PRs, issues, and implementations.


Related Skills

  • ork:remember - Store decisions and patterns (write-side)

Error Handling

  • If graph empty for viz: Show helpful message about using /ork:remember
  • If subcommand invalid: Show usage help
  • If memory files corrupt: Report and offer repair
  • If search query empty: Show recent entities instead
  • If no search results: Suggest alternatives

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/yonatangross-orchestkit-memory/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

yonatangross-orchestkit-memory.ocm.jsonjson
{
  "ocm": "1",
  "id": "yonatangross-orchestkit-memory",
  "kind": "skill",
  "name": "memory",
  "description": "Unified read-side memory operations including knowledge graph search, session context loading, decision timeline viewing, and Mermaid graph visualization. Subcommands: search, load, history, viz, status. Complements /ork:remember (write-side). Use when searching past decisions, loading context, or visualizing the knowledge graph.",
  "publisher": "yonatangross",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "memory",
      "graph",
      "session",
      "context",
      "sync",
      "visualization",
      "history",
      "search",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Unified read-side memory operations including knowledge graph search, session context loading, decision timeline viewing, and Mermaid graph visualization. Subcommands: search, load, history, viz, status. Complements /ork:remember (write-side). Use when searching past decisions, loading context, or visualizing the knowledge graph."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/yonatangross/orchestkit",
      "path": "src/skills/memory/SKILL.md",
      "ref": "HEAD",
      "url": "https://www.skills.sh/yonatangross/orchestkit/memory",
      "key": "yonatangross/orchestkit/src/skills/memory/SKILL.md"
    },
    "compatibility": "Claude Code 2.1.251+. Requires memory MCP server.",
    "allowed_tools": [
      "Read",
      "Grep",
      "Glob",
      "Bash",
      "AskUserQuestion",
      "mcp__memory__search_nodes",
      "mcp__memory__read_graph"
    ],
    "license": "MIT"
  },
  "instructions": "# Memory - Read & Access Operations\n\nUnified read-side memory skill with subcommands for searching, loading, syncing, history, and visualization.\n\n> **Cross-session read strategy (Opus 5 / CC 2.1.111+):** Opus 5 reads filesystem memory reliably across sessions. When loading context at session start, prefer the layered read order:\n> 1. `~/.claude/projects/<slug>/memory/MEMORY.md` (durable index — load first, always)\n> 2. `.claude/chain/state.json` + most recent `NN-*.json` handoff (session continuation)\n> 3. MCP `mcp__memory__search_nodes` for anything the filesystem index doesn't answer (typed",
  "cost": {
    "context_tokens": 1445
  }
}

Fetch it by URL: GET /api/v1/registry/yonatangross-orchestkit-memory/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.