pr-creator

REQUIRED for all PR creation in this project. Creates professional PRs using project template, enforces Conventional Commits title format, BLOCKS AI attribution pollution, always creates drafts via gh CLI. Use when creating PR, opening PR, submitting PR, creating pull request, or user mentions "create pr", "open pr", "pr this", "submit pr", "make pr", "pull request", "create a pr", "open a pr", "push for review".

16 stars

Best use case

pr-creator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

REQUIRED for all PR creation in this project. Creates professional PRs using project template, enforces Conventional Commits title format, BLOCKS AI attribution pollution, always creates drafts via gh CLI. Use when creating PR, opening PR, submitting PR, creating pull request, or user mentions "create pr", "open pr", "pr this", "submit pr", "make pr", "pull request", "create a pr", "open a pr", "push for review".

Teams using pr-creator should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/pr-creator/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/tools/pr-creator/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/pr-creator/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How pr-creator Compares

Feature / Agentpr-creatorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

REQUIRED for all PR creation in this project. Creates professional PRs using project template, enforces Conventional Commits title format, BLOCKS AI attribution pollution, always creates drafts via gh CLI. Use when creating PR, opening PR, submitting PR, creating pull request, or user mentions "create pr", "open pr", "pr this", "submit pr", "make pr", "pull request", "create a pr", "open a pr", "push for review".

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# PR Creator

Creates professional pull requests with proper titles, populated templates, and always in draft mode.

## Core Mission

This skill automates PR creation following project conventions. It uses the existing `.github/pull_request_template.md`, enforces Conventional Commits title format, and **always creates PRs as drafts** to allow review before marking ready.

**Problem Solved:**
Manual PR creation is tedious and often results in incomplete descriptions or inconsistent titles. This skill ensures every PR has proper structure, meaningful descriptions, and follows project conventions.

## Instructions

### 1. Intercept PR Intent

**Detect when user wants to create a PR:**
- Direct: "create pr", "open pr", "make pr"
- Indirect: "pr this", "submit pr", "push for review"
- After work: "done, create a pr"

**Immediately activate and begin PR workflow.**

### 2. Gather Repository Information

**Collect context about current state:**

```bash
# Current branch name
git branch --show-current

# Verify not on main/master
git branch --show-current | grep -E '^(main|master)$' && echo "ERROR: Cannot PR from main"

# Check for remote tracking
git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null || echo "No upstream"

# Commits in this branch (vs main)
git log main..HEAD --oneline

# Changed files summary
git diff main..HEAD --stat

# Detailed file list
git diff main..HEAD --name-only
```

**Block if:**
- On main/master branch
- No commits ahead of main
- Uncommitted changes exist (warn and offer to commit first)

### 3. Analyze Changes

**Determine PR characteristics:**

**Type** (from file changes):
- `feat` - New files in src/, new functionality
- `fix` - Changes to existing code fixing issues
- `docs` - Only .md files, docs/ changes
- `style` - Formatting, whitespace only
- `refactor` - Code restructure, same behavior
- `perf` - Performance improvements
- `test` - Test files only
- `build` - build.gradle.kts, Makefile, CI
- `ci` - .github/workflows/ changes
- `chore` - Maintenance, dependencies

