Skip to content
Skills Library
Programming · Analysis

map-codebase

/map-codebase

Understand the whole codebase before any hiring work. Runs a deterministic inventory, then investigates and writes hiring/_repo/codebase-map.md covering every component and service, data stores and schema, APIs, authentication and security, CI/CD pipelines, deployment and infrastructure, observability, testing, dependencies, conventions and risks, each backed by file paths. Other skills require this map. In a multi-repo workspace it maps each repo at its tier (a full map for primary repos, a shorter service card for supporting ones). Use first, when no current map exists, when check_map.py fai

Licence
MIT
Last repository change
10.11.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
3
Scripts
2
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 10.11.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What to check before installing
  • 2 scripts in this package. Review them before installing, as Claude may execute them.

Scripts: scripts/check_map.py, scripts/inventory.py

What it does and when to use it

Understand the whole codebase before any hiring work. Runs a deterministic inventory, then investigates and writes hiring/_repo/codebase-map.md covering every component and service, data stores and schema, APIs, authentication and security, CI/CD pipelines, deployment and infrastructure, observability, testing, dependencies, conventions and risks, each backed by file paths. Other skills require this map. In a multi-repo workspace it maps each repo at its tier (a full map for primary repos, a shorter service card for supporting ones). Use first, when no current map exists, when check_map.py fai

Original author description

Understand the whole codebase before any hiring work. Runs a deterministic inventory, then investigates and writes hiring/_repo/codebase-map.md covering every component and service, data stores and schema, APIs, authentication and security, CI/CD pipelines, deployment and infrastructure, observability, testing, dependencies, conventions and risks, each backed by file paths. Other skills require this map. In a multi-repo workspace it maps each repo at its tier (a full map for primary repos, a shorter service card for supporting ones). Use first, when no current map exists, when check_map.py fai

How it works

  1. Procedure
  2. Several repos (workspace)
  3. Keeping it current
Original SKILL.md headings · 111 lines, 1,105 words
SKILL.md preview
---
name: map-codebase
description: Understand the whole codebase before any hiring work. Runs a deterministic inventory, then investigates and writes hiring/_repo/codebase-map.md covering every component and service, data stores and schema, APIs, authentication and security, CI/CD pipelines, deployment and infrastructure, observability, testing, dependencies, conventions and risks, each backed by file paths. Other skills require this map. In a multi-repo workspace it maps each repo at its tier (a full map for primary repos, a shorter service card for supporting ones). Use first, when no current map exists, when check_map.py fails, or when the user asks how the codebase works.
---

# Map the Codebase

Every other skill (planning, job descriptions, rubric, screening, interview kits) depends on understanding the
system. This skill builds that understanding **once per repository**, writes it down with evidence, and keeps it
current. Role-specific profiles (`repo-profile`) build on it.

Output (repo-level, shared by all roles; keep `hiring/` git-ignored):
- `hiring/_repo/inventory.json` — the deterministic checklist
- `hiring/_repo/codebase-map.md` — the map

Scripts are in `scripts/` next to this file. Run them with `python3 -I`. Paths in this file are relative to this skill's folder (the folder that holds this `SKILL.md`); skills are installed side by side, so `../<other-skill>/` reaches a sibling skill. Shared scripts named without a path (`check_ready.py`, `decisions.py`, `focus.py`, `trace_usage.py`, `workspace.py`) are in `../hiring-workspace/scripts/`; `check_map.py` and `inventory.py` are in `../map-codebase/scripts/`; any other script is in `../<skill>/scripts/` of the skill that owns it.

## Procedure

### 1. Inventory (deterministic)

`python3 -I scripts/inventory.py <repo>`

It lists languages and sizes, every manifest, package and compose service, containers, CI/CD pipelines, deployment
and IaC files, migrations and schema files, API specs, auth and security code and tooling, data stores, queues,
ORMs, observability and test frameworks, and the git commit. It records env files but never reads them.
Read its output in full: **everything it lists must be explained in the map.**

### 2. Investigate, area by area

Work through the areas below in order. For each, read the files the inventory points to, follow the code to the
files it depends on, and write down what is true, citing paths. Don't stop at the first file: a pipeline file
tells you the steps; the scripts it calls tell you what they actually do.

| Area | Questions to answer |
|---|---|
| **Overview** | What does the system do? Who uses it? Monolith, services, monorepo? Rough size. |
| **Components and services** | Every package, service and compose service: its job, its entry point, how it talks to the others (HTTP, queues, shared DB). Name each one the inventory lists. |
| **Data stores and schema** | Every database, cache, queue and object store. ORM, main entities, how migrations are written and applied, anything unusual (data migrations, multi-tenancy). |
| **APIs and integrations** | Public and internal APIs (REST, GraphQL, gRPC), how they're defined (spec or code-first), generated clients, external services called (email, payments, LLMs). |
| **Authentication and security** | How users and services authenticate (sessions, JWT, OAuth), password storage, authorisation and permissions, secrets and configuration handling, CORS/CSRF, dependency and secret scanning, security headers. |
| **CI/CD pipeline** | Every pipeline: triggers, jobs, gates (tests, lint, types, coverage), how releases and deployments happen, dependency automation. |
| **Deployment and infrastructure** | Where and how it runs: containers, orchestration, IaC, proxies and TLS, environments (staging, production), configuration per environment, scaling, backups. |
| **Observability** | Logging, metrics, tracing, error reporting, health checks, alerting. |
| **Testing** | Test types and where they live, frameworks, how tests get a database or services, coverage gates, end-to-end tests. |
| **Dependencies** | Main libraries per package and why they matter; anything pinned, forked or unusual. |
| **Conventions** | Code style and lint rules, typing strictness, structure, review rules (CODEOWNERS), commit or release conventions. |
| **Hot spots and risks (INTERNAL)** | What a new engineer will find hardest: complex or fragile areas, most-changed files, missing safeguards, security weaknesses, tech debt. **Never published**: postings and interview questions describe the work, not these findings. |
| **Gaps in this map** | What you didn't verify and why (e.g. "infrastructure lives in another repo"). |

