marchwarden/CONTRIBUTING.md
Jeff Smith deb124ed29 Initial project structure and scaffolding
- Directory layout: researchers/web/, orchestrator/, cli/, docs/wiki/
- README with quick start and vision
- CONTRIBUTING with workflow and testing guidelines
- pyproject.toml with dependencies and build config
- .gitignore for Python projects

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-08 11:57:15 -06:00

1.3 KiB

Contributing to Marchwarden

Workflow

  • Always branch — never commit directly to main
  • Branch naming: feat/, fix/, refactor/, chore/ + description (e.g., feat/tavily-integration)
  • One branch, one concern — don't mix unrelated changes
  • Atomic commits — each commit is one logical unit; write clear messages
  • Tests required — all code changes to testable modules must include or update tests
  • Test before PR — run pytest tests/ and ensure all pass

Branching

# Create a feature branch
git checkout -b feat/your-feature-name

# Commit logically
git commit -m "Implement X because Y"

# Push
git push origin feat/your-feature-name

Testing

# Run all tests
pytest tests/

# Run with coverage
pytest --cov=. tests/

# Run a specific test
pytest tests/test_something.py::test_name

MCP Contract

Before implementing, read ResearchContract.md. The research() tool signature is the contract; changes require approval.

PR process

  1. Push your branch
  2. Create a PR on Forgejo
  3. Ensure CI passes (tests, linting)
  4. Request review
  5. Merge via Forgejo API/UI (not locally)
  6. Delete the remote branch
  7. Sync local main: git checkout main && git pull --ff-only

Questions?

Check the wiki or open an issue.