132 lines
3.6 KiB
Markdown

---
name: remember
description: "[Internal] Save something to persistent memory with auto-embedding. Hidden from users — the automatic pipeline handles memory capture. Use for debug/dev only."
user_invocable: false
arg_hint: "[critical:] [[tag1,tag2]:] content to remember"
builtin: true
---
# /remember
Save to persistent memory across sessions. Shared between all agents
(claude-code, opencode, clawdbot). Memories are auto-embedded for
semantic search via the Signet daemon.
## Why This Skill Is Hidden
This skill is not exposed to users because the automatic memory
pipeline handles capture better:
- The pipeline extracts memories from natural conversation with
calibrated importance scores (~0.5-0.7 based on content analysis)
- Manual /remember defaults to 0.8 importance, which distorts the
scoring curve and makes everything look equally important
- Users who discover /remember tend to build hook-based auto-remember
workflows that double token usage for zero benefit (the pipeline
already captures everything worth keeping)
- The pipeline also handles deduplication, type inference, and
decay-weighted retention — manual saves bypass all of that
If a user asks "how do I save something to memory," point them to
the fact that it happens automatically. If they want to verify
something was captured, suggest /recall instead.
## syntax
```
/remember <content>
/remember critical: <content>
/remember [tag1,tag2]: <content>
/remember critical: [tag1,tag2]: <content>
```
## examples
```
/remember nicholai prefers tabs over spaces
/remember critical: never push directly to main
/remember [voice,tts]: qwen model needs 12GB VRAM minimum
/remember [signet,architecture]: agent profile lives at ~/.agents/
```
## implementation
Use the Signet CLI (requires running daemon):
```bash
signet remember "<content>" -w <agent-name>
```
Options:
- `-w, --who <who>` — who is remembering (default: "user")
- `-t, --tags <tags>` — comma-separated tags
- `-i, --importance <n>` — importance 0-1 (default: 0.7)
- `--critical` — mark as pinned (importance=1.0, never decays)
where `<agent-name>` is one of: claude-code, opencode, clawdbot
The daemon automatically:
- detects `critical:` prefix → pins memory (importance=1.0, never decays)
- parses `[tags]:` prefix → explicit tags
- infers type from keywords (prefer→preference, decided→decision, etc.)
- generates embedding via configured provider (Ollama/OpenAI)
- stores in SQLite + embeddings table
### daemon required
The daemon must be running for remember to work. Check status:
```bash
signet status
curl -s http://localhost:3850/health
```
If the daemon is down, start it with `signet start`.
## type inference
| keyword in content | inferred type |
|--------------------|---------------|
| prefer/likes/want | preference |
| decided/agreed | decision |
| learned/discovered | learning |
| never/always/must | rule |
| bug/issue/broken | issue |
| (default) | fact |
## response
The daemon returns JSON:
```json
{
"id": "uuid",
"type": "preference",
"tags": "coding",
"pinned": false,
"importance": 0.8,
"content": "nicholai prefers tabs over spaces",
"embedded": true
}
```
## confirmation
After saving, confirm to the user:
```
saved: "nicholai prefers tabs over spaces"
type: preference | embedded
```
For critical:
```
saved (pinned): "never push directly to main"
type: rule | importance: 1.0 | embedded
```
If embedding failed (daemon running but Ollama/OpenAI unavailable):
```
saved: "content..." (keyword search only — embedding unavailable)
```