# Contributing

## Contributions

Contributions in the form of bug reports, feature requests, and pull requests are welcome. For pull requests, please ensure that:

* Commit messages are clear and descriptive, and the history remains clean and reviewable.
* Code is formatted using the project’s standard tooling (e.g. `cargo fmt` where applicable).
* Changes are accompanied by appropriate documentation and tests.

Submissions that do not meet these expectations may be requested to revise before review or merge.

## Use of AI-Assisted Tools

> TLDR: These are **tools**, and **tools** cannot be held responsible. The person using the tool however, **is**.

Since late 2022 there has been rapid growth in AI-assisted **tooling** for writing and interacting with code. Large Language Models can support activities such as code exploration, debugging, architectural discussion, test generation, and refactoring. Some **tools** also provide agentic workflows that execute actions and iterate autonomously.

The availability of these **tools** does not change the responsibilities of software development. **They do not excuse poor judgement, weak design, or reduced quality standards.** Contributors remain fully accountable for the correctness, clarity, safety, and maintainability of any code they submit, regardless of whether an automated system assisted in its creation. Review standards apply equally to all contributions.

In practice, these systems are best treated as productivity **tools** for well-scoped tasks rather than substitutes for architectural reasoning, design ownership, or engineering judgement. **Contributors are expected to understand, review, and stand behind any code they propose.**

More broadly, the presence of automated **tooling** increases the importance of strong project foundations. Clear documentation, tests, and examples provide a shared ground truth for both humans and tools, reduce ambiguity, and prevent the gradual erosion of design intent. High-quality project scaffolding is therefore not optional.

**Use these tools as you see fit, but responsibility always rests with the contributor.**

> Note on terminology: the term “AI” is used here as a conventional label rather than a precise technical description. Anthropomorphic language can obscure the computational nature of these systems and blur questions of responsibility, intent, and reliability. Precision in terminology supports clearer reasoning and accountability.

## Code of Conduct

* Be sound.
