From ris-claude-code
Manages GitHub issues via gh CLI: create, list, search with filters, edit labels, bulk operations, JSON/jq parsing, issue-to-PR workflow, milestones, and AI session context storage.
npx claudepluginhub serejaris/ris-claude-codeThis skill uses the workspace's default tool permissions.
Efficient GitHub Issues management via `gh` CLI with AI session context storage.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Efficient GitHub Issues management via gh CLI with AI session context storage.
| Task | Command |
|---|---|
| Create issue | gh issue create -t "Title" -b "Body" -l bug -a @me |
| Active tasks | gh issue list -l in-progress -s open |
| List open bugs | gh issue list -l bug -s open |
| View as JSON | gh issue view 123 --json number,title,body,labels,state |
| Close with comment | gh issue close 123 -c "Fixed in #456" |
| Edit labels | gh issue edit 123 --add-label priority:high |
| Start work | gh issue edit 45 --add-label in-progress |
| Create branch | gh issue develop 123 --checkout |
| Load context | gh issue view 45 --json comments --jq '.comments[] | select(.body | contains("AI-CONTEXT"))' |
Always use --json for parsing. Fields: number, title, body, state, labels, assignees, milestone, author, createdAt, updatedAt, comments, url.
gh issue view 123 --json number,title,labels,state
gh issue list --json number,title,labels --jq '.[] | select(.labels[].name == "bug")'
gh issue list -l bug --json number --jq '.[].number'
gh issue list --search "is:open author:username"
gh issue list --search "created:>=2026-01-01 created:<=2026-01-07"
gh issue list --search "label:bug label:priority:high"
gh issue list --search "is:open -label:wontfix"
gh issue list --search "milestone:v2.0"
gh issue edit 10 15 20 --add-label "priority:high"
gh issue close 10 15 20 -c "Duplicate of #5"
gh issue list -l needs-triage --json number --jq '.[].number' | \
xargs -I{} gh issue edit {} --add-label reviewed
gh issue develop 123 --checkout # Create branch from issue
git add . && git commit -m "fix: #123" # Commit with reference
gh pr create --fill # Create PR (auto-links)
gh issue close 123 -c "Fixed in PR #456" # Close when merged
gh api repos/:owner/:repo/milestones --jq '.[].title'
gh issue edit 123 -m "v2.0"
Store session context in GitHub issues for seamless task handoff.
# Get AI context from issue comments
gh issue view 45 --json comments --jq '
.comments[] | select(.body | contains("AI-CONTEXT:START")) | .body
'
# Get comment ID for updates
gh issue view 45 --json comments --jq '
.comments[] | select(.body | contains("AI-CONTEXT:START")) | .id
'
# Create new context comment
gh issue comment 45 --body-file .ai-context.md
# Update existing (replace COMMENT_ID)
gh api repos/:owner/:repo/issues/comments/COMMENT_ID \
--method PATCH -f body="$(cat .ai-context.md)"
See references/context-template.md for full template. Minimal version:
<!-- AI-CONTEXT:START -->
## Context | IN_PROGRESS
**Files:** `file.py:45`, `other.py:120`
**Done:** task1, task2
**Next:** next task
**Resume:** One-line summary for cold start
<!-- AI-CONTEXT:END -->
Manage issue lifecycle with labels.
| Label | Meaning |
|---|---|
backlog | In queue |
in-progress | Active work |
blocked | Blocked |
review | Needs review |
# My active issues
gh issue list -l in-progress -s open
# All my assigned issues
gh issue list --assignee @me -s open
# Issues with context
gh issue list -s open --json number,title,labels --jq '
.[] | select(.labels[].name == "in-progress") | "#\(.number): \(.title)"
'
# Mark as in-progress
gh issue edit 45 --add-label in-progress --remove-label backlog
# View issue + load context
gh issue view 45 --json number,title,body,comments --jq '{
number, title, body,
context: (.comments[] | select(.body | contains("AI-CONTEXT")) | .body) // "No context"
}'
# Mark as blocked
gh issue edit 45 --add-label blocked --remove-label in-progress
# Add blocking comment
gh issue comment 45 --body "Blocked: waiting for API access"
# Close with comment
gh issue close 45 -c "Done in commit abc123"
# Or close via PR (auto-closes if PR body contains "Fixes #45")
gh issue create -t "Simplify bot flow" -b "## Problem
Bot stopped converting. Current flow is complex.
## Reference
Simple flow example from competitor.
## Tasks
- [ ] Analyze current flow
- [ ] Create new diagram
- [ ] Implement"
# 1. View issue with context
gh issue view 45 --json number,title,body,comments --jq '{
number, title, body,
context: (.comments[] | select(.body | contains("AI-CONTEXT")) | .body) // "No context"
}'
# 2. Create branch
gh issue develop 45 --checkout
# 3. Work...
# Create context file
cat > .ai-context.md << 'EOF'
<!-- AI-CONTEXT:START -->
## AI Session Context
_Last updated: 2026-01-07 16:00_
### Status
**IN_PROGRESS**
### Progress
- [x] Analyzed current flow
- [ ] Create new diagram
### Key Files
- `handlers/start.py:45-78` — start handler
- `data/courses.yaml` — config
### Next Steps
1. Draw simplified flow
2. Implement changes
### Resume Context
Simplifying bot flow. Analyzed current state. Next: create diagram.
<!-- AI-CONTEXT:END -->
EOF
# Save to issue
gh issue comment 45 --body-file .ai-context.md
# Load context
CONTEXT=$(gh issue view 45 --json comments --jq '
.comments[] | select(.body | contains("AI-CONTEXT")) | .body
' 2>/dev/null)
echo "$CONTEXT"
# Continue from where you left off...
| Mistake | Fix |
|---|---|
Missing --json | Always --json field1,field2 |
| Loop instead of multi-arg | gh issue edit 1 2 3 |
Using grep on output | Use --jq |
Forgot -s all for closed | Default is open only |
{owner}/{repo} in API | Use :owner/:repo |
| Duplicate context comments | Update existing, don't create new |