> For the complete documentation index, see [llms.txt](https://fethis-organization.gitbook.io/ren.kit-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fethis-organization.gitbook.io/ren.kit-documentation/contribution.md).

# Contribution

Contributions, bug reports, and documentation improvements are welcome.

## Development workflow

1. Fork and clone the repository.
2. Create a focused branch.
3. Preserve the existing public API unless the change is explicitly planned for a major release.
4. Add or update tests and examples for behavioral changes.
5. Build every target framework and pack both NuGet projects.
6. Open a pull request describing compatibility and behavior impact.

```shell
dotnet restore Ren.Kit.sln
dotnet build Ren.Kit.sln -c Release
dotnet pack src/Ren.Kit.CacheKit/Ren.Kit.CacheKit.csproj -c Release
dotnet pack src/Ren.Kit.DataKit/Ren.Kit.DataKit.csproj -c Release
```

## Compatibility rules

REN.Kit is consumed as a NuGet library. Treat these as contracts:

* Public types, members, generic constraints, and default parameter values
* Dependency injection registrations and lifetimes
* Cache payload formats and expiration behavior
* Exception behavior relied on by existing consumers

Prefer additive APIs and opt-in behavior. Adding members to an existing interface can break third-party implementations even when existing callers still compile.

## Documentation

Update the corresponding Markdown page and its runnable ExampleAPI request collection whenever an API or behavior changes. Never place live credentials in documentation or sample configuration.
