This document describes the expected workflow for contributing to Niyam.
Start with:
Install dependencies and run the project locally before making changes.
- keep changes scoped
- prefer small, reviewable commits
- do not mix runtime logic changes with unrelated formatting or cleanup
- update docs when behavior changes
- add or update tests for every meaningful behavior change
Before opening a PR or merging locally, run:
npm test
npm run smoke
npm run smoke:wrapperIf your change touches:
- command execution
- approval flow
- policy simulation
- rule packs
- redaction
then all three checks should pass.
- keep runtime behavior explicit rather than clever
- prefer argv-safe execution patterns
- avoid introducing raw secret logging
- keep approval and execution policy separate
- preserve the self-hosted single-instance model unless a change is explicitly intended to alter it
Put long-form project docs under docs/.
When adding a new doc:
- link it from the README if it is user-facing
- update nearby docs if behavior changed
- prefer operationally useful examples over abstract descriptions