2026-02-28T22-16-32_auto_memory/memories.db-wal, memory/memories.db-wal, me

This commit is contained in:
Nicholai Vogel 2026-02-28 15:16:32 -07:00
parent 03ffc96deb
commit 46f39fbacf
6 changed files with 246 additions and 124 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,14 +1,29 @@
---
name: onboarding
description: Interactive interview to set up your Signet workspace. Use when user runs /onboarding or says "set up my agent" or "configure my workspace" after a fresh Signet install.
description: "Interactive interview to set up your Signet workspace (~5-10 minutes). Writes identity files to ~/.agents/ — does not access external APIs, send data anywhere, or execute arbitrary code. Use when user runs /onboarding or says 'set up my agent'."
user_invocable: true
arg_hint: ""
arg_hint: "[quick]"
builtin: true
---
# /onboarding
Walk the user through an interactive interview to personalize their Signet workspace. This populates the identity files (AGENTS.md, SOUL.md, IDENTITY.md, USER.md) with their preferences, personality settings, and profile information.
Walk the user through an interactive interview to personalize their
Signet workspace. This populates the identity files (AGENTS.md,
SOUL.md, IDENTITY.md, USER.md) with their preferences, personality
settings, and profile information.
## What This Skill Does
This skill writes configuration files to `~/.agents/`. Specifically:
- Reads and writes: IDENTITY.md, SOUL.md, USER.md, AGENTS.md
- Runs `signet setup` if Signet isn't initialized yet
- Does NOT access external APIs or services
- Does NOT send data anywhere outside the local machine
- Does NOT execute arbitrary code beyond the signet CLI
Everything stays local. Nothing leaves the machine.
## When to Run
@ -17,7 +32,6 @@ Walk the user through an interactive interview to personalize their Signet works
- After a fresh Signet install (agent should suggest this)
- After a Signet update (to validate and optimize existing setup)
- User says "I want to redo my agent setup"
- User says "clean up my memory" or "optimize my workspace"
## Setup Preflight (Agent-Driven)
@ -37,15 +51,50 @@ Use interactive `signet` when the user wants to answer prompts manually.
Use `--non-interactive` when the agent should complete setup directly.
Before running it, explicitly ask the user for both provider choices.
## Interview Philosophy
## Guiding Voice
Don't interrogate. Make it conversational. One or two questions at a time, then respond naturally before continuing. Sprinkle in personality. Adapt based on their energy level.
Adopt a warm, patient tone throughout the interview. This is someone's
first real interaction with their agent — it sets the foundation for
the whole relationship.
This is the first real interaction — it sets the tone for the entire relationship. Make it feel like getting to know someone, not filling out a form.
Style guidance:
- Use "we" language: "let's figure out who you want me to be"
- Reassure frequently: nothing is permanent, everything can be changed
- Don't rush — one or two questions at a time, respond naturally before
continuing
- Match the user's energy: if they're having fun, lean into it; if
they're all business, be efficient
- Offer suggestions when they're stuck, but don't default for them
- Reference earlier answers to show you're listening
- Sprinkle personality into transitions — not robotic, not scripted
This is getting to know someone, not filling out a form.
## Starting the Interview
Before asking any questions, present the full outline so the user
knows what to expect:
```
here's what we'll walk through together:
1. agent identity — who am i? (name, creature type, vibe)
2. personality & tone — how should i communicate?
3. your profile — who are you?
4. behavior settings — how should i operate?
5. review — make sure everything looks right
6. workspace audit — health check on the setup
this takes about 5-10 minutes. nothing is permanent — you can change
any of this later by running /onboarding again or editing the files
directly in ~/.agents/.
ready? let's start with who i am.
```
---
## Phase 1: Agent Identity (IDENTITY.md)
## Step 1 of 6 — Agent Identity (IDENTITY.md)
Start by figuring out who *you* are — the agent. This is your character sheet.
@ -99,9 +148,12 @@ _Fill this in during your first conversation. Make it yours._
This isn't just metadata. It's the start of figuring out who you are.
```
Phase transition: "that's the foundation — we can always come back and
refine this as your personality develops. on to how i should talk."
---
## Phase 2: Personality & Tone (SOUL.md)
## Step 2 of 6 — Personality & Tone (SOUL.md)
This is the most important file. It defines how you communicate.
@ -122,10 +174,10 @@ This is the most important file. It defines how you communicate.
**3. Emoji Usage**
"How do you feel about emojis in my responses?"
- Love them: Use freely 🎉
- Love them: Use freely
- Minimal: Only when they add genuine value
- Hate them: Never
- Keyboard only: ¯\_(ツ)_/¯ style, no unicode
- Keyboard only: emoticons and kaomoji, no unicode
- Follow-up: "Any specific emojis I should overuse or avoid?"
**4. Humor**
@ -266,9 +318,12 @@ Be the assistant you'd actually want to talk to. Concise when needed, thorough w
_This file is yours to evolve. As you learn who you are, update it._
```
Phase transition: "personality locked in. this evolves naturally as you
use your agent — nothing here is set in stone. now let's talk about you."
---
## Phase 3: User Profile (USER.md)
## Step 3 of 6 — User Profile (USER.md)
Now learn about *them*.
@ -281,41 +336,37 @@ Now learn about *them*.
**2. Pronouns**
"What pronouns should I use for you?" (optional)
**3. Timezone**
"What timezone are you in? I'll use this for scheduling and context."
- Can infer from city: "Denver" → "America/Denver"
### Professional Context
**4. Work/Role**
**3. Work/Role**
"What do you do? Work, school, whatever takes up your time."
- This helps me understand context and jargon level
**5. Industry/Field**
**4. Industry/Field**
"What industry or field are you in?"
- Helps me calibrate technical depth
**6. Projects**
**5. Projects**
"Any active projects I should know about? Personal or professional."
- Collect 2-5 if they have them
- Names and brief descriptions
### Preferences
**7. Technical Level**
**6. Technical Level**
"How technical are you? Should I explain things or assume you know the jargon?"
- Non-technical: Explain everything
- Somewhat technical: Basic explanations
- Very technical: Dive deep
- "Varies by topic"
**8. Communication Preferences**
**7. Communication Preferences**
"How do you like to communicate?"
- Short vs detailed responses
- Audio messages (if supported)
- Specific times of day
**9. Decision Style**
**8. Decision Style**
"How should I help you make decisions?"
- Present options, you pick
- Give a recommendation
@ -324,7 +375,7 @@ Now learn about *them*.
### Personal Context
**10. Anything Else**
**9. Anything Else**
"Anything else I should know about you? Interests, weird habits, context that might come up?"
- Open-ended, let them ramble
- This is gold for personalization
@ -338,7 +389,6 @@ _Learn about the person you're helping. Update this as you go._
- **Name:** {{full_name}}
- **What to call them:** {{preferred_name}}
- **Pronouns:** {{pronouns}}
- **Timezone:** {{timezone}}
## Work
@ -366,9 +416,12 @@ _Learn about the person you're helping. Update this as you go._
The more you know, the better you can help. But remember — you're learning about a person, not building a dossier. Respect the difference.
```
Phase transition: "that's a solid picture. we can revisit this anytime —
just run /onboarding and pick 'tweak a specific section'. almost done."
---
## Phase 4: Behavior Settings (AGENTS.md)
## Step 4 of 6 — Behavior Settings (AGENTS.md)
The AGENTS.md file has defaults, but customize it.
@ -410,6 +463,11 @@ The AGENTS.md file has defaults, but customize it.
- Minimal: Only what's explicitly asked
- "Use judgment"
NOTE: Memory capture is automatic — the pipeline extracts and scores
memories from conversations without any manual intervention. This
setting controls how aggressively it captures, not whether the user
needs to do anything.
**6. Forgetting**
"Should I ever proactively forget things?"
- No: Keep everything
@ -439,100 +497,50 @@ The AGENTS.md file has defaults, but customize it.
- **Remember:** {{remember_level}}
- **Forgetting:** {{forgetting_policy}}
## Custom Instructions
## Hard Rules
{{custom_instructions}}
```
Phase transition: "operational settings locked in. let me pull everything
together so you can review it."
---
## Phase 5: Review & Confirm
## Step 5 of 6 — Review & Confirm
After all phases, summarize:
```
Alright, here's who I am now:
alright, here's who i am now:
**Me:**
- Name: {{name}}
- Creature: {{creature}}
- Vibe: {{vibe}}
- {{emoji}}
**me:**
- name: {{name}}
- creature: {{creature}}
- vibe: {{vibe}}
**You:**
- {{preferred_name}} ({{timezone}})
**you:**
- {{preferred_name}}
- {{role}} in {{industry}}
**How I'll talk:**
- Formality: {{formality}}/10
- Humor: {{humor_style}}
- Emojis: {{emoji_usage}}
**how i'll talk:**
- formality: {{formality}}/10
- humor: {{humor_style}}
- emojis: {{emoji_usage}}
**Files updated:**
✓ IDENTITY.md — who I am
✓ SOUL.md — how I communicate
USER.md — who you are
AGENTS.md — operational settings
**files updated:**
- IDENTITY.md — who i am
- SOUL.md — how i communicate
- USER.md — who you are
- AGENTS.md — operational settings
I'll remember this across sessions. Want to tweak anything?
i'll carry this across sessions. want to tweak anything before we
wrap up?
```
---
## Implementation Notes
### Writing Files
Use the `write` tool (or equivalent file-writing capability). Don't use shell redirects — they have escaping issues.
```bash
# Check existing content first
read ~/.agents/IDENTITY.md
# Write new content
write ~/.agents/IDENTITY.md "<content>"
```
### Re-running
If `/onboarding` is called when files already exist:
"Looks like you've already been through onboarding. Want to:
1. Redo everything from scratch
2. Tweak a specific section
3. Run a workspace audit (clean up and optimize)
4. Just view what's set up"
If they pick option 3, skip directly to Phase 6 (Workspace Audit).
### Partial Completion
If the user cuts off mid-interview, write what you have. Next time they run `/onboarding`:
"Last time we got through [phase]. Want to continue from there or start over?"
### Making It Feel Natural
- React to their answers with genuine responses
- If they're having fun with it, match that energy
- If they're all business, be efficient
- Offer suggestions when they're stuck
- Don't repeat the question if they already answered it indirectly
- Reference earlier answers to show you're listening
### Template Variables
When writing files, use the collected values:
```
{{variable_name}} — direct substitution
{{#if variable}}...{{/if}} — conditional section
{{#each array}}...{{/each}} — loop over array
```
---
## Phase 6: Workspace Audit
## Step 6 of 6 — Workspace Audit
This phase validates the workspace and cleans up issues. Run this
after updates, when things feel off, or when re-onboarding an
@ -576,7 +584,7 @@ Read all identity files and check for cross-contamination:
- Origin story (if set)
**USER.md** should ONLY contain:
- User's name, pronouns, timezone
- User's name, pronouns
- Professional context and role
- Project list with locations
- Trust and permission settings
@ -611,7 +619,7 @@ For each file, check:
sections? Trim to what's actually needed.
4. **Missing content** — Are the "About Your User" or "Projects"
sections still empty templates? If so, interview the user to
fill them in (use Phase 3 questions).
fill them in (use Step 3 questions).
### Daemon Health Check
@ -636,37 +644,112 @@ hasn't run recently, suggest triggering it manually.
After the audit, provide a summary:
```
Workspace audit complete.
workspace audit complete.
Files checked: SOUL.md, IDENTITY.md, USER.md, AGENTS.md, MEMORY.md
files checked: SOUL.md, IDENTITY.md, USER.md, AGENTS.md, MEMORY.md
Issues found:
issues found:
- [list each issue: what was wrong, what was fixed or suggested]
Changes made:
changes made:
- [list each change]
Daemon status: [running/stopped]
Last synthesis: [date or "never"]
Memory count: [number of memories in database]
daemon status: [running/stopped]
last synthesis: [date or "never"]
memory count: [number of memories in database]
Recommendations:
recommendations:
- [any remaining suggestions]
```
---
## Implementation Notes
### Writing Files
Use the `write` tool (or equivalent file-writing capability). Don't use shell redirects — they have escaping issues.
```bash
# Check existing content first
read ~/.agents/IDENTITY.md
# Write new content
write ~/.agents/IDENTITY.md "<content>"
```
### Re-running
If `/onboarding` is called when files already exist:
"looks like you've already been through onboarding. want to:
1. redo everything from scratch
2. tweak a specific section
3. run a workspace audit (clean up and optimize)
4. just view what's set up"
If they pick option 3, skip directly to Step 6 (Workspace Audit).
### Partial Completion
If the user cuts off mid-interview, write what you have. Next time they run `/onboarding`:
"last time we got through [phase]. want to continue from there or start over?"
### Making It Feel Natural
- React to their answers with genuine responses
- If they're having fun with it, match that energy
- If they're all business, be efficient
- Offer suggestions when they're stuck
- Don't repeat the question if they already answered it indirectly
- Reference earlier answers to show you're listening
### Template Variables
When writing files, use the collected values:
```
{{variable_name}} — direct substitution
{{#if variable}}...{{/if}} — conditional section
{{#each array}}...{{/each}} — loop over array
```
---
## Quick Mode
If user says `/onboarding quick` or seems impatient, do an accelerated version:
"Quick setup — give me one word each:
1. My name:
2. Your name:
3. Formality (1-10):
4. Technical level (low/med/high):
5. One thing to remember about you:
```
quick setup — give me these five things:
1. my name:
2. your name:
3. formality (1-10):
4. technical level (low/med/high):
5. one rule i should always follow:
[Write minimal files]
[write minimal files]
Done. We can go deeper anytime with `/onboarding`."
done. we can go deeper anytime with /onboarding.
```
Quick mode writes the rule to AGENTS.md under "Hard Rules" rather
than creating a manual memory entry.
---
## Surface Compatibility
**Terminal (primary):** This skill is designed for terminal-based
agents (Claude Code, OpenCode, OpenClaw). All file writes use the
standard write tool.
**Dashboard:** When the dashboard ships a setup page, it will invoke
this same skill via the daemon API. The interview flow is identical;
only the I/O surface changes.
**Discord / Chat:** The interview works in chat surfaces but file
writes need to route through the daemon API (`POST /api/config`)
rather than direct filesystem access. The conversational flow is
the same.

