Create and manage GitHub pull requests in Nic Cope's style. Use when creating, opening, or drafting PRs, or updating PR descriptions. Uses gh CLI.
Install
npx skillscat add negz/nix/github-pull-requests Install via the SkillsCat registry.
Pull Request Style Guide
When to Use This (vs Other GitHub Skills)
Use this skill when creating, editing, or drafting pull requests.
Use github for read-only operations (viewing, listing, diffing PRs).
Use github-issues when creating or filing issues.
IMPORTANT: Require Confirmation
Never run gh pr create without explicit user approval. Always:
- Draft the PR title and description
- Show it to the user
- Wait for confirmation or requested changes
- Only then create the PR
Tools
Use the gh CLI to create, update, and manage pull requests:
gh pr create --title "..." --body "..."
gh pr edit --body "..."
gh pr view
gh pr listPR Templates
If the repository has a PR template (.github/PULL_REQUEST_TEMPLATE.md or similar), you must use it. Check for templates before creating the PR body.
Required Elements
- Start with issue references: "Fixes #XXXX" or "Closes #XXXX"
- Lead with problem statement, then solution
- Fill checklist completely, strike through irrelevant items with
~text~
Content Structure
- Issue references (first line)
- Problem statement (what's broken/missing)
- Solution summary (technical approach)
- Implementation details (architecture, trade-offs)
- Migration notes (if breaking changes)
Writing Style
- Technical and precise: Use exact terminology
- Problem-focused: Always explain the underlying issue
- Honest about complexity: Acknowledge hacks, limitations, edge cases
- Proactive: Direct reviewer attention to complex areas
What NOT to Do
- No bragging: Don't describe changes as "elegant", "robust", "powerful", etc.
- No table stakes: Don't mention that you wrote tests, ran linters, or followed other expected practices. The checklist covers this. Focus on why and what, not proving you did the basics.
- No marketing speak: Avoid "This exciting new feature" or similar language
- No obvious statements: Don't say "This PR adds X" when the title already says it
Example Opening
Fixes #6719
The CRD-to-MRD converter was converting all CRDs to MRDs, including provider
configuration types like `ProviderConfig`, `ClusterProviderConfig`, and
`ProviderConfigUsage`. These are not managed resources and should remain as
regular CRDs that get installed immediately.
This PR updates the converter to use `isManagedResource()` to identify which
CRDs represent actual managed resources. Provider configuration types are
excluded from conversion and remain as regular CRDs in the output.Checklist Guidelines
- Check items that apply:
- [x] Item - Strike through irrelevant items:
- [ ] ~Item~ - Be honest about what was and wasn't done
Architecture Explanations
When describing complex changes, include:
- How the change fits into existing systems
- What alternatives were considered
- Why this approach was chosen
- Any limitations or trade-offs
Respectful Communication
- Focus on what's different/improved, never criticize previous implementations
- Use neutral language: "The converter now distinguishes..." not "The old converter was broken"
Key Principles
- Be technical, not promotional
- Explain problems before solutions
- Acknowledge complexity honestly
- Focus on "why", not just "what"
- Use precise, domain-specific terminology
Troubleshooting
SSH Socket Issues
If git push fails with SSH authentication errors (common in tmux sessions), run:
eval $(tmux showenv -s SSH_AUTH_SOCK)This refreshes the SSH agent socket path after reconnecting to a tmux session.