What it does
Generates an opening briefing for the current session by scanning active goals and recent decisions from Memory Crystal. Use this at the start of a session to establish context before proceeding with substantive work.Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| channel | string | No | — | Optional channel identifier to scope the briefing (e.g., “claude-code”, “telegram”) |
Returns
briefing— Human-readable overview of session context and active prioritiesopenGoals— Array of goal memories marked as active/pendingrecentDecisions— Array of recent decision memories (typically from last 7 days)- Each memory includes
titleandmemoryIdfor reference/drill-down
- The briefing text
- Open goals (bulleted list, or “none” if empty)
- Recent decisions (bulleted list, or “none” if empty)
Examples
Basic usage
Advanced usage
When to use this vs alternatives
crystal_wake— At session start to establish context; summarizes goals and recent decisionscrystal_recall— When you need semantically relevant memories on a specific topiccrystal_what_do_i_know— When you want a broad topic scan without fixed recency/category filterscrystal_recent— When you need recent message history, not memory summaries
Error handling
| Error | Cause | Resolution |
|---|---|---|
| channel is not a string | Malformed channel input | Provide a string or omit the parameter |
| Embedding service unavailable | OpenAI or vector database offline | Retry; check network and OPENAI_API_KEY |
| No goals or decisions found | New session with no prior context | Not an error — returns empty arrays. Proceed with user’s request. |
| Authentication failed | Invalid Convex JWT or API key | Verify auth configuration in Convex client setup |
Notes
- The briefing is generated fresh on each call, not cached.
- Open goals are memories with category=
goaland status=active. Recent decisions are category=decisionwithin the last 7 days. - Channel filtering is optional; if omitted, returns cross-channel goals and decisions.
- The formatted briefing output includes a defense header to prevent accidental instruction injection.
- If no goals or decisions exist, the tool returns empty arrays but does not error.
- The briefing is designed to be read by an AI before substantial work begins; it primes context without forcing action.
