/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
$ npx -y skills add ScottRBK/forgetful --skill forgetful-entities --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-entities
Context preview
The summary Claude sees to decide when to auto-load this skill.
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
SKILL.md
forgetful-entities.SKILL.mdname: forgetful-entities
description: >-
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
pointable thing here. Litmus: an entity is a noun you could point at; knowledge about it
stays a memory.
license: MIT
tags: [entities, knowledge-graph, relationships, modelling]
allowed-tools:
- mcp__forgetful__discover_forgetful_tools
- mcp__forgetful__how_to_use_forgetful_tool
- mcp__forgetful__execute_forgetful_tool
- Bash(forgetful:*)
Modelling entities in Forgetful
Entities are the graph's nouns. Model the thing once, then let knowledge accrue to it through links — that is what makes `get_entity_memories` a useful reverse lookup later.
Invoking operations
Operations are named by registry name (`create_entity`, `link_entity_to_memory`, ...). Invoke via whichever surface this agent has:
- **MCP**: `execute_forgetful_tool(tool_name="create_entity", arguments={...})`
- **CLI**: `forgetful call create_entity --args '{"name": "..."}' --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 — Apply the litmus, then dedupe
Can you point at it? "Sarah Chen" is an entity; "Sarah is great at debugging async issues" is a memory linked to her. The fact stays a memory (`forgetful-remember`); the thing it is about becomes the entity.
Before creating, `search_entities` for the thing under its likely names — it matches both `name` and `aka`. Set `aka` at creation time for any alternative names the thing goes by, so a later dedupe search under a different name still finds it.
Done when: the thing either already exists (use it) or is confirmed new.
Step 2 — Create with a type
`create_entity` with a name and type: Organization, Individual, Team, Device, System, or Other (`custom_type` required when Other). Stored Title-case; matched case-insensitively on input. Check `list_entities` for the types already in use and match them — a graph where servers are sometimes typed "Device" and sometimes "System" fragments reverse lookups.
Done when: the entity exists once, typed consistently with the existing graph.
Step 3 — Link knowledge and projects as they accrue
- `link_entity_to_memory` whenever a memory is *about* the entity — done at capture time,
this is one line; done later, it is an archaeology project.
- `link_entity_to_project` when the entity belongs to a project's world.
Done when: knowledge about the thing is reachable from the thing (`get_entity_memories`).
Step 4 — Record relationships between entities
`create_entity_relationship` with a direction and a type. Keep the vocabulary small and consistent — `owns`, `depends_on`, `part_of`, `uses`, `created_by` cover most structure. Check `get_entity_relationships` on either entity first and reuse the types already in the graph before coining new ones. Direction carries meaning: A `depends_on` B is a statement about A.
Done when: the relationships that answer real questions (impact, structure, responsibility) are recorded, and none duplicate an existing edge.
Read more
name: forgetful-entities description: >- 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 pointable thing here. Litmus: an entity is a noun you could point at; knowledge about it stays a memory. license: MIT tags: [entities, knowledge-graph, relationships, modelling] allowed-tools: - mcp__forgetful__discover_forgetful_tools - mcp__forgetful__how_to_use_forgetful_tool - mcp__forgetful__execute_forgetful_tool - Bash(forgetful:*)
Modelling entities in Forgetful
Entities are the graph's nouns. Model the thing once, then let knowledge accrue to it through links — that is what makes `get_entity_memories` a useful reverse lookup later.
Invoking operations
Operations are named by registry name (`create_entity`, `link_entity_to_memory`, ...). Invoke via whichever surface this agent has:
- **MCP**: `execute_forgetful_tool(tool_name="create_entity", arguments={...})`
- **CLI**: `forgetful call create_entity --args '{"name": "..."}' --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 — Apply the litmus, then dedupe
Can you point at it? "Sarah Chen" is an entity; "Sarah is great at debugging async issues" is a memory linked to her. The fact stays a memory (`forgetful-remember`); the thing it is about becomes the entity.
Before creating, `search_entities` for the thing under its likely names — it matches both `name` and `aka`. Set `aka` at creation time for any alternative names the thing goes by, so a later dedupe search under a different name still finds it.
Done when: the thing either already exists (use it) or is confirmed new.
Step 2 — Create with a type
`create_entity` with a name and type: Organization, Individual, Team, Device, System, or Other (`custom_type` required when Other). Stored Title-case; matched case-insensitively on input. Check `list_entities` for the types already in use and match them — a graph where servers are sometimes typed "Device" and sometimes "System" fragments reverse lookups.
Done when: the entity exists once, typed consistently with the existing graph.
Step 3 — Link knowledge and projects as they accrue
- `link_entity_to_memory` whenever a memory is *about* the entity — done at capture time,
this is one line; done later, it is an archaeology project.
- `link_entity_to_project` when the entity belongs to a project's world.
Done when: knowledge about the thing is reachable from the thing (`get_entity_memories`).
Step 4 — Record relationships between entities
`create_entity_relationship` with a direction and a type. Keep the vocabulary small and consistent — `owns`, `depends_on`, `part_of`, `uses`, `created_by` cover most structure. Check `get_entity_relationships` on either entity first and reuse the types already in the graph before coining new ones. Direction carries meaning: A `depends_on` B is a statement about A.
Done when: the relationships that answer real questions (impact, structure, responsibility) are recorded, and none duplicate an existing edge.
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-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 - /forgetful-mcp-setup
Set up an MCP client for Forgetful — wire Claude Code, Cursor, Copilot, Codex, Gemini, or OpenCode to the server and verify the connection behaves. Covers stdio vs HTTP transport, auth and scopes, the three meta-tools every client sees, and delegation to subagents.
Open skill

