Explain an unfamiliar codebase

A map of a codebase: entry points, data flow, key modules and where to make a given change.

Use it when
Your first day in a repo, or before a change in code you did not write.
What you fill in
  • files The file tree and key files
  • task The change you need to make
Explain this codebase so I can make this change: task

files

1. What the system does, in 3 sentences.
2. Entry points and the request or data flow, step by step, naming files.
3. The 5 modules that matter most and their responsibilities.
4. Conventions to follow (naming, errors, tests, state).
5. Exactly where to make my change, which files to touch, and what could break.
Say "not shown" rather than guessing about files not included.
Before you answer, check your draft against every instruction above and fix anything that misses.
Replace each highlighted input with your details before you send it.
Why it works
  • Traces the real flow through named files.
  • Captures conventions before you write code.
  • Admits what it cannot see.