Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Contributing‐Guide

Clo edited this page Mar 29, 2026 · 1 revision

Contributing Guide

Development Setup

1. Clone and install

git clone https://github.com/omnuron/omniclaw.git
cd omniclaw
uv sync --extra dev

2. Install pre-commit hooks

pip install pre-commit
pre-commit install

This installs ruff lint and format checks that run automatically before each commit.

3. Verify setup

omniclaw doctor

Branch and PR Workflow

We use a branch protection model. All changes must go through Pull Requests — direct pushes to main are not allowed.

Creating a PR

  1. Create a feature branch from main:

    git checkout main
    git pull origin main
    git checkout -b feature/your-feature-name
  2. Make your changes and commit:

    git add .
    git commit -m "feat: describe your change"
  3. Push and create a PR:

    git push -u origin feature/your-feature-name

    Then open a Pull Request on GitHub.

PR Requirements

Before a PR can be merged, it must:

  • Pass Lint check (ruff lint + format)
  • Pass Test suite (pytest)
  • Receive at least 1 approving review

Commit Message Convention

We follow conventional commits:

Prefix Usage
feat: New feature
fix: Bug fix
docs: Documentation only
style: Code style / formatting
refactor: Code restructuring (no behavior change)
test: Adding or updating tests
ci: CI/CD configuration
chore: Maintenance tasks

Code Quality

Linting

uv run ruff check src/ # Lint check
uv run ruff check src/ --fix # Auto-fix issues

Formatting

uv run ruff format src/ # Format code
uv run ruff format --check src/ # Check without modifying

Type Checking

uv run mypy src/omniclaw --ignore-missing-imports

Running Tests

uv run pytest # Run all tests
uv run pytest -x # Stop on first failure
uv run pytest -v # Verbose output

Project Structure

omniclaw/
├── src/omniclaw/ # Main source code
│ ├── agent/ # MCP agent server
│ ├── nanopayment/ # EIP-3009 nano transfers
│ ├── trust/ # ERC-8004 trust evaluation
│ ├── cli.py # CLI commands
│ ├── core.py # Main OmniClaw client
│ ├── seller.py # Seller SDK
│ └── config.py # Configuration
├── tests/ # Test suite
├── examples/ # Usage examples
├── .github/workflows/ # CI/CD pipelines
├── .pre-commit-config.yaml
├── pyproject.toml
└── README.md

Getting Help

  • Open a GitHub Issue for bugs or feature requests
  • Start a Discussion for questions
  • Check existing issues for good first issue and help wanted labels

Further Reading

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /