codebase_summarizer is a command-line tool written in Rust that recursively traverses a given directory or the current working directory if none is given. It identifies code files and extracts a concise one-file summary of the codebase enriched with DOC-strings/comments. The outputs of this tool are: * codebase_summary.md, a markdown file like this example ``` # Codebase Architecture Map ## File: pkg/auth/service.go ### func (s *AuthService) Login(user, pass string) (*Token, error) **Doc:** // Login validates the user credentials against the database. // Returns a JWT token if successful or an error if unauthorized. ## File: cmd/api/main.go ### type Config struct **Doc:** // Config holds the application environment settings. ``` * agents.md, a read me type file for agents if no such file exists yet. This file instructs the coding agents how to use the codebase_summary ``` # Codebase Navigation Protocol You have access to codebase_summary.md. This file contains a compressed map of the codebase, including exported signatures and their associated documentation comments. Protocol: Consult Summary First: Use the doc-strings in codebase_summary.md to understand the intent and usage of functions without reading the full implementation. Identify Targets: Identify the specific files containing the logic you need. Deep Dive: Open the identified files to study the internal logic/edge cases before proposing a solution. After making changes: run the codebase_summarizer tool to update the codebase_summary.md again if necessary ```