scm

ABOUTME: Git workflow skill for ecommerce project

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "scm" with this command: npx skills add lorenzogirardi/ai-ecom-demo/lorenzogirardi-ai-ecom-demo-scm

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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

trivy

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

spec-driven-dev

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

typescript

No summary provided by upstream source.

Repository SourceNeeds Review
General

design-patterns

No summary provided by upstream source.

Repository SourceNeeds Review