/mem0-test-integration
Verify a Mem0 integration produced by /mem0-integrate. Runs in the same workspace on the same branch (loose coupling) — installs dependencies, runs the repo's native test suite, then exercises a real end-to-end smoke flow against the user's API key. Produces a scorecard. TRIGGER
$ npx -y skills add mem0ai/mem0 --skill mem0-test-integration --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/mem0-test-integration
Context preview
The summary Claude sees to decide when to auto-load this skill.
Verify a Mem0 integration produced by /mem0-integrate. Runs in the same workspace on the same branch (loose coupling) — installs dependencies, runs the repo's native test suite, then exercises a real end-to-end smoke flow against the user's API key. Produces a scorecard. TRIGGER
SKILL.md
mem0-test-integration.SKILL.mdname: mem0-test-integration
description: >
Verify a Mem0 integration produced by /mem0-integrate. Runs in the same
workspace on the same branch (loose coupling) — installs dependencies,
runs the repo's native test suite, then exercises a real end-to-end
smoke flow against the user's API key. Produces a scorecard.
TRIGGER when: user has just run /mem0-integrate and says "verify",
"test the integration", "run /mem0-test-integration", or when a
.mem0-integration/ directory exists and tests have not been run yet
on the current branch.
DO NOT TRIGGER when: the user wants to run general project tests
(defer to the repo's native test command), or when no prior /mem0-integrate
run exists in the current branch (ask them to run /mem0-integrate first).
This skill ONLY catches compile and runtime bugs by design. Logical
integration errors — wrong data stored, wrong time retrieved, wrong
user scoping — are on the human reviewer.
license: Apache-2.0
metadata:
author: mem0ai
version: "0.1.0"
category: ai-memory
tags: "memory, integration, testing, tdd, platform, oss"
coupling: loose
mem0_tested_versions: "mem0ai (PyPI) >=2.0.0,<3.0.0; mem0ai (npm) >=3.0.0,<4.0.0"
mem0-test-integration
Verifies what `/mem0-integrate` produced. Runs in the same workspace, on the same feature branch. Loose coupling — fast, catches compile and runtime bugs, does not catch logical errors.
Canonical sources (use these, not ambient knowledge)
All static checks and smoke-test shapes validate against these URLs. `WebFetch` each before running step 3.
- Scope-tagged docs index: https://docs.mem0.ai/llms.txt
- OpenAPI (Platform REST): https://docs.mem0.ai/openapi.json
- Published SDK skill (canonical call patterns): https://raw.githubusercontent.com/mem0ai/mem0/main/skills/mem0/SKILL.md
- Vercel AI SDK skill (if the target repo uses `@ai-sdk/*`): https://raw.githubusercontent.com/mem0ai/mem0/main/skills/mem0-vercel-ai-sdk/SKILL.md
- SDK source (cross-check version against frontmatter `mem0_tested_versions`):
- Repo root: https://github.com/mem0ai/mem0
- Python: https://github.com/mem0ai/mem0/tree/main/mem0
- TypeScript: https://github.com/mem0ai/mem0/tree/main/mem0-ts
Read the `Delegated skill:` field in `.mem0-integration/plan.md` — if it names a skill URL, fetch that skill and use its example blocks as the reference for both static checks (step 3) and the smoke test (step 5).
Non-invasiveness contract
Every check in this skill assumes the integration is **additive and feature-flagged** (see `/mem0-integrate` "Integration principles"). Specifically:
- `product.json` must contain a `feature_flag` field.
- Steps 4–6 run in two passes:
- **Pass A — flag unset.** All pre-existing tests must pass, smoke/E2E
skip. The repo must behave like `main`. Any failure here is a **hard fail** — do not let the self-heal loop attempt a patch.
- **Pass B — flag set.** New tests must pass, smoke and E2E run.
- If Pass A fails, the scorecard marks `non_invasive: false` and sets
`overall: fail` with a distinct reason code the integrator's heal loop refuses to touch.
Preconditions
Refuse to start unless ALL of the following are true:
- `.mem0-integration/` directory exists in the repo root.
- `.mem0-integration/product.json`, `goal.md`, and `plan.md` are readable
and internally consistent (JSON parses, docs non-empty).
- Current branch name begins with `mem0-integrate/` (set by the companion
skill). Prevents accidental runs on unrelated branches.
- Working tree is clean. The skill never modifies source files; any dirty
state means the integration is mid-edit and not ready to verify.
- The same API key the integration used is available in the environment
(`MEM0_API_KEY` for Platform, `OPENAI_API_KEY` for OSS — read which from `product.json`). Interactive mode asks if missing; CI mode exits 2.
Exit with a written rationale on any precondition failure. Never attempt to "fix up" state.
Pipeline
1. Read the contract
Load:
- `product.json` → which language, which product (Platform vs OSS), which
mem0 version, `write_site`, `read_site`.
- `plan.md` → the mechanical contract (write pattern, read pattern,
preserved behavior).
- `goal.md` → the intent (displayed in the scorecard only; not tested).
2. Install dependencies
Route by language from `product.json`:
| Language | Command | |---|---| | Python | `pip install -e .` if editable, else `pip install -r requirements.txt`. Then `pip install mem0ai` if not already present at the pinned version. | | TypeScript / JavaScript | `npm install` (or `pnpm install` / `yarn install` if detected by lockfile). |
If install fails → exit code 2 with stderr tail. Never move to testing if dependencies don't resolve.
3. Static sanity checks (fast, local, no API calls)
- **Import check**: does the write-site file import the expected Mem0
surface? Authoritative list comes from `## Identify the User's Setup` in `https://docs.mem0.ai/llms.txt`:
- Platform Python → `from mem0 import MemoryClient`
- Platform TS → `import MemoryClient from "mem0ai"`
- OSS Python → `from mem0 import Memory`
- OSS TS → `import { Memory } from "mem0ai/oss"`
If `plan.md` names a delegated skill (e.g., Vercel AI), use *that* skill's import signature instead of the list above. Mismatch → fail with line number.
- **Version check**: installed `mem0ai` version falls in the range from
this skill's `mem0_tested_versions`. Out of range → warn but continue.
- **Type check** (TS tracks only): run `tsc --noEmit` or `tsup --dts`.
Non-zero → fail.
- **Lint** (if the repo has a linter configured): run the repo's own
lint command. Lint failures from this skill's changes → fail; pre-existing lint failures → surface as a warning.
- **Eager-init check**: grep the `write_site` and `read_site` files (paths
from `product.json`) for `MemoryClient(` or `Memory(` at module scope — i.e., not inside a function, method, o
Read more
name: mem0-test-integration description: > Verify a Mem0 integration produced by /mem0-integrate. Runs in the same workspace on the same branch (loose coupling) — installs dependencies, runs the repo's native test suite, then exercises a real end-to-end smoke flow against the user's API key. Produces a scorecard. TRIGGER when: user has just run /mem0-integrate and says "verify", "test the integration", "run /mem0-test-integration", or when a .mem0-integration/ directory exists and tests have not been run yet on the current branch. DO NOT TRIGGER when: the user wants to run general project tests (defer to the repo's native test command), or when no prior /mem0-integrate run exists in the current branch (ask them to run /mem0-integrate first). This skill ONLY catches compile and runtime bugs by design. Logical integration errors — wrong data stored, wrong time retrieved, wrong user scoping — are on the human reviewer. license: Apache-2.0 metadata: author: mem0ai version: "0.1.0" category: ai-memory tags: "memory, integration, testing, tdd, platform, oss" coupling: loose mem0_tested_versions: "mem0ai (PyPI) >=2.0.0,<3.0.0; mem0ai (npm) >=3.0.0,<4.0.0"
mem0-test-integration
Verifies what `/mem0-integrate` produced. Runs in the same workspace, on the same feature branch. Loose coupling — fast, catches compile and runtime bugs, does not catch logical errors.
Canonical sources (use these, not ambient knowledge)
All static checks and smoke-test shapes validate against these URLs. `WebFetch` each before running step 3.
- Scope-tagged docs index: https://docs.mem0.ai/llms.txt
- OpenAPI (Platform REST): https://docs.mem0.ai/openapi.json
- Published SDK skill (canonical call patterns): https://raw.githubusercontent.com/mem0ai/mem0/main/skills/mem0/SKILL.md
- Vercel AI SDK skill (if the target repo uses `@ai-sdk/*`): https://raw.githubusercontent.com/mem0ai/mem0/main/skills/mem0-vercel-ai-sdk/SKILL.md
- SDK source (cross-check version against frontmatter `mem0_tested_versions`):
- Repo root: https://github.com/mem0ai/mem0
- Python: https://github.com/mem0ai/mem0/tree/main/mem0
- TypeScript: https://github.com/mem0ai/mem0/tree/main/mem0-ts
Read the `Delegated skill:` field in `.mem0-integration/plan.md` — if it names a skill URL, fetch that skill and use its example blocks as the reference for both static checks (step 3) and the smoke test (step 5).
Non-invasiveness contract
Every check in this skill assumes the integration is **additive and feature-flagged** (see `/mem0-integrate` "Integration principles"). Specifically:
- `product.json` must contain a `feature_flag` field.
- Steps 4–6 run in two passes:
- **Pass A — flag unset.** All pre-existing tests must pass, smoke/E2E
skip. The repo must behave like `main`. Any failure here is a **hard fail** — do not let the self-heal loop attempt a patch.
- **Pass B — flag set.** New tests must pass, smoke and E2E run.
- If Pass A fails, the scorecard marks `non_invasive: false` and sets
`overall: fail` with a distinct reason code the integrator's heal loop refuses to touch.
Preconditions
Refuse to start unless ALL of the following are true:
- `.mem0-integration/` directory exists in the repo root.
- `.mem0-integration/product.json`, `goal.md`, and `plan.md` are readable
and internally consistent (JSON parses, docs non-empty).
- Current branch name begins with `mem0-integrate/` (set by the companion
skill). Prevents accidental runs on unrelated branches.
- Working tree is clean. The skill never modifies source files; any dirty
state means the integration is mid-edit and not ready to verify.
- The same API key the integration used is available in the environment
(`MEM0_API_KEY` for Platform, `OPENAI_API_KEY` for OSS — read which from `product.json`). Interactive mode asks if missing; CI mode exits 2.
Exit with a written rationale on any precondition failure. Never attempt to "fix up" state.
Pipeline
1. Read the contract
Load:
- `product.json` → which language, which product (Platform vs OSS), which
mem0 version, `write_site`, `read_site`.
- `plan.md` → the mechanical contract (write pattern, read pattern,
preserved behavior).
- `goal.md` → the intent (displayed in the scorecard only; not tested).
2. Install dependencies
Route by language from `product.json`:
| Language | Command | |---|---| | Python | `pip install -e .` if editable, else `pip install -r requirements.txt`. Then `pip install mem0ai` if not already present at the pinned version. | | TypeScript / JavaScript | `npm install` (or `pnpm install` / `yarn install` if detected by lockfile). |
If install fails → exit code 2 with stderr tail. Never move to testing if dependencies don't resolve.
3. Static sanity checks (fast, local, no API calls)
- **Import check**: does the write-site file import the expected Mem0
surface? Authoritative list comes from `## Identify the User's Setup` in `https://docs.mem0.ai/llms.txt`:
- Platform Python → `from mem0 import MemoryClient`
- Platform TS → `import MemoryClient from "mem0ai"`
- OSS Python → `from mem0 import Memory`
- OSS TS → `import { Memory } from "mem0ai/oss"`
If `plan.md` names a delegated skill (e.g., Vercel AI), use *that* skill's import signature instead of the list above. Mismatch → fail with line number.
- **Version check**: installed `mem0ai` version falls in the range from
this skill's `mem0_tested_versions`. Out of range → warn but continue.
- **Type check** (TS tracks only): run `tsc --noEmit` or `tsup --dts`.
Non-zero → fail.
- **Lint** (if the repo has a linter configured): run the repo's own
lint command. Lint failures from this skill's changes → fail; pre-existing lint failures → surface as a warning.
- **Eager-init check**: grep the `write_site` and `read_site` files (paths
from `product.json`) for `MemoryClient(` or `Memory(` at module scope — i.e., not inside a function, method, o
Mem0 ("mem-zero") enhances AI assistants and agents with an intelligent memory layer, enabling personalized AI interactions.
Repo: mem0ai/mem0
Other skills on mem0.
- /context-loader
Searches and injects relevant memories into context before starting work on a task. Use when beginning a new task, switching context, or when project history, past decisions, or coding conventions need to be loaded.
Open skill - /dream
Consolidates stored memories by merging duplicates, resolving contradictions, and pruning stale entries. Use when memory count is high, search results feel noisy or repetitive, or periodic cleanup is needed to maintain memory quality.
Open skill - /export
Exports all project memories to a portable Markdown file for backup or migration. Use when backing up memories, migrating to another project, sharing memory state with teammates, or archiving before cleanup.
Open skill - /forget
Deletes memories by search query or memory ID with confirmation before removal. Use when removing outdated decisions, incorrect memories, sensitive data, or cleaning up after experiments. Also handles undo of recent additions.
Open skill - /health
Diagnoses mem0 connectivity, API key validity, and memory read/write functionality. Use when memory operations fail, searches return empty, add_memory errors occur, MCP connection drops, or to verify the plugin is working correctly.
Open skill - /import
Imports memories from an exported Markdown file or MEMORY.md into the current project. Use when migrating from another project, restoring from backup, importing Claude Code native MEMORY.md content, or setting up a new project with existing knowledge.
Open skill

