Skip to content

Contributing

Thank you for your interest in contributing to Arbiter-Bot!

Development Setup

  1. Clone the repository:

    git clone https://github.com/amiable-dev/arbiter-bot.git
    cd arbiter-bot
    

  2. Build the project:

    cargo build --manifest-path arbiter-engine/Cargo.toml
    

  3. Run tests:

    cargo test --manifest-path arbiter-engine/Cargo.toml
    

Workflow

1. Create an Issue

Before starting work, create a GitHub issue to:

  • Describe the problem or feature
  • Discuss approach
  • Get feedback

2. Create a Feature Branch

git checkout -b feature/issue-number-brief-description

3. Implement with TDD

Follow TDD Workflow:

  1. Write failing test
  2. Implement to pass
  3. Refactor

4. Update Documentation

Every change must update relevant docs:

  • ADRs (for architectural decisions)
  • Requirements (docs/spec/requirements.md)
  • Ledger (docs/development/ledger.md)
  • READMEs
  • CHANGELOG

5. Write Blog Post

Create a blog post in docs/blog/posts/:

---
date: YYYY-MM-DD
authors:
  - your-author-id
categories:
  - relevant-category
tags:
  - relevant-tags
---

# Title: Intent and Decision

Brief summary.

<!-- more -->

## Context
## Decision
## Implementation
## Verification

6. Council Review

Submit for Council Review.

7. Create Pull Request

git push -u origin feature/your-branch
gh pr create

PR description should include:

  • Link to issue
  • Summary of changes
  • Test plan
  • Documentation updates

8. Merge

After approval:

  • Squash and merge to main
  • Delete feature branch
  • Close related issue

Code Style

  • Follow Rust idioms and conventions
  • Use cargo fmt before committing
  • Use cargo clippy to catch common issues
  • Write clear, descriptive commit messages

Questions?

Open an issue or discussion on GitHub.