-
Notifications
You must be signed in to change notification settings - Fork 1
Contributing
Jason L. West edited this page Feb 3, 2026
·
1 revision
- Clone the repository and set up your environment (see Installation)
- Install development dependencies:
pip install -r requirements-dev.txt - Install pre-commit hooks:
pre-commit install
Never commit directly to develop. Always use feature branches.
git checkout develop
git checkout -b <prefix>/<name>Branch prefixes:
-
feat/- New features -
fix/- Bug fixes -
chore/- Maintenance tasks -
docs/- Documentation changes
- Write your code following the project standards (see below)
- Write tests for new functionality
- Run the test suite:
python3 -m pytest tests/ -v - Commit with Conventional Commits format
<type>(<scope>): <description>
[optional body]
Examples:
feat(minion): add clarifying questions via Slack
fix(overlord): handle missing Docker socket gracefully
chore(deps): update openai SDK to 1.5.0
docs(wiki): add deployment guide
git checkout develop
git merge <branch> --no-ff -m "Merge branch '<branch>' into develop"
git branch -d <branch>
git push nebulus-atom develop-
MVC pattern: Models in
models/, Views inviews/, Controllers incontrollers/ - SOLID principles: Single responsibility, dependency injection, composition over inheritance
- Type hints mandatory: All functions and methods must have type annotations
-
Async for I/O: Use
async/awaitfor I/O operations
-
Linter:
ruff(enforced via pre-commit) -
Formatter:
ruff-format(enforced via pre-commit) -
Data models: Use
@dataclassor Pydantic, avoid raw dicts at boundaries -
Private members:
_variableprefix,@propertyfor access -
Interfaces: Use
abc.ABCandabc.abstractmethod
-
Framework:
pytestwithpytest-asyncio -
Location:
tests/test_<module>.py - Mock external deps: Don't make real API calls in tests
-
Use
tmp_path: For tests that need file system access -
Run before committing:
python3 -m pytest tests/ -v
- Don't add features beyond what was requested
- Don't add error handling for impossible scenarios
- Don't create abstractions for one-time operations
- Don't commit
.envfiles or secrets - Don't skip pre-commit hooks (
--no-verify) - Don't force push to
develop
nebulus_atom/ # Core CLI agent
nebulus_swarm/ # Multi-agent swarm system
tests/ # All tests
docs/ # Design documents and feature specs
wiki/ # GitHub Wiki (separate git repo)
- Architecture - System design
- Testing - How to run and write tests
- Configuration - Environment variables