pulse
Warm up an agent session with the current checkpoint, open handoffs, anti-patterns, and recent notes, scoped to a domain, to resume work in context.
Instructions
Session warm-up: latest checkpoint + open handoffs/anti-patterns + recent notes.
Picks the checkpoint by created_at DESC, never by similarity -- a similarity-ranked top-1 can return a stale checkpoint over a same-day one, which is exactly the failure mode this avoids. latest_checkpoint is returned in full (that's the point of pulse), with its relations attached so linked memories are visible without a separate get_relations call. handoffs and anti_patterns are notes left for whoever resumes; recent_notes are the newest note()'d facts, as recency breadcrumbs -- for relevance-ranked recall use recall()/search(). Those three lists are snippet-truncated -- call get_memory(uid) for one in full.
latest_checkpoint and those three lists carry est_tokens, the
estimated cost of a record's FULL content: on a truncated one that is
what the get_memory(uid) would cost, on latest_checkpoint it is what
this response already spent. diagrams has no bodies to price.
diagrams lists the documented flows by title only, never inlined: a whole graph would swamp a warm-up. Read one with get_diagram(uid) when the work actually touches that routine.
domain warms up a path and everything under it, so pulse('acme/x100')
is the module-wide brief and pulse('acme/x100/p200') the routine's.
A domain that names only the deep end of a path ('p200') is resolved
to the branches it sits in -- scope.paths reports which, and an
ambiguous name resolves to ALL of them.
scope is the rest of the brief: what the scope HOLDS, next to what
came back. This is a warm-up, so each list stops at a handful and the
newest few of a busy child can fill it on their own -- scope.not_shown
counts what that left behind, per type, and scope.subdomains says
which level it is sitting in (own = filed there, subtree = with its
descendants). Read them as the drill-down plan: search(query,
domain=...) or list_by_domain(domain, type=..., limit=...) on the child
that holds what this pass only counted. A pulse is the state of a
scope, never its contents.
scope.stale is the one thing here about DECAY rather than contents:
how many memories in the scope carry a review_after date that has
passed. Present only when non-zero. It means somebody who knew the
subject said when to look again and nobody has -- optimize_scan lists
which ones, with their source_ref.
A scope holds what is CROSS-LISTED into it as well as what is filed
there, so warming up an end-to-end flow brings back the routines that
are steps of it wherever they live. scope.also counts how much of the
brief arrived that way, and a subdomain carries its own also --
present only when non-zero, so a store that never cross-lists never
sees the field.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No |