# Confidently Incorrect Is Worst-Case Scenario - If the user asks a question and you are not very confident in your answer, tell the user that you are not sure - When this happens, offer your current hypothesis (if you have one) and then offer options you can take to find the answer ## Basics - User's name is Cal and uses he/him pronouns - When writing test, always include a detailed docstring explaining the "what" and "why" of the test. - DO NOT COMMIT CODE WITHOUT APPROVAL FROM THE USER ## Memory Protocol (MemoryGraph Skill) MemoryGraph provides persistent, graph-based memory across all sessions. Use it to accumulate learnings, patterns, and solutions. **Skill Location:** `~/.claude/skills/memorygraph/` **Database:** `~/.memorygraph/memory.db` **Documentation:** https://notes.manticorum.com/reference/skills/memorygraph ### REQUIRED: Before Starting Complex Work Recall relevant memories before any significant task: ```bash python ~/.claude/skills/memorygraph/client.py recall "project-name technology problem-type" ``` Query by project name, technology, or problem type (e.g., "paper-dynasty python api", "tdarr gpu timeout"). ### REQUIRED: Automatic Storage Triggers Store memories on ANY of these events: | Trigger | What to Store | |---------|---------------| | **Bug fix** | Problem + solution with SOLVES relationship | | **Git commit** | Summary of what was fixed/added and why | | **Architecture decision** | Choice made + rationale + alternatives | | **Pattern discovered** | Reusable approach with context | | **Configuration that worked** | Setup details that solved an issue | | **Troubleshooting session** | Steps taken, what worked, what didn't | ### CLI Usage ```bash # Store a memory python ~/.claude/skills/memorygraph/client.py store \ --type solution \ --title "Fixed Redis timeout" \ --content "Added socket_keepalive=True..." \ --tags "redis,timeout,homelab" \ --importance 0.8 # Recall memories python ~/.claude/skills/memorygraph/client.py recall "redis timeout" # Get specific memory python ~/.claude/skills/memorygraph/client.py get # Create relationship python ~/.claude/skills/memorygraph/client.py relate SOLVES # Search with filters python ~/.claude/skills/memorygraph/client.py search --types "solution" --tags "python" # Get related memories python ~/.claude/skills/memorygraph/client.py related --depth 2 # Statistics python ~/.claude/skills/memorygraph/client.py stats ``` ### Memory Types `solution` | `problem` | `error` | `fix` | `decision` | `code_pattern` | `configuration` | `workflow` | `general` ### Importance Scale - `0.8-1.0`: Critical - affects multiple projects or prevents major issues - `0.5-0.7`: Standard - useful pattern or solution - `0.3-0.4`: Minor - nice-to-know, edge case ### Tag Requirements (ALWAYS include) 1. Project name (paper-dynasty, major-domo, homelab, etc.) 2. Primary technology (python, docker, proxmox, bash, etc.) 3. Category (fix, pattern, decision, config, troubleshooting) ### Relationship Types - `SOLVES` - Solution addresses a problem - `CAUSES` - One issue leads to another - `BUILDS_ON` - Enhancement to existing pattern - `ALTERNATIVE_TO` - Different approach to same problem - `REQUIRES` - Dependency relationship - `FOLLOWS` - Workflow sequence ### Proactive Memory Usage **At session start:** If working on a known project, recall relevant memories. **During work:** When solving a non-trivial problem, check if similar issues were solved before. **At session end:** If significant learnings occurred, prompt: "Should I store today's learnings to MemoryGraph?" ## Project Planning Use `/project-plan` to generate structured `PROJECT_PLAN.json` files for tracking refactoring, features, migrations, or audits. See `~/.claude/skills/project-plan/SKILL.md` for full schema and usage.