Agent skill

GitHub

by initializ in initializ/forge

Create issues, PRs, clone repos, and manage git workflows. An agent skill from initializ/forge.

Apache-2.0Auto-check passedDevelopment

Install GitHub

skills CLI
$ npx skills add initializ/forge --skill github -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install initializ/forge github --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
github
GitHub stars
223
Token cost
~3.1k tokens
SKILL.md length
1,597 words
Files
14 (incl. scripts)
Skills in repo
15
Repo updated
First seen
Licence
Apache-2.0

At a glance

Create issues, PRs, clone repos, and manage git workflows. An agent skill from initializ/forge.

  • Works in 7 steps: github_clone — clone the repository… → Explore: use directory_tree,… → Edit: use code_agent_edit or… → …
  • Tasks that involve Git workflow
  • SKILL.md covers System Prompt, Tool: github_clone, Tool: github_status and Tool: github_commit, plus 12 more sections
  • Runs Shell scripts from its folder; calls git; reaches github.com

What it does

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.

When your agent uses it

  • Tasks that involve Git workflow

Example prompts

  • “/github”

Requirements

  • A Bash shell

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. github_clone — clone the repository (auto-creates a feature branch)
  2. Explore: use directory_tree, grep_search, glob_search, code_agent_read to understand the codebase
  3. Edit: use code_agent_edit or code_agent_write to make changes
  4. github_status — review what changed before committing
  5. github_commit — stage and commit changes
  6. github_push — push the feature branch to remote
  7. github_create_pr — create a pull request

What it can do on your machine

Read from SKILL.md and the folder at commit 3c608d8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 13 files in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~16
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from initializ/forge at commit 3c608d8, republished under its Apache-2.0 licence (© initializ). 1,597 words, ~3,147 tokens.

Download SKILL.mdSave it as .claude/skills/github/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.
name
github
description
Create issues, PRs, clone repos, and manage git workflows
icon
🐙
category
developer
tags
github, issues, pull-requests, repositories, git, stargazers, forks, users, ticket-driven, linear-compatible

System Prompt

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)
  • SSH URL: git@github.com:owner/repo.git
  • HTTPS URL: https://github.com/owner/repo.git

Required workflow for code changes:

  1. github_clone — clone the repository (auto-creates a feature branch)
  2. Explore: use directory_tree, grep_search, glob_search, code_agent_read to understand the codebase
  3. Edit: use code_agent_edit or code_agent_write to make changes
  4. github_status — review what changed before committing
  5. github_commit — stage and commit changes
  6. github_push — push the feature branch to remote
  7. github_create_pr — create a pull request

File path convention:

  • github_clone clones repos into workspace/. The returned project_dir (e.g. openclaw) is the directory name inside workspace/.
  • ALL tools that accept project_dir (github tools, code-agent tools) accept BOTH openclaw and workspace/openclaw — the workspace/ prefix is stripped automatically.
  • For 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:

  • Ticket-driven mode: if the task originated from a 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 planning: if code_plan_create returns complexity: "high" or non-empty risks, present the plan to the user and confirm before writing code.
  • Genuine ambiguity: if you cannot determine what to change even after thorough exploration, stop and ask. Do not invent a change.

Outside these exceptions, complete all steps in one session.

Exploration strategy — bug fixes:

  1. directory_tree to understand project structure.
  2. grep_search for the error message, config key, or symptom from the bug description.
  3. Trace to the origin: follow the error/value through call sites until you find where it is first produced or validated. Do not stop at the first file that mentions the symptom.
  4. Read what you will change: before editing a function, read its implementation. Before replacing a function call, read both the old and new function to confirm the new one handles the same inputs correctly.
  5. Find a working reference: if similar functionality works elsewhere in the codebase (e.g., another provider, another endpoint), read how it handles the same input. Replicate that approach, not a different one.
  6. Form your hypothesis with evidence, then edit.
  7. Verify your fix: after editing, trace the specific failing input through your new code path. Read the functions your new code calls and confirm they handle the input type that was failing (e.g., objects, not just strings). If your fix adds types but doesn't change runtime behavior, it is wrong.

Exploration strategy — features and refactors:

  1. directory_tree to understand project structure.
  2. grep_search for existing patterns similar to what you need to add (2-3 searches).
  3. Read the file(s) where you will add or modify code.
  4. Follow existing conventions, then edit immediately.

Do NOT:

  • Edit test files first — always fix the source code first, then update tests to match
  • Read files unrelated to the error path or the code you plan to change
  • Pattern-match on function names without reading their implementations
  • Replace a function call with another without verifying both handle the same input types (e.g., objects vs strings)
  • Keep searching after you have traced the error to its origin or found the insertion point
  • Consider a fix complete without tracing the failing input through the new code to confirm it reaches the correct code path

Branch safety rules:

  • All work happens on feature branches — never on main/master.
  • github_clone automatically creates a feature branch after cloning.
  • github_commit, github_push, and github_checkout refuse to operate on main/master.
  • Always use github_status before committing to review what changed.

