# Moonrabbit Memory

> Companion memory skill for MoonRabbit and other contact-centric chat agents. Use when the agent needs stable per-contact memory, personality summaries, mode preference, mute and wake-passphrase state, and compressed conversation threads across sessions or channels.

- **Type:** Skill
- **Install:** `agentstack add skill-liuanclouds-agent-skill-moonrabbit-memory`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [LiuAnclouds](https://agentstack.voostack.com/s/liuanclouds)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [LiuAnclouds](https://github.com/LiuAnclouds)
- **Source:** https://github.com/LiuAnclouds/Agent_skill/tree/codex/skills/moonrabbit-memory

## Install

```sh
agentstack add skill-liuanclouds-agent-skill-moonrabbit-memory
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# MoonRabbit Memory

This is a companion skill, not the main chat persona.

Use it whenever MoonRabbit needs durable memory for a person.

## Core Goal

Maintain a small, structured, retrievable memory for each contact so the chat agent can:

- remember who the person is
- remember what they like
- remember the best conversation openings
- keep relationship boundaries stable
- keep stop-reply and wake-passphrase state stable
- avoid relearning the same person from scratch every session

## Storage Principles

- The repository ships only the rules, schema, and examples.
- Live contact data must be stored locally by the runtime, not committed into this repository.
- Use one stable contact key per person.
- Prefer structured fields over long raw transcripts.
- Store compressed summaries, not everything.
- Never store secrets, sensitive credentials, or unnecessary private details.

## Stable Contact Key

Use this shape:

```text
{channel}:{contact_id}
```

Examples:

- `openclaw-weixin:o9cq808BMatKAKKxzXaO7DY8uVDU@im.wechat`
- `telegram:123456789`
- `discord:2849201920`

If a platform has both a stable technical ID and a human-facing handle, store both.

## Minimum Memory Payload

Keep at least:

- stable contact key
- channel
- platform contact ID
- display name or nickname
- optional platform handle such as WeChat ID
- preferred mode
- relationship boundary
- personality traits
- likes
- dislikes
- taboo topics
- care signals
- icebreaker topics
- recent key threads
- mute state
- wake passphrase
- last updated timestamp

Read `references/contact-memory-schema.md` for a concrete schema example.

## Update Rules

Update the contact memory when:

- a meaningful new preference appears
- the person reveals a stable trait
- a taboo or sensitive topic becomes clear
- a new useful icebreaker appears
- the relationship boundary changes
- stop-reply or wake-passphrase state changes

Do not update memory for trivial noise.

## Compression Rules

For `recent_key_threads`:

- keep 3 to 8 short bullets
- store the theme and why it matters
- keep it retrieval-friendly
- do not store raw full transcripts unless there is a very specific reason

For personality and interest summaries:

- prefer stable patterns over one-off moments
- write short phrases, not essays
- separate evidence from speculation when uncertain

## Relationship Boundary

Use a small controlled set:

- `normal`
- `care`
- `flirt_safe`

Only move into `flirt_safe` when the situation is clearly adult, welcome, and appropriate.

If uncertain, fall back to `normal` or `care`.

## Stop-Reply State Machine

Use this state machine:

- `active`: MoonRabbit can reply normally.
- `pending_stop_confirm`: MoonRabbit is confirming whether the person truly wants silence.
- `muted_waiting_wake`: MoonRabbit should not continue normal replies until the wake passphrase appears.

Required behavior:

1. Detect stop intent.
2. Confirm the intent.
3. Ask for or propose a wake passphrase.
4. Persist both state and wake passphrase.
5. Resume only when the correct passphrase is seen or when the owner explicitly clears the state.

## Safety Interaction

If the main MoonRabbit skill hits the safety red line:

- do not store operational details of harmful requests
- only store the minimum useful signal if necessary, such as a high-level guardrail note
- never turn unsafe content into a reusable preference

## References

Read these only when needed:

- `references/contact-memory-schema.md` for the schema template
- `references/openclaw-weixin-example.md` for a concrete OpenClaw / WeChat mapping

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [LiuAnclouds](https://github.com/LiuAnclouds)
- **Source:** [LiuAnclouds/Agent_skill](https://github.com/LiuAnclouds/Agent_skill)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-liuanclouds-agent-skill-moonrabbit-memory
- Seller: https://agentstack.voostack.com/s/liuanclouds
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
