Orient in the codebase
Goal: a fast, verified mental map of where the budget tracker computes “spent,” and everything that feeds that number.
You didn’t write this app, and you have minutes, not hours. This is the everyday reality the agent is genuinely great at, if you check its answers instead of trusting them.
Map it with the agent
Section titled “Map it with the agent”Capture it: equip the agent to carry the map forward
Section titled “Capture it: equip the agent to carry the map forward”You held the map in your head to learn it. But the agent shouldn’t re-derive it every session, and right now it’s reading this C# codebase as plain text — grepping for names instead of resolving them. A few one-time moves fix that: initialize the project, give the agent a real C# language server, have it write the project docs, then wire up the skill the next lesson needs.
-
Install the C# language server.
csharp-lsships as a .NET global tool, so the SDK you already have installs it:Terminal window dotnet tool install -g csharp-ls -
Initialize the project for the agent.
/code initThis bootstraps the agent’s project configuration. Run it before the next step, which edits that configuration.
-
Register the language server. Open
.kiro/settings/lsp.jsonand add acsharpentry under"languages", alongside the ones already there (entries are comma-separated, so mind the comma):"csharp": {"name": "csharp-language-server","command": "csharp-ls","args": [],"file_extensions": ["cs"],"project_patterns": ["*.csproj", "*.sln"],"exclude_patterns": ["**/bin/**", "**/obj/**"],"multi_workspace": true,"initialization_options": {}}Now when the agent looks up where
spentis computed, it can resolve the symbol — jump to the definition, list every caller — instead of guessing from text matches.project_patternspoint it at the.csproj/.sln;exclude_patternskeep build output (bin/,obj/) out of the index. -
Generate the project docs.
/code summaryThis scans the repo and writes project documentation: a
CONTEXT.mddescribing the domain and structure, plus decision records underdocs/adr/. With the language server live, what it writes is grounded in resolved symbols, not string matches. Skim what it produced and correct anything wrong — it’s a draft, not gospel. -
Set up the Matt Pocock skills.
/setup-matt-pocock-skillsYou installed
grill-me-with-docsback in Act 1 · Skills; this runs the per-project setup it needs so it can read the docs you just generated. The next lesson points/grill-me-with-docsstraight at them.