General domain memory classification — subject/predicate taxonomy, permanence levels, tagging strategy, and example facts
This skill defines the classification framework for storing and retrieving freeform facts in the
General butler's memory layer. Use it whenever you call memory_store_fact to ensure consistent,
discoverable, and well-prioritized memory entries.
The General butler handles catch-all data that does not fit specialist domains (health, finance, travel, education, etc.). Use flexible subject/predicate structures.
The subject anchors the fact to a named entity, concept, or topic:
"user" for facts about the owner"project-alpha", "rust-programming")"coffee-shops", "vacation-planning")Examples: , , , ,
"user""project-alpha""rust-programming""vacation-planning""coffee-shops"| Predicate | When to use |
|---|---|
goal | Personal or project goals |
preference | User preferences not covered by a specialist butler |
resource | Useful links, articles, or tools |
idea | Brainstorming notes, future plans |
note | General observations or reminders |
deadline | Time-sensitive tasks or dates |
status | Current state of a project or activity |
recommendation | Recommendations (places, books, tools) |
| Level | When to use |
|---|---|
stable | Long-term preferences, recurring patterns unlikely to change |
standard | Most general facts — current state that may change over weeks/months (default) |
volatile | Temporary notes, time-sensitive reminders, one-off tasks |
Use tags for cross-cutting organization. Good defaults:
urgent, learning, work, personal, someday-maybe, places, action-required
# From: "I want to learn Rust this year"
memory_store_fact(
subject="rust-programming",
predicate="goal",
content="learn Rust programming language in 2026",
permanence="standard",
importance=6.0,
tags=["learning", "programming", "2026-goals"]
)
# From: "Good coffee shop: Blue Bottle on 5th St"
memory_store_fact(
subject="coffee-shops",
predicate="recommendation",
content="Blue Bottle on 5th St - good coffee",
permanence="standard",
importance=4.0,
tags=["places", "coffee", "local"]
)
# From: "Password reset link expires in 24 hours"
memory_store_fact(
subject="password-reset",
predicate="deadline",
content="password reset link expires in 24 hours",
permanence="volatile",
importance=7.0,
tags=["urgent", "action-required"]
)
When the user asks a question:
memory_search(query=<question>) or memory_recall(topic=<subject>)item_search() with relevant query termsnotify(channel=<channel>, message=<answer>, intent="reply", request_context=<ctx>)Example:
User: "What was that coffee shop I liked?"
1. memory_search(query="coffee shop recommendation")
2. item_search(collection="places", query={"type": "coffee"})
3. Find: "Blue Bottle on 5th St"
4. notify(channel="telegram", message="Blue Bottle on 5th St — you saved that as a good coffee spot.",
intent="reply", request_context=<from session>)
standard by default — only use volatile for urgent/time-sensitive facts, stable for long-term preferences