Thank you for your interest in contributing. This document covers the basics for pull requests against botirk38/sift.
Use short, descriptive kebab-case with a type prefix:
| Prefix | Use for |
|---|---|
feat/ |
New behavior, flags, or API |
fix/ |
Bug fixes, regressions |
docs/ |
Documentation only |
chore/ |
Tooling, CI, refactors with no user-visible change |
Run all three checks locally. CI enforces the same on Linux, macOS, and Windows:
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features- Fix lints at the root cause.
#[allow]is not permitted. - Keep changes focused; follow existing patterns in the crate you touch.
- Do not commit
target/,.cursor/, or local.sift/directories. - Prefer domain types and small composable interfaces over parallel
*_with_*helper variants.
For architecture and module layout guidance, see AGENTS.md. CLI-specific notes live in crates/cli/AGENTS.md.
- Open a PR against
masterfrom your prefixed branch. - Describe the user-visible change and link related issues if any.
- Add or update tests when behavior changes.
- Ensure CI passes before requesting review.
Do not open public issues for security vulnerabilities. See SECURITY.md for reporting instructions.