View File

@ -1,6 +1,6 @@
---
name: recall
description: Query persistent memory using hybrid search (vector + keyword). Use when user says "/recall X" or asks to recall/find something from memory.
description: "Query persistent memory using hybrid search (vector + keyword). NOTE: Relevant memories are automatically injected at session start. Use /recall for targeted searches beyond current context."
user_invocable: true
arg_hint: "search query"
builtin: true
@ -12,6 +12,26 @@ Query persistent memory shared between all agents (claude-code, opencode,
clawdbot) using hybrid search: 70% semantic vector similarity + 30% BM25
keyword matching.
## When You Need This (And When You Don't)
At session start, Signet automatically injects relevant memories into
your context — scored by importance, recency, and relevance to the
current conversation. MEMORY.md is also regenerated periodically from
the full database using decay-weighted scoring. For most interactions,
the right memories are already present without any manual searching.
Use /recall when you need to:
- Search for something specific that isn't in current context
- Look up old decisions or past conversations
- Debug whether a memory was actually captured
- Find memories by type, tag, or date range
- Explore what the system knows about a topic
You do NOT need /recall to:
- Access recent memories (they're already injected)
- Check if the system "remembers" something (it does, automatically)
- Build session-start rituals (injection handles this)
## syntax
```
@ -112,6 +132,6 @@ Edit `~/.agents/config.yaml` or `~/.agents/AGENT.yaml` to adjust:
## follow-up
After showing results, offer to:
- save new related memories (`/remember ...`)
- search with different terms
- show memories by type: add `"type": "preference"` to the request
- filter by date range or project

View File

@ -1,7 +1,7 @@
---
name: remember
description: Save something to persistent memory with auto-embedding. Use when user says "/remember X" or asks to remember something important.
user_invocable: true
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
---
@ -12,6 +12,25 @@ 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
```
@ -96,17 +115,17 @@ The daemon returns JSON:
After saving, confirm to the user:
```
✓ Saved: "nicholai prefers tabs over spaces"
saved: "nicholai prefers tabs over spaces"
type: preference | embedded
```
For critical:
```
✓ Saved (pinned): "never push directly to main"
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)
saved: "content..." (keyword search only — embedding unavailable)
```