Contribute参与贡献
Pull requests welcome. The authoritative documents are CONTRIBUTING.md and CODE_OF_CONDUCT.md. What follows is a short orientation.
How PRs land
Two paths. A well-scoped PR that passes CI and doesn’t touch trust-boundary surface (auth, sandbox, publishing, branding, prompts) gets merged directly. Larger or mixed-scope PRs may be harvested — the maintainer copies the useful commits into a new commit on main with Harvested from PR #N by @you in the message and Co-authored-by trailers. Harvest isn’t rejection; it’s how your code ships when a round-trip would be slower than the maintainer finishing it. The next CHANGELOG.md entry credits the original handle.
Land directly, not via harvest
- 01One purpose per PR — bug fix or feature, not both.
- 02Rebase onto current main before opening the PR and after CI feedback. Conflicts force the harvest path.
- 03Include tests with new behavior. Missing tests are the most common reason for harvest.
- 04Stay off the trust-boundary surface without prior sign-off: auth/credentials, sandbox policy, publishing/release plumbing, provider policy, telemetry, sponsorship, branding, the
prompts/tree.
Local checks (matches CI)
Stable Rust 1.88+ (edition 2024). Run all three before pushing — CI runs the same commands and fails on any of them.
cargo fmt --all -- --check cargo clippy --workspace --all-targets --all-features --locked -- -D warnings cargo test --workspace --all-features --locked
Quickstart
Copy-paste sequence from clone to PR.
# Fork on GitHub, then: git clone git@github.com:YOU/CodeWhale cd CodeWhale git checkout -b feat/short-subject cargo build cargo run --bin codewhale # Match CI before pushing: cargo fmt --all -- --check cargo clippy --workspace --all-targets --all-features --locked -- -D warnings cargo test --workspace --all-features --locked git commit -m "feat: short subject in conventional-commit form" git push -u origin feat/short-subject gh pr create --fill
Agent-assisted improvements
CodeWhale is allowed to help improve CodeWhale. The recommended workflow is the recursive self-improvement prompt: let the agent find one small friction point, ship one patch, stop. Don’t use an agent for trust-boundary work without prior maintainer sign-off.