AgentSkillsCN

gh-pr

在通过`gh pr create`创建GitHub拉取请求时应使用此技能。定义PR正文格式,包含“原因/内容/备注”三个部分,并确保正确分配负责人。

SKILL.md
--- frontmatter
name: gh-pr

description: >-
  This skill should be used when creating a GitHub pull request via `gh pr
  create`. Defines PR body format with Why/What/Notes sections and ensures
  proper assignment.

GitHub Pull Request Creation

When creating a pull request, use the gh CLI with the following format and conventions.

  • Always create draft PRs.
  • Keep PR titles, descriptions, and comments concise and clear.
  • Include only useful information. Remove redundancy and over-explanation.
  • Prefer explicitness and clarity over verbosity.

PR title format

Write the title as if the whole PR was squashed into a single commit using conventional commits.

PR Body Format

markdown
## Why?

[Explain the motivation for this change. What problem does it solve?]

## What?

[Describe what was changed. List the key modifications.]

## Notes

[Optional. Additional context, testing notes, or follow-up items.]

Command Template

bash
gh pr create --draft --assignee @me --title "<title>" --body "$(cat <<'EOF'
## Why?

<motivation>

## What?

<changes>

## Notes

<optional notes>
EOF
)"

File References

Use [file:lineno](url) with SHA-pinned URLs: https://github.com/<owner>/<repo>/blob/<sha>/<path>#L<lineno>

  • SHA: git rev-parse HEAD
  • Repo: gh repo view --json nameWithOwner -q .nameWithOwner

Rules

  1. Always assign PR to @me using --assignee @me
  2. ## Why? - Required. Explain motivation and problem being solved
  3. ## What? - Required. Describe the changes made
  4. ## Notes - Optional. Omit entirely if no notes are needed
  5. Use imperative mood in title (e.g., "Add feature" not "Added feature")
  6. Keep title concise and descriptive
  7. When referencing files, always use [file:lineno](url) format with SHA-pinned URLs

Example

bash
gh pr create --draft --assignee @me --title "Add user authentication" --body "$(cat <<'EOF'
## Why?

Users need secure access to their accounts. Currently there is no
authentication mechanism in place.

## What?

- Add login/logout endpoints
- Implement JWT token generation
- Add password hashing with bcrypt
- Create auth middleware for protected routes

## Notes

Requires `JWT_SECRET` env variable to be set in production.
EOF
)"