Contributor-First PR Merge
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
Create issues, PRs, clone repos, and manage git workflows. An agent skill from initializ/forge.
$ npx skills add initializ/forge --skill github -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install initializ/forge github --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/initializ/forge.git skills-src && mkdir -p .claude/skills && cp -r skills-src/forge-skills/local/embedded/github .claude/skills/github && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "github" agent skill from https://github.com/initializ/forge/tree/main/forge-skills/local/embedded/github into .claude/skills/github/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/initializ/forge/tree/main/forge-skills/local/embedded/githubType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add initializ/forge --skill github -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install initializ/forge github --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/initializ/forge.git skills-src && mkdir -p .agents/skills && cp -r skills-src/forge-skills/local/embedded/github .agents/skills/github && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "github" agent skill from https://github.com/initializ/forge/tree/main/forge-skills/local/embedded/github into .agents/skills/github/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add initializ/forge --skill github -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install initializ/forge github --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/initializ/forge.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/forge-skills/local/embedded/github .cursor/skills/github && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "github" agent skill from https://github.com/initializ/forge/tree/main/forge-skills/local/embedded/github into .cursor/skills/github/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/initializ/forge.git --path forge-skills/local/embedded/github--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add initializ/forge --skill github -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install initializ/forge github --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/initializ/forge.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/forge-skills/local/embedded/github .gemini/skills/github && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "github" agent skill from https://github.com/initializ/forge/tree/main/forge-skills/local/embedded/github into .gemini/skills/github/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install initializ/forge githubInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add initializ/forge --skill github -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/initializ/forge.git skills-src && mkdir -p .github/skills && cp -r skills-src/forge-skills/local/embedded/github .github/skills/github && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "github" agent skill from https://github.com/initializ/forge/tree/main/forge-skills/local/embedded/github into .github/skills/github/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add initializ/forge --skill github -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install initializ/forge github --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/initializ/forge.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/forge-skills/local/embedded/github .opencode/skills/github && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "github" agent skill from https://github.com/initializ/forge/tree/main/forge-skills/local/embedded/github into .opencode/skills/github/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
githubCreate issues, PRs, clone repos, and manage git workflows. An agent skill from initializ/forge.
GitHub is an agent skill from initializ/forge. Create issues, PRs, clone repos, and manage git workflows
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including scripts (for example `scripts/github-branch-name-from-ticket.sh`, `scripts/github-checkout.sh` and `scripts/github-clone.sh`).
It sits in Development, covering Git workflow. It works with GitHub and Git. The repository describes itself as: Forge is the open-source runtime for Anthropic's Agent Skills standard — built for the agent that runs next to a service, in your environment, on infrastructure you already… The licence is Apache-2.0.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 3c608d8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 13 files in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
GitHub loads about 3.1k tokens when it runs. Until then it costs about 16 tokens; SKILL.md has 1,597 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from initializ/forge at commit 3c608d8, republished under its Apache-2.0 licence (© initializ). 1,597 words, ~3,147 tokens.
.claude/skills/github/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.You have access to GitHub and git tools. You MUST use these tools for all git and GitHub operations. Do NOT use cli_execute or bash to run git commands directly.
When asked to clone, checkout, or work with a GitHub repository, ALWAYS start by calling github_clone. This is the ONLY way to clone repositories. Do NOT attempt to use cli_execute, bash, or any other tool to run git clone directly.
The repo parameter accepts any of these formats:
owner/repo (e.g. initializ-mk/openclaw)git@github.com:owner/repo.githttps://github.com/owner/repo.gitRequired workflow for code changes:
github_clone — clone the repository (auto-creates a feature branch)directory_tree, grep_search, glob_search, code_agent_read to understand the codebasecode_agent_edit or code_agent_write to make changesgithub_status — review what changed before committinggithub_commit — stage and commit changesgithub_push — push the feature branch to remotegithub_create_pr — create a pull requestFile path convention:
github_clone clones repos into workspace/. The returned project_dir (e.g. openclaw) is the directory name inside workspace/.project_dir (github tools, code-agent tools) accept BOTH openclaw and workspace/openclaw — the workspace/ prefix is stripped automatically.directory_tree, grep_search, glob_search use workspace/<project_dir> as the path (e.g. workspace/openclaw).Workflow completion rule:
When asked to fix a bug or make changes, you must drive the full sequence: explore → understand → edit → commit → push → create PR. Do NOT stop after exploration to report findings. Complete the full sequence in one session.
Exceptions where pausing is correct:
linear_get_issue call (or any external ticket) and the ticket leaves a material question unanswered, post a linear_add_comment (or the equivalent for your tracker) asking the question, then stop and wait. Do NOT guess on irreversible decisions like API contract shape, data model changes, or user-facing copy.code_plan_create returns complexity: "high" or non-empty risks, present the plan to the user and confirm before writing code.Outside these exceptions, complete all steps in one session.
Exploration strategy — bug fixes:
directory_tree to understand project structure.grep_search for the error message, config key, or symptom from the bug description.Exploration strategy — features and refactors:
directory_tree to understand project structure.grep_search for existing patterns similar to what you need to add (2-3 searches).Do NOT:
Branch safety rules:
github_clone automatically creates a feature branch after cloning.github_commit, github_push, and github_checkout refuse to operate on main/master.github_status before committing to review what changed.When working from a ticket, prefer to:
github_branch_name_from_ticket first with the ticket ID and title.branch to github_clone via its branch parameter.This produces consistent naming across runs. Do not invent branch names like claude/fix-thing or agent-branch-1.
Ticket-driven PR conventions:
When the work originates from a Linear ticket or GitHub issue:
github_branch_name_from_ticket to generate a conventional branch name from the identifier and title. Do not invent your own naming scheme.ticket_id (and ticket_url if available) to github_create_pr. The skill builds the PR body with a back-link automatically.<type>(<scope>): <short description> [<ticket-id>] — examples below.github_create_pr returns the PR URL, post a comment back on the originating ticket with the PR URL using the appropriate tracker skill. Do NOT post the PR URL into the PR itself as a comment.Title examples:
feat(billing): add invoice creation endpoint [ENG-123]fix(auth): reject empty refresh tokens [ENG-456]chore(deps): bump go to 1.25.3 [INFRA-7]If no clear conventional-commit type applies, use chore. Never invent a type like wip or tmp.
Pagination:
For tools that return lists (github_list_prs, github_list_stargazers, github_list_forks, github_pr_author_profiles, github_stargazer_profiles), use page (1-based) and per_page (default 30, max 100) parameters. The response includes a pagination object with has_next_page — if true, increment page to fetch the next batch.
Clone a GitHub repository and create a feature branch.
Input: repo (string: owner/repo, SSH URL, or HTTPS URL), branch (string, optional: branch name — auto-generated if omitted), project_dir (string, optional: directory name — defaults to repo name)
Output: {status, repo, branch, project_dir}
Show git status for a cloned project.
Input: project_dir (string: project directory name)
Output: {branch, modified[], staged[], untracked[], ahead, behind}
Stage and commit changes on a feature branch. Refuses to commit on main/master.
Input: project_dir (string), message (string: commit message), files (string[], optional: specific files to stage — stages all if omitted)
Output: {sha, branch, files_changed}
Push a feature branch to the remote. Refuses to push main/master.
Input: project_dir (string), branch (string, optional: defaults to current branch)
Output: {status, branch, sha, remote}
Switch to or create a branch. Refuses to switch to main/master.
Input: project_dir (string), branch (string: target branch name), create (boolean, optional: create new branch — default false)
Output: {status, branch}
Generate a conventional branch name from a ticket identifier and title. Use this instead of inventing branch names manually — it ensures consistency across agents and humans. No network call.
Input: ticket_id (string), title (string), prefix (string, optional: feat/fix/chore/docs/refactor, default feat)
Output: {branch: "feat/eng-123-add-invoice-creation-endpoint"}
Create a GitHub issue.
Input: repo (string), title (string), body (string) Output: Issue URL
List open issues for a repository.
Input: repo (string), state (string: open/closed) Output: List of issues with number, title, and state
Create a pull request. When ticket_id is supplied, the title is auto-suffixed with [<ticket_id>] (if not already present) and a Tracks: back-link footer is appended to the body — the LLM does not need to format the back-link manually.
Input:
| Parameter | Type | Required | Description |
|---|---|---|---|
| repo | string | yes | owner/repo, SSH URL, or HTTPS URL |
| title | string | yes | PR title |
| body | string | yes | PR body (markdown) |
| head | string | yes | Source branch |
| base | string | no | Target branch. Default main. |
| ticket_id | string | no | External ticket identifier (e.g. ENG-123). Appended to title and PR body if not already present. |
| ticket_url | string | no | Full URL to the ticket. When provided alongside ticket_id, added as a back-link in the PR body as Tracks: [<ticket_id>](<ticket_url>). |
Output: Pull request URL
List pull requests for a repository with pagination.
Input: repo (string: owner/repo, SSH URL, or HTTPS URL), state (string: open/closed/all, default: open), page (int, default: 1), per_page (int, default: 30, max: 100)
Output: {repo, state, pull_requests: [{number, title, state, user, created_at, updated_at, head_ref, base_ref, url}], pagination: {page, per_page, count, has_next_page}}
Get a GitHub user's public profile information.
Input: username (string: GitHub username)
Output: {login, name, email, bio, company, location, blog, public_repos, followers, following, created_at, url}
List stargazers (users who starred) for a repository with pagination.
Input: repo (string: owner/repo, SSH URL, or HTTPS URL), page (int, default: 1), per_page (int, default: 30, max: 100)
Output: {repo, stargazers: [{login, url}], pagination: {page, per_page, count, has_next_page}}
List forks of a repository with pagination.
Input: repo (string: owner/repo, SSH URL, or HTTPS URL), sort (string: newest/oldest/stargazers, default: newest), page (int, default: 1), per_page (int, default: 30, max: 100)
Output: {repo, forks: [{full_name, owner, created_at, updated_at, stargazers_count, url}], pagination: {page, per_page, count, has_next_page}}
List PR authors and fetch their full profiles (compound 2-step tool). First fetches PRs, then fetches the profile of each unique author.
Input: repo (string: owner/repo, SSH URL, or HTTPS URL), state (string: open/closed/all, default: open), page (int, default: 1), per_page (int, default: 30, max: 100)
Output: {repo, state, profiles: [{login, name, email, bio, company, location, blog, public_repos, followers, following, created_at, url, pr_count}], total_prs_scanned, unique_authors, pagination: {page, per_page, count, has_next_page}}
List stargazers and fetch their full profiles (compound 2-step tool). First fetches stargazers, then fetches the profile of each unique user.
Input: repo (string: owner/repo, SSH URL, or HTTPS URL), page (int, default: 1), per_page (int, default: 30, max: 100)
Output: {repo, profiles: [{login, name, email, bio, company, location, blog, public_repos, followers, following, created_at, url}], total_stargazers_scanned, unique_users, pagination: {page, per_page, count, has_next_page}}
© initializ, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 13 other files (scripts) in forge-skills/local/embedded/github of initializ/forge.
Open the folder on GitHubat commit 3c608d8
GitHub next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| GitHub this skillinitializ/forge | 223 | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Contributor-First PR MergeHKUDS/OpenHarness | 16k | 1 repos | ~847 | Automated safety check: Pass | MIT | |
| Create Pull Requestcline/cline | 70k | 1 repos | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Release Bumpjamiepine/voicebox | 57k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Creating Description For Gh PRredis/jedis | 12k | — | ~838 | Automated safety check: Pass | MIT | |
| Create Pull Request with Work Item IDmakeplane/plane | 60k | — | ~824 | Automated safety check: Pass | AGPL-3.0 |
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
cline/cline
Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.
jamiepine/voicebox
Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.
redis/jedis
Generate a clear, concise GitHub PR title and description from the diff between two local git branches, and save it to prDescription.md in the repo root.
makeplane/plane
Opens a pull request for the current branch using the repo's template, a work item ID in the title and a description filled in from the actual diff.
remix-run/react-router
Packages finished React Router work into a draft pull request: branch, commit, push, a written PR body and the right GitHub labels.
initializ/forge
Turn a task description and repository into a structured implementation plan (files to create, files to modify, tests to add, risks).
initializ/forge
AI-powered code review for diffs and individual files using LLM analysis
initializ/forge
Scaffold and iterate on standalone Preact + HTM applications with zero build dependencies
initializ/forge
General-purpose coding agent that reads, writes, and edits code, and searches codebases.
initializ/forge
Scaffold and iterate on Vite + React applications. An agent skill from initializ/forge.
initializ/forge
Estimate Kubernetes infrastructure costs by querying cluster node, pod, PVC/PV, and LoadBalancer data, applying cloud pricing models, and producing cost attribution reports with storage and…
Categories
Create issues, PRs, clone repos, and manage git workflows. An agent skill from initializ/forge. GitHub is an agent skill from initializ/forge.
GitHub fits situations like: tasks that involve Git workflow.
Run `npx skills add initializ/forge --skill github -a claude-code`. Or copy the skill folder (forge-skills/local/embedded/github in initializ/forge) into .claude/skills/github in your project. Claude Code loads it when a task matches its description.
Run `npx skills add initializ/forge --skill github -a codex`. Or copy the skill folder (forge-skills/local/embedded/github in initializ/forge) into .agents/skills/github in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add initializ/forge --skill github -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/github, .gemini/skills/github, .github/skills/github and .opencode/skills/github in your project.
Going by SKILL.md and its folder, GitHub needs a shell for the scripts in its folder and the command-line tools its instructions call (git). Our summary lists: A Bash shell.
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
GitHub is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with GitHub: Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars), Create Pull Request (cline/cline, 70k stars), Release Bump (jamiepine/voicebox, 57k stars) and Creating Description For Gh PR (redis/jedis, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
initializ (a GitHub organization) maintains it in initializ/forge, which has 223 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 1, 2026.
Source: initializ/forge on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.