GitHub Issues
This Claude Code skill fetches newly opened GitHub issues from the past 24 hours across specified repositories and sends a prioritized digest ranked by severity (security/critical, bug, feature, other). Use it to receive a curated triage queue of issues that need attention, with deduplication against recent alerts and sorting by comment activity to surface issues already gaining momentum.
git clone --depth 1 https://github.com/aaronjmars/aeon /tmp/github-issues && cp -r /tmp/github-issues/skills/github-issues ~/.claude/skills/github-issuesSKILL.md
<!-- autoresearch: variation B — sharper output (priority-ranked triage queue instead of a flat list) -->
> **${var}** — Optional scope. Accepts `owner/repo`, `org:foo`, `user:bar`. Empty = all repos owned by the authenticated user.
Read memory/MEMORY.md for context.
Read the last 2 days of `memory/logs/` and extract any GitHub issue URLs already alerted — these are dedup candidates.
## Steps
1. Resolve the 24-hour window and the search scope:
```bash
YESTERDAY=$(date -u -d "yesterday" +%Y-%m-%dT%H:%M:%SZ 2>/dev/null \
|| date -u -v-1d +%Y-%m-%dT%H:%M:%SZ)
ME=$(gh api user --jq .login)
if [ -z "${var}" ]; then
SCOPE="user:$ME"
else
case "${var}" in
*:*) SCOPE="${var}" ;; # already qualified (org:foo, user:bar)
*/*) SCOPE="repo:${var}" ;; # owner/repo
*) SCOPE="user:${var}" ;; # bare login
esac
fi
```
2. Fetch every new open issue in scope with one advanced-search call (much cheaper than per-repo looping):
```bash
gh search issues --limit 100 \
--json number,title,url,createdAt,author,labels,repository,comments \
-- "$SCOPE is:issue is:open created:>$YESTERDAY sort:created-desc" \
> /tmp/gh-issues.json
```
If the call fails (422 / rate-limit / transient), fall back to looping `gh issue list -R <repo>` over `gh repo list "$ME" --limit 100 --json nameWithOwner,hasIssuesEnabled --jq '.[] | select(.hasIssuesEnabled) | .nameWithOwner'`, applying the same `createdAt > $YESTERDAY` filter via `--jq`.
3. Drop URLs already alerted in the previous 2 days of logs.
4. **Rank** each remaining issue into a priority bucket using its labels and title (case-insensitive regex):
- **P0 — security/critical**: any label or title matching `security|vuln|cve|exploit|critical|urgent|outage|p0`
- **P1 — bug/regression**: matches `bug|regression|broken|crash|error|p1`
- **P2 — feature/enhancement**: matches `feature|enhancement|feat|p2`
- **P3 — other**: everything else (questions, docs, chores)
5. Sort within each bucket by comment count desc, then `createdAt` desc (more comments = more attention already drawn).
6. If the post-dedup, post-rank set is empty: **send no notification**. Skip directly to step 8.
7. Format and send via `./notify`. Skip empty buckets. Cap message at ~3500 chars; if over, truncate P3 first, then P2:
```
*GitHub Issues — ${today}*
<K> new issue(s) across <N> repo(s)
🔴 P0 — security/critical
• <repo> · #N Title (@author) [labels] — <url>
🟠 P1 — bugs
• <repo> · #N Title (@author) [labels] — <url>
🟡 P2 — features
• <repo> · #N Title (@author) — <url>
⚪ P3 — other
• <repo> · #N Title (@author) — <url>
```
If P3 has more than 5 entries, collapse the tail to `+X more low-priority`.
8. Log to `memory/logs/${today}.md` under `### github-issues`:
- Scope used
- Counts: `P0=<n> P1=<n> P2=<n> P3=<n>`
- URLs (one per line, so the next run can dedup against this log)
If counts are all zero, log a single line `GITHUB_ISSUES_OK` and end.
## Sandbox note
`gh` CLI handles auth internally — no curl env-var expansion issues. The `gh search issues` → per-repo `gh issue list` fallback in step 2 covers transient sandbox or API failures.
## Constraints
- **Never alert the same issue twice** — dedup against the prior 2 days of logs is mandatory.
- **Silence on a clean day is a feature** — do not send a "0 issues" message.
- Read-only: do not label, comment on, or close issues. This skill reports; it does not act.Mention/keyword sweep on social platforms for [REPLACE: KEYWORDS] — trends, sentiment, top posts
5 concrete real-life actions, leverage-scored against open loops with specificity and anti-fluff gates
Curated AI-agent tweets, clustered into narratives with insight summaries
Tracker of AI agent substitution signals — which roles, companies, and industries show real headcount displacement. Named roles + real deployments only.
Competitive-intelligence digest on the AI agent framework space — momentum, releases, breaking changes across a curated watchlist
Cross-domain market pulse from AIXBT's free grounding endpoint — crypto, macro, tradfi, geopolitics. Refreshes taxonomy references (clusters, chains) as a bonus.
Pre-batch API provider health check — detects credit exhaustion or auth failure for every configured provider key before the scheduled batch runs, giving the operator a window to act before skills degrade
List a wallet's live ERC-20 token approvals on Base and flag unlimited / risky spender grants. Keyless via Base RPC (eth_getLogs + eth_call) — no explorer key needed.