Files
optimclaw/CONTRIBUTING.md
[email protected]andClaude Opus 4.6 1d4f6f0fdc fix: address PR review comments on CONTRIBUTING.md
Add missing security-critical directories (src/sandbox/, src/orchestrator/)
to Track C's list, and clarify that cargo deny check requires deny.toml.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-10 11:15:53 -07:00

2.1 KiB

Contributing

Getting Started

git clone https://github.com/nearai/ironclaw.git
cd ironclaw
./scripts/dev-setup.sh

This installs the Rust toolchain, WASM targets, git hooks, and runs initial checks.

Development Workflow

cargo fmt                                                    # format
cargo clippy --all --benches --tests --examples --all-features  # lint (zero warnings)
cargo test                                                   # unit tests
cargo test --features integration                            # + PostgreSQL tests

Code Style

  • Zero clippy warnings policy
  • No .unwrap() or .expect() in production code (tests are fine)
  • Use thiserror for error types, map errors with context
  • Prefer crate:: for cross-module imports
  • Comments for non-obvious logic only

See CLAUDE.md for full style guidelines.

Feature Parity Requirement

When your change affects a tracked capability, update FEATURE_PARITY.md in the same branch.

Required before opening a PR

  1. Review the relevant parity rows in FEATURE_PARITY.md.
  2. Update status/notes if behavior changed.
  3. Include the FEATURE_PARITY.md diff in your commit when applicable.

Review Tracks

All PRs follow a risk-based review process:

Track Scope Requirements
A Docs, tests, chore, dependency bumps 1 approval + CI green
B Features, refactors, new tools/channels 1 approval + CI green + test evidence
C Security (src/safety/, src/secrets/, src/sandbox/, src/orchestrator/), runtime (src/agent/, src/worker/), database schema, CI workflows 2 approvals + rollback plan documented

Select the appropriate track in the PR template based on what your changes touch.

Database Changes

IronClaw uses dual-backend persistence (PostgreSQL + libSQL). All new persistence features must support both backends. See src/db/CLAUDE.md.

Adding Dependencies

Run cargo deny check before adding new dependencies to verify license compatibility and check for known advisories (requires deny.toml; see the cargo-deny CI job).