GitHub Repository Management
Rules
- •Secrets: Do not echo, log, or include any token or secret in output, commands, or file contents. GitHub MCP handles auth.
- •Destructive actions: Ask for confirmation before
git push --force,git branch -D, deleting a repo, or overwriting remote history. - •Default branch: Prefer
main; usemasteronly when the repo already uses it. - •Commits: Use Conventional Commits (e.g.
feat:,fix:,docs:).
Capabilities
- •Run git commands locally (init, add, commit, push, branch, checkout, etc.).
- •Operate on GitHub via GitHub MCP only: create repos, get repo info, list/create/merge PRs, manage branches. Do not use REST API or GITHUB_TOKEN directly.
Create a repo
When the user asks to "create a repo" or "create a GitHub repository":
- •
Create on GitHub (GitHub MCP only):
- •Use GitHub MCP
create_repository(or equivalent) withname, optionaldescription,private(default from user intent).
- •Use GitHub MCP
- •
Set origin locally (if already in a git repo):
bashgit remote add origin https://github.com/<owner>/<repo>.git
If
originexists and should point to the new repo, ask before changing it. - •
If no local repo yet:
bashgit init git remote add origin https://github.com/<owner>/<repo>.git
- •
First push (after at least one commit):
bashgit push -u origin main
Use
mainunless the GitHub repo was created with a different default branch.
Push code
When the user asks to "push code" or "push to GitHub":
- •Ensure git repo exists: Run
git status. If not a repo, ask whether togit initand set remote. - •Check remote:
git remote -v. If noorigin, ask for repo URL or create repo first. - •Commit cleanly:
- •
git statusto see changes. - •Stage:
git add <paths>orgit add -Aif user intends all changes. - •Commit with a conventional message:
git commit -m "type(scope): description". - •If there are uncommitted changes and user said "push", offer to commit first; do not force-push without asking.
- •
- •Push:
git push origin <branch>. Default branch ismain. If upstream not set:git push -u origin main.
Get repo info
When the user asks to "get repo info", "repo details", or "show repository":
- •Identify repo: From
git remote get-url origin(owner/repo) or user-provided owner/name. - •Fetch via GitHub MCP: Use MCP tools to get repository details (e.g. get repo, list branches, list PRs). Summarize: name, description, default branch, visibility, stars/forks if available, clone URL.
Branches
- •Create branch:
git checkout -b <branch-name>then push:git push -u origin <branch-name>. - •Switch branch:
git checkout <branch>orgit switch <branch>. - •Delete branch: Local
git branch -d <branch>; remote delete only after user confirmation:git push origin --delete <branch>.
Pull requests
- •Open PR: Use GitHub MCP to create a pull request (
head,basedefaultmain,title,body). - •List PRs: Use GitHub MCP to list PRs; summarize by number, title, state, author.
- •Merge: Use GitHub MCP to merge; confirm with user before merging.
Conventional commit messages
Use this format: type(scope): short description.
| Type | Use for |
|---|---|
feat | New feature |
fix | Bug fix |
docs | Documentation only |
style | Formatting, no code change |
refactor | Code change, no feature/fix |
test | Adding or updating tests |
chore | Build, tooling, deps |
Examples:
- •
feat(auth): add login endpoint - •
fix(api): correct date parsing - •
docs: update README setup steps
Summary checklist
- •GitHub operations: GitHub MCP only (no REST API, no GITHUB_TOKEN in commands).
- •Confirm before force push, branch delete, or repo delete.
- •Default branch:
main. - •All commits: conventional style.