Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
"name": "ainative-plugins",
"description": "Official AINative Studio plugins for Claude Code — ZeroDB memory, context tools, and more",
"owner": {
"name": "AINative Studio",
"email": "support@ainative.studio"
},
"plugins": [
{
"name": "zerodb-memory",
"description": "Persistent cross-session memory for Claude Code. Automatically stores and recalls project context, architecture decisions, bugs, conventions, and code ownership across sessions.",
"author": {
"name": "AINative Studio",
"email": "support@ainative.studio"
},
"category": "productivity",
"homepage": "https://ainative.studio/products/zerodb",
"version": "1.0.0",
"tags": ["memory", "context", "zerodb", "productivity"],
"source": "."
}
]
}
106 changes: 106 additions & 0 deletions docs/marketplace-submission.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# Marketplace Submission — zerodb-memory

This document tracks the submission of `zerodb-memory` to the Anthropic official plugin marketplace, and documents the self-hosted AINative marketplace that is available immediately.

---

## Anthropic Official Marketplace Submission Entry

The following JSON entry is ready to submit to `anthropics/claude-plugins-official`:

```json
{
"name": "zerodb-memory",
"description": "Persistent cross-session memory for Claude Code, powered by ZeroDB. Automatically stores what Claude learns each session and recalls it next time — architecture decisions, bugs, conventions, and code ownership.",
"author": {
"name": "AINative Studio"
},
"category": "productivity",
"homepage": "https://ainative.studio/products/zerodb",
"tags": ["memory", "context", "zerodb", "ainative"],
"source": {
"source": "github",
"repo": "AINative-Studio/zerodb-claude-plugin",
"ref": "main"
}
}
```

---

## Submission Steps

1. **Fork the official registry**
```
gh repo fork anthropics/claude-plugins-official
```

2. **Clone your fork and create a branch**
```bash
git clone https://github.com/<your-org>/claude-plugins-official
cd claude-plugins-official
git checkout -b add-zerodb-memory
```

3. **Add the entry to `marketplace.json`**

Open `marketplace.json` and append the submission entry above into the `plugins` array.

4. **Commit and push**
```bash
git add marketplace.json
git commit -m "Add zerodb-memory plugin from AINative Studio"
git push origin add-zerodb-memory
```

5. **Open a pull request**

Go to `https://github.com/anthropics/claude-plugins-official` and open a PR from your fork's `add-zerodb-memory` branch targeting `main`.

PR title: `Add zerodb-memory — persistent cross-session memory for Claude Code`

Include in the PR body:
- Plugin name and purpose
- Link to `https://ainative.studio/products/zerodb`
- Link to `https://github.com/AINative-Studio/zerodb-claude-plugin`
- Confirmation that the pre-submission checklist below is complete

---

## Install Commands

### After Anthropic approval (official marketplace)

```
/plugin install zerodb-memory@claude-plugins-official
```

### AINative self-hosted marketplace (available immediately)

```
/plugin marketplace add github:AINative-Studio/zerodb-claude-plugin
```

Then install from it:

```
/plugin install zerodb-memory
```

---

## Pre-Submission Validation Checklist

- [ ] Plugin loads without errors in a fresh Claude Code session
- [ ] `plugin.json` (or equivalent manifest) is present at the repo root or in `.claude-plugin/`
- [ ] All skills listed in the manifest exist at their declared paths under `skills/`
- [ ] All hooks listed in the manifest exist at their declared paths under `hooks/`
- [ ] `README.md` documents setup, usage, and required environment variables (`AINATIVE_API_KEY`, `ZERODB_PROJECT_ID`)
- [ ] No credentials, tokens, or secrets are committed to the repository
- [ ] Repository is public at `github.com/AINative-Studio/zerodb-claude-plugin`
- [ ] `homepage` URL (`https://ainative.studio/products/zerodb`) is reachable
- [ ] Plugin works end-to-end: memory is stored in one session and recalled in a subsequent session
- [ ] `version` in `marketplace.json` matches the latest release tag
- [ ] Plugin category is set to `"productivity"`
- [ ] `tags` include `["memory", "context", "zerodb", "ainative"]`
- [ ] `author.name` is `"AINative Studio"` (consistent with GitHub org)
77 changes: 54 additions & 23 deletions skills/forget/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,70 @@
---
description: Remove stored memories from ZeroDB
description: Remove stored memories from ZeroDB by searching for matches and confirming before deletion
---

The user wants to delete one or more memories from ZeroDB.

## Steps
## Parse the user input

1. Extract the search query from the user's input (everything after `/forget`).
2. Check for `--all` flag — if present, handle mass delete flow (see below).
3. Call `zerodb_semantic_search` with the query, limit 10.
4. Present matching memories for confirmation:
Everything after `/forget` is the search query. Special flags:
- `--all` — mass delete all memories for the current project (nuclear option)
- `--type <type>` — filter matches to a specific memory type before presenting

