Thank you for your interest in contributing to CodeGenesis! This document provides guidelines and instructions for contributing.
- Fork the repository
- Clone your fork:
git clone https://github.com/<your-username>/code-genesis.git cd code-genesis
- Create a feature branch:
git checkout -b feature/my-feature
- Install prerequisites:
dotnet builddotnet run --project CodeGenesis.Engine -- run-pipeline examples/hello-world.ymldotnet test- Follow the existing code conventions in the project
- Use
nullablereference types (<Nullable>enable</Nullable>) - Prefer records and primary constructors where appropriate
- Use meaningful names; avoid abbreviations
Write clear, concise commit messages:
- Use the imperative mood ("Add feature" not "Added feature")
- Keep the first line under 72 characters
- Reference issues when applicable (e.g.,
Fix #42: handle null pipeline config)
- Create a class implementing
IPipelineStepinCodeGenesis.Engine/Steps/ - Register it in the appropriate command (
RunCommandor via YAML config) - Add tests for the new step
- Create a
CommandSettingsclass inCodeGenesis.Engine/Cli/ - Create the command class inheriting
AsyncCommand<TSettings> - Register the command in
Program.cs
- Update documentation if your change affects user-facing behavior
- Ensure the project builds without warnings
- Keep PRs focused — one feature or fix per PR
- Fill in the PR template with a clear description and test plan
- Use GitHub Issues to report bugs or request features
- Include steps to reproduce for bugs
- Include the output of
dotnet --versionandclaude --version
This project follows our Code of Conduct. By participating, you agree to uphold it.
By contributing, you agree that your contributions will be licensed under the MIT License.