Memory can arrive before you explicitly ask for it: when a session starts, when a request touches a known subject, or before a matching action. This exercise separates that automatic context from an agent's later manual query.
Complete Tutorial 05. Keep ordinary practice facts in loom_demo under project scope durmem practice notebook, as in project memory. Keep the hook-test Directive separate: for this exercise, save or reuse a harmless test Directive in the existing palmerpenguins scope chain from Tutorial 03—prefer Repo("palmerpenguins") or Project("palmerpenguins"), or use its ancestor Organization("loom-tutorials") when the rule is organization-wide.
Before testing a fresh session, complete Tutorial 03's explicit [workspace.palmerpenguins] mapping to loom_demo. That mapping lets a new session in the palmerpenguins harness workspace use the intended coding store. Merely selecting loom_demo as a session store does not create that mapping or change the hook's startup scope; the hook still uses the active repository scope. The mapping is required for this fresh-session exercise, not for the separate notebook practice.
Your harness must support the particular hook being tested and have durmem's hooks enabled and trusted. Review install and setup for its manual checks. MCP is the agent's connection to durmem; a working MCP query does not demonstrate that a hook ran. If effective hook state cannot be verified, report it as unknown. Hermes's MCP-only integration is not a hook demonstration.
For ordinary practice, explicitly select loom_demo and durmem practice notebook in each fresh session before reading or writing. For the hook check, use the palmerpenguins checkout and its mapping above; choosing a session store manually does not change the startup hook's scope. Do not print credential files, change hook settings silently, or treat illustrative results as evidence.
Priming supplies a small selection of current scope context when a session starts. It is ranked and bounded, not a dump of every stored fact.
With the palmerpenguins checkout open, start a genuinely new harness conversation, not a continuation of this one. Check the context before asking for substitute reads:
A matching supplied block is evidence of priming in that session. Its absence does not prove the fact is lost: it may be outside the active scope or selection. A subsequent explicit retrieval tests memory access, not the startup hook.
Intent surfacing supplies relevant standing context alongside a request. Unlike a literal trigger, semantic relevance need not depend on shared words.
durmem practice notebook, save or reuse an ordinary practice Directive to use a reproducible calculation rather than guessing totals from raw data. Retrieve it to verify the actual saved reference. Do not run a calculation yet.Later ask:
Whether context is surfaced or retrieved, the agent must judge its relevance. A missed semantic match is a result to investigate, not a promise to retry until one appears. Neither a reminder nor a saved Directive grants execution authority.
Use the separate, harmless hook-test Directive in the palmerpenguins scope chain, not the notebook-practice Directive. A HookTrigger names an event and the literal text to match. The installed skills guide the agent through creating the trigger, linking it to the fact, and checking the current scope.
git push origin loom_demo, in the palmerpenguins scope. This is only a preview: do not run a push or change hook settings. Show matching fact references and explain any mismatch.This proves the lookup, not delivery by your harness. For a real hook check, choose a separately authorized harmless action and inspect the context that actually arrives. Do not use a real push or a paid call as the test. There is no fixed waiting-time guarantee for a newly armed reminder.
Some command hooks also enforce a check annotation before selected consequential shell actions. That attestation gate checks the protocol, not whether a reminder is semantically applicable. It is distinct from the advisory context above.
A HandoffTask is memory about unfinished work, not a Kanban task or a scheduled job. It gives the next session enough context to continue deliberately. Per the exit skill, scope it only to Repo("palmerpenguins"); do not file it under the practice notebook or the wider organization.
Repo("palmerpenguins") with the agent identity and a concrete next step. Do not invent unfinished work merely to create one.In a new session, check actual priming first, then explicitly retrieve the handoff if needed. Once its work is addressed, ask the agent to retire it using the exit skill's lifecycle. Saving a handoff does not ensure every later priming selection includes it, and does not itself start another agent.
Compaction replaces long conversation context with a summary. durmem's optional capture sweep tries to preserve useful knowledge around that boundary. It is not universal automatic recording of every conversation.
Read Capture precompact before changing the supported ~/.loom/hooks.toml setting. off is the default; confirm asks you to review proposals before saves; auto allows the sweep to save without that confirmation stop. Ask the agent to explain the choice before you opt in. This tutorial does not change the setting for you.
The bridge depends on the harness: Claude passes instructions to compaction; Codex preserves a transcript snapshot and supplies a post-compaction instruction. Supported hooks, effective settings and the actual sweep must all work for that session. After an opted-in compaction, inspect actual proposals or saved references. A manual capture request can help preserve knowledge, but is not evidence that the automatic compaction path worked.
Keep separate notes for actual injection, preview lookup, explicit retrieval, and capture. An absent hook result is not a successful demonstration. Check store, scope, mapping, trust and supported events before changing memory. Continue with planning, or explore custom types independently.