Set up GitHub repo with GitFlow branching, protection rules, templates, and CI
View on GitHubplugins/kenken/skills/gh-repo-setup/SKILL.md
February 5, 2026
Select agents to install to:
npx add-skill https://github.com/kenkenmain/ken-cc-plugins/blob/main/plugins/kenken/skills/gh-repo-setup/SKILL.md -a claude-code --skill gh-repo-setupInstallation paths:
.claude/skills/gh-repo-setup/# GitHub Repository Setup > **For Claude:** This skill sets up a GitHub repository with GitFlow branching, branch protection, issue/PR templates, and label-triggered CI. ## When to Use - Setting up a new GitHub repository with best practices - Adding GitFlow branching to an existing repo - Configuring branch protection rules - Adding issue/PR templates and CI workflows ## Flow ``` 1. Check gh auth → login if needed 2. Ask: Create new or configure existing repo? 3. If new: Create repo with gh repo create 4. Setup GitFlow branches (main, develop) 5. Configure branch protection (owner can bypass) 6. Configure squash merge only + auto-delete branches 7. Add issue/PR templates 8. Add label-triggered CI workflow 9. Add Dependabot config for github-actions 10. Create .claude/.agents and CLAUDE.md/AGENTS.md symlinks 11. Display summary ``` ## Phase 1: Authentication **Check gh auth status:** ```bash gh auth status ``` If not authenticated, run: ```bash gh auth login ``` Wait for user to complete authentication before proceeding. ## Phase 2: Repo Selection **Parse arguments first:** - If `--existing` flag is present: Skip to "If Configure Existing" section - If repo name is provided as argument: Use it (don't prompt for name) - Otherwise: Ask user for mode **Ask user using AskUserQuestion (only if no --existing flag):** | Header | Question | Options | | ----------- | ---------------------------------------- | -------------------------------------------- | | "Repo mode" | "Create new repo or configure existing?" | "Create new repo", "Configure existing repo" | ### If Create New Repo: **Ask for details:** | Header | Question | Options | | ------------ | --------------------------------------- | ------------------- | | "Visibility" | "Should the repo be public or private?" | "public", "private" | **Get repo name from arguments or ask:**