# Create Pull Request

> You are helping the user create a pull request that follows ClaudeForge conventions.

- Skill: `tools-only/create-pull-request-2` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add tools-only/create-pull-request-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tools-only/create-pull-request-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tools-only (https://skillmd.com/u/tools-only)
- Updated: 2026-09-29
- Page: https://skillmd.com/skills/tools-only/create-pull-request-2

---


# 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.

