cdb-scan
Skill233 starsChanged 3 months agoApache-2.0View on GitHub
Map this codebase into project memory — a code graph of every symbol and how they connect, plus a written profile of stack, layout, conventions and workflows. Re-run any time to refresh both in place. Use when memory is newly installed on an existing project, or when the project has changed enough that the stored map is stale.
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 4 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Run this first, from the project root:
- Distinctive: line 34
Prefer those over reading files when the question is about structure.
- Very specific: line 50
Before you start, call search for profile in this project.
- Distinctive: line 82
Only the parts a newcomer could not infer from the layout: the main abstractions and how a request or a command actually flows through them.
- Distinctive: line 92
Say what you verified: If something was not read, leave it out.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Map this project into memory
Everything else in claude-db's memory is testimony: it records what happened, turn by turn, as it happened. A fresh install knows none of that, and stays useless for weeks while it fills up.
This fills the gap from the one source available on day one — the code itself, in two passes.
Pass 1 — the code graph
Run this first, from the project root:
claude-db scanIt parses every supported source file and stores each symbol and each relationship between them: what calls what, what imports what, what extends what. It is deterministic, costs no tokens, and takes seconds. Report the symbol and edge counts it prints.
Once it has run, find_usages answers structural questions from the graph:
mode: "usages"— what references this symbol, with the relation on each linemode: "explain"— that, plus what the symbol itself reachesmode: "path"withtarget— how two symbols connect
Prefer those over reading files when the question is about structure.
Pass 2 — the written profile
The graph records what the code is. It cannot say why the project is built
this way, so the sections below capture that in prose. What you write here is
your reading of the codebase, not a record of events, so it is tagged
inferred and must never be phrased as history.
Work through the sections below in order. For each one, look at the actual
files, then call the remember MCP tool once with the given key.
key is what makes this re-runnable: writing the same key again replaces that
note rather than adding a second copy. Use these exact keys, and always pass
tags: ["inferred"] and kind: "context".
Before you start, call search for profile in this project. If notes already
exist, read them first and update what changed rather than restating it — a
second run should be an edit, not a rewrite.
1. profile:stack
Languages, runtime and version floors, frameworks, package manager, database,
test runner, build tool. Read the manifest (package.json, pyproject.toml,
go.mod, Cargo.toml) and the lockfile rather than guessing. Name versions
where a version constrains what can be written.
2. profile:layout
The directory map, one line each, and what lives where. Include the entry points: the binary, the server, the main export. Skip anything generated.
3. profile:conventions
How this codebase is written, taken from the code and not from a style guide: module system, import style, error handling, naming, comment density, how tests are structured. Note where the project deviates from the language default, since that is what someone would otherwise get wrong.
4. profile:workflows
The commands that matter — install, build, test, lint, run, release — and anything non-obvious about running them: a required service, an environment variable, a step that must come first. Take them from the manifest scripts and CI config, not from the README's aspirations.
5. profile:architecture
Only the parts a newcomer could not infer from the layout: the main abstractions and how a request or a command actually flows through them. Two paragraphs at most. If the codebase is small enough that the layout says it all, skip this section rather than padding it.
Rules
- One
remembercall per section. Five notes, five stable keys. - Write claims, not headings. "Storage is one
MemoryStoreinterface with three adapters, selected by URI scheme" — not "Storage architecture". - Say what you verified. If something was not read, leave it out. An inferred profile that is confidently wrong is worse than a short one.
- Never restate
CLAUDE.md. That file is already in the system prompt on every turn. Memory is for what is not. - Do not record secrets, credentials or personal data, even if the code contains them.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

