Create pr
Agent Skills.
npx -y skills add jae-labs/skills --skill create-prAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Inspects local git changes and generates a structured, high-quality PR description using the gh CLI. You MUST use this skill whenever the user asks to create a pull request, create a github pr, run '/create-pr', draft a PR description, summarize branch changes, review a diff before committing, or write a squash commit message. Even if the user only asks to "write a PR summary," invoke this skill to ensure proper branch hygiene and formatting.
SKILL.md
7.1 KB, as published. Nobody here has run it
Pull Request Creator & Description Generator
Analyzes git changes between the current branch and the default branch to verify branch hygiene, inspect code modifications, and generate a clear, focused pull request description. Finally, automates PR creation using the GitHub CLI (gh).
Core Principles
- Inspection before creation: Always assess the quality, size, and focus of the changes before writing any summary.
- Documentation before creation: Refresh
README.md,AGENTS.md, andCLAUDE.mdwithmd-docsbefore writing the PR if those files are stale or should reflect the final reviewed state of the branch. - Conciseness and clarity: Provide high-level context to human reviewers rather than listing every minor file change.
- Strict separation of concern: Ensure PRs are focused on a single logical change. If unrelated modifications exist, alert the user.
- Accurate signaling: Highlight architectural decisions, security/performance considerations, and explicitly document all API modifications or breaking changes.
Workflow
- Verify Branch State:
- Check if you are currently on the default/main branch (e.g.,
mainormaster). - If checked out on the default branch, you MUST switch to or create a new feature branch (e.g.
git checkout -b <feature-branch-name>) before proceeding. Do not build a PR directly off the default branch. - Run
git status --porcelainto check for uncommitted modifications. If any exist, warn the user and recommend committing them before generating the PR.
- Check if you are currently on the default/main branch (e.g.,
- Refresh Documentation:
- Before drafting the PR, verify whether
README.md,AGENTS.md, orCLAUDE.mdshould change based on the final reviewed branch state. - If yes, run
md-docsfirst and complete those documentation updates before generating the PR summary.
- Before drafting the PR, verify whether
- Check for GitHub CLI: Verify that the
ghcommand-line tool is installed and authenticated. - Determine the Default Branch: Locate the target default branch (usually
mainormaster) via remote configuration (git remote show origin) or branch listing. - Inspect the Diff & Commits:
- Get the list of commits and their messages from the current branch relative to the default branch (e.g.,
git log <default-branch>..HEAD). - Compare the current branch against the default branch:
git diff <default-branch>...HEAD - Inspect the commit messages, paths affected, file changes, and overall size of the diff.
- Get the list of commits and their messages from the current branch relative to the default branch (e.g.,
- Evaluate Branch Hygiene:
- Verify if the changes represent a single focused logical change.
- If the PR contains unrelated concerns (e.g. mixed features, multiple distinct bugfixes, major format changes), alert the user and recommend splitting the branch.
- Ensure changes make the code easy to review without breaking runtime behavior.
- Analyze for Breaking Changes: Look for API modifications, database schema changes, configuration updates, or dependency migrations.
- Generate PR Title and Description: Construct the title and description using the structure defined below.
- Await User Confirmation: Present the proposed PR Title and PR Description Body. You MUST explicitly ask the user for approval. NEVER run
gh pr createwithout the user's explicit confirmation. - Create the Pull Request: Once approved, run the
gh pr createCLI command using the approved title and body.
Output Structure
Provide two separate outputs when presenting the generated PR description to the user:
- The Title as plain text (not in a markdown block).
- The PR Description Body in a single markdown code block (do NOT nest markdown blocks).
Body Template
The body must follow this structure exactly:
[1-2 sentence overview paragraph explaining the purpose and motivation of the changes.]
## Description
- **What**: Clear explanation of the changes introduced.
- **Why**: Context on why these changes are necessary (include links to Linear tasks or issue trackers if applicable).
- **How**: Brief explanation of the technical approach taken.
## Changes
- **[Component/Area]**: High-level context of what changed, including why and how. Use repository-relative paths (e.g., `lib/auth/session.go`) to reference key files.
- **[Component/Area]**: High-level context of what changed.
## Key Decisions & Breaking Changes
[Deep-dive into key architectural decisions, trade-offs, and an explicit call-out of any API modifications or breaking modifications.]
Guidelines
Do:
- Group file-level changes into cohesive logical areas/components.
- Use only repository-relative paths when referencing files or folders.
- Highlight important technical details (e.g., timeouts, capacity limits, network protocols).
- Focus on big-picture impact to help human reviewers read quickly.
- Explicitly call out database migrations, breaking changes, or major dependency updates.
Don't:
- List trivial changes (e.g., package import changes, formatting, minor typo fixes, or basic logging additions) unless they are the primary focus of the PR.
- Include the branch name in the PR title or description (redundant).
- Use absolute filesystem paths (e.g.,
/Users/username/...). - Treat basic observability (like standard logging) as a feature.
- Nest markdown blocks inside the body block.
Example
Title: Migrate API service to multi-stage Docker build on AWS ECS Fargate via Terraform
Body:
Migrates the core API service deployment from a single-stage Docker build to a multi-stage container running on AWS ECS Fargate, managed by Terraform.
## Description
- **What**: Optimized the container image size via multi-stage Docker builds and updated the deployment infrastructure on AWS.
- **Why**: The previous container image was 1.2GB, causing slow ECS task startups. We also need to move to Fargate to eliminate EC2 host management overhead. (Linear: DEVOPS-412)
- **How**: Created a multi-stage `Dockerfile` to produce a 45MB runtime image, and updated our Terraform modules to provision the Fargate task definition and service.
## Changes
- **Containerization**: Updated `docker/Dockerfile` to use a two-stage build (build on `golang:1.21-alpine`, run on `alpine:3.19`), dropping root privileges for the runtime process.
- **Infrastructure**: Modified `terraform/ecs_service.tf` to define the Fargate capacity provider, security groups, and updated environment variables.
## Key Decisions & Breaking Changes
- **Non-root container user**: The runtime container now runs as a non-root user (`appuser`). If any local file writing is needed in future tasks, it must write to `/tmp`.
- **Breaking Change**: The Terraform variable `ecs_instance_type` has been removed as Fargate manages resources using cpu/memory configuration at the task level.