code/daily-brief/SKILL.md
--- name: daily-brief description: >- Surfaces recent updates relevant to you from GitHub, Linear, Slack, and other configured sources — PR reviews, new assignments, ticket changes, mentions, and CI failures. Use when starting work, catching up after being away, or prepping for standup. argument-hint: [--since "yesterday"] [--sources github,linear] context: fork allowed-tools: - AskUserQuestion - Bash - Read - Glob - Grep - mcp__claude_ai_Linear__list_issues - mcp__claude_a
npx skillsauth add mostafa-drz/claude-skills code/daily-briefInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Surface what changed since you last looked — PR reviews, ticket updates, new assignments, mentions — from all your project tools.
Read ~/.claude/skills/daily-brief/preferences.md using the Read tool. If not found, no preferences are set.
On startup, use Bash to gather: current git branch (git branch --show-current), repo name (gh repo view --json nameWithOwner -q .nameWithOwner), and GitHub username (gh api user -q .login). Skip any that fail.
Check $ARGUMENTS:
help → display help then stopconfig → interactive setup then stopreset → delete ~/.claude/skills/daily-brief/preferences.md, confirm, stopParse from $ARGUMENTS:
--since <time> — override lookback window (e.g., "2h", "yesterday", "monday")--sources <list> — comma-separated list to check only specific sources (github, linear, git, notion, slack)--verbose — show full details for each itemDaily Brief — What changed since you last looked
Usage:
/daily-brief Full brief from all sources
/daily-brief --since "2h" Only last 2 hours
/daily-brief --sources github,linear Only specific sources
/daily-brief --verbose Show full details per item
/daily-brief config Configure sources and defaults
/daily-brief reset Clear preferences
/daily-brief help This help
Sources (auto-detected):
GitHub PR reviews, review requests, mentions, CI failures
Linear Assigned ticket changes, new assignments, comments
Git Uncommitted work, unpushed commits, stale branches
Notion Recently updated pages (if MCP configured)
Slack Mentions and DMs (if MCP configured)
Current preferences:
(shown above under Preferences)
Use AskUserQuestion:
Q1 — "Default lookback window?" (Last 24 hours (default), Last 8 hours, Since last brief, Custom)
Q2 — "Which sources to include by default?" (multiSelect: true)
Q3 — "GitHub organization to focus on?" (detect from current repo, always ask, specific org)
Q4 — "Brief format?" (Concise — one line per item (default), Detailed — full context per item)
Save to ~/.claude/skills/daily-brief/preferences.md.
If no preferences file exists, show:
"First time using /daily-brief? Run /daily-brief config to choose sources and defaults, or continue — I'll auto-detect available sources."
Then proceed.
Check which sources are accessible:
Always available:
gh CLI: gh auth status 2>&1git rev-parse --git-dir 2>&1MCP-dependent (try and gracefully skip if unavailable):
list_teams to verify accessnotion-search to verify accessReport which sources were found:
Sources available: GitHub, Linear, Git
Sources skipped: Notion (not configured), Slack (not configured)
If --sources flag is set, only use those sources (and warn if any are unavailable).
In order of priority:
--since flag if providedlast-brief-timestamp from preferences (if "since last brief" mode)Convert to ISO timestamp for API queries.
gh CLI)Run these in parallel:
PR reviews on my PRs:
gh api graphql -f query='{ viewer { pullRequests(first: 20, states: OPEN) { nodes { number title url reviews(last: 5, states: [APPROVED, CHANGES_REQUESTED, COMMENTED]) { nodes { author { login } state submittedAt body } } } } } }' 2>/dev/null
Filter reviews submitted after the time window.
Review requests for me:
gh pr list --search "review-requested:@me" --state open --limit 10 --json number,title,url,updatedAt,repository
Mentions in issues/PRs:
gh api notifications --paginate -q '.[] | select(.reason == "mention" or .reason == "review_requested" or .reason == "assign")' 2>/dev/null
CI failures on my recent PRs:
gh pr list --author @me --state open --limit 10 --json number,title,headRefName,statusCheckRollup
Filter for PRs with failing checks.
Recently updated assigned issues:
Use list_issues with filter: assignee is me, updated after time window, ordered by updatedAt.
New assignments:
Use list_issues with filter: assignee is me, created after time window.
Comments on my issues:
For each recently updated issue, use list_comments to find new comments by others.
# Uncommitted changes
git status --short 2>/dev/null
# Unpushed commits
git log @{upstream}..HEAD --oneline 2>/dev/null
# Branches with recent activity
git for-each-ref --sort=-committerdate --format='%(refname:short) %(committerdate:relative)' refs/heads/ --count=5 2>/dev/null
Use notion-search with filter for recently edited pages. Show titles and last edited time.
If Slack MCP tools are available in the session, fetch recent mentions and DMs. Otherwise, skip gracefully.
For each update, assign a priority:
| Signal | Priority | Example | |---|---|---| | Changes requested on my PR | High | Reviewer wants fixes | | New review request for me | High | Someone waiting on me | | CI failing on my PR | High | Blocking merge | | New assignment | Medium | New work to plan | | Comment on my ticket | Medium | Discussion to engage | | Mention | Medium | Someone needs my input | | Approved PR | Low | Ready to merge | | Ticket status change | Low | FYI update | | Notion page edit | Low | Background awareness |
Remove duplicates (same item from multiple sources). Sort by priority, then recency.
Daily Brief — {date}, since {time window}
Sources: GitHub, Linear, Git {Notion, Slack if available}
Needs attention:
1. [PR] Changes requested on #394 "Refactor auth" by @reviewer — 3h ago
2. [PR] Review requested: #401 "Add caching layer" by @teammate — 5h ago
3. [CI] Failing checks on #398 "Fix pipeline" — 2 jobs failed
Updates:
4. [Linear] AIS-950 "Email notifications" moved to In Review — 6h ago
5. [Linear] New comment on AIS-948 by @teammate — "Can we also..."
6. [PR] #393 approved by @reviewer — ready to merge
Local:
7. [Git] 3 uncommitted files on branch mostafa/ais-950-email
8. [Git] 2 unpushed commits
{Notion/Slack sections if available and have updates}
No updates: {list of sources with nothing new}
If --verbose, expand each item with full context (PR description, comment text, CI error summary, etc.).
Use AskUserQuestion (multiSelect: false):
Options based on what's in the digest:
If the user picks an item, provide full context and offer relevant follow-up actions. Then re-offer the action menu.
After the brief completes, save the current timestamp to preferences as last-brief-timestamp so the next run can use "since last brief" mode.
development
--- name: triage-board description: >- Generates a structured triage artifact from the current conversation's findings — a self-contained Desktop folder with a JSON Schema, schema-conformant report.json, prose markdown, and a single-file HTML viewer. Viewer ships with MD / CSV / JSON download buttons in the header and a per-finding "Copy as Markdown" action that produces a GitHub/Linear/Notion-ready ticket block. Stateless — triage state lives in the user's ticket system, not in the
development
Runs a beginner-mind end-to-end UI audit of any running app — local dev server, staging, production, or a specific URL. Drives Chrome through every interactive element on the target surface, collects structured findings (severity, category, where, symptom, impact, repro, triage), and hands the result off to `/triage-board` which produces the Desktop folder (schema + JSON + Markdown + single-file HTML viewer with MD/CSV/JSON exports and a per-finding Copy as Markdown button). Use when you want fresh-eyes verification of a feature, page, modal, flow, branch, or whole app — before shipping, before review, before a demo, or any time the UI deserves a careful poke.
development
Reviews the user's past Claude Code conversations from a wellbeing perspective — sentiment, tone, emotional arc, recurring patterns — and generates a supportive, science-grounded report in both Markdown and HTML. Default lookback is 48 hours across all projects. Uses recognised emotion frameworks (Plutchik, Ekman, Russell's circumplex, Pennebaker linguistic markers) and cites the science behind every observation. Learns the user's baseline tone over time so future reports flag genuine shifts, not noise. Use when the user asks for an emotional/wellbeing recap, mood check, sentiment review, or wants to understand their own ups and downs across recent work sessions.
development
--- name: workflow-advisor description: >- Analyzes recent Claude Code conversations and local Claude state (skills, settings, memory files, CLAUDE.md), researches the latest Claude Code features and best practices online, and suggests one workflow improvement at a time with reasoning and a concrete action item. Can save accepted suggestions to memory for tracking. Use when you want to discover underused Claude Code features, improve your development workflow, stay current with the lat