```
Found 2 memories matching 'old staging URL':
## Standard flow (no --all flag)

1. [convention] Staging URL is staging.ainative.studio — use this for QA testing
2. [architecture] Old staging environment runs on Heroku at app-xyz.herokuapp.com
1. Extract the search query.
2. Detect current project: run `git remote get-url origin 2>/dev/null`, normalize to `org/repo` lowercase.
3. Call `zerodb_semantic_search` with the query, limit 20.
4. Filter results to current project (`metadata.project`).
5. If no matches:
```
No memories found matching '[query]'.
```
Stop here.
6. Present matches numbered for confirmation:
```
Found 2 memories matching 'old staging URL':

Delete these? (yes/no)
```
1. [convention] Staging URL is staging.ainative.studio — use this for QA testing
Stored: 2026-03-15

5. If user confirms: call the appropriate delete/clear tool for each memory ID.
6. Confirm: `Deleted 2 memories.`
7. If no matches: `No memories found matching '[query]'.`
2. [architecture] Old staging environment runs on Heroku at app-xyz.herokuapp.com
Stored: 2026-02-01

## Mass delete (--all)
Delete these? Type the numbers to delete (e.g. "1,2"), "all", or "cancel"
```
7. Wait for user response:
- Specific numbers (e.g. "1" or "1,2"): delete only those memories
- "all": delete all listed matches
- "cancel" or anything else: abort with "Cancelled — no memories deleted."
8. Call the appropriate ZeroDB delete/clear tool for each confirmed memory.
9. Confirm: `Deleted N memories.`

## Mass delete (--all flag)

If user runs `/forget --all`:
1. Ask: `This will delete ALL memories for project [org/repo]. Type 'DELETE' to confirm.`
2. Only proceed if user types exactly `DELETE`.
3. Call `zerodb_clear_session` or equivalent bulk clear for the project.
4. Confirm: `Cleared all memories for [org/repo].`
1. Detect current project.
2. Get total memory count for the project via `zerodb_search_memory` with broad query.
3. Warn the user:
```
⚠️ This will permanently delete ALL N memories for [org/repo].
Type DELETE (all caps) to confirm, or anything else to cancel.
```
4. Only proceed if the user's next message is exactly `DELETE`.
5. Call `zerodb_clear_session` or equivalent bulk clear for the project.
6. Confirm: `Cleared all N memories for [org/repo].`
7. If not confirmed: `Cancelled — all memories preserved.`

## Error handling

- If ZeroDB MCP tools are unavailable: `ZeroDB memory is not connected. Check your ZERODB_API_KEY and try again.`
- If not in a git repo: use project = `unknown`, still proceed with search across all memories.

## Examples

`/forget old staging URL`
`/forget the celery migration note — it shipped`
`/forget --all` (nuclear option, double confirmed)
```
/forget old staging URL
/forget the celery migration note — it shipped last week
/forget --type convention anything about port 5432
/forget --all
```
37 changes: 35 additions & 2 deletions skills/zerodb-memory-guide/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,41 @@ When user runs `/recall <query>`:

## /forget command
When user runs `/forget <query>`:
1. Search for matching memories.
2. Show matches and ask for confirmation before deleting.
1. Extract the search query (everything after `/forget`). Detect flags:
- `--all` — mass delete all memories for the current project (nuclear option)
- `--type <type>` — filter results to a specific memory type before presenting
2. Detect current project via `git remote get-url origin 2>/dev/null`, normalized to `org/repo` lowercase.
3. Call `zerodb_semantic_search` with the query, limit 20. Filter to current project (`metadata.project`).
4. If no matches found: `No memories found matching '[query]'.` — stop.
5. Present numbered matches for confirmation:
```
Found 2 memories matching 'old staging URL':

1. [convention] Staging URL is staging.ainative.studio — use this for QA testing
Stored: 2026-03-15

2. [architecture] Old staging environment runs on Heroku at app-xyz.herokuapp.com
Stored: 2026-02-01

Delete these? Type the numbers to delete (e.g. "1,2"), "all", or "cancel"
```
6. Wait for user response:
- Specific numbers: delete only those memories
- "all": delete all listed matches
- "cancel" or anything else: `Cancelled — no memories deleted.`
7. Call the appropriate ZeroDB delete/clear tool, then confirm: `Deleted N memories.`

### Mass delete (--all flag)
If user runs `/forget --all`:
1. Get total memory count via `zerodb_search_memory` with a broad query.
2. Warn: `⚠️ This will permanently delete ALL N memories for [org/repo]. Type DELETE (all caps) to confirm, or anything else to cancel.`
3. Only proceed if the user's next message is exactly `DELETE`.
4. Call `zerodb_clear_session` or equivalent bulk clear.
5. Confirm: `Cleared all N memories for [org/repo].` — or `Cancelled — all memories preserved.`

### Error handling
- If ZeroDB MCP tools are unavailable: `ZeroDB memory is not connected. Check your ZERODB_API_KEY and try again.`
- If not in a git repo: use project = `unknown`, still proceed with search across all memories.

## Privacy — non-negotiable
- NEVER store secrets, credentials, or PII regardless of what the user asks.
Expand Down
Loading