**Scope** (from paths):
- `compiler` - compiler/src/**
- `fir` - compiler/src/**/fir/**
- `ir` - compiler/src/**/ir/**
- `generation` - compiler/src/**/generation/**
- `gradle` - gradle-plugin/**
- `annotations` - annotations/**
- `samples` - samples/**
- `docs` - docs/**, *.md

**Related Issues:**
- Extract from branch name: `fix/123-description` → #123
- Extract from commit messages: `Fixes #456`

### 4. Generate PR Title

**Apply Conventional Commits format:**

```
<type>[(scope)]: <description>
```

**Validation:**
- [ ] Type is valid
- [ ] Max 72 characters
- [ ] No period at end
- [ ] Imperative mood ("add" not "added")

**Examples:**
```
feat(compiler): add generic type parameter support
fix(fir): resolve annotation detection for nested interfaces
docs: update KMP multi-module guide
refactor(generation): restructure factory generation API
```

### 5. Populate PR Template

**Read project template:**
```bash
cat .github/pull_request_template.md
```

**Always use Standard format:**
```markdown
## Description
{2-3 sentences explaining what changed and why}

## Related Issue
Fixes #{issue}

## Type of Change
- [x] {Detected type}
- [ ] Breaking change (if applicable)

## Pre-Submission Checklist
- [x] Code formatted: `./gradlew spotlessApply`
- [x] Linter passing: `./gradlew lintKotlin`
- [x] Static analysis: `./gradlew detekt`
- [x] Tests added/updated and passing: `./gradlew test`
- [x] Generated code compiles (verified with sample project)
- [x] Updated documentation if needed

## Additional Context
{Key implementation details or decisions}
```

### 6. Validate Before Submission

**Check PR is ready:**

```bash
# Verify branch is pushed
git push -u origin $(git branch --show-current)

# Verify no uncommitted changes
git status --porcelain

# Optional: Run quick validation
make format 2>/dev/null || ./gradlew spotlessCheck
```

**Warn if:**
- Branch not pushed to remote
- Uncommitted changes exist
- Format check fails

### 7. Create Draft PR

**Always use draft mode:**

```bash
gh pr create \
  --draft \
  --title "<generated-title>" \
  --body "$(cat <<'EOF'
<populated-template>
EOF
)"
```

**Important flags:**
- `--draft` - Always create as draft (REQUIRED)
- `--title` - Validated Conventional Commits title
- `--body` - Populated template with proper depth

### 8. Output PR URL and Next Steps

**Success output:**

```
PR CREATED (Draft)

URL: https://github.com/rsicarelli/fakt/pull/123
Title: feat(compiler): add generic type parameter support
Status: Draft

Checklist before marking ready:
- [ ] Review the PR description for accuracy
- [ ] Ensure all CI checks pass
- [ ] Add reviewers if needed

To mark ready for review:
  gh pr ready 123

To view PR:
  gh pr view 123 --web
```

## Forbidden Patterns (CRITICAL)

**These MUST NEVER appear in PR title or description:**

```
FORBIDDEN - ALWAYS BLOCK

1. AI Attribution:
   "Generated with Claude Code"
   "Generated by Claude"
   "Created by AI"

2. Co-Author Lines:
   "Co-Authored-By: Claude"
   "Co-authored-by:.*noreply@anthropic.com"

3. Robot Emoji Attribution:
   Lines with robot emoji followed by "Generated"
```

**PRs should appear professional and human-authored.**

## Supporting Files

Progressive disclosure for detailed documentation:

- **`resources/pr-title-conventions.md`** - Full title format specification
- **`resources/pr-description-guide.md`** - How to write effective descriptions

## Related Skills

This skill composes with:
- **`git-commit-guardian`** - Ensures commits are clean before PR
- **`bdd-test-runner`** - Run tests before PR submission
- **`compilation-validator`** - Validate code compiles

This skill enables:
- Consistent PR quality across the project
- Automated changelog generation
- Clear review process with drafts

## Best Practices

1. **Always draft first** - Review before requesting reviews
2. **Match title to primary change** - Use most significant commit type
3. **Reference issues** - Link related GitHub issues
4. **Explain the why** - Description should explain reasoning
5. **No AI attribution** - Clean, professional PRs only
6. **Check CI before ready** - Ensure all checks pass first

## PR Type Reference

| Type | When to Use | Example Title |
|------|-------------|---------------|
| `feat` | New feature | `feat(dsl): add behavior configuration` |
| `fix` | Bug fix | `fix(ir): resolve type mismatch` |
| `docs` | Docs only | `docs: add KMP guide` |
| `style` | Formatting | `style: apply ktfmt` |
| `refactor` | Restructure | `refactor: extract analyzer` |
| `perf` | Performance | `perf: cache metadata` |
| `test` | Tests | `test: add generic tests` |
| `build` | Build system | `build: upgrade Kotlin` |
| `ci` | CI/CD | `ci: add KMP matrix` |
| `chore` | Maintenance | `chore: update deps` |

## Error Messages

### Not on Feature Branch
```
PR BLOCKED - Cannot create PR from main/master

Create a feature branch first:
  git checkout -b feat/your-feature
```

### No Commits
```
PR BLOCKED - No commits ahead of main

Make some changes and commit first.
Current branch is up to date with main.
```

### Uncommitted Changes
```
PR WARNING - Uncommitted changes detected

Files with changes:
  M src/main/kotlin/File.kt
  ? src/main/kotlin/NewFile.kt

Options:
1. Commit changes first (recommended)
2. Stash changes: git stash
3. Proceed anyway (changes won't be in PR)
```

### Title Too Long
```
PR BLOCKED - Title exceeds 72 characters

Current: 85 characters
Limit: 72 characters

Original: "feat(compiler): implement comprehensive generic type parameter support for all interfaces"
Suggested: "feat(compiler): add generic type support"
```

## Known Limitations

- Requires `gh` CLI to be installed and authenticated
- Cannot detect all issue references automatically
- Breaking change detection is heuristic-based
- Depth level must be explicitly chosen (by design)

## References

- **Project PR Template**: `.github/pull_request_template.md`
- **Conventional Commits**: https://www.conventionalcommits.org/
- **GitHub CLI**: https://cli.github.com/

Related Skills

workflow-creator

16
from diegosouzapw/awesome-omni-skill

Create complete Claude Code workflow directories with curated skills. Use when user wants to (1) create a new workflow for specific use case (media creator, developer, marketer, etc.), (2) set up a Claude Code project with pre-configured skills, (3) download and organize skills from GitHub repositories, or (4) generate README.md and AGENTS.md documentation for workflows. Triggers on phrases like "create workflow", "new workflow", "set up workflow", "build a xxx-workflow".

slack-gif-creator

16
from diegosouzapw/awesome-omni-skill

Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a GIF of X doing Y for Slack."

skill-creator

16
from diegosouzapw/awesome-omni-skill

Create and scaffold new agent skills with proper structure, validation, and spec compliance. Use when building new skills from scratch.

skill-creator-thepexcel

16
from diegosouzapw/awesome-omni-skill

Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.

skill-creator-from-logs

16
from diegosouzapw/awesome-omni-skill

VS Code / GitHub Copilot Chat の「Chat: Export Chat...」で出力した JSON を解析し、繰り返しワークフロー(WHAT/HOW/FLOW)を発見して Agent Skills を自動生成する。"analyze my chat history", "find repetitive tasks", "create skills from logs", "Copilot Chat の履歴からスキルを作って", "VS Code Chat Export を分析して"などのリクエスト時に使用される。

skill-creator-from-docs

16
from diegosouzapw/awesome-omni-skill

Create comprehensive PAI skills from tool/CLI/API documentation. Analyzes docs (markdown or URLs via crawl4ai), deduces workflows, generates helper scripts/templates/guardrails, and builds complete skill packages. USE WHEN user says 'create skill from docs', 'build skill for [tool]', 'turn documentation into skill', or provides documentation to transform into a skill.

raw-workflow-creator

16
from diegosouzapw/awesome-omni-skill

Create and run RAW workflows. Use this skill when the user asks to create a workflow, automate a task, build a data pipeline, generate reports, or asks "How do I build X with RAW?".

passcreator-automation

16
from diegosouzapw/awesome-omni-skill

Automate Passcreator tasks via Rube MCP (Composio). Always search tools first for current schemas.

meta:cli-feature-creator

16
from diegosouzapw/awesome-omni-skill

CLI Feature Creator wizard for adding new aaa CLI commands. Use when user asks to "add aaa command", "create CLI feature", "add CLI command", or needs to extend the aaa CLI with new functionality.

github-issue-creator

16
from diegosouzapw/awesome-omni-skill

Creates well-structured GitHub issues for the MCPSpy project using the gh CLI tool. Use when asked to create issues, report bugs, or document features. Follows conventional naming with feat/chore/fix prefixes and maintains appropriate detail levels.

claude-skill-creator

16
from diegosouzapw/awesome-omni-skill

Guide for creating effective Claude Code skills with proper YAML frontmatter, directory structure, and best practices. Use when creating new skills, updating existing skills, or learning about skill development.

brand-identity-creator

16
from diegosouzapw/awesome-omni-skill

Comprehensive guide for creating brand identity guidelines. Use this skill when a user wants to define, create, or document a brand's identity, including mission, vision, values, personality, and visual elements.