Contributing
Thank you for your interest in contributing to Minions!
Getting Started
Section titled “Getting Started”- Fork the repository on GitHub
- Clone your fork:
Terminal window git clone https://github.com/YOUR_USERNAME/minions.git - Install dependencies:
Terminal window pnpm install - Create a feature branch:
Terminal window git checkout -b feature/my-feature
Development Commands
Section titled “Development Commands”# Build all packagespnpm run build
# Run testspnpm run test
# Type check / lintpnpm run lint# Install the Python SDK in development modecd packages/pythonpip install -e ".[test]"
# Run Python testspytest -v
# Run a single test filepytest tests/test_validation.py -vProject Structure
Section titled “Project Structure”| Directory | Description |
|---|---|
packages/core/ | TypeScript SDK (minions-sdk on npm) |
packages/python/ | Python SDK (minions-sdk on PyPI) |
packages/cli/ | CLI tool |
apps/docs/ | Astro Starlight documentation site |
apps/web/ | Marketing / playground web app |
spec/ | Specification documents |
examples/ | Usage examples |
Pull Request Process
Section titled “Pull Request Process”- Ensure your code passes
pnpm run lintandpnpm run test - For Python changes, ensure
pytest -vpasses inpackages/python/ - Update documentation if your changes affect the public API
- Add tests for new functionality
- Keep PRs focused — one feature or fix per PR
Code Style
Section titled “Code Style”- TypeScript strict mode for all TS packages
- Python 3.11+ with type annotations for the Python SDK
- ESM modules (
"type": "module") - JSDoc/docstrings on all public exports
- No runtime dependencies in either SDK
Spec Changes
Section titled “Spec Changes”Changes to the specification (spec/) require discussion in a GitHub issue first. The spec is versioned — breaking changes go into a new spec version.
License
Section titled “License”By contributing, you agree that your contributions will be licensed under the MIT License.