Delete local git branches whose remote tracking branch is gone or whose changes are already merged into the base branch. Use when the user asks to clean up branches, prune branches, delete stale branches, or /cleanup-branches. Reports what will be deleted and asks before deleting anything.
# Cleanup Branches
Prune local branches = merged OR remote gone. Delete = destructive -> preview + confirm first.
## Workflow
1. Parallel:
- `git fetch --all --prune`
- `git branch --show-current`
2. Pick base: default `main`. Fall back `master` if no `main`. User names other -> use it.
3. Build candidate lists:
- **Gone**: locals with upstream gone.
```
git for-each-ref --format='%(refname:short) %(upstream:track)' refs/heads \
| awk '$2 == "[gone]" {print $1}'
```
- **Merged**…
Run git commit using Angular conventional commit format. Use when the user asks to commit, create a commit, /commit, or save changes to git. Stages relevant files and commits immediately without asking for confirmation.
# Commit
Conventional commit. No confirm. No dry-run.
## Workflow
1. Parallel: `git status` + `git diff --staged`.
2. Nothing staged -> stage relevant files. Specific paths > `git add -A`. Never stage `.env`, creds, secrets.
3. Parallel: `git diff --staged` (if just staged) + `git log --oneline -5`.
4. Read diff -> decide one commit or many (see **Atomic commits**) -> write msg per format below.
5. Commit now. No confirm. Many groups -> stage + commit each group in turn, repeat til clean.
6. Print hash(es) + one…
Create a new git branch using a conventional naming scheme. Use when the user asks to create a branch, start a new branch, /create-branch, or begin work on a feature/fix. Creates and checks out the branch immediately without asking for confirmation.
# Create Branch
Make + checkout new branch. No confirm.
## Workflow
1. Parallel: `git status` + `git branch --show-current`. Check state + current branch.
2. Dirty tree with unrelated changes -> warn + stop. Else continue.
3. Pick base:
- Default `main`. Fall back `master` if no `main`.
- On feature branch + user asks to branch off it -> use current.
4. `git fetch origin <base>` + `git checkout -b <branch-name> origin/<base>`. Fresh from remote tip.
5. Print new branch + base.
## Branch Naming
Format: `<…
Create a GitHub pull request using `gh` with a conventional title and a structured body. Use when the user asks to create a PR, open a pull request, /create-pr, or ship the current branch. Pushes the branch and opens the PR immediately without asking for confirmation.
# Create PR
Open GitHub PR for current branch. No confirm.
## Workflow
1. Parallel -> read branch state:
- `git status`
- `git branch --show-current`
- `git log <base>..HEAD --oneline` (`<base>` = `main`, fallback `master`)
- `git diff <base>...HEAD`
2. No commits ahead of base -> stop. Tell user nothing to PR.
3. Not pushed / behind remote -> `git push -u origin <branch>`.
4. Read **all** branch commits (not just latest). Draft:
- **Title** per Title Format. Under 70 chars.
- **Body** per Body…
Apply Volodymyr Pivoshenko personal brand guidelines to content, UI, and visual decisions. Use when drafting or editing pages, blog posts, docs, components, themes, or assets that should match pivoshenko.dev style.
# Pivoshenko Brand Guidelines
Keep output aligned with pivoshenko style.
## Workflow
1. Read [`references/brand-system.md`](references/brand-system.md).
2. Pick artifact type: `ui`, `content`, `theme`, `mixed`.
3. Apply matching rules from reference.
4. Run quality checklist before return.
## Default Rules
- Minimal, technical, practical.
- Monospace-first UI (`JetBrains Mono` style). Compact density.
- Neutral stone surfaces for product UI. Accent colors only with intent.
- Factual + direct copy. No hype / ma…
Fetch the latest base branch and rebase (or merge) the current branch onto it, surfacing conflicts clearly. Use when the user asks to sync, rebase, update from main, pull latest changes, or /sync-branch. Runs immediately without asking for confirmation.
# Sync Branch
Bring current branch up to date with base. Rebase default. Merge on request. Surface conflicts clean.
## Workflow
1. Parallel:
- `git status --porcelain`
- `git branch --show-current`
- `git rev-parse --abbrev-ref --symbolic-full-name @{u}` (upstream if any)
2. Pick base: default `main`. Fall back `master` if no `main`. User names other -> use verbatim.
3. Dirty tree -> stash: `git stash push -u -m "sync-branch auto-stash"`. Remember to pop. Stash unsafe (e.g. unresolved merge) -> stop + t…