skills/hmem-using-hmem/SKILL.md
Meta-skill that establishes how and when to use hmem skills. Loaded at session start. Defines mandatory habits for memory, dispatch, and lookup operations.
npx skillsauth add Bumblebiber/hmem hmem-using-hmemInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Before searching, looking up, or exploring anything — dispatch via hmem-dispatch. Before responding to the user about something you had to find — dispatch first, synthesize after.
This is not optional. A 3-line grep dispatched is better than a slow main-context search that pollutes the conversation.
| When you want to... | Use |
|---------------------|-----|
| Find a file, function, or code pattern | hmem-dispatch |
| Check if a plan, spec, or doc exists | hmem-dispatch |
| Answer "does X exist?" or "find Y" | hmem-dispatch |
| Search hmem for past decisions/lessons | hmem-recall |
| Run 2+ independent tasks at once | hmem-dispatch (multiple agents) |
| Store a new insight, lesson, or decision | hmem-write |
| Load project context at session start | hmem-session-start |
| Load context for a specific topic | hmem-context |
| Create a new project (P-entry) in hmem | hmem-new-project |
| Start curation / cleanup of memory | hmem-curate |
| Migrate O-entries to new format | hmem-migrate-o |
Not all Bash calls need dispatching. The key distinction:
| Type | Characteristics | Action | |------|----------------|--------| | Targeted | Known path/pattern, single command, result ≤3 lines | Run directly | | Exploratory | Open-ended, multiple locations, result unknown | Dispatch |
Targeted (OK to run directly): find /home/username -name "settings.json" -path "*claude*" — one known location, one expected result.
Exploratory (must dispatch): grep -r "functionName" ~/projects/ across repos, or "where is X defined?" without knowing which file.
When in doubt: if you'd be surprised by the output → dispatch it.
These thoughts mean STOP — dispatch instead:
| Thought | Reality |
|---------|---------|
| "I'll just grep this quickly" | Is it exploratory? Dispatch. Is it one targeted command with predictable output? Run it. |
| "Let me run find real fast" | Known path + expected result → OK. Unknown territory → dispatch. |
| "It's only one Bash call" | Targeted (≤3 lines expected) → fine. Exploratory → dispatch. |
| "This is too small to dispatch" | Dispatching 2-line tasks is fine and fast. |
| "I need to check the codebase first" | Dispatch the check. |
| "Let me read this file to see what's there" | Dispatch it. You only need the result. |
| "I'll search memory quickly myself" | Use hmem-recall instead. |
| "I remember how this works" | Skills evolve. Invoke the skill. |
| "I'll write the P-entry manually with write_memory" | Use hmem-new-project. It handles schema, O-entry linking, and section setup. |
Hard stops, not guidelines:
| DO NOT | Instead |
|--------|---------|
| Read ~/.hmem/*.hmem directly | Use read_memory(), search_memory(), or /hmem-read |
| Create O-entries manually | O-entries are auto-managed by Haiku — use /hmem-session-start (R0022) |
| Write to memory during an active task | Finish the task first, then write |
| Call search_memory twice in one turn | Batch into one call, or use hmem-recall |
| Create P-entries with write_memory | Use hmem-new-project — schema + O-entry linking auto-handled |
| Call load_project mid-session without routing | Always use /hmem-activate — it handles exchange misrouting |
hmem-dispatch. Single targeted command with a predictable result (≤3 lines) → run directly.write_memory. Never rely on conversation history alone.hmem-new-project. Never create P-entries manually — the skill handles schema, sections, and O-entry linking.read_memory(id="P00XX.2") for documented signatures. If not found, dispatch an Explore agent — never explore the filesystem directly in main context. Update the Codebase node with what you find.tools
Update flow for its-over-9k (hmem). Runs `npm update -g`, syncs skills, applies migrations, verifies hooks, shows the changelog. Use when the user asks to update/upgrade hmem, o9k, o9k-mcp, or its-over-9k (any language), or when the startup version-check flags a new release. Runs the npm update itself — don't assume it's already done.
development
Mandatory entry point for every Cortex session — invoke at conversation start, after /clear, and after any load_project call. All stable context (H-entries, projects, device, sync) is pre-injected by the hook — no read_memory(mode='essentials') needed. Surfaces pending git work, Next Steps + open T-tasks, and runs the O-entry routing check.
tools
Curate an .hmem file (your own or foreign) — mark obsolete/irrelevant, fix titles, consolidate duplicates, repair broken links. **Requires the `hmem-curate` MCP server** (skill prompts the user to enable it on entry). Use whenever the user says 'aufräumen', 'memory aufräumen', 'Speicher aufräumen', 'hmem aufräumen', 'clean up memory', 'tidy up hmem', 'curate memory', 'consolidate duplicates', 'merge duplicate entries', 'fix broken links', 'kümmer dich um die Memory', or invokes /o9k-curate. Also trigger when `memory_health()` flags BLOCKER/WARNING issues, when a P-entry's load_project output exceeds 4k tokens (session-start noise check defers to this skill), or before any batch cleanup of L, E, D, P entries. Skipping this skill and editing memory directly bypasses health checks, severity triage, and obsolete-chain integrity — never curate without it.
testing
Add a new rule and place it correctly — decide between a cross-project R-entry and a project-specific subnode under the active project's Rules section. Use whenever the user says 'neue Regel', 'Regel hinzufügen', 'new rule', 'add a rule', or invokes /o9k-new-rule. Critical safeguard: project-specific rules placed as R-entries pollute the session-start Rules listing across every project — get the scope right BEFORE writing.