# Git Workflow Guide — Weekly Branching **Effective Date:** 2026-04-16 **Policy:** Each week of implementation work starts on a new feature branch for code review and safe integration. --- ## Overview ### Why Weekly Branching? 1. **Code Review** — Review all changes for a week before merging to master 2. **Safety** — Easy to rollback if issues are discovered 3. **Isolation** — Each week's work is independent, reducing merge conflicts 4. **History** — Clean git log with logical week-based commits 5. **Testing** — Test entire week's work on feature branch before merging ### Branch Naming Convention ``` week-- ``` Examples: - `week-3-cards-nav` (Week 3: Cards & Navigation) - `week-4-forms-interactions` (Week 4: Forms & Interactive Elements) - `week-5-animations-a11y` (Week 5: Animations & Accessibility) - `week-6-pages-testing` (Week 6: Missing Pages & End-to-End Testing) --- ## Weekly Workflow ### Step 1: Create Feature Branch At the start of each week, create a new feature branch from `master`: ```bash # Ensure you're on master and up to date git checkout master git pull origin master # (if using remote) # Create feature branch git checkout -b week-3-cards-nav # Verify branch created git branch -v ``` Output should show: ``` master abc1234 commit message * week-3-cards-nav abc1234 commit message ``` The `*` indicates you're on the new branch. ### Step 2: Implement Week's Work While on the feature branch, implement all changes for the week: ```bash # Make changes to CSS, templates, documentation vim themes/danix-xyz-hacker/assets/css/main.css vim themes/danix-xyz-hacker/layouts/partials/... # Rebuild CSS after changes npm run build # Test in browser hugo server # Check what changed git status git diff themes/danix-xyz-hacker/assets/css/main.css ``` ### Step 3: Commit Regularly Commit after completing each component or logical chunk: ```bash # Stage specific files git add themes/danix-xyz-hacker/assets/css/main.css git add themes/danix-xyz-hacker/layouts/partials/card.html # Commit with clear message git commit -m "feat: add article card component with hover effects" # Or use commit message with body for detailed explanation git commit -m "feat: add article card component - Image with 16:9 aspect ratio - Title, excerpt, badge, button - Hover: lift -2px, shadow enhancement - Dark/light mode support - Mobile-first responsive design" ``` ### Step 4: Daily Progress Tracking Update memory at end of each day during the week: ```bash # Create/update memory file cat > /path/to/.claude/projects/.../memory/week3_progress.md << 'EOF' # Week 3 Progress **Date:** 2026-04-17 **Status:** In progress (Day 1) ## Completed Today - [x] Article card CSS - [x] Card integration into templates - [x] Responsive testing ## Tomorrow - [ ] Navigation header - [ ] Hamburger menu EOF git add memory/week3_progress.md git commit -m "docs: update week 3 progress (day 1)" ``` ### Step 5: Review Changes at End of Week Before merging back to master, review all changes: ```bash # Show all commits in this week git log master..week-3-cards-nav --oneline # Show all file changes (diff summary) git diff --stat master..week-3-cards-nav # Show detailed diff for CSS git diff master..week-3-cards-nav themes/danix-xyz-hacker/assets/css/main.css # Show detailed diff for specific template git diff master..week-3-cards-nav themes/danix-xyz-hacker/layouts/partials/ ``` Example output: ``` abc1234 feat: add article card component def5678 feat: add navigation header ghi9012 feat: add hamburger menu jkl3456 feat: add breadcrumb navigation mno7890 docs: update week 3 completion report themes/danix-xyz-hacker/assets/css/main.css | +180 -0 themes/danix-xyz-hacker/layouts/partials/card.html | +45 -0 themes/danix-xyz-hacker/layouts/partials/nav.html | +32 -0 WEEK3-IMPLEMENTATION.md | +200 -0 3 files changed, 457 insertions(+) ``` ### Step 6: Test Thoroughly Before merging, test everything on the feature branch: ```bash # Start dev server hugo server # Test in browser: # - Dark mode (several pages) # - Light mode (toggle, verify all components) # - Mobile (320px) # - Tablet (768px) # - Desktop (1060px+) # - Keyboard navigation (Tab, Enter, Escape) # - All new components interactive # Run CSS build without errors npm run build # Check for console errors # (Open browser DevTools → Console) ``` ### Step 7: Create Summary & Complete Documentation At end of week, finalize documentation: ```bash # Create week completion summary cat > WEEK3-IMPLEMENTATION.md << 'EOF' # Week 3 Implementation — Card Layouts & Navigation [detailed implementation report] EOF # Update memory with completion record cat > memory/week3_complete.md << 'EOF' --- name: Week 3 Complete: Cards & Navigation description: Article card component, navigation header, hamburger menu, breadcrumbs type: project --- [completion details] EOF # Commit documentation git add WEEK3-IMPLEMENTATION.md memory/week3_complete.md git commit -m "docs: week 3 implementation complete" ``` ### Step 8: Merge Back to Master Once testing is complete and you're satisfied with all changes: ```bash # Switch to master git checkout master # Merge feature branch (creates merge commit) git merge week-3-cards-nav # Or merge with --squash if you want single commit per week # git merge --squash week-3-cards-nav # git commit -m "feat: week 3 - card layouts and navigation components" # Delete the feature branch (optional, good practice) git branch -d week-3-cards-nav # Verify merge git log --oneline -10 ``` After merge, master will have all Week 3 changes. ### Step 9: Prepare for Next Week ```bash # Create Week 4 branch from updated master git checkout -b week-4-forms-interactions # Continue with Week 4 work... ``` --- ## Commit Message Guidelines ### Format ``` :