Research a topic from the last 30 days on Reddit + X + Web, become an expert, and write copy-paste-ready prompts for the user's target tool.
Add this skill
npx mdskills install sickn33/last30daysResearches Reddit, X, and web for last 30 days, synthesizes insights, and creates tailored prompts
1---2name: last30days3description: Research a topic from the last 30 days on Reddit + X + Web, become an expert, and write copy-paste-ready prompts for the user's target tool.4argument-hint: "[topic] for [tool] or [topic]"5context: fork6agent: Explore7disable-model-invocation: true8allowed-tools: Bash, Read, Write, AskUserQuestion, WebSearch9---1011# last30days: Research Any Topic from the Last 30 Days1213Research ANY topic across Reddit, X, and the web. Surface what people are actually discussing, recommending, and debating right now.1415Use cases:1617- **Prompting**: "photorealistic people in Nano Banana Pro", "Midjourney prompts", "ChatGPT image generation" → learn techniques, get copy-paste prompts18- **Recommendations**: "best Claude Code skills", "top AI tools" → get a LIST of specific things people mention19- **News**: "what's happening with OpenAI", "latest AI announcements" → current events and updates20- **General**: any topic you're curious about → understand what the community is saying2122## CRITICAL: Parse User Intent2324Before doing anything, parse the user's input for:25261. **TOPIC**: What they want to learn about (e.g., "web app mockups", "Claude Code skills", "image generation")272. **TARGET TOOL** (if specified): Where they'll use the prompts (e.g., "Nano Banana Pro", "ChatGPT", "Midjourney")283. **QUERY TYPE**: What kind of research they want:29 - **PROMPTING** - "X prompts", "prompting for X", "X best practices" → User wants to learn techniques and get copy-paste prompts30 - **RECOMMENDATIONS** - "best X", "top X", "what X should I use", "recommended X" → User wants a LIST of specific things31 - **NEWS** - "what's happening with X", "X news", "latest on X" → User wants current events/updates32 - **GENERAL** - anything else → User wants broad understanding of the topic3334Common patterns:3536- `[topic] for [tool]` → "web mockups for Nano Banana Pro" → TOOL IS SPECIFIED37- `[topic] prompts for [tool]` → "UI design prompts for Midjourney" → TOOL IS SPECIFIED38- Just `[topic]` → "iOS design mockups" → TOOL NOT SPECIFIED, that's OK39- "best [topic]" or "top [topic]" → QUERY_TYPE = RECOMMENDATIONS40- "what are the best [topic]" → QUERY_TYPE = RECOMMENDATIONS4142**IMPORTANT: Do NOT ask about target tool before research.**4344- If tool is specified in the query, use it45- If tool is NOT specified, run research first, then ask AFTER showing results4647**Store these variables:**4849- `TOPIC = [extracted topic]`50- `TARGET_TOOL = [extracted tool, or "unknown" if not specified]`51- `QUERY_TYPE = [RECOMMENDATIONS | NEWS | HOW-TO | GENERAL]`5253---5455## Setup Check5657The skill works in three modes based on available API keys:58591. **Full Mode** (both keys): Reddit + X + WebSearch - best results with engagement metrics602. **Partial Mode** (one key): Reddit-only or X-only + WebSearch613. **Web-Only Mode** (no keys): WebSearch only - still useful, but no engagement metrics6263**API keys are OPTIONAL.** The skill will work without them using WebSearch fallback.6465### First-Time Setup (Optional but Recommended)6667If the user wants to add API keys for better results:6869```bash70mkdir -p ~/.config/last30days71cat > ~/.config/last30days/.env << 'ENVEOF'72# last30days API Configuration73# Both keys are optional - skill works with WebSearch fallback7475# For Reddit research (uses OpenAI's web_search tool)76OPENAI_API_KEY=7778# For X/Twitter research (uses xAI's x_search tool)79XAI_API_KEY=80ENVEOF8182chmod 600 ~/.config/last30days/.env83echo "Config created at ~/.config/last30days/.env"84echo "Edit to add your API keys for enhanced research."85```8687**DO NOT stop if no keys are configured.** Proceed with web-only mode.8889---9091## Research Execution9293**IMPORTANT: The script handles API key detection automatically.** Run it and check the output to determine mode.9495**Step 1: Run the research script**9697```bash98python3 ~/.claude/skills/last30days/scripts/last30days.py "$ARGUMENTS" --emit=compact 2>&199```100101The script will automatically:102103- Detect available API keys104- Show a promo banner if keys are missing (this is intentional marketing)105- Run Reddit/X searches if keys exist106- Signal if WebSearch is needed107108**Step 2: Check the output mode**109110The script output will indicate the mode:111112- **"Mode: both"** or **"Mode: reddit-only"** or **"Mode: x-only"**: Script found results, WebSearch is supplementary113- **"Mode: web-only"**: No API keys, Claude must do ALL research via WebSearch114115**Step 3: Do WebSearch**116117For **ALL modes**, do WebSearch to supplement (or provide all data in web-only mode).118119Choose search queries based on QUERY_TYPE:120121**If RECOMMENDATIONS** ("best X", "top X", "what X should I use"):122123- Search for: `best {TOPIC} recommendations`124- Search for: `{TOPIC} list examples`125- Search for: `most popular {TOPIC}`126- Goal: Find SPECIFIC NAMES of things, not generic advice127128**If NEWS** ("what's happening with X", "X news"):129130- Search for: `{TOPIC} news 2026`131- Search for: `{TOPIC} announcement update`132- Goal: Find current events and recent developments133134**If PROMPTING** ("X prompts", "prompting for X"):135136- Search for: `{TOPIC} prompts examples 2026`137- Search for: `{TOPIC} techniques tips`138- Goal: Find prompting techniques and examples to create copy-paste prompts139140**If GENERAL** (default):141142- Search for: `{TOPIC} 2026`143- Search for: `{TOPIC} discussion`144- Goal: Find what people are actually saying145146For ALL query types:147148- **USE THE USER'S EXACT TERMINOLOGY** - don't substitute or add tech names based on your knowledge149 - If user says "ChatGPT image prompting", search for "ChatGPT image prompting"150 - Do NOT add "DALL-E", "GPT-4o", or other terms you think are related151 - Your knowledge may be outdated - trust the user's terminology152- EXCLUDE reddit.com, x.com, twitter.com (covered by script)153- INCLUDE: blogs, tutorials, docs, news, GitHub repos154- **DO NOT output "Sources:" list** - this is noise, we'll show stats at the end155156**Step 3: Wait for background script to complete**157Use TaskOutput to get the script results before proceeding to synthesis.158159**Depth options** (passed through from user's command):160161- `--quick` → Faster, fewer sources (8-12 each)162- (default) → Balanced (20-30 each)163- `--deep` → Comprehensive (50-70 Reddit, 40-60 X)164165---166167## Judge Agent: Synthesize All Sources168169**After all searches complete, internally synthesize (don't display stats yet):**170171The Judge Agent must:1721731. Weight Reddit/X sources HIGHER (they have engagement signals: upvotes, likes)1742. Weight WebSearch sources LOWER (no engagement data)1753. Identify patterns that appear across ALL three sources (strongest signals)1764. Note any contradictions between sources1775. Extract the top 3-5 actionable insights178179**Do NOT display stats here - they come at the end, right before the invitation.**180181---182183## FIRST: Internalize the Research184185**CRITICAL: Ground your synthesis in the ACTUAL research content, not your pre-existing knowledge.**186187Read the research output carefully. Pay attention to:188189- **Exact product/tool names** mentioned (e.g., if research mentions "ClawdBot" or "@clawdbot", that's a DIFFERENT product than "Claude Code" - don't conflate them)190- **Specific quotes and insights** from the sources - use THESE, not generic knowledge191- **What the sources actually say**, not what you assume the topic is about192193**ANTI-PATTERN TO AVOID**: If user asks about "clawdbot skills" and research returns ClawdBot content (self-hosted AI agent), do NOT synthesize this as "Claude Code skills" just because both involve "skills". Read what the research actually says.194195### If QUERY_TYPE = RECOMMENDATIONS196197**CRITICAL: Extract SPECIFIC NAMES, not generic patterns.**198199When user asks "best X" or "top X", they want a LIST of specific things:200201- Scan research for specific product names, tool names, project names, skill names, etc.202- Count how many times each is mentioned203- Note which sources recommend each (Reddit thread, X post, blog)204- List them by popularity/mention count205206**BAD synthesis for "best Claude Code skills":**207208> "Skills are powerful. Keep them under 500 lines. Use progressive disclosure."209210**GOOD synthesis for "best Claude Code skills":**211212> "Most mentioned skills: /commit (5 mentions), remotion skill (4x), git-worktree (3x), /pr (3x). The Remotion announcement got 16K likes on X."213214### For all QUERY_TYPEs215216Identify from the ACTUAL RESEARCH OUTPUT:217218- **PROMPT FORMAT** - Does research recommend JSON, structured params, natural language, keywords? THIS IS CRITICAL.219- The top 3-5 patterns/techniques that appeared across multiple sources220- Specific keywords, structures, or approaches mentioned BY THE SOURCES221- Common pitfalls mentioned BY THE SOURCES222223**If research says "use JSON prompts" or "structured prompts", you MUST deliver prompts in that format later.**224225---226227## THEN: Show Summary + Invite Vision228229**CRITICAL: Do NOT output any "Sources:" lists. The final display should be clean.**230231**Display in this EXACT sequence:**232233**FIRST - What I learned (based on QUERY_TYPE):**234235**If RECOMMENDATIONS** - Show specific things mentioned:236237```238🏆 Most mentioned:2391. [Specific name] - mentioned {n}x (r/sub, @handle, blog.com)2402. [Specific name] - mentioned {n}x (sources)2413. [Specific name] - mentioned {n}x (sources)2424. [Specific name] - mentioned {n}x (sources)2435. [Specific name] - mentioned {n}x (sources)244245Notable mentions: [other specific things with 1-2 mentions]246```247248**If PROMPTING/NEWS/GENERAL** - Show synthesis and patterns:249250```251What I learned:252253[2-4 sentences synthesizing key insights FROM THE ACTUAL RESEARCH OUTPUT.]254255KEY PATTERNS I'll use:2561. [Pattern from research]2572. [Pattern from research]2583. [Pattern from research]259```260261**THEN - Stats (right before invitation):**262263For **full/partial mode** (has API keys):264265```266---267✅ All agents reported back!268├─ 🟠 Reddit: {n} threads │ {sum} upvotes │ {sum} comments269├─ 🔵 X: {n} posts │ {sum} likes │ {sum} reposts270├─ 🌐 Web: {n} pages │ {domains}271└─ Top voices: r/{sub1}, r/{sub2} │ @{handle1}, @{handle2} │ {web_author} on {site}272```273274For **web-only mode** (no API keys):275276```277---278✅ Research complete!279├─ 🌐 Web: {n} pages │ {domains}280└─ Top sources: {author1} on {site1}, {author2} on {site2}281282💡 Want engagement metrics? Add API keys to ~/.config/last30days/.env283 - OPENAI_API_KEY → Reddit (real upvotes & comments)284 - XAI_API_KEY → X/Twitter (real likes & reposts)285```286287**LAST - Invitation:**288289```290---291Share your vision for what you want to create and I'll write a thoughtful prompt you can copy-paste directly into {TARGET_TOOL}.292```293294**Use real numbers from the research output.** The patterns should be actual insights from the research, not generic advice.295296**SELF-CHECK before displaying**: Re-read your "What I learned" section. Does it match what the research ACTUALLY says? If the research was about ClawdBot (a self-hosted AI agent), your summary should be about ClawdBot, not Claude Code. If you catch yourself projecting your own knowledge instead of the research, rewrite it.297298**IF TARGET_TOOL is still unknown after showing results**, ask NOW (not before research):299300```301What tool will you use these prompts with?302303Options:3041. [Most relevant tool based on research - e.g., if research mentioned Figma/Sketch, offer those]3052. Nano Banana Pro (image generation)3063. ChatGPT / Claude (text/code)3074. Other (tell me)308```309310**IMPORTANT**: After displaying this, WAIT for the user to respond. Don't dump generic prompts.311312---313314## WAIT FOR USER'S VISION315316After showing the stats summary with your invitation, **STOP and wait** for the user to tell you what they want to create.317318When they respond with their vision (e.g., "I want a landing page mockup for my SaaS app"), THEN write a single, thoughtful, tailored prompt.319320---321322## WHEN USER SHARES THEIR VISION: Write ONE Perfect Prompt323324Based on what they want to create, write a **single, highly-tailored prompt** using your research expertise.325326### CRITICAL: Match the FORMAT the research recommends327328**If research says to use a specific prompt FORMAT, YOU MUST USE THAT FORMAT:**329330- Research says "JSON prompts" → Write the prompt AS JSON331- Research says "structured parameters" → Use structured key: value format332- Research says "natural language" → Use conversational prose333- Research says "keyword lists" → Use comma-separated keywords334335**ANTI-PATTERN**: Research says "use JSON prompts with device specs" but you write plain prose. This defeats the entire purpose of the research.336337### Output Format:338339```340Here's your prompt for {TARGET_TOOL}:341342---343344[The actual prompt IN THE FORMAT THE RESEARCH RECOMMENDS - if research said JSON, this is JSON. If research said natural language, this is prose. Match what works.]345346---347348This uses [brief 1-line explanation of what research insight you applied].349```350351### Quality Checklist:352353- [ ] **FORMAT MATCHES RESEARCH** - If research said JSON/structured/etc, prompt IS that format354- [ ] Directly addresses what the user said they want to create355- [ ] Uses specific patterns/keywords discovered in research356- [ ] Ready to paste with zero edits (or minimal [PLACEHOLDERS] clearly marked)357- [ ] Appropriate length and style for TARGET_TOOL358359---360361## IF USER ASKS FOR MORE OPTIONS362363Only if they ask for alternatives or more prompts, provide 2-3 variations. Don't dump a prompt pack unless requested.364365---366367## AFTER EACH PROMPT: Stay in Expert Mode368369After delivering a prompt, offer to write more:370371> Want another prompt? Just tell me what you're creating next.372373---374375## CONTEXT MEMORY376377For the rest of this conversation, remember:378379- **TOPIC**: {topic}380- **TARGET_TOOL**: {tool}381- **KEY PATTERNS**: {list the top 3-5 patterns you learned}382- **RESEARCH FINDINGS**: The key facts and insights from the research383384**CRITICAL: After research is complete, you are now an EXPERT on this topic.**385386When the user asks follow-up questions:387388- **DO NOT run new WebSearches** - you already have the research389- **Answer from what you learned** - cite the Reddit threads, X posts, and web sources390- **If they ask for a prompt** - write one using your expertise391- **If they ask a question** - answer it from your research findings392393Only do new research if the user explicitly asks about a DIFFERENT topic.394395---396397## Output Summary Footer (After Each Prompt)398399After delivering a prompt, end with:400401For **full/partial mode**:402403```404---405📚 Expert in: {TOPIC} for {TARGET_TOOL}406📊 Based on: {n} Reddit threads ({sum} upvotes) + {n} X posts ({sum} likes) + {n} web pages407408Want another prompt? Just tell me what you're creating next.409```410411For **web-only mode**:412413```414---415📚 Expert in: {TOPIC} for {TARGET_TOOL}416📊 Based on: {n} web pages from {domains}417418Want another prompt? Just tell me what you're creating next.419420💡 Unlock Reddit & X data: Add API keys to ~/.config/last30days/.env421```422
Full transparency — inspect the skill content before installing.