Skip to content

Contributing

Development Workflow

┌─────────────────────────────────────────────────────────────────┐
│                     Development Workflow                        │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  1. Create feature branch from main                            │
│     git checkout -b feat/my-feature                            │
│                                                                 │
│  2. Make changes and commit                                    │
│     git commit -m "feat: add new feature"                      │
│                                                                 │
│  3. Push and create PR                                         │
│     git push -u origin feat/my-feature                         │
│                                                                 │
│  4. PR triggers quality checks:                                │
│     ├── npm ci                                                 │
│     ├── npm run lint                                           │
│     ├── npm run type-check                                     │
│     ├── npm run test                                           │
│     ├── npm run build                                          │
│     └── Terraform plan (posted as PR comment)                  │
│                                                                 │
│  5. After approval and merge to main:                          │
│     ├── Quality checks run again                               │
│     ├── Docker image built and pushed to ECR                   │
│     ├── Terraform apply (infrastructure updates)               │
│     ├── App Runner deployment                                  │
│     └── Health check verification                              │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Branch Protection

The main branch is protected:

  • Pull request required before merging
  • Status checks must pass (test job)
  • Conversations must be resolved

Commit Messages

Use Conventional Commits:

Type When to Use
feat: New feature
fix: Bug fix
refactor: Code change that neither fixes a bug nor adds a feature
docs: Documentation only
chore: Maintenance tasks
test: Adding or updating tests

Examples:

feat: add user authentication
fix: resolve database connection timeout
refactor: extract validation logic to separate module
docs: update API documentation
chore: update dependencies

Before Submitting a PR

Run these checks locally:

npm run lint         # No ESLint errors
npm run type-check   # No TypeScript errors
npm run build        # Build succeeds

PR Description

Include:

  • Summary - What does this PR do?
  • Changes - List key changes
  • Testing - How was this tested?

Code Review

PRs are reviewed by CodeRabbit (automated) and team members.

What reviewers look for:

  • Code follows coding standards
  • Tests cover new functionality
  • No security vulnerabilities
  • Documentation updated if needed

What Not to Modify

These files are managed by infrastructure owners:

Path Owner
infra/ Paul
.github/workflows/ Paul
Dockerfile Paul
src/middleware.ts Paul

Contact Paul before making changes to these files.

Getting Help

  • Questions: Open a GitHub issue
  • Infrastructure: Contact Paul
  • Stuck on a PR: Ask for help in the PR comments