>- Use when creating, searching, updating, or managing GitHub issues via CLI. "context", "handoff", "resume task", "session context", "save progress", "active tasks", "in-progress", "my tasks", "open issues". AI session context storage, task workflow with labels.
npx skills add https://github.com/serejaris/personal-corp-skills --skill gh-issues
Efficient GitHub Issues management via gh CLI with AI session context storage.
10. Common Mistakes
| 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 |
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.
Build agentic applications with GitHub Copilot SDK. Use when embedding AI agents in apps, creating custom tools, implementing streaming responses, managing sessions, connecting to MCP servers, or creating custom agents. Triggers on Copilot SDK, GitHub SDK, agentic app, embed Copilot, programmable agent, MCP server, custom agent.
Coding Agent Session Search - unified CLI/TUI to index and search local coding agent history from Claude Code, Codex, Gemini, Cursor, Aider, ChatGPT, Pi-Agent, Factory, and more. Purpose-built for AI agent consumption with robot mode.
Destructive Command Guard - High-performance Rust hook for Claude Code that blocks dangerous commands before execution. SIMD-accelerated, modular pack system, whitelist-first architecture. Essential safety layer for agent workflows.
Makepad UI development skills for Rust apps: setup, patterns, shaders, packaging, and troubleshooting.
Secure environment variable management ensuring secrets are never exposed in Claude sessions, terminals, logs, or git commits
Prompt for generating an AGENTS.md file for a repository
Take serejaris/gh-issues from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.