- 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>
1.3 KiB
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
- Push your branch
- Create a PR on Forgejo
- Ensure CI passes (tests, linting)
- Request review
- Merge via Forgejo API/UI (not locally)
- Delete the remote branch
- Sync local
main:git checkout main && git pull --ff-only
Questions?
Check the wiki or open an issue.