Skip to content

Latest commit

 

History

History
40 lines (30 loc) · 2.38 KB

CONTRIBUTING.md

File metadata and controls

40 lines (30 loc) · 2.38 KB

Contributing to codeaf

Start from dev and open a pull request back to dev. Read AGENTS.md for repository-wide engineering rules; it shares its contents with CLAUDE.md.

Choose a starting point

Work Read first
Implement or fix a feature Developer architecture, recent change entries, and the relevant source tests
Explain product behavior Manual authoring
Improve developer documentation Documentation ownership and documentation map
Report a defect Defect template with a reproducible example

Prepare a contribution

  1. Create a contribution branch from current dev; follow the branch rules.
  2. Use the Go version declared in go.mod. Run make build for bin/codeaf; build preparation is described in the Makefile.
  3. Make a focused change with observable acceptance. Follow the testing, naming, manual and design rules in AGENTS.md.
  4. Update the matching documentation and add a change entry.
  5. Run the required local checks, review your diff, and open the PR against dev with validation and honest limitations.

Validate the affected behavior

Use make test-focus PKGS=./internal/pkg RUN='^TestRegression$$' while editing, substituting the package and test you changed. Run make test-quick, then make pr-ready before opening the PR. The latter selects touched packages from the committed diff; commit Go/module edits before relying on that selection. Manual changes also need the manual checks.

A skipped live-provider or Docker test does not prove that path works. State what ran, what skipped and what remains unverified. See CI guidance for the exact gate and failure diagnosis; this guide does not define another one.

Review and release

Stage explicit paths and keep unrelated work out of the PR. Never push feature work directly to dev, staging or main. Reviewers need the concrete problem, resulting behavior and validation. Maintainers follow the promotion rules for staging and release; opening a contribution does not authorize a merge.