extend-memory-tool

Adds new actions and parameters to the memory tool across schema, dispatch, and data model.

10|1|Updated Jul 7, 2026
One-click install
npx skills add https://github.com/catalystctl/catcode --skill extend-memory-tool-catalystctl
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: extend-memory-tool
Source: https://github.com/catalystctl/catcode/tree/main/.catalyst-code/skills/extend-memory-tool
Command: npx skills add https://github.com/catalystctl/catcode --skill extend-memory-tool-catalystctl

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Extending the agent's memory tool requires coordinated changes across the Rust data model, dispatch logic, and JSON schema, and missing the schema enum silently makes new actions uninvokable by the model. ## Core Features & Use Cases - Action Extension: Add new memory actions (e.g. deprecate, migrate) with backing functions, dispatch arms, and schema enum entries. - Parameter & Field Addition: Add params to existing actions or new MemoryEntry frontmatter fields with parsing, persistence, and recall filtering. - Schema-Dispatch Synchronization: Ensures the json! action enum, property definitions, and descriptions stay aligned with the Rust match arms. - Use Case: When adding a deprecate action to the memory tool, follow the checklist to update MemoryEntry, write the backing fn, add the dispatch arm, extend the JSON schema enum, filter deprecated entries from recall, and verify with cargo tests. ## Quick Start Use the extend-memory-tool skill to add a new deprecate action to the memory tool including schema, dispatch, and tests.

Frequently Asked Questions about extend-memory-tool

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new action to the memory tool?

Add a backing pub fn in core/src/memory.rs, a match arm in the memory tool's dispatch in tools.rs, and the action string to the json! schema enum. All three surfaces must be updated or the model cannot invoke the action.

Why is my new memory tool action not being called by the model?

The action is missing from the hardcoded enum in the json! parameters schema around tools.rs:656. Schema validation rejects calls before they reach your dispatch arm, so the match arm alone is not enough.

How do I add a new field to MemoryEntry in Rust?

Add the field to the struct, parse it in parse_memory_file, persist it in the save path, and update every MemoryEntry struct literal across memory.rs, memory_hygiene.rs, and memory_recall.rs tests or the build fails.

How do I test store-backed memory functions without races?

Use with_temp_store(label, |ws| { ... }) from memory_hygiene tests, which sets ROOT_OVERRIDE and serializes via memory_test_serial() so public fns see the temp store without racing parallel tests.

How do deprecated memories affect recall and listing?

Filter them in build_catalog and build_relevant_tail with !m.deprecated so they are excluded from recall. Mark them with [DEPRECATED] in list output and show a warning banner in get responses.