Files
mempalace/website/reference/contributing.md
T
mvalentsev c4baceccb4 docs: fix stale milla-jovovich org URLs in website and plugin manifests (#787)
Follow-up to #766 which covers version.py, pyproject.toml, README,
CHANGELOG, and CONTRIBUTING. These 11 files still had the old org
name in URLs:

- website/ (VitePress config + 6 docs pages)
- .claude-plugin/ (plugin.json repository, README marketplace command)
- .codex-plugin/ (plugin.json URLs, README links)

Author name fields are intentionally unchanged.
2026-04-14 02:44:41 +05:00

2.9 KiB

Contributing

PRs welcome. MemPalace is open source and we welcome contributions of all sizes — from typo fixes to new features.

Getting Started

git clone https://github.com/MemPalace/mempalace.git
cd mempalace
pip install -e ".[dev]"

Running Tests

pytest tests/ -v

All tests must pass before submitting a PR. Tests should run without API keys or network access.

Running Benchmarks

# Quick test (20 questions, ~30 seconds)
python benchmarks/longmemeval_bench.py /path/to/longmemeval_s_cleaned.json --limit 20

# Full benchmark (500 questions, ~5 minutes)
python benchmarks/longmemeval_bench.py /path/to/longmemeval_s_cleaned.json

See Benchmarks for data download instructions.

PR Guidelines

  1. Fork the repo and create a feature branch: git checkout -b feat/my-thing
  2. Write your code
  3. Add or update tests if applicable
  4. Run pytest tests/ -v — everything must pass
  5. Commit with clear conventional commits:
    • feat: add Notion export format
    • fix: handle empty transcript files
    • docs: update MCP tool descriptions
    • bench: add LoCoMo turn-level metrics
  6. Push to your fork and open a PR against main

Code Style

  • Formatting: Ruff with 100-char line limit
  • Naming: snake_case for functions/variables, PascalCase for classes
  • Docstrings: on all modules and public functions
  • Type hints: where they improve readability
  • Dependencies: minimize — ChromaDB + PyYAML only. Don't add new deps without discussion.

Good First Issues

Check the Issues tab:

  • New chat formats — add import support for Cursor, Copilot, or other AI tool exports
  • Room detection — improve pattern matching in room_detector_local.py
  • Tests — increase coverage, especially for knowledge_graph.py and palace_graph.py
  • Entity detection — better name disambiguation in entity_detector.py
  • Docs — improve examples, add tutorials

Architecture Decisions

If you're planning a significant change, open an issue first. Key principles:

  • Verbatim first — never summarize user content. Store exact words.
  • Local first — everything runs on the user's machine. No cloud dependencies.
  • Zero API by default — core features must work without any API key.
  • Palace structure matters — wings, halls, and rooms aren't cosmetic — they drive a 34% retrieval improvement.

Community

License

MIT — your contributions will be released under the same license.