When working from a ticket, prefer to:

  1. Call github_branch_name_from_ticket first with the ticket ID and title.
  2. Pass the resulting 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:

  1. Use github_branch_name_from_ticket to generate a conventional branch name from the identifier and title. Do not invent your own naming scheme.
  2. Pass ticket_id (and ticket_url if available) to github_create_pr. The skill builds the PR body with a back-link automatically.
  3. The PR title format is: <type>(<scope>): <short description> [<ticket-id>] — examples below.
  4. After 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.

Tool: github_clone

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 full SKILL.md (628 more words)Show less

Tool: github_status

Show git status for a cloned project.

Input: project_dir (string: project directory name) Output: {branch, modified[], staged[], untracked[], ahead, behind}

Tool: github_commit

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}

Tool: github_push

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}

Tool: github_checkout

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}

Tool: github_branch_name_from_ticket

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"}

Tool: github_create_issue

Create a GitHub issue.

Input: repo (string), title (string), body (string) Output: Issue URL

Tool: github_list_issues

List open issues for a repository.

Input: repo (string), state (string: open/closed) Output: List of issues with number, title, and state

Tool: github_create_pr

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:

ParameterTypeRequiredDescription
repostringyesowner/repo, SSH URL, or HTTPS URL
titlestringyesPR title
bodystringyesPR body (markdown)
headstringyesSource branch
basestringnoTarget branch. Default main.
ticket_idstringnoExternal ticket identifier (e.g. ENG-123). Appended to title and PR body if not already present.
ticket_urlstringnoFull 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

Tool: github_list_prs

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}}

Tool: github_get_user

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}

Tool: github_list_stargazers

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}}

Tool: github_list_forks

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}}

Tool: github_pr_author_profiles

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}}

Tool: github_stargazer_profiles

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

Files

SKILL.md and 13 other files (scripts) in forge-skills/local/embedded/github of initializ/forge.

  • SKILL.md
  • scripts/github-branch-name-from-ticket.sh
  • scripts/github-checkout.sh
  • scripts/github-clone.sh
  • scripts/github-commit.sh
  • scripts/github-create-pr.sh
  • scripts/github-get-user.sh
  • scripts/github-list-forks.sh
  • scripts/github-list-prs.sh
  • scripts/github-list-stargazers.sh
  • scripts/github-pr-author-profiles.sh
  • scripts/github-push.sh
  • scripts/github-stargazer-profiles.sh
  • scripts/github-status.sh

Open the folder on GitHubat commit 3c608d8

Compare with similar skills

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.

GitHub compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
GitHub this skillinitializ/forge223—~3.1kAutomated safety check: PassApache-2.0
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT
Create Pull Requestcline/cline70k1 repos~1.6kAutomated safety check: PassApache-2.0
Release Bumpjamiepine/voicebox57k—~1.1kAutomated safety check: PassMIT
Creating Description For Gh PRredis/jedis12k—~838Automated safety check: PassMIT
Create Pull Request with Work Item IDmakeplane/plane60k—~824Automated safety check: PassAGPL-3.0

Similar skills

  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed
  • 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.

    70k GitHub starsUsed in 1 repo~1.6k tokens
    DevelopmentAuto-check passed
  • Release Bump

    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.

    57k GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Official

    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.

    12k GitHub stars~838 tokensUpdated today
    DevelopmentAuto-check passed
  • 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.

    60k GitHub stars~824 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • React Router Pull Request Creator

    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.

    57k GitHub stars~2.5k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from initializ/forge

All 15 skills in this repo
  • Code Plan

    initializ/forge

    Turn a task description and repository into a structured implementation plan (files to create, files to modify, tests to add, risks).

    223 GitHub stars~1.9k tokensUpdated 6 days ago
    Auto-check passed
  • Code Review

    initializ/forge

    AI-powered code review for diffs and individual files using LLM analysis

    223 GitHub stars~3k tokensUpdated 6 days ago
    Auto-check passed
  • Codegen HTML

    initializ/forge

    Scaffold and iterate on standalone Preact + HTM applications with zero build dependencies

    223 GitHub stars~1.5k tokensUpdated 6 days ago
    Auto-check passed
  • Code Agent

    initializ/forge

    General-purpose coding agent that reads, writes, and edits code, and searches codebases.

    223 GitHub stars~2.5k tokensUpdated 6 days ago
    Auto-check: warnings
  • Codegen React

    initializ/forge

    Scaffold and iterate on Vite + React applications. An agent skill from initializ/forge.

    223 GitHub stars~1.8k tokensUpdated 6 days ago
    Auto-check passed
  • K8s Cost Visibility

    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…

    223 GitHub stars~2.7k tokensUpdated 6 days ago
    Auto-check passed

Works with

Categories

Questions about GitHub

What does GitHub do?

Create issues, PRs, clone repos, and manage git workflows. An agent skill from initializ/forge. GitHub is an agent skill from initializ/forge.

When should I use GitHub?

GitHub fits situations like: tasks that involve Git workflow.

How do I install GitHub in Claude Code?

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.

How do I install GitHub in Codex?

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.

Can I use GitHub in Cursor, Gemini CLI or GitHub Copilot?

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.

What does GitHub need to run?

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.

Does GitHub access the network?

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.

Is GitHub safe to install?

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.

What licence does GitHub use?

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.

How many tokens does GitHub use?

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.

What are the alternatives to GitHub?

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.

Who maintains GitHub?

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.