/forgetful-recall
Recall past knowledge before working — prior decisions, solved problems, preferences, project history. Use at the start of any task, when the user references earlier work, when re-entering a project after time away, or before proposing an approach that may already have history.
$ npx -y skills add ScottRBK/forgetful --skill forgetful-recall --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/forgetful-recall
Context preview
The summary Claude sees to decide when to auto-load this skill.
Recall past knowledge before working — prior decisions, solved problems, preferences, project history. Use at the start of any task, when the user references earlier work, when re-entering a project after time away, or before proposing an approach that may already have history.
SKILL.md
forgetful-recall.SKILL.mdname: forgetful-recall
description: >-
Recall past knowledge before working — prior decisions, solved problems, preferences,
project history. Use at the start of any task, when the user references earlier work, when
re-entering a project after time away, or before proposing an approach that may already
have history. Covers query shaping, scoping, session-start catch-up, and when to escalate
to graph exploration.
license: MIT
tags: [memory, retrieval, search, context]
allowed-tools:
- mcp__forgetful__discover_forgetful_tools
- mcp__forgetful__how_to_use_forgetful_tool
- mcp__forgetful__execute_forgetful_tool
- Bash(forgetful:*)
Recalling knowledge from Forgetful
Retrieval quality is decided by how the query is shaped and scoped, and by treating coverage as something to judge rather than assume. Recall before proposing; history usually exists.
Invoking operations
Operations are named by registry name (`query_memory`, `get_recent_memories`, ...). Invoke via whichever surface this agent has:
- **MCP**: `execute_forgetful_tool(tool_name="query_memory", arguments={...})`
- **CLI**: `forgetful call query_memory --args '{"query": "..."}' --json`
Get any operation's schema at runtime: `how_to_use_forgetful_tool` (MCP) or `forgetful tools info <operation>` (CLI) — schemas are deliberately not repeated here.
Step 1 — Shape the query
`query_context` is a required parameter alongside `query`, not optional flavor text — the call errors without it. Pass it deliberately: the two are embedded together, and ranking genuinely shifts with intent ("auth" while implementing a feature ranks differently than "auth" while debugging login). Include exact identifiers verbatim — error codes, function names, config keys — the sparse full-text leg of the search matches them literally.
Done when: both `query` and `query_context` are written, not just a bare keyword.
Step 2 — Scope deliberately
Reads are cross-project by default, and usually should stay that way — knowledge transfers. Narrow with `project_ids` when the task is project-bound; add `strict_project_filter=True` to also keep linked memories inside those projects (the default `False` lets links cross them). Use `importance_threshold` to cut noise — it excludes anything scored below the value given, pairing naturally with `forgetful-remember`'s rubric, where 5 is the noise floor for bulk/automated captures. Adjust `k` to trade breadth for focus. These are filters layered on top of semantic search, which stays the primary retrieval mechanism throughout.
Done when: the scope is a choice, not a default accident.
Step 3 — Judge coverage
Results are budgeted (about 8000 tokens / 20 memories), so assess coverage rather than non-emptiness:
- `truncated: true` → narrow the query (raise the threshold, scope the project) instead of
accepting silent loss.
- A miss on the first angle → re-query from a different facet (the feature area, the
technology, the error text) before concluding the knowledge doesn't exist.
Done when: results are judged sufficient, or absence is confirmed from more than one angle.
Step 4 — Expand or escalate
Promising hits get `get_memory` for full content and links. When hits arrive as fragments, reference entities, or trail across domains, the flat list is the wrong shape — switch to `forgetful-explore` and walk the graph instead.
Done when: enough context is in hand, or the exploration skill has taken over.
Step 5 — Report
This skill is the single source of truth for the retrieval reporting convention:
- Found context: "Found N memories about X" with the load-bearing ones named.
- Nothing relevant: say so explicitly — "No existing memories about X."
- Off-target results: flag them — "Retrieved some context but it seems tangential."
A clean miss is also a signal: note the gap as a `forgetful-remember` candidate once the task resolves it.
Done when: the user knows what memory contributed, even when the answer is "nothing".
Session-start catch-up
Re-entering a project after time away: `get_recent_memories` scoped to that project's ID is the catch-up move — recent decisions and milestones without guessing queries. Run it as a deliberate step, then continue into normal recall as the task demands.
Read more
name: forgetful-recall description: >- Recall past knowledge before working — prior decisions, solved problems, preferences, project history. Use at the start of any task, when the user references earlier work, when re-entering a project after time away, or before proposing an approach that may already have history. Covers query shaping, scoping, session-start catch-up, and when to escalate to graph exploration. license: MIT tags: [memory, retrieval, search, context] allowed-tools: - mcp__forgetful__discover_forgetful_tools - mcp__forgetful__how_to_use_forgetful_tool - mcp__forgetful__execute_forgetful_tool - Bash(forgetful:*)
Recalling knowledge from Forgetful
Retrieval quality is decided by how the query is shaped and scoped, and by treating coverage as something to judge rather than assume. Recall before proposing; history usually exists.
Invoking operations
Operations are named by registry name (`query_memory`, `get_recent_memories`, ...). Invoke via whichever surface this agent has:
- **MCP**: `execute_forgetful_tool(tool_name="query_memory", arguments={...})`
- **CLI**: `forgetful call query_memory --args '{"query": "..."}' --json`
Get any operation's schema at runtime: `how_to_use_forgetful_tool` (MCP) or `forgetful tools info <operation>` (CLI) — schemas are deliberately not repeated here.
Step 1 — Shape the query
`query_context` is a required parameter alongside `query`, not optional flavor text — the call errors without it. Pass it deliberately: the two are embedded together, and ranking genuinely shifts with intent ("auth" while implementing a feature ranks differently than "auth" while debugging login). Include exact identifiers verbatim — error codes, function names, config keys — the sparse full-text leg of the search matches them literally.
Done when: both `query` and `query_context` are written, not just a bare keyword.
Step 2 — Scope deliberately
Reads are cross-project by default, and usually should stay that way — knowledge transfers. Narrow with `project_ids` when the task is project-bound; add `strict_project_filter=True` to also keep linked memories inside those projects (the default `False` lets links cross them). Use `importance_threshold` to cut noise — it excludes anything scored below the value given, pairing naturally with `forgetful-remember`'s rubric, where 5 is the noise floor for bulk/automated captures. Adjust `k` to trade breadth for focus. These are filters layered on top of semantic search, which stays the primary retrieval mechanism throughout.
Done when: the scope is a choice, not a default accident.
Step 3 — Judge coverage
Results are budgeted (about 8000 tokens / 20 memories), so assess coverage rather than non-emptiness:
- `truncated: true` → narrow the query (raise the threshold, scope the project) instead of
accepting silent loss.
- A miss on the first angle → re-query from a different facet (the feature area, the
technology, the error text) before concluding the knowledge doesn't exist.
Done when: results are judged sufficient, or absence is confirmed from more than one angle.
Step 4 — Expand or escalate
Promising hits get `get_memory` for full content and links. When hits arrive as fragments, reference entities, or trail across domains, the flat list is the wrong shape — switch to `forgetful-explore` and walk the graph instead.
Done when: enough context is in hand, or the exploration skill has taken over.
Step 5 — Report
This skill is the single source of truth for the retrieval reporting convention:
- Found context: "Found N memories about X" with the load-bearing ones named.
- Nothing relevant: say so explicitly — "No existing memories about X."
- Off-target results: flag them — "Retrieved some context but it seems tangential."
A clean miss is also a signal: note the gap as a `forgetful-remember` candidate once the task resolves it.
Done when: the user knows what memory contributed, even when the answer is "nothing".
Session-start catch-up
Re-entering a project after time away: `get_recent_memories` scoped to that project's ID is the catch-up move — recent decisions and milestones without guessing queries. Run it as a deliberate step, then continue into normal recall as the task demands.
Forgetful is a storage and retrieval tool for AI Agents. Designed as a Model Context Protocol (MCP) server built using the FastMCP framework.
Repo: ScottRBK/forgetful
Other skills on forgetful.
- /forgetful-cli-setup
Set up the Forgetful CLI and connect from a terminal — install, local or remote mode, auth, and verification. Use when connecting a human or headless agent via shell, wiring CI with token auth, or operating a local server (serve, database selection, feature flags, re-embedding).
Open skill - /forgetful-context-gather
Gather deep context before planning or implementing — one pass that turns a task description into a cited context pack: relevant decisions, patterns, constraints, code pointers, procedures, and explicit gaps. Runs recall from several angles, explores the graph around the
Open skill - /forgetful-encode-repo
Encode a repository into the Forgetful knowledge base — bootstrap the project, its entities, memories, and documents from the codebase itself. Use when bringing a new repo under Forgetful or refreshing a stale encoding. Re-encoding is an update pass: query-before-create makes it
Open skill - /forgetful-entities
Model the things knowledge attaches to — people, organisations, devices, products, system components. Use when a new thing surfaces that memories will reference, when relationships between things need recording (owns, depends on, part of), or when another skill routes a
Open skill - /forgetful-explore
Explore the Forgetful knowledge graph when flat search isn't enough — cross-project investigations, "what do we know about X", entity-centred questions, tracing how decisions connect. Use when recall returns fragments that reference entities or trail across domains. Walks
Open skill - /forgetful-files
File binary content into the knowledge base — screenshots, PDFs, diagrams, fonts, assets. Use when a binary artifact is worth keeping alongside knowledge, or when a stored procedure needs a bundled asset. The description is the entire search surface: say what the file shows and
Open skill

