# Contributing Guide

Thanks for your interest in contributing to UCAgent! This document explains how to get started, what we expect from contributors, and how to submit changes successfully.

## Before You Begin
- Review the repository documentation in `README.en.md` or `README.zh.md` to understand the project goals and setup process.
- Read the [Code of Conduct](CODE_OF_CONDUCT.md); by participating you agree to follow it.
- Ensure you can build and test the project locally before making changes.

## Ways to Contribute
- Report bugs or request features via GitHub issues. Provide clear reproduction steps and context.
- Improve documentation or examples. Even small fixes help others use the project.
- Submit pull requests (PRs) for code improvements, new features, or tooling updates.

## Workflow for Changes
- Fork the repository and create a feature branch from `main` (for example, `feature/my-update`).
- Keep each PR focused on a single topic. Separate unrelated changes into different branches.
- Write clear commit messages that explain the intent of each change.
- Update or add tests to cover your change, and ensure the test suite passes locally.
- Update relevant documentation (README, guides, examples) when behavior or usage changes.

## Coding Standards
- Follow existing code style and project conventions (naming, structure, comments).
- Prefer readable, maintainable solutions; add brief comments only when logic is not obvious.
- Keep dependencies minimal and document any new requirements in `requirements.txt`, `pyproject.toml`, or related files.

## Pull Requests
- Fill out the PR template completely so reviewers understand the change, scope, and testing.
- Reference related issues (e.g., `Fixes #123`) when applicable.
- Be responsive to reviewer feedback and iterate on your PR until it is ready to merge.
- By submitting a PR, you confirm that you have the right to contribute the work and that it will be released under this repository's open-source license (see `LICENSE`).

## Communication and Support
- Use GitHub Discussions or issues for questions that others may share.
- Be respectful, constructive, and patient in all interactions, consistent with our Code of Conduct.

## Contributor License Agreement (CLA)

By submitting a contribution to UCAgent, you agree that your contribution
is made under the terms of the applicable Contributor License Agreement.

- Individual contributors must agree to the Individual Contributor License Agreement ([ICLA](https://github.com/XS-MLVP/UCAgent/blob/main/CLA.md)).
- Contributions made on behalf of an organization may be covered by a Corporate Contributor License Agreement ([CCLA](https://github.com/XS-MLVP/UCAgent/blob/main/CCLA.md)).

Individuals may contribute under either the ICLA or an applicable CCLA.


We appreciate your help in improving UCAgent. Happy contributing!
