Thank you for your interest in contributing to MemMark! This document provides guidelines and instructions for contributing.
-
Clone the repository:
git clone https://github.com/Carlos-Projects/memmark.git cd memmark -
Create a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies:
pip install -e ".[dev]"
- Follow PEP 8 conventions
- Use type hints on all functions and methods
- Maximum line length: 88 characters
- Use
rufffor linting:ruff check src/ tests/
- Write tests for all new functionality
- Minimum coverage: 80%
- Run tests with:
python -m pytest tests/ -v
- Create a feature branch from
main - Make your changes with appropriate tests
- Ensure all tests pass and coverage meets the threshold
- Run
ruff checkand fix any issues - Submit a pull request with a clear description of changes
Follow conventional commits:
feat:New featurefix:Bug fixdocs:Documentation changestest:Test additions or modificationsrefactor:Code refactoringchore:Maintenance tasks
MemMark follows a modular architecture:
src/memmark/
├── scanner.py # Core scanning engine
├── cli.py # Typer CLI interface
├── watermark/ # Memory watermarking
├── poisoning/ # Poisoning detection
├── provenance/ # Provenance tracking
├── integrity/ # Integrity verification
├── reporters/ # Output formatters
└── utils/ # Shared utilities
- Uses
mcp-taxonomyfor standardized finding classification - Generates policies compatible with
MCPGuard - Reports consumable by
MCPscop - Complements
reverse-abliterate(model integrity vs memory integrity)
Open an issue on GitHub or reach out via the project discussions.