git-workflow
Best practices for git workflow automation including atomic commits, branch naming, conventional commit format, and changelog generation.
What this skill does
# Git Workflow Best Practices
Guidance for creating clean, atomic commits and organizing git workflows effectively.
## Available Skills
This plugin provides fork-isolated skills to automate git workflows:
| Skill | Purpose |
|-------|---------|
| `git-status` | Quick repository status summary |
| `git-commit` | Create commits with pre-commit hooks via commit-craft agent |
| `branch-cleanup` | Clean up merged/stale branches |
| `generate-changelog` | Generate CHANGELOG.md using git-cliff |
All workflow skills use `context: fork` for delegation isolation. The `git-commit` skill delegates to the commit-craft agent, which handles the full commit workflow including pre-commit hook detection, execution, and failure recovery.
### Changelog Generation
Use `generate-changelog` after creating commits to update CHANGELOG.md. Accepts an optional action argument (preview, generate, release). Without an argument, prompts interactively.
## Conventional Commit Format
Structure commit messages following the conventional commit specification. Project-specific CLAUDE.md conventions take precedence over these defaults.
```text
type(scope): subject
body (optional)
footer (optional)
```
### Commit Types
| Type | Purpose |
|------|---------|
| `feat` | New feature |
| `fix` | Bug fix |
| `docs` | Documentation only |
| `style` | Formatting, no code change |
| `refactor` | Code restructuring |
| `perf` | Performance improvement |
| `test` | Adding/updating tests |
| `build` | Build system changes |
| `ci` | CI configuration |
| `chore` | Maintenance tasks |
| `revert` | Revert previous commit |
### Subject Line Rules
- Maximum 72 characters
- Use imperative mood ("add feature" not "added feature")
- No period at end
- Lowercase subject (e.g. `feat(auth): add oauth2 login` — match the casing of existing commits in the repo if a different convention is established)
### Body Guidelines
- Wrap at 72 characters
- Explain what and why, not how
- Separate from subject with blank line
### Footer Conventions
- Reference issues: `Fixes #123` or `Relates to #456`
- Breaking changes: `BREAKING CHANGE: description`
- Co-authors: `Co-Authored-By: Name <email>`
## Branch Naming Conventions
Use descriptive, prefixed branch names:
### Branch Prefixes
| Prefix | Purpose | Example |
|--------|---------|---------|
| `feature/` | New functionality | `feature/user-authentication` |
| `fix/` | Bug fixes | `fix/login-redirect-loop` |
| `hotfix/` | Urgent production fixes | `hotfix/security-patch` |
| `release/` | Release preparation | `release/v2.1.0` |
| `docs/` | Documentation updates | `docs/api-reference` |
| `refactor/` | Code restructuring | `refactor/database-layer` |
| `test/` | Test additions | `test/integration-suite` |
| `chore/` | Maintenance | `chore/dependency-updates` |
### Naming Rules
- Use kebab-case (lowercase with hyphens)
- Keep names descriptive but concise
- Include ticket/issue number when applicable: `feature/123-user-auth`
- Avoid generic names like `feature/update` or `fix/bug`
## Atomic Commit Principles
Create commits that are:
1. **Self-contained**: Each commit represents one logical change
2. **Complete**: Code compiles and tests pass after each commit
3. **Reviewable**: Small enough to understand in one review session
### Grouping Guidelines
- Keep implementation and tests together
- Separate infrastructure from application changes
- Isolate documentation unless integral to code changes
- Group by feature/component/purpose
- Keep related lock files with their manifests (package-lock.json with package.json)
### What NOT to Mix
- Unrelated bug fixes in the same commit
- Formatting changes with logic changes
- Multiple features in one commit
- Refactoring with new functionality
## Pre-Commit Workflow
Before committing:
1. **Review changes**: `git diff` and `git status`
2. **Check for sensitive files**: Never commit `.env`, credentials, API keys
3. **Run pre-commit hooks**: Let formatters and linters process files
4. **Re-stage if hooks modify files**: Add reformatted files and retry commit
### Handling Pre-Commit Hook Failures
When hooks modify files:
1. Review the changes made by hooks
2. Re-add the modified files: `git add <files>`
3. Retry the commit
4. Document any issues for manual review
## Commit Message Template
Use heredoc format for multi-line messages:
```bash
git commit -m "$(cat <<'EOF'
type(scope): subject line here
- Detailed bullet point explaining change
- Another relevant detail
Fixes #123
EOF
)"
```
## Pushing to Main
Default for solo work: commit and push directly to `main`. Branches and PRs add friction without review value when no one else is reviewing.
Use a branch + PR only when:
- The repo has CI gates (tests, lint, build checks) that run on PRs and the operator wants those gates enforced before merge.
- Working with collaborators who review changes.
- The change is risky enough that the operator wants an explicit checkpoint (revert-by-merge, staged rollout).
Force-push to `main` is acceptable on solo repos to rewrite local mistakes (e.g. amending a just-pushed commit), but confirm with the operator first if the commit may already be referenced elsewhere.
## Quick Reference
### Creating a Feature Branch
```bash
git checkout -b feature/descriptive-name
```
### Checking What to Commit
```bash
git status # See all changes
git diff # Unstaged changes
git diff --cached # Staged changes
git log --oneline -5 # Recent commit style
```
### Staging Selectively
```bash
git add path/to/specific/file.ext
git add -p # Interactive staging
```
### Writing Good Commits
```bash
# Simple commit
git commit -m "feat(auth): add OAuth2 login support"
# Multi-line commit
git commit -m "$(cat <<'EOF'
fix(api): resolve race condition in request handler
- Add mutex lock around shared state
- Implement request queuing for high load
- Add timeout handling for stale requests
Fixes #456
EOF
)"
```
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.