Thank you for your interest in contributing to AgenticComm! This document provides guidelines for contributing to the project.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/agentic-comm.git - Create a feature branch:
git checkout -b my-feature - Make your changes
- Run the tests (see below)
- Commit and push
- Open a pull request
This is a Cargo workspace monorepo. All Rust crates are under crates/.
# Build everything (core + CLI + MCP + FFI)
cargo build
# Run all tests
cargo test --workspace
# Core library only
cargo test -p agentic-comm
cargo bench -p agentic-comm
# CLI tool only
cargo test -p agentic-comm-cli
# MCP server only
cargo test -p agentic-comm-mcp
# FFI bindings only
cargo test -p agentic-comm-ffi
# Run the CLI
cargo run -p agentic-comm-cli -- channel list
# Run the MCP server
cargo run -p agentic-comm-mcpcd python/
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest tests/ -vFile an issue with:
- Steps to reproduce
- Expected behavior
- Actual behavior
- System info (OS, Python version, Rust version)
- Add tool definition in
crates/agentic-comm-mcp/src/tools.rs - Add dispatch case in
dispatch() - Implement handler function
- Add tests
- Update README
- Add a new example in
examples/ - Ensure it runs without errors
- Add a docstring explaining what it demonstrates
All docs are in docs/. Fix typos, add examples, clarify explanations.
- Rust: Follow standard Rust conventions. Run
cargo clippyandcargo fmt. All code must be clippy-clean with-D warnings. - Python: Follow PEP 8. Use type hints. Run
mypyfor type checking. - Tests: Every feature needs tests. We maintain comprehensive tests across the stack.
- Documentation: Update docs when changing public APIs.
All MCP tools must comply with the Agentra MCP Quality Standard:
- Tool descriptions: verb-first imperative, no trailing periods
- Error handling: tool execution errors use
isError: true; protocol errors use JSON-RPC error codes - Unknown tool: error code
-32803(TOOL_NOT_FOUND) - Input validation: no silent fallback for invalid parameters
Use conventional commit prefixes:
feat:new feature or capabilityfix:bug fixchore:maintenance, dependencies, configdocs:documentation changestest:test additions or fixesrefactor:code restructuring without behavior change
- Keep PRs focused
- Include tests for new functionality
- Update documentation if needed
- Ensure all tests pass before submitting
- Ensure
cargo clippyandcargo fmtpass - Write a clear PR description
By contributing, you agree that your contributions will be licensed under the MIT License.