skills/codebase-codemap/SKILL.md
Generate and refresh concise, source-led codebase maps that help Codex or Claude understand a repository before planning, debugging, reviewing, refactoring, onboarding to unfamiliar code, or making multi-file changes. Use when the user asks for a codemap, code map, repo map, architecture snapshot, source inventory, agent context, or when an agent needs stronger codebase orientation before editing.
npx skillsauth add keelim/keelim-skill codebase-codemapInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to create an agent-readable map of a repository from live source files. Favor evidence from manifests, entrypoints, tests, docs, and high-signal symbols over speculative prose.
The default output is one compact Markdown file named after the repository folder, such as docs/CODEMAPS/rich.md or docs/CODEMAPS/keelim-plugin.md. For short-lived work, write a project-named file under .omx/context/.
AGENTS.md, README.md, and existing docs/CODEMAPS/* if present..gitmodules, collect submodule evidence before deciding scope:git status --short
git status --ignore-submodules=none --short
git submodule status
git ls-files --stage | rg '160000'
sed -n '1,220p' .gitmodules
Use this evidence to distinguish declared .gitmodules entries, active gitlinks, initialized submodules, autonomous local repos, and untracked local repos. Do not let a raw source scan blur those boundaries.
3. Run the generator from this skill:
python3 /path/to/codebase-codemap/scripts/generate_codemap.py /path/to/repo
By default this writes docs/CODEMAPS/<project-name>.md inside the target repo.
git diff --check docs/CODEMAPS/agent-codemap.md.Use the bundled script when a fast first-pass map is enough:
python3 scripts/generate_codemap.py .
python3 scripts/generate_codemap.py ../rich --output-dir docs/CODEMAPS
python3 scripts/generate_codemap.py . --project-name rich-admin
python3 scripts/generate_codemap.py . --max-files 1200 --max-symbol-files 160
python3 scripts/generate_codemap.py . --stdout
In a multi-project workspace, run the script once per child repository. Each run should target the child repo root so the default output lands in that repo as docs/CODEMAPS/<child-project-name>.md.
The script uses only Python stdlib. It intentionally ignores common generated/cache directories such as .git, .omx, node_modules, .next, dist, build, coverage, .venv, and target.
When mapping a root workspace that coordinates child Git repositories, the codemap must make repository boundaries explicit. Include a short, evidence-backed summary of:
.gitmodules declarations and tracked branchesgit ls-files --stage | rg '160000'git submodule status output, including +, -, or detached/pinned-state signalsIf .gitmodules and active gitlinks disagree, record that mismatch in Open Questions instead of smoothing it over. If the user explicitly asks to repair, add, or pin submodules, the codemap should provide this evidence as the basis for the follow-up implementation rather than stopping at a generic architecture snapshot.
Keep the map:
Include these sections when editing manually:
Read FirstRepository ShapeEntrypointsKey DirectoriesTests and VerificationDependencies and ToolingSymbol LandmarksOpen QuestionsRead references/codemap-schema.md before changing the output contract or when manually creating a codemap without the script.
Good request:
Use $codebase-codemap to map this repo before planning the refactor.
Good output location:
docs/CODEMAPS/<project-name>.md
Use .omx/context/<task>-codemap.md instead when the map is task-local or should not be committed.
.gitmodules alone as proof that a path is an active submodule; confirm with gitlinks and git submodule status.tools
Use when writing first-person technical posts in a personal engineer voice, especially build logs, case studies, workflow write-ups, or series posts about tools, systems, and engineering habits.
tools
Build a secure offline HTML dashboard and JSON summary from Codex and Claude session JSONL logs. Use when the user wants to track agent tool usage, skill invocations, subagent kinds, session harness activity, or usage counts for Codex/Claude runs without exposing raw prompts, tool arguments, or tool outputs.
documentation
Capture session observations through opt-in hooks, review learning candidates, and promote stable lessons into AGENTS.md, README.md, skills, or docs without letting hooks mutate canonical project files directly.
tools
Use when preparing a date-based Android release from develop to main, updating versionCode, aligning an existing release PR with recent conventions, or dispatching app_deploy through GitHub Actions.