Thank you for your interest in contributing to ExFig!
- Development Guide - Complete setup and contribution guidelines
- Code of Conduct - Community standards
- Security Policy - Reporting vulnerabilities
- Fork and clone the repository
- Install dependencies:
./bin/mise install - Build:
./bin/mise run build - Test:
./bin/mise run test
Git hooks are auto-configured via mise when entering the project directory.
Ensure all checks pass:
./bin/mise run format # Format Swift code
./bin/mise run format-md # Format markdown
./bin/mise run lint # Run linter
./bin/mise run test # Run testsCheck current test coverage:
./bin/mise run coverage # Show coverage report
./bin/mise run coverage:badge # Update badge in README.mdNote: The coverage badge is updated manually, not automatically by CI.
We use Conventional Commits to generate changelogs automatically.
<type>(<scope>): <description>
[optional body]
[optional footer]
| Type | Description | |------|-------------| | feat | New feature | | fix | Bug fix | | docs | Documentation only
| | style | Code style (formatting, no logic change) | | refactor | Code refactoring | | perf | Performance
improvement | | test | Adding or updating tests | | chore | Maintenance tasks | | ci | CI/CD changes | | revert
| Revert a previous commit |
feat: add WebP image export support
fix(icons): handle SVG with missing viewBox
docs: update installation instructions
refactor(api): simplify Figma client error handling
test(colors): add tests for high contrast mode
chore: update dependenciesCommon scopes: colors, icons, images, typography, api, cli, mcp, ios, android
- Create a feature branch from
main - Make your changes with clear, focused commits following the commit format above
- Ensure all tests pass and linting is clean
- Submit a pull request with a clear description
For detailed guidelines, see the Development Guide.