Back to skills
SkillHub ClubShip Full StackFull Stack
github-cli
Imported from https://github.com/yonatangross/create-yg-app.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Stars
3
Hot score
80
Updated
March 20, 2026
Overall rating
C3.4
Composite score
3.4
Best-practice grade
B81.2
Install command
npx @skill-hub/cli install yonatangross-create-yg-app-github-cli
Repository
yonatangross/create-yg-app
Skill path: .claude/skills/github-cli
Imported from https://github.com/yonatangross/create-yg-app.
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: yonatangross.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install github-cli into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/yonatangross/create-yg-app before adding github-cli to shared team environments
- Use github-cli for development workflows
Works across
Claude CodeCodex CLIGemini CLIOpenCode
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: github-cli
description: GitHub CLI (gh) mastery for issues, PRs, Projects v2, and automation. Modern development workflow patterns for 2025.
version: 1.0.0
author: YG Starter AI Agent Hub
tags: [github, gh, cli, issues, pr, projects, automation, 2025]
---
# GitHub CLI Skill
## Overview
Master the GitHub CLI (`gh`) for comprehensive project management. This skill covers issue creation, PR workflows, Projects v2 integration, and automation patterns using modern best practices (December 2025).
**When to use:**
- Creating/managing GitHub issues and PRs
- Working with GitHub Projects v2 custom fields
- Automating bulk operations with `gh`
- Following modern branch and PR conventions
- Running GraphQL queries for complex operations
---
## Quick Reference
### Essential Commands (2025)
```bash
# Issue operations
gh issue create --title "feat: Add payment processing" --body "..." --label "enhancement" --milestone "v2.0"
gh issue list --state open --label "backend" --assignee @me --limit 20
gh issue edit 123 --add-label "priority:high" --milestone "v2.1"
gh issue close 123 --comment "Fixed in #456"
# PR operations
gh pr create --title "feat: Add Stripe integration" --body "..." --base main --reviewer @teammate
gh pr checks 456 --watch # Watch CI status live
gh pr merge 456 --squash --delete-branch
gh pr merge 456 --auto --squash # Auto-merge when CI passes + approved
gh pr review 456 --approve --body "LGTM!"
# Project operations (Projects v2)
gh project list --owner @me
gh project item-add 1 --owner @me --url https://github.com/org/repo/issues/123
gh project field-list 1 --owner @me
# API operations
gh api repos/:owner/:repo/issues --jq '.[].title'
gh api graphql -f query='query { viewer { login }}'
gh api --method POST repos/:owner/:repo/dispatches -f event_type=deploy
```
### JSON Output + jq Patterns (2025)
```bash
# Get issue numbers matching criteria
gh issue list --json number,labels --jq '[.[] | select(.labels[].name == "bug")] | .[].number'
# PR summary with checks
gh pr list --json number,title,author,statusCheckRollup --jq '.[] | "\(.number): \(.title) - \(.statusCheckRollup)"'
# Count open PRs by author
gh pr list --json author --jq 'group_by(.author.login) | map({author: .[0].author.login, count: length})'
# List stale issues (no activity in 30 days)
gh issue list --json number,title,updatedAt --jq 'map(select(.updatedAt < (now - 2592000 | strftime("%Y-%m-%dT%H:%M:%SZ")))) | .[] | .number'
```
---
## Modern Workflow (2025)
### Branch Naming Convention
```bash
# For GitHub issues
issue/<number>-<brief-description>
# Examples:
issue/372-stripe-integration
issue/385-user-authentication
# For features without issues
feature/<description>
# Example:
feature/dark-mode
# For bug fixes
fix/<issue-number>-<description>
# Example:
fix/401-payment-timeout
# For hotfixes
hotfix/<description>
# Example:
hotfix/critical-security-patch
```
### Complete Feature Workflow
```bash
# 1. Create issue (if not exists)
ISSUE_URL=$(gh issue create \
--title "feat: Add Stripe payment processing" \
--body "$(cat <<'EOF'
## Description
Implement Stripe payment processing for subscription billing.
## Acceptance Criteria
- [ ] Stripe SDK integration
- [ ] Payment intent creation endpoint
- [ ] Webhook handling for payment events
- [ ] Database schema for transactions
## Technical Notes
- Use Stripe API v2025-01-01
- Implement idempotency keys
- Add retry logic for webhook failures
EOF
)" \
--label "enhancement,backend,payment" \
--milestone "Q1 2026 - Payment System" \
--json url --jq '.url')
ISSUE_NUM=$(echo "$ISSUE_URL" | grep -o '[0-9]*$')
# 2. Create feature branch
git checkout main && git pull origin main
git checkout -b "issue/${ISSUE_NUM}-stripe-integration"
# 3. Do work, commit with conventional commits
git add . && git commit -m "feat(#${ISSUE_NUM}): Add Stripe payment processing with webhook support"
# 4. Push and create PR
git push -u origin "issue/${ISSUE_NUM}-stripe-integration"
gh pr create \
--title "feat(#${ISSUE_NUM}): Add Stripe payment processing" \
--body "$(cat <<'EOF'
## Summary
- Integrated Stripe SDK v14.x
- Added payment intent creation endpoint
- Implemented webhook handling for payment.succeeded
- Added transaction schema and models
## Test Plan
- [x] Unit tests for payment service (95% coverage)
- [x] Integration tests with Stripe test mode
- [x] Webhook event replay testing
- [ ] Manual testing in staging environment
## Security Considerations
- Webhook signature verification enabled
- API keys stored in environment variables
- PCI DSS compliance checklist followed
Closes #${ISSUE_NUM}
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <[email protected]>
EOF
)" \
--base main \
--label "enhancement,backend,payment" \
--reviewer @tech-lead
```
### PR Commit Message Format (Conventional Commits)
```bash
# Format: type(#issue): description
feat(#372): Implement Stripe payment integration
fix(#345): Resolve checkout page rendering bug
docs(#336): Update API documentation for v2.0
refactor(#391): Extract payment service into separate module
test(#342): Add 95% coverage for payment webhooks
chore(#376): Upgrade dependencies to December 2025 versions
perf(#401): Optimize database queries for user dashboard
```
### Project Board Integration (Projects v2)
Modern development teams use GitHub Projects v2 with custom fields. After creating an issue:
```bash
# Add issue to project
ITEM_ID=$(gh project item-add 1 --owner your-org \
--url "https://github.com/your-org/your-repo/issues/${ISSUE_NUM}" \
--format json | jq -r '.id')
# Set Status to "In Development" (requires GraphQL)
# See templates/project-config-example.json for field IDs
gh api graphql -f query='
mutation {
updateProjectV2ItemFieldValue(input: {
projectId: "PROJECT_ID"
itemId: "'$ITEM_ID'"
fieldId: "STATUS_FIELD_ID"
value: {singleSelectOptionId: "IN_PROGRESS_OPTION_ID"}
}) {
projectV2Item {
id
}
}
}'
```
> **Note:** Setting custom fields requires GraphQL. See `references/projects-v2.md`.
---
## Labels Reference (Example SaaS App)
### Priority Labels
| Label | Description | Color |
|-------|-------------|-------|
| `priority:critical` | Critical blocker, immediate attention | #d73a4a (Red) |
| `priority:high` | High priority, sprint critical | #ff9800 (Orange) |
| `priority:medium` | Medium priority | #ffeb3b (Yellow) |
| `priority:low` | Low priority, nice to have | #03a9f4 (Blue) |
### Domain Labels
| Label | Description | Color |
|-------|-------------|-------|
| `area:backend` | Backend (Python, FastAPI, PostgreSQL) | #0052cc (Blue) |
| `area:frontend` | Frontend (React, TypeScript, Vite) | #9c27b0 (Purple) |
| `area:database` | Database schema, migrations | #795548 (Brown) |
| `area:infrastructure` | DevOps, CI/CD, deployment | #607d8b (Blue Gray) |
| `area:api` | REST API, GraphQL | #00bcd4 (Cyan) |
### Type Labels
| Label | Description | Color |
|-------|-------------|-------|
| `type:feature` | New feature or enhancement | #a2eeef (Light Blue) |
| `type:bug` | Bug fix | #d73a4a (Red) |
| `type:refactor` | Code improvement, no behavior change | #fbca04 (Yellow) |
| `type:docs` | Documentation updates | #0075ca (Blue) |
| `type:test` | Test coverage improvements | #7057ff (Purple) |
| `type:security` | Security vulnerability or patch | #ee0701 (Dark Red) |
---
## Milestones Reference (Example SaaS App)
Example milestone structure for a SaaS application:
| Milestone | Due Date | Focus |
|-----------|----------|-------|
| v2.0 - Payment System | Q1 2026 | Stripe integration, subscriptions |
| v2.1 - User Management | Q2 2026 | SSO, RBAC, team management |
| v2.2 - Analytics Dashboard | Q2 2026 | Usage metrics, insights |
| v3.0 - Enterprise Features | Q3 2026 | Multi-tenancy, audit logs |
| v3.1 - Mobile App | Q4 2026 | iOS/Android native apps |
---
## Detailed Guides
For specific capabilities, see:
- **Issue Management**: `references/issue-management.md`
- Bulk operations, templates, parent/sub-issues
- **PR Workflows**: `references/pr-workflows.md`
- Review workflow, merge strategies, auto-merge
- **Projects v2**: `references/projects-v2.md`
- Custom fields, GraphQL mutations, this project field IDs
- **GraphQL API**: `references/graphql-api.md`
- Complex queries, pagination, bulk operations
- **Automation Patterns**: `references/automation-patterns.md`
- Aliases, error handling, rate limits, scripts
---
## Best Practices
1. **Always use `--json` for scripting** - Parse with `--jq` for reliability
2. **Non-interactive mode for automation** - Use `--title`, `--body` flags
3. **Check rate limits before bulk operations** - `gh api rate_limit`
4. **Use heredocs for multi-line content** - `--body "$(cat <<'EOF'...EOF)"`
5. **Link issues in PRs** - `Closes #123`, `Fixes #456`
6. **Add verification checklists** - Track test plan completion
7. **Never commit to dev/main directly** - Always use feature branches + PRs