============ Contributing ============ SCPN-Fusion-Core is developed under the GNU Affero General Public License v3.0. Contributions are welcome and should follow the guidelines below. Getting Started ----------------- 1. Fork the repository on GitHub. 2. Clone your fork:: git clone https://github.com//scpn-fusion-core.git cd scpn-fusion-core 3. Install in development mode:: pip install -e ".[dev]" 4. Create a feature branch:: git checkout -b feature/my-new-feature Development Workflow --------------------- **Python code:** - Follow PEP 8 style (enforced by CI linter) - Add type annotations for all public functions - Write Google-style or NumPy-style docstrings - Add unit tests for new functionality - Run the test suite before submitting:: pytest tests/ -v **Rust code:** - Follow ``rustfmt`` conventions (enforced by ``cargo fmt --check``) - Address all ``clippy`` warnings - Use ``FusionResult`` for fallible operations (no ``unwrap()`` in production paths) - Add property-based tests with ``proptest`` where appropriate - Run the Rust test suite:: cd scpn-fusion-rs cargo test --all-features **Documentation:** - Update docstrings when modifying public APIs - Add user guide sections for new subsystems - Build and review documentation locally:: cd docs/sphinx make html # Open _build/html/index.html Pull Request Guidelines ------------------------- - Keep PRs focused: one feature or fix per PR - Include tests that demonstrate the change - Update CHANGELOG.md with a summary of the change - Ensure CI passes (lint, test, fmt checks) - Reference related issues in the PR description Code Health Standards ----------------------- The codebase has undergone 248 hardening tasks across 8 waves. New code should maintain these standards: - No silent clamping or coercion -- raise explicit errors - No ``unwrap()`` in Rust production paths -- use ``?`` operator with ``FusionResult`` - Scoped RNG isolation for deterministic replay - Input validation guards on all public API boundaries - Property-based tests for numerical invariants Contact --------- For questions about contributing, contact: protoscience@anulum.li For commercial licensing inquiries: www.anulum.li