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 supersession, not duplication.
Scanned 9/3/2026
Install to Claude Code
npx -y skills add ScottRBK/forgetful --skill forgetful-encode-repo --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Forgetful Encode Repo?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/scottrbk-forgetful-encode-repo)More formats (shields.io, HTML) on the badges page.
---
name: forgetful-encode-repo
description: >-
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 supersession, not duplication.
license: MIT
disable-model-invocation: true
tags: [bootstrap, encoding, repository, knowledge-base]
allowed-tools:
- mcp__forgetful__discover_forgetful_tools
- mcp__forgetful__how_to_use_forgetful_tool
- mcp__forgetful__execute_forgetful_tool
- Bash(forgetful:*)
---
# Encoding a repository
The goal is a knowledge base a future session can lean on: the system modelled as entities,
the decisions and conventions as atomic memories, the long-form understanding as documents,
everything provenance-stamped back to the source. Encode twice and the second pass updates
— never duplicates.
## Invoking operations
Operations are named by registry name (`create_project`, `create_entity`, ...). Invoke via
whichever surface this agent has:
- **MCP**: `execute_forgetful_tool(tool_name="create_project", arguments={...})`
- **CLI**: `forgetful call create_project --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 — Resolve the project
`git remote get-url origin` → `owner/repo` → `list_projects` with `repo_name`. Existing
project means this run is a refresh; otherwise `create_project` with the repo name and a
description of what the codebase is for.
Done when: a project_id exists and the run knows whether it is a first encode or a refresh.
## Step 2 — Survey the sources
Read what the repo says about itself before reading code: README, docs/, contributor and
agent guides, manifests (dependencies, entry points, scripts), CI and deploy configuration.
Note the current commit — every write in this run cites it via provenance.
Done when: there is a source list of what will be encoded, ordered by signal.
## Step 3 — Model the system as entities
Skills referenced by name below resolve via `search_skills` → `export_skill` when not
already available. Per `forgetful-entities`: the system itself and its key components
(services, packages, databases, external dependencies that matter) as `entity_type:
"System"`, and their structure as relationships — `part_of` for composition, `depends_on`
for coupling. Dedupe against existing entities on a refresh.
Done when: the architecture is walkable as a graph, components to system, dependencies out.
## Step 4 — Store the knowledge
Two layers, per `forgetful-remember` (its routing, atomicity test, and importance rubric
govern every write here):
- **Documents** for long-form understanding: architecture overviews, subsystem guides,
design analyses.
- **Atomic memories** as the entry points: decisions, conventions, patterns, constraints —
each linked to its document via `document_ids`, stamped with `source_repo` and
`source_files`, and linked to the entities it concerns via a separate
`link_entity_to_memory` call (not something `create_memory` does for you).
On a refresh, query first per source area: update what drifted, mark obsolete what the code
contradicts, create only what is new.
Done when: each surveyed source area has produced its documents and entry-point memories,
or explicitly had nothing worth encoding.
## Step 5 — Report coverage
Close with a coverage report, in place of "done": project ID, entities created/updated,
memories created/updated/obsoleted, documents written, source areas skipped and why, and
the areas where knowledge is thin. Note repo-level gaps the survey turned up too — missing
docs, absent CI, and the like — not only gaps in the encoding itself. Deliver the report in
the final response to the user; it is not written anywhere in Forgetful. The report is the
encode's acceptance surface — a reader should be able to spot a gap from it alone.
Done when: the report is delivered and honest about gaps.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!