o9k-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.

10 stars

Best use case

o9k-using-hmem is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Meta-skill that establishes how and when to use hmem skills. Loaded at session start. Defines mandatory habits for memory, dispatch, and lookup operations.

Teams using o9k-using-hmem should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/o9k-using-hmem/SKILL.md --create-dirs "https://raw.githubusercontent.com/Bumblebiber/hmem/main/skills/o9k-using-hmem/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/o9k-using-hmem/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How o9k-using-hmem Compares

Feature / Agento9k-using-hmemStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Meta-skill that establishes how and when to use hmem skills. Loaded at session start. Defines mandatory habits for memory, dispatch, and lookup operations.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Using hmem Skills

## The Rule

**Before searching, looking up, or exploring anything — dispatch via `o9k-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.

## Skill Decision Table

| When you want to... | Use |
|---------------------|-----|
| Find a file, function, or code pattern | `o9k-dispatch` |
| Check if a plan, spec, or doc exists | `o9k-dispatch` |
| Answer "does X exist?" or "find Y" | `o9k-dispatch` |
| Search hmem for past decisions/lessons | `o9k-recall` |
| Run 2+ independent tasks at once | `o9k-dispatch` (multiple agents) |
| Store a new insight, lesson, or decision | `o9k-write` |
| Load project context at session start | `o9k-session-start` |
| Load context for a specific topic | `o9k-context` |
| **Create a new project (P-entry) in hmem** | **`o9k-new-project`** |
| Start curation / cleanup of memory | `o9k-curate` |
| Migrate O-entries to new format | `o9k-migrate-o` |

## Targeted vs. Exploratory

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.

## Red Flags

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 `o9k-recall` instead. |
| "I remember how this works" | Skills evolve. Invoke the skill. |
| "I'll write the P-entry manually with write_memory" | Use `o9k-new-project`. It handles schema, O-entry linking, and section setup. |

## MANDATORY — DO NOT

Hard stops, not guidelines:

| DO NOT | Instead |
|--------|---------|
| Read `~/.hmem/*.hmem` directly | Use `read_memory()`, `search_memory()`, or `/o9k-read` |
| Create O-entries manually | O-entries are auto-managed by Haiku — use `/o9k-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 `o9k-recall` |
| Create P-entries with `write_memory` | Use `o9k-new-project` — schema + O-entry linking auto-handled |
| Call `load_project` mid-session without routing | Always use `/o9k-activate` — it handles exchange misrouting |

## Mandatory Habits

1. **Search = Dispatch — unless targeted.** Exploratory searches ("find", "where is X", "what does file Y contain") → `o9k-dispatch`. Single targeted command with a predictable result (≤3 lines) → run directly.
2. **Memory = Tools.** Write insights via `write_memory`. Never rely on conversation history alone.
3. **Skills override instinct.** If a skill exists for the task, use it — even if you think you remember how it works.
4. **New project = `o9k-new-project`.** Never create P-entries manually — the skill handles schema, sections, and O-entry linking.
5. **Code navigation = Codebase node first.** Before editing or tracing any function: check `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.

Related Skills

We are still matching the closest adjacent skills for this page. In the meantime, continue through the full directory.