/devkit.github.create-pr
Creates a GitHub pull request with branch creation, commits, and detailed description. Use when you need to submit changes for review.
$ npx -y skills add giuseppe-trisciuoglio/developer-kit --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/devkit.github.create-pr
Context preview
What this command does when you run it.
Creates a GitHub pull request with branch creation, commits, and detailed description. Use when you need to submit changes for review.
Command definition
devkit.github.create-pr.mddescription: Creates a GitHub pull request with branch creation, commits, and detailed description. Use when you need to submit changes for review.
allowed-tools: Bash(git *), Bash(gh *)
argument-hint: "[pr-title] [target-branch] [language]"
Create GitHub Pull Request
Overview
Creates a GitHub pull request with branch creation, commits, and detailed description. Use when you need to submit changes for review.
Usage
/devkit.github.create-pr $ARGUMENTS
Arguments
| Argument | Description | |--------------|------------------------------------------| | `$ARGUMENTS` | Combined arguments passed to the command |
Current Context
- **Current Branch**: !`git branch --show-current`
- **Git Status**: !`git status --porcelain`
- **Remote Repository**: !`git config --get remote.origin.url`
- **Modified Files**: !`git diff --name-only`
Execution Instructions
**Agent Selection**: To execute this GitHub task, use the following approach:
- Primary: Use `general-purpose` agent with GitHub CLI expertise and code analysis capabilities
Configuration
**Arguments received**: `$ARGUMENTS`
**$1**: PR title (optional - will be generated if not provided) **$2**: Target branch (optional - defaults to `main` or `master`) **$3**: Language for PR description (optional - defaults to `en`)
**Supported languages**: `en`, `it`, `es`, `fr`, `de`
Phase 1: Pre-Flight Validation
1.1 Check Working Directory
Verify git repository and working directory status:
# Verify git repository
if ! git rev-parse --git-dir > /dev/null 2>&1; then
echo "Error: Not a git repository"
exit 1
fi
# Check for uncommitted changes
if [ -z "$(git status --porcelain)" ]; then
echo "Error: No changes to commit"
exit 1
fi
# Verify remote repository exists
if ! git config --get remote.origin.url > /dev/null 2>&1; then
echo "Error: No remote repository configured"
exit 1
fi
# Check GitHub CLI authentication
if ! gh auth status > /dev/null 2>&1; then
echo "Error: GitHub CLI not authenticated. Run: gh auth login"
exit 1
fi1.2 Determine Target Branch
# Detect default branch
TARGET_BRANCH="${2:-$(git remote show origin | grep 'HEAD branch' | cut -d' ' -f5)}"
if [ -z "$TARGET_BRANCH" ]; then
TARGET_BRANCH="main"
fi
echo "Target branch: $TARGET_BRANCH"Phase 2: Change Analysis
2.1 Analyze Modified Files
# Get list of modified files
MODIFIED_FILES=$(git diff --name-only)
STAGED_FILES=$(git diff --cached --name-only)
UNTRACKED_FILES=$(git ls-files --others --exclude-standard)
echo "Modified files:"
echo "$MODIFIED_FILES"
echo ""
echo "Staged files:"
echo "$STAGED_FILES"
echo ""
echo "Untracked files:"
echo "$UNTRACKED_FILES"
2.2 Categorize Changes
Analyze changes by type:
- **Feature additions**: New files, new functionality
- **Bug fixes**: Corrections to existing code
- **Refactoring**: Code improvements without behavior changes
- **Documentation**: README, comments, docs
- **Configuration**: Build files, properties, YAML configs
- **Tests**: Test files and test data
Phase 3: Branch Creation
3.1 Generate Branch Name
# Generate branch name from PR title or changes
if [ -n "$1" ]; then
BRANCH_NAME=$(echo "$1" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
else
# Generate from changed files
MAIN_CHANGE=$(echo "$MODIFIED_FILES" | head -1 | xargs dirname | sed 's/\//-/g')
BRANCH_NAME="feature/${MAIN_CHANGE}-$(date +%s)"
fi
# Ensure unique branch name
COUNTER=1
ORIGINAL_BRANCH=$BRANCH_NAME
while git show-ref --verify --quiet refs/heads/$BRANCH_NAME; do
BRANCH_NAME="${ORIGINAL_BRANCH}-${COUNTER}"
((COUNTER++))
done
echo "Branch name: $BRANCH_NAME"3.2 Create and Switch Branch
# Create new branch
git checkout -b "$BRANCH_NAME"
echo "Created and switched to branch: $BRANCH_NAME"
Phase 4: Commit Strategy
4.1 Analyze Commit Splitting
Determine if changes should be split into multiple commits:
**Single commit when**:
- Single file modified
- Related changes in same component
- Small focused change
**Multiple commits when**:
- Changes span multiple features
- Mix of feature and tests
- Configuration and code changes
- Documentation and implementation
4.2 Create Commits
# Stage all changes
git add -A
# Get diff statistics
TOTAL_ADDITIONS=$(git diff --cached --numstat | awk '{s+=$1} END {print s}')
TOTAL_DELETIONS=$(git diff --cached --numstat | awk '{s+=$2} END {print s}')
FILES_CHANGED=$(git diff --cached --name-only | wc -l)
echo "Changes: +$TOTAL_ADDITIONS -$TOTAL_DELETIONS across $FILES_CHANGED files"4.3 Generate Commit Messages
Follow Conventional Commits specification:
<type>(<scope>): <description>
<body>
<footer>
**Types**:
- `feat`: New feature
- `fix`: Bug fix
- `docs`: Documentation changes
- `style`: Code style/formatting
- `refactor`: Code refactoring
- `test`: Test additions/modifications
- `chore`: Build, dependencies, tooling
- `perf`: Performance improvements
- `ci`: CI/CD changes
- `security`: Security improvements
**Example commits**:
# Feature commit
git commit -m "feat(user-service): add email verification functionality
- Implement email verification service
- Add verification token generation
- Create email template
- Add integration tests
Closes #123"
# Bug fix commit
git commit -m "fix(auth): resolve JWT token expiration issue
JWT tokens were expiring prematurely due to timezone
miscalculation. Updated to use UTC consistently.
Fixes #456"
# Refactoring commit
git commit -m "refactor(repository): simplify user query methods
- Remove duplicate code
- Extract common query logic
- Improve method naming
- Add Javadoc comments"
Phase 5: Push and PR Creation
5.1 Push Branch
# Push to remote
git push -u origin "$BRANCH_NAME"
echo "Pushed branch to remote: $BRANCH_
Read more
description: Creates a GitHub pull request with branch creation, commits, and detailed description. Use when you need to submit changes for review. allowed-tools: Bash(git *), Bash(gh *) argument-hint: "[pr-title] [target-branch] [language]"
Create GitHub Pull Request
Overview
Creates a GitHub pull request with branch creation, commits, and detailed description. Use when you need to submit changes for review.
Usage
/devkit.github.create-pr $ARGUMENTS
Arguments
| Argument | Description | |--------------|------------------------------------------| | `$ARGUMENTS` | Combined arguments passed to the command |
Current Context
- **Current Branch**: !`git branch --show-current`
- **Git Status**: !`git status --porcelain`
- **Remote Repository**: !`git config --get remote.origin.url`
- **Modified Files**: !`git diff --name-only`
Execution Instructions
**Agent Selection**: To execute this GitHub task, use the following approach:
- Primary: Use `general-purpose` agent with GitHub CLI expertise and code analysis capabilities
Configuration
**Arguments received**: `$ARGUMENTS`
**$1**: PR title (optional - will be generated if not provided) **$2**: Target branch (optional - defaults to `main` or `master`) **$3**: Language for PR description (optional - defaults to `en`)
**Supported languages**: `en`, `it`, `es`, `fr`, `de`
Phase 1: Pre-Flight Validation
1.1 Check Working Directory
Verify git repository and working directory status:
# Verify git repository
if ! git rev-parse --git-dir > /dev/null 2>&1; then
echo "Error: Not a git repository"
exit 1
fi
# Check for uncommitted changes
if [ -z "$(git status --porcelain)" ]; then
echo "Error: No changes to commit"
exit 1
fi
# Verify remote repository exists
if ! git config --get remote.origin.url > /dev/null 2>&1; then
echo "Error: No remote repository configured"
exit 1
fi
# Check GitHub CLI authentication
if ! gh auth status > /dev/null 2>&1; then
echo "Error: GitHub CLI not authenticated. Run: gh auth login"
exit 1
fi1.2 Determine Target Branch
# Detect default branch
TARGET_BRANCH="${2:-$(git remote show origin | grep 'HEAD branch' | cut -d' ' -f5)}"
if [ -z "$TARGET_BRANCH" ]; then
TARGET_BRANCH="main"
fi
echo "Target branch: $TARGET_BRANCH"Phase 2: Change Analysis
2.1 Analyze Modified Files
# Get list of modified files MODIFIED_FILES=$(git diff --name-only) STAGED_FILES=$(git diff --cached --name-only) UNTRACKED_FILES=$(git ls-files --others --exclude-standard) echo "Modified files:" echo "$MODIFIED_FILES" echo "" echo "Staged files:" echo "$STAGED_FILES" echo "" echo "Untracked files:" echo "$UNTRACKED_FILES"
2.2 Categorize Changes
Analyze changes by type:
- **Feature additions**: New files, new functionality
- **Bug fixes**: Corrections to existing code
- **Refactoring**: Code improvements without behavior changes
- **Documentation**: README, comments, docs
- **Configuration**: Build files, properties, YAML configs
- **Tests**: Test files and test data
Phase 3: Branch Creation
3.1 Generate Branch Name
# Generate branch name from PR title or changes
if [ -n "$1" ]; then
BRANCH_NAME=$(echo "$1" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
else
# Generate from changed files
MAIN_CHANGE=$(echo "$MODIFIED_FILES" | head -1 | xargs dirname | sed 's/\//-/g')
BRANCH_NAME="feature/${MAIN_CHANGE}-$(date +%s)"
fi
# Ensure unique branch name
COUNTER=1
ORIGINAL_BRANCH=$BRANCH_NAME
while git show-ref --verify --quiet refs/heads/$BRANCH_NAME; do
BRANCH_NAME="${ORIGINAL_BRANCH}-${COUNTER}"
((COUNTER++))
done
echo "Branch name: $BRANCH_NAME"3.2 Create and Switch Branch
# Create new branch git checkout -b "$BRANCH_NAME" echo "Created and switched to branch: $BRANCH_NAME"
Phase 4: Commit Strategy
4.1 Analyze Commit Splitting
Determine if changes should be split into multiple commits:
**Single commit when**:
- Single file modified
- Related changes in same component
- Small focused change
**Multiple commits when**:
- Changes span multiple features
- Mix of feature and tests
- Configuration and code changes
- Documentation and implementation
4.2 Create Commits
# Stage all changes
git add -A
# Get diff statistics
TOTAL_ADDITIONS=$(git diff --cached --numstat | awk '{s+=$1} END {print s}')
TOTAL_DELETIONS=$(git diff --cached --numstat | awk '{s+=$2} END {print s}')
FILES_CHANGED=$(git diff --cached --name-only | wc -l)
echo "Changes: +$TOTAL_ADDITIONS -$TOTAL_DELETIONS across $FILES_CHANGED files"4.3 Generate Commit Messages
Follow Conventional Commits specification:
<type>(<scope>): <description> <body> <footer>
**Types**:
- `feat`: New feature
- `fix`: Bug fix
- `docs`: Documentation changes
- `style`: Code style/formatting
- `refactor`: Code refactoring
- `test`: Test additions/modifications
- `chore`: Build, dependencies, tooling
- `perf`: Performance improvements
- `ci`: CI/CD changes
- `security`: Security improvements
**Example commits**:
# Feature commit git commit -m "feat(user-service): add email verification functionality - Implement email verification service - Add verification token generation - Create email template - Add integration tests Closes #123" # Bug fix commit git commit -m "fix(auth): resolve JWT token expiration issue JWT tokens were expiring prematurely due to timezone miscalculation. Updated to use UTC consistently. Fixes #456" # Refactoring commit git commit -m "refactor(repository): simplify user query methods - Remove duplicate code - Extract common query logic - Improve method naming - Add Javadoc comments"
Phase 5: Push and PR Creation
5.1 Push Branch
# Push to remote git push -u origin "$BRANCH_NAME" echo "Pushed branch to remote: $BRANCH_
Modular plugin marketplace for Claude Code and agentic CLIs, with validated, spec-driven skills, agents, commands, and workflows for Java, TypeScript, Python, PHP, AWS, and AI.
Repo: giuseppe-trisciuoglio/developer-kit
Other commands on developer-kit.
- /devkit.prompt-optimize
Provides expert prompt optimization using advanced techniques (CoT, few-shot, constitutional AI) for LLM performance enhancement. Use when you need to improve prompt quality or optimize LLM interactions.
Open command - /devkit.feature-development
Provides guided feature development capability with codebase understanding and architecture focus. Use when implementing a new feature from scratch.
Open command - /devkit.fix-debugging
Provides guided bug fixing and debugging capability with systematic root cause analysis. Use when encountering bugs, errors, or unexpected behavior.
Open command - /devkit.github.review-pr
Provides comprehensive GitHub pull request review with code quality, security, and best practices analysis. Use when reviewing a PR before merging.
Open command - /devkit.refactor
Provides guided code refactoring capability with deep codebase understanding, compatibility options, and comprehensive verification. Use when restructuring or improving existing code.
Open command - /devkit.verify-skill
Validates a skill against DevKit standards (requirements, template, dependencies). Use when you need to verify a skill before publishing or after modifications.
Open command

