git-workflow
Guided git workflows: prepare PRs, clean up branches, resolve merge conflicts, handle monorepo tags, squash-and-merge patterns. Use when asked to prepare a PR, clean branches, resolve conflicts, or tag a release.
What this skill does
# Git Workflow
Guided workflows for common git operations that benefit from structured steps.
## PR Preparation
When preparing a pull request:
1. **Gather context**
- `git log main..HEAD --oneline` — list all commits on the branch
- `git diff main...HEAD --stat` — see all changed files
- `git status` — check for uncommitted work
2. **Draft PR content**
- Title: under 70 chars, describes the change (not the branch name)
- Body: summarise the "why", list key changes, add test plan
- Use the commit history to write the summary — don't rely on memory
3. **Push and create**
```bash
git push -u origin HEAD
gh pr create --title "..." --body "$(cat <<'EOF'
## Summary
- ...
## Test plan
- [ ] ...
🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
```
4. **Verify** — `gh pr view --web` to open in browser
## Branch Cleanup
Clean up merged branches safely:
1. **Switch to main and pull latest**
```bash
git checkout main && git pull
```
2. **List merged branches** (excludes main/master/develop)
```bash
git branch --merged main | grep -vE '^\*|main|master|develop'
```
3. **Delete local merged branches**
```bash
git branch --merged main | grep -vE '^\*|main|master|develop' | xargs -r git branch -d
```
4. **Prune remote tracking refs**
```bash
git fetch --prune
```
5. **List remote branches with no local tracking** (optional)
```bash
git branch -r --merged origin/main | grep -vE 'main|master|develop|HEAD'
```
## Merge Conflict Resolution
When a PR has conflicts:
1. **Assess the conflict scope**
```bash
git fetch origin
git merge origin/main --no-commit --no-ff
git diff --name-only --diff-filter=U # List conflicted files
```
2. **For each conflicted file**, read the file and resolve:
- Keep both changes if they're in different areas
- If architecturally incompatible, prefer the main branch's approach and re-apply the PR's intent on top
3. **If rebase is cleaner** (few commits, no shared history):
```bash
git rebase origin/main
# Resolve conflicts per commit, then:
git rebase --continue
```
4. **If rebase is messy** (many conflicts, architectural divergence):
- Abort: `git rebase --abort` or `git merge --abort`
- Extract useful code: `git show origin/branch:path/to/file > /tmp/extracted.txt`
- Apply changes manually to main
- Close original PR with explanation
5. **Verify** — run tests, check the diff looks right
## Monorepo Release Tags
In monorepos, scope tags to the package:
```bash
# ❌ Ambiguous in monorepos
git tag v2.1.0
# ✅ Scoped to package
git tag contextbricks-v2.1.0
git push origin contextbricks-v2.1.0
```
Pattern: `{package-name}-v{semver}`
## .gitignore-First Init
When creating a new repo, always create `.gitignore` BEFORE the first `git add`:
```bash
cat > .gitignore << 'EOF'
node_modules/
.wrangler/
dist/
.dev.vars
*.log
.DS_Store
.env
.env.local
EOF
git init && git add . && git commit -m "Initial commit"
```
**If node_modules is already tracked:**
```bash
git rm -r --cached node_modules/
git commit -m "Remove node_modules from tracking"
```
## Private Repo License Audit
Before publishing or sharing a private repo:
```bash
gh repo view --json visibility -q '.visibility'
```
If `PRIVATE`, ensure:
- `LICENSE` contains proprietary notice (not MIT/Apache)
- `package.json` has `"license": "UNLICENSED"` and `"private": true`
- No `CONTRIBUTING.md` or "contributions welcome" in README
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.