From git-town-workflow
Initialize git-town in current repository with fork-aware configuration. One-time setup.
How this skill is triggered — by the user, by Claude, or both
Slash command
/git-town-workflow:setup [--check][--check]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
<!-- ⛔⛔⛔ MANDATORY: READ THIS ENTIRE FILE BEFORE ANY ACTION ⛔⛔⛔ -->
Run this ONCE per repository to configure git-town.
Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
brew install git-town)gh auth login)TodoWrite with todos:
- "[Setup] Check git-town installation" | in_progress
- "[Setup] Check GitHub CLI" | pending
- "[Setup] Detect repository configuration" | pending
- "[Setup] GATE - Confirm setup options" | pending
- "[Setup] Run git-town interactive setup" | pending
- "[Setup] Configure fork-specific settings" | pending
- "[Setup] Verify configuration" | pending
- "[Setup] Install enforcement hooks" | pending
/usr/bin/env bash << 'CHECK_DEPS_EOF'
echo "=== DEPENDENCY CHECK ==="
# git-town
if which git-town &>/dev/null; then
echo "✅ git-town: $(git-town --version)"
else
echo "❌ git-town: NOT INSTALLED"
echo " Run: brew install git-town"
fi
# gh CLI
if which gh &>/dev/null; then
echo "✅ gh CLI: $(gh --version | head -1)"
if gh auth status &>/dev/null; then
echo "✅ gh auth: authenticated"
else
echo "❌ gh auth: NOT authenticated"
echo " Run: gh auth login"
fi
else
echo "❌ gh CLI: NOT INSTALLED"
echo " Run: brew install gh"
fi
# git
echo "✅ git: $(git --version)"
CHECK_DEPS_EOF
/usr/bin/env bash << 'DETECT_REPO_EOF'
echo "=== REPOSITORY DETECTION ==="
# Check if in git repo
if ! git rev-parse --git-dir &>/dev/null; then
echo "❌ FATAL: Not in a git repository"
exit 1
fi
# Remotes
echo "--- Remotes ---"
git remote -v
# Branches
echo "--- Branches ---"
git branch -a | head -10
# Current git-town config
echo "--- Current git-town config ---"
git town config 2>/dev/null || echo "(not configured)"
# Main branch detection
echo "--- Main branch ---"
git config init.defaultBranch 2>/dev/null || echo "main (default)"
DETECT_REPO_EOF
AskUserQuestion with questions:
- question: "How should git-town sync branches?"
header: "Sync Strategy"
options:
- label: "Merge (Recommended for most teams)"
description: "git town sync uses merge commits"
- label: "Rebase (Clean history)"
description: "git town sync uses rebase"
multiSelect: false
AskUserQuestion with questions:
- question: "What's the main branch in this repository?"
header: "Main Branch"
options:
- label: "main"
description: "Modern default"
- label: "master"
description: "Legacy default"
- label: "Other"
description: "Custom main branch name"
multiSelect: false
AskUserQuestion with questions:
- question: "Is this a fork of another repository?"
header: "Fork Setup"
options:
- label: "Yes, configure fork workflow"
description: "Enable upstream sync, set dev-remote to origin"
- label: "No, single-origin repository"
description: "Standard setup without upstream"
multiSelect: false
git town config setup
/usr/bin/env bash << 'SETUP_EOF'
# Set main branch
git config git-town.main-branch main # or master
# Set sync strategy
git config git-town.sync-feature-strategy merge # or rebase
# Enable push for new branches
git config git-town.push-new-branches true
# Set push hook (prompt before push)
git config git-town.push-hook true
# For forks: enable upstream sync
if git remote get-url upstream &>/dev/null; then
git config git-town.sync-upstream true
git config git-town.dev-remote origin
echo "✅ Fork workflow configured"
fi
SETUP_EOF
/usr/bin/env bash -c 'git town config'
Expected output for fork workflow:
Branches:
main branch: main
perennial branches: (none)
...
Hosting:
hosting platform: github
dev-remote: origin
...
Sync:
sync-feature-strategy: merge
sync-upstream: true
...
AskUserQuestion with questions:
- question: "Install Claude Code hooks to enforce git-town usage?"
header: "Enforcement"
options:
- label: "Yes, install hooks (Recommended)"
description: "Blocks: git checkout -b, git pull, git merge"
- label: "No, skip hooks"
description: "Allow raw git commands"
multiSelect: false
If "Yes": Run /git-town-workflow:tether install
✅ git-town installed and configured
✅ Main branch identified
✅ Sync strategy set
✅ Fork workflow configured (if applicable)
✅ Enforcement hooks installed (optional)
Next steps:
- Start contributing: /git-town-workflow:contribute feat/my-feature
- View branch hierarchy: git town branch
- Sync all branches: git town sync --all
--check - Only verify current setup, don't change anything# Full setup wizard
/git-town-workflow:setup
# Check current configuration
/git-town-workflow:setup --check
| Issue | Cause | Solution |
|---|---|---|
| git-town not found | git-town not installed | brew install git-town |
| gh auth failed | GitHub CLI not authenticated | gh auth login |
| Not in a git repo | Missing .git directory | Run from within a git repository |
| No remotes configured | Repo has no remotes | git remote add origin <url> |
| Upstream not found | Fork not configured | Run /git-town-workflow:scion first |
| Config not persisting | Git config scope issue | Check --global vs --local scope |
After this skill completes, reflect before closing the task:
Do NOT defer. The next invocation inherits whatever you leave behind.
npx claudepluginhub terrylica/cc-skills --plugin git-town-workflowCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.