AI Code Exploration Exercise
A small C# application for practicing code exploration with a coding agent: use it to produce diagrams that reveal the structure and behavior of an unfamiliar codebase.
What this is
src/Before/ contains a small domain model (Client, Order) with an in-memory DbContext and a WebApp consumer. src/Before.Console/ is a demo console app that seeds data and queries it. tests/Before.Tests/ covers the behavior.
You do not need to read or understand the code before starting. The point is to use a coding agent to produce the diagrams.
Prerequisites
- A coding agent with access to this repo (Claude Code, Cursor, Copilot, etc.)
- .NET SDK 10.0
mmdcCLI for Mermaid rendering, or IDE Mermaid preview
Setup
- Clone this repo
- Open
ai-code-exploration.slnin your IDE - Build to verify everything compiles:
dotnet build - On windows: npm install @mermaid-js/mermaid-cli (global install failed)
- Verify mermaid runs
./node-modules/.bin/mmdc
Tasks
Start broad, then iterate with follow-up prompts to refine.
Task 1: Class diagram
Create a class diagram of the classes in src/Before/ using Mermaid. Iterate until it captures the structure accurately.
What to check: Are the inheritance relationships correct? Are the associations (Client → Orders, Order → Client) visible? Is the dependency between the domain classes and DbContext shown — and in which direction does it point?
Task 2: Sequence diagram — happy path
Create a sequence diagram for the flow when Client.FindByName("Jane Doe") is called.
Task 3: Sequence diagram — exception path
Create a sequence diagram for Client.FindByNameRequired("Nobody") — when the client is not found. What interactions differ from the happy path? Where is ObjectNotFoundException thrown?
Task 4 (stretch): Full initialization flow
From Program.cs (the console entry point), trace how the DbContext is created and made available to entities, and what interactions happen on Client and Order. Include the exception flow from Task 3. This will be a larger diagram — iterate and simplify as needed.
Tips
- Start broad, then refine: "Draw me a class diagram of src/Before/" is enough to start.
- Iterate on the prompt: If the first diagram is missing something, ask the agent to add it. You don't need to write Mermaid syntax.
- Validate: Use
mmdcto check syntax, visually check the diagram against the code. - Direct the agent; don't write diagrams by hand.