For a large repo or monorepo, map every component at least at the "what it is and how it connects" level, and go deep
on the parts the user says they hire for. If the user hasn't said, ask once which areas matter most.

### 3. Write the map

```markdown
# Codebase map — <repo name>
Commit: <git commit or "none"> · Inventory: <fingerprint from inventory.json> · Generated: <date>

## Overview
...
## Components and services
- **backend** (`backend/`): FastAPI service; entry `backend/app/main.py`; talks to `db` over SQL ...
...
## Hot spots and risks (INTERNAL — never publish)
...
## Gaps in this map
...
```

Rules for the content:
- **Cite evidence** with backticked paths that exist (`backend/app/core/security.py`). A section with nothing to report
  says "None found" and where you checked.
- **Describe, don't copy.** No code blocks longer than a line, and **never** copy secrets, keys, tokens, passwords,
  connection strings or values from env files, even example ones.
- **Be specific.** "JWT access tokens signed with HS256, 8-day expiry (`backend/app/core/config.py`)" beats "uses JWT".
- Keep it under ~400 lines; link to files rather than explaining every function.

### 4. Check it

`python3 -I scripts/check_map.py <repo>` must pass. It fails when a section is missing or cites nothing, a cited
path doesn't exist, something the inventory found isn't explained, the risks section isn't marked INTERNAL, a
secret-looking value was copied, or the codebase changed since the map was written. Fix every error.

### 5. Hand off

Summarise the system for the user in 5–8 lines and offer the next step: planning a hire (`hiring-plan`), writing a
job description, or building a role profile.

## Several repos (workspace)

In a multi-repo workspace (see the `hiring-workspace` skill) each repo is mapped at its tier, written into the
workspace, never into the repo:

| Tier | File | Sections | Check |
|---|---|---|---|
| primary | `<ws>/maps/<repo>/codebase-map.md` | all 13 | `check_map.py <repo path> --map <file>` |
| supporting | `<ws>/maps/<repo>/service-card.md` | overview, components, data, APIs, auth, deployment, dependencies, gaps | `check_map.py <repo path> --map <file> --level card` |

`workspace.py scan` has already written `<ws>/maps/<repo>/inventory.json`. Repos from one template (the scan lists
them): map the group's primary repo fully, and in the others say "same template as <repo>" and describe only what
differs. Mention what each repo publishes and which internal hosts it calls (the inventory's `links`): the system map
builds on that.

**Planning checkpoint (stage `map`)**, per [CHECKPOINTS.md](../hiring-workspace/CHECKPOINTS.md): before mapping, ask
which areas to map in depth (options from the focus and the inventory) and whether template groups share one full
map, nothing pre-selected, with write-your-own and skip options. *If skipped:* every area to the same depth, each
repo mapped on its own. Record with `decisions.py add <ws or hiring/_repo> --stage map …` (`--skipped` for a skip).

## Keeping it current

`check_map.py` compares a fingerprint of the structurally important files (manifests, pipelines, containers,
deployment, migrations, schema, API specs, auth and security code). When they change, the map is stale and every
skill that depends on it stops until you update the affected sections and re-run the inventory.
Files in this package (3)
  • SKILL.md 8 KB
  • scripts/check_map.py 13 KB
  • scripts/inventory.py 27 KB

Versions

RepositoryScoreLicence
This page · shikhar58/repo-aware-hiring100MIT
eigenwise/eigenwise-toolshed100MIT
matteocervelli/llms100MIT
jszmajda/lid90MIT
duthaho/claudekit90MIT
iowarp/clio-coder81Apache-2.0

Database snapshot: 13.11.2026 · package version 3f219754a831 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100onboard-codebase
    Map an unfamiliar repository from the files actually read (what it is, entry points, how to run and test it, conventions, risks) and propose lines for the project memory. Use it when starting in a project new to you, when asked to explain or map a codebase, or while its memory is empty.
  • 100rescue-map
    Maps an unfamiliar codebase before anyone changes it: languages, entry points, how to build, run and test it, module boundaries, data stores, external services and the environment variables it needs. Writes rescue/map.md with a mermaid module diagram and a "where to start…
  • 100hiring-workspace
    Set up hiring for a role that spans several repositories (microservices, shared libraries, infrastructure repos). Creates a private workspace outside the repos, adds them by local path or git URL, scans every repo, builds a cross-repo graph (shared packages, deployed images,…
  • 100update-codebase-map
    Refresh an existing .claude/.codebase-info/ map after code changes. Use for stale codebase or architecture docs; use map-codebase to create one.
  • 95ghost-repo-context
    Scans directory structure, detects projects, maps dependencies, and documents code organization into a repo.md file. Use when the user needs a codebase overview, project structure map, or repository context before security analysis.
  • 100repo-map
    Generate or refresh a durable, directory-level map of the codebase — what each directory is for and its key entry-point files — stored as memory/architecture/repo-map.md and stamped with the git commit it was verified against. Use to create the map, refresh it after the tree…

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.