Thank you for your interest in contributing to Gemstack! This document provides guidelines and instructions for contributing.
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to uphold this code.
- Python 3.10 or later
- uv (recommended) or pip
# Clone the repository
git clone https://github.com/arvarik/gemstack.git
cd gemstack
# Create a virtual environment and install dependencies
uv sync --all-extras
# Run the test suite
uv run pytest
# Run linting and type checking
uv run ruff check src/ tests/
uv run mypy src/gemstackuv pip install -e ".[all]"
gemstack --versionfeat/<description>— New featuresfix/<description>— Bug fixesdocs/<description>— Documentation changesrefactor/<description>— Code refactoring (no behavior change)
Follow Conventional Commits. This is strictly enforced as Gemstack uses Google's Release Please automation to parse commit messages for version bumping and changelog generation.
feat: add MCP server stdio transport
fix: handle malformed package.json in detector
docs: add plugin development guide
test: add fixtures for Go project detection
- Formatter/Linter: Ruff — configured in
pyproject.toml - Type checker: mypy in strict mode
- Line length: 100 characters
- Docstrings: Google-style
- Run
uv run ruff check --fix src/ tests/to auto-fix lint issues
For Gemstack 2.0, all role and topology definitions MUST follow the XML-structured instruction format:
- Use
<thinking_process>for Chain of Thought instructions. - Use
<role_instructions>for core behavioral rules. - Use
<subagent_capabilities>to define which Antigravity subagents this role is authorized to invoke. - Wrap all guardrails in a
<guardrails>block.
- All new code must have corresponding tests
- Tests must pass on Python 3.11+ (CI runs on Ubuntu + macOS with 3.11 and 3.13)
- Maintain ≥80% coverage for
core/modules - Use
tmp_pathfor all filesystem operations — never write outside temp dirs
- Fork the repository and create your branch from
main - Add tests for any new functionality
- Ensure all checks pass:
uv run pytest && uv run ruff check && uv run mypy src/gemstack - Submit a pull request with a clear description
By contributing to this project, you certify that your contribution was created in whole or in part by you and you have the right to submit it under the Apache 2.0 license.
Sign your commits with git commit -s to add a DCO sign-off line.
See Building Custom Plugins for details on creating Gemstack plugins.
- Bugs: Use the Bug Report template
- Features: Use the Feature Request template
- Security: See SECURITY.md for vulnerability reporting