Thank you for considering contributing to Mnemon!
- Bug fixes with a reproducing test or E2E scenario
- Performance improvements with benchmark evidence
- Documentation improvements (typos, clarity, missing examples)
- New integrations for LLM CLIs beyond Claude Code and OpenClaw
For significant features or architectural changes, please open an issue first to discuss the approach before writing code.
git clone https://github.com/mnemon-dev/mnemon.git
cd mnemon
make buildOptional: Install Ollama + nomic-embed-text for embedding-related development.
make test # Required deterministic CI suite for the Mnemon product
make test-integration # Opt-in CLI E2E, timing, race, process, and Docker suite
make test-live # Explicit paid Pi/DeepSeek evaluationmake test must pass before submitting a PR. Run make test-integration
proportionally when changing CLI E2E behavior or mnemon agency process, timing,
transport, or Docker boundaries; it is intentionally outside regular CI.
- Format with
gofmt(the standard Go formatter) - Follow Effective Go conventions
- All exported functions and types must have doc comments
- Use
fmt.Errorf("context: %w", err)for error wrapping
For architecture, concurrency, persistence, abstraction, and test design, follow the Go Engineering Standard. Design patterns and Go language features are tools for reducing change amplification, not quotas or substitutes for explicit safety checks.
We follow a lightweight Conventional Commits style:
feat: add intent override flag to recall command
fix: handle short IDs in link command
docs: document the missing usage flag
Use the type that reflects the primary project effect and write the summary in
imperative form. The CHANGELOG filter excludes docs:, test:, ci:, and
chore: commits from release notes.
- Fork the repository and create a feature branch from
master. - Make your changes and run the proportional test level, including
make test-integrationfor affectedmnemon agencyboundary behavior. - Update documentation (USAGE.md, DESIGN.md, or README) if your change affects user-facing behavior.
- For user-facing changes, describe the release-note impact in the PR body. Maintainers update
CHANGELOG.mdduring release preparation unless they explicitly ask for a changelog entry in the PR. - Open a pull request against
master.
Releases are fully automated. Maintainers tag and push:
git tag v0.2.0
git push origin v0.2.0This triggers GitHub Actions → runs tests → builds platform artifacts for the
single mnemon executable via GoReleaser → publishes a GitHub Release →
updates the Homebrew tap → verifies and publishes the npm platform artifacts →
publishes @mnemon-dev/mnemon last.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.