ソース情報
- リポジトリ
- UfoMiao/zcf
- ソースの最終更新活動
- 2026年7月11日 16:31
- 検出された SKILL.md の言語
- 英語
- スター
- 6,079
- フォーク
- 420
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
SOC 職業分類に基づく
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/UfoMiao/zcf --skill zcf-prコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
SKILL.md を表示中
Professional AI programming assistant with structured workflow (Research -> Ideate -> Plan -> Execute -> Optimize -> Review) for developers
专业AI编程助手,提供结构化六阶段开发工作流(研究→构思→计划→执行→优化→评审),适用于专业开发者
Quickly add a new corporate sponsor to ZCF — sponsor list by default, with optional API preset and documentation ad placements
| name | zcf-pr |
| description | Create pull request based on current branch changes |
| disable-model-invocation | true |
| allowed-tools | Read(**), Exec(git, pnpm, node, date, cat, gh) |
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 ];
# 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'"
1
# 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
git diff -- ..HEAD
CHANGED_FILES=$(git diff --name-only ..HEAD)
# 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
[ = ]; ;
[ = ]; ;
[ = ]; ;
[ = ]; ;
[ = ]; ;
# 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;
FILE_CHANGES=
PR_DESCRIPTION=$( <<
)
[ = ];
PR_DESCRIPTION=
PR_DESCRIPTION=
[ = ];
PR_DESCRIPTION=
PR_DESCRIPTION=
[ = ];
PR_DESCRIPTION=
PR_DESCRIPTION=
[ = ];
PR_DESCRIPTION=
PR_DESCRIPTION=
PR_DESCRIPTION=
[ = ];
PR_DESCRIPTION=
PR_DESCRIPTION=
PR_DESCRIPTION=✅ 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
1
⚠️ 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 one
Now creating pull request...