From github
This skill should be used when the user wants to develop a feature using a Git-based workflow: creating a branch, staging files, writing a commit, pushing to remote, and opening a pull request. Guides the full flow from an empty working tree or a branch with uncommitted changes. Activates on: "git", "feature", "branch", "pull request", "pr", "new branch", "create branch", "open pr", "submit pr", "feature branch", "commit", "stage", "push", "branch feature", "aprire pr", "pull request", "nuova branch", "creare branch", "fare commit", "pushare", "aprire pull request".
npx claudepluginhub fabn/claude-plugins --plugin githubThis skill uses the workspace's default tool permissions.
Guides the full feature development workflow: branch → stage → commit → push → PR. Reads project config from CLAUDE.md and uses Git MCP tools for all local operations.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Guides the full feature development workflow: branch → stage → commit → push → PR. Reads project config from CLAUDE.md and uses Git MCP tools for all local operations.
mcp__git__*): git_branch, git_status, git_diff_unstaged, git_diff_staged, git_log, git_add, git_commit, git_create_branch, git_checkoutmcp__github__*): create_pull_request, search_issues, list_issues, projects_listgit push -u origin <branch> (push to remote — NOT push_files); gh project item-edit (conditional board update)Read the project's CLAUDE.md (in the current directory) and look for a <!-- github-plugin-config --> block:
<!-- github-plugin-config -->
<!-- github_main_branch: main -->
<!-- github_branch_prefix: feature -->
Extract:
github_main_branch — default maingithub_branch_prefix — default featuregithub_project_number — optional; used in Step 8a for board status updategithub_project_owner — optional; used in Step 8a for board status updateIf no CLAUDE.md or no config block, proceed with defaults silently.
Run mcp__git__git_branch() to list branches and identify the current branch.
Run mcp__git__git_status() to get the working tree state.
Use this to determine which path to take in Step 3.
If on the main branch (github_main_branch):
feature (default from github_branch_prefix)fixdocschore<type>/<kebab-case-description>
feature/add-user-avatar-uploadmcp__git__git_create_branch(branch_name) + mcp__git__git_checkout(branch_name)If already on a feature branch:
Ask via AskUserQuestion:
<current-branch>" (recommended)If user chooses to create a new branch, follow the same flow as above.
Run mcp__git__git_diff_unstaged() to show unstaged changes.
If there are already staged files, also run mcp__git__git_diff_staged().
Ask the user which files to include in this commit. Show a list and allow selection. If there are both staged and unstaged files, clarify which to include.
mcp__git__git_add(files)mcp__git__git_diff_staged() to confirm what will be committedfeat:, fix:, etc.)mcp__git__git_commit(message)Run via Bash:
git push -u origin <branch-name>
gh auth status and check gh auth login --webgit pull --rebase) or force-push (warn about implications)Ask via AskUserQuestion: "Do you want to link this PR to any issues?"
mcp__github__search_issues or mcp__github__list_issues to find open issues. Show a short list and ask the user to confirm which ones to link.Collect confirmed issue numbers for the PR body.
Collect:
git remote get-url origin via Bash, or askCloses #N for issues this PR resolvesRefs #N for related issues that are not fully closedgithub_main_branch from config (default: main)Confirm title and body with AskUserQuestion before creating.
Call mcp__github__create_pull_request(owner, repo, title, body, head, base).
Do not add "Generated with Claude Code" or any attribution to the PR body.
After the PR is created, check both conditions:
github_project_number is set in CLAUDE.mdIf both conditions are true, ask via AskUserQuestion:
"Move linked issue(s) to 'In review' on the project board?"
mcp__github__projects_list (list_project_fields), find the "In review" option ID, and run:
gh project item-edit --project-id <project_id> --id <item_id> --field-id <status_field_id> --single-select-option-id <in_review_option_id>
Report which issues were updated.Print a summary:
Feature workflow complete
--------------------------
Branch: feature/add-user-avatar-upload
Commit: "Add avatar upload to user profile"
PR: https://github.com/owner/repo/pull/42
Issues: Closes #17, Refs #20
Next steps:
- Request a review from a teammate
- Monitor CI: /github:release when ready to ship
Adjust based on what actually happened (e.g., if no issues were linked, omit that line).
| Situation | Action |
|---|---|
| Not in a git repository | Tell the user to run this skill from within a git repo directory |
| Push auth failure | Guide to gh auth status, suggest gh auth login --web |
| Push non-fast-forward | Offer to pull with rebase or warn about force-push consequences |
| Branch already exists | Ask whether to checkout the existing branch or create a new one with a different name |
| Nothing to stage | Tell the user there are no uncommitted changes; suggest checking git status |
| Git MCP not available | Inform the user the git MCP server is not running; suggest running /github:setup |
| GitHub MCP not available | Inform the user the github MCP server is not running; check GITHUB_MCP_TOKEN and re-run /github:setup |
| PR already exists for branch | Report the existing PR URL; ask if they want to push additional commits to it |
| Cannot parse remote URL | Ask the user to provide the GitHub owner and repository name manually |