Thanks for taking the time to contribute.
- Fork the repository
- Create a feature branch from
main - Make changes with tests
- Open a pull request
Requirements:
- macOS
- Python 3.8+
bashshellcheck
Install Python dependencies:
pip3 install -r requirements.txtStatic analysis:
shellcheck -S error $(find . -name '*.sh')Syntax check:
find . -name '*.sh' -exec bash -n {} \;Core unit tests:
python3 -m unittest tests/test_core_behaviors.py -vIntegration-style checks (some tests are privileged or mutating):
python3 tests/test_framework.py --verbose
python3 tests/test_framework.py --verbose --include-privileged
python3 tests/test_framework.py --verbose --include-mutating- Prefer small, focused PRs.
- Keep scripts idempotent: re-running a hardening script should result in a clean no-op.
- Avoid breaking non-interactive flows: scripts must fail gracefully when required tools are missing.
- Security: do not introduce network calls without an opt-out/offline mode.
- Logging: keep log output stable; prefer machine-readable formats when adding new outputs.
Please see SECURITY.md.