with one click
hmem-using-hmem
// Meta-skill that establishes how and when to use hmem skills. Loaded at session start. Defines mandatory habits for memory, dispatch, and lookup operations.
// Meta-skill that establishes how and when to use hmem skills. Loaded at session start. Defines mandatory habits for memory, dispatch, and lookup operations.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | hmem-using-hmem |
| description | Meta-skill that establishes how and when to use hmem skills. Loaded at session start. Defines mandatory habits for memory, dispatch, and lookup operations. |
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.