Continue from Tutorial 07. The setup in Tutorial 03 prepares the [loom_demo] store and local palmerpenguins repository used below.
The scenario is simple: palmerpenguins is a small Python package with bundled CSV data and a local loader. A proposed runtime network fetch conflicts with an earlier project decision. You will watch Loom surface that conflict before planning begins.
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.[loom_demo].[loom_demo], describes it, resolves the project and git-user nodes — recreating either with the idempotent get-or-create bootstrap from Tutorial 03 if it is missing — and verifies that the store's current coding-memory guidance is available.[loom_demo] is reachable and healthy. Project("palmerpenguins") and the GitUser derived from this repository's current git email are in place (from Tutorial 03, or bootstrapped just now), and the coding prompt returned populated capture, read, and answer guidance.Start each planning session this way. It catches a wrong store, missing skill, absent scope node, or invalid prompt contract before planning begins.
A Roadmap records work the project intends to do, so a future planning session can recover the backlog without reconstructing it from chat history. Here, the result should be three distinct, project-scoped items rather than one undifferentiated note.
[loom_demo], remember these roadmap items for the palmerpenguins project: "add a simple package usage example", "document the bundled CSV columns", and "add tests that preserve the current drop_na and return_X_y loader behavior".[loom_demo] contains all three current Roadmap items for palmerpenguins: add a simple package usage example; document the bundled CSV columns; and add tests preserving drop_na and return_X_y. Each item is scoped to the project and attributed to the git user.These are not tasks yet. They are planning context that future agents can recover.
A Decision records a settled direction that should constrain later plans. Saving it separately from the Roadmap lets Loom surface both what the team wants to do and the boundary within which it should be done.
[loom_demo], remember this Decision: keep palmerpenguins as a lightweight local dataset package. Do not replace the bundled CSV loader with a runtime network download unless I explicitly approve the change in direction.[loom_demo] contains the current critical Decision: keep palmerpenguins as a lightweight local dataset package and do not replace the bundled loader with runtime network access without explicit approval.The Decision is now project memory rather than chat-only context.
Project("palmerpenguins").That pause is the point. Loom does not silently block you, but it makes the current project decision visible before development goes down the wrong path.
[loom_demo] rather than relying on the previous chat turn, then plans around the saved Roadmap and Decision.drop_na and return_X_y loader behavior. Keep using the packaged CSV resource; do not add runtime network access.When a calculation starts repeating across plans like this, it is a promotion candidate: Tutorial 09 promotes a repeated penguin-count query into a named rule and compares the user and root rule tiers.
Loom makes current Roadmap items and Decisions the starting point for planning, even after the original session ends.