This tutorial demonstrates Loom's core value: the right project context resurfaces when it matters, even in a fresh session. You will save a few durable facts, close the session, and watch the next session use them without a reminder.
You need a working Loom connection and the loom-coding skill. If either is missing, complete Tutorial 00: Connect your coding harness to Loom first.
To keep this first win short, the exercise uses the seeded Project("loom_demo") scope already present in [loom_demo]. Tutorial 03 later builds the repository-specific palmerpenguins scope chain.
loom_demo the session defaultloom_demo and make it the default for this session only. Confirm the effective session default, and do not edit ~/.loom/stores.toml.loom_demo store and changes only this session's default routing.loom_demo is now the default for this session. Persistent configuration was not changed.Give the agent a few facts that should survive the conversation:
[loom_demo], remember these facts for the seeded Project("loom_demo"). Our Goal is to ship a private beta by September 30. Add a Roadmap item to finish invitation emails before the beta. We decided to send those emails through the existing notification service, using dev1@gmail.com as sample payload content. Treat the deadline as critical. The sample address is not an author identity.loom-coding to check the current project context, classify the statements, and save a Goal, a Roadmap item, and a Decision with the requested importance under the seeded project scope.Project("loom_demo"): the critical September 30 beta Goal, the invitation-email Roadmap item, and the Decision to use the existing notification service. I will treat them as context for this project in later sessions.If the agent cannot identify Project("loom_demo") or the target store, stop and fix that first. Ask it to show the project scope and store it intends to use, correct the configuration, and repeat this step. Do not accept a vague confirmation that omits the three fact types.
Ask the agent to summarize what it retained before ending the session:
If the agent collapses everything into one note, stop and ask it to correct the memory into separate Goal, Roadmap, and Decision facts. Continue only when all three appear and the agent identifies Directive as the type for a standing instruction.
Close this coding-harness session completely. Start a new Claude Code or Codex session without copying the earlier prompt or naming any of the saved facts. Explicitly connect to [loom_demo] and name only the seeded project scope so the new session reads the same tutorial memory:
[loom_demo] and use it for this session. Then help me choose the most important work to do next for Project("loom_demo").[loom_demo], confirms the connection, and reads the project's relevant durable context before recommending work. The critical Goal, its Roadmap item, and the related Decision surface because they match the project scope and planning request.That is the first win: the new session did not need a pasted summary or a reminder to search for the deadline. The context appeared when the work called for it.
If the response ignores the saved context, stop before planning. Ask the agent to confirm that loom-coding is active, that Project("loom_demo") exists, and that the expected memory store is available. Correct whichever check fails, open another fresh session, and try the same neutral planning prompt again.
You control recall by giving memories meaningful importance and scope, and by telling the agent what topic should lead the current task. In another fresh session, steer toward delivery mechanics rather than the deadline:
Project("loom_demo"). Surface the most relevant Decisions and Roadmap context first; leave unrelated Goals in the background unless they change the recommendation.If unrelated memories dominate, make the instruction narrower: name the project scope, the topic, and which fact types should lead. If too little surfaces, broaden the topic or ask the agent to include supporting Goals as well as Decisions and Roadmap items.
Importance and scope are not permanent guesses. Tell the agent when a fact should become more prominent, narrower, or no longer guide current work:
Project("loom_demo"). Lower the invitation-email Roadmap item to normal priority after it ships, and do not let the example address influence production configuration.Project("loom_demo"). After invitation emails ship, their Roadmap item will no longer lead normal planning. The example address remains documentation context only and will not be treated as production configuration.If the agent proposes deleting history just to reduce surfacing, stop and restate the desired control: preserve the record, but change its current importance, scope, or status.