# 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 strongest hits, and opens the linked material.

- Skill: `scottrbk/forgetful-context-gather` (Agent Skill)
- Install (CLI): `npx skillmds@latest add scottrbk/forgetful-context-gather`
- Raw SKILL.md: https://api.skillmd.com/api/skills/scottrbk/forgetful-context-gather/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- License: MIT
- Author: scottrbk (https://skillmd.com/u/scottrbk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/scottrbk/forgetful-context-gather

---


# Gathering context before work

A single query answers a question; a context gather prepares a task. The output is a pack
the work can lean on, with every claim cited by memory ID and every dry angle stated —
silence is never ambiguous.

## Invoking operations

Operations are named by registry name (`query_memory`, `get_document`, ...). 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.

Delegating this workflow to a subagent: hand it the CLI flavor — `Bash` travels into
subagents, MCP tool access does not. Run MCP-flavored gathers in the main conversation.

## Step 1 — Derive the query angles

From the task description, write 3–5 distinct angles: the feature area, the technology or
library, exact error text or identifiers, the architectural layer, adjacent domains that
share patterns. One angle is a spot-check; several are coverage.

Done when: the angles are listed before any query runs.

## Step 2 — Recall per angle

`query_memory` per angle — `query` and `query_context` are both required, and
`query_context` should carry the task's intent (per `forgetful-recall`: reads cross-project
by default, identifiers verbatim, `truncated` handled). Skills referenced by name in this
skill resolve via `search_skills` → `export_skill` when not already available. Track which
angles hit and which came up dry.

Done when: every angle has run and its outcome is recorded.

## Step 3 — Explore around the strongest hits

Where hits reference entities or cluster into a topic, walk the graph (per
`forgetful-explore`, medium depth): expand the memories, discover the entities, harvest
what is attached to them.

Done when: the strongest hits have their neighbourhood mapped, not just their own text.

## Step 4 — Open the linked material

Hits point outward — follow the pointers: `get_document` for linked documents,
`get_code_artifact` for reusable code, `search_skills` + `get_skill` for procedures that
already do the task, `get_skill_links` for what those procedures bundle.

Done when: load-bearing linked material is read, not just listed.

## Step 5 — Sweep for unlinked material

Link-following only surfaces what a hit already points to — a document or code artifact
that no surfaced memory links to stays invisible to that flow. Close the gap:
`list_documents` and `list_code_artifacts`, scoped with `project_id` when the task is
project-bound, then scan titles for relevance. `search_skills` already searches skills
directly, so no separate sweep is needed there.

Done when: documents and code artifacts have been swept by title, not just reached by link.

## Step 6 — Synthesize the pack

Assemble, in order of usefulness to the task:

- **Decisions** that constrain the work (cited by memory ID)
- **Patterns and preferences** that shape how it should be done
- **Constraints** — things ruled out, with the reason
- **Code pointers** — artifacts and source references worth opening
- **Procedures** — stored skills that cover part of the task
- **Gaps** — every angle that came up dry, stated as "no existing knowledge about X"

Done when: the pack cites its sources, states its gaps, and the task could start from it
without re-querying.

