Thank you for your interest in contributing to UEWM! This document provides guidelines and information for contributors.
- Code of Conduct
- Contributor License Agreement
- Getting Started
- Development Workflow
- Coding Standards
- Commit Convention
- Pull Request Process
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to uphold this code.
Before we can accept your contributions, you must sign our Contributor License Agreement. This is required because UEWM is dual-licensed (AGPL v3 + Commercial), and we need the legal right to include your contributions under both licenses.
Why is this needed? The CLA grants the UEWM project the right to distribute your contributions under the AGPL v3.0 open-source license AND under our commercial license. Without this, we cannot offer the commercial license that funds ongoing development.
The CLA bot will automatically prompt you when you open your first PR.
- Python 3.12+
- Go 1.22+ (for EIP Gateway)
- Docker & Docker Compose
- Kubernetes (minikube or kind for local dev)
- protoc (Protocol Buffers compiler)
- buf (Protobuf linting)
# Clone the repo
git clone https://github.com/YOUR_ORG/uewm.git
cd uewm
# Create virtual environment
python -m venv .venv
source .venv/bin/activate
# Install in development mode
pip install -e ".[dev]"
# Install pre-commit hooks
pre-commit install
# Verify setup
make testuewm/
├── src/ # Source code
│ ├── brain/ # Brain Core (Z-Buffer, JEPA, EBM, Orchestration)
│ ├── agents/ # Agent framework + 12 agent implementations
│ ├── evolution/ # Self-evolution engine (safety envelope, circuit breaker)
│ ├── perception/ # Encoders + alignment training
│ ├── eip/ # EIP protocol implementation
│ ├── knowledge/ # Knowledge transfer + federated learning
│ ├── security/ # RBAC, audit, cert management
│ ├── data/ # Data pipeline + quality validation
│ └── testing/ # Load test + chaos test frameworks
├── proto/ # Protobuf IDL definitions
├── docs/ # Design documents (en + zh)
├── helm/ # Kubernetes Helm charts
├── tests/ # Test suites
└── examples/ # Example configurations
main— stable, release-ready codedevelop— integration branch for next releasefeature/{name}— feature branches (fromdevelop)fix/{name}— bug fix branchesdocs/{name}— documentation updates
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature develop - Make your changes
- Write/update tests
- Run tests:
make test - Run linting:
make lint - Commit with conventional commits
- Push and open a PR against
develop
- Style: Black formatter (line length 100)
- Linting: Ruff
- Type hints: Required for all public APIs
- Docstrings: Google style
- Minimum test coverage: 80%
- Style:
gofmt+golangci-lint - Tests:
go test ./...
- Linting:
buf lint - Breaking change detection:
buf breaking - All enums must start with
XXX_UNKNOWN = 0
We use Conventional Commits:
<type>(<scope>): <description>
[optional body]
[optional footer]
Types: feat, fix, docs, style, refactor, test, ci, chore
Scopes: brain, agent, eip, evolution, security, data, deploy, docs
Examples:
feat(brain): implement Z-Buffer Manager read/write operations
fix(eip): correct PERMISSION_DENIED response code handling
docs(architecture): update EBM calibration plan section
test(agent): add DEGRADED state transition tests
- Ensure your PR description explains what and why
- Link related issues:
Closes #123 - All CI checks must pass (tests, lint, protobuf compilation)
- At least 1 maintainer approval required
- Squash merge into
develop
When you open a PR, you'll see a template. Please fill in all sections.
- EIP Protobuf IDL implementation + gRPC service
- Z-Buffer Manager (read/write/snapshot)
- JEPA Predictor basic implementation
- EBM Arbiter with energy function
- Agent framework + state machine
- Inner ring Agent implementations (AG-CD, AG-CT, AG-DO, AG-ST, AG-MA)
- ALFA framework (LOA calculation)
- TRL Evaluator
- Safety envelope implementation
- Circuit breaker state machine
- Error budget engine
- Helm chart development
- CI/CD pipeline (GitHub Actions)
- Documentation improvements
Look for issues labeled good-first-issue.
- Open a Discussion for general questions
- Open an Issue for bugs or feature requests
- Read the design docs for architecture understanding
Thank you for contributing to UEWM! 🚀