You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(skill): add inbox-triage skill for notifications toolset
Ship a second bundled skill that walks the agent through systematic
GitHub notifications triage: enumerate with list_notifications,
partition by reason (review_requested / mention / assign /
security_alert — high; author / comment / state_change — medium;
ci_activity / subscribed — low), act on high-priority items, then
dismiss with state "done" or "read" per the skill's rule.
Demonstrates:
- Multiple bundled skills in one server (registry now has two entries).
- Per-skill toolset gating — pull-requests gates on pull_requests,
inbox-triage gates on the non-default notifications toolset, so
enabling one does not force the other.
- Cross-skill reference (the inbox-triage workflow points at the
pull-requests skill when handling review_requested items).
- Skills teaching workflow judgment (priority buckets) that tool
descriptions alone cannot encode.
Tests cover the symmetric structural checks, per-toolset registration
paths, the multi-skill index.json shape, and the capability declaration
firing on either toolset.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description: "Submit a multi-comment GitHub pull request review using the pending-review workflow. Use when leaving line-specific feedback on a pull request, when asked to review a PR, or whenever creating any review with more than one comment.",
Description: "Submit a multi-comment GitHub pull request review using the pending-review workflow. Use when leaving line-specific feedback on a pull request, when asked to review a PR, or whenever creating any review with more than one comment.",
Description: "Systematically triage the current user's GitHub notifications inbox — enumerate unread items, prioritize by notification reason (review requests, mentions, assignments, security alerts), act on the high-priority ones, then dismiss the rest. Use when the user asks \"what should I work on?\", \"catch me up on GitHub\", \"triage my inbox\", \"what needs my attention?\", or otherwise wants to clear their notifications backlog.",
description: Systematically triage the current user's GitHub notifications inbox — enumerate unread items, prioritize by notification reason (review requests, mentions, assignments, security alerts), act on the high-priority ones, then dismiss the rest. Use when the user asks "what should I work on?", "catch me up on GitHub", "triage my inbox", "what needs my attention?", or otherwise wants to clear their notifications backlog.
4
+
---
5
+
6
+
## When to use
7
+
8
+
Use this skill when the user asks about their GitHub inbox, pending work, or outstanding notifications — any of:
9
+
10
+
- "What should I work on next?"
11
+
- "Catch me up on GitHub."
12
+
- "Triage my inbox."
13
+
- "What needs my attention?"
14
+
- "Clear my notifications."
15
+
16
+
## Workflow
17
+
18
+
1.**Enumerate.** Call `list_notifications` with `filter: "default"` (unread only — the common case). Switch to `filter: "include_read"` only if the user explicitly asks for a full sweep. Pass `since` as an RFC3339 timestamp to scope to recent activity (e.g. the last day or since the last triage).
19
+
20
+
2.**Partition by `reason`.** Each notification carries a `reason` field. Group into priority buckets:
21
+
22
+
-**High — act or respond promptly:**
23
+
-`review_requested` — someone is waiting on your review.
24
+
-`mention` / `team_mention` — you were @-referenced.
25
+
-`assign` — you were assigned an issue or PR.
26
+
-`security_alert` — security advisory or Dependabot alert.
27
+
-**Medium — read and decide:**
28
+
-`author` — updates on threads you opened.
29
+
-`comment` — replies on threads you participated in.
30
+
-`state_change` — issue/PR closed or reopened.
31
+
-**Low — usually safe to mark read without reading:**
32
+
-`ci_activity` — workflow runs. Look only if you own CI for this repo.
33
+
-`subscribed` — repo-watch updates on threads you haven't participated in.
34
+
35
+
3.**Drill in on high-priority.** For each high-priority notification, call `get_notification_details` to inspect the item, then take the appropriate action — leave a review (see the `pull-requests` skill), comment, close, etc.
36
+
37
+
4.**Dismiss as you go.** After acting on (or deciding to skip) each high-priority item, call `dismiss_notification` with the `threadID` and a `state`:
38
+
-`state: "done"` archives the notification so it no longer appears in default queries. Use for items you've fully resolved.
39
+
-`state: "read"` keeps the notification visible but marks it acknowledged. Use for "I've seen this, coming back later."
40
+
41
+
5.**Bulk-close the noise.** After the high-priority pass, if a large medium/low bucket remains and the user is comfortable, call `mark_all_notifications_read`. Only do this with explicit user approval — a blanket mark-read can bury something the partitioning rules missed.
42
+
43
+
## Caveats
44
+
45
+
-**`read` vs `done` matters.**`read` leaves the notification in the default inbox; `done` removes it. Pick intentionally based on whether there's follow-up.
46
+
-**Silence chatty threads.** If one issue/PR is generating a flood, call `manage_notification_subscription` with action `ignore` to silence that specific thread. For an entire noisy repository, use `manage_repository_notification_subscription`.
47
+
-**Surface decisions, don't hide them.** After each bucket, summarize to the user what you acted on, what you dismissed, and what's left open for them. Do not silently mark-read a pile of notifications.
48
+
-**Respect scope.** If the user narrows to a specific repo ("triage my inbox for `owner/repo`"), pass `owner` and `repo` to `list_notifications` rather than filtering client-side after fetching everything.
0 commit comments