Contributing¶
litmus-lite is small on purpose. A change that makes it more correct, easier to understand or safer is worth more than one that makes it bigger. Thank you for helping.
Start here¶
- CONTRIBUTING.md: how to build and test, the conventions, signing your commits (DCO) and opening a pull request.
- AGENTS.md: the design rules, written for AI coding agents and binding for everyone.
- Architecture: the parts, one run end to end, and the trust boundaries.
- Internals: how the engine, faults, probes and reports work, and how to add a fault kind.
Build and test¶
git clone https://github.com/litmuschaos/litmus-lite && cd litmus-lite
go build -o litmus-lite ./cmd/litmus-lite
go vet ./...
gofmt -l . # prints nothing when the code is formatted
go test -race ./...
Go 1.22 or newer.
The design rules, in short¶
- Every test is a real file, never chat state.
- The CLI always works alone. A feature that only works through an agent is a bug.
- MCP tools mirror CLI commands. No richer, agent-only path.
A proposal that breaks one of these needs a conversation in an issue first.
Working on these docs¶
The site is built with MkDocs and Material for MkDocs from the docs/ folder and mkdocs.yml:
python3 -m venv .venv && . .venv/bin/activate
pip install -r docs/requirements.txt
mkdocs serve # http://127.0.0.1:8000, reloads as you edit
mkdocs build --strict # what CI runs: fails on a broken link
Every page that shows a task shows it both ways, with content tabs named In Cursor and In a terminal: the tabs are linked, so a reader's choice follows them across the site. Include a whole example from examples/ with a snippet (--8<-- "examples/cashier/charge.chaos.yaml") rather than copying it, so it cannot drift; a test checks that every examples/ path the docs mention exists.
Community¶
- Code of Conduct
- Governance and maintainers
- Security problems: do not open an issue; see SECURITY.md.