- Clone the repository
- Ensure .NET 8.0 SDK is installed
- Run
dotnet buildto verify the project compiles - Run
dotnet testto verify all tests pass
- Create a feature branch from
main - Implement your changes
- Add tests for new functionality
- Ensure all 178+ tests pass with
dotnet test - Submit a pull request
- Follow standard C# conventions (PascalCase for public members, camelCase for locals)
- Use file-scoped namespaces
- Enable nullable reference types
- Keep methods focused and testable
- Define the command in
AiCodeGraph.Cli/Program.cswith options and handler - Implement core logic in the appropriate
AiCodeGraph.Core/subdirectory - Add storage methods to
StorageServiceif persistence is needed - Update
SchemaDefinition.csif new tables are required - Write tests in
AiCodeGraph.Tests/
- Create a subdirectory under
AiCodeGraph.Core/ - Define models as records where possible
- Keep the module independent - accept data, return results
- Wire it into the analysis pipeline in
Program.cs(analyze command) - Add storage support and tests
dotnet test # All tests
dotnet test --filter "DuplicateDetection" # By class name
dotnet test --verbosity normal # Verbose outputIntegration tests require MSBuild to be available and will skip gracefully if not present.
See README.md for the full project structure.