npx claudepluginhub bendrucker/claude --plugin githubThis skill uses the workspace's default tool permissions.
Manage the inbox via GraphQL (list) and REST (actions). Requires `notifications` scope.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Manage the inbox via GraphQL (list) and REST (actions). Requires notifications scope.
Query: graphql/inbox.graphql
gh api graphql -f query="$(cat graphql/inbox.graphql)" \
--jq '[.data.viewer.notificationThreads.nodes[] | select(.isDone == false)]'
| Field | Description |
|---|---|
id | GraphQL node ID for mutations |
summaryId | Numeric ID for REST actions |
isUnread | Unread status |
isDone | Done status (hidden from inbox) |
isSaved | Saved for later |
reason | ASSIGN, AUTHOR, COMMENT, MANUAL, MENTION, REVIEW_REQUESTED, SUBSCRIBED, CI_ACTIVITY, STATE_CHANGE |
url | Browser URL (direct, no transform needed) |
REST (use summaryId):
gh api -X PATCH /notifications/threads/{summaryId} # Mark read
gh api -X DELETE /notifications/threads/{summaryId} # Mark done
gh api -X PUT /notifications # Mark all read
gh api -X DELETE /notifications/threads/{summaryId}/subscription # Unsubscribe
gh api -X PUT /notifications/threads/{summaryId}/subscription -f ignored=true # Mute
GraphQL mutations (use id):
gh api graphql -f query='mutation { markNotificationAsUnread(input: {id: "{id}"}) { success } }'
gh api graphql -f query='mutation { markNotificationAsUndone(input: {id: "{id}"}) { success } }'
Filter in jq after the GraphQL query:
# By reason
... --jq '[.data.viewer.notificationThreads.nodes[] | select(.isDone == false and .reason == "MENTION")]'
# Unread only
... --jq '[.data.viewer.notificationThreads.nodes[] | select(.isDone == false and .isUnread == true)]'
gh api graphql -f query='...' --jq '.data.viewer.notificationThreads.nodes[] | select(.isDone == false) | .summaryId' | \
xargs -I {} gh api -X DELETE /notifications/threads/{}