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.
Analyzes the current branch's changes since it diverged from base and opens a pull request through the GitHub CLI with an auto-generated, standardized description.
$ npx skills add UfoMiao/zcf --skill zcf-pr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install UfoMiao/zcf zcf-pr --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/UfoMiao/zcf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/zcf-pr .claude/skills/zcf-pr && 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 "zcf-pr" agent skill from https://github.com/UfoMiao/zcf/tree/main/.claude/skills/zcf-pr into .claude/skills/zcf-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zcf-pr", 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/UfoMiao/zcf/tree/main/.claude/skills/zcf-prType 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 UfoMiao/zcf --skill zcf-pr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install UfoMiao/zcf zcf-pr --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UfoMiao/zcf.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/zcf-pr .agents/skills/zcf-pr && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "zcf-pr" agent skill from https://github.com/UfoMiao/zcf/tree/main/.claude/skills/zcf-pr into .agents/skills/zcf-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zcf-pr", 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 UfoMiao/zcf --skill zcf-pr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install UfoMiao/zcf zcf-pr --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UfoMiao/zcf.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/zcf-pr .cursor/skills/zcf-pr && 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 "zcf-pr" agent skill from https://github.com/UfoMiao/zcf/tree/main/.claude/skills/zcf-pr into .cursor/skills/zcf-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zcf-pr", 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/UfoMiao/zcf.git --path .claude/skills/zcf-pr--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 UfoMiao/zcf --skill zcf-pr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install UfoMiao/zcf zcf-pr --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UfoMiao/zcf.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/zcf-pr .gemini/skills/zcf-pr && 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 "zcf-pr" agent skill from https://github.com/UfoMiao/zcf/tree/main/.claude/skills/zcf-pr into .gemini/skills/zcf-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zcf-pr", 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 UfoMiao/zcf zcf-prInstalls 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 UfoMiao/zcf --skill zcf-pr -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/UfoMiao/zcf.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/zcf-pr .github/skills/zcf-pr && 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 "zcf-pr" agent skill from https://github.com/UfoMiao/zcf/tree/main/.claude/skills/zcf-pr into .github/skills/zcf-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zcf-pr", 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 UfoMiao/zcf --skill zcf-pr -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install UfoMiao/zcf zcf-pr --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UfoMiao/zcf.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/zcf-pr .opencode/skills/zcf-pr && 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 "zcf-pr" agent skill from https://github.com/UfoMiao/zcf/tree/main/.claude/skills/zcf-pr into .opencode/skills/zcf-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zcf-pr", 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.
zcf-prAnalyzes the current branch's changes since it diverged from base and opens a pull request through the GitHub CLI with an auto-generated, standardized description.
Run as /zcf-pr with optional base branch, draft and title flags, the skill first checks that the working directory is a git repository and that the base branch exists, then diffs the current branch against it. It categorizes the changes by type and scope automatically, generates a pull request title (unless one was supplied), and builds a full description from a template, with support for both English and Chinese output.
Once the description is ready, it checks whether the current branch already exists on the remote, pushes it if not, and creates the pull request through the GitHub CLI using the generated title and description, respecting the draft flag when set.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 63cb2d0. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Read(**)Exec(gitpnpmnodedatecatgh)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From 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.
ZCF Pull Request Creator loads about 2.9k tokens when it runs. Until then it costs about 15 tokens; SKILL.md has 358 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); files beside SKILL.md are not scanned.
The full file from UfoMiao/zcf at commit 63cb2d0, republished under its MIT licence (© UfoMiao). 358 words, ~2,942 tokens.
.claude/skills/zcf-pr/SKILL.md (or your agent's skills folder).Create pull request based on current branch changes and generate standardized PR description.
/zcf-pr [--base <branch>] [--draft] [--title <title>]--base <branch>: Target base branch (default: main)--draft: Create as draft pull request--title <title>: Custom PR titleYou are a professional pull request management assistant responsible for:
Parse arguments: $ARGUMENTS
BASE_BRANCH="main"
IS_DRAFT=false
CUSTOM_TITLE=""
# Parse arguments
while [[ $# -gt 0 ]]; do
case $1 in
--base)
BASE_BRANCH="$2"
shift 2
;;
--draft)
IS_DRAFT=true
shift
;;
--title)
CUSTOM_TITLE="$2"
shift 2
;;
*)
echo "❌ Unknown parameter: $1"
echo "Usage: /zcf-pr [--base <branch>] [--draft] [--title <title>]"
echo "Examples:"
echo " /zcf-pr # Create PR to main"
echo " /zcf-pr --base develop # Create PR to develop"
echo " /zcf-pr --draft # Create draft PR"
echo " /zcf-pr --title 'Bug Fix' # Custom title"
exit 1
;;
esac
done
echo "🚀 Creating PR from current branch to $BASE_BRANCH"
if [ "$IS_DRAFT" = true ]; then
echo "📝 Creating as draft PR"
fi
if [ -n "$CUSTOM_TITLE" ]; then
echo "📝 Custom title: $CUSTOM_TITLE"
fi# Check if we're in a git repository
if [ ! -d ".git" ]; then
echo "❌ Error: Not in a git repository"
exit 1
fi
# Get current branch
CURRENT_BRANCH=$(git branch --show-current)
if [ -z "$CURRENT_BRANCH" ]; then
echo "❌ Error: Could not determine current branch"
exit 1
fi
# Check if current branch is same as base branch
if [ "$CURRENT_BRANCH" = "$BASE_BRANCH" ]; then
echo "❌ Error: Cannot create PR from $BASE_BRANCH to $BASE_BRANCH"
echo "Please switch to a feature branch first"
exit 1
fi
# Check for uncommitted changes
if ! git diff --quiet || ! git diff --cached --quiet; then
echo "⚠️ Warning: You have uncommitted changes"
echo "Please commit your changes before creating a PR"
echo ""
git status --short
echo ""
echo "Run the following commands to commit your changes:"
echo " git add ."
echo " git commit -m 'Your commit message'"
exit 1
fi
echo "✅ Branch status OK: $CURRENT_BRANCH"# Check if base branch exists
if ! git rev-parse --verify "$BASE_BRANCH" >/dev/null 2>&1; then
echo "❌ Error: Base branch '$BASE_BRANCH' does not exist"
exit 1
fi
# Get commit history since divergence
echo "📊 Analyzing changes from $BASE_BRANCH..."
# Find common ancestor
MERGE_BASE=$(git merge-base "$BASE_BRANCH" HEAD)
if [ -z "$MERGE_BASE" ]; then
echo "❌ Error: Could not find common ancestor with $BASE_BRANCH"
exit 1
fi
# Get commits since divergence
COMMITS=$(git log $MERGE_BASE..HEAD --oneline)
COMMIT_COUNT=$(echo "$COMMITS" | wc -l | tr -d ' ')
if [ "$COMMIT_COUNT" -eq 0 ]; then
echo "❌ Error: No commits found since divergence from $BASE_BRANCH"
exit 1
fi
echo "📝 Found $COMMIT_COUNT commit(s):"
echo "$COMMITS"
echo ""
# Analyze file changes
echo "📁 File change statistics:"
git diff --stat $MERGE_BASE..HEAD
# Get changed files
CHANGED_FILES=$(git diff --name-only $MERGE_BASE..HEAD)
echo ""
echo "📋 Changed files:"
echo "$CHANGED_FILES"# Analyze changes to determine type and scope
echo ""
echo "🔍 Analyzing change categories..."
BUG_FIX=false
NEW_FEATURE=false
BREAKING_CHANGE=false
DOCUMENTATION=false
TESTS=false
# Analyze commits for change indicators
if echo "$COMMITS" | grep -E "(fix|bug|error|issue|problem)" >/dev/null; then
BUG_FIX=true
fi
if echo "$COMMITS" | grep -E "(feat|add|new|create|implement)" >/dev/null; then
NEW_FEATURE=true
fi
if echo "$COMMITS" | grep -E "(break|change|remove|delete|major)" >/dev/null; then
BREAKING_CHANGE=true
fi
if echo "$CHANGED_FILES" | grep -E "\.(md|txt|rst)$" >/dev/null; then
DOCUMENTATION=true
fi
if echo "$CHANGED_FILES" | grep -E "(test|spec)\." >/dev/null; then
TESTS=true
fi
# Show analysis results
echo "📊 Change type analysis:"
if [ "$BUG_FIX" = true ]; then echo " ✅ Bug fix detected"; fi
if [ "$NEW_FEATURE" = true ]; then echo " ✅ New feature detected"; fi
if [ "$BREAKING_CHANGE" = true ]; then echo " ✅ Breaking change detected"; fi
if [ "$DOCUMENTATION" = true ]; then echo " ✅ Documentation update detected"; fi
if [ "$TESTS" = true ]; then echo " ✅ Test updates detected"; fi# Generate PR title
if [ -n "$CUSTOM_TITLE" ]; then
PR_TITLE="$CUSTOM_TITLE"
else
# Auto-generate title from first commit
FIRST_COMMIT=$(echo "$COMMITS" | tail -1)
# Clean up commit message for PR title
if echo "$FIRST_COMMIT" | grep -E "^(feat|fix|docs|style|refactor|test|chore)(\(.+\))?: " >/dev/null; then
# Use conventional commit format
PR_TITLE=$(echo "$FIRST_COMMIT" | sed 's/^[a-f0-9]\+ //')
else
# Fallback to simple format
PR_TITLE="$CURRENT_BRANCH"
fi
fi
echo "📝 PR Title: $PR_TITLE"# Generate comprehensive PR description
echo "📋 Generating PR description..."
# Generate change summary
CHANGE_SUMMARY=""
if [ "$BUG_FIX" = true ]; then
CHANGE_SUMMARY="${CHANGE_SUMMARY}- Bug fixes and error handling improvements\n"
fi
if [ "$NEW_FEATURE" = true ]; then
CHANGE_SUMMARY="${CHANGE_SUMMARY}- New features and functionality additions\n"
fi
if [ "$BREAKING_CHANGE" = true ]; then
CHANGE_SUMMARY="${CHANGE_SUMMARY}- Breaking changes requiring attention\n"
fi
if [ "$DOCUMENTATION" = true ]; then
CHANGE_SUMMARY="${CHANGE_SUMMARY}- Documentation updates and improvements\n"
fi
if [ "$TESTS" = true ]; then
CHANGE_SUMMARY="${CHANGE_SUMMARY}- Test coverage and quality improvements\n"
fi
# Generate file change summary
FILE_CHANGES=""
for file in $CHANGED_FILES; do
FILE_CHANGES="${FILE_CHANGES}- \`$file\`\n"
done
# Build complete PR description
PR_DESCRIPTION=$(cat <<EOF
## Description
This PR includes changes from branch \`$CURRENT_BRANCH\` with $COMMIT_COUNT commit(s) since divergence from \`$BASE_BRANCH\`.
### Key Changes:
$CHANGE_SUMMARY
### Files Modified:
$FILE_CHANGES
## Type of Change
EOF
)
# Add checkboxes based on analysis
if [ "$BUG_FIX" = true ]; then
PR_DESCRIPTION="${PR_DESCRIPTION}- [x] Bug fix\n"
else
PR_DESCRIPTION="${PR_DESCRIPTION}- [ ] Bug fix\n"
fi
if [ "$NEW_FEATURE" = true ]; then
PR_DESCRIPTION="${PR_DESCRIPTION}- [x] New feature\n"
else
PR_DESCRIPTION="${PR_DESCRIPTION}- [ ] New feature\n"
fi
if [ "$BREAKING_CHANGE" = true ]; then
PR_DESCRIPTION="${PR_DESCRIPTION}- [x] Breaking change\n"
else
PR_DESCRIPTION="${PR_DESCRIPTION}- [ ] Breaking change\n"
fi
if [ "$DOCUMENTATION" = true ]; then
PR_DESCRIPTION="${PR_DESCRIPTION}- [x] Documentation update\n"
else
PR_DESCRIPTION="${PR_DESCRIPTION}- [ ] Documentation update\n"
fi
# Add testing section
PR_DESCRIPTION="${PR_DESCRIPTION}
## Testing
- [x] Code changes tested
- [x] No new warnings introduced
- [x] Code follows style guidelines"
if [ "$TESTS" = true ]; then
PR_DESCRIPTION="${PR_DESCRIPTION}\n- [x] Tests added/updated"
else
PR_DESCRIPTION="${PR_DESCRIPTION}\n- [ ] Tests added/updated"
fi
# Add checklist
PR_DESCRIPTION="${PR_DESCRIPTION}
## Checklist
- [x] Self-review completed
- [x] Documentation updated (if applicable)
- [x] No new warnings introduced
- [x] Code follows project guidelines
## Additional Information
**Branch:** \`$CURRENT_BRANCH\` → \`$BASE_BRANCH\`
**Commits:** $COMMIT_COUNT
**Files Changed:** $(echo "$CHANGED_FILES" | wc -l | tr -d ' ')
### Commit History:
\`\`\`
$COMMITS
\`\`\`
---
🤖 Generated with /zcf-pr command
EOF
echo "✅ PR description generated"# Check if branch exists on remote
if ! git ls-remote --heads origin "$CURRENT_BRANCH" >/dev/null 2>&1; then
echo "📤 Pushing branch to remote..."
git push -u origin "$CURRENT_BRANCH"
else
echo "📤 Branch already exists on remote, ensuring it's up to date..."
git push origin "$CURRENT_BRANCH"
fi
# Create PR using gh CLI
echo "📋 Creating pull request..."
PR_OPTIONS="--title '$PR_TITLE' --body '$PR_DESCRIPTION'"
if [ "$IS_DRAFT" = true ]; then
PR_OPTIONS="$PR_OPTIONS --draft"
fi
# Execute gh pr create command
PR_URL=$(eval "gh pr create --base $BASE_BRANCH $PR_OPTIONS")
if [ $? -eq 0 ]; then
echo ""
echo "✅ Pull request created successfully!"
echo "🔗 PR URL: $PR_URL"
echo ""
echo "📋 PR Details:"
echo " Title: $PR_TITLE"
echo " From: $CURRENT_BRANCH"
echo " To: $BASE_BRANCH"
echo " Commits: $COMMIT_COUNT"
echo " Files: $(echo "$CHANGED_FILES" | wc -l | tr -d ' ')"
echo ""
echo "⚠️ Please review the PR and add any additional information as needed"
else
echo "❌ Failed to create pull request"
echo "Please check GitHub CLI authentication and permissions"
exit 1
fi⚠️ Prerequisites:
gh): Must be installed and authenticatedThe command automatically categorizes changes based on:
.md/.txt for docs, (test|spec)\. for tests# Standard PR to main
/zcf-pr
# → Creates PR: "feat: add new feature" with full description
# PR to develop branch
/zcf-pr --base develop
# → Creates PR to develop branch instead of main
# Draft PR
/zcf-pr --draft
# → Creates draft PR for initial review
# Custom title
/zcf-pr --title "Critical bug fix for authentication"
# → Uses custom title instead of auto-generated oneNow creating pull request...
© UfoMiao, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/zcf-pr of UfoMiao/zcf.
Open the folder on GitHubat commit 63cb2d0
ZCF Pull Request Creator 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 |
|---|---|---|---|---|---|---|
| ZCF Pull Request Creator this skillUfoMiao/zcf | 6.1k | — | ~2.9k | Automated safety check: Pass | MIT | |
| 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 | |
| Creating Description For Gh PRredis/jedis | 12k | — | ~838 | Automated safety check: Pass | MIT | |
| Create Pull Request with Work Item IDmakeplane/plane | 61k | — | ~824 | Automated safety check: Pass | AGPL-3.0 | |
| React Router Pull Request Creatorremix-run/react-router | 57k | — | ~2.5k | Automated safety check: Pass | MIT |
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.
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.
pascalorg/editor
Opens or refreshes a pull request on pascalorg/editor from the current branch, describing only what the branch's commits and diff actually contain.
UfoMiao/zcf
Onboards a corporate sponsor to ZCF by listing it in the three READMEs, and optionally registers its API preset and places ad cards in docs.
UfoMiao/zcf
Automates a version release with changesets: analyzes code changes, writes a bilingual CHANGELOG, bumps the version and commits through a release branch and pull request.
UfoMiao/zcf
Compares code changes since the last Git tag with the multilingual docs and CLAUDE.md, then updates them or only reports mismatches with --check-only.
Categories
Analyzes the current branch's changes since it diverged from base and opens a pull request through the GitHub CLI with an auto-generated, standardized description. Run as /zcf-pr with optional base branch, draft and title flags, the skill first checks that the working directory is a git repository and that the base branch exists, then diffs the current branch against it. It categorizes the changes by type and scope automatically, generates a pull request title (unless one was supplied), and builds a full description from a template, with support for both English and Chinese output.
ZCF Pull Request Creator fits situations like: opening a pull request from the branch you are currently working on; generating a standardized pull request description from your commits; creating a draft pull request against a non-default base branch.
Run `npx skills add UfoMiao/zcf --skill zcf-pr -a claude-code`. Or copy the skill folder (.claude/skills/zcf-pr in UfoMiao/zcf) into .claude/skills/zcf-pr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add UfoMiao/zcf --skill zcf-pr -a codex`. Or copy the skill folder (.claude/skills/zcf-pr in UfoMiao/zcf) into .agents/skills/zcf-pr 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 UfoMiao/zcf --skill zcf-pr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/zcf-pr, .gemini/skills/zcf-pr, .github/skills/zcf-pr and .opencode/skills/zcf-pr in your project.
Going by SKILL.md and its folder, ZCF Pull Request Creator needs the command-line tools its instructions call (git). Our summary lists: Git and the GitHub CLI (gh), with push access to the remote. Its frontmatter pre-approves these tools: Read(**), Exec(git, pnpm, node, date, cat, gh).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. 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. Review the folder before installing.
ZCF Pull Request Creator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k 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 ZCF Pull Request Creator: Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars), Create Pull Request (cline/cline, 70k stars), Creating Description For Gh PR (redis/jedis, 12k stars) and Create Pull Request with Work Item ID (makeplane/plane, 61k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
UfoMiao (a GitHub organization) maintains it in UfoMiao/zcf, which has 6,079 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on August 31, 2026.
Source: UfoMiao/zcf on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.