pr-creator

Guided pull request creation that enforces repository templates and safety standards. Enforces branch safety with critical checks to prevent commits and pushes to main Locates and applies repository-specific PR templates from .github/ directories, supporting multiple template variants Guides description drafting with template structure preservation, checklist completion, and issue linking Includes preflight validation via npm run preflight to catch build, lint, and test failures before PR...

npx skills add https://github.com/google-gemini/gemini-cli --skill pr-creator

Pull Request Creator

This skill guides the creation of high-quality Pull Requests that adhere to the repository's standards.

Workflow

Follow these steps to create a Pull Request:

  1. Branch Management: CRITICAL: Ensure you are NOT working on the main branch.

    • Run git branch --show-current.
    • If the current branch is main, you MUST create and switch to a new descriptive branch:
      git checkout -b <new-branch-name>
      
  2. Commit Changes: Verify that all intended changes are committed.

    • Run git status to check for unstaged or uncommitted changes.
    • If there are uncommitted changes, stage and commit them with a descriptive message before proceeding. NEVER commit directly to main.
      git add .
      git commit -m "type(scope): description"
      
  3. Locate Template: Search for a pull request template in the repository.

    • Check .github/pull_request_template.md
    • Check .github/PULL_REQUEST_TEMPLATE.md
    • If multiple templates exist (e.g., in .github/PULL_REQUEST_TEMPLATE/), ask the user which one to use or select the most appropriate one based on the context (e.g., bug_fix.md vs feature.md).
  4. Read Template: Read the content of the identified template file.

  5. Draft Description: Create a PR description that strictly follows the template's structure.

    • Headings: Keep all headings from the template.
    • Checklists: Review each item. Mark with [x] if completed. If an item is not applicable, leave it unchecked or mark as [ ] (depending on the template's instructions) or remove it if the template allows flexibility (but prefer keeping it unchecked for transparency).
    • Content: Fill in the sections with clear, concise summaries of your changes.
    • Related Issues: Link any issues fixed or related to this PR (e.g., "Fixes #123").
  6. Preflight Check: Before creating the PR, run the workspace preflight script to ensure all build, lint, and test checks pass.

    npm run preflight
    

    If any checks fail, address the issues before proceeding to create the PR.

  7. Push Branch: Push the current branch to the remote repository. CRITICAL SAFETY RAIL: Double-check your branch name before pushing. NEVER push if the current branch is main.

    # Verify current branch is NOT main
    git branch --show-current
    # Push non-interactively
    git push -u origin HEAD
    
  8. Create PR: Use the gh CLI to create the PR. To avoid shell escaping issues with multi-line Markdown, write the description to a temporary file first.

    # 1. Write the drafted description to a temporary file
    # 2. Create the PR using the --body-file flag
    gh pr create --title "type(scope): succinct description" --body-file <temp_file_path>
    # 3. Remove the temporary file
    rm <temp_file_path>
    
    • Title: Ensure the title follows the Conventional Commits format if the repository uses it (e.g., feat(ui): add new button, fix(core): resolve crash).

Principles

  • Safety First: NEVER push to main. This is your highest priority.
  • Compliance: Never ignore the PR template. It exists for a reason.
  • Completeness: Fill out all relevant sections.
  • Accuracy: Don't check boxes for tasks you haven't done.

More skills from google-gemini

agent-tui
google-gemini
Main Agents: Do NOT use this skill directly. If you need to test the TUI, invoke the `tui_tester` subagent. Drive terminal UI (TUI) applications…
gemini-api-cli
google-gemini
Guide for using the Gemini API CLI tool. Use when you need to interact with the Gemini API via the command line, manage agents, or generate media (images,…
behavioral-evals
google-gemini
Guidance for creating, running, fixing, and promoting behavioral evaluations. Use when verifying agent decision logic, debugging failures, debugging prompt…
gemini-live-api-dev
google-gemini
Real-time bidirectional streaming with Gemini over WebSockets for audio, video, and text conversations. Supports audio input/output (16 kHz PCM), video frames, text, and automatic transcriptions with voice activity detection for interruption handling Includes native audio features: affective dialog, proactive audio, and thinking mode; function calling for synchronous and asynchronous tool use; and Google Search grounding Offers session management with context compression, resumption, and...
gemini-omni-flash-api
google-gemini
Use this skill for generative video editing, text-to-video, image-referenced video generation, and first-frame-to-video transition animations using the…
gemini-api-dev
google-gemini
Build applications with Google's Gemini models, supporting multimodal content, function calling, and structured outputs across Python, JavaScript, Go, and Java. Access current Gemini 3 models (Pro, Flash, Pro Image) with 1M token context; legacy Gemini 2.x and 1.5 models are deprecated Supports text generation, image/audio/video understanding, function calling, structured JSON output, code execution, context caching, and embeddings Official SDKs available: google-genai (Python),...
gemini-interactions-api
google-gemini
Unified interface for Gemini models and agents with server-side state, streaming, and tool orchestration. Supports multiple current models (gemini-3-flash-preview, gemini-3-pro-preview, gemini-2.5-flash/pro) and the Deep Research agent; automatically substitute deprecated model IDs with current alternatives Offload conversation history to the server via previous_interaction_id for stateful multi-turn interactions without manual history management Built-in tool orchestration including...
deliver
google-gemini
Posts a condensed version of the briefing to a Google Chat or Slack incoming webhook, so the daily run delivers itself — skips silently when no webhook is…