Thank you for your interest in contributing to OMEN (Open Mission Engine). This guide covers contribution processes, standards, and requirements.
- Bug reports — File issues for defects in non-sensitive components
- Documentation improvements — Corrections, clarifications, translations
- Plugin submissions — New mission application plugins following the SDK
- Adapter submissions — New CAL data adapters for additional protocols
- Evaluation scenarios — New deterministic test scenarios
- UX feedback — Accessibility and usability reports
All contributors must sign the DaScient CLA before any pull request is merged. Government employees contributing in their official capacity should indicate this in the PR.
- All PRs require at least one approved review
- Security-sensitive changes require a security-focused reviewer
- AI/agentic changes require review against the AI Governance policy
- Plugin and adapter submissions must pass the SDK test harnesses
All PRs must pass:
- Unit and integration tests
- Linting (
rufffor Python,eslintfor TypeScript/JavaScript) - Type checking (
mypyfor Python,tscfor TypeScript) - Security scan (
banditfor Python,semgreprules) - Dependency audit (
pip-audit,npm audit) - SBOM generation (no new high/critical vulnerabilities)
Do not file public GitHub issues for security vulnerabilities.
To report a security issue:
- Email
security@dascient.comwith a description of the vulnerability - Include steps to reproduce, affected versions, and potential impact
- Allow 90 days for a fix before public disclosure
- You will receive acknowledgment within 48 hours
| Language | Formatter | Linter | Type Checker |
|---|---|---|---|
| Python | ruff format |
ruff check |
mypy --strict |
| TypeScript | prettier |
eslint |
tsc --noEmit |
| Go | gofmt |
golangci-lint |
Built-in |
| Rust | rustfmt |
clippy |
Built-in |
# Python services
python -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt
# TypeScript / map-app
cd map-app
npm install
# Run pre-commit checks
pre-commit install
pre-commit run --all-files