Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions .claude/mcp_config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"mcpServers": {
"git": {
"command": "mcp-server-git",
"args": [],
"env": {
"REPO_PATH": "/Users/yashthakur/Documents/GitHub/iOS-native-claudeapp"
}
},
"github": {
"command": "mcp-server-github",
"env": {
"GITHUB_REPO": "yashthakur1/iOS-native-claudeapp"
}
},
"filesystem": {
"command": "mcp-server-filesystem",
"args": ["/Users/yashthakur/Documents/GitHub/iOS-native-claudeapp"]
},
"memory": {
"command": "mcp-server-memory",
"env": {
"PROJECT": "iOS Timer App"
}
}
},
"globalShortcuts": {
"collaborate": "./collaborate.sh",
"update-repo": "./github-repo-update.sh update",
"check-branch": "git branch --show-current",
"sync": "git pull origin $(git branch --show-current)",
"status": "git status --short"
}
}
3 changes: 2 additions & 1 deletion .claude/settings.local.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"Bash(rm:*)",
"Bash(mkdir:*)",
"Bash(chmod:*)",
"Bash(swift:*)"
"Bash(swift:*)",
"Bash(brew install:*)"
],
"deny": []
}
Expand Down
178 changes: 178 additions & 0 deletions .github/GITFLOW.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
# GitFlow Workflow Guide for iOS Timer App

## 🌊 Branch Structure

### Main Branches
- **`main`** - Production-ready code (protected)
- **`develop`** - Integration branch for features

### Supporting Branches
- **`feature/*`** - New features
- **`release/*`** - Release preparation
- **`hotfix/*`** - Emergency fixes for production
- **`bugfix/*`** - Non-emergency bug fixes

## 🔄 Workflow Rules

### 1. Feature Development
```bash
# Start a new feature
git checkout develop
git pull origin develop
git checkout -b feature/your-feature-name

# Work on feature...
git add .
git commit -m "feat: describe your feature"

# Finish feature
git push origin feature/your-feature-name
# Create PR to develop branch
```

### 2. Release Process
```bash
# Start release
git checkout develop
git pull origin develop
git checkout -b release/1.x.x

# Prepare release...
# Update version numbers, final testing

# Finish release
git push origin release/1.x.x
# Create PR to main AND develop
```

### 3. Hotfix Process
```bash
# Start hotfix
git checkout main
git pull origin main
git checkout -b hotfix/fix-description

# Fix issue...
git push origin hotfix/fix-description
# Create PR to main AND develop
```

## 📝 Commit Message Convention

