Files
Reza Rezvani 6d954fefee feat(commands): add GitHub workflow integration slash commands
Phase 4: Claude Code Slash Commands

Created 4 GitHub Integration Commands:

1. /github-init - CI/CD system initialization
   - Runs bootstrap workflow
   - Creates dev branch
   - Configures branch protection
   - Sets default branch to dev
   - Complete setup verification

2. /commit-smart - Smart commits with quality gates
   - Pre-commit validation (Python, Bash, secrets)
   - Conventional Commits format generation
   - Interactive commit message builder
   - Quality checks before committing

3. /create-pr - Pull request creation
   - Branch validation
   - Target branch detection (dev/main)
   - PR title generation (Conventional Commits)
   - PR template population
   - Workflow trigger explanation

4. /release - GitHub release creation
   - Version validation (semantic versioning)
   - CHANGELOG.md integration
   - Automated release notes
   - Post-release actions guide

All commands provide:
- Step-by-step guidance
- Copy-paste ready commands
- Validation checks
- Error handling
- Links to documentation

Integration with workflows:
- Commands trigger bootstrap, pr-into-dev, dev-to-main, release workflows
- Enforces quality gates and conventions
- Aligns with branching strategy

Next: Test workflows with sample feature PR
2025-11-12 13:06:50 +01:00

185 lines
4.0 KiB
Markdown

---
title: /create-pr
description: Create pull request with proper validation
---
# Create Pull Request
You are helping the user create a pull request that follows ClaudeForge conventions.
## Workflow
1. **Detect Current Branch**
```bash
CURRENT_BRANCH=$(git branch --show-current)
echo "Current branch: $CURRENT_BRANCH"
```
2. **Determine Target Branch**
- If current branch starts with `feature/`, `fix/`, `hotfix/`, `test/`, `refactor/`, `docs/`:
- Target: `dev`
- If current branch is `dev`:
- Target: `main` (release PR)
- Otherwise: Ask user
3. **Validate Branch Name**
- Check if branch follows convention
- If not, suggest renaming:
```bash
git branch -m feature/new-name
```
4. **Check for Uncommitted Changes**
```bash
git status --short
```
- If changes exist, suggest committing first
5. **Push Branch** (if needed)
```bash
git push -u origin $CURRENT_BRANCH
```
6. **Generate PR Title**
- Based on commits since target branch
- Must follow Conventional Commits format
- Examples:
- `feat(installer): add Windows PowerShell support`
- `fix(skill): correct template selection logic`
- `docs: update installation guide`
7. **Generate PR Description**
Use PR template format:
```markdown
## Description
[Describe changes]
## Type of Change
- [x] [Selected type]
## Related Issues
Closes #[issue number]
## Changes Made
- Change 1
- Change 2
## Testing Performed
- [x] Tested installation
- [x] Tested slash command
...
```
8. **Create PR**
```bash
gh pr create \
--base [target branch] \
--title "[PR title]" \
--body "[PR description]"
```
Or for draft:
```bash
gh pr create --draft \
--base [target branch] \
--title "[PR title]" \
--body "[PR description]"
```
9. **Post-Creation**
- Show PR URL
- Explain what workflows will run:
- For PR to dev: `pr-into-dev.yml`
- For PR to main: `dev-to-main.yml`
- Link to workflow documentation
## Validation Checklist
Before creating PR, verify:
- ✅ Branch name follows convention
- ✅ PR title follows Conventional Commits
- ✅ At least one issue referenced
- ✅ All changes committed and pushed
- ✅ Target branch is correct
## Examples
**Feature PR to dev:**
```bash
gh pr create \
--base dev \
--title "feat(skill): add Rust template support" \
--body "## Description
Adds Rust project template with Cargo.toml detection and
appropriate CLAUDE.md generation.
## Type of Change
- [x] New feature
## Related Issues
Closes #42
## Changes Made
- Add Rust template in skill/examples/
- Update template_selector.py with Rust detection
- Add Rust-specific validation rules
## Testing Performed
- [x] Tested on sample Rust project
- [x] Validated template output
- [x] Python syntax checks pass"
```
**Release PR (dev to main):**
```bash
gh pr create \
--base main \
--title "release: v1.1.0" \
--body "## Description
Release version 1.1.0 with new features and bug fixes.
## Changes in This Release
- feat(skill): Rust template support
- feat(installer): Windows improvements
- fix(skill): Template selection bugs
- docs: Updated installation guide
## Related Issues
Closes #42, #45, #48
## CHANGELOG
See CHANGELOG.md for full details.
## Testing
- [x] All quality gates pass
- [x] Tested installation on macOS, Linux, Windows
- [x] Tested all new features"
```
## Workflow Triggers
**PR to dev:**
- Validates branch name (must be feature/*, fix/*, etc.)
- Validates PR title (Conventional Commits)
- Checks for linked issues
- Runs quality gates (Python, Markdown, Bash, secrets)
**PR to main:**
- Validates source branch (must be dev, release/*, or dependabot/*)
- Checks CHANGELOG.md updated
- Validates production build
- Runs full quality gates
## Success Output
Show user:
1. PR URL
2. Workflow status link
3. Next steps (wait for CI, request review)
4. Link to relevant docs (GITHUB_WORKFLOWS.md, BRANCHING_STRATEGY.md)
Provide clear guidance and actual commands user can run.