PR Workflow
This page details the pull request process for Uniswap AI contributions.
Creating a PR
1. Branch Naming
Use descriptive branch names:
text
feature/add-v4-security-skill
fix/eval-timeout-issue
docs/update-installation-guide2. Commit Messages
Follow Conventional Commits:
bash
# Feature
git commit -m "feat(hooks): add dynamic fee hook skill"
# Bug fix
git commit -m "fix(evals): increase timeout for slow tests"
# Documentation
git commit -m "docs(skills): update v4 security examples"3. PR Title
PR titles must also follow conventional commits format:
text
feat(hooks): add dynamic fee hook skill
fix(evals): increase timeout for slow tests
docs: update installation guideCI Checks
Every PR runs through these checks:
Automated Checks
| Check | Description | Required |
|---|---|---|
| Build | Builds affected packages | ✅ |
| Lint | Runs ESLint on affected packages | ✅ |
| Format | Checks Prettier formatting | ✅ |
| Tests | Runs Jest tests with coverage | ✅ |
| Plugin Validation | Validates plugin configurations | ✅ |
| Eval Coverage | Ensures new skills have evals | ✅ |
| PR Title | Validates conventional commit format | ✅ |
| Docs Check | Validates documentation updates | ⚠️ |
| Vale | Checks prose quality | ⚠️ |
✅ = Required to pass ⚠️ = Advisory (non-blocking)
Claude Code Review
PRs automatically receive AI-powered code review:
- Provides formal review (APPROVE/REQUEST_CHANGES/COMMENT)
- Posts inline comments on specific lines
- Focuses on security, best practices, and code quality
To request a new review, comment:
text
@request-claude-reviewReview Process
What Reviewers Look For
Code Quality
- TypeScript best practices
- No
anytypes - Proper error handling
Security
- No hardcoded secrets
- Input validation
- Safe external interactions
Testing
- Adequate test coverage
- Edge cases covered
- Eval suites for new skills
Documentation
- CLAUDE.md updated if needed
- README.md reflects changes
- Code comments where helpful
Addressing Feedback
- Push new commits to address feedback
- Reply to review comments explaining changes
- Request re-review when ready
Merging
Once approved:
- Ensure all required checks pass
- Squash and merge (default)
- Delete the branch after merge
Automatic Post-Merge Actions
After merging to main:
- Documentation: Docs are rebuilt and deployed
- Skills Publishing: Skills become available via the skills.sh CLI (fetched directly from the default branch)
Troubleshooting
CI Failures
Build fails:
bash
# Run build locally
npx nx affected --target=build --verboseTests fail:
bash
# Run tests locally
npx nx affected --target=test --verboseFormatting issues:
bash
# Fix formatting
npx nx format:writeEval Coverage Check
If you added a new skill, create the eval suite:
bash
mkdir -p evals/suites/your-skill/cases
mkdir -p evals/suites/your-skill/rubrics
# Add promptfoo.yaml, prompt-wrapper.txt, and test casesRelated
- Contributing Guide - Getting started
- Writing Evals - Creating evaluation suites
- Architecture - Project structure