# Developer Guide

This guide collects the information needed to contribute to, develop, test,
document, and benchmark cuML. Start with [Contributing](contributing/index.html.md), then use the
implementation-specific guidance below.

* [Contributing](contributing/index.html.md) covers how to propose changes, prepare pull
  requests, and work through review.
* [Code quality checks](code_quality/index.html.md) covers pre-commit setup, formatting,
  lint, and spelling checks.
* [Python development](python/development/index.html.md) covers style, testing,
  validation, memory management, and Python documentation.
  * [Python estimator development](python/estimators/index.html.md) describes the
    `cuml.Base` estimator contract and provides implementation patterns.
* [C++ and CUDA development](cpp/index.html.md) covers source layout,
  resources, testing, and Doxygen documentation.
  * [Internal C++ API reference](cpp/api/index.html.md) exposes primarily
    internal libcuml interfaces for developers. Prefer the supported
    [Python API](../api/index.html.md) for applications.
* [Benchmarking](benchmarking/index.html.md) explains the benchmark CLI and manifests.
* [Agent skill](agent_skill/index.html.md) explains how to update and evaluate the agent
  skill for cuML users in `skills/cuml`.
