Thank you for your interest in contributing. This guide covers the essentials.
Each repository has its own CLAUDE.md with project-specific setup instructions, quality gates, and architecture notes. Read that file first.
- uv for Python projects
- Xcode for Swift projects
- markdownlint-cli2 for all repos (markdown CI)
All changes go on feature branches. Never commit directly to main.
git checkout -b feat/short-description main| Prefix | Use |
|---|---|
feat/ |
New features |
fix/ |
Bug fixes |
refactor/ |
Code improvements |
docs/ |
Documentation only |
Format: type(scope): description
feat(search): add fuzzy matching
fix(relay): handle disconnection during fetch
refactor(tools): extract shared formatting
test(integration): add multi-user messaging tests
docs: update command reference
chore: bump dependency
One logical change per commit. Small commits are preferred over large ones.
Every commit must pass the project's quality gates before merge. These typically include linting, type checking, and tests. Check the project's CLAUDE.md for the exact commands.
- Push your branch and open a pull request.
- Ensure CI passes on all commits.
- Respond to review feedback.
- Once approved and green, the PR will be merged.
- Clear title and description explaining why, not just what.
- Small, focused scope. One concern per PR.
- Tests included for new behavior.
- README updated if user-facing behavior changed.
- CHANGELOG entry for notable changes.
Open an issue in the relevant repository with:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Your environment (OS, language version, project version)
Open an issue describing the problem you want to solve, not just the solution you have in mind. Context about your use case helps us evaluate the right approach.
All projects follow Punt Labs standards. When a project's CLAUDE.md conflicts with org standards, the project-specific instructions take precedence.
By contributing, you agree that your contributions will be licensed under the same license as the project you are contributing to.