Marryme

Repository Rules - Wedding RSVP Project

Development workflow standards for maintaining code quality and collaboration

Reference: CONST-P12 (Deployment & DevOps), CONST-P14 (Collaboration), CONST-P6 (Code Quality)

Overview

This document establishes repository management standards for the Wedding RSVP project, ensuring consistent development practices, code quality, and efficient collaboration workflows.

Branch Strategy

Main Branches

Feature Branches

Branch Protection Rules

main:
  - Require pull request reviews (minimum 1)
  - Require status checks to pass
  - Require branches to be up to date
  - Restrict pushes to main
  
develop:
  - Require pull request reviews
  - Allow force pushes (for clean history)
  - Require status checks

Commit Standards

Commit Message Format

<type>(<scope>): <description>

<optional body>

<optional footer>

Commit Types

Commit Examples

# Feature development
feat(rsvp): add guest dietary restrictions field
feat(admin): implement RSVP analytics dashboard
feat(ui): add loading states to all forms

# Bug fixes
fix(validation): correct email format validation regex
fix(responsive): adjust mobile navigation menu positioning
fix(api): handle empty RSVP response gracefully

# Documentation and maintenance
docs(readme): update setup instructions
style(components): apply consistent spacing
refactor(types): consolidate RSVP type definitions

Commit Best Practices

Pull Request Guidelines

PR Creation Standards

  1. Title Format: <type>: Brief description of changes
  2. Description Template: ```markdown

    Changes Made

    • List key changes implemented
    • Include any breaking changes
    • Note configuration updates

    Testing

    • Manual testing completed
    • Edge cases verified
    • Mobile experience confirmed
    • Design system compliance checked

    Documentation

    • Code comments added where needed
    • Documentation updated if applicable
    • Type definitions updated

    Screenshots/Videos

    (Include visual proof of changes when applicable)

    Closes #123, Fixes #456 ```

PR Review Process

Before Creating PR

Review Checklist for Reviewers

Review Guidelines

PR Approval Requirements

Code Quality Gates

Automated Checks

# GitHub Actions pipeline
checks:
  - TypeScript compilation
  - ESLint static analysis  
  - Prettier formatting
  - Build verification
  - Test suite execution (when implemented)
  - Bundle size analysis

Manual Quality Assurance

Quality Metrics

Workflow Patterns

Feature Development Workflow

# 1. Start feature
git checkout develop
git pull origin develop
git checkout -b feature/new-rsvp-field

# 2. Development cycle
# Make changes...
git add .
git commit -m "feat(rsvp): add dietary restrictions field"

# 3. Stay current (regularly)
git checkout develop
git pull origin develop
git checkout feature/new-rsvp-field
git rebase develop

# 4. Push and create PR
git push origin feature/new-rsvp-field
# Create PR via GitHub UI

# 5. After PR approval
git checkout develop
git pull origin develop
git branch -d feature/new-rsvp-field

Hotfix Workflow

# 1. Create hotfix from main
git checkout main
git pull origin main
git checkout -b hotfix/critical-bug-fix

# 2. Fix the issue
git add .
git commit -m "fix(critical): resolve RSVP submission error"

# 3. Create PR to main
git push origin hotfix/critical-bug-fix
# Create PR to main via GitHub UI

# 4. Also merge to develop
git checkout develop
git pull origin develop
git merge hotfix/critical-bug-fix
git push origin develop
git branch -d hotfix/critical-bug-fix

Release Workflow

# 1. Create release branch
git checkout develop
git pull origin develop
git checkout -b release/v1.2.0

# 2. Final preparations
# Update version numbers, documentation
git add .
git commit -m "chore(release): prepare v1.2.0"

# 3. Create PR to main
git push origin release/v1.2.0
# Create PR to main

# 4. After merge, tag the release
git checkout main
git pull origin main
git tag -a v1.2.0 -m "Release v1.2.0"
git push origin v1.2.0

# 5. Merge back to develop
git checkout develop
git merge main
git push origin develop
git branch -d release/v1.2.0

Issue Management

Issue Labels

Issue Templates

## Bug Report Template
**Describe the bug**
A clear description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Device Information:**
- Device: [e.g. iPhone 12, Desktop]
- Browser: [e.g. chrome, safari]
- Version: [e.g. 22]

**Additional context**
Add any other context about the problem here.
## Feature Request Template
**Is your feature request related to a problem?**
A clear description of what the problem is.

**Describe the solution you'd like**
A clear description of what you want to happen.

**Describe alternatives you've considered**
Alternative solutions or features you've considered.

**Wedding Context**
How does this feature enhance the wedding RSVP experience?

**Additional context**
Add any other context or screenshots about the feature request.

Documentation Requirements

Code Documentation

Project Documentation

Security Practices

Sensitive Data Protection

Code Security

Performance Standards

Code Performance

Development Performance

Collaboration Guidelines

Communication

Conflict Resolution

Knowledge Sharing

Monitoring and Metrics

Repository Health

Quality Metrics

Process Improvement


Quick Reference

Daily Development Commands

# Start work
git checkout develop && git pull origin develop
git checkout -b feature/your-feature-name

# Regular commits
git add .
git commit -m "type(scope): description"

# Stay current
git fetch origin
git rebase origin/develop

# Create PR
git push origin feature/your-feature-name

Quality Checklist

Emergency Procedures

For critical issues:

  1. Create hotfix branch from main
  2. Fix with minimal changes
  3. Create PR directly to main
  4. Notify team of critical fix
  5. Ensure fix is merged to develop

Remember: These rules exist to maintain quality and enable efficient collaboration on this special wedding project. When in doubt, prioritize user experience and code maintainability.