coffee
Skill2 starsChanged 19 days agoApache-2.0View on GitHub
Morning briefing - calendar, email, PRs, reviews, Jira, merges, ephemeral envs, yesterday's commits, alerts, knowledge stats, and suggested actions. Use when user says "good morning", "start my day", "morning briefing", or "coffee".
1 other project uses a version of this.
Adopted by
Most recently taken up by
- sawzhang/coffee-mcptheir own version, first seen Mar 24, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- sawzhang/coffee-mcp★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository124 other files it gives its agents.
- add-projectSkill
- ansible-configure-vmSkill
- api-smoke-testSkill
- appinterface-checkSkill
- attach-session-to-jiraSkill
- aws-rds-debugSkill
- beerSkill
- bootstrap-all-knowledgeSkill
- bootstrap-knowledgeSkill
- build-persona-styleSkill
- cancel-pipelineSkill
- cert-checkSkill
- check-ci-healthSkill
- check-integration-testsSkill
- check-mr-feedbackSkill
- check-my-prsSkill
- check-secretsSkill
- ci-retrySkill
- cleanup-branchesSkill
- cleanup-stale-executionsSkill
- clone-jira-issueSkill
- close-issueSkill
- close-mrSkill
- cloud-inventorySkill
- compare-optionsSkill
- create-jira-issueSkill
- create-mrSkill
- create-slide-deckSkill
- data-migration-verifySkill
- debug-local-dbSkill
- debug-prodSkill
- deploy-to-ephemeralSkill
- dev-workflow-orchestratorSkill
- discovered-work-summarySkill
- edit-slide-deckSkill
- email-digestSkill
- environment-overviewSkill
- explain-codeSkill
- export-presentationSkill
- extend-ephemeralSkill
- find-similar-codeSkill
- gather-contextSkill
- gdrive-researchSkill
- gke-cluster-opsSkill
- hello-worldSkill
- hotfixSkill
- inscope-researchSkill
- investigate-alertSkill
- investigate-service-issuesSkill
- investigate-slack-alertSkill
- jira-hygiene-allSkill
- jira-hygieneSkill
- knowledge-refreshSkill
- konflux-statusSkill
- learn-architectureSkill
- learn-patternSkill
- list-presentationsSkill
- local-build-testSkill
- local-dev-environmentSkill
- manage-local-servicesSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 0 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 46
If full_email_scan: gmail_list_emails(unread_only=True) — fetch metadata (Subject, From, To, Cc), classify as:
- Very specific: line 51
If auto_archive_email: archive newsletters, notifications, cc-only
- Very specific: line 104
Update state/current_work: sync open_mrs, feedback_waiting, reviews_assigned, last_coffee
- Very specific: line 105
If network error (no such host): learn_tool_fix("gitlab_mr_list", "no such host", "VPN not connected", "Run vpn_connect()")
- Very specific: line 106
If pipeline failures: record in learned/patterns → pipeline_failures
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Coffee - Morning Briefing
Produces a formatted markdown briefing with sections for each category, followed by suggested actions.
Inputs
| Input | Type | Default | Purpose |
full_email_scan | bool | false | Process all unread emails vs summary |
auto_archive_email | bool | false | Auto-archive low-priority emails |
days_back | int | 1 | Days to look back for Jira/activity |
slack_format | bool | false | Use <URL|Text> link format for Slack |
Persona Switches
Load personas as needed for tool access:
- developer (default): GitLab, Git, Jira, Gmail, Calendar
- incident:
alertmanager_alerts - devops:
bonfire_namespace_list
Workflow
1. Bootstrap
persona_load("developer")- Load config and memory:
memory_read("state/current_work")
2. Check Known Issues (before each tool category)
check_known_issues("gitlab_mr_list")check_known_issues("jira_search")check_known_issues("bonfire")
3. Knowledge & Vector Stats
knowledge_query(project="automation-analytics-backend", section="metadata")code_stats(project="automation-analytics-backend")— index health, files, chunks, searches
4. Calendar
google_calendar_list_events— today's events with Meet links (same OAuth as Gmail)
5. Email
gmail_unread_count— unread count- If
full_email_scan:gmail_list_emails(unread_only=True)— fetch metadata (Subject, From, To, Cc), classify as:- directed-at-me: in To (not CC), or Jira/GitLab assigned/mentioned
- newsletter: newsletter, digest, unsubscribe patterns
- notification: automated senders (noreply, notifications@)
- cc-only: in CC only, not mentioned in subject
- If
auto_archive_email: archive newsletters, notifications, cc-only
6. PRs (multi-project)
Get GitLab projects from config.json → repositories (exclude github: prefixed). For each:
gitlab_mr_list(project, author="@me")— open PRsgitlab_mr_list(project, state="merged")— recent mergesgitlab_mr_list(project, reviewer="@me")— review requests
For each open PR (up to 5):
gitlab_mr_comments(project, mr_id)— feedback waitinggitlab_ci_status(project, branch)— pipeline status
Pipeline failures: Parse .gitlab-ci.yml for allow_failure: true jobs; exclude those from "failed" count.
7. Jira
jira_search(jql="project = AAP AND updated >= -{days_back}d AND labels = 'automation-analytics' ORDER BY updated DESC", max_results=20)
8. Alerts
persona_load("incident")alertmanager_alerts(environment="stage", filter_name="Automation Analytics", silenced=false)alertmanager_alerts(environment="production", filter_name="Automation Analytics", silenced=false)
9. Ephemeral
persona_load("devops")bonfire_namespace_list(mine_only=true)
10. Yesterday's Work
persona_load("developer")git_log(repo="automation-analytics-backend", author="@me", since="yesterday", until="today", limit=10)
11. Output Format
# ☕ Good morning, {first_name}!
**{day_name}, {date}** | {time}
## 🎯 Current Work (from memory)
## 📅 Today's Calendar
## 📧 Email
## 🔀 Your PRs
- Open PRs, Feedback Waiting, Failed Pipelines (exclude allow_failure jobs)
## 👀 Review Requests
## 📋 Jira Activity
## 🚀 Recent Merges
## 🧪 Ephemeral Environments
## 📝 Yesterday's Work
## 🚨 Alerts
## 🧠 Knowledge & Search
## 🎯 Suggested Actions12. Post-Briefing
memory_session_log("Morning coffee briefing", "PRs: X, Reviews: Y, Failed: Z")- Update
state/current_work: syncopen_mrs,feedback_waiting,reviews_assigned,last_coffee - If network error (no such host):
learn_tool_fix("gitlab_mr_list", "no such host", "VPN not connected", "Run vpn_connect()") - If pipeline failures: record in
learned/patterns→pipeline_failures skill_run("standup_summary", "{}")— chain to standuppersona_load("developer")— restore
Key Details
- GitLab projects: automation-analytics-backend, pdf-generator, app-interface, konflux-release-data (from config)
- Jira JQL:
labels = 'automation-analytics' - Link format:
slack_format→<url|text>, else[text](url) - Network errors: Detect "no such host", "dial tcp" → suggest
vpn_connect()
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

