Comprehensive developer toolkit providing reusable skills for Java/Spring Boot, TypeScript/NestJS/React/Next.js, Python, PHP, AWS CloudFormation, AI/RAG, DevOps, and more.
90
90%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Risky
Do not use without reviewing
Creates a GitHub pull request with branch creation, commits, and detailed description. Use when you need to submit changes for review.
/devkit.github.create-pr $ARGUMENTS| Argument | Description |
|---|---|
$ARGUMENTS | Combined arguments passed to the command |
git branch --show-currentgit status --porcelaingit config --get remote.origin.urlgit diff --name-onlyAgent Selection: To execute this GitHub task, use the following approach:
general-purpose agent with GitHub CLI expertise and code analysis capabilitiesArguments 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
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
fi# 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"# 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"Analyze changes by type:
# 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"# Create new branch
git checkout -b "$BRANCH_NAME"
echo "Created and switched to branch: $BRANCH_NAME"Determine if changes should be split into multiple commits:
Single commit when:
Multiple commits when:
# 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"Follow Conventional Commits specification:
<type>(<scope>): <description>
<body>
<footer>Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style/formattingrefactor: Code refactoringtest: Test additions/modificationschore: Build, dependencies, toolingperf: Performance improvementsci: CI/CD changessecurity: Security improvementsExample 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"# Push to remote
git push -u origin "$BRANCH_NAME"
echo "Pushed branch to remote: $BRANCH_NAME"Create PR description based on language preference:
English Template:
## Description
Brief description of changes and motivation.
## Changes
- Change 1
- Change 2
- Change 3
## Testing
Description of testing performed:
- Unit tests added/updated
- Integration tests verified
- Manual testing completed
## Checklist
- [ ] Code follows project style guidelines
- [ ] Tests added/updated and passing
- [ ] Documentation updated
- [ ] No breaking changes
- [ ] Backward compatibleItalian Template:
## Descrizione
Breve descrizione delle modifiche e motivazione.
## Modifiche
- Modifica 1
- Modifica 2
- Modifica 3
## Test
Descrizione dei test eseguiti:
- Test unitari aggiunti/aggiornati
- Test di integrazione verificati
- Test manuali completati
## Checklist
- [ ] Il codice segue le linee guida del progetto
- [ ] Test aggiunti/aggiornati e funzionanti
- [ ] Documentazione aggiornata
- [ ] Nessuna breaking change
- [ ] Retrocompatibile# Detect language
LANG="${3:-en}"
# Generate PR description
case "$LANG" in
it)
DESCRIPTION="## Descrizione\n\n[Descrivi le modifiche]\n\n## Modifiche\n\n- [Modifica 1]\n\n## Test\n\n- Test unitari aggiornati\n- Test di integrazione verificati"
;;
es)
DESCRIPTION="## Descripción\n\n[Describe los cambios]\n\n## Cambios\n\n- [Cambio 1]\n\n## Pruebas\n\n- Tests unitarios actualizados\n- Tests de integración verificados"
;;
fr)
DESCRIPTION="## Description\n\n[Décrivez les modifications]\n\n## Modifications\n\n- [Modification 1]\n\n## Tests\n\n- Tests unitaires mis à jour\n- Tests d'intégration vérifiés"
;;
de)
DESCRIPTION="## Beschreibung\n\n[Beschreiben Sie die Änderungen]\n\n## Änderungen\n\n- [Änderung 1]\n\n## Tests\n\n- Unit-Tests aktualisiert\n- Integrationstests überprüft"
;;
*)
DESCRIPTION="## Description\n\n[Describe the changes]\n\n## Changes\n\n- [Change 1]\n\n## Testing\n\n- Unit tests updated\n- Integration tests verified"
;;
esac
# Create PR
gh pr create \
--base "$TARGET_BRANCH" \
--head "$BRANCH_NAME" \
--title "${1:-Automated PR from $BRANCH_NAME}" \
--body "$(echo -e "$DESCRIPTION")" \
--web
echo "Pull request created successfully"# Get PR number and URL
PR_NUMBER=$(gh pr view --json number -q .number)
PR_URL=$(gh pr view --json url -q .url)
echo ""
echo "Pull Request Details:"
echo "Number: #$PR_NUMBER"
echo "URL: $PR_URL"
echo "Branch: $BRANCH_NAME -> $TARGET_BRANCH"
echo ""Available post-creation actions:
# Add labels
gh pr edit $PR_NUMBER --add-label "enhancement"
gh pr edit $PR_NUMBER --add-label "ready-for-review"
# Add reviewers
gh pr edit $PR_NUMBER --add-reviewer "username1,username2"
# Add assignees
gh pr edit $PR_NUMBER --add-assignee "@me"
# Request reviews
gh pr review $PR_NUMBER --comment -b "Please review when ready"
# Enable auto-merge (if repository allows)
gh pr merge $PR_NUMBER --auto --squashGood commit messages:
feat(api): add user authentication endpoint
fix(validation): correct email format validation
docs(readme): update installation instructions
test(user-service): add integration tests for user creation
refactor(utils): simplify date formatting utilityBad commit messages:
update files
fix bug
changes
wip
asdfGood PR titles:
Bad PR titles:
Authentication Error:
# Authenticate with GitHub CLI
gh auth loginBranch Already Exists:
# Switch to existing branch
git checkout existing-branch
# Or delete and recreate
git branch -D existing-branch
git checkout -b existing-branchMerge Conflicts:
# Update from target branch
git fetch origin
git merge origin/$TARGET_BRANCH
# Resolve conflicts manually
git add .
git commit -m "Resolve merge conflicts"No Changes to Commit:
# Check status
git status
# Verify files are modified
git diffThe PR will automatically trigger:
Based on the provided arguments:
Remember: Keep PR descriptions concise and professional without emojis. Focus on technical content and clarity.
# Create PR with title and default settings
/developer-kit:devkit.github.create-pr "Add user profile API"# Create PR targeting specific branch
/developer-kit:devkit.github.create-pr "Fix authentication timeout" develop# Create PR with Italian description
/developer-kit:devkit.github.create-pr "Aggiungere validazione email" main it# Let the command generate title from changes
/developer-kit:devkit.github.create-prdocs
plugins
developer-kit-ai
developer-kit-aws
agents
docs
skills
aws
aws-cli-beast
aws-cost-optimization
aws-drawio-architecture-diagrams
aws-sam-bootstrap
aws-cloudformation
aws-cloudformation-auto-scaling
aws-cloudformation-bedrock
aws-cloudformation-cloudfront
aws-cloudformation-cloudwatch
aws-cloudformation-dynamodb
aws-cloudformation-ec2
aws-cloudformation-ecs
aws-cloudformation-elasticache
references
aws-cloudformation-iam
references
aws-cloudformation-lambda
aws-cloudformation-rds
aws-cloudformation-s3
aws-cloudformation-security
aws-cloudformation-task-ecs-deploy-gh
aws-cloudformation-vpc
references
developer-kit-core
agents
commands
skills
developer-kit-devops
developer-kit-java
agents
commands
docs
skills
aws-lambda-java-integration
aws-rds-spring-boot-integration
aws-sdk-java-v2-bedrock
aws-sdk-java-v2-core
aws-sdk-java-v2-dynamodb
aws-sdk-java-v2-kms
aws-sdk-java-v2-lambda
aws-sdk-java-v2-messaging
aws-sdk-java-v2-rds
aws-sdk-java-v2-s3
aws-sdk-java-v2-secrets-manager
clean-architecture
graalvm-native-image
langchain4j-ai-services-patterns
references
langchain4j-mcp-server-patterns
references
langchain4j-rag-implementation-patterns
references
langchain4j-spring-boot-integration
langchain4j-testing-strategies
langchain4j-tool-function-calling-patterns
langchain4j-vector-stores-configuration
references
qdrant
references
spring-ai-mcp-server-patterns
spring-boot-actuator
spring-boot-cache
spring-boot-crud-patterns
spring-boot-dependency-injection
spring-boot-event-driven-patterns
spring-boot-openapi-documentation
spring-boot-project-creator
spring-boot-resilience4j
spring-boot-rest-api-standards
spring-boot-saga-pattern
spring-boot-security-jwt
assets
references
scripts
spring-boot-test-patterns
spring-data-jpa
references
spring-data-neo4j
references
unit-test-application-events
unit-test-bean-validation
unit-test-boundary-conditions
unit-test-caching
unit-test-config-properties
references
unit-test-controller-layer
unit-test-exception-handler
references
unit-test-json-serialization
unit-test-mapper-converter
references
unit-test-parameterized
unit-test-scheduled-async
references
unit-test-service-layer
references
unit-test-utility-methods
unit-test-wiremock-rest-api
references
developer-kit-php
developer-kit-project-management
developer-kit-python
developer-kit-specs
commands
docs
hooks
test-templates
tests
skills
developer-kit-tools
developer-kit-typescript
agents
docs
hooks
rules
skills
aws-cdk
aws-lambda-typescript-integration
better-auth
clean-architecture
drizzle-orm-patterns
dynamodb-toolbox-patterns
references
nestjs
nestjs-best-practices
nestjs-code-review
nestjs-drizzle-crud-generator
nextjs-app-router
nextjs-authentication
nextjs-code-review
nextjs-data-fetching
nextjs-deployment
nextjs-performance
nx-monorepo
react-code-review
react-patterns
shadcn-ui
tailwind-css-patterns
tailwind-design-system
references
turborepo-monorepo
typescript-docs
typescript-security-review
zod-validation-utilities
references
github-spec-kit