Agent Skills: ABOUTME: Git workflow skill for ecommerce project

>-

UncategorizedID: lorenzogirardi/ai-ecom-demo/scm

Install this agent skill to your local

pnpm dlx add-skill https://github.com/lorenzogirardi/ai-ecom-demo/tree/HEAD/ecommerce-demo/claude-toolkit/skills/scm

Skill Files

Browse the full folder contents for scm.

Download Skill

Loading file tree…

ecommerce-demo/claude-toolkit/skills/scm/SKILL.md

Skill Metadata

Name
scm
Description
>-

ABOUTME: Git workflow skill for ecommerce project

ABOUTME: Covers Conventional Commits, GitHub Flow, and team collaboration

Source Control Management (SCM) Skill

Quick Reference

| Principle | Rule | |-----------|------| | Atomic Commits | One logical change per commit | | Conventional Commits | type(scope): description format | | Branch Naming | type/ticket-description format | | PR Size | < 400 lines of code changes | | Never Force Push | To shared branches (main) |


Branching Strategy (GitHub Flow)

main ─────●───────●───────●───────●──────
          │       ↑       │       ↑
          ↓       │       ↓       │
feature ──●──●──●─┘ fix ──●──●────┘

Branches:

  • main: Always deployable (protected)
  • feature/*: New features
  • fix/*: Bug fixes
  • chore/*: Maintenance
  • docs/*: Documentation

Conventional Commits

Format

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

[optional body]

[optional footer]

Types

| Type | Description | Example | |------|-------------|---------| | feat | New feature | feat(cart): add quantity selector | | fix | Bug fix | fix(auth): correct token refresh logic | | docs | Documentation | docs(api): update endpoint docs | | style | Formatting | style(frontend): fix indentation | | refactor | Code restructure | refactor(orders): extract validation | | test | Tests | test(catalog): add search tests | | chore | Build/tooling | chore(deps): update dependencies | | perf | Performance | perf(redis): optimize cache keys | | ci | CI config | ci(actions): add security scan |

Scopes (Ecommerce)

| Scope | Area | |-------|------| | auth | Authentication module | | catalog | Products, categories | | cart | Shopping cart | | orders | Order processing | | checkout | Checkout flow | | frontend | Next.js app | | backend | Fastify API | | infra | Terraform/K8s | | ci | GitHub Actions |


Branch Naming

<type>/<ticket>-<description>

Examples:
- feature/ECOM-123-user-wishlist
- fix/ECOM-456-cart-total-calculation
- chore/ECOM-789-update-node-version

Commit Workflow

TDD Commit Pattern

# Red phase
git add tests/
git commit -m "test(auth): add login validation tests"

# Green phase
git add src/
git commit -m "feat(auth): implement login validation"

# Refactor phase
git add src/
git commit -m "refactor(auth): extract validation helpers"

Multi-line Commit (HEREDOC)

git commit -m "$(cat <<'EOF'
feat(cart): add persistent cart storage

- Store cart in Redis with user session
- Expire after 7 days of inactivity
- Merge guest cart on login

Closes #123
EOF
)"

Pull Request Workflow

Before Creating PR

# 1. Ensure branch is up to date
git fetch origin
git rebase origin/main

# 2. Run tests locally
npm run test

# 3. Check linting
npm run lint

# 4. Review changes
git diff origin/main...HEAD
git log origin/main..HEAD --oneline

PR Description Template

## Summary
- Brief description (1-3 bullet points)

## Changes
- Added X feature
- Modified Y component
- Fixed Z bug

## Testing
- [ ] Unit tests pass
- [ ] Integration tests pass
- [ ] Manual testing completed

## Screenshots (if UI changes)
[Before/After]

## Related Issues
Closes #123

PR Size Guidelines

| Size | Lines | Review Time | |------|-------|-------------| | XS | < 50 | Minutes | | S | 50-200 | < 30 min | | M | 200-400 | < 1 hour | | L | 400-800 | Hours | | XL | > 800 | Split required |


Conflict Resolution

Understanding Conflicts

<<<<<<< HEAD (current branch)
const timeout = 5000;
=======
const timeout = 10000;
>>>>>>> feature-branch (incoming)

Resolution Commands

# Keep current branch version
git checkout --ours path/to/file

# Keep incoming version
git checkout --theirs path/to/file

# After manual resolution
git add path/to/file
git rebase --continue

Safety Rules

Never Do

# Never force push to main
git push --force origin main  # DANGEROUS

# Never rebase shared branches
git rebase main  # on shared feature branch

# Never reset pushed commits
git reset --hard HEAD~3  # if already pushed

Safe Alternatives

# Use force-with-lease
git push --force-with-lease

# Merge instead of rebase on shared
git merge origin/main

# Revert instead of reset
git revert <sha>

Common Operations

Undo Operations

# Undo last commit (keep changes)
git reset --soft HEAD~1

# Undo uncommitted changes
git checkout -- path/to/file

# Revert pushed commit
git revert <sha>

Stashing

# Stash changes
git stash save "WIP: feature description"

# List stashes
git stash list

# Apply and drop
git stash pop

Checklist

Before committing:

  • [ ] Changes are atomic (one logical change)
  • [ ] Commit message follows Conventional Commits
  • [ ] Tests pass locally
  • [ ] No debug code or console.logs
  • [ ] No secrets or credentials
  • [ ] Branch is up to date with main

Before creating PR:

  • [ ] Rebased on latest main
  • [ ] All commits have meaningful messages
  • [ ] PR is < 400 lines
  • [ ] Description explains what and why
  • [ ] Related issues linked
  • [ ] CI checks pass