We follow [Conventional Commits](https://www.conventionalcommits.org/):

- `feat:` New feature
- `fix:` Bug fix
- `docs:` Documentation changes
- `style:` Code style changes (formatting, etc.)
- `refactor:` Code refactoring
- `test:` Test additions or changes
- `chore:` Build process or auxiliary tool changes
- `perf:` Performance improvements

### Examples:
```
feat: add splash screen with motivational quotes
fix: resolve timer display padding issue
docs: update README with GitFlow information
style: apply Bungee font consistently
refactor: optimize color manager implementation
```

## 🤝 Collaboration Protocol

### Before Starting Work
1. **Discuss the task** - We'll plan together
2. **Create an issue** - Document what we're building
3. **Choose branch type** - feature/bugfix/etc.
4. **Update local** - Always pull latest changes

### During Development
1. **Regular commits** - Small, focused changes
2. **Test thoroughly** - Run the app, check all features
3. **Update documentation** - Keep README current
4. **Communicate progress** - Let me know if you need help

### Code Review Process
1. **Self-review** - Check your changes first
2. **Create PR** - With detailed description
3. **Request review** - Tag relevant reviewers
4. **Address feedback** - Make requested changes
5. **Merge** - After approval

## 🚀 Version Numbering

We use Semantic Versioning (MAJOR.MINOR.PATCH):
- **MAJOR** - Breaking changes
- **MINOR** - New features (backwards compatible)
- **PATCH** - Bug fixes

Current Version: 1.0.0

## 📋 Checklist for Each Session

When we work together:
1. [ ] Check current branch
2. [ ] Pull latest changes
3. [ ] Discuss goals for session
4. [ ] Create/update issues
5. [ ] Work on appropriate branch
6. [ ] Test changes
7. [ ] Commit with proper messages
8. [ ] Push and create PR if ready
9. [ ] Update documentation
10. [ ] Plan next steps

## 🛡️ Branch Protection Rules

### Main Branch
- Require pull request reviews
- Dismiss stale reviews
- Require status checks
- Include administrators
- No force pushes

### Develop Branch
- Require pull request reviews
- Require up-to-date branches
- No direct pushes

## 🔧 GitFlow Commands Reference

```bash
# Check current branch
git branch

# Switch to develop
git checkout develop

# Create feature branch
git checkout -b feature/feature-name

# Push changes
git push origin feature/feature-name

# Create pull request
gh pr create --base develop

# Merge PR
gh pr merge --merge

# Delete local branch
git branch -d feature/feature-name

# Delete remote branch
git push origin --delete feature/feature-name
```

## 📊 Current Project Status

- **Current Version**: 1.0.0
- **Active Branch**: develop
- **Next Features**: TBD in discussion
- **Known Issues**: None

---

*Last Updated: [Current Date]*
*Maintained by: @yashthakur1 & Claude*
66 changes: 66 additions & 0 deletions .github/SESSION_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Development Session Plan

**Date**: [Today's Date]
**Developer**: @yashthakur1
**Assistant**: Claude

## 🎯 Session Goals

1. [ ] Goal 1
2. [ ] Goal 2
3. [ ] Goal 3

## 📋 Pre-Session Checklist

- [ ] Current branch checked
- [ ] Latest changes pulled
- [ ] No uncommitted changes
- [ ] Tests passing

## 🔨 Tasks for This Session

### Priority 1
- [ ] Task description
- Branch: `feature/branch-name`
- Estimated time: X minutes

### Priority 2
- [ ] Task description
- Branch: `feature/branch-name`
- Estimated time: X minutes

## 💭 Discussion Points

- Point 1
- Point 2

## 📝 Session Notes

[Add notes during the session]

## ✅ Session Summary

### Completed
- [ ] Item 1
- [ ] Item 2

### In Progress
- [ ] Item 1

### Next Steps
- [ ] Future task 1
- [ ] Future task 2

## 🚀 Post-Session Actions

- [ ] All changes committed
- [ ] PR created (if applicable)
- [ ] Documentation updated
- [ ] Tests passing
- [ ] Next session planned

---

**Session Duration**: X hours
**Commits Made**: X
**PRs Created**: X
23 changes: 23 additions & 0 deletions .github/branch-protection.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Branch Protection Setup

To enable branch protection for this repository, please follow these steps on GitHub:

## Main Branch Protection

1. Go to Settings → Branches
2. Add rule for `main` branch:
- ✅ Require a pull request before merging
- ✅ Require approvals (1)
- ✅ Dismiss stale pull request approvals
- ✅ Require status checks to pass
- ✅ Require branches to be up to date
- ✅ Include administrators

## Develop Branch Protection

1. Add rule for `develop` branch:
- ✅ Require a pull request before merging
- ✅ Require approvals (1)
- ✅ Require branches to be up to date

This ensures code quality and review process.
46 changes: 46 additions & 0 deletions .github/workflows/pr-checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: PR Checks

on:
pull_request:
branches: [ main, develop ]

jobs:
build-and-test:
runs-on: macos-latest

steps:
- uses: actions/checkout@v3

- name: Set up Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable

- name: Build
run: |
xcodebuild clean build \
-project TimerApp.xcodeproj \
-scheme TimerApp \
-destination 'platform=iOS Simulator,name=iPhone 15' \
CODE_SIGN_IDENTITY="" \
CODE_SIGNING_REQUIRED=NO

- name: Check Swift Format
run: |
if which swiftformat >/dev/null; then
swiftformat --lint TimerApp
else
echo "SwiftFormat not installed, skipping..."
fi

- name: Comment PR
uses: actions/github-script@v6
if: always()
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: '✅ Build completed successfully!'
})
Loading
Loading