feat: v14.0.0 — 12 community-inspired skills, pm-writers profession, extend pm-cross/operations/engineering
New profession: Writers & Content Creators (pm-writers bundle, skills 156–160) - instagram-post-downloader: Downloads Instagram images/carousels as high-res files + PDF stitch - aeo-optimizer: Restructures articles for AI citation (AEO) — question H2s, answer capsules, trust signal audit - thumbnail-creator: Generates brand-aligned thumbnail candidates via Gemini API with computer vision eval - substack-notes-scraper: Scrapes Substack Notes engagement data to formatted .xlsx - notes-humanizer: Strips AI writing patterns across 3 phases; injects genuine human signals Extended pm-cross (+3 skills, skills 161–163): - sycophancy-challenger: Argues against your idea first, holds position under pushback - last-30-days-research: Multi-platform research (Reddit, X, web) with signal confidence scoring - notebooklm-connector: Automates NotebookLM from Claude Code via Chrome extension Extended pm-operations (+2 skills, skills 164–165): - email-triage: Reads Gmail and surfaces only actionable emails with priority + reply starters - morning-intelligence: 15-question interview → personalised master news brief prompt Extended pm-engineering (+2 skills, skills 166–167): - context-mode: Output filtering + session log for long Claude Code sessions - claude-superpowers: Plan→Isolate→Test→Double-review framework for Claude Code Updated: marketplace.json v14.0.0 (167 skills, 18 professions, 26 bundles) Updated: README.md — title, badges, What's New, All 167 Skills table, install list Credits: skills inspired by Frank & Diana Dovgopol, Gencay (LearnAIwithMe), Karen Spinner (Wondering About AI), Orel (TheIndiepreneur), Joel Salinas (Leadership in Change), Ilia Karelin (Prosper), Ashwin Francis (Cash&Cache), Nate Herk https://claude.ai/code/session_01E4bTUWxx4Zo5rsFpad5X5B
This commit is contained in:
@@ -0,0 +1,186 @@
|
||||
---
|
||||
name: email-triage
|
||||
description: Reads your Gmail inbox for a configurable window (default: last 8 hours) and surfaces only what needs action — replies, decisions, or follow-up. Filters out receipts, notifications, newsletters, and anything that doesn't need you.
|
||||
---
|
||||
|
||||
# Email Triage
|
||||
|
||||
## The Problem
|
||||
|
||||
Most of us spend real time triaging email that could be sorted automatically. Scrolling through a mixed inbox of newsletters, order confirmations, Jira notifications, and actual human asks is a tax on focus. The 40 emails since lunch contain maybe 4 that actually need you — this skill finds those 4.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
| Requirement | Details |
|
||||
|-------------|---------|
|
||||
| Gmail connector | Must be active in Claude settings (Settings → Connectors → Gmail) |
|
||||
| Gmail account | The account you want triaged |
|
||||
|
||||
If the Gmail connector is not connected, Claude will prompt you to connect it before proceeding.
|
||||
|
||||
## Required Inputs
|
||||
|
||||
| Input | Required | Default | Notes |
|
||||
|-------|----------|---------|-------|
|
||||
| Time window | No | Last 8 hours | Accepts: "last 8 hours", "last 24h", "today", "since Monday", "last 3 days" |
|
||||
| Always-include senders | No | None | Specific names or email addresses that always surface, regardless of content |
|
||||
| Always-ignore senders | No | None | Domains or addresses to always suppress (e.g. noreply@*, jira@company.com) |
|
||||
| Focus area | No | None | Optional context: "focus on anything from clients" or "flag anything about the launch" |
|
||||
|
||||
## What Gets Filtered Out
|
||||
|
||||
Claude suppresses the following categories. They are counted in the summary but not shown:
|
||||
|
||||
- Order confirmations and shipping notifications
|
||||
- Marketing and promotional emails (including "one-time" offer emails)
|
||||
- Newsletter subscriptions and digest emails
|
||||
- Automated system notifications (monitoring alerts, CI/CD, build reports)
|
||||
- Calendar invites that have already been accepted or declined
|
||||
- Read receipts and delivery confirmations
|
||||
- Social media notifications (LinkedIn, Twitter/X, etc.)
|
||||
- Internal ticket updates unless the ticket is assigned to you and requires action
|
||||
- Bank and financial statements (surfaced count only, not content)
|
||||
|
||||
## What Gets Surfaced
|
||||
|
||||
Claude surfaces only emails that meet one or more of these criteria:
|
||||
|
||||
- A human is waiting for a reply
|
||||
- A decision is being requested
|
||||
- There is a deadline or time-sensitive ask, explicit or implied
|
||||
- The sender is someone who does not usually email you (potential priority signal)
|
||||
- The email is from a sender in your always-include list
|
||||
|
||||
## Output Format
|
||||
|
||||
```
|
||||
## Inbox Triage — [Time window] | [Date], [Time]
|
||||
**Total emails scanned:** X | **Actionable:** Y | **Filtered out:** Z
|
||||
|
||||
---
|
||||
|
||||
### 🔴 High Priority — Needs reply or decision today
|
||||
|
||||
**From:** [Name] <email@domain.com>
|
||||
**Subject:** [Subject line]
|
||||
**Received:** [Time, e.g. 2:14 PM]
|
||||
**What they need:** [One sentence — the actual ask, not a summary of the email]
|
||||
**Reply starter:** "[A draft opener they can continue — 1 sentence max]"
|
||||
|
||||
---
|
||||
|
||||
**From:** [Name] <email@domain.com>
|
||||
**Subject:** [Subject line]
|
||||
**Received:** [Time]
|
||||
**What they need:** [One sentence]
|
||||
**Reply starter:** "[Draft opener]"
|
||||
|
||||
---
|
||||
|
||||
### 🟡 Medium Priority — Reply within 24–48h
|
||||
|
||||
**From:** [Name] <email@domain.com>
|
||||
**Subject:** [Subject line]
|
||||
**Received:** [Time]
|
||||
**What they need:** [One sentence]
|
||||
**Reply starter:** "[Draft opener]" *(or "No reply needed — action only: [what to do]")*
|
||||
|
||||
---
|
||||
|
||||
### 🟢 FYI — Worth knowing, no action required
|
||||
|
||||
- **[Name]** re: [Subject] — [One-line summary of why it might be relevant]
|
||||
- **[Name]** re: [Subject] — [One-line summary]
|
||||
|
||||
---
|
||||
|
||||
### ⚪ Filtered Out — [Z emails]
|
||||
Receipts: X | Newsletters: X | Notifications: X | Other automated: X
|
||||
*(No action needed — not shown in detail)*
|
||||
```
|
||||
|
||||
## Instructions for Claude
|
||||
|
||||
### Step 1 — Connect and confirm the time window
|
||||
|
||||
Confirm the Gmail connector is active. Parse the requested time window and translate it to an exact datetime range (e.g. "last 8 hours" = [current time minus 8 hours] to now). State the window at the top of the output.
|
||||
|
||||
### Step 2 — Read the inbox
|
||||
|
||||
Fetch emails from the inbox for the specified time window. Include: sender name, sender email, subject, received time, and email body (or first 500 words if long). Do not fetch emails older than the window.
|
||||
|
||||
### Step 3 — Apply ignore rules
|
||||
|
||||
If the user specified always-ignore senders or domains, suppress those immediately. If no ignore list was given, apply standard suppression (see What Gets Filtered Out). Track counts for the filtered summary.
|
||||
|
||||
### Step 4 — Classify each remaining email
|
||||
|
||||
For each non-suppressed email, classify into one of four categories:
|
||||
|
||||
- **High Priority**: A human is waiting on a reply today, or there is an explicit deadline within 24 hours
|
||||
- **Medium Priority**: A reply is needed but not urgently, or there is an implicit ask without a hard deadline
|
||||
- **FYI**: No action needed, but the user would likely want to know about it
|
||||
- **Filtered Out**: Falls into a suppressed category — add to count, do not show
|
||||
|
||||
Apply the always-include list after classification: any email from a flagged sender surfaces regardless of category, with its actual classification.
|
||||
|
||||
### Step 5 — Write the "What they need" line
|
||||
|
||||
This is the highest-value part of the output. Write exactly one sentence that captures the actual ask — not a summary of the email, the ask.
|
||||
|
||||
Bad: "Sarah sent an email about the Q3 report."
|
||||
Good: "Sarah needs your sign-off on the Q3 report before she sends it to the board at 5 PM."
|
||||
|
||||
If there is no clear ask, it is probably FYI or filtered out.
|
||||
|
||||
### Step 6 — Write the reply starter
|
||||
|
||||
For High and Medium priority emails, write a one-sentence reply opener. The opener should:
|
||||
- Match the tone of the sender (formal vs. casual)
|
||||
- Acknowledge the ask directly
|
||||
- Be something the user can actually send with minimal editing
|
||||
|
||||
Example: "Thanks for flagging this — let me check with the team and get back to you by EOD."
|
||||
|
||||
If the email requires an action rather than a reply (e.g. "please approve this expense"), write: "No reply needed — action only: [describe the action]."
|
||||
|
||||
### Step 7 — Assemble and deliver the output
|
||||
|
||||
Use the output format exactly as specified. Do not add extra sections, editorialise, or explain your reasoning. The output should be scannable in under 60 seconds.
|
||||
|
||||
### Step 8 — Offer next steps
|
||||
|
||||
After the triage output, offer one of:
|
||||
- "Want me to draft replies to any of these?"
|
||||
- "Say 'reply to [name]' and I'll draft it."
|
||||
|
||||
Keep this to one line. Do not elaborate.
|
||||
|
||||
## Quality Checks
|
||||
|
||||
- [ ] Time window was applied correctly — no emails outside the window are included
|
||||
- [ ] Gmail connector was confirmed active before reading
|
||||
- [ ] Every High Priority email has a specific, concrete "What they need" sentence — not a vague summary
|
||||
- [ ] Reply starters match the tone of the original email (formal/informal)
|
||||
- [ ] Filtered-out count is accurate and broken down by category
|
||||
- [ ] FYI section contains only emails with no action required — nothing actionable is buried here
|
||||
- [ ] Always-include senders surfaced regardless of category
|
||||
- [ ] Always-ignore senders/domains are fully suppressed
|
||||
- [ ] Output is scannable — no unnecessary prose, no padding
|
||||
- [ ] Financial statements and sensitive content were counted but not shown in full
|
||||
|
||||
## Dispatch / Mobile Usage
|
||||
|
||||
This skill works from the Claude mobile app (Dispatch). On mobile, the output renders cleanly with the emoji priority markers serving as visual anchors for quick scanning. Recommended mobile trigger: "Check my emails" or "/email-triage".
|
||||
|
||||
## Example Trigger Phrases
|
||||
|
||||
- `/email-triage`
|
||||
- "Check my emails"
|
||||
- "What emails need my attention?"
|
||||
- "Triage my inbox for the last 8 hours"
|
||||
- "What came in since this morning?"
|
||||
- "Any urgent emails I need to deal with?"
|
||||
- "Triage my inbox — ignore anything from Jira and the marketing domain"
|
||||
- "Check emails from the last 24 hours, flag anything from [client name]"
|
||||
- "What do I need to reply to today?"
|
||||
@@ -0,0 +1,198 @@
|
||||
---
|
||||
name: morning-intelligence
|
||||
description: "Run a 15-question interview to capture your role, topics, sources, exclusions, and format preferences — then write a master prompt you can drop into a scheduled task or Claude Code Routine to get a personalised news brief every morning. Use when asked to set up a morning intelligence brief, build a morning news prompt, or create a personalised news briefing."
|
||||
---
|
||||
|
||||
# Morning Intelligence Skill
|
||||
|
||||
Write the prompt that writes your briefing. A 15-question interview extracts your exact context — role, topics, sources, exclusions, format, recency — then produces a single master prompt you can paste into a scheduled task or Claude Code Routine and never touch again.
|
||||
|
||||
> **Pro tip:** Run this interview with Opus for the best output. Opus asks sharper follow-up questions and writes a tighter master prompt.
|
||||
|
||||
> **Credit:** Originally created by Ashwin Francis (Cash&Cache) — adapted and extended for this library.
|
||||
|
||||
---
|
||||
|
||||
## Required Inputs
|
||||
|
||||
No inputs required upfront. The skill runs the interview first.
|
||||
|
||||
If the user has already provided context (e.g. pasted a role description or topic list), absorb it and skip those questions in the interview — don't ask for information already given.
|
||||
|
||||
---
|
||||
|
||||
## How the Interview Works
|
||||
|
||||
Run questions **one at a time** (or in small groups of 2–3 where they're closely related). Don't dump all 15 at once. Wait for each answer before proceeding. Ask natural follow-ups where the answer is vague.
|
||||
|
||||
### Interview Questions
|
||||
|
||||
**Block 1 — Who you are and how you read**
|
||||
|
||||
1. What is your role, and what lens do you read news through? (e.g. "Head of Product at a B2B SaaS — I read for competitive moves, AI tooling, and enterprise buying signals.")
|
||||
2. What are the 3–5 topics you always want covered? Be specific — "AI" is too broad; "AI applied to enterprise software" is better.
|
||||
3. What are 2–3 topics you actively want filtered out — things that waste your time every morning?
|
||||
|
||||
**Block 2 — Sources and signals**
|
||||
|
||||
4. Which publications, newsletters, or outlets do you trust most? (Examples: The Information, TLDR, Benedict Evans, Stratechery, FT, specific subreddits)
|
||||
5. Are there any Twitter/X accounts, Substack writers, or niche sources that are must-reads for you specifically?
|
||||
6. Is there any geography that matters — are you focused on a specific country, region, or market?
|
||||
|
||||
**Block 3 — Story type and recency**
|
||||
|
||||
7. What mix of story types do you want? Rank or weight these: breaking news / in-depth analysis / opinion / data & research / product launches & announcements.
|
||||
8. How fresh does the content need to be? Only today's news? Last 24 hours? Last 48 hours? Or are you okay with "last few days" if a story is important enough?
|
||||
|
||||
**Block 4 — Format and time**
|
||||
|
||||
9. How do you want the brief formatted? Options: bullet list by topic / short narrative paragraphs / a digest with headlines + 1-line summaries / a table / mixed.
|
||||
10. What's your reading time budget in the morning? 5 minutes (tight digest) / 10 minutes (fuller brief) / 15 minutes (comprehensive).
|
||||
|
||||
**Block 5 — This week specifically**
|
||||
|
||||
11. Is there anything you're tracking this week in particular — a specific company, deal, product launch, regulatory development, or ongoing story?
|
||||
|
||||
**Block 6 — Follow-up clarification (questions 12–15)**
|
||||
|
||||
Based on the answers above, ask 4 targeted follow-up questions to sharpen ambiguities. Examples of what to probe:
|
||||
|
||||
- If a topic is still broad: "You said [topic] — do you want the technical angle, the business/market angle, or both?"
|
||||
- If sources are vague: "When you say [publication], do you want everything from them or only specific sections/writers?"
|
||||
- If format is unclear: "You want bullets — should each topic have its own section with 3–5 bullets, or one flat list of all stories?"
|
||||
- If recency conflicts with format: "You want only today's news but a comprehensive 15-minute brief — on slow news days, should I go deeper on one story or pull from the last 48 hours to fill it out?"
|
||||
- If exclusions are vague: "You said no [topic] — does that include adjacent topics like [related thing], or strictly [topic]?"
|
||||
|
||||
Use your judgement on which 4 are most worth asking given the actual answers.
|
||||
|
||||
---
|
||||
|
||||
## Output Structure
|
||||
|
||||
After the interview is complete, produce three things in order:
|
||||
|
||||
### 1. Summary of What You Told Me
|
||||
|
||||
A brief summary of the interview, clustered into thematic pillars. This lets the user verify the master prompt will be accurate before it's written.
|
||||
|
||||
```
|
||||
WHAT I HEARD
|
||||
────────────
|
||||
Role lens: [1 sentence]
|
||||
Core topics: [Pillar 1] · [Pillar 2] · [Pillar 3]
|
||||
Exclusions: [Topic A], [Topic B]
|
||||
Sources: [List]
|
||||
Story mix: [e.g. 60% analysis, 30% news, 10% data]
|
||||
Recency: [e.g. Last 24 hours, today only for breaking]
|
||||
Format: [e.g. Bullets by topic, ~10 min read]
|
||||
This week: [Specific tracking items]
|
||||
```
|
||||
|
||||
Confirm: "Does this look right? I'll write the master prompt based on this."
|
||||
|
||||
---
|
||||
|
||||
### 2. The Master Prompt
|
||||
|
||||
Formatted and ready to paste. Start with a markdown code block so the user can copy it cleanly.
|
||||
|
||||
````
|
||||
```
|
||||
MORNING INTELLIGENCE BRIEF — MASTER PROMPT
|
||||
==========================================
|
||||
|
||||
You are an intelligence analyst briefing [ROLE] at the start of their day.
|
||||
|
||||
TASK
|
||||
Generate a personalised morning news brief covering the following.
|
||||
|
||||
TOPICS TO COVER
|
||||
1. [Topic / Pillar 1] — focus on [angle]
|
||||
2. [Topic / Pillar 2] — focus on [angle]
|
||||
3. [Topic / Pillar 3] — focus on [angle]
|
||||
[add pillars as needed]
|
||||
|
||||
NEVER INCLUDE
|
||||
- [Excluded topic 1]
|
||||
- [Excluded topic 2]
|
||||
- [Excluded topic 3]
|
||||
|
||||
PREFERRED SOURCES (prioritise these)
|
||||
[Source 1], [Source 2], [Source 3], [Source 4]
|
||||
|
||||
STORY TYPE MIX
|
||||
[e.g. Prioritise analysis and data-driven pieces. Include breaking news only if significant. Skip opinion unless it's from [specific writer].]
|
||||
|
||||
RECENCY
|
||||
[e.g. Cover only the last 24 hours. For ongoing stories I'm tracking, include relevant developments from the last 48 hours.]
|
||||
|
||||
CURRENTLY TRACKING THIS WEEK
|
||||
[Specific story / company / topic the user flagged]
|
||||
|
||||
FORMAT
|
||||
[e.g. Organise by topic. Under each topic: 2–4 bullet points. Each bullet: headline + 1–2 sentence summary + source name. End with a "What to watch today" section: 2–3 sentences on what matters most today.]
|
||||
|
||||
LENGTH
|
||||
Target a [5/10/15]-minute read.
|
||||
|
||||
TONE
|
||||
Analyst voice. No fluff. Lead with the signal, not the noise. If something is uncertain or based on incomplete reporting, flag it as such.
|
||||
```
|
||||
````
|
||||
|
||||
---
|
||||
|
||||
### 3. Setup Guide
|
||||
|
||||
A short section below the master prompt:
|
||||
|
||||
```
|
||||
HOW TO USE THIS PROMPT
|
||||
──────────────────────
|
||||
|
||||
OPTION A — Cowork Scheduled Tasks (Claude Pro/Max)
|
||||
Requires: Desktop app open at scheduled time
|
||||
1. Open Claude desktop → Cowork → Scheduled Tasks
|
||||
2. Create a new task, set your time (e.g. 7:00 AM)
|
||||
3. Paste the master prompt as the task content
|
||||
4. Save. It will run every morning when your desktop app is open.
|
||||
|
||||
OPTION B — Claude Code Routines (runs in the cloud)
|
||||
Requires: Claude Code with Routines access
|
||||
Advantage: Runs without your laptop being on
|
||||
1. In your project root, create or open .claude/routines.json
|
||||
2. Add a new routine with a cron schedule (e.g. "0 7 * * *" for 7 AM daily)
|
||||
3. Set the prompt field to the master prompt above
|
||||
4. Commit and push — Claude Code will run it on schedule.
|
||||
|
||||
UPDATING YOUR BRIEF
|
||||
When your focus shifts, re-run this skill. The interview takes 5–10 minutes
|
||||
and produces a new master prompt to replace the old one.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Quality Checks
|
||||
|
||||
- [ ] Every interview question was asked — none skipped unless the user already provided the answer
|
||||
- [ ] The "What I Heard" summary was shown and confirmed before writing the master prompt
|
||||
- [ ] The master prompt uses specific topic angles, not vague category names (not "AI" — "AI applied to enterprise software")
|
||||
- [ ] Exclusions are explicitly stated in the master prompt with a NEVER INCLUDE section
|
||||
- [ ] Sources are listed in order of preference, not as a flat unordered list
|
||||
- [ ] Story type mix is written as a directive, not just a list
|
||||
- [ ] Recency instruction handles the edge case of slow news days
|
||||
- [ ] Format instruction is precise enough that a different AI could follow it correctly
|
||||
- [ ] The master prompt is inside a code block so it copies cleanly
|
||||
- [ ] Both setup options (Cowork and Claude Code Routines) are included
|
||||
|
||||
---
|
||||
|
||||
## Example Trigger Phrases
|
||||
|
||||
- "Set up my morning intelligence brief"
|
||||
- "Build me a morning news prompt"
|
||||
- "Interview me for a morning briefing skill"
|
||||
- "I want to start every day with a personalised news digest"
|
||||
- "Help me set up a daily AI news brief"
|
||||
- "Create a scheduled morning news prompt for me"
|
||||
- "Build me a prompt for my daily briefing routine"
|
||||
Reference in New Issue
Block a user