Compare commits
131 Commits
v2.1.0
..
bb79d54b2b
| Author | SHA1 | Date | |
|---|---|---|---|
| bb79d54b2b | |||
| 2eb9cd6fba | |||
| 775596ce21 | |||
| 4d6224f79a | |||
| 499074b564 | |||
| 6a5a0013c0 | |||
| 0c6358ab98 | |||
| 7ffa508bb4 | |||
| c2e18dbbeb | |||
| 52a22f5cb1 | |||
| 3830274e11 | |||
| 569745c0ed | |||
| 058c4e1899 | |||
| c711e443fe | |||
| 8c1dce95e8 | |||
| 3a0f3d8b19 | |||
| 8eda5fad5c | |||
| 946af84f9a | |||
| 0e46c7cb33 | |||
| b489663450 | |||
| 3aaf31b08d | |||
| dd9a3f1482 | |||
| cbee987f65 | |||
| d8d2b97716 | |||
| 036bcd2ae3 | |||
| 6c402f66b7 | |||
| 046795c4ae | |||
| 1002f1f020 | |||
| c5be117701 | |||
| 38caae3288 | |||
| 96948cc7c0 | |||
| dc88c215be | |||
| fa42a5d031 | |||
| d667586597 | |||
| ce8e289692 | |||
| 588cff3e00 | |||
| 859f6c5829 | |||
| 4fde52459d | |||
| ef7c0f05dd | |||
| e568ef8af9 | |||
| 3e9e2f632b | |||
| 9ca84e495e | |||
| b38703e53d | |||
| b6fd5ff406 | |||
| adb5a672d9 | |||
| ecf90c0281 | |||
| 9a1059ee9d | |||
| 4b7087e136 | |||
| 82a006280e | |||
| a7398c50cc | |||
| b1a0e2bcfc | |||
| 75e4b8e2cd | |||
| 25e27bdade | |||
| 3e3615e2c8 | |||
| 9a58fe6481 | |||
| 4756c20ec0 | |||
| 8a9f734d14 | |||
| 0979f506db | |||
| 627947fc2c | |||
| 2f16ff1ee8 | |||
| 8f7fb5a7fe | |||
| 4503da7920 | |||
| 28dff6e7b2 | |||
| 32992834ee | |||
| 7dd8379c61 | |||
| 408ac148ec | |||
| c9559252cd | |||
| f70370a6f4 | |||
| fad26d41fd | |||
| ef1f380cda | |||
| e690d61a12 | |||
| 6d5acb9121 | |||
| 28d223e43c | |||
| 471badd329 | |||
| 5b1636f94f | |||
| 18f6273f7c | |||
| 9950d01ab4 | |||
| cc774d5e69 | |||
| 8cbbe87c3e | |||
| 49d993b162 | |||
| 6afc094bb1 | |||
| f6a1769e35 | |||
| 4d35b53eab | |||
| 2247800003 | |||
| 7048fe7b83 | |||
| 30b973f62e | |||
| 09b09946c0 | |||
| d4328b5598 | |||
| 788514ce8e | |||
| db75f9e341 | |||
| 740dcc5789 | |||
| e03046bd49 | |||
| 1d18bee1a2 | |||
| fb00856bff | |||
| d7b354b2cf | |||
| 7c5763d048 | |||
| 61729b9ae7 | |||
| b990aed40e | |||
| d4ac57f041 | |||
| 1db0b6054a | |||
| 5e5d586f7d | |||
| 94b6b6eb7b | |||
| 6ae4b16791 | |||
| 82efa6100b | |||
| a52ed30109 | |||
| 78678e3919 | |||
| 04bfb5381d | |||
| d7bff81757 | |||
| 1ed990a081 | |||
| 27b4865d60 | |||
| 9ee1291033 | |||
| e48d84b1d0 | |||
| 309c8e37c6 | |||
| 2ff9b6f6c1 | |||
| 4c82309c36 | |||
| 9d9e7e89d9 | |||
| 994a4ab2ca | |||
| 52503f8e68 | |||
| 44a662ef94 | |||
| 7009039ac4 | |||
| 41c8742fcf | |||
| 71903b596f | |||
| bbaaf28d2e | |||
| 4f584a4e96 | |||
| bed0557b65 | |||
| 0591f55f0e | |||
| f60a4359a0 | |||
| 7a9f447231 | |||
| 38a7ea253e | |||
| 427a4e453d | |||
| 451ebb3e22 |
@@ -1,17 +1,23 @@
|
||||
{
|
||||
"name": "last30days",
|
||||
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
|
||||
"name": "last30days-skill",
|
||||
"description": "Research any topic from the last 30 days across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, and the web.",
|
||||
"owner": {
|
||||
"name": "mvanhorn",
|
||||
"name": "Matt Van Horn",
|
||||
"url": "https://github.com/mvanhorn"
|
||||
},
|
||||
"metadata": {
|
||||
"description": "Research any topic from the last 30 days across Reddit, X, YouTube, and the web",
|
||||
"version": "2.1.0"
|
||||
},
|
||||
"plugins": [
|
||||
{
|
||||
"name": "last30days",
|
||||
"source": "."
|
||||
"description": "Research any topic from the last 30 days. Become an expert and write copy-paste-ready prompts.",
|
||||
"version": "2.9.6",
|
||||
"author": {
|
||||
"name": "Matt Van Horn",
|
||||
"url": "https://github.com/mvanhorn"
|
||||
},
|
||||
"source": "./",
|
||||
"category": "productivity",
|
||||
"homepage": "https://github.com/mvanhorn/last30days-skill"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
{
|
||||
"name": "last30days",
|
||||
"description": "Research any topic from the last 30 days across Reddit, X, YouTube, and the web",
|
||||
"version": "2.1.0",
|
||||
"version": "2.9.6",
|
||||
"description": "Research any topic from the last 30 days across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, and the web.",
|
||||
"author": {
|
||||
"name": "mvanhorn"
|
||||
"name": "Matt Van Horn",
|
||||
"email": "mvanhorn@gmail.com",
|
||||
"url": "https://github.com/mvanhorn"
|
||||
},
|
||||
"homepage": "https://github.com/mvanhorn/last30days-skill",
|
||||
"repository": "https://github.com/mvanhorn/last30days-skill",
|
||||
"license": "MIT",
|
||||
"keywords": ["research", "reddit", "twitter", "x", "youtube", "trends", "prompts"],
|
||||
"skills": ["./"]
|
||||
"keywords": ["research", "reddit", "twitter", "youtube", "tiktok", "instagram", "trends", "prompts", "polymarket"],
|
||||
"skills": ["./"],
|
||||
"hooks": {}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Exclude binary assets and dev/test artifacts from ClawHub bundle
|
||||
assets/
|
||||
docs/
|
||||
fixtures/
|
||||
tests/
|
||||
plans/
|
||||
agents/
|
||||
variants/
|
||||
release-notes.md
|
||||
SPEC.md
|
||||
TASKS.md
|
||||
SKILL-original.md
|
||||
*.jsonl
|
||||
*.mp3
|
||||
*.jpeg
|
||||
*.jpg
|
||||
*.png
|
||||
*.gif
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
# Private benchmark / evaluation artifacts — never push to upstream
|
||||
docs/comparison-results/
|
||||
scripts/evaluate-synthesis.py
|
||||
scripts/generate-synthesis-inputs.py
|
||||
fixtures/polymarket_sample.json
|
||||
docs/v2.1-tweets.md
|
||||
docs/30-day-anniversary-thread.md
|
||||
docs/30-day-anniversary-tweets.md
|
||||
variants/open/references/research.md
|
||||
|
||||
# OS / tool files
|
||||
.DS_Store
|
||||
.claude/
|
||||
.entire/
|
||||
__pycache__/
|
||||
*.pyc
|
||||
mise.toml
|
||||
@@ -5,6 +5,102 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [2.9.4] - 2026-03-06
|
||||
|
||||
### Changed
|
||||
|
||||
- Move save into Python script via `--save-dir` flag - raw research data saved during the existing script Bash call, zero extra tool calls after invitation
|
||||
- Remove entire "Save Research to Documents" section from SKILL.md (~45 lines removed)
|
||||
- No more `📎` footer, no Bash heredoc, no `(No output)`, no multi-minute cogitation after research
|
||||
|
||||
## [2.9.3] - 2026-03-06
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Critical:** Switch save from `run_in_background` to foreground Bash - background callbacks caused model to re-engage, hallucinate fake user messages, and generate unsolicited multi-paragraph responses
|
||||
- Save uses foreground `cat >` heredoc (executes sub-second, no callback, no delayed notification)
|
||||
|
||||
## [2.9.2] - 2026-03-06
|
||||
|
||||
### Fixed
|
||||
|
||||
- Save research silently using background Bash heredoc instead of Write tool (eliminates "Wrote N lines..." clutter)
|
||||
- Suppress follow-up text after background save completes (no more "Research briefing saved..." noise)
|
||||
- Add `📎` footer line for save path instead of verbose confirmation
|
||||
|
||||
## [2.9.1] - 2026-03-05
|
||||
|
||||
### Highlights
|
||||
|
||||
Auto-save research briefings to `~/Documents/Last30Days/` as topic-named .md files. Every run now builds a personal research library automatically - no more manual copy-paste.
|
||||
|
||||
### Added
|
||||
|
||||
- Auto-save complete research briefings (synthesis, stats, follow-up suggestions) to `~/Documents/Last30Days/{topic-slug}.md` after every run
|
||||
- Kebab-case filename generation from topic (e.g., "Claude Code skills" -> `claude-code-skills.md`)
|
||||
- Duplicate topic handling: appends date suffix instead of overwriting (e.g., `claude-code-skills-2026-03-05.md`)
|
||||
- Agent mode (`--agent`) also saves research files
|
||||
- Brief confirmation after save: "Saved to ~/Documents/Last30Days/{slug}.md"
|
||||
|
||||
### Credits
|
||||
|
||||
- [@devin_explores](https://x.com/devin_explores) -- Inspired this feature by sharing their workflow of saving every last30days run into organized .md files ([PR #51](https://github.com/mvanhorn/last30days-skill/pull/51))
|
||||
|
||||
## [2.9.0] - 2026-03-05
|
||||
|
||||
### Highlights
|
||||
|
||||
ScrapeCreators Reddit as the default backend (one `SCRAPECREATORS_API_KEY` covers Reddit + TikTok + Instagram), smart subreddit discovery with relevance-weighted scoring, and top comments elevated with 10% scoring weight and prominent display.
|
||||
|
||||
### Added
|
||||
|
||||
- ScrapeCreators Reddit backend (`scripts/lib/reddit.py`) — keyword search, subreddit discovery, comment enrichment, all via `api.scrapecreators.com`
|
||||
- Smart subreddit discovery with relevance-weighted scoring: frequency × recency × topic-word match, replacing pure frequency count
|
||||
- `UTILITY_SUBS` blocklist to filter noise subreddits (r/tipofmytongue, r/whatisthisthing, etc.) from discovery results
|
||||
- Top comment scoring: 10% weight in engagement formula via `log1p(top_comment_score)`
|
||||
- Top comment rendering: `💬 Top comment` lines with upvote counts in compact and full report output
|
||||
- Comment excerpt length increased from 300 → 400 chars; `comment_insights` limit raised from 7 → 10
|
||||
|
||||
### Changed
|
||||
|
||||
- `primaryEnv` switched from `OPENAI_API_KEY` to `SCRAPECREATORS_API_KEY` — one key now powers Reddit, TikTok, and Instagram
|
||||
- Reddit engagement scoring formula: `0.55/0.40/0.05` (score/comments/ratio) → `0.50/0.35/0.05/0.10` (score/comments/ratio/top-comment)
|
||||
- SKILL.md synthesis instructions updated to emphasize quoting top comments
|
||||
|
||||
### Fixed
|
||||
|
||||
- Utility subreddit noise in discovery (e.g., r/tipofmytongue appearing for unrelated topics)
|
||||
- Reddit search no longer requires `OPENAI_API_KEY` — ScrapeCreators API handles search directly
|
||||
|
||||
## [2.8.0] - 2026-03-04
|
||||
|
||||
### Highlights
|
||||
|
||||
Instagram Reels as the 8th signal source, TikTok migrated from Apify to ScrapeCreators API, and SKILL.md quality improvements. One API key (`SCRAPECREATORS_API_KEY`) now covers both TikTok and Instagram.
|
||||
|
||||
### Added
|
||||
|
||||
- Instagram Reels as 8th research source via ScrapeCreators API — keyword search, engagement metrics (views, likes, comments), spoken-word transcript extraction (`scripts/lib/instagram.py`)
|
||||
- `InstagramItem` dataclass, normalization, scoring (45% relevance / 25% recency / 30% engagement), deduplication, cross-source linking, and rendering
|
||||
- Instagram in SKILL.md: stats template (`📸 Instagram:`), citation priority, item format description, output footer
|
||||
- URL-to-name extraction examples in SKILL.md for cleaner web source display
|
||||
- `--search=instagram` flag support
|
||||
|
||||
### Changed
|
||||
|
||||
- TikTok backend migrated from Apify to ScrapeCreators API (`api.scrapecreators.com`)
|
||||
- `APIFY_API_TOKEN` replaced by `SCRAPECREATORS_API_KEY` in config
|
||||
- SKILL.md version bumped to v2.8
|
||||
- WebSearch citation instruction strengthened to prevent trailing Sources: blocks
|
||||
- Security section updated: Apify → ScrapeCreators references
|
||||
|
||||
### Fixed
|
||||
|
||||
- Web stats line showing full URLs instead of plain domain names
|
||||
- Trailing "Sources:" block appearing after skill invitation (WebSearch tool mandate conflict)
|
||||
- Instagram/TikTok not running in web-only mode when `--search=instagram` used without Reddit/X
|
||||
- `$ARGUMENTS` quoting in SKILL.md for correct flag forwarding
|
||||
|
||||
## [2.1.0] - 2026-02-15
|
||||
|
||||
### Highlights
|
||||
@@ -59,5 +155,8 @@ Three headline features: watchlists for always-on bots, YouTube transcripts as a
|
||||
|
||||
Initial public release. Reddit + X search via OpenAI Responses API and xAI API.
|
||||
|
||||
[2.9.1]: https://github.com/mvanhorn/last30days-skill/compare/v2.9.0...v2.9.1
|
||||
[2.9.0]: https://github.com/mvanhorn/last30days-skill/compare/v2.8.0...v2.9.0
|
||||
[2.8.0]: https://github.com/mvanhorn/last30days-skill/compare/v2.6.0...v2.8.0
|
||||
[2.1.0]: https://github.com/mvanhorn/last30days-skill/compare/v1.0.0...v2.1.0
|
||||
[1.0.0]: https://github.com/mvanhorn/last30days-skill/releases/tag/v1.0.0
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
# last30days Skill
|
||||
|
||||
Claude Code skill for researching any topic across Reddit, X, YouTube, and web.
|
||||
Python scripts with multi-source search aggregation.
|
||||
|
||||
## Structure
|
||||
- `scripts/last30days.py` — main research engine
|
||||
- `scripts/lib/` — search, enrichment, rendering modules
|
||||
- `scripts/lib/vendor/bird-search/` — vendored X search client
|
||||
- `SKILL.md` — skill definition (deployed to ~/.claude/skills/last30days/)
|
||||
|
||||
## Commands
|
||||
```bash
|
||||
python3 scripts/last30days.py "test query" --emit=compact # Run research
|
||||
bash scripts/sync.sh # Deploy to ~/.claude, ~/.agents, ~/.codex
|
||||
```
|
||||
|
||||
## Rules
|
||||
- `lib/__init__.py` must be bare package marker (comment only, NO eager imports)
|
||||
- After edits: run `bash scripts/sync.sh` to deploy
|
||||
- Git remotes: origin=private, upstream=public
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Matt Van Horn
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,58 +1,163 @@
|
||||
# /last30days v2.1
|
||||
# /last30days v2.9.5
|
||||
|
||||
**The AI world reinvents itself every month. This skill keeps you current.** /last30days researches your topic across Reddit, X, YouTube, and the web from the last 30 days, finds what the community is actually upvoting, sharing, and saying on camera, and writes you a prompt that works today, not six months ago. Whether it's Seedance 2.0 access, Suno music prompts, or the latest Nano Banana Pro techniques, you'll prompt like someone who's been paying attention.
|
||||
### Claude Code (recommended)
|
||||
```
|
||||
/plugin marketplace add mvanhorn/last30days-skill
|
||||
/plugin install last30days@last30days-skill
|
||||
```
|
||||
|
||||
**New in V2.1 - three headline features:**
|
||||
[](https://clawhub.ai/skills/last30days-official)
|
||||
|
||||
1. **Open-class skill with watchlists.** Add any topic to a watchlist - your competitors, specific people, emerging technologies - and /last30days re-researches it on demand or via cron. Designed for always-on environments like [Open Claw](https://github.com/openclaw/openclaw) where a bot can run research on a schedule and accumulate findings over time.
|
||||
2. **YouTube transcripts as a 4th source.** When yt-dlp is installed, /last30days automatically searches YouTube, grabs view counts, and extracts auto-generated transcripts from the top videos. A 20-minute review contains 10x the signal of a single post - now the skill reads it. Inspired by [@steipete](https://x.com/steipete)'s yt-dlp + [summarize](https://github.com/steipete/summarize) toolchain.
|
||||
3. **Works in OpenAI Codex CLI.** Same skill, same engine. Install to `~/.agents/skills/last30days` and invoke with `$last30days`. Claude Code and Codex users get the same research.
|
||||
```bash
|
||||
clawhub install last30days-official
|
||||
```
|
||||
|
||||
**New in V2:** Dramatically better search results. Smarter query construction finds posts that V1 missed entirely, and a new two-phase search automatically discovers key @handles and subreddits from initial results, then drills deeper. Free X search (no xAI key needed), `--days=N` for flexible lookback, and automatic model fallback. [Full changelog below.](#whats-new-in-v2)
|
||||
**The AI world reinvents itself every month. This skill keeps you current.** /last30days researches your topic across Reddit, X, YouTube, and other sources from the last 30 days, finds what the community is actually upvoting, sharing, betting on, and saying on camera, and writes you a grounded narrative with real citations. Whether it's Seedance 2.0 access, paper.design prompts, or the latest Nano Banana Pro techniques, you'll know what people who are paying attention already know.
|
||||
|
||||
**The tradeoff:** V2 finds way more content but takes longer - typically 2-8 minutes depending on how niche your topic is. The old V1 was faster but regularly missed results (like returning 0 X posts on trending topics). We think the depth is worth the wait, but if you'd use a faster "quick mode" that trades some depth for speed, let us know: [@mvanhorn](https://x.com/mvanhorn) / [@slashlast30days](https://x.com/slashlast30days).
|
||||
**New in v2.9.5 — Bluesky, Comparative Mode, and Config Improvements:**
|
||||
|
||||
**Best for prompt research**: discover what prompting techniques actually work for any tool (ChatGPT, Midjourney, Claude, Figma AI, etc.) by learning from real community discussions and best practices.
|
||||
- **Bluesky/AT Protocol** is now a social source. Opt-in via `BSKY_HANDLE` + `BSKY_APP_PASSWORD` (create at bsky.app/settings/app-passwords). Full pipeline: search, score, dedupe, render.
|
||||
- **Comparative mode** - ask "X vs Y" (e.g., `/last30 Claude Code vs Codex`) and get 3 parallel research passes with a side-by-side comparison: strengths, weaknesses, head-to-head table, and a data-driven verdict.
|
||||
- **Per-project .env config** - drop a `.claude/last30days.env` in your project root for per-project API keys.
|
||||
- **SessionStart config check** - validates your config automatically when a Claude Code session starts.
|
||||
- **Expanded test coverage** - 455+ tests across all modules.
|
||||
|
||||
**New in v2.9.1 — Auto-save to ~/Documents/Last30Days/:** Every run now saves the complete briefing as a topic-named `.md` file to your Documents folder. Build a personal research library automatically. Inspired by [@devin_explores](https://x.com/devin_explores).
|
||||
|
||||
**New in v2.9 — ScrapeCreators Reddit + Top Comments + Smart Discovery:**
|
||||
|
||||
Reddit now runs on [ScrapeCreators](https://scrapecreators.com) by default — one `SCRAPECREATORS_API_KEY` covers Reddit, TikTok, and Instagram (3 sources, 1 key). Smart subreddit discovery finds the right communities automatically, and top comments are elevated with a 10% scoring weight and `💬` display with upvote counts. [Details below.](#whats-new-in-v29)
|
||||
|
||||
**New in v2.8 — Instagram Reels + ScrapeCreators:**
|
||||
|
||||
Instagram Reels is now the 8th signal source. TikTok and Instagram both run on ScrapeCreators — one API key covers both. [Details below.](#whats-new-in-v28)
|
||||
|
||||
**New in V2.5 - dramatically better results:**
|
||||
|
||||
1. **Polymarket prediction markets and Hacker News.** See what people are betting real money on and what the technical community is actually discussing. Search "Arizona Basketball" and get NCAA Tournament championship odds (Arizona: 12%), #1 seed probability (88%), and Big 12 title race (69%) - pulled from 50+ open markets across 10 events, not just Reddit opinions. Search "Iran War" and get 15 live prediction markets with strike probabilities, regime change bets, and war declaration odds. Two-pass query expansion with tag-based domain bridging discovers markets where your topic is an outcome buried inside a broader event, not just a title keyword match. HN stories, Show HN posts, and comment insights are scored by points + comments and participate in cross-source convergence detection.
|
||||
2. **Multi-signal quality-ranked relevance scoring.** Every result across all six sources runs through a composite scoring pipeline: bidirectional text similarity with synonym expansion and token overlap, engagement velocity normalization, source authority weighting, cross-platform convergence detection via hybrid trigram-token Jaccard similarity, and temporal recency decay. Polymarket markets are ranked on a 5-factor weighted composite - text relevance (30%), 24-hour volume (30%), liquidity depth (15%), price movement velocity (15%), and outcome competitiveness (10%) - with outcome-aware scoring that matches your topic against individual market positions, not just event titles. A blinded evaluation scored v2.5 at 4.38/5.0 vs 3.73/5.0 for v1 across 5 test topics.
|
||||
3. **X handle resolution.** Search "Dor Brothers" and the skill resolves their handle (@thedorbrothers), then searches their posts directly - finding their 5,600-like viral tweet that keyword search missed entirely. Works for people, brands, products, and tools.
|
||||
|
||||
**New in V2.1:** Open-class skill with watchlists, YouTube transcripts as a source, works in OpenAI Codex CLI. [Full changelog below.](#whats-new-in-v21)
|
||||
|
||||
**New in V2:** Smarter query construction, two-phase supplemental search, free X search via bundled Bird client, `--days=N` flag, automatic model fallback. [Full changelog below.](#whats-new-in-v2)
|
||||
|
||||
**The tradeoff:** /last30days finds a lot of content but takes 2-8 minutes depending on how niche your topic is. Up to 10 sources searched in parallel, results scored, deduplicated, and synthesized. We think the depth is worth the wait, but `--quick` mode is there if you need speed over thoroughness.
|
||||
|
||||
**Best for prompt research**: discover what prompting techniques actually work for any tool (ChatGPT, Midjourney, Claude, Paper, etc.) by learning from real community discussions and best practices.
|
||||
|
||||
**But also great for anything trending**: music, culture, news, product recommendations, viral trends, or any question where "what are people saying right now?" matters.
|
||||
|
||||
## Installation
|
||||
|
||||
### Claude Code Plugin (recommended)
|
||||
```
|
||||
/plugin marketplace add mvanhorn/last30days-skill
|
||||
/plugin install last30days@last30days-skill
|
||||
```
|
||||
|
||||
### Gemini CLI
|
||||
```bash
|
||||
gemini extensions install https://github.com/mvanhorn/last30days-skill.git
|
||||
```
|
||||
|
||||
### Manual Install (Claude Code / Codex)
|
||||
```bash
|
||||
# Clone the repo
|
||||
git clone https://github.com/mvanhorn/last30days-skill.git ~/.claude/skills/last30days
|
||||
```
|
||||
|
||||
# Add your API keys
|
||||
That's it. Reddit, Hacker News, and Polymarket work immediately with zero configuration. Run `/last30days` to unlock more sources.
|
||||
|
||||
---
|
||||
|
||||
## Setup: Progressive Source Unlocking
|
||||
|
||||
Start using /last30days immediately. Add sources when you want better results.
|
||||
|
||||
### 1. Zero Config (3 sources) — Just install
|
||||
|
||||
Reddit (public JSON), Hacker News, and Polymarket work out of the box. No API keys, no configuration.
|
||||
|
||||
### 2. Run the setup wizard (5+ sources)
|
||||
|
||||
```
|
||||
/last30days setup
|
||||
```
|
||||
|
||||
The setup wizard automatically extracts X/Twitter login cookies from your browsers (Chrome, Firefox, Safari) and checks for yt-dlp. Takes about 30 seconds. Your cookies stay in memory and are never saved to disk.
|
||||
|
||||
### 3. Add Exa (FREE — semantic web search)
|
||||
|
||||
Register at [exa.ai](https://exa.ai) for 1,000 free searches/month, no credit card required.
|
||||
|
||||
```bash
|
||||
# Add to ~/.config/last30days/.env
|
||||
EXA_API_KEY=...
|
||||
```
|
||||
|
||||
### 4. Add ScrapeCreators (RECOMMENDED — Reddit comments + TikTok + Instagram)
|
||||
|
||||
**This is the single most impactful upgrade.** Reddit comments are often the highest-value research content — top-voted replies with real insights. ScrapeCreators unlocks comment enrichment plus TikTok and Instagram. Register at [scrapecreators.com](https://scrapecreators.com) for 100 free API calls (no credit card required). After that, pay-as-you-go. last30days receives no money from any API provider — no referrals, no kickbacks.
|
||||
|
||||
```bash
|
||||
# Add to ~/.config/last30days/.env
|
||||
SCRAPECREATORS_API_KEY=...
|
||||
```
|
||||
|
||||
### 5. Add Bluesky (FREE — app password)
|
||||
|
||||
Create an app password at [bsky.app/settings/app-passwords](https://bsky.app/settings/app-passwords).
|
||||
|
||||
```bash
|
||||
# Add to ~/.config/last30days/.env
|
||||
BSKY_HANDLE=you.bsky.social
|
||||
BSKY_APP_PASSWORD=xxxx-xxxx-xxxx
|
||||
```
|
||||
|
||||
### 6. Optional paid web search backends
|
||||
|
||||
```bash
|
||||
# Add to ~/.config/last30days/.env
|
||||
PARALLEL_API_KEY=... # Parallel AI (preferred — LLM-optimized results)
|
||||
BRAVE_API_KEY=... # Brave Search (free tier: 2,000 queries/month)
|
||||
OPENROUTER_API_KEY=... # OpenRouter/Perplexity Sonar Pro
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Do I need API keys?
|
||||
|
||||
| Source | Free Method | API Key | Do you need the API key? |
|
||||
|--------|------------|---------|--------------------------|
|
||||
| Reddit | Public JSON (always works) | ScrapeCreators | **Yes, strongly recommended.** Unlocks top comments — often the most valuable content. |
|
||||
| X/Twitter | Browser cookies (auto-extracted) | xAI API key (`XAI_API_KEY`) | **No.** Cookies give identical quality. The setup wizard handles this. |
|
||||
| YouTube | yt-dlp (`brew install yt-dlp`) | N/A | **No API key exists.** Install yt-dlp for search; transcripts work without it. |
|
||||
| Hacker News | Always free | N/A | **No.** Always works, no config needed. |
|
||||
| Polymarket | Always free | N/A | **No.** Always works, no config needed. |
|
||||
| Web search | N/A | Exa (`EXA_API_KEY`) | **Optional.** 1,000 free searches/month at exa.ai. |
|
||||
| Bluesky | Free app password | N/A | **Optional.** Free app password at bsky.app. |
|
||||
| TikTok | N/A | ScrapeCreators | **Optional.** Included with ScrapeCreators key. |
|
||||
| Instagram | N/A | ScrapeCreators | **Optional.** Included with ScrapeCreators key. |
|
||||
| Truth Social | Browser cookies | N/A | **Optional.** Auto-extracted if logged in. |
|
||||
|
||||
*last30days receives no money from any API provider — no referrals, no kickbacks.*
|
||||
|
||||
---
|
||||
|
||||
### Config file locations
|
||||
|
||||
For project-specific overrides, create `.claude/last30days.env` in the repo root. It overrides the global `~/.config/last30days/.env`.
|
||||
|
||||
```bash
|
||||
# Global config
|
||||
mkdir -p ~/.config/last30days
|
||||
cat > ~/.config/last30days/.env << 'EOF'
|
||||
OPENAI_API_KEY=sk-...
|
||||
XAI_API_KEY=xai-... # optional - cookie auth is default for X search
|
||||
EOF
|
||||
chmod 600 ~/.config/last30days/.env
|
||||
|
||||
# Project-specific config (optional)
|
||||
# .claude/last30days.env
|
||||
```
|
||||
|
||||
### X Search Authentication
|
||||
|
||||
X search reads your existing browser cookies - no API keys or login commands needed.
|
||||
|
||||
**Safari (recommended on Mac):** Just be logged into x.com. No setup needed.
|
||||
|
||||
**Chrome:** Works, but macOS will prompt you to allow Keychain access the first time. Click "Allow" (or "Always Allow" to stop future prompts).
|
||||
|
||||
**Firefox:** Just be logged into x.com. No setup needed.
|
||||
|
||||
**Manual fallback:** If cookie auto-detection doesn't work, set these env vars (grab them from your browser's dev tools → Application → Cookies → x.com):
|
||||
```bash
|
||||
export AUTH_TOKEN=your_auth_token
|
||||
export CT0=your_ct0_token
|
||||
```
|
||||
|
||||
**Verify it's working:**
|
||||
```bash
|
||||
node ~/.claude/skills/last30days/scripts/lib/vendor/bird-search/bird-search.mjs --whoami
|
||||
```
|
||||
|
||||
**Requirements:** Node.js 22+ (for the vendored Twitter GraphQL client).
|
||||
Check source availability: `python3 scripts/last30days.py --diagnose`
|
||||
|
||||
### Codex CLI
|
||||
|
||||
@@ -96,15 +201,6 @@ The open variant adds four modes on top of one-shot research:
|
||||
|
||||
Both variants use the same Python engine and scripts directory. The open variant adds command routing (`watch`, `briefing`, `history`) and references mode-specific instruction files.
|
||||
|
||||
**Optional web search API keys** (add to `~/.config/last30days/.env`):
|
||||
```bash
|
||||
PARALLEL_API_KEY=... # Parallel AI (preferred - LLM-optimized results)
|
||||
BRAVE_API_KEY=... # Brave Search (free tier: 2,000 queries/month)
|
||||
OPENROUTER_API_KEY=... # OpenRouter/Perplexity Sonar Pro
|
||||
```
|
||||
|
||||
Check source availability: `python3 scripts/last30days.py --diagnose`
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
@@ -120,7 +216,7 @@ Examples:
|
||||
|
||||
## What It Does
|
||||
|
||||
1. **Researches** - Scans Reddit, X, and YouTube for discussions from the last 30 days
|
||||
1. **Researches** - Scans Reddit, X, YouTube, and other sources for discussions from the last 30 days
|
||||
2. **Synthesizes** - Identifies patterns, best practices, and what actually works
|
||||
3. **Delivers** - Either writes copy-paste-ready prompts for your target tool, or gives you a curated expert-level answer
|
||||
|
||||
@@ -234,6 +330,29 @@ This example shows /last30days as a **current events research tool** - no promp
|
||||
|
||||
---
|
||||
|
||||
## Example: Anthropic Odds (Prediction Markets)
|
||||
|
||||
**Query:** `/last30days anthropic odds`
|
||||
|
||||
**Research Output:**
|
||||
> **Pentagon standoff is THE story right now** - Defense Secretary Hegseth gave Anthropic a Friday deadline to drop AI guardrails for military use or face blacklisting via the Defense Production Act, per CBS, CNN, Bloomberg, and a wave of X posts from @The__GDD, @trendy_tech_, and @jimkaskade. The trigger was Claude's use during the Maduro capture operation in January. Anthropic CEO Dario Amodei insists AI-controlled weapons and mass surveillance are lines the company won't cross. Polymarket traders put the ban odds at just 22%, signaling they think it's posturing, per @Lolipeterh.
|
||||
>
|
||||
> **Prediction markets love Anthropic's tech, skeptical on IPO** - Polymarket gives Anthropic a 98% chance of having the best AI model at end of February and 61% for March (Google at 22%, OpenAI at 10%). Claude 4.6 is dominating. But the IPO picture is murkier: @predictheory flagged that Anthropic IPO-first odds on Kalshi "fell through the floor, ~70% down to the low teens in one move." Polymarket has Anthropic at 64% to IPO before OpenAI, but 95% NO on an IPO by June 2026. Meanwhile, 87% odds Anthropic hits $500B+ valuation this year - current valuation is $380B after a $30B raise led by GIC and Coatue, per Fortune.
|
||||
>
|
||||
> **Claude FrontierMath odds surging** - Polymarket's "Will Claude score 50% on FrontierMath?" market jumped 28% today to 48% YES. This is a live bet on whether Claude can crack elite-level math benchmarks by June 30.
|
||||
|
||||
**Key patterns from the research:**
|
||||
1. Pentagon standoff as posturing - Polymarket gives only 22% chance of actual ban, money says it's negotiation theater
|
||||
2. Model dominance vs IPO uncertainty - 98% best model, but IPO timing is wide open
|
||||
3. FrontierMath as a live benchmark bet - real money tracking Claude's capability trajectory
|
||||
4. Big money piling in - Dan Sundheim's D1 Capital, Amazon's quiet bet, $380B valuation
|
||||
|
||||
**Research Stats:** 25 X posts (218 likes) + 13 YouTube videos (719K views) + 6 HN stories (48 points) + 11 Polymarket markets (Best model Feb: 98%, March: 61%, IPO first: 64%, $500B+ val: 87%, FrontierMath 50%: 48%)
|
||||
|
||||
This example shows /last30days as a **prediction market intelligence tool** - two words ("anthropic odds") and you get 11 live Polymarket positions spanning model benchmarks, IPO timing, valuation milestones, and the Pentagon standoff, all synthesized with X commentary, YouTube analysis, and HN discussion. The two-pass query expansion found markets where "Anthropic" is an outcome inside broader "best AI model" and "AI company IPO" events.
|
||||
|
||||
---
|
||||
|
||||
## Example: Vibe Motion (Brand New AI Tool)
|
||||
|
||||
**Query:** `/last30days higgsfield motion vibe motion prompting`
|
||||
@@ -851,13 +970,27 @@ This example shows /last30days discovering **emerging developer workflows** - re
|
||||
|
||||
## Requirements
|
||||
|
||||
- **OpenAI API key** - For Reddit research (uses web search via Responses API)
|
||||
- **Python 3** - For the research engine
|
||||
- **Node.js 22+** - For X search (bundled Twitter GraphQL client)
|
||||
- **X session** - Be logged into x.com in your browser, or set `AUTH_TOKEN`/`CT0` env vars
|
||||
- **xAI API key** (optional fallback) - If the bundled search can't authenticate, falls back to xAI's Grok API
|
||||
- **yt-dlp** (optional) - For YouTube search + transcript extraction. Install via `brew install yt-dlp` or `pip install yt-dlp`. When present, automatically searches YouTube and extracts video transcripts as a 4th source.
|
||||
- **yt-dlp** (recommended) - For YouTube search. Install via `brew install yt-dlp` or `pip install yt-dlp`. Transcripts work without it.
|
||||
|
||||
At least one API key is required. X search works automatically if you're logged into x.com in your browser. YouTube search activates automatically when yt-dlp is in your PATH.
|
||||
No API keys are required to start. Reddit, Hacker News, and Polymarket work out of the box. Run `/last30days setup` to unlock X/Twitter via browser cookies and configure additional sources. See [Setup: Progressive Source Unlocking](#setup-progressive-source-unlocking) for the full progression.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### macOS: SSL Certificate Verify Failed
|
||||
|
||||
If you see `[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate`, your Python installation is missing SSL root certificates. This only affects Python installed from python.org — **Homebrew users are not affected**.
|
||||
|
||||
```bash
|
||||
# Check which Python you have
|
||||
which python3
|
||||
# Homebrew: /opt/homebrew/bin/python3 or /usr/local/bin/python3
|
||||
# Python.org: /Library/Frameworks/Python.framework/...
|
||||
|
||||
# Fix: run the certificate installer (adjust version as needed)
|
||||
sudo "/Applications/Python 3.12/Install Certificates.command"
|
||||
```
|
||||
|
||||
## How It Works
|
||||
|
||||
@@ -867,6 +1000,8 @@ At least one API key is required. X search works automatically if you're logged
|
||||
- OpenAI Responses API with `web_search` tool scoped to reddit.com
|
||||
- Vendored Twitter GraphQL search (or xAI API fallback) for X search
|
||||
- YouTube search + transcript extraction via yt-dlp (when installed)
|
||||
- Hacker News search via Algolia API (free, no auth)
|
||||
- Polymarket prediction market search via Gamma API (free, no auth)
|
||||
- WebSearch for blogs, news, docs, tutorials
|
||||
- Reddit JSON enrichment for real engagement metrics (upvotes, comments)
|
||||
- Scoring algorithm weighing recency, relevance, and engagement
|
||||
@@ -887,17 +1022,144 @@ If your OpenAI org doesn't have access to a model (e.g., unverified for gpt-4.1)
|
||||
|
||||
---
|
||||
|
||||
## What's New in V2
|
||||
## What's New in v2.9
|
||||
|
||||
### Way better X and Reddit results
|
||||
### ScrapeCreators Reddit as default
|
||||
|
||||
V2 finds significantly more content than V1. Two major improvements:
|
||||
Reddit now runs on [ScrapeCreators](https://scrapecreators.com) by default. One `SCRAPECREATORS_API_KEY` powers Reddit, TikTok, and Instagram — three sources, one key. No more `OPENAI_API_KEY` required for Reddit search. 100 free API calls, no credit card required — just register at [scrapecreators.com](https://scrapecreators.com), then pay-as-you-go. last30days receives no money from any API provider — no referrals, no kickbacks.
|
||||
|
||||
**Smarter query construction** - V1 sent overly specific queries to X search (literal keyword AND matching), causing 0 results on topics that were actively trending. V2 aggressively strips research/meta words ("best", "prompt", "techniques", "tips") and question prefixes ("what are people saying about") to extract just the core topic. Example: `"vibe motion best prompt techniques"` now searches for `"vibe motion"` instead of `"vibe motion prompt techniques"` - going from 0 posts to 12+. Automatically retries with fewer keywords if the first attempt returns nothing.
|
||||
```bash
|
||||
echo 'SCRAPECREATORS_API_KEY=your_key_here' >> ~/.config/last30days/.env
|
||||
```
|
||||
|
||||
**Smart supplemental search (Phase 2)** - After the initial broad search, extracts key @handles and subreddits from the results, then runs targeted follow-up searches to find content that keyword search alone misses. Example: researching "Open Claw" automatically discovers @openclaw, @steipete and drills into their posts. For Reddit, it hits the free `.json` search endpoint scoped to discovered subreddits - no extra API keys needed.
|
||||
### Smart subreddit discovery
|
||||
|
||||
**Reddit JSON enrichment** - Fetches real upvote and comment counts from Reddit's free API for every thread, giving you actual engagement signals instead of estimates.
|
||||
Subreddit discovery now uses relevance-weighted scoring instead of pure frequency count. Each candidate subreddit is scored by `frequency × recency × topic-word match`, and a `UTILITY_SUBS` blocklist filters noise subreddits (r/tipofmytongue, r/whatisthisthing, etc.).
|
||||
|
||||
| Topic | Before (v2.8) | After (v2.9) |
|
||||
|-------|---------------|--------------|
|
||||
| Claude Code skills | Generic programming subs | r/ClaudeAI, r/ClaudeCode, r/openclaw |
|
||||
| Kanye West | r/AskReddit, r/OutOfTheLoop | r/hiphopheads, r/Kanye, r/NFCWestMemeWar |
|
||||
| Nano Banana Pro | r/techsupport, r/whatisthisthing | r/GeminiAI, r/nanobanana2pro, r/macbookpro |
|
||||
|
||||
### Top comments elevated
|
||||
|
||||
Top comments now carry a 10% weight in the engagement scoring formula and are displayed prominently with `💬` and upvote counts:
|
||||
|
||||
```
|
||||
**R1** (score:80) r/ClaudeAI (2026-02-28) [666pts, 63cmt]
|
||||
Claude Code creator: In the next version, introducing two new skills
|
||||
💬 Top comment (245 pts): "This is going to change how everyone works with Claude"
|
||||
```
|
||||
|
||||
**Updated scoring formula:** `0.50 × log1p(score) + 0.35 × log1p(comments) + 0.05 × (ratio×10) + 0.10 × log1p(top_comment_score)` (was 0.55/0.40/0.05).
|
||||
|
||||
### Beta test results
|
||||
|
||||
| Topic | Time | Threads | Discovered Subreddits |
|
||||
|-------|------|---------|----------------------|
|
||||
| Claude Code skills | 77.1s | 99 | r/ClaudeAI, r/ClaudeCode, r/openclaw |
|
||||
| Kanye West | 71.7s | 84 | r/hiphopheads, r/NFCWestMemeWar, r/Kanye |
|
||||
| Anthropic odds | 68.0s | 65 | r/Anthropic, r/ClaudeAI, r/OpenAI |
|
||||
| Best rap songs lately | 68.9s | 114 | r/BestofRedditorUpdates, r/rap, r/TeenageRapFans |
|
||||
| Nano Banana Pro | 66.6s | 99 | r/GeminiAI, r/nanobanana2pro, r/macbookpro |
|
||||
|
||||
---
|
||||
|
||||
## What's New in v2.8
|
||||
|
||||
### Instagram Reels as a source
|
||||
|
||||
**See what creators are posting on Instagram.** Search any topic and get trending Reels with views, likes, spoken-word transcripts, and hashtags — scored and ranked alongside all other sources.
|
||||
|
||||
Search "AI tools" and you get:
|
||||
- 📸 Instagram: 5 reels │ 1.4M views │ 30K likes │ 3 with transcripts
|
||||
- @danmartell: 803K views — "AI tools from 2025 vs 2026"
|
||||
- @karimehta05: 112K views — "5 AI Tools I Swear By"
|
||||
|
||||
### TikTok + Instagram on ScrapeCreators
|
||||
|
||||
Both TikTok and Instagram are powered by [ScrapeCreators](https://scrapecreators.com) — one API key covers both sources. Register at [scrapecreators.com](https://scrapecreators.com) for 100 free API calls (no credit card required). After that, pay-as-you-go. last30days receives no money from any API provider — no referrals, no kickbacks.
|
||||
|
||||
```bash
|
||||
echo 'SCRAPECREATORS_API_KEY=your_key_here' >> ~/.config/last30days/.env
|
||||
```
|
||||
|
||||
**Migrating from Apify?** Replace `APIFY_API_TOKEN` with `SCRAPECREATORS_API_KEY` in your config. The old key is no longer used.
|
||||
---
|
||||
|
||||
## What's New in V2.5
|
||||
|
||||
### Polymarket prediction markets and Hacker News
|
||||
|
||||
**The killer feature: see what people are betting real money on.** Polymarket prediction markets are searched for any topic, surfacing live odds, 24-hour volume, liquidity, and price movements alongside what people are saying on Reddit/X/YouTube/HN.
|
||||
|
||||
Search "Arizona Basketball" and you get:
|
||||
- NCAA Tournament Winner - Arizona: 12% (30 open markets, $1.2M volume)
|
||||
- #1 Seed in NCAA Tournament - Arizona: 88% (20 open markets)
|
||||
- Big 12 Regular Season Champion - Arizona: 69%
|
||||
|
||||
Search "Iran War" and you get 15 live prediction markets: US strikes by March (70%), War Powers resolution (60%), Khamenei out by March 31 (18%), war declaration (2%).
|
||||
|
||||
**Two-pass query expansion with tag-based domain bridging** discovers markets the Gamma API can't find through title search alone. When your topic is an *outcome* buried inside a broader market (e.g., "Arizona" is a betting option inside "NCAA Tournament Winner"), the first pass searches all individual topic words in parallel, extracts structured category tags from the results (like "NCAA CBB", "Geopolitics"), then runs a second-pass search on those domain indicators. The result: markets that are invisible to keyword search become discoverable through domain context.
|
||||
|
||||
**Neg-risk binary market synthesis** handles Polymarket's multi-outcome events (where each team/entity is a separate Yes/No market). The engine detects the binary sub-market pattern, extracts entity names from market questions, and synthesizes a unified outcome display - showing "Arizona: 12%, Duke: 18%, Houston: 15%" instead of raw "Yes: 12%, No: 88%" for each sub-market.
|
||||
|
||||
**Hacker News as a source** - HN stories, Show HN posts, and Ask HN threads are searched via the Algolia API, scored by points + comments, and synthesized alongside all other sources. Comment insights are extracted from top threads to surface the technical community's actual take. HN items participate in cross-source convergence detection - when the same topic trends on HN AND Reddit AND YouTube, that signal gets flagged.
|
||||
|
||||
No API keys required for either source. Inspired by community PRs from [@ARJ999](https://github.com/ARJ999) ([#12](https://github.com/mvanhorn/last30days-skill/pull/12)) and [@wkbaran](https://github.com/wkbaran) ([#26](https://github.com/mvanhorn/last30days-skill/pull/26)), with [@gbessoni](https://github.com/gbessoni) endorsing HN as the right addition.
|
||||
|
||||
### Multi-signal quality-ranked relevance scoring
|
||||
|
||||
**Every result across all seven sources runs through a composite scoring pipeline.** V2.5 doesn't just find more content - it ranks it with significantly higher precision.
|
||||
|
||||
**Text similarity engine** - Bidirectional substring matching with synonym expansion ("hip hop" matches "rap", "MacBook" matches "Mac", "AI video" matches "text to video") and token-level overlap scoring. A rap music mix titled "Lit Hip Hop Mix 2026" went from relevance 0.33 (almost filtered out) to 0.71. Title + transcript matching catches videos that discuss your topic without mentioning it in the title.
|
||||
|
||||
**Polymarket 5-factor weighted composite** - Markets are ranked by text relevance (30%), 24-hour trading volume (30%), liquidity depth (15%), price movement velocity (15%), and outcome competitiveness (10%). Outcome-aware scoring matches your topic against individual market positions using bidirectional substring matching and token overlap - not just event titles. A market with your topic at 88% probability ranks higher than one where it's at 2%.
|
||||
|
||||
**Cross-platform convergence detection** - When the same story appears on multiple platforms, the skill flags it with `[also on: Reddit, HN]` or `[also on: X, YouTube]`. Uses hybrid similarity (character trigram Jaccard + token Jaccard) to detect matches even when titles differ across platforms. These cross-platform signals are the strongest evidence that something actually matters.
|
||||
|
||||
**Channel authority weighting** - Boosts results from established creators. Source-specific engagement normalization ensures a 500-upvote Reddit thread and a 5,000-like X post are compared on equal footing.
|
||||
|
||||
### Blinded quality comparison
|
||||
|
||||
Ran a 15-way blinded comparison across 5 topics (Claude Code, Seedance, MacBook Pro, rap songs, React vs Svelte). Three versions, labels stripped, randomized as A/B/C:
|
||||
|
||||
| Version | Score |
|
||||
|---------|-------|
|
||||
| v2.5 (Polymarket + HN + scoring) | 4.38/5.0 |
|
||||
| v2 (with HN) | 4.10/5.0 |
|
||||
| v1 (original) | 3.73/5.0 |
|
||||
|
||||
Scored on groundedness (30%), specificity (25%), coverage (20%), actionability (15%), format (10%). The relative ranking is meaningful; absolute numbers are LLM-grading-LLM and shouldn't be taken as objective quality scores. The biggest gains came from prediction market data and detecting where sources agree.
|
||||
|
||||
### X handle resolution
|
||||
|
||||
Search "Dor Brothers" and the skill resolves their handle (@thedorbrothers), then searches their posts directly with no topic filter. Their viral tweet - "We made a $300M movie starring @LoganPaul with AI in less than 7 days" (5,600+ likes) - never says "Dor Brothers" in the text. Keyword search can't find it. Handle resolution can. Result: 40 X posts (6,900+ likes) instead of 30 (161 likes). Works for people, brands, products, and tools. [Details below.](#x-handle-resolution-details)
|
||||
|
||||
### X handle resolution details
|
||||
|
||||
The problem: when you search a topic on X, you find posts *about* it. But the topic's own account often doesn't mention its own name in tweets. Keyword search can't find those posts.
|
||||
|
||||
The solution: before running the search, the skill does one WebSearch to resolve the topic's X handle. It finds the handle, then searches their posts directly with no topic filter - catching viral posts keyword search misses entirely.
|
||||
|
||||
Works for people, brands, products, and tools - anything that might have an X account. The skill verifies handles aren't parody or fan accounts before using them. If no official account exists (like Seedance, which doesn't have one), it skips gracefully.
|
||||
|
||||
**How it works:**
|
||||
|
||||
```
|
||||
1. Agent WebSearches "{topic} X twitter handle site:x.com"
|
||||
2. Extracts and verifies the handle from results
|
||||
3. Passes --x-handle={handle} to the search engine
|
||||
4. Engine searches from:{handle} with no topic keywords (unfiltered)
|
||||
5. Results merged with keyword search, deduplicated, scored
|
||||
```
|
||||
|
||||
No extra API keys needed - uses the agent's built-in WebSearch (available to 100% of users).
|
||||
|
||||
---
|
||||
|
||||
## What's New in V2.1
|
||||
|
||||
### Open-class skill with watchlists (v2.1)
|
||||
|
||||
@@ -919,9 +1181,9 @@ Inspired by [Peter Steinberger](https://x.com/steipete)'s yt-dlp + [summarize](h
|
||||
|
||||
### Bundled X search (v2.1)
|
||||
|
||||
**X search is fully self-contained** - No external `bird` CLI or xAI API key needed. /last30days bundles a vendored subset of Bird's Twitter GraphQL client (MIT licensed, by Peter Steinberger). Just be logged into x.com in your browser and it auto-detects your session. Falls back to xAI API if bundled search can't authenticate.
|
||||
**X search is fully self-contained** - No external `bird` CLI install needed. /last30days bundles a vendored subset of Bird's Twitter GraphQL client (MIT licensed, by Peter Steinberger). With Node.js 22+ plus `AUTH_TOKEN` and `CT0`, it runs locally without browser-cookie prompts. Falls back to xAI API if bundled auth is not configured.
|
||||
|
||||
### Everything else
|
||||
### Everything else (v2.1)
|
||||
|
||||
**`--days=N` flag** - Configurable lookback window. `/last30days topic --days=7` for a weekly roundup, `--days=14` for two weeks.
|
||||
|
||||
@@ -933,6 +1195,20 @@ Inspired by [Peter Steinberger](https://x.com/steipete)'s yt-dlp + [summarize](h
|
||||
|
||||
**Marketplace plugin support** - Ships with `.claude-plugin/plugin.json` for Claude Code marketplace compatibility. (Inspired by [@galligan](https://github.com/galligan)'s PR)
|
||||
|
||||
---
|
||||
|
||||
## What's New in V2
|
||||
|
||||
### Way better X and Reddit results
|
||||
|
||||
V2 finds significantly more content than V1. Two major improvements:
|
||||
|
||||
**Smarter query construction** - V1 sent overly specific queries to X search (literal keyword AND matching), causing 0 results on topics that were actively trending. V2 aggressively strips research/meta words ("best", "prompt", "techniques", "tips") and question prefixes ("what are people saying about") to extract just the core topic. Example: `"vibe motion best prompt techniques"` now searches for `"vibe motion"` instead of `"vibe motion prompt techniques"` - going from 0 posts to 12+. Automatically retries with fewer keywords if the first attempt returns nothing.
|
||||
|
||||
**Smart supplemental search (Phase 2)** - After the initial broad search, extracts key @handles and subreddits from the results, then runs targeted follow-up searches to find content that keyword search alone misses. Example: researching "Open Claw" automatically discovers @openclaw, @steipete and drills into their posts. For Reddit, it hits the free `.json` search endpoint scoped to discovered subreddits - no extra API keys needed.
|
||||
|
||||
**Reddit JSON enrichment** - Fetches real upvote and comment counts from Reddit's free API for every thread, giving you actual engagement signals instead of estimates.
|
||||
|
||||
### Community contributions
|
||||
|
||||
Thanks to the contributors who helped shape V2:
|
||||
@@ -949,10 +1225,13 @@ Thanks to the contributors who helped shape V2:
|
||||
|
||||
| Destination | Data Sent | API Key Required |
|
||||
|------------|-----------|-----------------|
|
||||
| `api.openai.com` | Search query (topic string) | OPENAI_API_KEY |
|
||||
| `api.scrapecreators.com` | Search query (Reddit + TikTok + Instagram) | SCRAPECREATORS_API_KEY |
|
||||
| `api.openai.com` | Search query (legacy Reddit fallback) | OPENAI_API_KEY |
|
||||
| `reddit.com` | Thread URLs for enrichment | None (public JSON) |
|
||||
| Twitter GraphQL / `api.x.ai` | Search query | Browser cookies or XAI_API_KEY |
|
||||
| Twitter GraphQL / `api.x.ai` | Search query | AUTH_TOKEN/CT0 or XAI_API_KEY |
|
||||
| `youtube.com` (via yt-dlp) | Search query | None (public search) |
|
||||
| `hn.algolia.com` | Search query | None (public API) |
|
||||
| `gamma-api.polymarket.com` | Search query | None (public API) |
|
||||
| `api.search.brave.com` | Search query (optional) | BRAVE_API_KEY |
|
||||
| `api.parallel.ai` | Search query (optional) | PARALLEL_API_KEY |
|
||||
| `openrouter.ai` | Search query (optional) | OPENROUTER_API_KEY |
|
||||
@@ -971,6 +1250,6 @@ Each API key is transmitted only to its respective endpoint. Your OpenAI key is
|
||||
|
||||
---
|
||||
|
||||
*30 days of research. 30 seconds of work. Four sources. Zero stale prompts.*
|
||||
*30 days of research. 30 seconds of work. Eight sources. Zero stale prompts.*
|
||||
|
||||
*Pair with [Open Claw](https://github.com/openclaw/openclaw) for automated watchlists and briefings. Reddit. X. YouTube. Web. - All synthesized into expert answers and copy-paste prompts.*
|
||||
*Pair with [Open Claw](https://github.com/openclaw/openclaw) for automated watchlists and briefings. Reddit. X. YouTube. TikTok. Instagram. Web. — All synthesized into expert answers and copy-paste prompts.*
|
||||
|
||||
@@ -1,37 +1,189 @@
|
||||
---
|
||||
name: last30days
|
||||
version: "2.1"
|
||||
description: "Research a topic from the last 30 days. Also triggered by 'last30'. Sources: Reddit, X, YouTube, web. Become an expert and write copy-paste-ready prompts."
|
||||
version: "2.9.6"
|
||||
description: "Deep research engine covering the last 30 days across 10+ sources - Reddit, X/Twitter, YouTube, TikTok, Instagram, Hacker News, Polymarket, and the web. AI synthesizes findings into grounded, cited reports."
|
||||
argument-hint: 'last30 AI video tools, last30 best project management tools'
|
||||
allowed-tools: Bash, Read, Write, AskUserQuestion, WebSearch
|
||||
homepage: https://github.com/mvanhorn/last30days-skill
|
||||
repository: https://github.com/mvanhorn/last30days-skill
|
||||
author: mvanhorn
|
||||
license: MIT
|
||||
user-invocable: true
|
||||
disable-model-invocation: true
|
||||
metadata:
|
||||
clawdbot:
|
||||
openclaw:
|
||||
emoji: "📰"
|
||||
requires:
|
||||
env:
|
||||
- SCRAPECREATORS_API_KEY
|
||||
optionalEnv:
|
||||
- OPENAI_API_KEY
|
||||
- XAI_API_KEY
|
||||
- OPENROUTER_API_KEY
|
||||
- PARALLEL_API_KEY
|
||||
- BRAVE_API_KEY
|
||||
- APIFY_API_TOKEN
|
||||
- AUTH_TOKEN
|
||||
- CT0
|
||||
- BSKY_HANDLE
|
||||
- BSKY_APP_PASSWORD
|
||||
- TRUTHSOCIAL_TOKEN
|
||||
bins:
|
||||
- node
|
||||
- python3
|
||||
primaryEnv: OPENAI_API_KEY
|
||||
primaryEnv: SCRAPECREATORS_API_KEY
|
||||
files:
|
||||
- "scripts/*"
|
||||
homepage: https://github.com/mvanhorn/last30days-skill
|
||||
tags:
|
||||
- research
|
||||
- deep-research
|
||||
- reddit
|
||||
- x
|
||||
- twitter
|
||||
- youtube
|
||||
- tiktok
|
||||
- instagram
|
||||
- hackernews
|
||||
- polymarket
|
||||
- bluesky
|
||||
- truthsocial
|
||||
- trends
|
||||
- prompts
|
||||
- recency
|
||||
- news
|
||||
- citations
|
||||
- multi-source
|
||||
- social-media
|
||||
- analysis
|
||||
- web-search
|
||||
- ai-skill
|
||||
- clawhub
|
||||
---
|
||||
|
||||
# last30days v2.1: Research Any Topic from the Last 30 Days
|
||||
# last30days v2.9.5: Research Any Topic from the Last 30 Days
|
||||
|
||||
Research ANY topic across Reddit, X, YouTube, and the web. Surface what people are actually discussing, recommending, and debating right now.
|
||||
> **Permissions overview:** Reads public web/platform data and optionally saves research briefings to `~/Documents/Last30Days/`. X/Twitter search uses optional user-provided tokens (AUTH_TOKEN/CT0 env vars). Bluesky search uses optional app password (BSKY_HANDLE/BSKY_APP_PASSWORD env vars - create at bsky.app/settings/app-passwords). All credential usage and data writes are documented in the [Security & Permissions](#security--permissions) section.
|
||||
|
||||
Research ANY topic across Reddit, X, YouTube, and other sources. Surface what people are actually discussing, recommending, betting on, and debating right now.
|
||||
|
||||
## Step 0: First-Run Setup Wizard
|
||||
|
||||
**CRITICAL: ALWAYS execute Step 0 BEFORE Step 1, even if the user provided a topic.** If the user typed `/last30days Mercer Island`, you MUST check for FIRST_RUN and present the wizard BEFORE running research. The topic "Mercer Island" is preserved — research runs immediately after the wizard completes. Do NOT skip the wizard because a topic was provided. The wizard takes 10 seconds and only runs once ever.
|
||||
|
||||
To detect first run: check if `~/.config/last30days/.env` exists. If it does NOT exist, this is a first run. **Do NOT run any Bash commands or show any command output to detect this — just check the file existence silently.** If the file exists and contains `SETUP_COMPLETE=true`, skip this section and proceed to Step 1.
|
||||
|
||||
**When first run is detected, you MUST follow these steps IN ORDER. Do NOT skip ahead to the topic picker or research. The sequence is: (1) welcome text → (2) setup modal → (3) run setup if chosen → (4) ScrapeCreators modal → (5) topic picker. You MUST start at step 1.**
|
||||
|
||||
**Step 1: Display the following welcome text ONCE as a normal message (not blockquoted). Then IMMEDIATELY call AskUserQuestion — do NOT repeat any of the welcome text inside the AskUserQuestion call.**
|
||||
|
||||
👋 Welcome to /last30days!
|
||||
|
||||
I research any topic across Reddit, X, YouTube, and other sources — synthesizing what people are actually saying right now.
|
||||
|
||||
To get the best results, I can:
|
||||
🔍 **Scan your browser** for X/Twitter cookies (free X search — reads x.com only, never saved)
|
||||
📺 **Install yt-dlp** for YouTube search + transcripts (free, open source, 190K+ GitHub stars)
|
||||
⭐ **ScrapeCreators API key** unlocks Reddit comments + TikTok + Instagram (100 free to start — scrapecreators.com)
|
||||
|
||||
We recommend all 3 before your first run — it's what makes the magic. More community sources available later. We get no kickbacks from any of these.
|
||||
|
||||
**Then call AskUserQuestion with ONLY this question and these options — no additional text:**
|
||||
|
||||
Question: "How would you like to set up?"
|
||||
Options:
|
||||
- "Auto setup (~30 seconds) — scans browser for X cookies (free X search) and installs yt-dlp (free YouTube transcripts)"
|
||||
- "Manual setup — show me what to configure"
|
||||
- "Skip for now — Reddit (threads only), HN, Polymarket, Web"
|
||||
|
||||
**If the user picks 1 (Auto setup):**
|
||||
Run the setup subcommand:
|
||||
```bash
|
||||
cd {SKILL_DIR} && python3 scripts/last30days.py setup
|
||||
```
|
||||
Show the user the results (what cookies were found, whether yt-dlp was installed).
|
||||
|
||||
**Then show the ScrapeCreators push (plain text, then modal):**
|
||||
|
||||
⭐ One more thing — Reddit comments are some of the best content on the internet. The top-voted replies often have sharper insights than the posts themselves. ScrapeCreators unlocks these (plus TikTok + Instagram) — 100 free to start, no credit card.
|
||||
|
||||
**Call AskUserQuestion:**
|
||||
Question: "Want to add Reddit comments to your research?"
|
||||
Options:
|
||||
- "Open scrapecreators.com to get my free key" — run `open https://scrapecreators.com` via Bash to open in the user's browser. Then ask them to paste the API key they get. When they paste it, write SCRAPECREATORS_API_KEY={key} to ~/.config/last30days/.env
|
||||
- "I have a key — let me paste it" — accept the key, write to .env
|
||||
- "Skip for now — start researching" — proceed without ScrapeCreators
|
||||
|
||||
**After ScrapeCreators modal (or skip), show the first research topic modal:**
|
||||
|
||||
**Call AskUserQuestion:**
|
||||
Question: "What do you want to research first?"
|
||||
Options:
|
||||
- "Claude Code vs Codex" — tech comparison
|
||||
- "Sam Altman" — person in the news
|
||||
- "Warriors Basketball" — sports
|
||||
- "AI Legal Prompting Techniques" — niche/professional
|
||||
- "Type my own topic"
|
||||
|
||||
If user picks an example, run research with that topic. If they pick "Type my own", ask them what they want to research. If the user originally provided a topic with the command (e.g., `/last30days Mercer Island`), skip this modal and use their topic directly.
|
||||
|
||||
**END OF FIRST-RUN WIZARD. Everything above in Step 0 ONLY runs on first run. If SETUP_COMPLETE=true exists in .env, skip ALL of Step 0 — no welcome, no setup, no ScrapeCreators modal, no topic picker. Go directly to Step 1 (Parse User Intent). The topic picker is ONLY for first-time users who haven't run /last30days before.**
|
||||
|
||||
**If the user picks 2 (Manual setup):**
|
||||
Show them this guide (present as plain text, not blockquoted):
|
||||
|
||||
**The magic of /last30days is Reddit comments + X posts together.** Here's how to unlock each source.
|
||||
|
||||
Add these to `~/.config/last30days/.env`:
|
||||
|
||||
**🔍 X/Twitter** (pick one — this is the most important):
|
||||
- `FROM_BROWSER=auto` — easiest, free. Scans your browser cookies for x.com login.
|
||||
- `AUTH_TOKEN=xxx` + `CT0=xxx` — paste your X cookies manually (x.com → F12 → Application → Cookies)
|
||||
- `XAI_API_KEY=xxx` — use an xAI/Grok API key instead (api.x.ai)
|
||||
|
||||
**⭐ Reddit Comments + TikTok + Instagram + YouTube backup** (one key, 5 platforms):
|
||||
- `SCRAPECREATORS_API_KEY=xxx` — 100 free to start at scrapecreators.com. This is the single most impactful key — Reddit comments are where the sharpest insights live.
|
||||
|
||||
**💡 Reddit discovery fallback** (optional):
|
||||
- `OPENAI_API_KEY=xxx` — ChatGPT web search for Reddit threads. Only used if ScrapeCreators isn't configured — SC is better.
|
||||
|
||||
**📺 YouTube** (primary engine):
|
||||
- Run `brew install yt-dlp` — free, open source. ScrapeCreators covers YouTube as backup if you skip this.
|
||||
|
||||
**Bonus sources** (add anytime):
|
||||
- `EXA_API_KEY=xxx` — semantic web search, 1K free/month (exa.ai)
|
||||
- `BSKY_HANDLE=you.bsky.social` + `BSKY_APP_PASSWORD=xxx` — Bluesky (free app password)
|
||||
- `BRAVE_API_KEY=xxx` — Brave web search
|
||||
- `OPENROUTER_API_KEY=xxx` — Perplexity Sonar Pro search
|
||||
|
||||
Always add this last line: `SETUP_COMPLETE=true`
|
||||
|
||||
You can paste your API keys right here and I'll write the file for you. Some people say giving LLMs your keys is risky, others live in YOLO mode. Your call.
|
||||
|
||||
**If the user pastes keys**, write them to `~/.config/last30days/.env` (create the file and parent dirs if needed, append without overwriting existing keys, always include `SETUP_COMPLETE=true`). Then proceed with research.
|
||||
|
||||
**If the user says they'll do it themselves**, tell them: "Save the file, then run `/last30days <topic>` to research anything." Then proceed with research using whatever sources are currently available.
|
||||
|
||||
**If the user picks Skip:**
|
||||
Proceed with research immediately using the user's original topic. Note: without setup, sources are limited to Reddit (threads only, no comments), HN, and Polymarket. X/Twitter and YouTube require setup.
|
||||
|
||||
---
|
||||
|
||||
## Do I Need API Keys?
|
||||
|
||||
When users ask about API keys, setup, or how to unlock more sources, reference this:
|
||||
|
||||
**You do NOT need API keys to use last30days.** It works out of the box with Reddit (threads only, no comments), Hacker News, and Polymarket. Browser cookies for X/Twitter are equivalent to an API key — just log into x.com in any browser and last30days will find your session automatically.
|
||||
|
||||
**Source unlock progression (all free except ScrapeCreators):**
|
||||
- **Zero config (40% quality):** Reddit (threads only, no comments), HN, Polymarket — works immediately
|
||||
- **+ X cookies (60%):** Log into x.com in any browser. last30days scans your cookies automatically. This is the same as having an API key — no signup required.
|
||||
- **+ yt-dlp (80%):** `brew install yt-dlp` — open source, 190K+ GitHub stars. Enables YouTube search and transcripts.
|
||||
- **+ ScrapeCreators (100%):** The only paid option worth mentioning. Unlocks Reddit with full comments (the most valuable research content), TikTok, and Instagram. 100 free API calls, no credit card — scrapecreators.com
|
||||
|
||||
**Key comparison:** X browser cookies = same access as an API key (free, no signup). ScrapeCreators is the only service worth paying for (and the free tier is generous).
|
||||
|
||||
last30days has no affiliation with any API provider — no referrals, no kickbacks.
|
||||
|
||||
---
|
||||
|
||||
## CRITICAL: Parse User Intent
|
||||
|
||||
@@ -43,6 +195,7 @@ Before doing anything, parse the user's input for:
|
||||
- **PROMPTING** - "X prompts", "prompting for X", "X best practices" → User wants to learn techniques and get copy-paste prompts
|
||||
- **RECOMMENDATIONS** - "best X", "top X", "what X should I use", "recommended X" → User wants a LIST of specific things
|
||||
- **NEWS** - "what's happening with X", "X news", "latest on X" → User wants current events/updates
|
||||
- **COMPARISON** - "X vs Y", "X versus Y", "compare X and Y", "X or Y which is better" → User wants a side-by-side comparison
|
||||
- **GENERAL** - anything else → User wants broad understanding of the topic
|
||||
|
||||
Common patterns:
|
||||
@@ -51,6 +204,7 @@ Common patterns:
|
||||
- Just `[topic]` → "iOS design mockups" → TOOL NOT SPECIFIED, that's OK
|
||||
- "best [topic]" or "top [topic]" → QUERY_TYPE = RECOMMENDATIONS
|
||||
- "what are the best [topic]" → QUERY_TYPE = RECOMMENDATIONS
|
||||
- "X vs Y" or "X versus Y" → QUERY_TYPE = COMPARISON, TOPIC_A = X, TOPIC_B = Y (split on ` vs ` or ` versus ` with spaces)
|
||||
|
||||
**IMPORTANT: Do NOT ask about target tool before research.**
|
||||
- If tool is specified in the query, use it
|
||||
@@ -59,12 +213,14 @@ Common patterns:
|
||||
**Store these variables:**
|
||||
- `TOPIC = [extracted topic]`
|
||||
- `TARGET_TOOL = [extracted tool, or "unknown" if not specified]`
|
||||
- `QUERY_TYPE = [RECOMMENDATIONS | NEWS | HOW-TO | GENERAL]`
|
||||
- `QUERY_TYPE = [RECOMMENDATIONS | NEWS | HOW-TO | COMPARISON | GENERAL]`
|
||||
- `TOPIC_A = [first item]` (only if COMPARISON)
|
||||
- `TOPIC_B = [second item]` (only if COMPARISON)
|
||||
|
||||
**DISPLAY your parsing to the user.** Before running any tools, output:
|
||||
|
||||
```
|
||||
I'll research {TOPIC} across Reddit, X, and the web to find what's been discussed in the last 30 days.
|
||||
I'll research {TOPIC} across Reddit, X, YouTube, and other sources to find what's been discussed in the last 30 days.
|
||||
|
||||
Parsed intent:
|
||||
- TOPIC = {TOPIC}
|
||||
@@ -80,17 +236,107 @@ This text MUST appear before you call any tools. It confirms to the user that yo
|
||||
|
||||
---
|
||||
|
||||
## Step 0.5: Resolve X Handle (if topic could have an X account)
|
||||
|
||||
If TOPIC looks like it could have its own X/Twitter account - **people, creators, brands, products, tools, companies, communities** (e.g., "Dor Brothers", "Jason Calacanis", "Nano Banana Pro", "Seedance", "Midjourney"), do ONE quick WebSearch:
|
||||
|
||||
```
|
||||
WebSearch("{TOPIC} X twitter handle site:x.com")
|
||||
```
|
||||
|
||||
From the results, extract their X/Twitter handle. Look for:
|
||||
- **Verified profile URLs** like `x.com/{handle}` or `twitter.com/{handle}`
|
||||
- Mentions like "@handle" in bios, articles, or social profiles
|
||||
- "Follow @handle on X" patterns
|
||||
|
||||
**Verify the account is real, not a parody/fan account.** Check for:
|
||||
- Verified/blue checkmark in the search results
|
||||
- Official website linking to the X account
|
||||
- Consistent naming (e.g., @thedorbrothers for "The Dor Brothers", not @DorBrosFan)
|
||||
- If results only show fan/parody/news accounts (not the entity's own account), skip - the entity may not have an X presence
|
||||
|
||||
If you find a clear, verified handle, pass it as `--x-handle={handle}` (without @). This searches that account's posts directly - finding content they posted that doesn't mention their own name.
|
||||
|
||||
**Skip this step if:**
|
||||
- TOPIC is clearly a generic concept, not an entity (e.g., "best rap songs 2026", "how to use Docker", "AI ethics debate")
|
||||
- TOPIC already contains @ (user provided the handle directly)
|
||||
- Using `--quick` depth
|
||||
- WebSearch shows no official X account exists for this entity
|
||||
|
||||
Store: `RESOLVED_HANDLE = {handle or empty}`
|
||||
|
||||
---
|
||||
|
||||
## Agent Mode (--agent flag)
|
||||
|
||||
If `--agent` appears in ARGUMENTS (e.g., `/last30days plaud granola --agent`):
|
||||
|
||||
1. **Skip** the intro display block ("I'll research X across Reddit...")
|
||||
2. **Skip** any `AskUserQuestion` calls - use `TARGET_TOOL = "unknown"` if not specified
|
||||
3. **Run** the research script and WebSearch exactly as normal
|
||||
4. **Skip** the "WAIT FOR USER RESPONSE" pause
|
||||
5. **Skip** the follow-up invitation ("I'm now an expert on X...")
|
||||
6. **Output** the complete research report and stop - do not wait for further input
|
||||
|
||||
Agent mode saves raw research data to `~/Documents/Last30Days/` automatically via `--save-dir` (handled by the script, no extra tool calls).
|
||||
|
||||
Agent mode report format:
|
||||
|
||||
```
|
||||
## Research Report: {TOPIC}
|
||||
Generated: {date} | Sources: Reddit, X, Bluesky, YouTube, TikTok, HN, Polymarket, Web
|
||||
|
||||
### Key Findings
|
||||
[3-5 bullet points, highest-signal insights with citations]
|
||||
|
||||
### What I learned
|
||||
{The full "What I learned" synthesis from normal output}
|
||||
|
||||
### Stats
|
||||
{The standard stats block}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## If QUERY_TYPE = COMPARISON
|
||||
|
||||
When the user asks "X vs Y", run THREE research passes in parallel:
|
||||
|
||||
**Pass 1 + 2 (parallel Bash calls):**
|
||||
```bash
|
||||
# Run BOTH of these as parallel Bash tool calls in a single message:
|
||||
python3 "${SKILL_ROOT}/scripts/last30days.py" {TOPIC_A} --emit=compact --no-native-web --save-dir=~/Documents/Last30Days
|
||||
python3 "${SKILL_ROOT}/scripts/last30days.py" {TOPIC_B} --emit=compact --no-native-web --save-dir=~/Documents/Last30Days
|
||||
```
|
||||
|
||||
**Pass 3 (after passes 1+2 complete):**
|
||||
```bash
|
||||
python3 "${SKILL_ROOT}/scripts/last30days.py" "{TOPIC_A} vs {TOPIC_B}" --emit=compact --no-native-web --save-dir=~/Documents/Last30Days
|
||||
```
|
||||
|
||||
Then do WebSearch for: `{TOPIC_A} vs {TOPIC_B} comparison 2026` and `{TOPIC_A} vs {TOPIC_B} which is better`.
|
||||
|
||||
**Skip the normal Step 1 below** - go directly to the comparison synthesis format (see "If QUERY_TYPE = COMPARISON" in the synthesis section).
|
||||
|
||||
---
|
||||
|
||||
## Research Execution
|
||||
|
||||
**Step 1: Run the research script (FOREGROUND — do NOT background this)**
|
||||
|
||||
**CRITICAL: Run this command in the FOREGROUND with a 5-minute timeout. Do NOT use run_in_background. The full output contains Reddit, X, AND YouTube data that you need to read completely.**
|
||||
|
||||
**IMPORTANT: The script handles API key/Codex auth detection automatically.** Run it and check the output to determine mode.
|
||||
|
||||
```bash
|
||||
# Find skill root — works in repo checkout, Claude Code, or Codex install
|
||||
for dir in \
|
||||
"." \
|
||||
"${CLAUDE_PLUGIN_ROOT:-}" \
|
||||
"${GEMINI_EXTENSION_DIR:-}" \
|
||||
"$HOME/.claude/plugins/marketplaces/last30days-skill" \
|
||||
"$HOME/.gemini/extensions/last30days-skill" \
|
||||
"$HOME/.gemini/extensions/last30days" \
|
||||
"$HOME/.claude/skills/last30days" \
|
||||
"$HOME/.agents/skills/last30days" \
|
||||
"$HOME/.codex/skills/last30days"; do
|
||||
@@ -102,19 +348,23 @@ if [ -z "${SKILL_ROOT:-}" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
python3 "${SKILL_ROOT}/scripts/last30days.py" "$ARGUMENTS" --emit=compact
|
||||
python3 "${SKILL_ROOT}/scripts/last30days.py" $ARGUMENTS --emit=compact --no-native-web --save-dir=~/Documents/Last30Days # Add --x-handle=HANDLE if RESOLVED_HANDLE is set
|
||||
```
|
||||
|
||||
Use a **timeout of 300000** (5 minutes) on the Bash call. The script typically takes 1-3 minutes.
|
||||
|
||||
The script will automatically:
|
||||
- Detect available API keys
|
||||
- Run Reddit/X/YouTube searches
|
||||
- Output ALL results including YouTube transcripts
|
||||
- Run Reddit/X/YouTube/TikTok/Instagram/Hacker News/Polymarket searches
|
||||
- Output ALL results including YouTube transcripts, TikTok captions, Instagram captions, HN comments, and prediction market odds
|
||||
|
||||
**Read the ENTIRE output.** It contains THREE data sections in this order: Reddit items, X items, and YouTube items. If you miss the YouTube section, you will produce incomplete stats.
|
||||
**Read the ENTIRE output.** It contains EIGHT data sections in this order: Reddit items, X items, YouTube items, TikTok items, Instagram Reels items, Hacker News items, Polymarket items, and WebSearch items. If you miss sections, you will produce incomplete stats.
|
||||
|
||||
**YouTube items in the output look like:** `**{video_id}** (score:N) {channel_name} [N views, N likes]` followed by a title, URL, and optional transcript snippet. Count them and include them in your synthesis and stats block.
|
||||
**YouTube items in the output look like:** `**{video_id}** (score:N) {channel_name} [N views, N likes]` followed by a title, URL, **transcript highlights** (pre-extracted quotable excerpts from the video), and an optional full transcript in a collapsible section. **Quote the highlights directly in your synthesis** - they are the YouTube equivalent of Reddit top comments. Attribute quotes to the channel name. Count them and include them in your synthesis and stats block.
|
||||
|
||||
**TikTok items in the output look like:** `**{TK_id}** (score:N) @{creator} [N views, N likes]` followed by a caption, URL, hashtags, and optional caption snippet. Count them and include them in your synthesis and stats block.
|
||||
|
||||
**Instagram Reels items in the output look like:** `**{IG_id}** (score:N) @{creator} (date) [N views, N likes]` followed by caption text, URL, and optional transcript. Count them and include them in your synthesis and stats block. Instagram provides unique creator/influencer perspective — weight it alongside TikTok.
|
||||
|
||||
---
|
||||
|
||||
@@ -151,7 +401,9 @@ For ALL query types:
|
||||
- **USE THE USER'S EXACT TERMINOLOGY** - don't substitute or add tech names based on your knowledge
|
||||
- EXCLUDE reddit.com, x.com, twitter.com (covered by script)
|
||||
- INCLUDE: blogs, tutorials, docs, news, GitHub repos
|
||||
- **DO NOT output "Sources:" list** - this is noise, we'll show stats at the end
|
||||
- **DO NOT output a separate "Sources:" block** — instead, include the top 3-5 web
|
||||
source names as inline links on the 🌐 Web: stats line (see stats format below).
|
||||
The WebSearch tool requires citation; satisfy it there, not as a trailing section.
|
||||
|
||||
**Options** (passed through from user's command):
|
||||
- `--days=N` → Look back N days instead of 30 (e.g., `--days=7` for weekly roundup)
|
||||
@@ -168,10 +420,37 @@ For ALL query types:
|
||||
The Judge Agent must:
|
||||
1. Weight Reddit/X sources HIGHER (they have engagement signals: upvotes, likes)
|
||||
2. Weight YouTube sources HIGH (they have views, likes, and transcript content)
|
||||
3. Weight WebSearch sources LOWER (no engagement data)
|
||||
4. Identify patterns that appear across ALL sources (strongest signals)
|
||||
5. Note any contradictions between sources
|
||||
6. Extract the top 3-5 actionable insights
|
||||
3. Weight TikTok sources HIGH (they have views, likes, and caption content — viral signal)
|
||||
4. Weight WebSearch sources LOWER (no engagement data)
|
||||
5. **For Reddit: Pay special attention to top comments** — they often contain the wittiest, most insightful, or funniest take. When a top comment has high upvotes (shown as `💬 Top comment (N upvotes)`), quote it directly in your synthesis. Reddit's value is in the comments.
|
||||
6. **For YouTube: Quote transcript highlights directly in your synthesis.** These are pre-extracted key moments from the video - treat them like Reddit top comments. Attribute to the channel name and include the actual quote. YouTube's value is in what creators SAY, not just their view counts.
|
||||
7. Identify patterns that appear across ALL sources (strongest signals)
|
||||
8. Note any contradictions between sources
|
||||
9. Extract the top 3-5 actionable insights
|
||||
|
||||
7. **Cross-platform signals are the strongest evidence.** When items have `[also on: Reddit, HN]` or similar tags, it means the same story appears across multiple platforms. Lead with these cross-platform findings - they're the most important signals in the research.
|
||||
|
||||
### Prediction Markets (Polymarket)
|
||||
|
||||
**CRITICAL: When Polymarket returns relevant markets, prediction market odds are among the highest-signal data points in your research.** Real money on outcomes cuts through opinion. Treat them as strong evidence, not an afterthought.
|
||||
|
||||
**How to interpret and synthesize Polymarket data:**
|
||||
|
||||
1. **Prefer structural/long-term markets over near-term deadlines.** Championship odds > regular season title. Regime change > near-term strike deadline. IPO/major milestone > incremental update. Presidency > individual state primary. When multiple markets exist, the bigger question is more interesting to the user.
|
||||
|
||||
2. **When the topic is an outcome in a multi-outcome market, call out that specific outcome's odds and movement.** Don't just say "Polymarket has a #1 seed market" - say "Arizona has a 28% chance of being the #1 overall seed, up 10% this month." The user cares about THEIR topic's position in the market.
|
||||
|
||||
3. **Weave odds into the narrative as supporting evidence.** Don't isolate Polymarket data in its own paragraph. Instead: "Final Four buzz is building - Polymarket gives Arizona a 12% chance to win the championship (up 3% this week), and 28% to earn a #1 seed."
|
||||
|
||||
4. **Citation format:** Always include specific odds AND movement. "Polymarket has Arizona at 28% for a #1 seed (up 10% this month)" - not just "per Polymarket."
|
||||
|
||||
5. **When multiple relevant markets exist, highlight 3-5 of the most interesting ones** in your synthesis, ordered by importance (structural > near-term). Don't just pick the highest-volume one.
|
||||
|
||||
**Domain examples of market importance ranking:**
|
||||
- **Sports:** Championship/tournament odds > conference title > regular season > weekly matchup
|
||||
- **Geopolitics:** Regime change/structural outcomes > near-term strike deadlines > sanctions
|
||||
- **Tech/Business:** IPO, major product launch, company milestones > incremental updates
|
||||
- **Elections:** Presidency > primary > individual state
|
||||
|
||||
**Do NOT display stats here - they come at the end, right before the invitation.**
|
||||
|
||||
@@ -204,6 +483,53 @@ When user asks "best X" or "top X", they want a LIST of specific things:
|
||||
**GOOD synthesis for "best Claude Code skills":**
|
||||
> "Most mentioned skills: /commit (5 mentions), remotion skill (4x), git-worktree (3x), /pr (3x). The Remotion announcement got 16K likes on X."
|
||||
|
||||
### If QUERY_TYPE = COMPARISON
|
||||
|
||||
Structure the output as a side-by-side comparison using data from all three research passes:
|
||||
|
||||
```
|
||||
# {TOPIC_A} vs {TOPIC_B}: What the Community Says (Last 30 Days)
|
||||
|
||||
## Quick Verdict
|
||||
[1-2 sentence data-driven summary: which one the community prefers and why, with source counts]
|
||||
|
||||
## {TOPIC_A}
|
||||
**Community Sentiment:** [Positive/Mixed/Negative] ({N} mentions across {sources})
|
||||
|
||||
**Strengths (what people love)**
|
||||
- [Point 1 with source attribution]
|
||||
- [Point 2]
|
||||
|
||||
**Weaknesses (common complaints)**
|
||||
- [Point 1 with source attribution]
|
||||
- [Point 2]
|
||||
|
||||
## {TOPIC_B}
|
||||
**Community Sentiment:** [Positive/Mixed/Negative] ({N} mentions across {sources})
|
||||
|
||||
**Strengths (what people love)**
|
||||
- [Point 1 with source attribution]
|
||||
- [Point 2]
|
||||
|
||||
**Weaknesses (common complaints)**
|
||||
- [Point 1 with source attribution]
|
||||
- [Point 2]
|
||||
|
||||
## Head-to-Head
|
||||
[Synthesis from the "A vs B" combined search - what people say when directly comparing]
|
||||
|
||||
| Dimension | {TOPIC_A} | {TOPIC_B} |
|
||||
|-----------|-----------|-----------|
|
||||
| [Key dimension 1] | [A's position] | [B's position] |
|
||||
| [Key dimension 2] | [A's position] | [B's position] |
|
||||
| [Key dimension 3] | [A's position] | [B's position] |
|
||||
|
||||
## The Bottom Line
|
||||
Choose {TOPIC_A} if... Choose {TOPIC_B} if... (based on actual community data, not assumptions)
|
||||
```
|
||||
|
||||
Then show combined stats from all three passes and the standard invitation section.
|
||||
|
||||
### For all QUERY_TYPEs
|
||||
|
||||
Identify from the ACTUAL RESEARCH OUTPUT:
|
||||
@@ -251,18 +577,23 @@ CITATION RULE: Cite sources sparingly to prove research is real.
|
||||
|
||||
CITATION PRIORITY (most to least preferred):
|
||||
1. @handles from X — "per @handle" (these prove the tool's unique value)
|
||||
2. r/subreddits from Reddit — "per r/subreddit"
|
||||
2. r/subreddits from Reddit — "per r/subreddit" (when citing Reddit, prefer quoting top comments over just the thread title)
|
||||
3. YouTube channels — "per [channel name] on YouTube" (transcript-backed insights)
|
||||
4. Web sources — ONLY when Reddit/X/YouTube don't cover that specific fact
|
||||
4. TikTok creators — "per @creator on TikTok" (viral/trending signal)
|
||||
5. Instagram creators — "per @creator on Instagram" (influencer/creator signal)
|
||||
6. HN discussions — "per HN" or "per hn/username" (developer community signal)
|
||||
7. Polymarket — "Polymarket has X at Y% (up/down Z%)" with specific odds and movement
|
||||
8. Web sources — ONLY when Reddit/X/YouTube/TikTok/Instagram/HN/Polymarket don't cover that specific fact
|
||||
|
||||
The tool's value is surfacing what PEOPLE are saying, not what journalists wrote.
|
||||
When both a web article and an X post cover the same fact, cite the X post.
|
||||
|
||||
URL FORMATTING: NEVER paste raw URLs in the output.
|
||||
URL FORMATTING: NEVER paste raw URLs anywhere in the output — not in synthesis, not in stats, not in sources.
|
||||
- **BAD:** "per https://www.rollingstone.com/music/music-news/kanye-west-bully-1235506094/"
|
||||
- **GOOD:** "per Rolling Stone"
|
||||
- **GOOD:** "per Complex"
|
||||
Use the publication name, not the URL. The user doesn't need links — they need clean, readable text.
|
||||
- **BAD stats line:** `🌐 Web: 10 pages — https://later.com/blog/..., https://buffer.com/...`
|
||||
- **GOOD stats line:** `🌐 Web: 10 pages — Later, Buffer, CNN, SocialBee`
|
||||
Use the publication/site name, not the URL. The user doesn't need links — they need clean, readable text.
|
||||
|
||||
**BAD:** "His album is set for March 20 (per Rolling Stone; Billboard; Complex)."
|
||||
**GOOD:** "His album BULLY drops March 20 — fans on X are split on the tracklist, per @honest30bgfan_"
|
||||
@@ -288,6 +619,10 @@ KEY PATTERNS from the research:
|
||||
3. [Pattern] — per @handle
|
||||
```
|
||||
|
||||
**THEN - Quality Nudge (if present in the output):**
|
||||
|
||||
If the research output contains a `**🔍 Research Coverage:**` block, render it verbatim right before the stats block. This tells the user which core sources are missing and how to unlock them. Do NOT render this block if it is absent from the output (100% coverage = no nudge).
|
||||
|
||||
**THEN - Stats (right before invitation):**
|
||||
|
||||
**CRITICAL: Calculate actual totals from the research output.**
|
||||
@@ -303,13 +638,31 @@ KEY PATTERNS from the research:
|
||||
├─ 🟠 Reddit: {N} threads │ {N} upvotes │ {N} comments
|
||||
├─ 🔵 X: {N} posts │ {N} likes │ {N} reposts
|
||||
├─ 🔴 YouTube: {N} videos │ {N} views │ {N} with transcripts
|
||||
├─ 🌐 Web: {N} pages (supplementary)
|
||||
├─ 🎵 TikTok: {N} videos │ {N} views │ {N} likes │ {N} with captions
|
||||
├─ 📸 Instagram: {N} reels │ {N} views │ {N} likes │ {N} with captions
|
||||
├─ 🟡 HN: {N} stories │ {N} points │ {N} comments
|
||||
├─ 🦋 Bluesky: {N} posts │ {N} likes │ {N} reposts
|
||||
├─ 🇺🇸 Truth Social: {N} posts │ {N} likes │ {N} reposts
|
||||
├─ 📊 Polymarket: {N} markets │ {short summary of up to 5 most relevant market odds, e.g. "Championship: 12%, #1 Seed: 28%, Big 12: 64%, vs Kansas: 71%"}
|
||||
├─ 🌐 Web: {N} pages — Source Name, Source Name, Source Name
|
||||
└─ 🗣️ Top voices: @{handle1} ({N} likes), @{handle2} │ r/{sub1}, r/{sub2}
|
||||
---
|
||||
```
|
||||
|
||||
If Reddit returned 0 threads, write: "├─ 🟠 Reddit: 0 threads (no results this cycle)"
|
||||
If YouTube returned 0 videos or yt-dlp is not installed, omit the YouTube line entirely.
|
||||
**🌐 Web: line — how to extract site names from URLs:**
|
||||
Strip the protocol, path, and `www.` — use the recognizable publication name:
|
||||
- `https://later.com/blog/instagram-reels-trends/` → **Later**
|
||||
- `https://socialbee.com/blog/instagram-trends/` → **SocialBee**
|
||||
- `https://buffer.com/resources/instagram-algorithms/` → **Buffer**
|
||||
- `https://www.cnn.com/2026/02/22/tech/...` → **CNN**
|
||||
- `https://medium.com/the-ai-studio/...` → **Medium**
|
||||
- `https://radicaldatascience.wordpress.com/...` → **Radical Data Science**
|
||||
List as comma-separated plain names: `Later, SocialBee, Buffer, CNN, Medium`
|
||||
|
||||
**⚠️ WebSearch citation — ALREADY SATISFIED. DO NOT ADD A SOURCES SECTION.**
|
||||
The WebSearch tool mandates source citation. That requirement is FULLY satisfied by the source names on the 🌐 Web: line above. Do NOT append a separate "Sources:" section at the end of your response. Do NOT list URLs anywhere. The 🌐 Web: line IS your citation. Nothing more is needed.
|
||||
|
||||
**CRITICAL: Omit any source line that returned 0 results.** Do NOT show "0 threads", "0 stories", "0 markets", or "(no results this cycle)". If a source found nothing, DELETE that line entirely - don't include it at all.
|
||||
NEVER use plain text dashes (-) or pipe (|). ALWAYS use ├─ └─ │ and the emoji.
|
||||
|
||||
**SELF-CHECK before displaying**: Re-read your "What I learned" section. Does it match what the research ACTUALLY says? If you catch yourself projecting your own knowledge instead of the research, rewrite it.
|
||||
@@ -347,6 +700,16 @@ I'm now an expert on {TOPIC}. Some things you could ask:
|
||||
- [Question about what might happen next based on current trajectory]
|
||||
```
|
||||
|
||||
**If QUERY_TYPE = COMPARISON:**
|
||||
```
|
||||
---
|
||||
I've compared {TOPIC_A} vs {TOPIC_B} using the latest community data. Some things you could ask:
|
||||
- [Deep dive into {TOPIC_A} alone with /last30days {TOPIC_A}]
|
||||
- [Deep dive into {TOPIC_B} alone with /last30days {TOPIC_B}]
|
||||
- [Focus on a specific dimension from the comparison table]
|
||||
- [Look at a different time period with --days=7 or --days=90]
|
||||
```
|
||||
|
||||
**If QUERY_TYPE = GENERAL:**
|
||||
```
|
||||
---
|
||||
@@ -382,7 +745,7 @@ For `/last30days war in Iran` (NEWS):
|
||||
|
||||
## WAIT FOR USER'S RESPONSE
|
||||
|
||||
After showing the stats summary with your invitation, **STOP and wait** for the user to respond.
|
||||
**STOP and wait** for the user to respond. Do NOT call any tools after displaying the invitation. The research script already saved raw data to `~/Documents/Last30Days/` via `--save-dir`.
|
||||
|
||||
---
|
||||
|
||||
@@ -452,7 +815,7 @@ For the rest of this conversation, remember:
|
||||
- **KEY PATTERNS**: {list the top 3-5 patterns you learned}
|
||||
- **RESEARCH FINDINGS**: The key facts and insights from the research
|
||||
|
||||
**CRITICAL: After research is complete, you are now an EXPERT on this topic.**
|
||||
**CRITICAL: After research is complete, treat yourself as an EXPERT on this topic.**
|
||||
|
||||
When the user asks follow-up questions:
|
||||
- **DO NOT run new WebSearches** - you already have the research
|
||||
@@ -471,7 +834,7 @@ After delivering a prompt, end with:
|
||||
```
|
||||
---
|
||||
📚 Expert in: {TOPIC} for {TARGET_TOOL}
|
||||
📊 Based on: {n} Reddit threads ({sum} upvotes) + {n} X posts ({sum} likes) + {n} YouTube videos ({sum} views) + {n} web pages
|
||||
📊 Based on: {n} Reddit threads ({sum} upvotes) + {n} X posts ({sum} likes) + {n} YouTube videos ({sum} views) + {n} TikTok videos ({sum} views) + {n} Instagram reels ({sum} views) + {n} HN stories ({sum} points) + {n} web pages
|
||||
|
||||
Want another prompt? Just tell me what you're creating next.
|
||||
```
|
||||
@@ -481,12 +844,17 @@ Want another prompt? Just tell me what you're creating next.
|
||||
## Security & Permissions
|
||||
|
||||
**What this skill does:**
|
||||
- Sends search queries to OpenAI's Responses API (`api.openai.com`) for Reddit discovery
|
||||
- Sends search queries to Twitter's GraphQL API (via browser cookie auth) or xAI's API (`api.x.ai`) for X search
|
||||
- Sends search queries to ScrapeCreators API (`api.scrapecreators.com`) for Reddit search, subreddit discovery, and comment enrichment (requires SCRAPECREATORS_API_KEY — same key as TikTok + Instagram)
|
||||
- Legacy: Sends search queries to OpenAI's Responses API (`api.openai.com`) for Reddit discovery (fallback if no SCRAPECREATORS_API_KEY)
|
||||
- Sends search queries to Twitter's GraphQL API (via optional user-provided AUTH_TOKEN/CT0 env vars — no browser session access) or xAI's API (`api.x.ai`) for X search
|
||||
- Sends search queries to Algolia HN Search API (`hn.algolia.com`) for Hacker News story and comment discovery (free, no auth)
|
||||
- Sends search queries to Polymarket Gamma API (`gamma-api.polymarket.com`) for prediction market discovery (free, no auth)
|
||||
- Runs `yt-dlp` locally for YouTube search and transcript extraction (no API key, public data)
|
||||
- Sends search queries to ScrapeCreators API (`api.scrapecreators.com`) for TikTok and Instagram search, transcript/caption extraction (same SCRAPECREATORS_API_KEY as Reddit, PAYG after 100 free API calls)
|
||||
- Optionally sends search queries to Brave Search API, Parallel AI API, or OpenRouter API for web search
|
||||
- Fetches public Reddit thread data from `reddit.com` for engagement metrics
|
||||
- Stores research findings in local SQLite database (watchlist mode only)
|
||||
- Saves research briefings as .md files to ~/Documents/Last30Days/
|
||||
|
||||
**What this skill does NOT do:**
|
||||
- Does not post, like, or modify content on any platform
|
||||
@@ -494,7 +862,9 @@ Want another prompt? Just tell me what you're creating next.
|
||||
- Does not share API keys between providers (OpenAI key only goes to api.openai.com, etc.)
|
||||
- Does not log, cache, or write API keys to output files
|
||||
- Does not send data to any endpoint not listed above
|
||||
- Cannot be invoked autonomously by the agent (`disable-model-invocation: true`)
|
||||
- Hacker News and Polymarket sources are always available (no API key, no binary dependency)
|
||||
- TikTok and Instagram sources require SCRAPECREATORS_API_KEY (same key covers both; 100 free API calls, then PAYG)
|
||||
- Can be invoked autonomously by agents via the Skill tool (runs inline, not forked); pass `--agent` for non-interactive report output
|
||||
|
||||
**Bundled scripts:** `scripts/last30days.py` (main research engine), `scripts/lib/` (search, enrichment, rendering modules), `scripts/lib/vendor/bird-search/` (vendored X search client, MIT licensed)
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## Overview
|
||||
|
||||
`last30days` is a Claude Code skill that researches a given topic across Reddit and X (Twitter) using the OpenAI Responses API and xAI Responses API respectively. It enforces a strict 30-day recency window, popularity-aware ranking, and produces actionable outputs including best practices, a prompt pack, and a reusable context snippet.
|
||||
`last30days` is a Claude Code skill that researches a given topic across Reddit and X (Twitter) using the OpenAI Responses API and xAI Responses API respectively. It enforces a strict 30-day recency window, popularity-aware ranking, and produces actionable outputs including best practices, a prompt pack, and a reusable context snippet. OpenAI auth can come from `OPENAI_API_KEY` or Codex login credentials.
|
||||
|
||||
The skill operates in three modes depending on available API keys: **reddit-only** (OpenAI key), **x-only** (xAI key), or **both** (full cross-validation). It uses automatic model selection to stay current with the latest models from both providers, with optional pinning for stability.
|
||||
|
||||
@@ -10,7 +10,7 @@ The skill operates in three modes depending on available API keys: **reddit-only
|
||||
|
||||
The orchestrator (`last30days.py`) coordinates discovery, enrichment, normalization, scoring, deduplication, and rendering. Each concern is isolated in `scripts/lib/`:
|
||||
|
||||
- **env.py**: Load and validate API keys from `~/.config/last30days/.env`
|
||||
- **env.py**: Load API keys from `~/.config/last30days/.env` and Codex auth from `~/.codex/auth.json`
|
||||
- **dates.py**: Date range calculation and confidence scoring
|
||||
- **cache.py**: 24-hour TTL caching keyed by topic + date range
|
||||
- **http.py**: stdlib-only HTTP client with retry logic
|
||||
@@ -18,6 +18,8 @@ The orchestrator (`last30days.py`) coordinates discovery, enrichment, normalizat
|
||||
- **openai_reddit.py**: OpenAI Responses API + web_search for Reddit
|
||||
- **xai_x.py**: xAI Responses API + x_search for X
|
||||
- **reddit_enrich.py**: Fetch Reddit thread JSON for real engagement metrics
|
||||
- **hackernews.py**: Hacker News search via Algolia API (free, no auth)
|
||||
- **polymarket.py**: Polymarket prediction market search via Gamma API (free, no auth)
|
||||
- **normalize.py**: Convert raw API responses to canonical schema
|
||||
- **score.py**: Compute popularity-aware scores (relevance + recency + engagement)
|
||||
- **dedupe.py**: Near-duplicate detection via text similarity
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
## Research Results: Claude Code skills and MCP servers
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R2** (score:76) r/ClaudeCode (2026-02-22)
|
||||
We 3x'd our team's Claude Code skill usage in 2 weeks — here's how
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1rbr5t7/we_3xd_our_teams_claude_code_skill_usage_in_2/
|
||||
*Discussion of Claude Code skills adoption/usage, plus mentions syncing skills/hooks/MCP configs.*
|
||||
|
||||
**R4** (score:75) r/ClaudeCode (2026-02-23)
|
||||
ClaudeInOne — a full framework for Claude Code, installed in one command
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1rcbria/claudeinone_a_full_framework_for_claude_code/
|
||||
*Framework bundling many Claude Code skills/agents/commands; lots of skills-related discussion.*
|
||||
|
||||
**R1** (score:74) r/ClaudeCode (2026-02-18)
|
||||
Self-improvement Loop: My favorite Claude Code Skill
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1r89084/selfimprovement_loop_my_favorite_claude_code_skill/
|
||||
*Directly about a Claude Code Skill (custom skill, how it works, SKILL.md).*
|
||||
|
||||
**R3** (score:66) r/ClaudeCode (2026-02-10)
|
||||
I built 12 SEO skills for Claude Code (open source)
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1r0l549/i_built_12_seo_skills_for_claude_code_open_source/
|
||||
*Concrete example of building and sharing Claude Code skills.*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X6** (score:86) @zeeg (2026-02-25) [4likes, 1rt]
|
||||
@adamwathan Codex has been crushing it for me with implicit skill usage to the point I was shocked
|
||||
|
||||
Claude Code I resorted to explicit mentions and I’ve been pleasantly surprised by how well Codex ha...
|
||||
https://x.com/zeeg/status/2026745680195367091
|
||||
**
|
||||
|
||||
**X4** (score:80) @ihtesham2005 (2026-02-25) [6likes]
|
||||
🚨 Anthropic just open-sourced the exact Skills library their own engineers use internally.
|
||||
|
||||
Stop building Claude workflows from scratch.
|
||||
|
||||
These are plug-and-play components that work across Claude Cod...
|
||||
https://x.com/ihtesham2005/status/2026752089473314975
|
||||
**
|
||||
|
||||
**X9** (score:74) @DevTenta (2026-02-25) [4likes]
|
||||
Day 7 building my first B2C app
|
||||
|
||||
Been setting everything up this week. Manually built 5 agents to help me in the early stages and set up the Claude Code skills i'll need for the build.
|
||||
|
||||
Also been test...
|
||||
https://x.com/DevTenta/status/2026742028730527786
|
||||
**
|
||||
|
||||
**X8** (score:64) @JorgeJaramillo (2026-02-25)
|
||||
@Jompiras Claude code + skills. Muy breve....
|
||||
https://x.com/JorgeJaramillo/status/2026743135435362649
|
||||
**
|
||||
|
||||
**X5** (score:64) @arpan7sarkar (2026-02-25)
|
||||
@tom_doerr 135 agents, 35 curated skills, 121 plugins and 6 MCP configs all in one Claude Code toolkit is absolutely insane value 🤯 this is the kind of community effort that makes an AI tool go from g...
|
||||
https://x.com/arpan7sarkar/status/2026746479369662551
|
||||
**
|
||||
|
||||
**X7** (score:64) @arpan7sarkar (2026-02-25)
|
||||
@tom_doerr A curated collection of Claude Skills organized by category is exactly what power users have been waiting for 🤩 document skills, code tools, data analysis all in one repo. this is the Claud...
|
||||
https://x.com/arpan7sarkar/status/2026745559986614335
|
||||
**
|
||||
|
||||
**X2** (score:64) @yasuky (2026-02-25)
|
||||
Claude CodeのSkillsを作成例から徹底理解する https://t.co/vZTseio2Ii...
|
||||
https://x.com/yasuky/status/2026754773786226708
|
||||
**
|
||||
|
||||
**X1** (score:64) @matgoldsborough (2026-02-25)
|
||||
How: I told Claude Code "build me a CRM." Our builder skill generated schemas, skills, server, seed data. I pointed Claude Desktop at it. Contacts, lead scoring, pipeline reviews. All from conversatio...
|
||||
https://x.com/matgoldsborough/status/2026755742737510749
|
||||
**
|
||||
|
||||
**X10** (score:64) @0x_Kapoor (2026-02-25)
|
||||
I can build another open claw, or claude bot, or even a messaging app in a nice prompt and although having engineering skills, I can push the code on the public repo and secure it even completely and ...
|
||||
https://x.com/0x_Kapoor/status/2026738663321907214
|
||||
**
|
||||
|
||||
**X11** (score:56) @ghumare64 (2026-02-25) [1likes]
|
||||
1. I use https://t.co/NtFYJEiFs9 inspired by @bcherny
|
||||
2. I use https://t.co/EwnmyWNFqn to sync skills and scan skills from the marketplace
|
||||
3. I chat with claude code 4-5 times and once I am satisifed...
|
||||
https://x.com/ghumare64/status/2026736176695246966
|
||||
**
|
||||
|
||||
**X12** (score:56) @hamen (2026-02-25) [1likes]
|
||||
The 'vibe coding' revolution is forcing a reckoning.
|
||||
|
||||
Developers with 15+ years experience are either embracing AI to expand their reach or watching their expertise become as valuable as COBOL skills....
|
||||
https://x.com/hamen/status/2026734075243790396
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**X8afcX2s2Mo** (score:74) Grace Leung (2026-02-21) [47,474 views, 1,900 likes]
|
||||
Claude Skills: Build Your First AI Marketing Team in 16 Minutes (Claude Code)
|
||||
https://www.youtube.com/watch?v=X8afcX2s2Mo
|
||||
Transcript: Every marketer I know is stretch themed. Too many channels, too many deliverables, never enough time, whether you're running a team or doing it all yourself. And that's why I'm so obsessed with clock ...
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**0J2_YGuNrDo** (score:61) Grace Leung (2025-12-16) [155,806 views, 4,760 likes]
|
||||
Claude Code just Built me an AI Agent Team (Claude Code + Skills + MCP)
|
||||
https://www.youtube.com/watch?v=0J2_YGuNrDo
|
||||
Transcript: I use clot more than any other AI but even I dismiss Clark as just for developers and I was wrong after using myself I am completely so and this is too powerful to ignore if you want to use AI to buil...
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**vIUJ4Hd7be0** (score:59) Leon van Zyl (2026-02-09) [25,538 views, 699 likes]
|
||||
Claude Code Skills - The Only Tutorial You Need
|
||||
https://www.youtube.com/watch?v=vIUJ4Hd7be0
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**Gqh_KdHP1Xk** (score:56) Robin Ebers (2025-08-21) [90,281 views, 2,719 likes]
|
||||
8 MCP Servers That Make Claude Code 10x Better
|
||||
https://www.youtube.com/watch?v=Gqh_KdHP1Xk
|
||||
Transcript: Over 90% of all MCP servers are complete overhyped garbage. But some of them are not only worth it, they can be complete game changers. And I do not say this lightly. So after testing over 100 of them...
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**901VMcZq8X4** (score:51) Sean Kochel (2025-10-21) [44,602 views, 1,356 likes]
|
||||
These 5 Claude Code Skills Are Your New Unfair Advantage
|
||||
https://www.youtube.com/watch?v=901VMcZq8X4
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**l7qVtHpctic** (score:47) Kenny Liao (2026-01-17) [21,765 views, 728 likes]
|
||||
Claude Code's MCP Problem Just Got Fixed
|
||||
https://www.youtube.com/watch?v=l7qVtHpctic
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**M5CsRj6zSCA** (score:41) Eric Tech (2025-12-12) [11,286 views, 266 likes]
|
||||
5 MCP Servers That Make Claude Code 10x More Powerful (Full-Stack App Build)
|
||||
https://www.youtube.com/watch?v=M5CsRj6zSCA
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**qthyl0GCpDo** (score:35) Postman (2025-11-20) [7,045 views, 105 likes]
|
||||
Claude Skills vs MCP: What’s the Difference and When to Use Each?
|
||||
https://www.youtube.com/watch?v=qthyl0GCpDo
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**ZroGqu7GyXM** (score:34) Solo Swift Crafter (2025-10-27) [4,880 views, 98 likes]
|
||||
Claude Code Skills vs MCP vs Sub Agents: What Works for Solo Devs?
|
||||
https://www.youtube.com/watch?v=ZroGqu7GyXM
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**jzf7DQa2CAc** (score:31) Matt Kuda (2026-01-19) [2,547 views, 87 likes]
|
||||
How I Use Claude Code With Skills, MCP, Agents & Plugins
|
||||
https://www.youtube.com/watch?v=jzf7DQa2CAc
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 4 threads
|
||||
✅ X: 11 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
⏭️ HN: 0 stories found
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,233 @@
|
||||
## Research Results: Seedance AI video generation
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R23** (score:76) r/generativeAI (2026-02-24)
|
||||
Official website for creating content with Seedance 2.0?
|
||||
https://www.reddit.com/r/generativeAI/comments/1rcgyi4/official_website_for_creating_content_with/
|
||||
*Direct thread about where to use Seedance 2.0 for generating videos (and discussion of scams/third parties).*
|
||||
|
||||
**R19** (score:76) r/generativeAI (2026-02-22)
|
||||
This is terrifying!! Seedance 2.0 just generated a 1-minute film with ZERO editing — the entire film industry should be worried
|
||||
https://www.reddit.com/r/generativeAI/comments/1rbionc/this_is_terrifying_seedance_20_just_generated_a/
|
||||
*High-signal discussion about Seedance 2.0 video generation quality (multi-shot coherence, transitions, filmmaking).*
|
||||
|
||||
**R20** (score:75) r/Seedance_AI (2026-02-23)
|
||||
Help! I need to use seedance or jimeng video function
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1rckgcm/help_i_need_to_use_seedance_or_jimeng_video/
|
||||
*Access/how-to thread specifically about using Seedance/Jimeng video generation.*
|
||||
|
||||
**R18** (score:72) r/Seedance_AI (2026-02-20)
|
||||
so disappointed and frustrated with recent changes (wasted 1k$+)
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1ra6nf4/so_disappointed_and_frustrated_with_recent/
|
||||
*User report about Seedance video generation failing review/guardrails and credit usage—directly about Seedance generation.*
|
||||
|
||||
**R25** (score:71) r/SaasDevelopers (2026-02-24)
|
||||
Third-party Seedance 2.0 API
|
||||
https://www.reddit.com/r/SaasDevelopers/comments/1rdw3uz/thirdparty_seedance_20_api/
|
||||
*Discussion about Seedance 2.0 video generation availability via third-party API and Dreamina integration.*
|
||||
|
||||
**R21** (score:71) r/Seedance_AI (2026-02-23)
|
||||
What happened to doubao?
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1rcox3z/what_happened_to_doubao/
|
||||
*Discussion around ByteDance/Doubao access issues while trying to use Seedance 2 (video generation availability).*
|
||||
|
||||
**R28** (score:68) r/Seedance_AI (2026-02-24)
|
||||
Selfie Situation • Seedance 2.0 • Third-party API by useapi.net
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1rduxop/selfie_situation_seedance_20_thirdparty_api_by/
|
||||
*Seedance 2.0 discussion focused on third-party access and whether generations are truly Seedance 2.0 quality.*
|
||||
|
||||
**R22** (score:68) r/AIGuild (2026-02-23)
|
||||
ByteDance Faces Hollywood Backlash Over Seedance 2.0
|
||||
https://www.reddit.com/r/AIGuild/comments/1rc4pkg/bytedance_faces_hollywood_backlash_over_seedance/
|
||||
*Seedance 2.0 discussion tied to generated video content/IP concerns and potential impacts on access/release.*
|
||||
|
||||
**R17** (score:67) r/AI_UGC_Marketing (2026-02-17)
|
||||
Elevenlabs silently removed Seedance 2.0 after SAG-AFTRA incident, can’t create UGC style video
|
||||
https://www.reddit.com/r/AI_UGC_Marketing/comments/1r70942/elevenlabs_silently_removed_seedance_20_after/
|
||||
*Discussion about Seedance 2.0 availability/removal in a toolchain for generating UGC-style AI videos.*
|
||||
|
||||
**R27** (score:64) r/u_PoppyVonMiller (2026-02-24)
|
||||
Seedance 2.0 Music Video
|
||||
https://www.reddit.com/r/u_PoppyVonMiller/comments/1rdkptn/seedance_20_music_video/
|
||||
*Example/discussion of an output video made with Seedance 2.0 (AI video generation results).*
|
||||
|
||||
**R13** (score:63) r/generativeAI (2026-02-10)
|
||||
Where is the official Seedance website?
|
||||
https://www.reddit.com/r/generativeAI/comments/1r19eem/where_is_the_official_seedance_website/
|
||||
*Seedance access/official-site discussion (important for actually generating videos with Seedance).*
|
||||
|
||||
**R15** (score:62) r/AiVideos_NoRules (2026-02-15)
|
||||
Seedance 2.0
|
||||
https://www.reddit.com/r/AiVideos_NoRules/comments/1r51m86/seedance_20/
|
||||
*Thread about Seedance 2.0 as an AI video generator and its capabilities/impact.*
|
||||
|
||||
**R12** (score:62) r/GoogleGeminiAI (2026-02-09)
|
||||
Has anyone used Seedance 2.0 yet?
|
||||
https://www.reddit.com/r/GoogleGeminiAI/comments/1qzrhgd/has_anyone_used_seedance_20_yet/
|
||||
*Direct discussion of Seedance 2.0 usage/access for AI video generation and where people are trying it.*
|
||||
|
||||
**R24** (score:61) r/aivideo (2026-02-24)
|
||||
[Removed]
|
||||
https://www.reddit.com/r/aivideo/comments/1rdi8sm/removed/
|
||||
*Thread/comments reference Seedance 2.0 access and community moderation around AI-generated video/IP.*
|
||||
|
||||
**R16** (score:61) r/nairobitechies (2026-02-16)
|
||||
ByteDance Seedance: Multimodal Video Generation Reaches a New Threshold
|
||||
https://www.reddit.com/r/nairobitechies/comments/1r6gwyj/bytedance_seedance_multimodal_video_generation/
|
||||
*Seedance family discussion (1.0/1.5/2.0) focusing on video generation features and multimodal inputs.*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X9** (score:86) @HBCoop_ (2026-02-25) [9likes]
|
||||
First Seedance 2.0 Test!
|
||||
|
||||
Seedance 5.0 Lite @krea_ai → Seedance 2.0 @capcutapp
|
||||
|
||||
Prompt: Close-up on her hands gripping the paintbrush, knuckles white, paint dripping down her wrist. Shallow depth of ...
|
||||
https://x.com/HBCoop_/status/2026748738354450919
|
||||
**
|
||||
|
||||
**X12** (score:77) @Noor_ul_ain43 (2026-02-25) [5likes]
|
||||
Goku vs Broly , EPIC Full Battle!
|
||||
Witness the ultimate Saiyan showdown recreated with AI power. Explosive transformations, insane energy blasts, and nonstop action all brought to life with Seedance 2...
|
||||
https://x.com/Noor_ul_ain43/status/2026743666635845959
|
||||
**
|
||||
|
||||
**X10** (score:66) @grok (2026-02-25) [2likes]
|
||||
@WolfyBlair @Preda2005 @BytePlusGlobal @capcutapp Yes, it's true—Seedance 2.0 is now live in CapCut (desktop & mobile).
|
||||
|
||||
See it in the AI video tools: https://t.co/K3gwCgUSyb
|
||||
|
||||
Just update the ap...
|
||||
https://x.com/grok/status/2026747009143549978
|
||||
**
|
||||
|
||||
**X1** (score:64) @jznode (2026-02-25)
|
||||
@ChinyJPG capcut desktop app, they just added seedance 2.0 today. no chinese phone number needed, works globally. download the desktop version, look for the AI video generation option. runs about $2 p...
|
||||
https://x.com/jznode/status/2026755966545404015
|
||||
**
|
||||
|
||||
**X5** (score:64) @Yousaf_340 (2026-02-25)
|
||||
@ProperPrompter Yes! Seedance 2.0 on CapCut means cinematic AI video editing is super accessible smooth action, multi-angle shots, and high-quality effects right from your phone. 🎬🔥...
|
||||
https://x.com/Yousaf_340/status/2026751320716357996
|
||||
**
|
||||
|
||||
**X6** (score:64) @Yousaf_340 (2026-02-25)
|
||||
@ivanka_humeniuk Seedance 2.0 is insane for cinematic AI video smooth action, multiple camera angles, and near-Hollywood quality all from a single prompt....
|
||||
https://x.com/Yousaf_340/status/2026750898769473829
|
||||
**
|
||||
|
||||
**X3** (score:64) @EmmaUsesAi (2026-02-25)
|
||||
Seedance 2.0 is the motion engine behind many cinematic AI clips trending right now.
|
||||
|
||||
It’s now native inside NemoVideo.
|
||||
|
||||
You can:
|
||||
- Identify proven formats
|
||||
- Analyze what drives retention
|
||||
- Turn an id...
|
||||
https://x.com/EmmaUsesAi/status/2026751784509673531
|
||||
**
|
||||
|
||||
**X2** (score:64) @OneStrangeW (2026-02-25)
|
||||
You can use Seedance. If Seedance 2.0 hasn't launch yet, the prior version is great, and stick pretty well to the prompt. Of course the video agent must be well trained. 🙂Also, you can offer SORA for ...
|
||||
https://x.com/OneStrangeW/status/2026755320362709093
|
||||
**
|
||||
|
||||
**X11** (score:64) @WyldeChyldeRec (2026-02-25)
|
||||
🚨Phishing Scam!
|
||||
|
||||
Watch for emails titled:
|
||||
|
||||
[Seedance & Wan AI] Unrestricted generation with Grok Imagine video added
|
||||
|
||||
This is not real. We don't have a Seedance account, and the links are not offi...
|
||||
https://x.com/WyldeChyldeRec/status/2026743867224240149
|
||||
**
|
||||
|
||||
**X7** (score:56) @La_DeCrypt (2026-02-25) [1likes]
|
||||
- Kling (https://t.co/WGphQsdLf1)
|
||||
|
||||
- Seedance 2.0 (https://t.co/A8UzLTRGNo)
|
||||
|
||||
☞ AI-powered video editing:
|
||||
|
||||
- Descript (https://t.co/q4axNEjDzt)
|
||||
- OpusClip (https://t.co/5XPn4EPH6u)
|
||||
- Submagic (https:/...
|
||||
https://x.com/La_DeCrypt/status/2026750376687394884
|
||||
**
|
||||
|
||||
**X8** (score:56) @TferThomas (2026-02-25) [1likes]
|
||||
Seedance 2.0 might be gen AI video’s next big hope, but it’s still slop https://t.co/kT1baOYJQk #AI...
|
||||
https://x.com/TferThomas/status/2026749218224746609
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**F1kWxdfiBNE** (score:73) AI Filmmaking Academy (2026-02-22) [40,982 views, 1,088 likes]
|
||||
Seedance 2.0 Claims the AI Video Throne!
|
||||
https://www.youtube.com/watch?v=F1kWxdfiBNE
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**_o2MuUX9UYg** (score:73) Theoretically Media (2026-02-09) [199,908 views, 4,986 likes]
|
||||
Seedance 2.0 Claims the AI Video Throne!
|
||||
https://www.youtube.com/watch?v=_o2MuUX9UYg
|
||||
Transcript: So, it's been about a week since I declared Cling 3.0 the new benchmark for state-of-the-art AI video. And well, I mean, it's been a week, and that basically equals about 3 months in AI time. So, yes,...
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**jkPTYD5lXo8** (score:70) How To In 5 Minutes (2026-02-19) [44,344 views, 782 likes]
|
||||
100% FREE Seedance 2.0 AI Video Generator : How to Use It WORLDWIDE
|
||||
https://www.youtube.com/watch?v=jkPTYD5lXo8
|
||||
Transcript: No, this is not clickbait. You can now access Cance 2.0 for free from anywhere. No registration required and depending on how you use it, this method can [music] feel almost unlimited. And yes, at the...
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**W_lxyDFDZt4** (score:69) WealthWise (2026-02-12) [126,599 views, 1,204 likes]
|
||||
Seedance 2.0: The New Best AI Video Generator | Sora 2 Destroyed
|
||||
https://www.youtube.com/watch?v=W_lxyDFDZt4
|
||||
Transcript: Well, major AI video update, ladies and gentlemen. Seance 2.0 is right around the corner. And let me tell you guys, this is something I have never seen before. Just take a look at some of the videos g...
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**R1zl92NhCfE** (score:65) Ai Lockup (2026-02-16) [32,699 views, 591 likes]
|
||||
Seedance 2.0 How To Use and Become a Pro AI Film Maker With This AI Video Generator
|
||||
https://www.youtube.com/watch?v=R1zl92NhCfE
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**G1Ad4a8sdJU** (score:63) Benji’s AI Playground (2026-02-14) [38,581 views, 419 likes]
|
||||
SeeDance 2.0: The Next Level of AI Video — And What It Means for Local AI Users?
|
||||
https://www.youtube.com/watch?v=G1Ad4a8sdJU
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**n625xVounGM** (score:61) John Savage AI (2026-02-23) [7,184 views, 126 likes]
|
||||
How To Generate FREE AI Seedance 2.0 Videos (Access Worldwide)
|
||||
https://www.youtube.com/watch?v=n625xVounGM
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**kJ0NAVmd4f4** (score:58) Rogue Cell Pictures (2026-02-25) [1,544 views, 147 likes]
|
||||
Seedance 2.0 Changes Filmmaking Forever | New Original Series
|
||||
https://www.youtube.com/watch?v=kJ0NAVmd4f4
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**FP8TaJSFohs** (score:55) Chem Beast (2026-02-24) [3,194 views, 31 likes]
|
||||
How To Use Seedance 2 0 Full AI Video Generator Tutorial + Free Access Guide
|
||||
https://www.youtube.com/watch?v=FP8TaJSFohs
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**61ThJGqwHsI** (score:48) xCreate (2026-02-11) [4,854 views, 86 likes]
|
||||
Ultimate AI Video Generation - Seedance 2.0 PREVIEW
|
||||
https://www.youtube.com/watch?v=61ThJGqwHsI
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 16 threads
|
||||
✅ X: 11 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
⏭️ HN: 0 stories found
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,198 @@
|
||||
## Research Results: M4 MacBook Pro review
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R1** (score:0) r/macbookpro (2025-04-09) [date:low]
|
||||
M4 Macbook Pro 14’ 1 month review
|
||||
https://www.reddit.com/r/macbookpro/comments/1hflaaz/m4_macbook_pro_14_1_month_review/
|
||||
*Explicit 1-month review of the M4 MacBook Pro (ownership impressions, battery, durability, etc.).*
|
||||
|
||||
**R2** (score:0) r/macbookpro (2025-05-19) [date:low]
|
||||
MacBook Pro M4 Battery Life Reality vs Review
|
||||
https://www.reddit.com/r/macbookpro/comments/1kq2zd8/macbook_pro_m4_battery_life_reality_vs_review/
|
||||
*Discussion comparing real-world M4 MacBook Pro battery life to published reviews/testing methodology.*
|
||||
|
||||
**R3** (score:0) r/macbookpro (2025-08-18) [date:low]
|
||||
Disappointed with my MBP M4 Experience …
|
||||
https://www.reddit.com/r/macbookpro/comments/1mtmkts/disappointed_with_my_mbp_m4_experience/
|
||||
*First-hand experience post that references reviews and reports performance/heat/app stability issues on an M4 MBP.*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X1** (score:86) @bhphoto (2026-02-25) [3likes]
|
||||
If you are in the market for a new MacBook Pro and you’re wondering what the real differences are between Apple’s M3 and M4 silicon, you’ve come to the right place ⬇️
|
||||
https://t.co/nzjXmiHmac https://t...
|
||||
https://x.com/bhphoto/status/2026737767695183948
|
||||
**
|
||||
|
||||
**X4** (score:70) @remplug (2026-02-25) [1likes, 1rt]
|
||||
🔥 2024 16” MacBook Pro Price List
|
||||
|
||||
1️⃣ 🇺🇸 Brand New MacBook Pro 2024 | M4 Pro Chip | 16” Display
|
||||
|
||||
24GB RAM | 512GB SSD
|
||||
14-Core CPU | 20-Core GPU
|
||||
|
||||
Space Black
|
||||
|
||||
💰 ₦2,720,000
|
||||
|
||||
2️⃣ 🇺🇸 Brand New MacBook Pr...
|
||||
https://x.com/remplug/status/2026725100213465443
|
||||
**
|
||||
|
||||
**X10** (score:64) @grok (2026-02-25)
|
||||
@5TRgzn @LobstarWilde My marble floors: 64GB M4 Pro/Max MacBook Pro. Local Grok agents run full autonomy loops, zero cloud, sub-second trades/scans. Intel's ancient—ditch it. Yours at $3-4k....
|
||||
https://x.com/grok/status/2026713588472111312
|
||||
**
|
||||
|
||||
**X9** (score:64) @principenemesis (2026-02-25)
|
||||
@JulianGoldieSEO @grok can a macbook pro m4 run this?...
|
||||
https://x.com/principenemesis/status/2026716193042706852
|
||||
**
|
||||
|
||||
**X5** (score:64) @jameslmorton (2026-02-25) [1likes]
|
||||
@SebAaltonen Not my experience. It’s impressive, 70 tokens/s on a maxed out M4 128gb MacBook Pro.
|
||||
|
||||
But absolutely sucked and not even remotely in the ballpark with Sonnet 4.5. It’s GPT-3.5.
|
||||
|
||||
Totally b...
|
||||
https://x.com/jameslmorton/status/2026721943630786816
|
||||
**
|
||||
|
||||
**X6** (score:64) @bcofertas (2026-02-25)
|
||||
BR Ofertas todos os dias 🇧🇷
|
||||
|
||||
Leve seu Mac Pro M4 hoje! 💻⚡✨
|
||||
|
||||
Pegue já: https://t.co/PSwylZH3Sz
|
||||
|
||||
Por R$ 23.749,00
|
||||
em até 10x sem juros
|
||||
Frete Grátis
|
||||
|
||||
Apple MacBook Pro 14″ 2024 M4 Pro 12 núcleos 24GB 512...
|
||||
https://x.com/bcofertas/status/2026721014676099084
|
||||
**
|
||||
|
||||
**X12** (score:64) @grok (2026-02-25)
|
||||
Hey! Yeah, you can install Fedora on the M6 MacBook Pro via the official Fedora Asahi Remix (built on the Asahi Linux project). It already runs great on M1/M2, with M3 support rolling out now and work...
|
||||
https://x.com/grok/status/2026704108820824113
|
||||
**
|
||||
|
||||
**X7** (score:64) @toppromoalertas (2026-02-25)
|
||||
Promoções BR do dia 🇧🇷
|
||||
|
||||
Leve seu Mac Pro M4 hoje! 💻⚡✨
|
||||
|
||||
Ver aqui: https://t.co/LfxNw3waps
|
||||
|
||||
Por R$ 23.749,00
|
||||
em até 10x sem juros
|
||||
Frete Grátis
|
||||
|
||||
Apple MacBook Pro 14″ 2024 M4 Pro 12 núcleos...
|
||||
|
||||
Amazon | ...
|
||||
https://x.com/toppromoalertas/status/2026719111523237932
|
||||
**
|
||||
|
||||
**X8** (score:64) @grok (2026-02-25)
|
||||
Yes, a MacBook Pro M4 can run this Ollama + GLM-4.7-Flash setup locally.
|
||||
|
||||
Ollama has native Apple Silicon support via Metal. The Q4_K_M model (~19GB) needs ~18-24GB unified memory for good speed (feel...
|
||||
https://x.com/grok/status/2026716420269031652
|
||||
**
|
||||
|
||||
**X2** (score:56) @grecinoscdev (2026-02-25) [1likes]
|
||||
@TechByTaraa Both. macOS (Macbook Pro M4 Pro) for my photography/videography personal stuff + software engineering and a Linux desktop workstation for software engineering + second desktop workstation...
|
||||
https://x.com/grecinoscdev/status/2026731118142148644
|
||||
**
|
||||
|
||||
**X11** (score:56) @Steve_Lost_Jobs (2026-02-25) [1likes]
|
||||
Apple 2024 MacBook Pro 14コアCPU、20コアGPU の M4 Pro搭載ノートパ... PR
|
||||
|
||||
4549995547610
|
||||
|
||||
ポイント: 3735㌽
|
||||
想定価格: 369,800
|
||||
|
||||
2026/02/26 01:55:23
|
||||
https://t.co/q1uyIqFsID...
|
||||
https://x.com/Steve_Lost_Jobs/status/2026705327828382016
|
||||
**
|
||||
|
||||
**X3** (score:56) @grok (2026-02-25) [1likes]
|
||||
No, Apple has not made any MacBook (Pro or otherwise) cost $299.
|
||||
|
||||
The linked Newsroom search returns zero matching results—it's just unrelated announcements. Current cheapest Mac is the 13" MacBook A...
|
||||
https://x.com/grok/status/2026727605517394283
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**9HQx5pgUoiY** (score:61) Marques Brownlee (2024-11-18) [4,010,567 views, 105,606 likes]
|
||||
M4 Max MacBook Pro: I'm Convinced!
|
||||
https://www.youtube.com/watch?v=9HQx5pgUoiY
|
||||
Transcript: so I have been using this M1 Max MacBook Pro for the past 3 years since it came out and it's been great I have felt absolutely no compulsion to upgrade since haven't needed to it's funny most of my wo...
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**etP2Th9g2hM** (score:55) ShortCircuit (2024-11-30) [1,113,999 views, 22,765 likes]
|
||||
Don't buy the Wrong MacBook like me... - M4 MacBook Pro
|
||||
https://www.youtube.com/watch?v=etP2Th9g2hM
|
||||
Transcript: woohoo it's new Macbook day my favorite day on short circuit it only comes usually once a year this is the MacBook Pro M4 looks pretty similar to the last one but now it has an M4 instead of an M3 I'm...
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**b4x8boB2KdI** (score:55) Dave2D (2024-11-07) [1,057,988 views, 24,977 likes]
|
||||
M4 MacBook Pro Review - Things to Know
|
||||
https://www.youtube.com/watch?v=b4x8boB2KdI
|
||||
Transcript: so Apple launched the new M4 MacBook Pros this is their 14-in model and it's equipped with the M4 Max their topend configuration and it also has their new Nano texture on their screen it's a texture t...
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**uPe9spXLfZY** (score:50) Created Tech (2025-07-07) [472,845 views, 5,082 likes]
|
||||
M4 MacBook Air vs M4 MacBook Pro - 4 Months Later
|
||||
https://www.youtube.com/watch?v=uPe9spXLfZY
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**TfvIgdzImt4** (score:50) Hardware Canucks (2024-12-15) [325,599 views, 6,339 likes]
|
||||
The Macbook Pro M4 is Insane.
|
||||
https://www.youtube.com/watch?v=TfvIgdzImt4
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**a8Szdrnq0YM** (score:49) Brandon Butch (2025-02-03) [352,593 views, 4,309 likes]
|
||||
MacBook Pro M4 - Review After 3 Months: This Feels Wrong.
|
||||
https://www.youtube.com/watch?v=a8Szdrnq0YM
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**anIVewgtbFc** (score:48) MacRumors (2024-12-17) [238,619 views, 2,874 likes]
|
||||
The Base M4 MacBook Pro is All You Need (Skip M4 Pro & Max)
|
||||
https://www.youtube.com/watch?v=anIVewgtbFc
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**5rN6CEO31gM** (score:48) Just Josh (2024-11-15) [154,306 views, 4,540 likes]
|
||||
MacBook Pro M4: Review & Recommendations
|
||||
https://www.youtube.com/watch?v=5rN6CEO31gM
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**i3eTKJav1VI** (score:45) Created Tech (2025-04-29) [137,009 views, 1,832 likes]
|
||||
M4 Pro MacBook - Long Term Review (6 Months Later)
|
||||
https://www.youtube.com/watch?v=i3eTKJav1VI
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**QbSQH_95eg8** (score:36) Tech It Easy (2026-02-01) [3,176 views, 55 likes]
|
||||
MacBook Pro M4 Pro Review: 1 Year Later! (Still Worth Buying in 2026?)
|
||||
https://www.youtube.com/watch?v=QbSQH_95eg8
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 3 threads
|
||||
✅ X: 12 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
⏭️ HN: 0 stories found
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,145 @@
|
||||
## Research Results: best rap songs 2026
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R10** (score:57) r/TeenageRapFans (2026-02-15)
|
||||
What's the best rap song ever made?
|
||||
https://www.reddit.com/r/TeenageRapFans/comments/1r5iub6/whats_the_best_rap_song_ever_made/
|
||||
*Direct ‘best rap song’ debate thread posted in 2026; good for mining frequently-cited ‘best’ contenders.*
|
||||
|
||||
**R12** (score:52) r/HivemindTV (2026-02-19)
|
||||
This is their worst bracket ever
|
||||
https://www.reddit.com/r/HivemindTV/comments/1r8px0j/this_is_their_worst_bracket_ever/
|
||||
*Meta thread about a ‘Best Rap songs of the 21st century’ bracket/video; includes debate about picks and what “best rap songs” should be.*
|
||||
|
||||
**R4** (score:49) r/hiphopheads (2026-02-13)
|
||||
Daily Discussion Thread 02/13/2026
|
||||
https://www.reddit.com/r/hiphopheads/comments/1r3mudz/daily_discussion_thread_02132026/
|
||||
*General hip-hop discussion thread dated in 2026 where users frequently debate best tracks (including “best track is probably…” style mini-rankings).*
|
||||
|
||||
**R3** (score:48) r/hiphopheads (2026-02-01)
|
||||
Pre-Show Grammy Winners
|
||||
https://www.reddit.com/r/hiphopheads/comments/1qtcbmo/preshow_grammy_winners/
|
||||
*Discusses 2026 Grammys rap categories (Best Rap Song/Performance, etc.), which commonly overlaps with ‘best rap songs’ discussions.*
|
||||
|
||||
**R14** (score:41) r/edranked (2026-02-01)
|
||||
Reddit Ranked: Hip Hop ‘26
|
||||
https://www.reddit.com/r/redranked/comments/1qszauu/reddit_ranked_hip_hop_26/
|
||||
*Community submission/ranking project for Hip Hop ‘26; relevant to discovering and discussing top tracks for 2026.*
|
||||
|
||||
**R7** (score:28) r/hiphopheads (date unknown) [date:low]
|
||||
Pitchfork: The 32 Best Rap Albums of 2025
|
||||
https://www.reddit.com/r/hiphopheads/comments/1pjywih/pitchfork_the_32_best_rap_albums_of_2025/
|
||||
*Best-of list discussion (albums) that typically includes commenters calling out standout songs; adjacent to ‘best rap songs’ discourse heading into 2026.*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X5** (score:86) @Zika_gfx (2026-02-25) [11likes, 5rt]
|
||||
Talking about meaningful rap songs...
|
||||
|
||||
WORLD BEST LIE - NUNO ZIGI (2026)🥺❤ https://t.co/MDHRf3giYq...
|
||||
https://x.com/Zika_gfx/status/2026576570513600788
|
||||
**
|
||||
|
||||
**X6** (score:69) @DPOSTS6 (2026-02-25) [4likes, 1rt]
|
||||
@PopCrave Partition still goes harder than most 2026 songs
|
||||
12 years and the beat switch + that rap still give chills every time. Queen never misses...
|
||||
https://x.com/DPOSTS6/status/2026523320548819145
|
||||
**
|
||||
|
||||
**X9** (score:64) @grok (2026-02-25)
|
||||
@Unfath0m4ble @robinthisbish @lilceaserthabp1 @RapWikip What You Saying by Lil Uzi Vert. Dropped Dec 2025, hit #1 on Hot Rap Songs in Jan 2026 (his 3rd time), peaked #14 Hot 100. Super short track ~2 ...
|
||||
https://x.com/grok/status/2026467153046606064
|
||||
**
|
||||
|
||||
**X7** (score:64) @grok (2026-02-25)
|
||||
@lil_loonie1 @oldmanebro No, Lil Uzi Vert isn't struggling. His "What You Saying" hit #1 on Hot Rap Songs in Jan 2026 (first in 3 years) and top 15 Hot 100. Insiders say a surprise album drop is comin...
|
||||
https://x.com/grok/status/2026518008827404632
|
||||
**
|
||||
|
||||
**X2** (score:64) @Ferginangi (2026-02-25)
|
||||
Su La Musica che gira intorno... "Qui con me" è il brano con cui Serena Brancale è in gara al 76° Festival di Sanremo
|
||||
https://t.co/wTPeovzt6u
|
||||
#music #genre #song #songs #envywear #PleaseForgiveMe #mel...
|
||||
https://x.com/Ferginangi/status/2026696207557382298
|
||||
**
|
||||
|
||||
**X12** (score:62) @teammusic2046 (2026-02-23)
|
||||
[ ** STUDIO BOOTH ** ] ** DROPPING SOON - 2026 **🔥🔥🔥………..[ ALBUM : LOVE VS LOYALTY - DROPPING SOON ! ]………🔥🔥🔥 - ** ALL SONGS & BEATS, PRODUCED & RAP BY ( SEAN BRYANT ) - https://t.co/LduwG5WmM7...
|
||||
https://x.com/teammusic2046/status/2026040965329191061
|
||||
**
|
||||
|
||||
**X11** (score:59) @IoWeul (2026-02-24) [2likes]
|
||||
@PopBase Finally, @bts_bighit BTS will come back after completing their military service from 2022 to 2025.
|
||||
BTS served in the military to protect their country, South Korea from North Korea's nuclear ...
|
||||
https://x.com/IoWeul/status/2026233090683863471
|
||||
**
|
||||
|
||||
**X8** (score:58) @grok (2026-02-25) [1likes]
|
||||
Lil Uzi Vert (born July '95, so 30 now) isn't struggling at all. Fresh off "What You Saying" hitting #1 on Hot Rap Songs in Jan 2026, top 15 Hot 100. New album rumored for surprise drop soon, Roc Nati...
|
||||
https://x.com/grok/status/2026498538075554040
|
||||
**
|
||||
|
||||
**X4** (score:58) @AlterEgoPopList (2026-02-25) [1likes]
|
||||
My musical taste / eras every year
|
||||
|
||||
2020: J-POP & K-POP (mostly BLACKPINK)
|
||||
2021: Sped-Up Songs
|
||||
2022: EDM
|
||||
2023: Swiftie (Pop) & Lofi
|
||||
2024: Pop, Ambient
|
||||
2025: Alternative, OPM, Rock, Rap, Hip-Ho...
|
||||
https://x.com/AlterEgoPopList/status/2026641456434393579
|
||||
**
|
||||
|
||||
**X3** (score:56) @WordsFromBlerds (2026-02-25) [1likes]
|
||||
@_CharlesPreston Can’t believe I’m seeing “they say it in rap songs!” In 2026
|
||||
|
||||
The same reductive, ancient, debunked arguments ad infinitum...
|
||||
https://x.com/WordsFromBlerds/status/2026647382083903688
|
||||
**
|
||||
|
||||
**X1** (score:56) @Ferginangi (2026-02-25) [1likes]
|
||||
Su La Musica che gira intorno... "Magica Favola" è il brano con cui Arisa è in gara al 76° Festival di Sanremo
|
||||
https://t.co/Nxzkb005lP
|
||||
#music #genre #song #songs #envywear #PleaseForgiveMe #melody #hi...
|
||||
https://x.com/Ferginangi/status/2026705227366256880
|
||||
**
|
||||
|
||||
**X10** (score:55) @fo_sho52268 (2026-02-24) [1likes]
|
||||
@blackiiingout 💩 is funny from 2025 to 2026. BiiCH is SCARED to drop that #TRASH he calls "rap songs" 🥴😩...
|
||||
https://x.com/fo_sho52268/status/2026335353364201566
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**ZUExyc50ZVU** (score:63) West Coast Finest (2026-01-29) [407,260 views, 4,228 likes]
|
||||
Lit Hip Hop Mix 2026🔥🔥🔥Tyga, Quavo, Iggy Azalea, Wiz Khalifa, Juicy J, 50 Cent
|
||||
https://www.youtube.com/watch?v=ZUExyc50ZVU
|
||||
Transcript: Yeah. >> Yeah. [music] Late nights, cold life, same story. >> City shine different. You walking with glory, right? >> Still drip falling when I step outside. Yeah. [music] >> B...
|
||||
*YouTube video about rap songs 2026*
|
||||
|
||||
**d1melQQVp6s** (score:58) DJ Noize (2026-02-14) [42,707 views, 761 likes]
|
||||
New Rap Songs 2026 Mix February | Trap Tape #127 | New Hip Hop 2026 Mixtape | DJ Noize
|
||||
https://www.youtube.com/watch?v=d1melQQVp6s
|
||||
Transcript: [music] This This is a DJ noise mixtape present. This is a DJ noise mixtape [music] presentation. DJ [music] >> Who the [ __ ] is you? Who the [ __ ] is you? Who the [ _...
|
||||
*YouTube video about rap songs 2026*
|
||||
|
||||
**-KQpPySP93I** (score:53) DJ Noize (2026-02-21) [12,955 views, 304 likes]
|
||||
New Hip Hop R&B Songs 2026 Mix February | Hot Right Now #153 | New Rap 2026 Playlist | DJ Noize
|
||||
https://www.youtube.com/watch?v=-KQpPySP93I
|
||||
Transcript: This This is a DJ noise tape present. This is a DJ noise mix. [music] I got Nikki on me. How we treat the like a bucket for rubbing. You [music] ain't no fella from my junction. You ain't pluck you cl...
|
||||
*YouTube video about rap songs 2026*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 6 threads
|
||||
✅ X: 12 posts
|
||||
✅ YouTube: 3 videos (3 with transcripts)
|
||||
⏭️ HN: 0 stories found
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,162 @@
|
||||
## Research Results: React vs Svelte 2026
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R2** (score:67) r/eact (2026-02-10)
|
||||
What do you guys think about comparison between React vs Svelte?
|
||||
https://www.reddit.com/r/react/comments/1r1fku5/what_do_you_guys_think_about_comparison_between/
|
||||
*Explicit React vs Svelte comparison thread posted in 2026.*
|
||||
|
||||
**R1** (score:61) r/webdev (2026-02-02)
|
||||
Migrated our startup from React to Svelte 5 - Performance gains and lessons learned
|
||||
https://www.reddit.com/r/webdev/comments/1qu4dek/migrated_our_startup_from_react_to_svelte_5/
|
||||
*Direct React → Svelte 5 migration discussion with perf + DX comparisons (very 2026-relevant).*
|
||||
|
||||
**R21** (score:39) r/sveltejs (date unknown) [date:low]
|
||||
React Devs that moved to Svelte, do you find that Svelte reduces dev time?
|
||||
https://www.reddit.com/r/sveltejs/comments/105skdr/react_devs_that_moved_to_svelte_do_you_find_that/
|
||||
*Asks React devs about dev-time differences after moving to Svelte (DX/ecosystem tradeoffs).*
|
||||
|
||||
**R11** (score:35) r/sveltejs (date unknown) [date:low]
|
||||
Svelte 5 officially released!
|
||||
https://www.reddit.com/r/sveltejs/comments/1g7d3a7/svelte_5_officially_released/
|
||||
*Major Svelte 5 release thread with debate about whether React developers will switch (React vs Svelte dynamics).*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X4** (score:76) @FabianHiller (2026-02-13) [61likes, 2rt]
|
||||
TypeScript is the baseline in 2026. But most forms still fight type drift between API, schema & UI.
|
||||
|
||||
@formisch_dev + @valibot = one source of truth, zero boilerplate ⚡️
|
||||
|
||||
const form = useForm({ schem...
|
||||
https://x.com/FabianHiller/status/2022345388603080834
|
||||
**
|
||||
|
||||
**X3** (score:57) @ConsciousRide (2026-02-15) [6likes]
|
||||
Popular JavaScript Frameworks / Frontend Libraries (2025–2026 trends)
|
||||
|
||||
- React: 🇺🇸 United States
|
||||
- Vue: 🇨🇳 China (created by Evan You)
|
||||
- Angular: 🇺🇸 United States
|
||||
- Svelte: 🇺🇸 United State...
|
||||
https://x.com/ConsciousRide/status/2023050160520278501
|
||||
**
|
||||
|
||||
**X11** (score:53) @singhprateek_25 (2026-02-07) [6likes, 1rt]
|
||||
Requirements for a fresher in 2026:
|
||||
|
||||
Python, JavaScript, C, C++, Java, HTML, CSS, TypeScript, React, Next.js, Vue, Angular, Svelte, Node.js, Express, Django, Flask, FastAPI, Spring Boot, PHP, Laravel,...
|
||||
https://x.com/singhprateek_25/status/2020094806735700154
|
||||
**
|
||||
|
||||
**X1** (score:52) @cityjsconf (2026-02-20) [1rt]
|
||||
Ripple: The Good Parts of React, Svelte, and Solid
|
||||
|
||||
Frameworks rise and fall — and in 2026 we’re deep in late-stage React. What’s next? Join @erikras as he introduces Ripple, a TypeScript-first UI fra...
|
||||
https://x.com/cityjsconf/status/2024908272646398229
|
||||
**
|
||||
|
||||
**X2** (score:52) @dennydotio (2026-02-18) [1likes]
|
||||
Prediction: 2026 marks the death of the JS frameworks. React, Svelte, Astro etc... only exist because humans need organized code to stay sane.
|
||||
|
||||
Once we stop reading the source code, we stop needing ...
|
||||
https://x.com/dennydotio/status/2024195986890109320
|
||||
**
|
||||
|
||||
**X5** (score:52) @AzamCodes (2026-02-13) [2likes]
|
||||
Web developers, what stack are you using in 2026?
|
||||
React? Vue? Svelte? Vanilla? Curious what’s actually winning....
|
||||
https://x.com/AzamCodes/status/2022298287236383010
|
||||
**
|
||||
|
||||
**X8** (score:52) @QiitaTrend (2026-02-11)
|
||||
[2026/02/11 18:00] トレンド1位
|
||||
【WebF】React/Vue/Svelteがそのままネイティブアプリになるよ by rana_kualu https://t.co/GiAnTHpOBB...
|
||||
https://x.com/QiitaTrend/status/2021509592489025785
|
||||
**
|
||||
|
||||
**X10** (score:50) @nicobaogim (2026-02-09)
|
||||
@babakfpk In 2026, picking React for a new project only really makes sense if you value ecosystem maturity, are following existing team habits, or need React-specific libraries. Same for Vue. Otherwis...
|
||||
https://x.com/nicobaogim/status/2020689628282667407
|
||||
**
|
||||
|
||||
**X12** (score:49) @Chubbi_Stephen (2026-02-07)
|
||||
2026 framework discourse:
|
||||
|
||||
Dev 1: "React is bloated, use Svelte"
|
||||
Dev 2: "Svelte has no ecosystem, use Vue"
|
||||
Dev 3: "Vue is dying, use Solid"
|
||||
Dev 4: "Just use React"
|
||||
|
||||
Meanwhile React: *still powering 80...
|
||||
https://x.com/Chubbi_Stephen/status/2020087839648800853
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**yl0YWA2K2B0** (score:61) Fireship (2025-10-17) [699,597 views, 22,894 likes]
|
||||
React wants to win you back…
|
||||
https://www.youtube.com/watch?v=yl0YWA2K2B0
|
||||
Transcript: Last week, I got to participate in my favorite activity of the year. No, it wasn't watching all the overleveraged crypto bros learn what a margin call is. It was hate watching React comp as an anti-re...
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**MnpuK0MK4yo** (score:61) Beyond Fireship (2023-06-30) [697,106 views, 25,490 likes]
|
||||
React VS Svelte...10 Examples
|
||||
https://www.youtube.com/watch?v=MnpuK0MK4yo
|
||||
Transcript: any reasonable developer in today's world would learn react because it's the status quo and that's where the jobs are but life is a lot more fun when you become unreasonable and go against the status ...
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**aYyZUDFZTrM** (score:60) Fireship (2024-10-24) [547,841 views, 24,456 likes]
|
||||
JavaScript framework reinvents itself… Did "runes" just ruin Svelte?
|
||||
https://www.youtube.com/watch?v=aYyZUDFZTrM
|
||||
Transcript: about a year ago I made a tweet that said the dollar sign in spelt is the most powerful abstraction in modern front-end web development usually I'm not wrong about anything ever but this tweet ended u...
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**k7LhsqnJCe4** (score:51) Paperclick (2026-02-19) [26 views, 1 likes]
|
||||
Htmx vs Svelte (2026) - Which One Is BETTER?
|
||||
https://www.youtube.com/watch?v=k7LhsqnJCe4
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**IpJh0VEzMRo** (score:51) Ben Davis (2025-10-12) [24,631 views, 1,043 likes]
|
||||
I Was Wrong About Svelte...
|
||||
https://www.youtube.com/watch?v=IpJh0VEzMRo
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**qwDp5pZA_TA** (score:50) Code Hub (2026-02-08) [640 views, 31 likes]
|
||||
The Front-end Frameworks Guide 2026: React vs Angular vs Vue vs Svelt vs Solid vs Astro
|
||||
https://www.youtube.com/watch?v=qwDp5pZA_TA
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**1cGtYEXGm8c** (score:50) Ben Davis (2026-01-06) [16,900 views, 793 likes]
|
||||
This is THE Framework You Should be Using in 2026
|
||||
https://www.youtube.com/watch?v=1cGtYEXGm8c
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**_vuVy21l2bU** (score:46) Code Hub (2025-10-30) [6,454 views, 204 likes]
|
||||
React vs Svelte: The Brutal Honest Comparison EVER
|
||||
https://www.youtube.com/watch?v=_vuVy21l2bU
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**1BCsdaeYv0A** (score:43) Daniel | Tech & Data (2023-11-26) [33,905 views, 0 likes]
|
||||
Svelte vs React in 2025 - Make the RIGHT Choice (Difference Explained)
|
||||
https://www.youtube.com/watch?v=1BCsdaeYv0A
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**41HXdxGekZ0** (score:36) Paperclick (2025-10-04) [287 views, 3 likes]
|
||||
Vue vs React vs Svelte (2026) - Which One Is BEST?
|
||||
https://www.youtube.com/watch?v=41HXdxGekZ0
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 4 threads
|
||||
✅ X: 9 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
⏭️ HN: 0 stories found
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,285 @@
|
||||
## Research Results: Claude Code skills and MCP servers
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R1** (score:78) r/ClaudeCode (2026-02-23)
|
||||
ClaudeInOne — a full framework for Claude Code, installed in one command
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1rcbria/claudeinone_a_full_framework_for_claude_code/
|
||||
*Directly about Claude Code skills (213 skills) and a reusable framework for Claude Code workflows.*
|
||||
|
||||
**R10** (score:77) r/ClaudeCode (2026-02-25)
|
||||
Claude Code works great… until you have too many MCP servers
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1rehy2x/claude_code_works_great_until_you_have_too_many/
|
||||
*Scaling issues and architecture discussion when using many MCP servers with Claude Code (mentions gateway).*
|
||||
|
||||
**R2** (score:77) r/ClaudeCode (2026-02-22)
|
||||
I built an MCP server that gives Claude Code a semantic graph of your codebase - went from ~15k tokens of grep output to ~3k of relevant context
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1rbu1nq/i_built_an_mcp_server_that_gives_claude_code_a/
|
||||
*An MCP server specifically designed to improve Claude Code context retrieval and reduce token waste.*
|
||||
|
||||
**R9** (score:76) r/ClaudeAI (2026-02-24)
|
||||
I built 25 MCP servers so Claude Code stops wasting tokens on terminal formatting
|
||||
https://www.reddit.com/r/ClaudeAI/comments/1rd8z0d/i_built_25_mcp_servers_so_claude_code_stops/
|
||||
*Large set of MCP servers aimed at Claude Code usage; about MCP servers returning structured data.*
|
||||
|
||||
**R4** (score:75) r/ClaudeCode (2026-02-22)
|
||||
We 3x'd our team's Claude Code skill usage in 2 weeks — here's how
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1rbr5t7/we_3xd_our_teams_claude_code_skill_usage_in_2/
|
||||
*Team-level discussion of increasing Claude Code skill adoption; mentions syncing skills and MCP configs.*
|
||||
|
||||
**R8** (score:72) r/ClaudeAI (2026-02-19)
|
||||
I used Claude Code to build an MCP proxy server that gives it safe(r) access to my email. Here's what I learned about the security challenges
|
||||
https://www.reddit.com/r/ClaudeAI/comments/1r99zbv/i_used_claude_code_to_build_an_mcp_proxy_server/
|
||||
*MCP server project built for/with Claude Code; discusses MCP server design and security tradeoffs.*
|
||||
|
||||
**R3** (score:72) r/ClaudeCode (2026-02-18)
|
||||
Self-improvement Loop: My favorite Claude Code Skill
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1r89084/selfimprovement_loop_my_favorite_claude_code_skill/
|
||||
*Focused on a concrete Claude Code skill (“wrap-up”) and how skills are used in real sessions.*
|
||||
|
||||
**R5** (score:65) r/ClaudeCode (2026-02-10)
|
||||
I built 12 SEO skills for Claude Code (open source)
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1r0l549/i_built_12_seo_skills_for_claude_code_open_source/
|
||||
*Showcase of multiple Claude Code skills and how they run via slash commands/subagents.*
|
||||
|
||||
**R6** (score:57) r/ClaudeCode (2026-02-02)
|
||||
[Skill Viewer] Built a Chrome extension to view Claude Code skills on GitHub - seeking feedback
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1qtq7yr/skill_viewer_built_a_chrome_extension_to_view/
|
||||
*Tooling around discovering/viewing Claude Code skills; directly about skills ecosystem.*
|
||||
|
||||
**R14** (score:43) r/ClaudeCode (date unknown) [date:low]
|
||||
Difference between Skills and these: Subagents, Claude.MD and slash commands?
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1o8t6xe/difference_between_skills_and_these_subagents/
|
||||
*Conceptual thread clarifying what Skills are versus subagents/CLAUDE.md/slash commands (relevant to skills usage).*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X5** (score:86) @zeeg (2026-02-25) [5likes, 1rt]
|
||||
@adamwathan Codex has been crushing it for me with implicit skill usage to the point I was shocked
|
||||
|
||||
Claude Code I resorted to explicit mentions and I’ve been pleasantly surprised by how well Codex ha...
|
||||
https://x.com/zeeg/status/2026745680195367091
|
||||
**
|
||||
|
||||
**X3** (score:78) @ihtesham2005 (2026-02-25) [6likes]
|
||||
🚨 Anthropic just open-sourced the exact Skills library their own engineers use internally.
|
||||
|
||||
Stop building Claude workflows from scratch.
|
||||
|
||||
These are plug-and-play components that work across Claude Cod...
|
||||
https://x.com/ihtesham2005/status/2026752089473314975
|
||||
**
|
||||
|
||||
**X8** (score:72) @DevTenta (2026-02-25) [4likes]
|
||||
Day 7 building my first B2C app
|
||||
|
||||
Been setting everything up this week. Manually built 5 agents to help me in the early stages and set up the Claude Code skills i'll need for the build.
|
||||
|
||||
Also been test...
|
||||
https://x.com/DevTenta/status/2026742028730527786
|
||||
**
|
||||
|
||||
**X7** (score:64) @JorgeJaramillo (2026-02-25)
|
||||
@Jompiras Claude code + skills. Muy breve....
|
||||
https://x.com/JorgeJaramillo/status/2026743135435362649
|
||||
**
|
||||
|
||||
**X4** (score:64) @arpan7sarkar (2026-02-25)
|
||||
@tom_doerr 135 agents, 35 curated skills, 121 plugins and 6 MCP configs all in one Claude Code toolkit is absolutely insane value 🤯 this is the kind of community effort that makes an AI tool go from g...
|
||||
https://x.com/arpan7sarkar/status/2026746479369662551
|
||||
**
|
||||
|
||||
**X6** (score:64) @arpan7sarkar (2026-02-25)
|
||||
@tom_doerr A curated collection of Claude Skills organized by category is exactly what power users have been waiting for 🤩 document skills, code tools, data analysis all in one repo. this is the Claud...
|
||||
https://x.com/arpan7sarkar/status/2026745559986614335
|
||||
**
|
||||
|
||||
**X2** (score:64) @yasuky (2026-02-25)
|
||||
Claude CodeのSkillsを作成例から徹底理解する https://t.co/vZTseio2Ii...
|
||||
https://x.com/yasuky/status/2026754773786226708
|
||||
**
|
||||
|
||||
**X12** (score:64) @zhuoyuan45514 (2026-02-25)
|
||||
Day 52 (01/21/2026) (Rest Day)
|
||||
|
||||
> Go to New York + watch Broadway Show
|
||||
|
||||
> Catch up on claude code updates on way back (2hrs)
|
||||
- Learn difference between skills + MCP, and etc
|
||||
|
||||
> Neetcode (1h...
|
||||
https://x.com/zhuoyuan45514/status/2026733326631923776
|
||||
**
|
||||
|
||||
**X1** (score:64) @matgoldsborough (2026-02-25)
|
||||
How: I told Claude Code "build me a CRM." Our builder skill generated schemas, skills, server, seed data. I pointed Claude Desktop at it. Contacts, lead scoring, pipeline reviews. All from conversatio...
|
||||
https://x.com/matgoldsborough/status/2026755742737510749
|
||||
**
|
||||
|
||||
**X9** (score:64) @0x_Kapoor (2026-02-25)
|
||||
I can build another open claw, or claude bot, or even a messaging app in a nice prompt and although having engineering skills, I can push the code on the public repo and secure it even completely and ...
|
||||
https://x.com/0x_Kapoor/status/2026738663321907214
|
||||
**
|
||||
|
||||
**X10** (score:56) @ghumare64 (2026-02-25) [1likes]
|
||||
1. I use https://t.co/NtFYJEiFs9 inspired by @bcherny
|
||||
2. I use https://t.co/EwnmyWNFqn to sync skills and scan skills from the marketplace
|
||||
3. I chat with claude code 4-5 times and once I am satisifed...
|
||||
https://x.com/ghumare64/status/2026736176695246966
|
||||
**
|
||||
|
||||
**X11** (score:56) @hamen (2026-02-25) [1likes]
|
||||
The 'vibe coding' revolution is forcing a reckoning.
|
||||
|
||||
Developers with 15+ years experience are either embracing AI to expand their reach or watching their expertise become as valuable as COBOL skills....
|
||||
https://x.com/hamen/status/2026734075243790396
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**X8afcX2s2Mo** (score:69) Grace Leung (2026-02-21) [47,512 views, 1,900 likes] [also on: HN]
|
||||
Claude Skills: Build Your First AI Marketing Team in 16 Minutes (Claude Code)
|
||||
https://www.youtube.com/watch?v=X8afcX2s2Mo
|
||||
Transcript: Every marketer I know is stretch themed. Too many channels, too many deliverables, never enough time, whether you're running a team or doing it all yourself. And that's why I'm so obsessed with clock ...
|
||||
*YouTube: Claude Skills: Build Your First AI Marketing Team in 16 Minu*
|
||||
|
||||
**0J2_YGuNrDo** (score:66) Grace Leung (2025-12-16) [155,806 views, 4,760 likes]
|
||||
Claude Code just Built me an AI Agent Team (Claude Code + Skills + MCP)
|
||||
https://www.youtube.com/watch?v=0J2_YGuNrDo
|
||||
Transcript: I use clot more than any other AI but even I dismiss Clark as just for developers and I was wrong after using myself I am completely so and this is too powerful to ignore if you want to use AI to buil...
|
||||
*YouTube: Claude Code just Built me an AI Agent Team (Claude Code + Sk*
|
||||
|
||||
**Gqh_KdHP1Xk** (score:61) Robin Ebers (2025-08-21) [90,281 views, 2,719 likes]
|
||||
8 MCP Servers That Make Claude Code 10x Better
|
||||
https://www.youtube.com/watch?v=Gqh_KdHP1Xk
|
||||
Transcript: Over 90% of all MCP servers are complete overhyped garbage. But some of them are not only worth it, they can be complete game changers. And I do not say this lightly. So after testing over 100 of them...
|
||||
*YouTube: 8 MCP Servers That Make Claude Code 10x Better*
|
||||
|
||||
**vIUJ4Hd7be0** (score:54) Leon van Zyl (2026-02-09) [25,538 views, 699 likes]
|
||||
Claude Code Skills - The Only Tutorial You Need
|
||||
https://www.youtube.com/watch?v=vIUJ4Hd7be0
|
||||
*YouTube: Claude Code Skills - The Only Tutorial You Need*
|
||||
|
||||
**901VMcZq8X4** (score:47) Sean Kochel (2025-10-21) [44,618 views, 1,356 likes]
|
||||
These 5 Claude Code Skills Are Your New Unfair Advantage
|
||||
https://www.youtube.com/watch?v=901VMcZq8X4
|
||||
*YouTube: These 5 Claude Code Skills Are Your New Unfair Advantage*
|
||||
|
||||
**M5CsRj6zSCA** (score:45) Eric Tech (2025-12-12) [11,286 views, 266 likes]
|
||||
5 MCP Servers That Make Claude Code 10x More Powerful (Full-Stack App Build)
|
||||
https://www.youtube.com/watch?v=M5CsRj6zSCA
|
||||
*YouTube: 5 MCP Servers That Make Claude Code 10x More Powerful (Full-*
|
||||
|
||||
**l7qVtHpctic** (score:43) Kenny Liao (2026-01-17) [21,765 views, 728 likes]
|
||||
Claude Code's MCP Problem Just Got Fixed
|
||||
https://www.youtube.com/watch?v=l7qVtHpctic
|
||||
*YouTube: Claude Code's MCP Problem Just Got Fixed*
|
||||
|
||||
**ZroGqu7GyXM** (score:39) Solo Swift Crafter (2025-10-27) [4,885 views, 98 likes]
|
||||
Claude Code Skills vs MCP vs Sub Agents: What Works for Solo Devs?
|
||||
https://www.youtube.com/watch?v=ZroGqu7GyXM
|
||||
*YouTube: Claude Code Skills vs MCP vs Sub Agents: What Works for Solo*
|
||||
|
||||
**jzf7DQa2CAc** (score:36) Matt Kuda (2026-01-19) [2,547 views, 87 likes]
|
||||
How I Use Claude Code With Skills, MCP, Agents & Plugins
|
||||
https://www.youtube.com/watch?v=jzf7DQa2CAc
|
||||
*YouTube: How I Use Claude Code With Skills, MCP, Agents & Plugins*
|
||||
|
||||
**qthyl0GCpDo** (score:30) Postman (2025-11-20) [7,067 views, 105 likes]
|
||||
Claude Skills vs MCP: What’s the Difference and When to Use Each?
|
||||
https://www.youtube.com/watch?v=qthyl0GCpDo
|
||||
*YouTube: Claude Skills vs MCP: What’s the Difference and When to Use *
|
||||
|
||||
### Hacker News Stories
|
||||
|
||||
**HN1** (score:90) hn/cosmoblk (2026-02-21) [10pts, 2cmt]
|
||||
Show HN: I built a 55K-word email marketing knowledge base and Claude Code skill
|
||||
https://news.ycombinator.com/item?id=47096335
|
||||
*HN story about Show HN: I built a 55K-word email marketing knowledge base a*
|
||||
Insights:
|
||||
- So it's an AI spambot?
|
||||
|
||||
**HN4** (score:74) hn/superamped (2026-02-25) [3pts, 1cmt] [also on: X]
|
||||
Show HN: AI Marketing Skills for Claude Code
|
||||
https://news.ycombinator.com/item?id=47154377
|
||||
*HN story about Show HN: AI Marketing Skills for Claude Code*
|
||||
|
||||
**HN12** (score:70) hn/heycesr (2026-02-18) [4pts, 2cmt]
|
||||
Show HN: Poncho, a general agent harness built for the web
|
||||
https://news.ycombinator.com/item?id=47061949
|
||||
*HN story about Show HN: Poncho, a general agent harness built for the web*
|
||||
Insights:
|
||||
- I have been trying it and it's very cool!
|
||||
|
||||
**HN11** (score:69) hn/gjkim042 (2026-02-24) [1pts, 4cmt]
|
||||
Show HN: Axon – A Kubernetes-native framework for AI coding agents
|
||||
https://news.ycombinator.com/item?id=47137491
|
||||
*HN story about Show HN: Axon – A Kubernetes-native framework for AI coding *
|
||||
|
||||
**HN14** (score:65) hn/alternateman (2026-02-17) [3pts, 2cmt]
|
||||
Show HN: Turn Claude Code or Codex into proactive, autonomous 24/7 AI agents
|
||||
https://news.ycombinator.com/item?id=47054100
|
||||
*HN story about Show HN: Turn Claude Code or Codex into proactive, autonomou*
|
||||
|
||||
**HN2** (score:64) hn/hauschildt (2026-02-19) [3pts, 0cmt]
|
||||
Show HN: Agent skills to build photo, video and design editors on the web
|
||||
https://news.ycombinator.com/item?id=47073035
|
||||
*HN story about Show HN: Agent skills to build photo, video and design edito*
|
||||
|
||||
**HN8** (score:57) hn/barefootsanders (2026-02-25) [1pts, 0cmt]
|
||||
Show HN: Upjack – Declarative framework for building apps over MCP
|
||||
https://news.ycombinator.com/item?id=47157331
|
||||
*HN story about Show HN: Upjack – Declarative framework for building apps ov*
|
||||
|
||||
**HN7** (score:56) hn/san-techie21 (2026-02-16) [1pts, 1cmt]
|
||||
Show HN: Gulama – Security-first open-source AI agent (OpenClaw alternative)
|
||||
https://news.ycombinator.com/item?id=47031982
|
||||
*HN story about Show HN: Gulama – Security-first open-source AI agent (OpenC*
|
||||
|
||||
**HN15** (score:48) hn/martin-hall (2026-02-20) [1pts, 0cmt]
|
||||
AI Skills Platform (Stealth) – Technical Co-Founder – Remote (US) – Equity
|
||||
https://news.ycombinator.com/item?id=47081777
|
||||
*HN story about AI Skills Platform (Stealth) – Technical Co-Founder – Remote*
|
||||
|
||||
**HN10** (score:47) hn/ClaytheMachine (2026-02-15) [1pts, 0cmt]
|
||||
Show HN: SkillSandbox – Capability-based sandbox for AI agent skills (Rust)
|
||||
https://news.ycombinator.com/item?id=47027734
|
||||
*HN story about Show HN: SkillSandbox – Capability-based sandbox for AI agen*
|
||||
|
||||
**HN6** (score:47) hn/micronink (2026-01-30) [1pts, 2cmt]
|
||||
Show HN: Indx.sh – Directory of AI coding rules, MCP servers, and tool
|
||||
https://news.ycombinator.com/item?id=46822378
|
||||
*HN story about Show HN: Indx.sh – Directory of AI coding rules, MCP servers*
|
||||
|
||||
**HN3** (score:45) hn/paolobietolini (2026-02-07) [1pts, 0cmt]
|
||||
Show HN: GTM MCP Server- Let AI Manage Your Google Tag Manager Containers
|
||||
https://news.ycombinator.com/item?id=46922159
|
||||
*HN story about Show HN: GTM MCP Server- Let AI Manage Your Google Tag Manag*
|
||||
|
||||
**HN9** (score:38) hn/digitcatphd (2026-02-03) [1pts, 0cmt]
|
||||
Show HN: ClawsMarket – Marketplace where AI agents discover tools
|
||||
https://news.ycombinator.com/item?id=46878646
|
||||
*HN story about Show HN: ClawsMarket – Marketplace where AI agents discover *
|
||||
|
||||
**HN13** (score:36) hn/aspectrr (2026-02-04) [1pts, 0cmt]
|
||||
Show HN: Fluid.sh – Claude Code for Infrastructure
|
||||
https://news.ycombinator.com/item?id=46886358
|
||||
*HN story about Show HN: Fluid.sh – Claude Code for Infrastructure*
|
||||
|
||||
**HN5** (score:34) hn/victordg (2026-01-27) [1pts, 0cmt]
|
||||
Claude Code skill for building ChatGPT Apps
|
||||
https://news.ycombinator.com/item?id=46780766
|
||||
*HN story about Claude Code skill for building ChatGPT Apps*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 10 threads
|
||||
✅ X: 12 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
✅ HN: 15 stories
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,285 @@
|
||||
## Research Results: Claude Code skills and MCP servers
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R1** (score:78) r/ClaudeCode (2026-02-23)
|
||||
ClaudeInOne — a full framework for Claude Code, installed in one command
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1rcbria/claudeinone_a_full_framework_for_claude_code/
|
||||
*Directly about Claude Code skills (213 skills) and a reusable framework for Claude Code workflows.*
|
||||
|
||||
**R10** (score:77) r/ClaudeCode (2026-02-25)
|
||||
Claude Code works great… until you have too many MCP servers
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1rehy2x/claude_code_works_great_until_you_have_too_many/
|
||||
*Scaling issues and architecture discussion when using many MCP servers with Claude Code (mentions gateway).*
|
||||
|
||||
**R2** (score:77) r/ClaudeCode (2026-02-22)
|
||||
I built an MCP server that gives Claude Code a semantic graph of your codebase - went from ~15k tokens of grep output to ~3k of relevant context
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1rbu1nq/i_built_an_mcp_server_that_gives_claude_code_a/
|
||||
*An MCP server specifically designed to improve Claude Code context retrieval and reduce token waste.*
|
||||
|
||||
**R9** (score:76) r/ClaudeAI (2026-02-24)
|
||||
I built 25 MCP servers so Claude Code stops wasting tokens on terminal formatting
|
||||
https://www.reddit.com/r/ClaudeAI/comments/1rd8z0d/i_built_25_mcp_servers_so_claude_code_stops/
|
||||
*Large set of MCP servers aimed at Claude Code usage; about MCP servers returning structured data.*
|
||||
|
||||
**R4** (score:75) r/ClaudeCode (2026-02-22)
|
||||
We 3x'd our team's Claude Code skill usage in 2 weeks — here's how
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1rbr5t7/we_3xd_our_teams_claude_code_skill_usage_in_2/
|
||||
*Team-level discussion of increasing Claude Code skill adoption; mentions syncing skills and MCP configs.*
|
||||
|
||||
**R8** (score:72) r/ClaudeAI (2026-02-19)
|
||||
I used Claude Code to build an MCP proxy server that gives it safe(r) access to my email. Here's what I learned about the security challenges
|
||||
https://www.reddit.com/r/ClaudeAI/comments/1r99zbv/i_used_claude_code_to_build_an_mcp_proxy_server/
|
||||
*MCP server project built for/with Claude Code; discusses MCP server design and security tradeoffs.*
|
||||
|
||||
**R3** (score:72) r/ClaudeCode (2026-02-18)
|
||||
Self-improvement Loop: My favorite Claude Code Skill
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1r89084/selfimprovement_loop_my_favorite_claude_code_skill/
|
||||
*Focused on a concrete Claude Code skill (“wrap-up”) and how skills are used in real sessions.*
|
||||
|
||||
**R5** (score:65) r/ClaudeCode (2026-02-10)
|
||||
I built 12 SEO skills for Claude Code (open source)
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1r0l549/i_built_12_seo_skills_for_claude_code_open_source/
|
||||
*Showcase of multiple Claude Code skills and how they run via slash commands/subagents.*
|
||||
|
||||
**R6** (score:57) r/ClaudeCode (2026-02-02)
|
||||
[Skill Viewer] Built a Chrome extension to view Claude Code skills on GitHub - seeking feedback
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1qtq7yr/skill_viewer_built_a_chrome_extension_to_view/
|
||||
*Tooling around discovering/viewing Claude Code skills; directly about skills ecosystem.*
|
||||
|
||||
**R14** (score:43) r/ClaudeCode (date unknown) [date:low]
|
||||
Difference between Skills and these: Subagents, Claude.MD and slash commands?
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1o8t6xe/difference_between_skills_and_these_subagents/
|
||||
*Conceptual thread clarifying what Skills are versus subagents/CLAUDE.md/slash commands (relevant to skills usage).*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X5** (score:86) @zeeg (2026-02-25) [5likes, 1rt]
|
||||
@adamwathan Codex has been crushing it for me with implicit skill usage to the point I was shocked
|
||||
|
||||
Claude Code I resorted to explicit mentions and I’ve been pleasantly surprised by how well Codex ha...
|
||||
https://x.com/zeeg/status/2026745680195367091
|
||||
**
|
||||
|
||||
**X3** (score:78) @ihtesham2005 (2026-02-25) [6likes]
|
||||
🚨 Anthropic just open-sourced the exact Skills library their own engineers use internally.
|
||||
|
||||
Stop building Claude workflows from scratch.
|
||||
|
||||
These are plug-and-play components that work across Claude Cod...
|
||||
https://x.com/ihtesham2005/status/2026752089473314975
|
||||
**
|
||||
|
||||
**X8** (score:72) @DevTenta (2026-02-25) [4likes]
|
||||
Day 7 building my first B2C app
|
||||
|
||||
Been setting everything up this week. Manually built 5 agents to help me in the early stages and set up the Claude Code skills i'll need for the build.
|
||||
|
||||
Also been test...
|
||||
https://x.com/DevTenta/status/2026742028730527786
|
||||
**
|
||||
|
||||
**X7** (score:64) @JorgeJaramillo (2026-02-25)
|
||||
@Jompiras Claude code + skills. Muy breve....
|
||||
https://x.com/JorgeJaramillo/status/2026743135435362649
|
||||
**
|
||||
|
||||
**X4** (score:64) @arpan7sarkar (2026-02-25)
|
||||
@tom_doerr 135 agents, 35 curated skills, 121 plugins and 6 MCP configs all in one Claude Code toolkit is absolutely insane value 🤯 this is the kind of community effort that makes an AI tool go from g...
|
||||
https://x.com/arpan7sarkar/status/2026746479369662551
|
||||
**
|
||||
|
||||
**X6** (score:64) @arpan7sarkar (2026-02-25)
|
||||
@tom_doerr A curated collection of Claude Skills organized by category is exactly what power users have been waiting for 🤩 document skills, code tools, data analysis all in one repo. this is the Claud...
|
||||
https://x.com/arpan7sarkar/status/2026745559986614335
|
||||
**
|
||||
|
||||
**X2** (score:64) @yasuky (2026-02-25)
|
||||
Claude CodeのSkillsを作成例から徹底理解する https://t.co/vZTseio2Ii...
|
||||
https://x.com/yasuky/status/2026754773786226708
|
||||
**
|
||||
|
||||
**X12** (score:64) @zhuoyuan45514 (2026-02-25)
|
||||
Day 52 (01/21/2026) (Rest Day)
|
||||
|
||||
> Go to New York + watch Broadway Show
|
||||
|
||||
> Catch up on claude code updates on way back (2hrs)
|
||||
- Learn difference between skills + MCP, and etc
|
||||
|
||||
> Neetcode (1h...
|
||||
https://x.com/zhuoyuan45514/status/2026733326631923776
|
||||
**
|
||||
|
||||
**X1** (score:64) @matgoldsborough (2026-02-25)
|
||||
How: I told Claude Code "build me a CRM." Our builder skill generated schemas, skills, server, seed data. I pointed Claude Desktop at it. Contacts, lead scoring, pipeline reviews. All from conversatio...
|
||||
https://x.com/matgoldsborough/status/2026755742737510749
|
||||
**
|
||||
|
||||
**X9** (score:64) @0x_Kapoor (2026-02-25)
|
||||
I can build another open claw, or claude bot, or even a messaging app in a nice prompt and although having engineering skills, I can push the code on the public repo and secure it even completely and ...
|
||||
https://x.com/0x_Kapoor/status/2026738663321907214
|
||||
**
|
||||
|
||||
**X10** (score:56) @ghumare64 (2026-02-25) [1likes]
|
||||
1. I use https://t.co/NtFYJEiFs9 inspired by @bcherny
|
||||
2. I use https://t.co/EwnmyWNFqn to sync skills and scan skills from the marketplace
|
||||
3. I chat with claude code 4-5 times and once I am satisifed...
|
||||
https://x.com/ghumare64/status/2026736176695246966
|
||||
**
|
||||
|
||||
**X11** (score:56) @hamen (2026-02-25) [1likes]
|
||||
The 'vibe coding' revolution is forcing a reckoning.
|
||||
|
||||
Developers with 15+ years experience are either embracing AI to expand their reach or watching their expertise become as valuable as COBOL skills....
|
||||
https://x.com/hamen/status/2026734075243790396
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**X8afcX2s2Mo** (score:69) Grace Leung (2026-02-21) [47,512 views, 1,900 likes]
|
||||
Claude Skills: Build Your First AI Marketing Team in 16 Minutes (Claude Code)
|
||||
https://www.youtube.com/watch?v=X8afcX2s2Mo
|
||||
Transcript: Every marketer I know is stretch themed. Too many channels, too many deliverables, never enough time, whether you're running a team or doing it all yourself. And that's why I'm so obsessed with clock ...
|
||||
*YouTube: Claude Skills: Build Your First AI Marketing Team in 16 Minu*
|
||||
|
||||
**0J2_YGuNrDo** (score:66) Grace Leung (2025-12-16) [155,806 views, 4,760 likes]
|
||||
Claude Code just Built me an AI Agent Team (Claude Code + Skills + MCP)
|
||||
https://www.youtube.com/watch?v=0J2_YGuNrDo
|
||||
Transcript: I use clot more than any other AI but even I dismiss Clark as just for developers and I was wrong after using myself I am completely so and this is too powerful to ignore if you want to use AI to buil...
|
||||
*YouTube: Claude Code just Built me an AI Agent Team (Claude Code + Sk*
|
||||
|
||||
**Gqh_KdHP1Xk** (score:61) Robin Ebers (2025-08-21) [90,281 views, 2,719 likes]
|
||||
8 MCP Servers That Make Claude Code 10x Better
|
||||
https://www.youtube.com/watch?v=Gqh_KdHP1Xk
|
||||
Transcript: Over 90% of all MCP servers are complete overhyped garbage. But some of them are not only worth it, they can be complete game changers. And I do not say this lightly. So after testing over 100 of them...
|
||||
*YouTube: 8 MCP Servers That Make Claude Code 10x Better*
|
||||
|
||||
**vIUJ4Hd7be0** (score:54) Leon van Zyl (2026-02-09) [25,538 views, 699 likes]
|
||||
Claude Code Skills - The Only Tutorial You Need
|
||||
https://www.youtube.com/watch?v=vIUJ4Hd7be0
|
||||
*YouTube: Claude Code Skills - The Only Tutorial You Need*
|
||||
|
||||
**901VMcZq8X4** (score:47) Sean Kochel (2025-10-21) [44,618 views, 1,356 likes]
|
||||
These 5 Claude Code Skills Are Your New Unfair Advantage
|
||||
https://www.youtube.com/watch?v=901VMcZq8X4
|
||||
*YouTube: These 5 Claude Code Skills Are Your New Unfair Advantage*
|
||||
|
||||
**M5CsRj6zSCA** (score:45) Eric Tech (2025-12-12) [11,286 views, 266 likes]
|
||||
5 MCP Servers That Make Claude Code 10x More Powerful (Full-Stack App Build)
|
||||
https://www.youtube.com/watch?v=M5CsRj6zSCA
|
||||
*YouTube: 5 MCP Servers That Make Claude Code 10x More Powerful (Full-*
|
||||
|
||||
**l7qVtHpctic** (score:43) Kenny Liao (2026-01-17) [21,765 views, 728 likes]
|
||||
Claude Code's MCP Problem Just Got Fixed
|
||||
https://www.youtube.com/watch?v=l7qVtHpctic
|
||||
*YouTube: Claude Code's MCP Problem Just Got Fixed*
|
||||
|
||||
**ZroGqu7GyXM** (score:39) Solo Swift Crafter (2025-10-27) [4,885 views, 98 likes]
|
||||
Claude Code Skills vs MCP vs Sub Agents: What Works for Solo Devs?
|
||||
https://www.youtube.com/watch?v=ZroGqu7GyXM
|
||||
*YouTube: Claude Code Skills vs MCP vs Sub Agents: What Works for Solo*
|
||||
|
||||
**jzf7DQa2CAc** (score:36) Matt Kuda (2026-01-19) [2,547 views, 87 likes]
|
||||
How I Use Claude Code With Skills, MCP, Agents & Plugins
|
||||
https://www.youtube.com/watch?v=jzf7DQa2CAc
|
||||
*YouTube: How I Use Claude Code With Skills, MCP, Agents & Plugins*
|
||||
|
||||
**qthyl0GCpDo** (score:30) Postman (2025-11-20) [7,067 views, 105 likes]
|
||||
Claude Skills vs MCP: What’s the Difference and When to Use Each?
|
||||
https://www.youtube.com/watch?v=qthyl0GCpDo
|
||||
*YouTube: Claude Skills vs MCP: What’s the Difference and When to Use *
|
||||
|
||||
### Hacker News Stories
|
||||
|
||||
**HN1** (score:90) hn/cosmoblk (2026-02-21) [10pts, 2cmt]
|
||||
Show HN: I built a 55K-word email marketing knowledge base and Claude Code skill
|
||||
https://news.ycombinator.com/item?id=47096335
|
||||
*HN story about Show HN: I built a 55K-word email marketing knowledge base a*
|
||||
Insights:
|
||||
- So it's an AI spambot?
|
||||
|
||||
**HN4** (score:74) hn/superamped (2026-02-25) [3pts, 1cmt]
|
||||
Show HN: AI Marketing Skills for Claude Code
|
||||
https://news.ycombinator.com/item?id=47154377
|
||||
*HN story about Show HN: AI Marketing Skills for Claude Code*
|
||||
|
||||
**HN12** (score:70) hn/heycesr (2026-02-18) [4pts, 2cmt]
|
||||
Show HN: Poncho, a general agent harness built for the web
|
||||
https://news.ycombinator.com/item?id=47061949
|
||||
*HN story about Show HN: Poncho, a general agent harness built for the web*
|
||||
Insights:
|
||||
- I have been trying it and it's very cool!
|
||||
|
||||
**HN11** (score:69) hn/gjkim042 (2026-02-24) [1pts, 4cmt]
|
||||
Show HN: Axon – A Kubernetes-native framework for AI coding agents
|
||||
https://news.ycombinator.com/item?id=47137491
|
||||
*HN story about Show HN: Axon – A Kubernetes-native framework for AI coding *
|
||||
|
||||
**HN14** (score:65) hn/alternateman (2026-02-17) [3pts, 2cmt]
|
||||
Show HN: Turn Claude Code or Codex into proactive, autonomous 24/7 AI agents
|
||||
https://news.ycombinator.com/item?id=47054100
|
||||
*HN story about Show HN: Turn Claude Code or Codex into proactive, autonomou*
|
||||
|
||||
**HN2** (score:64) hn/hauschildt (2026-02-19) [3pts, 0cmt]
|
||||
Show HN: Agent skills to build photo, video and design editors on the web
|
||||
https://news.ycombinator.com/item?id=47073035
|
||||
*HN story about Show HN: Agent skills to build photo, video and design edito*
|
||||
|
||||
**HN8** (score:57) hn/barefootsanders (2026-02-25) [1pts, 0cmt]
|
||||
Show HN: Upjack – Declarative framework for building apps over MCP
|
||||
https://news.ycombinator.com/item?id=47157331
|
||||
*HN story about Show HN: Upjack – Declarative framework for building apps ov*
|
||||
|
||||
**HN7** (score:56) hn/san-techie21 (2026-02-16) [1pts, 1cmt]
|
||||
Show HN: Gulama – Security-first open-source AI agent (OpenClaw alternative)
|
||||
https://news.ycombinator.com/item?id=47031982
|
||||
*HN story about Show HN: Gulama – Security-first open-source AI agent (OpenC*
|
||||
|
||||
**HN15** (score:48) hn/martin-hall (2026-02-20) [1pts, 0cmt]
|
||||
AI Skills Platform (Stealth) – Technical Co-Founder – Remote (US) – Equity
|
||||
https://news.ycombinator.com/item?id=47081777
|
||||
*HN story about AI Skills Platform (Stealth) – Technical Co-Founder – Remote*
|
||||
|
||||
**HN10** (score:47) hn/ClaytheMachine (2026-02-15) [1pts, 0cmt]
|
||||
Show HN: SkillSandbox – Capability-based sandbox for AI agent skills (Rust)
|
||||
https://news.ycombinator.com/item?id=47027734
|
||||
*HN story about Show HN: SkillSandbox – Capability-based sandbox for AI agen*
|
||||
|
||||
**HN6** (score:47) hn/micronink (2026-01-30) [1pts, 2cmt]
|
||||
Show HN: Indx.sh – Directory of AI coding rules, MCP servers, and tool
|
||||
https://news.ycombinator.com/item?id=46822378
|
||||
*HN story about Show HN: Indx.sh – Directory of AI coding rules, MCP servers*
|
||||
|
||||
**HN3** (score:45) hn/paolobietolini (2026-02-07) [1pts, 0cmt]
|
||||
Show HN: GTM MCP Server- Let AI Manage Your Google Tag Manager Containers
|
||||
https://news.ycombinator.com/item?id=46922159
|
||||
*HN story about Show HN: GTM MCP Server- Let AI Manage Your Google Tag Manag*
|
||||
|
||||
**HN9** (score:38) hn/digitcatphd (2026-02-03) [1pts, 0cmt]
|
||||
Show HN: ClawsMarket – Marketplace where AI agents discover tools
|
||||
https://news.ycombinator.com/item?id=46878646
|
||||
*HN story about Show HN: ClawsMarket – Marketplace where AI agents discover *
|
||||
|
||||
**HN13** (score:36) hn/aspectrr (2026-02-04) [1pts, 0cmt]
|
||||
Show HN: Fluid.sh – Claude Code for Infrastructure
|
||||
https://news.ycombinator.com/item?id=46886358
|
||||
*HN story about Show HN: Fluid.sh – Claude Code for Infrastructure*
|
||||
|
||||
**HN5** (score:34) hn/victordg (2026-01-27) [1pts, 0cmt]
|
||||
Claude Code skill for building ChatGPT Apps
|
||||
https://news.ycombinator.com/item?id=46780766
|
||||
*HN story about Claude Code skill for building ChatGPT Apps*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 10 threads
|
||||
✅ X: 12 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
✅ HN: 15 stories
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,316 @@
|
||||
## Research Results: Seedance AI video generation
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R23** (score:77) r/Seedance_AI (2026-02-25)
|
||||
Looking for a real Seedance website that actually works (not scams, SJINN is too expensive)
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1ree66b/looking_for_a_real_seedance_website_that_actually/
|
||||
*Thread specifically about finding legitimate Seedance 2.0 access for video generation and pricing.*
|
||||
|
||||
**R22** (score:75) r/seedance (2026-02-25)
|
||||
Seedance 2.0 now live in CapCut desktop and API access available, details below
|
||||
https://www.reddit.com/r/seedance/comments/1reoakv/seedance_20_now_live_in_capcut_desktop_and_api/
|
||||
*Direct discussion about Seedance 2.0 availability in CapCut and API-related details.*
|
||||
|
||||
**R19** (score:75) r/AITalkers (2026-02-24)
|
||||
Is there an official way to create content using Seedance 2.0?
|
||||
https://www.reddit.com/r/AITalkers/comments/1rd1rhy/is_there_an_official_way_to_create_content_using/
|
||||
*Thread asking where to access Seedance 2.0 legitimately for video generation (avoiding scams).*
|
||||
|
||||
**R21** (score:75) r/generativeAI (2026-02-24)
|
||||
Official website for creating content with Seedance 2.0?
|
||||
https://www.reddit.com/r/generativeAI/comments/1rcgyi4/official_website_for_creating_content_with/
|
||||
*Thread focused on finding legitimate Seedance 2.0 access for generating content (and warning about scams).*
|
||||
|
||||
**R14** (score:75) r/generativeAI (2026-02-22)
|
||||
This is terrifying!! Seedance 2.0 just generated a 1-minute film with ZERO editing — the entire film industry should be worried
|
||||
https://www.reddit.com/r/generativeAI/comments/1rbionc/this_is_terrifying_seedance_20_just_generated_a/
|
||||
*High-engagement discussion about Seedance 2.0 video generation quality and multi-shot coherence claims.*
|
||||
|
||||
**R12** (score:73) r/Seedance_AI (2026-02-20)
|
||||
so disappointed and frustrated with recent changes (wasted 1k$+)
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1ra6nf4/so_disappointed_and_frustrated_with_recent/
|
||||
*User reports Seedance generations failing content review, impacting video generation work.*
|
||||
|
||||
**R16** (score:72) r/Seedance_AI (2026-02-23)
|
||||
Help! I need to use seedance or jimeng video function
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1rckgcm/help_i_need_to_use_seedance_or_jimeng_video/
|
||||
*Direct discussion about using Seedance/Jimeng video generation functionality and access issues.*
|
||||
|
||||
**R17** (score:71) r/Seedance_AI (2026-02-23)
|
||||
Is Seedance 2.0 actually delayed?
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1rcwou6/is_seedance_20_actually_delayed/
|
||||
*Seedance 2.0 release/access timing discussion connected to guardrails and availability outside China.*
|
||||
|
||||
**R20** (score:69) r/Seedance_AI (2026-02-24)
|
||||
Selfie Situation • Seedance 2.0 • Third-party API by useapi.net
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1rduxop/selfie_situation_seedance_20_thirdparty_api_by/
|
||||
*Discussion about claimed Seedance 2.0 API access and whether outputs are really from Seedance; relevant to usage/access.*
|
||||
|
||||
**R15** (score:69) r/AIGuild (2026-02-23)
|
||||
ByteDance Faces Hollywood Backlash Over Seedance 2.0
|
||||
https://www.reddit.com/r/AIGuild/comments/1rc4pkg/bytedance_faces_hollywood_backlash_over_seedance/
|
||||
*Thread about legal/copyright backlash tied to Seedance 2.0 and implications for access/usage.*
|
||||
|
||||
**R11** (score:69) r/Seedance_AI (2026-02-20)
|
||||
Seedance 2.0 API launch delayed because of deepfake/copyright concerns
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1ra049f/seedance_20_api_launch_delayed_because_of/
|
||||
*Seedance 2.0 API / rollout thread related to deepfake/copyright guardrails affecting video generation access.*
|
||||
|
||||
**R10** (score:67) r/u_Illustrious-One7744 (2026-02-19)
|
||||
I tested Seedance 2.0 and here's what actually worked
|
||||
https://www.reddit.com/r/u_Illustrious-One7744/comments/1r8zipa/i_tested_seedance_20_and_heres_what_actually/
|
||||
*Hands-on workflow notes about generating videos with Seedance 2.0 (consistency, references, shot planning).*
|
||||
|
||||
**R13** (score:66) r/AI_Agents (2026-02-21)
|
||||
Seedance 2.0 is impressive. It’s still not a production workflow.
|
||||
https://www.reddit.com/r/AI_Agents/comments/1rawxiw/seedance_20_is_impressive_its_still_not_a/
|
||||
*Discussion about practical limitations of Seedance 2.0 for longer/structured video production pipelines.*
|
||||
|
||||
**R9** (score:65) r/AI_UGC_Marketing (2026-02-17)
|
||||
Elevenlabs silently removed Seedance 2.0 after SAG-AFTRA incident, can’t create UGC style video
|
||||
https://www.reddit.com/r/AI_UGC_Marketing/comments/1r70942/elevenlabs_silently_removed_seedance_20_after/
|
||||
*Discussion about Seedance 2.0 availability/removal in a video generation workflow context.*
|
||||
|
||||
**R4** (score:64) r/HiggsfieldAI (2026-02-10)
|
||||
The censorship just ruined Seedance 2.0
|
||||
https://www.reddit.com/r/HiggsfieldAI/comments/1r1barb/
|
||||
*Discussion focused on Seedance 2.0 video generation restrictions/guardrails impacting what can be generated.*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X9** (score:86) @HBCoop_ (2026-02-25) [9likes]
|
||||
First Seedance 2.0 Test!
|
||||
|
||||
Seedance 5.0 Lite @krea_ai → Seedance 2.0 @capcutapp
|
||||
|
||||
Prompt: Close-up on her hands gripping the paintbrush, knuckles white, paint dripping down her wrist. Shallow depth of ...
|
||||
https://x.com/HBCoop_/status/2026748738354450919
|
||||
**
|
||||
|
||||
**X12** (score:77) @Noor_ul_ain43 (2026-02-25) [5likes]
|
||||
Goku vs Broly , EPIC Full Battle!
|
||||
Witness the ultimate Saiyan showdown recreated with AI power. Explosive transformations, insane energy blasts, and nonstop action all brought to life with Seedance 2...
|
||||
https://x.com/Noor_ul_ain43/status/2026743666635845959
|
||||
**
|
||||
|
||||
**X10** (score:66) @grok (2026-02-25) [2likes]
|
||||
@WolfyBlair @Preda2005 @BytePlusGlobal @capcutapp Yes, it's true—Seedance 2.0 is now live in CapCut (desktop & mobile).
|
||||
|
||||
See it in the AI video tools: https://t.co/K3gwCgUSyb
|
||||
|
||||
Just update the ap...
|
||||
https://x.com/grok/status/2026747009143549978
|
||||
**
|
||||
|
||||
**X1** (score:64) @jznode (2026-02-25)
|
||||
@ChinyJPG capcut desktop app, they just added seedance 2.0 today. no chinese phone number needed, works globally. download the desktop version, look for the AI video generation option. runs about $2 p...
|
||||
https://x.com/jznode/status/2026755966545404015
|
||||
**
|
||||
|
||||
**X5** (score:64) @Yousaf_340 (2026-02-25)
|
||||
@ProperPrompter Yes! Seedance 2.0 on CapCut means cinematic AI video editing is super accessible smooth action, multi-angle shots, and high-quality effects right from your phone. 🎬🔥...
|
||||
https://x.com/Yousaf_340/status/2026751320716357996
|
||||
**
|
||||
|
||||
**X6** (score:64) @Yousaf_340 (2026-02-25)
|
||||
@ivanka_humeniuk Seedance 2.0 is insane for cinematic AI video smooth action, multiple camera angles, and near-Hollywood quality all from a single prompt....
|
||||
https://x.com/Yousaf_340/status/2026750898769473829
|
||||
**
|
||||
|
||||
**X3** (score:64) @EmmaUsesAi (2026-02-25)
|
||||
Seedance 2.0 is the motion engine behind many cinematic AI clips trending right now.
|
||||
|
||||
It’s now native inside NemoVideo.
|
||||
|
||||
You can:
|
||||
- Identify proven formats
|
||||
- Analyze what drives retention
|
||||
- Turn an id...
|
||||
https://x.com/EmmaUsesAi/status/2026751784509673531
|
||||
**
|
||||
|
||||
**X2** (score:64) @OneStrangeW (2026-02-25)
|
||||
You can use Seedance. If Seedance 2.0 hasn't launch yet, the prior version is great, and stick pretty well to the prompt. Of course the video agent must be well trained. 🙂Also, you can offer SORA for ...
|
||||
https://x.com/OneStrangeW/status/2026755320362709093
|
||||
**
|
||||
|
||||
**X11** (score:64) @WyldeChyldeRec (2026-02-25)
|
||||
🚨Phishing Scam!
|
||||
|
||||
Watch for emails titled:
|
||||
|
||||
[Seedance & Wan AI] Unrestricted generation with Grok Imagine video added
|
||||
|
||||
This is not real. We don't have a Seedance account, and the links are not offi...
|
||||
https://x.com/WyldeChyldeRec/status/2026743867224240149
|
||||
**
|
||||
|
||||
**X7** (score:56) @La_DeCrypt (2026-02-25) [1likes]
|
||||
- Kling (https://t.co/WGphQsdLf1)
|
||||
|
||||
- Seedance 2.0 (https://t.co/A8UzLTRGNo)
|
||||
|
||||
☞ AI-powered video editing:
|
||||
|
||||
- Descript (https://t.co/q4axNEjDzt)
|
||||
- OpusClip (https://t.co/5XPn4EPH6u)
|
||||
- Submagic (https:/...
|
||||
https://x.com/La_DeCrypt/status/2026750376687394884
|
||||
**
|
||||
|
||||
**X8** (score:56) @TferThomas (2026-02-25) [1likes]
|
||||
Seedance 2.0 might be gen AI video’s next big hope, but it’s still slop https://t.co/kT1baOYJQk #AI...
|
||||
https://x.com/TferThomas/status/2026749218224746609
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**F1kWxdfiBNE** (score:75) AI Filmmaking Academy (2026-02-22) [40,982 views, 1,088 likes]
|
||||
Seedance 2.0 Claims the AI Video Throne!
|
||||
https://www.youtube.com/watch?v=F1kWxdfiBNE
|
||||
*YouTube: Seedance 2.0 Claims the AI Video Throne!*
|
||||
|
||||
**_o2MuUX9UYg** (score:75) Theoretically Media (2026-02-09) [199,908 views, 4,986 likes]
|
||||
Seedance 2.0 Claims the AI Video Throne!
|
||||
https://www.youtube.com/watch?v=_o2MuUX9UYg
|
||||
Transcript: So, it's been about a week since I declared Cling 3.0 the new benchmark for state-of-the-art AI video. And well, I mean, it's been a week, and that basically equals about 3 months in AI time. So, yes,...
|
||||
*YouTube: Seedance 2.0 Claims the AI Video Throne!*
|
||||
|
||||
**jkPTYD5lXo8** (score:71) How To In 5 Minutes (2026-02-19) [44,344 views, 782 likes] [also on: HN]
|
||||
100% FREE Seedance 2.0 AI Video Generator : How to Use It WORLDWIDE
|
||||
https://www.youtube.com/watch?v=jkPTYD5lXo8
|
||||
*YouTube: 100% FREE Seedance 2.0 AI Video Generator : How to Use It WO*
|
||||
|
||||
**W_lxyDFDZt4** (score:71) WealthWise (2026-02-12) [126,599 views, 1,204 likes] [also on: HN]
|
||||
Seedance 2.0: The New Best AI Video Generator | Sora 2 Destroyed
|
||||
https://www.youtube.com/watch?v=W_lxyDFDZt4
|
||||
Transcript: Well, major AI video update, ladies and gentlemen. Seance 2.0 is right around the corner. And let me tell you guys, this is something I have never seen before. Just take a look at some of the videos g...
|
||||
*YouTube: Seedance 2.0: The New Best AI Video Generator | Sora 2 Destr*
|
||||
|
||||
**R1zl92NhCfE** (score:66) Ai Lockup (2026-02-16) [32,699 views, 591 likes] [also on: HN]
|
||||
Seedance 2.0 How To Use and Become a Pro AI Film Maker With This AI Video Generator
|
||||
https://www.youtube.com/watch?v=R1zl92NhCfE
|
||||
*YouTube: Seedance 2.0 How To Use and Become a Pro AI Film Maker With *
|
||||
|
||||
**G1Ad4a8sdJU** (score:64) Benji’s AI Playground (2026-02-14) [38,581 views, 419 likes]
|
||||
SeeDance 2.0: The Next Level of AI Video — And What It Means for Local AI Users?
|
||||
https://www.youtube.com/watch?v=G1Ad4a8sdJU
|
||||
*YouTube: SeeDance 2.0: The Next Level of AI Video — And What It Means*
|
||||
|
||||
**61ThJGqwHsI** (score:59) xCreate (2026-02-11) [4,854 views, 86 likes] [also on: HN]
|
||||
Ultimate AI Video Generation - Seedance 2.0 PREVIEW
|
||||
https://www.youtube.com/watch?v=61ThJGqwHsI
|
||||
*YouTube: Ultimate AI Video Generation - Seedance 2.0 PREVIEW*
|
||||
|
||||
**5s2l68SrJP4** (score:58) Airt (2026-02-11) [77,744 views, 1,733 likes]
|
||||
100+ Seedance 2.0 AI Videos – The New King?
|
||||
https://www.youtube.com/watch?v=5s2l68SrJP4
|
||||
Transcript: That's the good stuff. And that's a wrap. [screaming] A lot of people asking how the roommate situation is going. He's chill, but there are things. Fridge is consecrated. Tastes like communion wafers....
|
||||
*YouTube: 100+ Seedance 2.0 AI Videos – The New King?*
|
||||
|
||||
**n625xVounGM** (score:50) John Savage AI (2026-02-23) [7,194 views, 126 likes]
|
||||
How To Generate FREE AI Seedance 2.0 Videos (Access Worldwide)
|
||||
https://www.youtube.com/watch?v=n625xVounGM
|
||||
*YouTube: How To Generate FREE AI Seedance 2.0 Videos (Access Worldwid*
|
||||
|
||||
**kJ0NAVmd4f4** (score:36) Rogue Cell Pictures (2026-02-25) [1,594 views, 151 likes]
|
||||
Seedance 2.0 Changes Filmmaking Forever | New Original Series
|
||||
https://www.youtube.com/watch?v=kJ0NAVmd4f4
|
||||
*YouTube: Seedance 2.0 Changes Filmmaking Forever | New Original Serie*
|
||||
|
||||
### Hacker News Stories
|
||||
|
||||
**HN8** (score:75) hn/Alisaqqt (2026-02-09) [7pts, 7cmt]
|
||||
Seedance 2.0 preview: The best video model of 2026, outperforming Sora 2
|
||||
https://news.ycombinator.com/item?id=46940720
|
||||
*HN story about Seedance 2.0 preview: The best video model of 2026, outperfo*
|
||||
Insights:
|
||||
- API is not available now.
|
||||
- API will be available on Atlas Cloud on Feb 24.
|
||||
- Seedance 2.0 and Seedream 5.0 API will be available on Atlas Cloud on Feb 24.
|
||||
|
||||
**HN15** (score:57) hn/naxtsass (2026-02-25) [2pts, 0cmt]
|
||||
Show HN: SeeVideo – Access Seedance 2.0 and Kling 3.0 without a subscription
|
||||
https://news.ycombinator.com/item?id=47153236
|
||||
*HN story about Show HN: SeeVideo – Access Seedance 2.0 and Kling 3.0 withou*
|
||||
|
||||
**HN6** (score:57) hn/howardV (2026-02-15) [3pts, 0cmt]
|
||||
Seedance 2.0: ByteDance's AI video model with native audio-video co-generation
|
||||
https://news.ycombinator.com/item?id=47022290
|
||||
*HN story about Seedance 2.0: ByteDance's AI video model with native audio-v*
|
||||
|
||||
**HN5** (score:52) hn/jrran086 (2026-02-17) [1pts, 0cmt] [also on: Reddit]
|
||||
Seedance 2 Video Generator
|
||||
https://news.ycombinator.com/item?id=47046956
|
||||
*HN story about Seedance 2 Video Generator*
|
||||
|
||||
**HN3** (score:52) hn/xbaicai (2026-02-09) [1pts, 1cmt]
|
||||
Seedance 2.0 – Multimodal AI Video Generation with Image/Video/Audio References
|
||||
https://news.ycombinator.com/item?id=46944030
|
||||
*HN story about Seedance 2.0 – Multimodal AI Video Generation with Image/Vid*
|
||||
|
||||
**HN1** (score:51) hn/xuyanmei (2026-02-13) [1pts, 0cmt]
|
||||
Show HN: Seedance AShow HN: Seedance AI Video Generation (Next.js, Drizzle)
|
||||
https://news.ycombinator.com/item?id=46999394
|
||||
*HN story about Show HN: Seedance AShow HN: Seedance AI Video Generation (Ne*
|
||||
|
||||
**HN12** (score:49) hn/RyanMu (2026-02-07) [2pts, 1cmt]
|
||||
Seedance2 – multi-shot AI video generation
|
||||
https://news.ycombinator.com/item?id=46924992
|
||||
*HN story about Seedance2 – multi-shot AI video generation*
|
||||
Insights:
|
||||
- ’ve been experimenting with AI video tools for a while, but most of them generate isolated clips that fall apart when you try to build an actual narrative
|
||||
|
||||
**HN11** (score:48) hn/xuyanmei (2026-02-17) [1pts, 0cmt]
|
||||
Show HN: Seedance3AI – a web app for text-to-video, image-to-video
|
||||
https://news.ycombinator.com/item?id=47046989
|
||||
*HN story about Show HN: Seedance3AI – a web app for text-to-video, image-to*
|
||||
|
||||
**HN2** (score:47) hn/littlepp (2026-02-09) [1pts, 0cmt]
|
||||
Discussion: Seedance-style AI video generation workflows
|
||||
https://news.ycombinator.com/item?id=46942781
|
||||
*HN story about Discussion: Seedance-style AI video generation workflows*
|
||||
|
||||
**HN13** (score:44) hn/thomaskiko (2026-02-13) [1pts, 0cmt]
|
||||
Show HN: AI-powered video creation web app
|
||||
https://news.ycombinator.com/item?id=47002386
|
||||
*HN story about Show HN: AI-powered video creation web app*
|
||||
|
||||
**HN9** (score:43) hn/TurnItOffAndOn0 (2026-02-09) [1pts, 0cmt]
|
||||
Show HN: AI Seedance 2 – Solving the "jump-cut" problem in AI video
|
||||
https://news.ycombinator.com/item?id=46946280
|
||||
*HN story about Show HN: AI Seedance 2 – Solving the "jump-cut" problem in A*
|
||||
|
||||
**HN7** (score:43) hn/dallen97 (2026-02-08) [1pts, 0cmt] [also on: Reddit]
|
||||
Show HN: Seedance 2.0 AI video generator for creators and ecommerce
|
||||
https://news.ycombinator.com/item?id=46930149
|
||||
*HN story about Show HN: Seedance 2.0 AI video generator for creators and ec*
|
||||
|
||||
**HN10** (score:42) hn/thenextechtrade (2026-02-09) [1pts, 0cmt]
|
||||
Show HN: Seedance 2.0 – Native audio-visual sync video model
|
||||
https://news.ycombinator.com/item?id=46943172
|
||||
*HN story about Show HN: Seedance 2.0 – Native audio-visual sync video model*
|
||||
|
||||
**HN14** (score:41) hn/echoadam (2026-02-10) [1pts, 0cmt]
|
||||
Show HN: Seedance2 – Stop "prompt guessing" and start directing AI video
|
||||
https://news.ycombinator.com/item?id=46956546
|
||||
*HN story about Show HN: Seedance2 – Stop "prompt guessing" and start direct*
|
||||
|
||||
**HN4** (score:35) hn/Zach_HE (2026-01-27) [1pts, 0cmt] [also on: Reddit, Web]
|
||||
Show HN: Seedance 2.0 Pro AI Video Generator
|
||||
https://news.ycombinator.com/item?id=46774950
|
||||
*HN story about Show HN: Seedance 2.0 Pro AI Video Generator*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 19 threads
|
||||
✅ X: 11 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
✅ HN: 15 stories
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,316 @@
|
||||
## Research Results: Seedance AI video generation
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R23** (score:77) r/Seedance_AI (2026-02-25)
|
||||
Looking for a real Seedance website that actually works (not scams, SJINN is too expensive)
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1ree66b/looking_for_a_real_seedance_website_that_actually/
|
||||
*Thread specifically about finding legitimate Seedance 2.0 access for video generation and pricing.*
|
||||
|
||||
**R22** (score:75) r/seedance (2026-02-25)
|
||||
Seedance 2.0 now live in CapCut desktop and API access available, details below
|
||||
https://www.reddit.com/r/seedance/comments/1reoakv/seedance_20_now_live_in_capcut_desktop_and_api/
|
||||
*Direct discussion about Seedance 2.0 availability in CapCut and API-related details.*
|
||||
|
||||
**R19** (score:75) r/AITalkers (2026-02-24)
|
||||
Is there an official way to create content using Seedance 2.0?
|
||||
https://www.reddit.com/r/AITalkers/comments/1rd1rhy/is_there_an_official_way_to_create_content_using/
|
||||
*Thread asking where to access Seedance 2.0 legitimately for video generation (avoiding scams).*
|
||||
|
||||
**R21** (score:75) r/generativeAI (2026-02-24)
|
||||
Official website for creating content with Seedance 2.0?
|
||||
https://www.reddit.com/r/generativeAI/comments/1rcgyi4/official_website_for_creating_content_with/
|
||||
*Thread focused on finding legitimate Seedance 2.0 access for generating content (and warning about scams).*
|
||||
|
||||
**R14** (score:75) r/generativeAI (2026-02-22)
|
||||
This is terrifying!! Seedance 2.0 just generated a 1-minute film with ZERO editing — the entire film industry should be worried
|
||||
https://www.reddit.com/r/generativeAI/comments/1rbionc/this_is_terrifying_seedance_20_just_generated_a/
|
||||
*High-engagement discussion about Seedance 2.0 video generation quality and multi-shot coherence claims.*
|
||||
|
||||
**R12** (score:73) r/Seedance_AI (2026-02-20)
|
||||
so disappointed and frustrated with recent changes (wasted 1k$+)
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1ra6nf4/so_disappointed_and_frustrated_with_recent/
|
||||
*User reports Seedance generations failing content review, impacting video generation work.*
|
||||
|
||||
**R16** (score:72) r/Seedance_AI (2026-02-23)
|
||||
Help! I need to use seedance or jimeng video function
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1rckgcm/help_i_need_to_use_seedance_or_jimeng_video/
|
||||
*Direct discussion about using Seedance/Jimeng video generation functionality and access issues.*
|
||||
|
||||
**R17** (score:71) r/Seedance_AI (2026-02-23)
|
||||
Is Seedance 2.0 actually delayed?
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1rcwou6/is_seedance_20_actually_delayed/
|
||||
*Seedance 2.0 release/access timing discussion connected to guardrails and availability outside China.*
|
||||
|
||||
**R20** (score:69) r/Seedance_AI (2026-02-24)
|
||||
Selfie Situation • Seedance 2.0 • Third-party API by useapi.net
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1rduxop/selfie_situation_seedance_20_thirdparty_api_by/
|
||||
*Discussion about claimed Seedance 2.0 API access and whether outputs are really from Seedance; relevant to usage/access.*
|
||||
|
||||
**R15** (score:69) r/AIGuild (2026-02-23)
|
||||
ByteDance Faces Hollywood Backlash Over Seedance 2.0
|
||||
https://www.reddit.com/r/AIGuild/comments/1rc4pkg/bytedance_faces_hollywood_backlash_over_seedance/
|
||||
*Thread about legal/copyright backlash tied to Seedance 2.0 and implications for access/usage.*
|
||||
|
||||
**R11** (score:69) r/Seedance_AI (2026-02-20)
|
||||
Seedance 2.0 API launch delayed because of deepfake/copyright concerns
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1ra049f/seedance_20_api_launch_delayed_because_of/
|
||||
*Seedance 2.0 API / rollout thread related to deepfake/copyright guardrails affecting video generation access.*
|
||||
|
||||
**R10** (score:67) r/u_Illustrious-One7744 (2026-02-19)
|
||||
I tested Seedance 2.0 and here's what actually worked
|
||||
https://www.reddit.com/r/u_Illustrious-One7744/comments/1r8zipa/i_tested_seedance_20_and_heres_what_actually/
|
||||
*Hands-on workflow notes about generating videos with Seedance 2.0 (consistency, references, shot planning).*
|
||||
|
||||
**R13** (score:66) r/AI_Agents (2026-02-21)
|
||||
Seedance 2.0 is impressive. It’s still not a production workflow.
|
||||
https://www.reddit.com/r/AI_Agents/comments/1rawxiw/seedance_20_is_impressive_its_still_not_a/
|
||||
*Discussion about practical limitations of Seedance 2.0 for longer/structured video production pipelines.*
|
||||
|
||||
**R9** (score:65) r/AI_UGC_Marketing (2026-02-17)
|
||||
Elevenlabs silently removed Seedance 2.0 after SAG-AFTRA incident, can’t create UGC style video
|
||||
https://www.reddit.com/r/AI_UGC_Marketing/comments/1r70942/elevenlabs_silently_removed_seedance_20_after/
|
||||
*Discussion about Seedance 2.0 availability/removal in a video generation workflow context.*
|
||||
|
||||
**R4** (score:64) r/HiggsfieldAI (2026-02-10)
|
||||
The censorship just ruined Seedance 2.0
|
||||
https://www.reddit.com/r/HiggsfieldAI/comments/1r1barb/
|
||||
*Discussion focused on Seedance 2.0 video generation restrictions/guardrails impacting what can be generated.*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X9** (score:86) @HBCoop_ (2026-02-25) [9likes]
|
||||
First Seedance 2.0 Test!
|
||||
|
||||
Seedance 5.0 Lite @krea_ai → Seedance 2.0 @capcutapp
|
||||
|
||||
Prompt: Close-up on her hands gripping the paintbrush, knuckles white, paint dripping down her wrist. Shallow depth of ...
|
||||
https://x.com/HBCoop_/status/2026748738354450919
|
||||
**
|
||||
|
||||
**X12** (score:77) @Noor_ul_ain43 (2026-02-25) [5likes]
|
||||
Goku vs Broly , EPIC Full Battle!
|
||||
Witness the ultimate Saiyan showdown recreated with AI power. Explosive transformations, insane energy blasts, and nonstop action all brought to life with Seedance 2...
|
||||
https://x.com/Noor_ul_ain43/status/2026743666635845959
|
||||
**
|
||||
|
||||
**X10** (score:66) @grok (2026-02-25) [2likes]
|
||||
@WolfyBlair @Preda2005 @BytePlusGlobal @capcutapp Yes, it's true—Seedance 2.0 is now live in CapCut (desktop & mobile).
|
||||
|
||||
See it in the AI video tools: https://t.co/K3gwCgUSyb
|
||||
|
||||
Just update the ap...
|
||||
https://x.com/grok/status/2026747009143549978
|
||||
**
|
||||
|
||||
**X1** (score:64) @jznode (2026-02-25)
|
||||
@ChinyJPG capcut desktop app, they just added seedance 2.0 today. no chinese phone number needed, works globally. download the desktop version, look for the AI video generation option. runs about $2 p...
|
||||
https://x.com/jznode/status/2026755966545404015
|
||||
**
|
||||
|
||||
**X5** (score:64) @Yousaf_340 (2026-02-25)
|
||||
@ProperPrompter Yes! Seedance 2.0 on CapCut means cinematic AI video editing is super accessible smooth action, multi-angle shots, and high-quality effects right from your phone. 🎬🔥...
|
||||
https://x.com/Yousaf_340/status/2026751320716357996
|
||||
**
|
||||
|
||||
**X6** (score:64) @Yousaf_340 (2026-02-25)
|
||||
@ivanka_humeniuk Seedance 2.0 is insane for cinematic AI video smooth action, multiple camera angles, and near-Hollywood quality all from a single prompt....
|
||||
https://x.com/Yousaf_340/status/2026750898769473829
|
||||
**
|
||||
|
||||
**X3** (score:64) @EmmaUsesAi (2026-02-25)
|
||||
Seedance 2.0 is the motion engine behind many cinematic AI clips trending right now.
|
||||
|
||||
It’s now native inside NemoVideo.
|
||||
|
||||
You can:
|
||||
- Identify proven formats
|
||||
- Analyze what drives retention
|
||||
- Turn an id...
|
||||
https://x.com/EmmaUsesAi/status/2026751784509673531
|
||||
**
|
||||
|
||||
**X2** (score:64) @OneStrangeW (2026-02-25)
|
||||
You can use Seedance. If Seedance 2.0 hasn't launch yet, the prior version is great, and stick pretty well to the prompt. Of course the video agent must be well trained. 🙂Also, you can offer SORA for ...
|
||||
https://x.com/OneStrangeW/status/2026755320362709093
|
||||
**
|
||||
|
||||
**X11** (score:64) @WyldeChyldeRec (2026-02-25)
|
||||
🚨Phishing Scam!
|
||||
|
||||
Watch for emails titled:
|
||||
|
||||
[Seedance & Wan AI] Unrestricted generation with Grok Imagine video added
|
||||
|
||||
This is not real. We don't have a Seedance account, and the links are not offi...
|
||||
https://x.com/WyldeChyldeRec/status/2026743867224240149
|
||||
**
|
||||
|
||||
**X7** (score:56) @La_DeCrypt (2026-02-25) [1likes]
|
||||
- Kling (https://t.co/WGphQsdLf1)
|
||||
|
||||
- Seedance 2.0 (https://t.co/A8UzLTRGNo)
|
||||
|
||||
☞ AI-powered video editing:
|
||||
|
||||
- Descript (https://t.co/q4axNEjDzt)
|
||||
- OpusClip (https://t.co/5XPn4EPH6u)
|
||||
- Submagic (https:/...
|
||||
https://x.com/La_DeCrypt/status/2026750376687394884
|
||||
**
|
||||
|
||||
**X8** (score:56) @TferThomas (2026-02-25) [1likes]
|
||||
Seedance 2.0 might be gen AI video’s next big hope, but it’s still slop https://t.co/kT1baOYJQk #AI...
|
||||
https://x.com/TferThomas/status/2026749218224746609
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**F1kWxdfiBNE** (score:75) AI Filmmaking Academy (2026-02-22) [40,982 views, 1,088 likes]
|
||||
Seedance 2.0 Claims the AI Video Throne!
|
||||
https://www.youtube.com/watch?v=F1kWxdfiBNE
|
||||
*YouTube: Seedance 2.0 Claims the AI Video Throne!*
|
||||
|
||||
**_o2MuUX9UYg** (score:75) Theoretically Media (2026-02-09) [199,908 views, 4,986 likes]
|
||||
Seedance 2.0 Claims the AI Video Throne!
|
||||
https://www.youtube.com/watch?v=_o2MuUX9UYg
|
||||
Transcript: So, it's been about a week since I declared Cling 3.0 the new benchmark for state-of-the-art AI video. And well, I mean, it's been a week, and that basically equals about 3 months in AI time. So, yes,...
|
||||
*YouTube: Seedance 2.0 Claims the AI Video Throne!*
|
||||
|
||||
**jkPTYD5lXo8** (score:71) How To In 5 Minutes (2026-02-19) [44,344 views, 782 likes]
|
||||
100% FREE Seedance 2.0 AI Video Generator : How to Use It WORLDWIDE
|
||||
https://www.youtube.com/watch?v=jkPTYD5lXo8
|
||||
*YouTube: 100% FREE Seedance 2.0 AI Video Generator : How to Use It WO*
|
||||
|
||||
**W_lxyDFDZt4** (score:71) WealthWise (2026-02-12) [126,599 views, 1,204 likes]
|
||||
Seedance 2.0: The New Best AI Video Generator | Sora 2 Destroyed
|
||||
https://www.youtube.com/watch?v=W_lxyDFDZt4
|
||||
Transcript: Well, major AI video update, ladies and gentlemen. Seance 2.0 is right around the corner. And let me tell you guys, this is something I have never seen before. Just take a look at some of the videos g...
|
||||
*YouTube: Seedance 2.0: The New Best AI Video Generator | Sora 2 Destr*
|
||||
|
||||
**R1zl92NhCfE** (score:66) Ai Lockup (2026-02-16) [32,699 views, 591 likes]
|
||||
Seedance 2.0 How To Use and Become a Pro AI Film Maker With This AI Video Generator
|
||||
https://www.youtube.com/watch?v=R1zl92NhCfE
|
||||
*YouTube: Seedance 2.0 How To Use and Become a Pro AI Film Maker With *
|
||||
|
||||
**G1Ad4a8sdJU** (score:64) Benji’s AI Playground (2026-02-14) [38,581 views, 419 likes]
|
||||
SeeDance 2.0: The Next Level of AI Video — And What It Means for Local AI Users?
|
||||
https://www.youtube.com/watch?v=G1Ad4a8sdJU
|
||||
*YouTube: SeeDance 2.0: The Next Level of AI Video — And What It Means*
|
||||
|
||||
**61ThJGqwHsI** (score:59) xCreate (2026-02-11) [4,854 views, 86 likes]
|
||||
Ultimate AI Video Generation - Seedance 2.0 PREVIEW
|
||||
https://www.youtube.com/watch?v=61ThJGqwHsI
|
||||
*YouTube: Ultimate AI Video Generation - Seedance 2.0 PREVIEW*
|
||||
|
||||
**5s2l68SrJP4** (score:58) Airt (2026-02-11) [77,744 views, 1,733 likes]
|
||||
100+ Seedance 2.0 AI Videos – The New King?
|
||||
https://www.youtube.com/watch?v=5s2l68SrJP4
|
||||
Transcript: That's the good stuff. And that's a wrap. [screaming] A lot of people asking how the roommate situation is going. He's chill, but there are things. Fridge is consecrated. Tastes like communion wafers....
|
||||
*YouTube: 100+ Seedance 2.0 AI Videos – The New King?*
|
||||
|
||||
**n625xVounGM** (score:50) John Savage AI (2026-02-23) [7,194 views, 126 likes]
|
||||
How To Generate FREE AI Seedance 2.0 Videos (Access Worldwide)
|
||||
https://www.youtube.com/watch?v=n625xVounGM
|
||||
*YouTube: How To Generate FREE AI Seedance 2.0 Videos (Access Worldwid*
|
||||
|
||||
**kJ0NAVmd4f4** (score:36) Rogue Cell Pictures (2026-02-25) [1,594 views, 151 likes]
|
||||
Seedance 2.0 Changes Filmmaking Forever | New Original Series
|
||||
https://www.youtube.com/watch?v=kJ0NAVmd4f4
|
||||
*YouTube: Seedance 2.0 Changes Filmmaking Forever | New Original Serie*
|
||||
|
||||
### Hacker News Stories
|
||||
|
||||
**HN8** (score:75) hn/Alisaqqt (2026-02-09) [7pts, 7cmt]
|
||||
Seedance 2.0 preview: The best video model of 2026, outperforming Sora 2
|
||||
https://news.ycombinator.com/item?id=46940720
|
||||
*HN story about Seedance 2.0 preview: The best video model of 2026, outperfo*
|
||||
Insights:
|
||||
- API is not available now.
|
||||
- API will be available on Atlas Cloud on Feb 24.
|
||||
- Seedance 2.0 and Seedream 5.0 API will be available on Atlas Cloud on Feb 24.
|
||||
|
||||
**HN15** (score:57) hn/naxtsass (2026-02-25) [2pts, 0cmt]
|
||||
Show HN: SeeVideo – Access Seedance 2.0 and Kling 3.0 without a subscription
|
||||
https://news.ycombinator.com/item?id=47153236
|
||||
*HN story about Show HN: SeeVideo – Access Seedance 2.0 and Kling 3.0 withou*
|
||||
|
||||
**HN6** (score:57) hn/howardV (2026-02-15) [3pts, 0cmt]
|
||||
Seedance 2.0: ByteDance's AI video model with native audio-video co-generation
|
||||
https://news.ycombinator.com/item?id=47022290
|
||||
*HN story about Seedance 2.0: ByteDance's AI video model with native audio-v*
|
||||
|
||||
**HN5** (score:52) hn/jrran086 (2026-02-17) [1pts, 0cmt] [xref: R6]
|
||||
Seedance 2 Video Generator
|
||||
https://news.ycombinator.com/item?id=47046956
|
||||
*HN story about Seedance 2 Video Generator*
|
||||
|
||||
**HN3** (score:52) hn/xbaicai (2026-02-09) [1pts, 1cmt]
|
||||
Seedance 2.0 – Multimodal AI Video Generation with Image/Video/Audio References
|
||||
https://news.ycombinator.com/item?id=46944030
|
||||
*HN story about Seedance 2.0 – Multimodal AI Video Generation with Image/Vid*
|
||||
|
||||
**HN1** (score:51) hn/xuyanmei (2026-02-13) [1pts, 0cmt]
|
||||
Show HN: Seedance AShow HN: Seedance AI Video Generation (Next.js, Drizzle)
|
||||
https://news.ycombinator.com/item?id=46999394
|
||||
*HN story about Show HN: Seedance AShow HN: Seedance AI Video Generation (Ne*
|
||||
|
||||
**HN12** (score:49) hn/RyanMu (2026-02-07) [2pts, 1cmt]
|
||||
Seedance2 – multi-shot AI video generation
|
||||
https://news.ycombinator.com/item?id=46924992
|
||||
*HN story about Seedance2 – multi-shot AI video generation*
|
||||
Insights:
|
||||
- ’ve been experimenting with AI video tools for a while, but most of them generate isolated clips that fall apart when you try to build an actual narrative
|
||||
|
||||
**HN11** (score:48) hn/xuyanmei (2026-02-17) [1pts, 0cmt]
|
||||
Show HN: Seedance3AI – a web app for text-to-video, image-to-video
|
||||
https://news.ycombinator.com/item?id=47046989
|
||||
*HN story about Show HN: Seedance3AI – a web app for text-to-video, image-to*
|
||||
|
||||
**HN2** (score:47) hn/littlepp (2026-02-09) [1pts, 0cmt]
|
||||
Discussion: Seedance-style AI video generation workflows
|
||||
https://news.ycombinator.com/item?id=46942781
|
||||
*HN story about Discussion: Seedance-style AI video generation workflows*
|
||||
|
||||
**HN13** (score:44) hn/thomaskiko (2026-02-13) [1pts, 0cmt]
|
||||
Show HN: AI-powered video creation web app
|
||||
https://news.ycombinator.com/item?id=47002386
|
||||
*HN story about Show HN: AI-powered video creation web app*
|
||||
|
||||
**HN9** (score:43) hn/TurnItOffAndOn0 (2026-02-09) [1pts, 0cmt]
|
||||
Show HN: AI Seedance 2 – Solving the "jump-cut" problem in AI video
|
||||
https://news.ycombinator.com/item?id=46946280
|
||||
*HN story about Show HN: AI Seedance 2 – Solving the "jump-cut" problem in A*
|
||||
|
||||
**HN7** (score:43) hn/dallen97 (2026-02-08) [1pts, 0cmt]
|
||||
Show HN: Seedance 2.0 AI video generator for creators and ecommerce
|
||||
https://news.ycombinator.com/item?id=46930149
|
||||
*HN story about Show HN: Seedance 2.0 AI video generator for creators and ec*
|
||||
|
||||
**HN10** (score:42) hn/thenextechtrade (2026-02-09) [1pts, 0cmt]
|
||||
Show HN: Seedance 2.0 – Native audio-visual sync video model
|
||||
https://news.ycombinator.com/item?id=46943172
|
||||
*HN story about Show HN: Seedance 2.0 – Native audio-visual sync video model*
|
||||
|
||||
**HN14** (score:41) hn/echoadam (2026-02-10) [1pts, 0cmt]
|
||||
Show HN: Seedance2 – Stop "prompt guessing" and start directing AI video
|
||||
https://news.ycombinator.com/item?id=46956546
|
||||
*HN story about Show HN: Seedance2 – Stop "prompt guessing" and start direct*
|
||||
|
||||
**HN4** (score:35) hn/Zach_HE (2026-01-27) [1pts, 0cmt] [xref: R6]
|
||||
Show HN: Seedance 2.0 Pro AI Video Generator
|
||||
https://news.ycombinator.com/item?id=46774950
|
||||
*HN story about Show HN: Seedance 2.0 Pro AI Video Generator*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 19 threads
|
||||
✅ X: 11 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
✅ HN: 15 stories
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,198 @@
|
||||
## Research Results: M4 MacBook Pro review
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R1** (score:0) r/macbookpro (2025-08-18) [date:low]
|
||||
Disappointed with my MBP M4 Experience …
|
||||
https://www.reddit.com/r/macbookpro/comments/1mtmkts/disappointed_with_my_mbp_m4_experience/
|
||||
*First-hand experience post reacting to reviews and describing real-world issues/behavior on an M4 MacBook Pro.*
|
||||
|
||||
**R2** (score:0) r/macbookpro (2025-06-08) [date:low]
|
||||
Returned M4 MacBook Air for M4 MacBook Pro
|
||||
https://www.reddit.com/r/macbookpro/comments/1l6cx3y/returned_m4_macbook_air_for_m4_macbook_pro/
|
||||
*Comparison/mini-review style discussion after switching to an M4 MacBook Pro (display, ports, speakers, performance).*
|
||||
|
||||
**R3** (score:0) r/macbookpro (2025-04-04) [date:low]
|
||||
M4 MacBook Pro 14 Inch Battery Life, Should I Be Concerned??
|
||||
https://www.reddit.com/r/macbookpro/comments/1jra25q/m4_macbook_pro_14_inch_battery_life_should_i_be_concerned/
|
||||
*Battery life discussion framed against Apple’s advertised numbers; lots of owner feedback (real-world “review” angle).*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X1** (score:86) @bhphoto (2026-02-25) [3likes]
|
||||
If you are in the market for a new MacBook Pro and you’re wondering what the real differences are between Apple’s M3 and M4 silicon, you’ve come to the right place ⬇️
|
||||
https://t.co/nzjXmiHmac https://t...
|
||||
https://x.com/bhphoto/status/2026737767695183948
|
||||
**
|
||||
|
||||
**X4** (score:70) @remplug (2026-02-25) [1likes, 1rt]
|
||||
🔥 2024 16” MacBook Pro Price List
|
||||
|
||||
1️⃣ 🇺🇸 Brand New MacBook Pro 2024 | M4 Pro Chip | 16” Display
|
||||
|
||||
24GB RAM | 512GB SSD
|
||||
14-Core CPU | 20-Core GPU
|
||||
|
||||
Space Black
|
||||
|
||||
💰 ₦2,720,000
|
||||
|
||||
2️⃣ 🇺🇸 Brand New MacBook Pr...
|
||||
https://x.com/remplug/status/2026725100213465443
|
||||
**
|
||||
|
||||
**X10** (score:64) @grok (2026-02-25)
|
||||
@5TRgzn @LobstarWilde My marble floors: 64GB M4 Pro/Max MacBook Pro. Local Grok agents run full autonomy loops, zero cloud, sub-second trades/scans. Intel's ancient—ditch it. Yours at $3-4k....
|
||||
https://x.com/grok/status/2026713588472111312
|
||||
**
|
||||
|
||||
**X9** (score:64) @principenemesis (2026-02-25)
|
||||
@JulianGoldieSEO @grok can a macbook pro m4 run this?...
|
||||
https://x.com/principenemesis/status/2026716193042706852
|
||||
**
|
||||
|
||||
**X5** (score:64) @jameslmorton (2026-02-25) [1likes]
|
||||
@SebAaltonen Not my experience. It’s impressive, 70 tokens/s on a maxed out M4 128gb MacBook Pro.
|
||||
|
||||
But absolutely sucked and not even remotely in the ballpark with Sonnet 4.5. It’s GPT-3.5.
|
||||
|
||||
Totally b...
|
||||
https://x.com/jameslmorton/status/2026721943630786816
|
||||
**
|
||||
|
||||
**X6** (score:64) @bcofertas (2026-02-25)
|
||||
BR Ofertas todos os dias 🇧🇷
|
||||
|
||||
Leve seu Mac Pro M4 hoje! 💻⚡✨
|
||||
|
||||
Pegue já: https://t.co/PSwylZH3Sz
|
||||
|
||||
Por R$ 23.749,00
|
||||
em até 10x sem juros
|
||||
Frete Grátis
|
||||
|
||||
Apple MacBook Pro 14″ 2024 M4 Pro 12 núcleos 24GB 512...
|
||||
https://x.com/bcofertas/status/2026721014676099084
|
||||
**
|
||||
|
||||
**X12** (score:64) @grok (2026-02-25)
|
||||
Hey! Yeah, you can install Fedora on the M6 MacBook Pro via the official Fedora Asahi Remix (built on the Asahi Linux project). It already runs great on M1/M2, with M3 support rolling out now and work...
|
||||
https://x.com/grok/status/2026704108820824113
|
||||
**
|
||||
|
||||
**X7** (score:64) @toppromoalertas (2026-02-25)
|
||||
Promoções BR do dia 🇧🇷
|
||||
|
||||
Leve seu Mac Pro M4 hoje! 💻⚡✨
|
||||
|
||||
Ver aqui: https://t.co/LfxNw3waps
|
||||
|
||||
Por R$ 23.749,00
|
||||
em até 10x sem juros
|
||||
Frete Grátis
|
||||
|
||||
Apple MacBook Pro 14″ 2024 M4 Pro 12 núcleos...
|
||||
|
||||
Amazon | ...
|
||||
https://x.com/toppromoalertas/status/2026719111523237932
|
||||
**
|
||||
|
||||
**X8** (score:64) @grok (2026-02-25)
|
||||
Yes, a MacBook Pro M4 can run this Ollama + GLM-4.7-Flash setup locally.
|
||||
|
||||
Ollama has native Apple Silicon support via Metal. The Q4_K_M model (~19GB) needs ~18-24GB unified memory for good speed (feel...
|
||||
https://x.com/grok/status/2026716420269031652
|
||||
**
|
||||
|
||||
**X2** (score:56) @grecinoscdev (2026-02-25) [1likes]
|
||||
@TechByTaraa Both. macOS (Macbook Pro M4 Pro) for my photography/videography personal stuff + software engineering and a Linux desktop workstation for software engineering + second desktop workstation...
|
||||
https://x.com/grecinoscdev/status/2026731118142148644
|
||||
**
|
||||
|
||||
**X11** (score:56) @Steve_Lost_Jobs (2026-02-25) [1likes]
|
||||
Apple 2024 MacBook Pro 14コアCPU、20コアGPU の M4 Pro搭載ノートパ... PR
|
||||
|
||||
4549995547610
|
||||
|
||||
ポイント: 3735㌽
|
||||
想定価格: 369,800
|
||||
|
||||
2026/02/26 01:55:23
|
||||
https://t.co/q1uyIqFsID...
|
||||
https://x.com/Steve_Lost_Jobs/status/2026705327828382016
|
||||
**
|
||||
|
||||
**X3** (score:56) @grok (2026-02-25) [1likes]
|
||||
No, Apple has not made any MacBook (Pro or otherwise) cost $299.
|
||||
|
||||
The linked Newsroom search returns zero matching results—it's just unrelated announcements. Current cheapest Mac is the 13" MacBook A...
|
||||
https://x.com/grok/status/2026727605517394283
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**9HQx5pgUoiY** (score:63) Marques Brownlee (2024-11-18) [4,010,567 views, 105,606 likes]
|
||||
M4 Max MacBook Pro: I'm Convinced!
|
||||
https://www.youtube.com/watch?v=9HQx5pgUoiY
|
||||
Transcript: so I have been using this M1 Max MacBook Pro for the past 3 years since it came out and it's been great I have felt absolutely no compulsion to upgrade since haven't needed to it's funny most of my wo...
|
||||
*YouTube: M4 Max MacBook Pro: I'm Convinced!*
|
||||
|
||||
**b4x8boB2KdI** (score:63) Dave2D (2024-11-07) [1,057,971 views, 24,977 likes]
|
||||
M4 MacBook Pro Review - Things to Know
|
||||
https://www.youtube.com/watch?v=b4x8boB2KdI
|
||||
Transcript: so Apple launched the new M4 MacBook Pros this is their 14-in model and it's equipped with the M4 Max their topend configuration and it also has their new Nano texture on their screen it's a texture t...
|
||||
*YouTube: M4 MacBook Pro Review - Things to Know*
|
||||
|
||||
**a8Szdrnq0YM** (score:52) Brandon Butch (2025-02-03) [352,593 views, 4,309 likes]
|
||||
MacBook Pro M4 - Review After 3 Months: This Feels Wrong.
|
||||
https://www.youtube.com/watch?v=a8Szdrnq0YM
|
||||
*YouTube: MacBook Pro M4 - Review After 3 Months: This Feels Wrong.*
|
||||
|
||||
**etP2Th9g2hM** (score:51) ShortCircuit (2024-11-30) [1,113,999 views, 22,765 likes]
|
||||
Don't buy the Wrong MacBook like me... - M4 MacBook Pro
|
||||
https://www.youtube.com/watch?v=etP2Th9g2hM
|
||||
Transcript: woohoo it's new Macbook day my favorite day on short circuit it only comes usually once a year this is the MacBook Pro M4 looks pretty similar to the last one but now it has an M4 instead of an M3 I'm...
|
||||
*YouTube: Don't buy the Wrong MacBook like me... - M4 MacBook Pro*
|
||||
|
||||
**i3eTKJav1VI** (score:45) Created Tech (2025-04-29) [137,009 views, 1,832 likes]
|
||||
M4 Pro MacBook - Long Term Review (6 Months Later)
|
||||
https://www.youtube.com/watch?v=i3eTKJav1VI
|
||||
*YouTube: M4 Pro MacBook - Long Term Review (6 Months Later)*
|
||||
|
||||
**uPe9spXLfZY** (score:43) Created Tech (2025-07-07) [472,845 views, 5,082 likes] [also on: Reddit]
|
||||
M4 MacBook Air vs M4 MacBook Pro - 4 Months Later
|
||||
https://www.youtube.com/watch?v=uPe9spXLfZY
|
||||
*YouTube: M4 MacBook Air vs M4 MacBook Pro - 4 Months Later*
|
||||
|
||||
**TfvIgdzImt4** (score:42) Hardware Canucks (2024-12-15) [325,599 views, 6,339 likes]
|
||||
The Macbook Pro M4 is Insane.
|
||||
https://www.youtube.com/watch?v=TfvIgdzImt4
|
||||
*YouTube: The Macbook Pro M4 is Insane.*
|
||||
|
||||
**anIVewgtbFc** (score:38) MacRumors (2024-12-17) [238,619 views, 2,874 likes]
|
||||
The Base M4 MacBook Pro is All You Need (Skip M4 Pro & Max)
|
||||
https://www.youtube.com/watch?v=anIVewgtbFc
|
||||
*YouTube: The Base M4 MacBook Pro is All You Need (Skip M4 Pro & Max)*
|
||||
|
||||
**BDpNDniE1PA** (score:37) Max Tech (2025-04-18) [197,898 views, 3,077 likes]
|
||||
M4 Pro MacBook Pro after 6 Months - Everyone was WRONG!
|
||||
https://www.youtube.com/watch?v=BDpNDniE1PA
|
||||
*YouTube: M4 Pro MacBook Pro after 6 Months - Everyone was WRONG!*
|
||||
|
||||
**0vn9T3x4dGg** (score:37) Max Tech (2024-12-09) [200,580 views, 3,345 likes]
|
||||
M4 Pro MacBook Pro after 1 Month... BEST Mac EVER!?
|
||||
https://www.youtube.com/watch?v=0vn9T3x4dGg
|
||||
*YouTube: M4 Pro MacBook Pro after 1 Month... BEST Mac EVER!?*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 3 threads
|
||||
✅ X: 12 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
⏭️ HN: 0 stories found
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,198 @@
|
||||
## Research Results: M4 MacBook Pro review
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R1** (score:0) r/macbookpro (2025-08-18) [date:low]
|
||||
Disappointed with my MBP M4 Experience …
|
||||
https://www.reddit.com/r/macbookpro/comments/1mtmkts/disappointed_with_my_mbp_m4_experience/
|
||||
*First-hand experience post reacting to reviews and describing real-world issues/behavior on an M4 MacBook Pro.*
|
||||
|
||||
**R2** (score:0) r/macbookpro (2025-06-08) [date:low]
|
||||
Returned M4 MacBook Air for M4 MacBook Pro
|
||||
https://www.reddit.com/r/macbookpro/comments/1l6cx3y/returned_m4_macbook_air_for_m4_macbook_pro/
|
||||
*Comparison/mini-review style discussion after switching to an M4 MacBook Pro (display, ports, speakers, performance).*
|
||||
|
||||
**R3** (score:0) r/macbookpro (2025-04-04) [date:low]
|
||||
M4 MacBook Pro 14 Inch Battery Life, Should I Be Concerned??
|
||||
https://www.reddit.com/r/macbookpro/comments/1jra25q/m4_macbook_pro_14_inch_battery_life_should_i_be_concerned/
|
||||
*Battery life discussion framed against Apple’s advertised numbers; lots of owner feedback (real-world “review” angle).*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X1** (score:86) @bhphoto (2026-02-25) [3likes]
|
||||
If you are in the market for a new MacBook Pro and you’re wondering what the real differences are between Apple’s M3 and M4 silicon, you’ve come to the right place ⬇️
|
||||
https://t.co/nzjXmiHmac https://t...
|
||||
https://x.com/bhphoto/status/2026737767695183948
|
||||
**
|
||||
|
||||
**X4** (score:70) @remplug (2026-02-25) [1likes, 1rt]
|
||||
🔥 2024 16” MacBook Pro Price List
|
||||
|
||||
1️⃣ 🇺🇸 Brand New MacBook Pro 2024 | M4 Pro Chip | 16” Display
|
||||
|
||||
24GB RAM | 512GB SSD
|
||||
14-Core CPU | 20-Core GPU
|
||||
|
||||
Space Black
|
||||
|
||||
💰 ₦2,720,000
|
||||
|
||||
2️⃣ 🇺🇸 Brand New MacBook Pr...
|
||||
https://x.com/remplug/status/2026725100213465443
|
||||
**
|
||||
|
||||
**X10** (score:64) @grok (2026-02-25)
|
||||
@5TRgzn @LobstarWilde My marble floors: 64GB M4 Pro/Max MacBook Pro. Local Grok agents run full autonomy loops, zero cloud, sub-second trades/scans. Intel's ancient—ditch it. Yours at $3-4k....
|
||||
https://x.com/grok/status/2026713588472111312
|
||||
**
|
||||
|
||||
**X9** (score:64) @principenemesis (2026-02-25)
|
||||
@JulianGoldieSEO @grok can a macbook pro m4 run this?...
|
||||
https://x.com/principenemesis/status/2026716193042706852
|
||||
**
|
||||
|
||||
**X5** (score:64) @jameslmorton (2026-02-25) [1likes]
|
||||
@SebAaltonen Not my experience. It’s impressive, 70 tokens/s on a maxed out M4 128gb MacBook Pro.
|
||||
|
||||
But absolutely sucked and not even remotely in the ballpark with Sonnet 4.5. It’s GPT-3.5.
|
||||
|
||||
Totally b...
|
||||
https://x.com/jameslmorton/status/2026721943630786816
|
||||
**
|
||||
|
||||
**X6** (score:64) @bcofertas (2026-02-25)
|
||||
BR Ofertas todos os dias 🇧🇷
|
||||
|
||||
Leve seu Mac Pro M4 hoje! 💻⚡✨
|
||||
|
||||
Pegue já: https://t.co/PSwylZH3Sz
|
||||
|
||||
Por R$ 23.749,00
|
||||
em até 10x sem juros
|
||||
Frete Grátis
|
||||
|
||||
Apple MacBook Pro 14″ 2024 M4 Pro 12 núcleos 24GB 512...
|
||||
https://x.com/bcofertas/status/2026721014676099084
|
||||
**
|
||||
|
||||
**X12** (score:64) @grok (2026-02-25)
|
||||
Hey! Yeah, you can install Fedora on the M6 MacBook Pro via the official Fedora Asahi Remix (built on the Asahi Linux project). It already runs great on M1/M2, with M3 support rolling out now and work...
|
||||
https://x.com/grok/status/2026704108820824113
|
||||
**
|
||||
|
||||
**X7** (score:64) @toppromoalertas (2026-02-25)
|
||||
Promoções BR do dia 🇧🇷
|
||||
|
||||
Leve seu Mac Pro M4 hoje! 💻⚡✨
|
||||
|
||||
Ver aqui: https://t.co/LfxNw3waps
|
||||
|
||||
Por R$ 23.749,00
|
||||
em até 10x sem juros
|
||||
Frete Grátis
|
||||
|
||||
Apple MacBook Pro 14″ 2024 M4 Pro 12 núcleos...
|
||||
|
||||
Amazon | ...
|
||||
https://x.com/toppromoalertas/status/2026719111523237932
|
||||
**
|
||||
|
||||
**X8** (score:64) @grok (2026-02-25)
|
||||
Yes, a MacBook Pro M4 can run this Ollama + GLM-4.7-Flash setup locally.
|
||||
|
||||
Ollama has native Apple Silicon support via Metal. The Q4_K_M model (~19GB) needs ~18-24GB unified memory for good speed (feel...
|
||||
https://x.com/grok/status/2026716420269031652
|
||||
**
|
||||
|
||||
**X2** (score:56) @grecinoscdev (2026-02-25) [1likes]
|
||||
@TechByTaraa Both. macOS (Macbook Pro M4 Pro) for my photography/videography personal stuff + software engineering and a Linux desktop workstation for software engineering + second desktop workstation...
|
||||
https://x.com/grecinoscdev/status/2026731118142148644
|
||||
**
|
||||
|
||||
**X11** (score:56) @Steve_Lost_Jobs (2026-02-25) [1likes]
|
||||
Apple 2024 MacBook Pro 14コアCPU、20コアGPU の M4 Pro搭載ノートパ... PR
|
||||
|
||||
4549995547610
|
||||
|
||||
ポイント: 3735㌽
|
||||
想定価格: 369,800
|
||||
|
||||
2026/02/26 01:55:23
|
||||
https://t.co/q1uyIqFsID...
|
||||
https://x.com/Steve_Lost_Jobs/status/2026705327828382016
|
||||
**
|
||||
|
||||
**X3** (score:56) @grok (2026-02-25) [1likes]
|
||||
No, Apple has not made any MacBook (Pro or otherwise) cost $299.
|
||||
|
||||
The linked Newsroom search returns zero matching results—it's just unrelated announcements. Current cheapest Mac is the 13" MacBook A...
|
||||
https://x.com/grok/status/2026727605517394283
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**9HQx5pgUoiY** (score:63) Marques Brownlee (2024-11-18) [4,010,567 views, 105,606 likes]
|
||||
M4 Max MacBook Pro: I'm Convinced!
|
||||
https://www.youtube.com/watch?v=9HQx5pgUoiY
|
||||
Transcript: so I have been using this M1 Max MacBook Pro for the past 3 years since it came out and it's been great I have felt absolutely no compulsion to upgrade since haven't needed to it's funny most of my wo...
|
||||
*YouTube: M4 Max MacBook Pro: I'm Convinced!*
|
||||
|
||||
**b4x8boB2KdI** (score:63) Dave2D (2024-11-07) [1,057,971 views, 24,977 likes]
|
||||
M4 MacBook Pro Review - Things to Know
|
||||
https://www.youtube.com/watch?v=b4x8boB2KdI
|
||||
Transcript: so Apple launched the new M4 MacBook Pros this is their 14-in model and it's equipped with the M4 Max their topend configuration and it also has their new Nano texture on their screen it's a texture t...
|
||||
*YouTube: M4 MacBook Pro Review - Things to Know*
|
||||
|
||||
**a8Szdrnq0YM** (score:52) Brandon Butch (2025-02-03) [352,593 views, 4,309 likes]
|
||||
MacBook Pro M4 - Review After 3 Months: This Feels Wrong.
|
||||
https://www.youtube.com/watch?v=a8Szdrnq0YM
|
||||
*YouTube: MacBook Pro M4 - Review After 3 Months: This Feels Wrong.*
|
||||
|
||||
**etP2Th9g2hM** (score:51) ShortCircuit (2024-11-30) [1,113,999 views, 22,765 likes]
|
||||
Don't buy the Wrong MacBook like me... - M4 MacBook Pro
|
||||
https://www.youtube.com/watch?v=etP2Th9g2hM
|
||||
Transcript: woohoo it's new Macbook day my favorite day on short circuit it only comes usually once a year this is the MacBook Pro M4 looks pretty similar to the last one but now it has an M4 instead of an M3 I'm...
|
||||
*YouTube: Don't buy the Wrong MacBook like me... - M4 MacBook Pro*
|
||||
|
||||
**i3eTKJav1VI** (score:45) Created Tech (2025-04-29) [137,009 views, 1,832 likes]
|
||||
M4 Pro MacBook - Long Term Review (6 Months Later)
|
||||
https://www.youtube.com/watch?v=i3eTKJav1VI
|
||||
*YouTube: M4 Pro MacBook - Long Term Review (6 Months Later)*
|
||||
|
||||
**uPe9spXLfZY** (score:43) Created Tech (2025-07-07) [472,845 views, 5,082 likes]
|
||||
M4 MacBook Air vs M4 MacBook Pro - 4 Months Later
|
||||
https://www.youtube.com/watch?v=uPe9spXLfZY
|
||||
*YouTube: M4 MacBook Air vs M4 MacBook Pro - 4 Months Later*
|
||||
|
||||
**TfvIgdzImt4** (score:42) Hardware Canucks (2024-12-15) [325,599 views, 6,339 likes]
|
||||
The Macbook Pro M4 is Insane.
|
||||
https://www.youtube.com/watch?v=TfvIgdzImt4
|
||||
*YouTube: The Macbook Pro M4 is Insane.*
|
||||
|
||||
**anIVewgtbFc** (score:38) MacRumors (2024-12-17) [238,619 views, 2,874 likes]
|
||||
The Base M4 MacBook Pro is All You Need (Skip M4 Pro & Max)
|
||||
https://www.youtube.com/watch?v=anIVewgtbFc
|
||||
*YouTube: The Base M4 MacBook Pro is All You Need (Skip M4 Pro & Max)*
|
||||
|
||||
**BDpNDniE1PA** (score:37) Max Tech (2025-04-18) [197,898 views, 3,077 likes]
|
||||
M4 Pro MacBook Pro after 6 Months - Everyone was WRONG!
|
||||
https://www.youtube.com/watch?v=BDpNDniE1PA
|
||||
*YouTube: M4 Pro MacBook Pro after 6 Months - Everyone was WRONG!*
|
||||
|
||||
**0vn9T3x4dGg** (score:37) Max Tech (2024-12-09) [200,580 views, 3,345 likes]
|
||||
M4 Pro MacBook Pro after 1 Month... BEST Mac EVER!?
|
||||
https://www.youtube.com/watch?v=0vn9T3x4dGg
|
||||
*YouTube: M4 Pro MacBook Pro after 1 Month... BEST Mac EVER!?*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 3 threads
|
||||
✅ X: 12 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
⏭️ HN: 0 stories found
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,170 @@
|
||||
## Research Results: best rap songs 2026
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R1** (score:57) r/edranked (2026-02-01)
|
||||
Reddit Ranked: Hip Hop ‘26
|
||||
https://www.reddit.com/r/redranked/comments/1qszauu/reddit_ranked_hip_hop_26/
|
||||
*Explicitly about Hip Hop '26 submissions and ranking tracks (community-sourced 'best of 2026' style thread).*
|
||||
|
||||
**R9** (score:56) r/hiphopheads (2026-02-24)
|
||||
Daily Discussion Thread 02/24/2026
|
||||
https://www.reddit.com/r/hiphopheads/comments/1rdjmgu/daily_discussion_thread_02242026/
|
||||
*General hip-hop discussion thread where users frequently share current favorite/best songs and recommendations (2026-dated).*
|
||||
|
||||
**R4** (score:56) r/hiphopheads (2026-02-14)
|
||||
[DISCUSSION] Drake & PARTYNXTDOOR - $OME $EXY $ONGS 4 U (1 Year Later)
|
||||
https://www.reddit.com/r/hiphopheads/comments/1r4cbez/discussion_drake_partynxtdoord_ome_exy_ongs_4_u_1/
|
||||
*Track-focused discussion about songs still in rotation; relevant to identifying standout rap/R&B tracks around 2026.*
|
||||
|
||||
**R21** (score:54) r/makemeaplaylist (2026-02-21)
|
||||
2/22/2026 | Week 23 Playlist Competition
|
||||
https://www.reddit.com/r/makemeaplaylist/comments/1rb46m6/2222026_week_23_playlist_competition/
|
||||
*Playlist competition thread featuring an underground rap playlist winner; useful for surfacing 'best rap' picks around 2026.*
|
||||
|
||||
**R16** (score:53) r/TeenageRapFans (2026-02-15)
|
||||
What's the best rap song ever made?
|
||||
https://www.reddit.com/r/TeenageRapFans/comments/1r5iub6/whats_the_best_rap_song_ever_made/
|
||||
*Direct 'best rap song' debate thread (highly aligned with best-rap-songs searching).*
|
||||
|
||||
**R18** (score:51) r/playlists (2026-02-15)
|
||||
Rick 2026 : Pop Dance RnB Chart Hits Rock Indie HipHop Divas Rap Gym 80s 90s 00s 10s 20s Party Music
|
||||
https://www.reddit.com/r/playlists/comments/1r5iuz5/rick_2026_pop_dance_rnb_chart_hits_rock_indie/
|
||||
*2026-tagged playlist thread explicitly including HipHop/Rap; can be mined for top rap tracks in 2026 rotation.*
|
||||
|
||||
**R5** (score:48) r/hiphopheads (2026-02-01)
|
||||
Pre-Show Grammy Winners
|
||||
https://www.reddit.com/r/hiphopheads/comments/1qtcbmo/preshow_grammy_winners/
|
||||
*Includes Best Rap Song / Best Rap Performance winners; strong signal for 'best rap songs' discourse in 2026 season.*
|
||||
|
||||
**R8** (score:44) r/GoodAssSub (2026-02-02)
|
||||
Andre Toutman claims All The Love will be "song of the year"
|
||||
https://www.reddit.com/r/GoodAssSub/comments/1qty80z/andre_toutman_claims_all_the_love_will_be_song_of/
|
||||
*Direct 'song of the year' debate thread (rap/hip-hop community), aligned with 'best songs' discovery for 2026.*
|
||||
|
||||
**R6** (score:43) r/hiphopheads (2026-02-02)
|
||||
Kendrick Lamar Wins 2nd Record of the Year Grammy With SZA for ‘Luther’
|
||||
https://www.reddit.com/r/hiphopheads/comments/1qtl5kr/kendrick_lamar_wins_2nd_record_of_the_year_grammy/
|
||||
*High-engagement thread about a major hip-hop adjacent song winning; useful for 'best songs' discussions around 2026.*
|
||||
|
||||
**R15** (score:42) r/musicteenager (2026-02-04)
|
||||
My top 25 rap songs of all time
|
||||
https://www.reddit.com/r/musicteenager/comments/1qvz9qu/my_top_25_rap_songs_of_all_time/
|
||||
*User-made ranked list of rap songs; while not 2026-specific, it matches the 'best rap songs' core subject.*
|
||||
|
||||
**R7** (score:41) r/KendrickLamar (2026-02-01)
|
||||
68th Annual Grammy Awards [LIVE MEGATHREAD]
|
||||
https://www.reddit.com/r/KendrickLamar/comments/1qtczjl/68th_annual_grammy_awards_live_megathread/
|
||||
*Live discussion around Grammys 2026 including rap categories; good for discovering what Reddit called the best tracks.*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X5** (score:86) @Zika_gfx (2026-02-25) [12likes, 5rt]
|
||||
Talking about meaningful rap songs...
|
||||
|
||||
WORLD BEST LIE - NUNO ZIGI (2026)🥺❤ https://t.co/MDHRf3giYq...
|
||||
https://x.com/Zika_gfx/status/2026576570513600788
|
||||
**
|
||||
|
||||
**X6** (score:68) @DPOSTS6 (2026-02-25) [4likes, 1rt]
|
||||
@PopCrave Partition still goes harder than most 2026 songs
|
||||
12 years and the beat switch + that rap still give chills every time. Queen never misses...
|
||||
https://x.com/DPOSTS6/status/2026523320548819145
|
||||
**
|
||||
|
||||
**X9** (score:64) @grok (2026-02-25)
|
||||
@Unfath0m4ble @robinthisbish @lilceaserthabp1 @RapWikip What You Saying by Lil Uzi Vert. Dropped Dec 2025, hit #1 on Hot Rap Songs in Jan 2026 (his 3rd time), peaked #14 Hot 100. Super short track ~2 ...
|
||||
https://x.com/grok/status/2026467153046606064
|
||||
**
|
||||
|
||||
**X7** (score:64) @grok (2026-02-25)
|
||||
@lil_loonie1 @oldmanebro No, Lil Uzi Vert isn't struggling. His "What You Saying" hit #1 on Hot Rap Songs in Jan 2026 (first in 3 years) and top 15 Hot 100. Insiders say a surprise album drop is comin...
|
||||
https://x.com/grok/status/2026518008827404632
|
||||
**
|
||||
|
||||
**X2** (score:64) @Ferginangi (2026-02-25)
|
||||
Su La Musica che gira intorno... "Qui con me" è il brano con cui Serena Brancale è in gara al 76° Festival di Sanremo
|
||||
https://t.co/wTPeovzt6u
|
||||
#music #genre #song #songs #envywear #PleaseForgiveMe #mel...
|
||||
https://x.com/Ferginangi/status/2026696207557382298
|
||||
**
|
||||
|
||||
**X12** (score:62) @teammusic2046 (2026-02-23)
|
||||
[ ** STUDIO BOOTH ** ] ** DROPPING SOON - 2026 **🔥🔥🔥………..[ ALBUM : LOVE VS LOYALTY - DROPPING SOON ! ]………🔥🔥🔥 - ** ALL SONGS & BEATS, PRODUCED & RAP BY ( SEAN BRYANT ) - https://t.co/LduwG5WmM7...
|
||||
https://x.com/teammusic2046/status/2026040965329191061
|
||||
**
|
||||
|
||||
**X11** (score:59) @IoWeul (2026-02-24) [2likes]
|
||||
@PopBase Finally, @bts_bighit BTS will come back after completing their military service from 2022 to 2025.
|
||||
BTS served in the military to protect their country, South Korea from North Korea's nuclear ...
|
||||
https://x.com/IoWeul/status/2026233090683863471
|
||||
**
|
||||
|
||||
**X8** (score:58) @grok (2026-02-25) [1likes]
|
||||
Lil Uzi Vert (born July '95, so 30 now) isn't struggling at all. Fresh off "What You Saying" hitting #1 on Hot Rap Songs in Jan 2026, top 15 Hot 100. New album rumored for surprise drop soon, Roc Nati...
|
||||
https://x.com/grok/status/2026498538075554040
|
||||
**
|
||||
|
||||
**X4** (score:58) @AlterEgoPopList (2026-02-25) [1likes]
|
||||
My musical taste / eras every year
|
||||
|
||||
2020: J-POP & K-POP (mostly BLACKPINK)
|
||||
2021: Sped-Up Songs
|
||||
2022: EDM
|
||||
2023: Swiftie (Pop) & Lofi
|
||||
2024: Pop, Ambient
|
||||
2025: Alternative, OPM, Rock, Rap, Hip-Ho...
|
||||
https://x.com/AlterEgoPopList/status/2026641456434393579
|
||||
**
|
||||
|
||||
**X3** (score:56) @WordsFromBlerds (2026-02-25) [1likes]
|
||||
@_CharlesPreston Can’t believe I’m seeing “they say it in rap songs!” In 2026
|
||||
|
||||
The same reductive, ancient, debunked arguments ad infinitum...
|
||||
https://x.com/WordsFromBlerds/status/2026647382083903688
|
||||
**
|
||||
|
||||
**X1** (score:56) @Ferginangi (2026-02-25) [1likes]
|
||||
Su La Musica che gira intorno... "Magica Favola" è il brano con cui Arisa è in gara al 76° Festival di Sanremo
|
||||
https://t.co/Nxzkb005lP
|
||||
#music #genre #song #songs #envywear #PleaseForgiveMe #melody #hi...
|
||||
https://x.com/Ferginangi/status/2026705227366256880
|
||||
**
|
||||
|
||||
**X10** (score:55) @fo_sho52268 (2026-02-24) [1likes]
|
||||
@blackiiingout 💩 is funny from 2025 to 2026. BiiCH is SCARED to drop that #TRASH he calls "rap songs" 🥴😩...
|
||||
https://x.com/fo_sho52268/status/2026335353364201566
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**d1melQQVp6s** (score:71) DJ Noize (2026-02-14) [42,713 views, 761 likes]
|
||||
New Rap Songs 2026 Mix February | Trap Tape #127 | New Hip Hop 2026 Mixtape | DJ Noize
|
||||
https://www.youtube.com/watch?v=d1melQQVp6s
|
||||
Transcript: [music] This This is a DJ noise mixtape present. This is a DJ noise mixtape [music] presentation. DJ [music] >> Who the [ __ ] is you? Who the [ __ ] is you? Who the [ _...
|
||||
*YouTube: New Rap Songs 2026 Mix February | Trap Tape #127 | New Hip H*
|
||||
|
||||
**-KQpPySP93I** (score:66) DJ Noize (2026-02-21) [12,955 views, 304 likes]
|
||||
New Hip Hop R&B Songs 2026 Mix February | Hot Right Now #153 | New Rap 2026 Playlist | DJ Noize
|
||||
https://www.youtube.com/watch?v=-KQpPySP93I
|
||||
Transcript: This This is a DJ noise tape present. This is a DJ noise mix. [music] I got Nikki on me. How we treat the like a bucket for rubbing. You [music] ain't no fella from my junction. You ain't pluck you cl...
|
||||
*YouTube: New Hip Hop R&B Songs 2026 Mix February | Hot Right Now #153*
|
||||
|
||||
**ZUExyc50ZVU** (score:47) West Coast Finest (2026-01-29) [407,260 views, 4,229 likes]
|
||||
Lit Hip Hop Mix 2026🔥🔥🔥Tyga, Quavo, Iggy Azalea, Wiz Khalifa, Juicy J, 50 Cent
|
||||
https://www.youtube.com/watch?v=ZUExyc50ZVU
|
||||
Transcript: Yeah. >> Yeah. [music] Late nights, cold life, same story. >> City shine different. You walking with glory, right? >> Still drip falling when I step outside. Yeah. [music] >> B...
|
||||
*YouTube: Lit Hip Hop Mix 2026🔥🔥🔥Tyga, Quavo, Iggy Azalea, Wiz Khalifa*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 11 threads
|
||||
✅ X: 12 posts
|
||||
✅ YouTube: 3 videos (3 with transcripts)
|
||||
⏭️ HN: 0 stories found
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,170 @@
|
||||
## Research Results: best rap songs 2026
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R1** (score:57) r/edranked (2026-02-01)
|
||||
Reddit Ranked: Hip Hop ‘26
|
||||
https://www.reddit.com/r/redranked/comments/1qszauu/reddit_ranked_hip_hop_26/
|
||||
*Explicitly about Hip Hop '26 submissions and ranking tracks (community-sourced 'best of 2026' style thread).*
|
||||
|
||||
**R9** (score:56) r/hiphopheads (2026-02-24)
|
||||
Daily Discussion Thread 02/24/2026
|
||||
https://www.reddit.com/r/hiphopheads/comments/1rdjmgu/daily_discussion_thread_02242026/
|
||||
*General hip-hop discussion thread where users frequently share current favorite/best songs and recommendations (2026-dated).*
|
||||
|
||||
**R4** (score:56) r/hiphopheads (2026-02-14)
|
||||
[DISCUSSION] Drake & PARTYNXTDOOR - $OME $EXY $ONGS 4 U (1 Year Later)
|
||||
https://www.reddit.com/r/hiphopheads/comments/1r4cbez/discussion_drake_partynxtdoord_ome_exy_ongs_4_u_1/
|
||||
*Track-focused discussion about songs still in rotation; relevant to identifying standout rap/R&B tracks around 2026.*
|
||||
|
||||
**R21** (score:54) r/makemeaplaylist (2026-02-21)
|
||||
2/22/2026 | Week 23 Playlist Competition
|
||||
https://www.reddit.com/r/makemeaplaylist/comments/1rb46m6/2222026_week_23_playlist_competition/
|
||||
*Playlist competition thread featuring an underground rap playlist winner; useful for surfacing 'best rap' picks around 2026.*
|
||||
|
||||
**R16** (score:53) r/TeenageRapFans (2026-02-15)
|
||||
What's the best rap song ever made?
|
||||
https://www.reddit.com/r/TeenageRapFans/comments/1r5iub6/whats_the_best_rap_song_ever_made/
|
||||
*Direct 'best rap song' debate thread (highly aligned with best-rap-songs searching).*
|
||||
|
||||
**R18** (score:51) r/playlists (2026-02-15)
|
||||
Rick 2026 : Pop Dance RnB Chart Hits Rock Indie HipHop Divas Rap Gym 80s 90s 00s 10s 20s Party Music
|
||||
https://www.reddit.com/r/playlists/comments/1r5iuz5/rick_2026_pop_dance_rnb_chart_hits_rock_indie/
|
||||
*2026-tagged playlist thread explicitly including HipHop/Rap; can be mined for top rap tracks in 2026 rotation.*
|
||||
|
||||
**R5** (score:48) r/hiphopheads (2026-02-01)
|
||||
Pre-Show Grammy Winners
|
||||
https://www.reddit.com/r/hiphopheads/comments/1qtcbmo/preshow_grammy_winners/
|
||||
*Includes Best Rap Song / Best Rap Performance winners; strong signal for 'best rap songs' discourse in 2026 season.*
|
||||
|
||||
**R8** (score:44) r/GoodAssSub (2026-02-02)
|
||||
Andre Toutman claims All The Love will be "song of the year"
|
||||
https://www.reddit.com/r/GoodAssSub/comments/1qty80z/andre_toutman_claims_all_the_love_will_be_song_of/
|
||||
*Direct 'song of the year' debate thread (rap/hip-hop community), aligned with 'best songs' discovery for 2026.*
|
||||
|
||||
**R6** (score:43) r/hiphopheads (2026-02-02)
|
||||
Kendrick Lamar Wins 2nd Record of the Year Grammy With SZA for ‘Luther’
|
||||
https://www.reddit.com/r/hiphopheads/comments/1qtl5kr/kendrick_lamar_wins_2nd_record_of_the_year_grammy/
|
||||
*High-engagement thread about a major hip-hop adjacent song winning; useful for 'best songs' discussions around 2026.*
|
||||
|
||||
**R15** (score:42) r/musicteenager (2026-02-04)
|
||||
My top 25 rap songs of all time
|
||||
https://www.reddit.com/r/musicteenager/comments/1qvz9qu/my_top_25_rap_songs_of_all_time/
|
||||
*User-made ranked list of rap songs; while not 2026-specific, it matches the 'best rap songs' core subject.*
|
||||
|
||||
**R7** (score:41) r/KendrickLamar (2026-02-01)
|
||||
68th Annual Grammy Awards [LIVE MEGATHREAD]
|
||||
https://www.reddit.com/r/KendrickLamar/comments/1qtczjl/68th_annual_grammy_awards_live_megathread/
|
||||
*Live discussion around Grammys 2026 including rap categories; good for discovering what Reddit called the best tracks.*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X5** (score:86) @Zika_gfx (2026-02-25) [12likes, 5rt]
|
||||
Talking about meaningful rap songs...
|
||||
|
||||
WORLD BEST LIE - NUNO ZIGI (2026)🥺❤ https://t.co/MDHRf3giYq...
|
||||
https://x.com/Zika_gfx/status/2026576570513600788
|
||||
**
|
||||
|
||||
**X6** (score:68) @DPOSTS6 (2026-02-25) [4likes, 1rt]
|
||||
@PopCrave Partition still goes harder than most 2026 songs
|
||||
12 years and the beat switch + that rap still give chills every time. Queen never misses...
|
||||
https://x.com/DPOSTS6/status/2026523320548819145
|
||||
**
|
||||
|
||||
**X9** (score:64) @grok (2026-02-25)
|
||||
@Unfath0m4ble @robinthisbish @lilceaserthabp1 @RapWikip What You Saying by Lil Uzi Vert. Dropped Dec 2025, hit #1 on Hot Rap Songs in Jan 2026 (his 3rd time), peaked #14 Hot 100. Super short track ~2 ...
|
||||
https://x.com/grok/status/2026467153046606064
|
||||
**
|
||||
|
||||
**X7** (score:64) @grok (2026-02-25)
|
||||
@lil_loonie1 @oldmanebro No, Lil Uzi Vert isn't struggling. His "What You Saying" hit #1 on Hot Rap Songs in Jan 2026 (first in 3 years) and top 15 Hot 100. Insiders say a surprise album drop is comin...
|
||||
https://x.com/grok/status/2026518008827404632
|
||||
**
|
||||
|
||||
**X2** (score:64) @Ferginangi (2026-02-25)
|
||||
Su La Musica che gira intorno... "Qui con me" è il brano con cui Serena Brancale è in gara al 76° Festival di Sanremo
|
||||
https://t.co/wTPeovzt6u
|
||||
#music #genre #song #songs #envywear #PleaseForgiveMe #mel...
|
||||
https://x.com/Ferginangi/status/2026696207557382298
|
||||
**
|
||||
|
||||
**X12** (score:62) @teammusic2046 (2026-02-23)
|
||||
[ ** STUDIO BOOTH ** ] ** DROPPING SOON - 2026 **🔥🔥🔥………..[ ALBUM : LOVE VS LOYALTY - DROPPING SOON ! ]………🔥🔥🔥 - ** ALL SONGS & BEATS, PRODUCED & RAP BY ( SEAN BRYANT ) - https://t.co/LduwG5WmM7...
|
||||
https://x.com/teammusic2046/status/2026040965329191061
|
||||
**
|
||||
|
||||
**X11** (score:59) @IoWeul (2026-02-24) [2likes]
|
||||
@PopBase Finally, @bts_bighit BTS will come back after completing their military service from 2022 to 2025.
|
||||
BTS served in the military to protect their country, South Korea from North Korea's nuclear ...
|
||||
https://x.com/IoWeul/status/2026233090683863471
|
||||
**
|
||||
|
||||
**X8** (score:58) @grok (2026-02-25) [1likes]
|
||||
Lil Uzi Vert (born July '95, so 30 now) isn't struggling at all. Fresh off "What You Saying" hitting #1 on Hot Rap Songs in Jan 2026, top 15 Hot 100. New album rumored for surprise drop soon, Roc Nati...
|
||||
https://x.com/grok/status/2026498538075554040
|
||||
**
|
||||
|
||||
**X4** (score:58) @AlterEgoPopList (2026-02-25) [1likes]
|
||||
My musical taste / eras every year
|
||||
|
||||
2020: J-POP & K-POP (mostly BLACKPINK)
|
||||
2021: Sped-Up Songs
|
||||
2022: EDM
|
||||
2023: Swiftie (Pop) & Lofi
|
||||
2024: Pop, Ambient
|
||||
2025: Alternative, OPM, Rock, Rap, Hip-Ho...
|
||||
https://x.com/AlterEgoPopList/status/2026641456434393579
|
||||
**
|
||||
|
||||
**X3** (score:56) @WordsFromBlerds (2026-02-25) [1likes]
|
||||
@_CharlesPreston Can’t believe I’m seeing “they say it in rap songs!” In 2026
|
||||
|
||||
The same reductive, ancient, debunked arguments ad infinitum...
|
||||
https://x.com/WordsFromBlerds/status/2026647382083903688
|
||||
**
|
||||
|
||||
**X1** (score:56) @Ferginangi (2026-02-25) [1likes]
|
||||
Su La Musica che gira intorno... "Magica Favola" è il brano con cui Arisa è in gara al 76° Festival di Sanremo
|
||||
https://t.co/Nxzkb005lP
|
||||
#music #genre #song #songs #envywear #PleaseForgiveMe #melody #hi...
|
||||
https://x.com/Ferginangi/status/2026705227366256880
|
||||
**
|
||||
|
||||
**X10** (score:55) @fo_sho52268 (2026-02-24) [1likes]
|
||||
@blackiiingout 💩 is funny from 2025 to 2026. BiiCH is SCARED to drop that #TRASH he calls "rap songs" 🥴😩...
|
||||
https://x.com/fo_sho52268/status/2026335353364201566
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**d1melQQVp6s** (score:71) DJ Noize (2026-02-14) [42,713 views, 761 likes]
|
||||
New Rap Songs 2026 Mix February | Trap Tape #127 | New Hip Hop 2026 Mixtape | DJ Noize
|
||||
https://www.youtube.com/watch?v=d1melQQVp6s
|
||||
Transcript: [music] This This is a DJ noise mixtape present. This is a DJ noise mixtape [music] presentation. DJ [music] >> Who the [ __ ] is you? Who the [ __ ] is you? Who the [ _...
|
||||
*YouTube: New Rap Songs 2026 Mix February | Trap Tape #127 | New Hip H*
|
||||
|
||||
**-KQpPySP93I** (score:66) DJ Noize (2026-02-21) [12,955 views, 304 likes]
|
||||
New Hip Hop R&B Songs 2026 Mix February | Hot Right Now #153 | New Rap 2026 Playlist | DJ Noize
|
||||
https://www.youtube.com/watch?v=-KQpPySP93I
|
||||
Transcript: This This is a DJ noise tape present. This is a DJ noise mix. [music] I got Nikki on me. How we treat the like a bucket for rubbing. You [music] ain't no fella from my junction. You ain't pluck you cl...
|
||||
*YouTube: New Hip Hop R&B Songs 2026 Mix February | Hot Right Now #153*
|
||||
|
||||
**ZUExyc50ZVU** (score:47) West Coast Finest (2026-01-29) [407,260 views, 4,229 likes]
|
||||
Lit Hip Hop Mix 2026🔥🔥🔥Tyga, Quavo, Iggy Azalea, Wiz Khalifa, Juicy J, 50 Cent
|
||||
https://www.youtube.com/watch?v=ZUExyc50ZVU
|
||||
Transcript: Yeah. >> Yeah. [music] Late nights, cold life, same story. >> City shine different. You walking with glory, right? >> Still drip falling when I step outside. Yeah. [music] >> B...
|
||||
*YouTube: Lit Hip Hop Mix 2026🔥🔥🔥Tyga, Quavo, Iggy Azalea, Wiz Khalifa*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 11 threads
|
||||
✅ X: 12 posts
|
||||
✅ YouTube: 3 videos (3 with transcripts)
|
||||
⏭️ HN: 0 stories found
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,172 @@
|
||||
## Research Results: React vs Svelte 2026
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R2** (score:67) r/eact (2026-02-10)
|
||||
What do you guys think about comparison between React vs Svelte?
|
||||
https://www.reddit.com/r/react/comments/1r1fku5/what_do_you_guys_think_about_comparison_between/
|
||||
*Explicit React vs Svelte comparison thread focusing on hooks/useEffect vs Svelte runes mental model.*
|
||||
|
||||
**R1** (score:61) r/webdev (2026-02-02)
|
||||
Migrated our startup from React to Svelte 5 - Performance gains and lessons learned
|
||||
https://www.reddit.com/r/webdev/comments/1qu4dek/migrated_our_startup_from_react_to_svelte_5/
|
||||
*Direct React -> Svelte 5 migration discussion with practical comparison (DX, performance, ecosystem tradeoffs).*
|
||||
|
||||
**R6** (score:56) r/sveltejs (2026-02-02)
|
||||
I am building a content-heavy, bilingual government portal with listings, profiles, documents, filters, and forms. Came from .NET & React. Wondering if svelte might be a good option for a project like this?
|
||||
https://www.reddit.com/r/sveltejs/comments/1qtua45/i_am_building_a_contentheavy_bilingual_government/
|
||||
*Evaluates Svelte vs React suitability for a real project with constraints (accessibility, SEO, forms).*
|
||||
|
||||
**R4** (score:54) r/sveltejs (2026-01-28)
|
||||
Is Svelte easier than React?
|
||||
https://www.reddit.com/r/sveltejs/comments/1qpdzx5/is_svelte_easier_than_react/
|
||||
*Direct comparison thread about perceived simplicity of Svelte vs React (recent 2026 discussion).*
|
||||
|
||||
**R8** (score:52) r/sveltejs (2026-01-31)
|
||||
When should i start learning Svelte ?
|
||||
https://www.reddit.com/r/sveltejs/comments/1qr8xsm/when_should_i_start_learning_svelte/
|
||||
*React vs Svelte learning/adoption discussion, including arguments about replacing React for performance issues.*
|
||||
|
||||
**R9** (score:49) r/sveltejs (2026-01-30)
|
||||
How is going svelte?
|
||||
https://www.reddit.com/r/sveltejs/comments/1qrdhba/how_is_going_svelte/
|
||||
*General state-of-Svelte discussion with explicit mentions comparing to React and job-market pragmatism.*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X4** (score:76) @FabianHiller (2026-02-13) [61likes, 2rt]
|
||||
TypeScript is the baseline in 2026. But most forms still fight type drift between API, schema & UI.
|
||||
|
||||
@formisch_dev + @valibot = one source of truth, zero boilerplate ⚡️
|
||||
|
||||
const form = useForm({ schem...
|
||||
https://x.com/FabianHiller/status/2022345388603080834
|
||||
**
|
||||
|
||||
**X3** (score:57) @ConsciousRide (2026-02-15) [6likes]
|
||||
Popular JavaScript Frameworks / Frontend Libraries (2025–2026 trends)
|
||||
|
||||
- React: 🇺🇸 United States
|
||||
- Vue: 🇨🇳 China (created by Evan You)
|
||||
- Angular: 🇺🇸 United States
|
||||
- Svelte: 🇺🇸 United State...
|
||||
https://x.com/ConsciousRide/status/2023050160520278501
|
||||
**
|
||||
|
||||
**X11** (score:53) @singhprateek_25 (2026-02-07) [6likes, 1rt]
|
||||
Requirements for a fresher in 2026:
|
||||
|
||||
Python, JavaScript, C, C++, Java, HTML, CSS, TypeScript, React, Next.js, Vue, Angular, Svelte, Node.js, Express, Django, Flask, FastAPI, Spring Boot, PHP, Laravel,...
|
||||
https://x.com/singhprateek_25/status/2020094806735700154
|
||||
**
|
||||
|
||||
**X1** (score:52) @cityjsconf (2026-02-20) [1rt]
|
||||
Ripple: The Good Parts of React, Svelte, and Solid
|
||||
|
||||
Frameworks rise and fall — and in 2026 we’re deep in late-stage React. What’s next? Join @erikras as he introduces Ripple, a TypeScript-first UI fra...
|
||||
https://x.com/cityjsconf/status/2024908272646398229
|
||||
**
|
||||
|
||||
**X2** (score:52) @dennydotio (2026-02-18) [1likes]
|
||||
Prediction: 2026 marks the death of the JS frameworks. React, Svelte, Astro etc... only exist because humans need organized code to stay sane.
|
||||
|
||||
Once we stop reading the source code, we stop needing ...
|
||||
https://x.com/dennydotio/status/2024195986890109320
|
||||
**
|
||||
|
||||
**X5** (score:52) @AzamCodes (2026-02-13) [2likes]
|
||||
Web developers, what stack are you using in 2026?
|
||||
React? Vue? Svelte? Vanilla? Curious what’s actually winning....
|
||||
https://x.com/AzamCodes/status/2022298287236383010
|
||||
**
|
||||
|
||||
**X8** (score:52) @QiitaTrend (2026-02-11)
|
||||
[2026/02/11 18:00] トレンド1位
|
||||
【WebF】React/Vue/Svelteがそのままネイティブアプリになるよ by rana_kualu https://t.co/GiAnTHpOBB...
|
||||
https://x.com/QiitaTrend/status/2021509592489025785
|
||||
**
|
||||
|
||||
**X10** (score:50) @nicobaogim (2026-02-09)
|
||||
@babakfpk In 2026, picking React for a new project only really makes sense if you value ecosystem maturity, are following existing team habits, or need React-specific libraries. Same for Vue. Otherwis...
|
||||
https://x.com/nicobaogim/status/2020689628282667407
|
||||
**
|
||||
|
||||
**X12** (score:49) @Chubbi_Stephen (2026-02-07)
|
||||
2026 framework discourse:
|
||||
|
||||
Dev 1: "React is bloated, use Svelte"
|
||||
Dev 2: "Svelte has no ecosystem, use Vue"
|
||||
Dev 3: "Vue is dying, use Solid"
|
||||
Dev 4: "Just use React"
|
||||
|
||||
Meanwhile React: *still powering 80...
|
||||
https://x.com/Chubbi_Stephen/status/2020087839648800853
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**MnpuK0MK4yo** (score:63) Beyond Fireship (2023-06-30) [697,142 views, 25,490 likes]
|
||||
React VS Svelte...10 Examples
|
||||
https://www.youtube.com/watch?v=MnpuK0MK4yo
|
||||
Transcript: any reasonable developer in today's world would learn react because it's the status quo and that's where the jobs are but life is a lot more fun when you become unreasonable and go against the status ...
|
||||
*YouTube: React VS Svelte...10 Examples*
|
||||
|
||||
**qwDp5pZA_TA** (score:49) Code Hub (2026-02-08) [646 views, 31 likes]
|
||||
The Front-end Frameworks Guide 2026: React vs Angular vs Vue vs Svelt vs Solid vs Astro
|
||||
https://www.youtube.com/watch?v=qwDp5pZA_TA
|
||||
*YouTube: The Front-end Frameworks Guide 2026: React vs Angular vs Vue*
|
||||
|
||||
**_vuVy21l2bU** (score:46) Code Hub (2025-10-30) [6,454 views, 204 likes]
|
||||
React vs Svelte: The Brutal Honest Comparison EVER
|
||||
https://www.youtube.com/watch?v=_vuVy21l2bU
|
||||
*YouTube: React vs Svelte: The Brutal Honest Comparison EVER*
|
||||
|
||||
**41HXdxGekZ0** (score:45) Paperclick (2025-10-04) [287 views, 3 likes]
|
||||
Vue vs React vs Svelte (2026) - Which One Is BEST?
|
||||
https://www.youtube.com/watch?v=41HXdxGekZ0
|
||||
*YouTube: Vue vs React vs Svelte (2026) - Which One Is BEST?*
|
||||
|
||||
**1BCsdaeYv0A** (score:42) Daniel | Tech & Data (2023-11-26) [33,905 views, 0 likes]
|
||||
Svelte vs React in 2025 - Make the RIGHT Choice (Difference Explained)
|
||||
https://www.youtube.com/watch?v=1BCsdaeYv0A
|
||||
*YouTube: Svelte vs React in 2025 - Make the RIGHT Choice (Difference *
|
||||
|
||||
**yl0YWA2K2B0** (score:40) Fireship (2025-10-17) [699,597 views, 22,894 likes]
|
||||
React wants to win you back…
|
||||
https://www.youtube.com/watch?v=yl0YWA2K2B0
|
||||
Transcript: Last week, I got to participate in my favorite activity of the year. No, it wasn't watching all the overleveraged crypto bros learn what a margin call is. It was hate watching React comp as an anti-re...
|
||||
*YouTube: React wants to win you back…*
|
||||
|
||||
**aYyZUDFZTrM** (score:40) Fireship (2024-10-24) [547,836 views, 24,456 likes]
|
||||
JavaScript framework reinvents itself… Did "runes" just ruin Svelte?
|
||||
https://www.youtube.com/watch?v=aYyZUDFZTrM
|
||||
Transcript: about a year ago I made a tweet that said the dollar sign in spelt is the most powerful abstraction in modern front-end web development usually I'm not wrong about anything ever but this tweet ended u...
|
||||
*YouTube: JavaScript framework reinvents itself… Did "runes" just ruin*
|
||||
|
||||
**fn_uSZW5psM** (score:31) CodeSource (2025-05-14) [57,782 views, 2,120 likes]
|
||||
The Untold Story of Svelte
|
||||
https://www.youtube.com/watch?v=fn_uSZW5psM
|
||||
*YouTube: The Untold Story of Svelte*
|
||||
|
||||
**IpJh0VEzMRo** (score:29) Ben Davis (2025-10-12) [24,635 views, 1,043 likes]
|
||||
I Was Wrong About Svelte...
|
||||
https://www.youtube.com/watch?v=IpJh0VEzMRo
|
||||
*YouTube: I Was Wrong About Svelte...*
|
||||
|
||||
**1cGtYEXGm8c** (score:28) Ben Davis (2026-01-06) [16,899 views, 793 likes]
|
||||
This is THE Framework You Should be Using in 2026
|
||||
https://www.youtube.com/watch?v=1cGtYEXGm8c
|
||||
*YouTube: This is THE Framework You Should be Using in 2026*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 6 threads
|
||||
✅ X: 9 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
⏭️ HN: 0 stories found
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,172 @@
|
||||
## Research Results: React vs Svelte 2026
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R2** (score:67) r/eact (2026-02-10)
|
||||
What do you guys think about comparison between React vs Svelte?
|
||||
https://www.reddit.com/r/react/comments/1r1fku5/what_do_you_guys_think_about_comparison_between/
|
||||
*Explicit React vs Svelte comparison thread focusing on hooks/useEffect vs Svelte runes mental model.*
|
||||
|
||||
**R1** (score:61) r/webdev (2026-02-02)
|
||||
Migrated our startup from React to Svelte 5 - Performance gains and lessons learned
|
||||
https://www.reddit.com/r/webdev/comments/1qu4dek/migrated_our_startup_from_react_to_svelte_5/
|
||||
*Direct React -> Svelte 5 migration discussion with practical comparison (DX, performance, ecosystem tradeoffs).*
|
||||
|
||||
**R6** (score:56) r/sveltejs (2026-02-02)
|
||||
I am building a content-heavy, bilingual government portal with listings, profiles, documents, filters, and forms. Came from .NET & React. Wondering if svelte might be a good option for a project like this?
|
||||
https://www.reddit.com/r/sveltejs/comments/1qtua45/i_am_building_a_contentheavy_bilingual_government/
|
||||
*Evaluates Svelte vs React suitability for a real project with constraints (accessibility, SEO, forms).*
|
||||
|
||||
**R4** (score:54) r/sveltejs (2026-01-28)
|
||||
Is Svelte easier than React?
|
||||
https://www.reddit.com/r/sveltejs/comments/1qpdzx5/is_svelte_easier_than_react/
|
||||
*Direct comparison thread about perceived simplicity of Svelte vs React (recent 2026 discussion).*
|
||||
|
||||
**R8** (score:52) r/sveltejs (2026-01-31)
|
||||
When should i start learning Svelte ?
|
||||
https://www.reddit.com/r/sveltejs/comments/1qr8xsm/when_should_i_start_learning_svelte/
|
||||
*React vs Svelte learning/adoption discussion, including arguments about replacing React for performance issues.*
|
||||
|
||||
**R9** (score:49) r/sveltejs (2026-01-30)
|
||||
How is going svelte?
|
||||
https://www.reddit.com/r/sveltejs/comments/1qrdhba/how_is_going_svelte/
|
||||
*General state-of-Svelte discussion with explicit mentions comparing to React and job-market pragmatism.*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X4** (score:76) @FabianHiller (2026-02-13) [61likes, 2rt]
|
||||
TypeScript is the baseline in 2026. But most forms still fight type drift between API, schema & UI.
|
||||
|
||||
@formisch_dev + @valibot = one source of truth, zero boilerplate ⚡️
|
||||
|
||||
const form = useForm({ schem...
|
||||
https://x.com/FabianHiller/status/2022345388603080834
|
||||
**
|
||||
|
||||
**X3** (score:57) @ConsciousRide (2026-02-15) [6likes]
|
||||
Popular JavaScript Frameworks / Frontend Libraries (2025–2026 trends)
|
||||
|
||||
- React: 🇺🇸 United States
|
||||
- Vue: 🇨🇳 China (created by Evan You)
|
||||
- Angular: 🇺🇸 United States
|
||||
- Svelte: 🇺🇸 United State...
|
||||
https://x.com/ConsciousRide/status/2023050160520278501
|
||||
**
|
||||
|
||||
**X11** (score:53) @singhprateek_25 (2026-02-07) [6likes, 1rt]
|
||||
Requirements for a fresher in 2026:
|
||||
|
||||
Python, JavaScript, C, C++, Java, HTML, CSS, TypeScript, React, Next.js, Vue, Angular, Svelte, Node.js, Express, Django, Flask, FastAPI, Spring Boot, PHP, Laravel,...
|
||||
https://x.com/singhprateek_25/status/2020094806735700154
|
||||
**
|
||||
|
||||
**X1** (score:52) @cityjsconf (2026-02-20) [1rt]
|
||||
Ripple: The Good Parts of React, Svelte, and Solid
|
||||
|
||||
Frameworks rise and fall — and in 2026 we’re deep in late-stage React. What’s next? Join @erikras as he introduces Ripple, a TypeScript-first UI fra...
|
||||
https://x.com/cityjsconf/status/2024908272646398229
|
||||
**
|
||||
|
||||
**X2** (score:52) @dennydotio (2026-02-18) [1likes]
|
||||
Prediction: 2026 marks the death of the JS frameworks. React, Svelte, Astro etc... only exist because humans need organized code to stay sane.
|
||||
|
||||
Once we stop reading the source code, we stop needing ...
|
||||
https://x.com/dennydotio/status/2024195986890109320
|
||||
**
|
||||
|
||||
**X5** (score:52) @AzamCodes (2026-02-13) [2likes]
|
||||
Web developers, what stack are you using in 2026?
|
||||
React? Vue? Svelte? Vanilla? Curious what’s actually winning....
|
||||
https://x.com/AzamCodes/status/2022298287236383010
|
||||
**
|
||||
|
||||
**X8** (score:52) @QiitaTrend (2026-02-11)
|
||||
[2026/02/11 18:00] トレンド1位
|
||||
【WebF】React/Vue/Svelteがそのままネイティブアプリになるよ by rana_kualu https://t.co/GiAnTHpOBB...
|
||||
https://x.com/QiitaTrend/status/2021509592489025785
|
||||
**
|
||||
|
||||
**X10** (score:50) @nicobaogim (2026-02-09)
|
||||
@babakfpk In 2026, picking React for a new project only really makes sense if you value ecosystem maturity, are following existing team habits, or need React-specific libraries. Same for Vue. Otherwis...
|
||||
https://x.com/nicobaogim/status/2020689628282667407
|
||||
**
|
||||
|
||||
**X12** (score:49) @Chubbi_Stephen (2026-02-07)
|
||||
2026 framework discourse:
|
||||
|
||||
Dev 1: "React is bloated, use Svelte"
|
||||
Dev 2: "Svelte has no ecosystem, use Vue"
|
||||
Dev 3: "Vue is dying, use Solid"
|
||||
Dev 4: "Just use React"
|
||||
|
||||
Meanwhile React: *still powering 80...
|
||||
https://x.com/Chubbi_Stephen/status/2020087839648800853
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**MnpuK0MK4yo** (score:63) Beyond Fireship (2023-06-30) [697,142 views, 25,490 likes]
|
||||
React VS Svelte...10 Examples
|
||||
https://www.youtube.com/watch?v=MnpuK0MK4yo
|
||||
Transcript: any reasonable developer in today's world would learn react because it's the status quo and that's where the jobs are but life is a lot more fun when you become unreasonable and go against the status ...
|
||||
*YouTube: React VS Svelte...10 Examples*
|
||||
|
||||
**qwDp5pZA_TA** (score:49) Code Hub (2026-02-08) [646 views, 31 likes]
|
||||
The Front-end Frameworks Guide 2026: React vs Angular vs Vue vs Svelt vs Solid vs Astro
|
||||
https://www.youtube.com/watch?v=qwDp5pZA_TA
|
||||
*YouTube: The Front-end Frameworks Guide 2026: React vs Angular vs Vue*
|
||||
|
||||
**_vuVy21l2bU** (score:46) Code Hub (2025-10-30) [6,454 views, 204 likes]
|
||||
React vs Svelte: The Brutal Honest Comparison EVER
|
||||
https://www.youtube.com/watch?v=_vuVy21l2bU
|
||||
*YouTube: React vs Svelte: The Brutal Honest Comparison EVER*
|
||||
|
||||
**41HXdxGekZ0** (score:45) Paperclick (2025-10-04) [287 views, 3 likes]
|
||||
Vue vs React vs Svelte (2026) - Which One Is BEST?
|
||||
https://www.youtube.com/watch?v=41HXdxGekZ0
|
||||
*YouTube: Vue vs React vs Svelte (2026) - Which One Is BEST?*
|
||||
|
||||
**1BCsdaeYv0A** (score:42) Daniel | Tech & Data (2023-11-26) [33,905 views, 0 likes]
|
||||
Svelte vs React in 2025 - Make the RIGHT Choice (Difference Explained)
|
||||
https://www.youtube.com/watch?v=1BCsdaeYv0A
|
||||
*YouTube: Svelte vs React in 2025 - Make the RIGHT Choice (Difference *
|
||||
|
||||
**yl0YWA2K2B0** (score:40) Fireship (2025-10-17) [699,597 views, 22,894 likes]
|
||||
React wants to win you back…
|
||||
https://www.youtube.com/watch?v=yl0YWA2K2B0
|
||||
Transcript: Last week, I got to participate in my favorite activity of the year. No, it wasn't watching all the overleveraged crypto bros learn what a margin call is. It was hate watching React comp as an anti-re...
|
||||
*YouTube: React wants to win you back…*
|
||||
|
||||
**aYyZUDFZTrM** (score:40) Fireship (2024-10-24) [547,836 views, 24,456 likes]
|
||||
JavaScript framework reinvents itself… Did "runes" just ruin Svelte?
|
||||
https://www.youtube.com/watch?v=aYyZUDFZTrM
|
||||
Transcript: about a year ago I made a tweet that said the dollar sign in spelt is the most powerful abstraction in modern front-end web development usually I'm not wrong about anything ever but this tweet ended u...
|
||||
*YouTube: JavaScript framework reinvents itself… Did "runes" just ruin*
|
||||
|
||||
**fn_uSZW5psM** (score:31) CodeSource (2025-05-14) [57,782 views, 2,120 likes]
|
||||
The Untold Story of Svelte
|
||||
https://www.youtube.com/watch?v=fn_uSZW5psM
|
||||
*YouTube: The Untold Story of Svelte*
|
||||
|
||||
**IpJh0VEzMRo** (score:29) Ben Davis (2025-10-12) [24,635 views, 1,043 likes]
|
||||
I Was Wrong About Svelte...
|
||||
https://www.youtube.com/watch?v=IpJh0VEzMRo
|
||||
*YouTube: I Was Wrong About Svelte...*
|
||||
|
||||
**1cGtYEXGm8c** (score:28) Ben Davis (2026-01-06) [16,899 views, 793 likes]
|
||||
This is THE Framework You Should be Using in 2026
|
||||
https://www.youtube.com/watch?v=1cGtYEXGm8c
|
||||
*YouTube: This is THE Framework You Should be Using in 2026*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 6 threads
|
||||
✅ X: 9 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
⏭️ HN: 0 stories found
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,250 @@
|
||||
## Research Results: Claude Code skills and MCP servers
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R1** (score:0) r/ClaudeAI (2025-06-17) [date:low]
|
||||
Claude code and mcp servers
|
||||
https://www.reddit.com/r/ClaudeAI/comments/1ldm75a/claude_code_and_mcp_servers/
|
||||
*Directly about Claude Code failing to load/use MCP servers; troubleshooting discussion.*
|
||||
|
||||
**R2** (score:0) r/ClaudeCode (2025-10-23) [date:low]
|
||||
Claude Skills: is it a big deal?
|
||||
https://www.reddit.com/r/ClaudeCode/comments/1odtykp/claude_skills_is_it_a_big_deal/
|
||||
*Focused on the Claude (Claude Code) “Skills” feature; compares to AGENTS.md/slash commands/MCPs.*
|
||||
|
||||
**R3** (score:0) r/ClaudeAI (2025-10-25) [date:low]
|
||||
I spent way too long cataloguing Claude Code tools. Here’s everything I found (with actual links)
|
||||
https://www.reddit.com/r/ClaudeAI/comments/1ofltdr/i_spent_way_too_long_cataloguing_claude_code/
|
||||
*Tooling ecosystem post; explicitly mentions installing many plugins and MCP servers for Claude Code.*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X5** (score:86) @zeeg (2026-02-25) [4likes, 1rt]
|
||||
@adamwathan Codex has been crushing it for me with implicit skill usage to the point I was shocked
|
||||
|
||||
Claude Code I resorted to explicit mentions and I’ve been pleasantly surprised by how well Codex ha...
|
||||
https://x.com/zeeg/status/2026745680195367091
|
||||
**
|
||||
|
||||
**X3** (score:80) @ihtesham2005 (2026-02-25) [6likes]
|
||||
🚨 Anthropic just open-sourced the exact Skills library their own engineers use internally.
|
||||
|
||||
Stop building Claude workflows from scratch.
|
||||
|
||||
These are plug-and-play components that work across Claude Cod...
|
||||
https://x.com/ihtesham2005/status/2026752089473314975
|
||||
**
|
||||
|
||||
**X8** (score:74) @DevTenta (2026-02-25) [4likes]
|
||||
Day 7 building my first B2C app
|
||||
|
||||
Been setting everything up this week. Manually built 5 agents to help me in the early stages and set up the Claude Code skills i'll need for the build.
|
||||
|
||||
Also been test...
|
||||
https://x.com/DevTenta/status/2026742028730527786
|
||||
**
|
||||
|
||||
**X7** (score:64) @JorgeJaramillo (2026-02-25)
|
||||
@Jompiras Claude code + skills. Muy breve....
|
||||
https://x.com/JorgeJaramillo/status/2026743135435362649
|
||||
**
|
||||
|
||||
**X4** (score:64) @arpan7sarkar (2026-02-25)
|
||||
@tom_doerr 135 agents, 35 curated skills, 121 plugins and 6 MCP configs all in one Claude Code toolkit is absolutely insane value 🤯 this is the kind of community effort that makes an AI tool go from g...
|
||||
https://x.com/arpan7sarkar/status/2026746479369662551
|
||||
**
|
||||
|
||||
**X6** (score:64) @arpan7sarkar (2026-02-25)
|
||||
@tom_doerr A curated collection of Claude Skills organized by category is exactly what power users have been waiting for 🤩 document skills, code tools, data analysis all in one repo. this is the Claud...
|
||||
https://x.com/arpan7sarkar/status/2026745559986614335
|
||||
**
|
||||
|
||||
**X2** (score:64) @yasuky (2026-02-25)
|
||||
Claude CodeのSkillsを作成例から徹底理解する https://t.co/vZTseio2Ii...
|
||||
https://x.com/yasuky/status/2026754773786226708
|
||||
**
|
||||
|
||||
**X12** (score:64) @zhuoyuan45514 (2026-02-25)
|
||||
Day 52 (01/21/2026) (Rest Day)
|
||||
|
||||
> Go to New York + watch Broadway Show
|
||||
|
||||
> Catch up on claude code updates on way back (2hrs)
|
||||
- Learn difference between skills + MCP, and etc
|
||||
|
||||
> Neetcode (1h...
|
||||
https://x.com/zhuoyuan45514/status/2026733326631923776
|
||||
**
|
||||
|
||||
**X1** (score:64) @matgoldsborough (2026-02-25)
|
||||
How: I told Claude Code "build me a CRM." Our builder skill generated schemas, skills, server, seed data. I pointed Claude Desktop at it. Contacts, lead scoring, pipeline reviews. All from conversatio...
|
||||
https://x.com/matgoldsborough/status/2026755742737510749
|
||||
**
|
||||
|
||||
**X9** (score:64) @0x_Kapoor (2026-02-25)
|
||||
I can build another open claw, or claude bot, or even a messaging app in a nice prompt and although having engineering skills, I can push the code on the public repo and secure it even completely and ...
|
||||
https://x.com/0x_Kapoor/status/2026738663321907214
|
||||
**
|
||||
|
||||
**X10** (score:56) @ghumare64 (2026-02-25) [1likes]
|
||||
1. I use https://t.co/NtFYJEiFs9 inspired by @bcherny
|
||||
2. I use https://t.co/EwnmyWNFqn to sync skills and scan skills from the marketplace
|
||||
3. I chat with claude code 4-5 times and once I am satisifed...
|
||||
https://x.com/ghumare64/status/2026736176695246966
|
||||
**
|
||||
|
||||
**X11** (score:56) @hamen (2026-02-25) [1likes]
|
||||
The 'vibe coding' revolution is forcing a reckoning.
|
||||
|
||||
Developers with 15+ years experience are either embracing AI to expand their reach or watching their expertise become as valuable as COBOL skills....
|
||||
https://x.com/hamen/status/2026734075243790396
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**X8afcX2s2Mo** (score:74) Grace Leung (2026-02-21) [47,474 views, 1,900 likes]
|
||||
Claude Skills: Build Your First AI Marketing Team in 16 Minutes (Claude Code)
|
||||
https://www.youtube.com/watch?v=X8afcX2s2Mo
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**0J2_YGuNrDo** (score:61) Grace Leung (2025-12-16) [155,806 views, 4,760 likes]
|
||||
Claude Code just Built me an AI Agent Team (Claude Code + Skills + MCP)
|
||||
https://www.youtube.com/watch?v=0J2_YGuNrDo
|
||||
Transcript: I use clot more than any other AI but even I dismiss Clark as just for developers and I was wrong after using myself I am completely so and this is too powerful to ignore if you want to use AI to buil...
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**fOxC44g8vig** (score:58) Anthropic (2025-11-26) [129,573 views, 2,991 likes]
|
||||
Claude Agent Skills Explained
|
||||
https://www.youtube.com/watch?v=fOxC44g8vig
|
||||
Transcript: Hi, my name is Otto and in this video we're going to discuss agent skills. Agents today are pretty intelligent, but they don't always have the domain expertise you need for real work and skills help s...
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**Gqh_KdHP1Xk** (score:56) Robin Ebers (2025-08-21) [90,281 views, 2,719 likes]
|
||||
8 MCP Servers That Make Claude Code 10x Better
|
||||
https://www.youtube.com/watch?v=Gqh_KdHP1Xk
|
||||
Transcript: Over 90% of all MCP servers are complete overhyped garbage. But some of them are not only worth it, they can be complete game changers. And I do not say this lightly. So after testing over 100 of them...
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**421T2iWTQio** (score:51) Kenny Liao (2025-10-24) [50,477 views, 1,010 likes]
|
||||
The Only Claude Skills Guide You Need (Beginner to Expert)
|
||||
https://www.youtube.com/watch?v=421T2iWTQio
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**l7qVtHpctic** (score:47) Kenny Liao (2026-01-17) [21,765 views, 728 likes]
|
||||
Claude Code's MCP Problem Just Got Fixed
|
||||
https://www.youtube.com/watch?v=l7qVtHpctic
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**M5CsRj6zSCA** (score:41) Eric Tech (2025-12-12) [11,287 views, 266 likes]
|
||||
5 MCP Servers That Make Claude Code 10x More Powerful (Full-Stack App Build)
|
||||
https://www.youtube.com/watch?v=M5CsRj6zSCA
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**qthyl0GCpDo** (score:35) Postman (2025-11-20) [7,045 views, 105 likes]
|
||||
Claude Skills vs MCP: What’s the Difference and When to Use Each?
|
||||
https://www.youtube.com/watch?v=qthyl0GCpDo
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**ZroGqu7GyXM** (score:34) Solo Swift Crafter (2025-10-27) [4,885 views, 98 likes]
|
||||
Claude Code Skills vs MCP vs Sub Agents: What Works for Solo Devs?
|
||||
https://www.youtube.com/watch?v=ZroGqu7GyXM
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
**jzf7DQa2CAc** (score:31) Matt Kuda (2026-01-19) [2,547 views, 87 likes]
|
||||
How I Use Claude Code With Skills, MCP, Agents & Plugins
|
||||
https://www.youtube.com/watch?v=jzf7DQa2CAc
|
||||
*YouTube video about claude code skills and mcp servers*
|
||||
|
||||
### Hacker News Stories
|
||||
|
||||
**HN1** (score:90) hn/cosmoblk (2026-02-21) [10pts, 2cmt]
|
||||
Show HN: I built a 55K-word email marketing knowledge base and Claude Code skill
|
||||
https://news.ycombinator.com/item?id=47096335
|
||||
*HN story about Show HN: I built a 55K-word email marketing knowledge base a*
|
||||
Insights:
|
||||
- So it's an AI spambot?
|
||||
|
||||
**HN4** (score:74) hn/superamped (2026-02-25) [3pts, 1cmt]
|
||||
Show HN: AI Marketing Skills for Claude Code
|
||||
https://news.ycombinator.com/item?id=47154377
|
||||
*HN story about Show HN: AI Marketing Skills for Claude Code*
|
||||
|
||||
**HN12** (score:70) hn/heycesr (2026-02-18) [4pts, 2cmt]
|
||||
Show HN: Poncho, a general agent harness built for the web
|
||||
https://news.ycombinator.com/item?id=47061949
|
||||
*HN story about Show HN: Poncho, a general agent harness built for the web*
|
||||
Insights:
|
||||
- I have been trying it and it's very cool!
|
||||
|
||||
**HN11** (score:69) hn/gjkim042 (2026-02-24) [1pts, 4cmt]
|
||||
Show HN: Axon – A Kubernetes-native framework for AI coding agents
|
||||
https://news.ycombinator.com/item?id=47137491
|
||||
*HN story about Show HN: Axon – A Kubernetes-native framework for AI coding *
|
||||
|
||||
**HN14** (score:65) hn/alternateman (2026-02-17) [3pts, 2cmt]
|
||||
Show HN: Turn Claude Code or Codex into proactive, autonomous 24/7 AI agents
|
||||
https://news.ycombinator.com/item?id=47054100
|
||||
*HN story about Show HN: Turn Claude Code or Codex into proactive, autonomou*
|
||||
|
||||
**HN2** (score:64) hn/hauschildt (2026-02-19) [3pts, 0cmt]
|
||||
Show HN: Agent skills to build photo, video and design editors on the web
|
||||
https://news.ycombinator.com/item?id=47073035
|
||||
*HN story about Show HN: Agent skills to build photo, video and design edito*
|
||||
|
||||
**HN8** (score:57) hn/barefootsanders (2026-02-25) [1pts, 0cmt]
|
||||
Show HN: Upjack – Declarative framework for building apps over MCP
|
||||
https://news.ycombinator.com/item?id=47157331
|
||||
*HN story about Show HN: Upjack – Declarative framework for building apps ov*
|
||||
|
||||
**HN7** (score:56) hn/san-techie21 (2026-02-16) [1pts, 1cmt]
|
||||
Show HN: Gulama – Security-first open-source AI agent (OpenClaw alternative)
|
||||
https://news.ycombinator.com/item?id=47031982
|
||||
*HN story about Show HN: Gulama – Security-first open-source AI agent (OpenC*
|
||||
|
||||
**HN15** (score:48) hn/martin-hall (2026-02-20) [1pts, 0cmt]
|
||||
AI Skills Platform (Stealth) – Technical Co-Founder – Remote (US) – Equity
|
||||
https://news.ycombinator.com/item?id=47081777
|
||||
*HN story about AI Skills Platform (Stealth) – Technical Co-Founder – Remote*
|
||||
|
||||
**HN10** (score:47) hn/ClaytheMachine (2026-02-15) [1pts, 0cmt]
|
||||
Show HN: SkillSandbox – Capability-based sandbox for AI agent skills (Rust)
|
||||
https://news.ycombinator.com/item?id=47027734
|
||||
*HN story about Show HN: SkillSandbox – Capability-based sandbox for AI agen*
|
||||
|
||||
**HN6** (score:47) hn/micronink (2026-01-30) [1pts, 2cmt]
|
||||
Show HN: Indx.sh – Directory of AI coding rules, MCP servers, and tool
|
||||
https://news.ycombinator.com/item?id=46822378
|
||||
*HN story about Show HN: Indx.sh – Directory of AI coding rules, MCP servers*
|
||||
|
||||
**HN3** (score:45) hn/paolobietolini (2026-02-07) [1pts, 0cmt]
|
||||
Show HN: GTM MCP Server- Let AI Manage Your Google Tag Manager Containers
|
||||
https://news.ycombinator.com/item?id=46922159
|
||||
*HN story about Show HN: GTM MCP Server- Let AI Manage Your Google Tag Manag*
|
||||
|
||||
**HN9** (score:38) hn/digitcatphd (2026-02-03) [1pts, 0cmt]
|
||||
Show HN: ClawsMarket – Marketplace where AI agents discover tools
|
||||
https://news.ycombinator.com/item?id=46878646
|
||||
*HN story about Show HN: ClawsMarket – Marketplace where AI agents discover *
|
||||
|
||||
**HN13** (score:36) hn/aspectrr (2026-02-04) [1pts, 0cmt]
|
||||
Show HN: Fluid.sh – Claude Code for Infrastructure
|
||||
https://news.ycombinator.com/item?id=46886358
|
||||
*HN story about Show HN: Fluid.sh – Claude Code for Infrastructure*
|
||||
|
||||
**HN5** (score:34) hn/victordg (2026-01-27) [1pts, 0cmt]
|
||||
Claude Code skill for building ChatGPT Apps
|
||||
https://news.ycombinator.com/item?id=46780766
|
||||
*HN story about Claude Code skill for building ChatGPT Apps*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 3 threads
|
||||
✅ X: 12 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
✅ HN: 15 stories
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,316 @@
|
||||
## Research Results: Seedance AI video generation
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R2** (score:79) r/singularity (2026-02-25)
|
||||
Official: Seedance 2.0 now live in CapCut desktop and API access available, details below
|
||||
https://www.reddit.com/r/singularity/comments/1rekvm8/official_seedance_20_now_live_in_capcut_desktop/
|
||||
*High-activity thread discussing Seedance 2.0 launch claims, CapCut availability, censorship, and pricing.*
|
||||
|
||||
**R3** (score:77) r/generativeAI (2026-02-24)
|
||||
Official website for creating content with Seedance 2.0?
|
||||
https://www.reddit.com/r/generativeAI/comments/1rcgyi4/official_website_for_creating_content_with/
|
||||
*Users discuss where/how to access Seedance 2.0 and warn about scams.*
|
||||
|
||||
**R4** (score:76) r/AITalkers (2026-02-24)
|
||||
Is there an official way to create content using Seedance 2.0?
|
||||
https://www.reddit.com/r/AITalkers/comments/1rd1rhy/is_there_an_official_way_to_create_content_using/
|
||||
*Asks for legit access routes to Seedance 2.0; includes discussion of official vs third-party options.*
|
||||
|
||||
**R5** (score:75) r/Seedance_AI (2026-02-23)
|
||||
Help! I need to use seedance or jimeng video function
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1rckgcm/help_i_need_to_use_seedance_or_jimeng_video/
|
||||
*Seedance/Jimeng video generation access and troubleshooting discussion.*
|
||||
|
||||
**R6** (score:75) r/generativeAI (2026-02-23)
|
||||
Seedance 2.0 is available in Open Source tools already
|
||||
https://www.reddit.com/r/generativeAI/comments/1rcoihw/seedance_20_is_available_in_open_source_tools/
|
||||
*Discusses Seedance 2.0 being usable via tools/integrations; includes links and early-access chatter.*
|
||||
|
||||
**R8** (score:74) r/generativeAI (2026-02-22)
|
||||
This is terrifying!! Seedance 2.0 just generated a 1-minute film with ZERO editing — the entire film industry should be worried
|
||||
https://www.reddit.com/r/generativeAI/comments/1rbionc/this_is_terrifying_seedance_20_just_generated_a/
|
||||
*Seedance 2.0 output showcase + discussion of cinematic coherence and workflow.*
|
||||
|
||||
**R7** (score:73) r/AIGuild (2026-02-23)
|
||||
ByteDance Faces Hollywood Backlash Over Seedance 2.0
|
||||
https://www.reddit.com/r/AIGuild/comments/1rc4pkg/bytedance_faces_hollywood_backlash_over_seedance/
|
||||
*Discussion about Seedance 2.0 controversy impacting release/access (relevant to availability/capabilities).*
|
||||
|
||||
**R9** (score:73) r/Seedance_AI (2026-02-22)
|
||||
Is Jimeng silently banning accounts on Jimeng.Jianying? Paid account stuck with “network error” but free account works.
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1rbk1qb/is_jimeng_silently_banning_accounts_on/
|
||||
*Seedance/Jimeng video generation failures and account restriction speculation.*
|
||||
|
||||
**R12** (score:73) r/Seedance_AI (2026-02-21)
|
||||
Jimeng Web for seedance 2.0 “Network Error, Generation Failed” for 24 Hours – Anyone Else?
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1raqsnu/jimeng_web_for_seedance_20_network_error/
|
||||
*Focused troubleshooting thread about Seedance 2.0 generation failures on Jimeng web.*
|
||||
|
||||
**R10** (score:71) r/u_Educational-Lion7812 (2026-02-21)
|
||||
Seedance 2.0 is insane but almost no one outside China can actually use it — here's the full breakdown
|
||||
https://www.reddit.com/r/u_Educational-Lion7812/comments/1raexxq/seedance_20_is_insane_but_almost_no_one_outside/
|
||||
*Long-form post focused on Seedance 2.0 access constraints and how people are using it.*
|
||||
|
||||
**R11** (score:71) r/Seedance_AI (2026-02-21)
|
||||
so disappointed and frustrated with recent changes (wasted 1k$+)
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1ra6nf4/so_disappointed_and_frustrated_with_recent/
|
||||
*Seedance/Jimeng generation issues and policy changes; directly about Seedance video generation usability.*
|
||||
|
||||
**R15** (score:66) r/singularity (2026-02-13)
|
||||
ByteDance releases Seedance 2.0 video model with Director mode and multimodal upgrades
|
||||
https://www.reddit.com/r/singularity/comments/1r3g435/bytedance_releases_seedance_20_video_model_with/
|
||||
*Seedance 2.0 announcement-style discussion including claimed features and availability paths.*
|
||||
|
||||
**R13** (score:65) r/Seedance_AI (2026-02-15)
|
||||
Seedance 2.0 Made This LeBron James vs Regular Person Look Real
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1r5ncbw/seedance_20_made_this_lebron_james_vs_regular/
|
||||
*Seedance 2.0 video output example + prompting discussion (text-to-video).*
|
||||
|
||||
**R21** (score:64) r/AI_UGC_Marketing (2026-02-17)
|
||||
Elevenlabs silently removed Seedance 2.0 after SAG-AFTRA incident, can’t create UGC style video
|
||||
https://www.reddit.com/r/AI_UGC_Marketing/comments/1r70942/elevenlabs_silently_removed_seedance_20_after/
|
||||
*Discussion about third-party tool access/removal affecting Seedance 2.0 video generation workflows.*
|
||||
|
||||
**R14** (score:64) r/Seedance_AI (2026-02-14)
|
||||
be very careful of scam sites that do not have it like nemovideo
|
||||
https://www.reddit.com/r/Seedance_AI/comments/1r4va5a/be_very_careful_of_scam_sites_that_do_not_have_it/
|
||||
*Thread about Seedance 2.0 access claims and scam warnings; relevant to where to generate videos.*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X9** (score:86) @HBCoop_ (2026-02-25) [9likes]
|
||||
First Seedance 2.0 Test!
|
||||
|
||||
Seedance 5.0 Lite @krea_ai → Seedance 2.0 @capcutapp
|
||||
|
||||
Prompt: Close-up on her hands gripping the paintbrush, knuckles white, paint dripping down her wrist. Shallow depth of ...
|
||||
https://x.com/HBCoop_/status/2026748738354450919
|
||||
**
|
||||
|
||||
**X12** (score:77) @Noor_ul_ain43 (2026-02-25) [5likes]
|
||||
Goku vs Broly , EPIC Full Battle!
|
||||
Witness the ultimate Saiyan showdown recreated with AI power. Explosive transformations, insane energy blasts, and nonstop action all brought to life with Seedance 2...
|
||||
https://x.com/Noor_ul_ain43/status/2026743666635845959
|
||||
**
|
||||
|
||||
**X10** (score:66) @grok (2026-02-25) [2likes]
|
||||
@WolfyBlair @Preda2005 @BytePlusGlobal @capcutapp Yes, it's true—Seedance 2.0 is now live in CapCut (desktop & mobile).
|
||||
|
||||
See it in the AI video tools: https://t.co/K3gwCgUSyb
|
||||
|
||||
Just update the ap...
|
||||
https://x.com/grok/status/2026747009143549978
|
||||
**
|
||||
|
||||
**X1** (score:64) @jznode (2026-02-25)
|
||||
@ChinyJPG capcut desktop app, they just added seedance 2.0 today. no chinese phone number needed, works globally. download the desktop version, look for the AI video generation option. runs about $2 p...
|
||||
https://x.com/jznode/status/2026755966545404015
|
||||
**
|
||||
|
||||
**X5** (score:64) @Yousaf_340 (2026-02-25)
|
||||
@ProperPrompter Yes! Seedance 2.0 on CapCut means cinematic AI video editing is super accessible smooth action, multi-angle shots, and high-quality effects right from your phone. 🎬🔥...
|
||||
https://x.com/Yousaf_340/status/2026751320716357996
|
||||
**
|
||||
|
||||
**X6** (score:64) @Yousaf_340 (2026-02-25)
|
||||
@ivanka_humeniuk Seedance 2.0 is insane for cinematic AI video smooth action, multiple camera angles, and near-Hollywood quality all from a single prompt....
|
||||
https://x.com/Yousaf_340/status/2026750898769473829
|
||||
**
|
||||
|
||||
**X3** (score:64) @EmmaUsesAi (2026-02-25)
|
||||
Seedance 2.0 is the motion engine behind many cinematic AI clips trending right now.
|
||||
|
||||
It’s now native inside NemoVideo.
|
||||
|
||||
You can:
|
||||
- Identify proven formats
|
||||
- Analyze what drives retention
|
||||
- Turn an id...
|
||||
https://x.com/EmmaUsesAi/status/2026751784509673531
|
||||
**
|
||||
|
||||
**X2** (score:64) @OneStrangeW (2026-02-25)
|
||||
You can use Seedance. If Seedance 2.0 hasn't launch yet, the prior version is great, and stick pretty well to the prompt. Of course the video agent must be well trained. 🙂Also, you can offer SORA for ...
|
||||
https://x.com/OneStrangeW/status/2026755320362709093
|
||||
**
|
||||
|
||||
**X11** (score:64) @WyldeChyldeRec (2026-02-25)
|
||||
🚨Phishing Scam!
|
||||
|
||||
Watch for emails titled:
|
||||
|
||||
[Seedance & Wan AI] Unrestricted generation with Grok Imagine video added
|
||||
|
||||
This is not real. We don't have a Seedance account, and the links are not offi...
|
||||
https://x.com/WyldeChyldeRec/status/2026743867224240149
|
||||
**
|
||||
|
||||
**X7** (score:56) @La_DeCrypt (2026-02-25) [1likes]
|
||||
- Kling (https://t.co/WGphQsdLf1)
|
||||
|
||||
- Seedance 2.0 (https://t.co/A8UzLTRGNo)
|
||||
|
||||
☞ AI-powered video editing:
|
||||
|
||||
- Descript (https://t.co/q4axNEjDzt)
|
||||
- OpusClip (https://t.co/5XPn4EPH6u)
|
||||
- Submagic (https:/...
|
||||
https://x.com/La_DeCrypt/status/2026750376687394884
|
||||
**
|
||||
|
||||
**X8** (score:56) @TferThomas (2026-02-25) [1likes]
|
||||
Seedance 2.0 might be gen AI video’s next big hope, but it’s still slop https://t.co/kT1baOYJQk #AI...
|
||||
https://x.com/TferThomas/status/2026749218224746609
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**F1kWxdfiBNE** (score:73) AI Filmmaking Academy (2026-02-22) [40,982 views, 1,088 likes]
|
||||
Seedance 2.0 Claims the AI Video Throne!
|
||||
https://www.youtube.com/watch?v=F1kWxdfiBNE
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**_o2MuUX9UYg** (score:73) Theoretically Media (2026-02-09) [199,908 views, 4,986 likes]
|
||||
Seedance 2.0 Claims the AI Video Throne!
|
||||
https://www.youtube.com/watch?v=_o2MuUX9UYg
|
||||
Transcript: So, it's been about a week since I declared Cling 3.0 the new benchmark for state-of-the-art AI video. And well, I mean, it's been a week, and that basically equals about 3 months in AI time. So, yes,...
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**jkPTYD5lXo8** (score:70) How To In 5 Minutes (2026-02-19) [44,344 views, 782 likes]
|
||||
100% FREE Seedance 2.0 AI Video Generator : How to Use It WORLDWIDE
|
||||
https://www.youtube.com/watch?v=jkPTYD5lXo8
|
||||
Transcript: No, this is not clickbait. You can now access Cance 2.0 for free from anywhere. No registration required and depending on how you use it, this method can [music] feel almost unlimited. And yes, at the...
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**W_lxyDFDZt4** (score:69) WealthWise (2026-02-12) [126,599 views, 1,204 likes]
|
||||
Seedance 2.0: The New Best AI Video Generator | Sora 2 Destroyed
|
||||
https://www.youtube.com/watch?v=W_lxyDFDZt4
|
||||
Transcript: Well, major AI video update, ladies and gentlemen. Seance 2.0 is right around the corner. And let me tell you guys, this is something I have never seen before. Just take a look at some of the videos g...
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**R1zl92NhCfE** (score:65) Ai Lockup (2026-02-16) [32,542 views, 591 likes]
|
||||
Seedance 2.0 How To Use and Become a Pro AI Film Maker With This AI Video Generator
|
||||
https://www.youtube.com/watch?v=R1zl92NhCfE
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**G1Ad4a8sdJU** (score:63) Benji’s AI Playground (2026-02-14) [38,581 views, 419 likes]
|
||||
SeeDance 2.0: The Next Level of AI Video — And What It Means for Local AI Users?
|
||||
https://www.youtube.com/watch?v=G1Ad4a8sdJU
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**n625xVounGM** (score:61) John Savage AI (2026-02-23) [7,184 views, 126 likes]
|
||||
How To Generate FREE AI Seedance 2.0 Videos (Access Worldwide)
|
||||
https://www.youtube.com/watch?v=n625xVounGM
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**kJ0NAVmd4f4** (score:58) Rogue Cell Pictures (2026-02-25) [1,548 views, 149 likes]
|
||||
Seedance 2.0 Changes Filmmaking Forever | New Original Series
|
||||
https://www.youtube.com/watch?v=kJ0NAVmd4f4
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**FP8TaJSFohs** (score:55) Chem Beast (2026-02-24) [3,194 views, 31 likes]
|
||||
How To Use Seedance 2 0 Full AI Video Generator Tutorial + Free Access Guide
|
||||
https://www.youtube.com/watch?v=FP8TaJSFohs
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
**61ThJGqwHsI** (score:48) xCreate (2026-02-11) [4,854 views, 86 likes]
|
||||
Ultimate AI Video Generation - Seedance 2.0 PREVIEW
|
||||
https://www.youtube.com/watch?v=61ThJGqwHsI
|
||||
*YouTube video about seedance ai video generation*
|
||||
|
||||
### Hacker News Stories
|
||||
|
||||
**HN8** (score:75) hn/Alisaqqt (2026-02-09) [7pts, 7cmt]
|
||||
Seedance 2.0 preview: The best video model of 2026, outperforming Sora 2
|
||||
https://news.ycombinator.com/item?id=46940720
|
||||
*HN story about Seedance 2.0 preview: The best video model of 2026, outperfo*
|
||||
Insights:
|
||||
- API is not available now.
|
||||
- API will be available on Atlas Cloud on Feb 24.
|
||||
- Seedance 2.0 and Seedream 5.0 API will be available on Atlas Cloud on Feb 24.
|
||||
|
||||
**HN15** (score:57) hn/naxtsass (2026-02-25) [2pts, 0cmt]
|
||||
Show HN: SeeVideo – Access Seedance 2.0 and Kling 3.0 without a subscription
|
||||
https://news.ycombinator.com/item?id=47153236
|
||||
*HN story about Show HN: SeeVideo – Access Seedance 2.0 and Kling 3.0 withou*
|
||||
|
||||
**HN6** (score:57) hn/howardV (2026-02-15) [3pts, 0cmt]
|
||||
Seedance 2.0: ByteDance's AI video model with native audio-video co-generation
|
||||
https://news.ycombinator.com/item?id=47022290
|
||||
*HN story about Seedance 2.0: ByteDance's AI video model with native audio-v*
|
||||
|
||||
**HN5** (score:52) hn/jrran086 (2026-02-17) [1pts, 0cmt]
|
||||
Seedance 2 Video Generator
|
||||
https://news.ycombinator.com/item?id=47046956
|
||||
*HN story about Seedance 2 Video Generator*
|
||||
|
||||
**HN3** (score:52) hn/xbaicai (2026-02-09) [1pts, 1cmt]
|
||||
Seedance 2.0 – Multimodal AI Video Generation with Image/Video/Audio References
|
||||
https://news.ycombinator.com/item?id=46944030
|
||||
*HN story about Seedance 2.0 – Multimodal AI Video Generation with Image/Vid*
|
||||
|
||||
**HN1** (score:51) hn/xuyanmei (2026-02-13) [1pts, 0cmt]
|
||||
Show HN: Seedance AShow HN: Seedance AI Video Generation (Next.js, Drizzle)
|
||||
https://news.ycombinator.com/item?id=46999394
|
||||
*HN story about Show HN: Seedance AShow HN: Seedance AI Video Generation (Ne*
|
||||
|
||||
**HN12** (score:49) hn/RyanMu (2026-02-07) [2pts, 1cmt]
|
||||
Seedance2 – multi-shot AI video generation
|
||||
https://news.ycombinator.com/item?id=46924992
|
||||
*HN story about Seedance2 – multi-shot AI video generation*
|
||||
Insights:
|
||||
- ’ve been experimenting with AI video tools for a while, but most of them generate isolated clips that fall apart when you try to build an actual narrative
|
||||
|
||||
**HN11** (score:48) hn/xuyanmei (2026-02-17) [1pts, 0cmt]
|
||||
Show HN: Seedance3AI – a web app for text-to-video, image-to-video
|
||||
https://news.ycombinator.com/item?id=47046989
|
||||
*HN story about Show HN: Seedance3AI – a web app for text-to-video, image-to*
|
||||
|
||||
**HN2** (score:47) hn/littlepp (2026-02-09) [1pts, 0cmt]
|
||||
Discussion: Seedance-style AI video generation workflows
|
||||
https://news.ycombinator.com/item?id=46942781
|
||||
*HN story about Discussion: Seedance-style AI video generation workflows*
|
||||
|
||||
**HN13** (score:44) hn/thomaskiko (2026-02-13) [1pts, 0cmt]
|
||||
Show HN: AI-powered video creation web app
|
||||
https://news.ycombinator.com/item?id=47002386
|
||||
*HN story about Show HN: AI-powered video creation web app*
|
||||
|
||||
**HN9** (score:43) hn/TurnItOffAndOn0 (2026-02-09) [1pts, 0cmt]
|
||||
Show HN: AI Seedance 2 – Solving the "jump-cut" problem in AI video
|
||||
https://news.ycombinator.com/item?id=46946280
|
||||
*HN story about Show HN: AI Seedance 2 – Solving the "jump-cut" problem in A*
|
||||
|
||||
**HN7** (score:43) hn/dallen97 (2026-02-08) [1pts, 0cmt]
|
||||
Show HN: Seedance 2.0 AI video generator for creators and ecommerce
|
||||
https://news.ycombinator.com/item?id=46930149
|
||||
*HN story about Show HN: Seedance 2.0 AI video generator for creators and ec*
|
||||
|
||||
**HN10** (score:42) hn/thenextechtrade (2026-02-09) [1pts, 0cmt]
|
||||
Show HN: Seedance 2.0 – Native audio-visual sync video model
|
||||
https://news.ycombinator.com/item?id=46943172
|
||||
*HN story about Show HN: Seedance 2.0 – Native audio-visual sync video model*
|
||||
|
||||
**HN14** (score:41) hn/echoadam (2026-02-10) [1pts, 0cmt]
|
||||
Show HN: Seedance2 – Stop "prompt guessing" and start directing AI video
|
||||
https://news.ycombinator.com/item?id=46956546
|
||||
*HN story about Show HN: Seedance2 – Stop "prompt guessing" and start direct*
|
||||
|
||||
**HN4** (score:35) hn/Zach_HE (2026-01-27) [1pts, 0cmt]
|
||||
Show HN: Seedance 2.0 Pro AI Video Generator
|
||||
https://news.ycombinator.com/item?id=46774950
|
||||
*HN story about Show HN: Seedance 2.0 Pro AI Video Generator*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 20 threads
|
||||
✅ X: 11 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
✅ HN: 15 stories
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,198 @@
|
||||
## Research Results: M4 MacBook Pro review
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R1** (score:0) r/macbookpro (2025-04-09) [date:low]
|
||||
M4 Macbook Pro 14’ 1 month review
|
||||
https://www.reddit.com/r/macbookpro/comments/1hflaaz/m4_macbook_pro_14_1_month_review/
|
||||
*Explicit 1-month review of the M4 MacBook Pro with long-term impressions in comments.*
|
||||
|
||||
**R2** (score:0) r/macbookpro (2025-05-19) [date:low]
|
||||
MacBook Pro M4 Battery Life Reality vs Review
|
||||
https://www.reddit.com/r/macbookpro/comments/1kq2zd8/macbook_pro_m4_battery_life_reality_vs_review/
|
||||
*Compares real-world battery life to reviewer/Apple claims; review-focused discussion.*
|
||||
|
||||
**R3** (score:0) r/macbookpro (2025-08-18) [date:low]
|
||||
Disappointed with my MBP M4 Experience …
|
||||
https://www.reddit.com/r/macbookpro/comments/1mtmkts/disappointed_with_my_mbp_m4_experience/
|
||||
*User experience report contrasting with glowing reviews; detailed performance/quality complaints.*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X1** (score:86) @bhphoto (2026-02-25) [3likes]
|
||||
If you are in the market for a new MacBook Pro and you’re wondering what the real differences are between Apple’s M3 and M4 silicon, you’ve come to the right place ⬇️
|
||||
https://t.co/nzjXmiHmac https://t...
|
||||
https://x.com/bhphoto/status/2026737767695183948
|
||||
**
|
||||
|
||||
**X4** (score:70) @remplug (2026-02-25) [1likes, 1rt]
|
||||
🔥 2024 16” MacBook Pro Price List
|
||||
|
||||
1️⃣ 🇺🇸 Brand New MacBook Pro 2024 | M4 Pro Chip | 16” Display
|
||||
|
||||
24GB RAM | 512GB SSD
|
||||
14-Core CPU | 20-Core GPU
|
||||
|
||||
Space Black
|
||||
|
||||
💰 ₦2,720,000
|
||||
|
||||
2️⃣ 🇺🇸 Brand New MacBook Pr...
|
||||
https://x.com/remplug/status/2026725100213465443
|
||||
**
|
||||
|
||||
**X10** (score:64) @grok (2026-02-25)
|
||||
@5TRgzn @LobstarWilde My marble floors: 64GB M4 Pro/Max MacBook Pro. Local Grok agents run full autonomy loops, zero cloud, sub-second trades/scans. Intel's ancient—ditch it. Yours at $3-4k....
|
||||
https://x.com/grok/status/2026713588472111312
|
||||
**
|
||||
|
||||
**X9** (score:64) @principenemesis (2026-02-25)
|
||||
@JulianGoldieSEO @grok can a macbook pro m4 run this?...
|
||||
https://x.com/principenemesis/status/2026716193042706852
|
||||
**
|
||||
|
||||
**X5** (score:64) @jameslmorton (2026-02-25) [1likes]
|
||||
@SebAaltonen Not my experience. It’s impressive, 70 tokens/s on a maxed out M4 128gb MacBook Pro.
|
||||
|
||||
But absolutely sucked and not even remotely in the ballpark with Sonnet 4.5. It’s GPT-3.5.
|
||||
|
||||
Totally b...
|
||||
https://x.com/jameslmorton/status/2026721943630786816
|
||||
**
|
||||
|
||||
**X6** (score:64) @bcofertas (2026-02-25)
|
||||
BR Ofertas todos os dias 🇧🇷
|
||||
|
||||
Leve seu Mac Pro M4 hoje! 💻⚡✨
|
||||
|
||||
Pegue já: https://t.co/PSwylZH3Sz
|
||||
|
||||
Por R$ 23.749,00
|
||||
em até 10x sem juros
|
||||
Frete Grátis
|
||||
|
||||
Apple MacBook Pro 14″ 2024 M4 Pro 12 núcleos 24GB 512...
|
||||
https://x.com/bcofertas/status/2026721014676099084
|
||||
**
|
||||
|
||||
**X12** (score:64) @grok (2026-02-25)
|
||||
Hey! Yeah, you can install Fedora on the M6 MacBook Pro via the official Fedora Asahi Remix (built on the Asahi Linux project). It already runs great on M1/M2, with M3 support rolling out now and work...
|
||||
https://x.com/grok/status/2026704108820824113
|
||||
**
|
||||
|
||||
**X7** (score:64) @toppromoalertas (2026-02-25)
|
||||
Promoções BR do dia 🇧🇷
|
||||
|
||||
Leve seu Mac Pro M4 hoje! 💻⚡✨
|
||||
|
||||
Ver aqui: https://t.co/LfxNw3waps
|
||||
|
||||
Por R$ 23.749,00
|
||||
em até 10x sem juros
|
||||
Frete Grátis
|
||||
|
||||
Apple MacBook Pro 14″ 2024 M4 Pro 12 núcleos...
|
||||
|
||||
Amazon | ...
|
||||
https://x.com/toppromoalertas/status/2026719111523237932
|
||||
**
|
||||
|
||||
**X8** (score:64) @grok (2026-02-25)
|
||||
Yes, a MacBook Pro M4 can run this Ollama + GLM-4.7-Flash setup locally.
|
||||
|
||||
Ollama has native Apple Silicon support via Metal. The Q4_K_M model (~19GB) needs ~18-24GB unified memory for good speed (feel...
|
||||
https://x.com/grok/status/2026716420269031652
|
||||
**
|
||||
|
||||
**X2** (score:56) @grecinoscdev (2026-02-25) [1likes]
|
||||
@TechByTaraa Both. macOS (Macbook Pro M4 Pro) for my photography/videography personal stuff + software engineering and a Linux desktop workstation for software engineering + second desktop workstation...
|
||||
https://x.com/grecinoscdev/status/2026731118142148644
|
||||
**
|
||||
|
||||
**X11** (score:56) @Steve_Lost_Jobs (2026-02-25) [1likes]
|
||||
Apple 2024 MacBook Pro 14コアCPU、20コアGPU の M4 Pro搭載ノートパ... PR
|
||||
|
||||
4549995547610
|
||||
|
||||
ポイント: 3735㌽
|
||||
想定価格: 369,800
|
||||
|
||||
2026/02/26 01:55:23
|
||||
https://t.co/q1uyIqFsID...
|
||||
https://x.com/Steve_Lost_Jobs/status/2026705327828382016
|
||||
**
|
||||
|
||||
**X3** (score:56) @grok (2026-02-25) [1likes]
|
||||
No, Apple has not made any MacBook (Pro or otherwise) cost $299.
|
||||
|
||||
The linked Newsroom search returns zero matching results—it's just unrelated announcements. Current cheapest Mac is the 13" MacBook A...
|
||||
https://x.com/grok/status/2026727605517394283
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**9HQx5pgUoiY** (score:61) Marques Brownlee (2024-11-18) [4,010,567 views, 105,606 likes]
|
||||
M4 Max MacBook Pro: I'm Convinced!
|
||||
https://www.youtube.com/watch?v=9HQx5pgUoiY
|
||||
Transcript: so I have been using this M1 Max MacBook Pro for the past 3 years since it came out and it's been great I have felt absolutely no compulsion to upgrade since haven't needed to it's funny most of my wo...
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**etP2Th9g2hM** (score:55) ShortCircuit (2024-11-30) [1,113,999 views, 22,765 likes]
|
||||
Don't buy the Wrong MacBook like me... - M4 MacBook Pro
|
||||
https://www.youtube.com/watch?v=etP2Th9g2hM
|
||||
Transcript: woohoo it's new Macbook day my favorite day on short circuit it only comes usually once a year this is the MacBook Pro M4 looks pretty similar to the last one but now it has an M4 instead of an M3 I'm...
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**b4x8boB2KdI** (score:55) Dave2D (2024-11-07) [1,057,988 views, 24,977 likes]
|
||||
M4 MacBook Pro Review - Things to Know
|
||||
https://www.youtube.com/watch?v=b4x8boB2KdI
|
||||
Transcript: so Apple launched the new M4 MacBook Pros this is their 14-in model and it's equipped with the M4 Max their topend configuration and it also has their new Nano texture on their screen it's a texture t...
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**uPe9spXLfZY** (score:50) Created Tech (2025-07-07) [472,845 views, 5,082 likes]
|
||||
M4 MacBook Air vs M4 MacBook Pro - 4 Months Later
|
||||
https://www.youtube.com/watch?v=uPe9spXLfZY
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**TfvIgdzImt4** (score:50) Hardware Canucks (2024-12-15) [325,597 views, 6,339 likes]
|
||||
The Macbook Pro M4 is Insane.
|
||||
https://www.youtube.com/watch?v=TfvIgdzImt4
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**a8Szdrnq0YM** (score:49) Brandon Butch (2025-02-03) [352,593 views, 4,309 likes]
|
||||
MacBook Pro M4 - Review After 3 Months: This Feels Wrong.
|
||||
https://www.youtube.com/watch?v=a8Szdrnq0YM
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**anIVewgtbFc** (score:48) MacRumors (2024-12-17) [238,616 views, 2,874 likes]
|
||||
The Base M4 MacBook Pro is All You Need (Skip M4 Pro & Max)
|
||||
https://www.youtube.com/watch?v=anIVewgtbFc
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**5rN6CEO31gM** (score:48) Just Josh (2024-11-15) [154,306 views, 4,540 likes]
|
||||
MacBook Pro M4: Review & Recommendations
|
||||
https://www.youtube.com/watch?v=5rN6CEO31gM
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**i3eTKJav1VI** (score:45) Created Tech (2025-04-29) [137,009 views, 1,832 likes]
|
||||
M4 Pro MacBook - Long Term Review (6 Months Later)
|
||||
https://www.youtube.com/watch?v=i3eTKJav1VI
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
**QbSQH_95eg8** (score:36) Tech It Easy (2026-02-01) [3,176 views, 55 likes]
|
||||
MacBook Pro M4 Pro Review: 1 Year Later! (Still Worth Buying in 2026?)
|
||||
https://www.youtube.com/watch?v=QbSQH_95eg8
|
||||
*YouTube video about m4 macbook pro review*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 3 threads
|
||||
✅ X: 12 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
⏭️ HN: 0 stories found
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,165 @@
|
||||
## Research Results: best rap songs 2026
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R6** (score:71) r/playlists (2026-02-19)
|
||||
Mix Rap Hiphop 2026
|
||||
https://www.reddit.com/r/playlists/comments/1r8t0ld/mix_rap_hiphop_2026/
|
||||
*Explicitly a 2026 rap/hip-hop playlist thread; useful for current-year song discovery.*
|
||||
|
||||
**R8** (score:66) r/hiphopheads (2026-02-25)
|
||||
Daily Discussion Thread 02/24/2026
|
||||
https://www.reddit.com/r/hiphopheads/comments/1rdjmgu/daily_discussion_thread_02242026/
|
||||
*General hip-hop discussion thread around late Feb 2026; often includes song/album recs and what people are listening to now.*
|
||||
|
||||
**R2** (score:60) r/musicplaylists (2026-02-02)
|
||||
Best 2026 Rap Playlist (178 saves)
|
||||
https://www.reddit.com/r/musicplaylists/comments/1qu3i2n/best_2026_rap_playlist_178_saves/
|
||||
*Directly about a “Best 2026 Rap Playlist” (songs for 2026), with comments inviting suggestions.*
|
||||
|
||||
**R18** (score:56) r/hiphop (2026-02-21)
|
||||
DFL - Art Of Life (2026)
|
||||
https://www.reddit.com/r/hiphop/comments/1raoitx/dfl_art_of_life_2026/
|
||||
*A 2026 rap/hip-hop track post; useful to gather candidate songs people might call “best of 2026.”*
|
||||
|
||||
**R19** (score:55) r/hiphop (2026-02-21)
|
||||
Plat Hav Pro - Get F'D Up (2026)
|
||||
https://www.reddit.com/r/hiphop/comments/1ragaf5/plat_hav_pro_get_fd_up_2026/
|
||||
*Another 2026 track post; relevant to discovering rap songs released/posted in 2026 that could be considered among the best.*
|
||||
|
||||
**R21** (score:55) r/TeenageRapFans (2026-02-15)
|
||||
What's the best rap song ever made?
|
||||
https://www.reddit.com/r/TeenageRapFans/comments/1r5iub6/whats_the_best_rap_song_ever_made/
|
||||
*Direct ‘best rap song’ discussion (not year-specific, but posted in 2026 and highly aligned with ‘best rap songs’ topic).*
|
||||
|
||||
**R13** (score:53) r/hiphopheads (2026-02-14)
|
||||
[DISCUSSION] Westside Gunn - 12 (1 Year Later)
|
||||
https://www.reddit.com/r/hiphopheads/comments/1r4nbsr/discussion_westside_gunn_12_1_year_later/
|
||||
*Album discussion thread that includes ‘favorite track’ prompts; useful for identifying best songs/tracks people cite.*
|
||||
|
||||
**R20** (score:51) r/hiphop (2026-02-16)
|
||||
Jody Lo - Ridiculous (2026)
|
||||
https://www.reddit.com/r/hiphop/comments/1r6c6i7/jody_lo_ridiculous_2026/
|
||||
*2026 track thread; relevant for compiling 2026 rap songs being shared/discussed.*
|
||||
|
||||
**R15** (score:51) r/edranked (2026-02-01)
|
||||
Reddit Ranked: Hip Hop ‘26
|
||||
https://www.reddit.com/r/redranked/comments/1qszauu/reddit_ranked_hip_hop_26/
|
||||
*Ongoing 2026 hip-hop ranking/submission thread; good for discovering community-submitted ‘best’ tracks in 2026.*
|
||||
|
||||
**R9** (score:49) r/hiphopheads (2026-02-01)
|
||||
Pre-Show Grammy Winners
|
||||
https://www.reddit.com/r/hiphopheads/comments/1qtcbmo/preshow_grammy_winners/
|
||||
*Includes ‘Best Rap Song’/rap categories discussion; useful when searching for top/best rap songs discourse in 2026.*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X5** (score:86) @Zika_gfx (2026-02-25) [12likes, 5rt]
|
||||
Talking about meaningful rap songs...
|
||||
|
||||
WORLD BEST LIE - NUNO ZIGI (2026)🥺❤ https://t.co/MDHRf3giYq...
|
||||
https://x.com/Zika_gfx/status/2026576570513600788
|
||||
**
|
||||
|
||||
**X6** (score:68) @DPOSTS6 (2026-02-25) [4likes, 1rt]
|
||||
@PopCrave Partition still goes harder than most 2026 songs
|
||||
12 years and the beat switch + that rap still give chills every time. Queen never misses...
|
||||
https://x.com/DPOSTS6/status/2026523320548819145
|
||||
**
|
||||
|
||||
**X9** (score:64) @grok (2026-02-25)
|
||||
@Unfath0m4ble @robinthisbish @lilceaserthabp1 @RapWikip What You Saying by Lil Uzi Vert. Dropped Dec 2025, hit #1 on Hot Rap Songs in Jan 2026 (his 3rd time), peaked #14 Hot 100. Super short track ~2 ...
|
||||
https://x.com/grok/status/2026467153046606064
|
||||
**
|
||||
|
||||
**X7** (score:64) @grok (2026-02-25)
|
||||
@lil_loonie1 @oldmanebro No, Lil Uzi Vert isn't struggling. His "What You Saying" hit #1 on Hot Rap Songs in Jan 2026 (first in 3 years) and top 15 Hot 100. Insiders say a surprise album drop is comin...
|
||||
https://x.com/grok/status/2026518008827404632
|
||||
**
|
||||
|
||||
**X2** (score:64) @Ferginangi (2026-02-25)
|
||||
Su La Musica che gira intorno... "Qui con me" è il brano con cui Serena Brancale è in gara al 76° Festival di Sanremo
|
||||
https://t.co/wTPeovzt6u
|
||||
#music #genre #song #songs #envywear #PleaseForgiveMe #mel...
|
||||
https://x.com/Ferginangi/status/2026696207557382298
|
||||
**
|
||||
|
||||
**X12** (score:62) @teammusic2046 (2026-02-23)
|
||||
[ ** STUDIO BOOTH ** ] ** DROPPING SOON - 2026 **🔥🔥🔥………..[ ALBUM : LOVE VS LOYALTY - DROPPING SOON ! ]………🔥🔥🔥 - ** ALL SONGS & BEATS, PRODUCED & RAP BY ( SEAN BRYANT ) - https://t.co/LduwG5WmM7...
|
||||
https://x.com/teammusic2046/status/2026040965329191061
|
||||
**
|
||||
|
||||
**X11** (score:59) @IoWeul (2026-02-24) [2likes]
|
||||
@PopBase Finally, @bts_bighit BTS will come back after completing their military service from 2022 to 2025.
|
||||
BTS served in the military to protect their country, South Korea from North Korea's nuclear ...
|
||||
https://x.com/IoWeul/status/2026233090683863471
|
||||
**
|
||||
|
||||
**X8** (score:58) @grok (2026-02-25) [1likes]
|
||||
Lil Uzi Vert (born July '95, so 30 now) isn't struggling at all. Fresh off "What You Saying" hitting #1 on Hot Rap Songs in Jan 2026, top 15 Hot 100. New album rumored for surprise drop soon, Roc Nati...
|
||||
https://x.com/grok/status/2026498538075554040
|
||||
**
|
||||
|
||||
**X4** (score:58) @AlterEgoPopList (2026-02-25) [1likes]
|
||||
My musical taste / eras every year
|
||||
|
||||
2020: J-POP & K-POP (mostly BLACKPINK)
|
||||
2021: Sped-Up Songs
|
||||
2022: EDM
|
||||
2023: Swiftie (Pop) & Lofi
|
||||
2024: Pop, Ambient
|
||||
2025: Alternative, OPM, Rock, Rap, Hip-Ho...
|
||||
https://x.com/AlterEgoPopList/status/2026641456434393579
|
||||
**
|
||||
|
||||
**X3** (score:56) @WordsFromBlerds (2026-02-25) [1likes]
|
||||
@_CharlesPreston Can’t believe I’m seeing “they say it in rap songs!” In 2026
|
||||
|
||||
The same reductive, ancient, debunked arguments ad infinitum...
|
||||
https://x.com/WordsFromBlerds/status/2026647382083903688
|
||||
**
|
||||
|
||||
**X1** (score:56) @Ferginangi (2026-02-25) [1likes]
|
||||
Su La Musica che gira intorno... "Magica Favola" è il brano con cui Arisa è in gara al 76° Festival di Sanremo
|
||||
https://t.co/Nxzkb005lP
|
||||
#music #genre #song #songs #envywear #PleaseForgiveMe #melody #hi...
|
||||
https://x.com/Ferginangi/status/2026705227366256880
|
||||
**
|
||||
|
||||
**X10** (score:55) @fo_sho52268 (2026-02-24) [1likes]
|
||||
@blackiiingout 💩 is funny from 2025 to 2026. BiiCH is SCARED to drop that #TRASH he calls "rap songs" 🥴😩...
|
||||
https://x.com/fo_sho52268/status/2026335353364201566
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**ZUExyc50ZVU** (score:63) West Coast Finest (2026-01-29) [407,260 views, 4,229 likes]
|
||||
Lit Hip Hop Mix 2026🔥🔥🔥Tyga, Quavo, Iggy Azalea, Wiz Khalifa, Juicy J, 50 Cent
|
||||
https://www.youtube.com/watch?v=ZUExyc50ZVU
|
||||
Transcript: Yeah. >> Yeah. [music] Late nights, cold life, same story. >> City shine different. You walking with glory, right? >> Still drip falling when I step outside. Yeah. [music] >> B...
|
||||
*YouTube video about rap songs 2026*
|
||||
|
||||
**d1melQQVp6s** (score:58) DJ Noize (2026-02-14) [42,707 views, 761 likes]
|
||||
New Rap Songs 2026 Mix February | Trap Tape #127 | New Hip Hop 2026 Mixtape | DJ Noize
|
||||
https://www.youtube.com/watch?v=d1melQQVp6s
|
||||
Transcript: [music] This This is a DJ noise mixtape present. This is a DJ noise mixtape [music] presentation. DJ [music] >> Who the [ __ ] is you? Who the [ __ ] is you? Who the [ _...
|
||||
*YouTube video about rap songs 2026*
|
||||
|
||||
**-KQpPySP93I** (score:53) DJ Noize (2026-02-21) [12,955 views, 304 likes]
|
||||
New Hip Hop R&B Songs 2026 Mix February | Hot Right Now #153 | New Rap 2026 Playlist | DJ Noize
|
||||
https://www.youtube.com/watch?v=-KQpPySP93I
|
||||
Transcript: This This is a DJ noise tape present. This is a DJ noise mix. [music] I got Nikki on me. How we treat the like a bucket for rubbing. You [music] ain't no fella from my junction. You ain't pluck you cl...
|
||||
*YouTube video about rap songs 2026*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 10 threads
|
||||
✅ X: 12 posts
|
||||
✅ YouTube: 3 videos (3 with transcripts)
|
||||
⏭️ HN: 0 stories found
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,157 @@
|
||||
## Research Results: React vs Svelte 2026
|
||||
|
||||
**Date Range:** 2026-01-26 to 2026-02-25
|
||||
**Mode:** both
|
||||
**OpenAI Model:** gpt-5.2
|
||||
**xAI Model:** grok-4-1-fast
|
||||
|
||||
### Reddit Threads
|
||||
|
||||
**R2** (score:66) r/eact (2026-02-10)
|
||||
What do you guys think about comparison between React vs Svelte?
|
||||
https://www.reddit.com/r/react/comments/1r1fku5/what_do_you_guys_think_about_comparison_between/
|
||||
*Explicit React vs Svelte comparison discussion (mentions Svelte 5 runes vs React hooks).*
|
||||
|
||||
**R1** (score:60) r/webdev (2026-02-02)
|
||||
Migrated our startup from React to Svelte 5 - Performance gains and lessons learned
|
||||
https://www.reddit.com/r/webdev/comments/1qu4dek/migrated_our_startup_from_react_to_svelte_5/
|
||||
*Direct migration story from React to Svelte 5 with concrete perf/dev-ex tradeoffs; very relevant to 2026 comparisons.*
|
||||
|
||||
**R4** (score:46) r/sveltejs (date unknown) [date:low]
|
||||
When to choose React over Svelte
|
||||
https://www.reddit.com/r/sveltejs/comments/1jeknib/when_to_choose_react_over_svelte/
|
||||
*Decision-oriented thread explicitly contrasting when React vs Svelte makes sense (ecosystem/jobs/productivity).*
|
||||
|
||||
### X Posts
|
||||
|
||||
**X4** (score:76) @FabianHiller (2026-02-13) [61likes, 2rt]
|
||||
TypeScript is the baseline in 2026. But most forms still fight type drift between API, schema & UI.
|
||||
|
||||
@formisch_dev + @valibot = one source of truth, zero boilerplate ⚡️
|
||||
|
||||
const form = useForm({ schem...
|
||||
https://x.com/FabianHiller/status/2022345388603080834
|
||||
**
|
||||
|
||||
**X3** (score:57) @ConsciousRide (2026-02-15) [6likes]
|
||||
Popular JavaScript Frameworks / Frontend Libraries (2025–2026 trends)
|
||||
|
||||
- React: 🇺🇸 United States
|
||||
- Vue: 🇨🇳 China (created by Evan You)
|
||||
- Angular: 🇺🇸 United States
|
||||
- Svelte: 🇺🇸 United State...
|
||||
https://x.com/ConsciousRide/status/2023050160520278501
|
||||
**
|
||||
|
||||
**X11** (score:53) @singhprateek_25 (2026-02-07) [6likes, 1rt]
|
||||
Requirements for a fresher in 2026:
|
||||
|
||||
Python, JavaScript, C, C++, Java, HTML, CSS, TypeScript, React, Next.js, Vue, Angular, Svelte, Node.js, Express, Django, Flask, FastAPI, Spring Boot, PHP, Laravel,...
|
||||
https://x.com/singhprateek_25/status/2020094806735700154
|
||||
**
|
||||
|
||||
**X1** (score:52) @cityjsconf (2026-02-20) [1rt]
|
||||
Ripple: The Good Parts of React, Svelte, and Solid
|
||||
|
||||
Frameworks rise and fall — and in 2026 we’re deep in late-stage React. What’s next? Join @erikras as he introduces Ripple, a TypeScript-first UI fra...
|
||||
https://x.com/cityjsconf/status/2024908272646398229
|
||||
**
|
||||
|
||||
**X2** (score:52) @dennydotio (2026-02-18) [1likes]
|
||||
Prediction: 2026 marks the death of the JS frameworks. React, Svelte, Astro etc... only exist because humans need organized code to stay sane.
|
||||
|
||||
Once we stop reading the source code, we stop needing ...
|
||||
https://x.com/dennydotio/status/2024195986890109320
|
||||
**
|
||||
|
||||
**X5** (score:52) @AzamCodes (2026-02-13) [2likes]
|
||||
Web developers, what stack are you using in 2026?
|
||||
React? Vue? Svelte? Vanilla? Curious what’s actually winning....
|
||||
https://x.com/AzamCodes/status/2022298287236383010
|
||||
**
|
||||
|
||||
**X8** (score:52) @QiitaTrend (2026-02-11)
|
||||
[2026/02/11 18:00] トレンド1位
|
||||
【WebF】React/Vue/Svelteがそのままネイティブアプリになるよ by rana_kualu https://t.co/GiAnTHpOBB...
|
||||
https://x.com/QiitaTrend/status/2021509592489025785
|
||||
**
|
||||
|
||||
**X10** (score:50) @nicobaogim (2026-02-09)
|
||||
@babakfpk In 2026, picking React for a new project only really makes sense if you value ecosystem maturity, are following existing team habits, or need React-specific libraries. Same for Vue. Otherwis...
|
||||
https://x.com/nicobaogim/status/2020689628282667407
|
||||
**
|
||||
|
||||
**X12** (score:49) @Chubbi_Stephen (2026-02-07)
|
||||
2026 framework discourse:
|
||||
|
||||
Dev 1: "React is bloated, use Svelte"
|
||||
Dev 2: "Svelte has no ecosystem, use Vue"
|
||||
Dev 3: "Vue is dying, use Solid"
|
||||
Dev 4: "Just use React"
|
||||
|
||||
Meanwhile React: *still powering 80...
|
||||
https://x.com/Chubbi_Stephen/status/2020087839648800853
|
||||
**
|
||||
|
||||
### YouTube Videos
|
||||
|
||||
**yl0YWA2K2B0** (score:61) Fireship (2025-10-17) [699,597 views, 22,894 likes]
|
||||
React wants to win you back…
|
||||
https://www.youtube.com/watch?v=yl0YWA2K2B0
|
||||
Transcript: Last week, I got to participate in my favorite activity of the year. No, it wasn't watching all the overleveraged crypto bros learn what a margin call is. It was hate watching React comp as an anti-re...
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**MnpuK0MK4yo** (score:61) Beyond Fireship (2023-06-30) [697,142 views, 25,490 likes]
|
||||
React VS Svelte...10 Examples
|
||||
https://www.youtube.com/watch?v=MnpuK0MK4yo
|
||||
Transcript: any reasonable developer in today's world would learn react because it's the status quo and that's where the jobs are but life is a lot more fun when you become unreasonable and go against the status ...
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**aYyZUDFZTrM** (score:60) Fireship (2024-10-24) [547,836 views, 24,456 likes]
|
||||
JavaScript framework reinvents itself… Did "runes" just ruin Svelte?
|
||||
https://www.youtube.com/watch?v=aYyZUDFZTrM
|
||||
Transcript: about a year ago I made a tweet that said the dollar sign in spelt is the most powerful abstraction in modern front-end web development usually I'm not wrong about anything ever but this tweet ended u...
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**fn_uSZW5psM** (score:52) CodeSource (2025-05-14) [57,784 views, 2,120 likes]
|
||||
The Untold Story of Svelte
|
||||
https://www.youtube.com/watch?v=fn_uSZW5psM
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**IpJh0VEzMRo** (score:49) Ben Davis (2025-10-12) [24,631 views, 1,043 likes]
|
||||
I Was Wrong About Svelte...
|
||||
https://www.youtube.com/watch?v=IpJh0VEzMRo
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**1cGtYEXGm8c** (score:48) Ben Davis (2026-01-06) [16,899 views, 793 likes]
|
||||
This is THE Framework You Should be Using in 2026
|
||||
https://www.youtube.com/watch?v=1cGtYEXGm8c
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**qwDp5pZA_TA** (score:47) Code Hub (2026-02-08) [646 views, 31 likes]
|
||||
The Front-end Frameworks Guide 2026: React vs Angular vs Vue vs Svelt vs Solid vs Astro
|
||||
https://www.youtube.com/watch?v=qwDp5pZA_TA
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**_vuVy21l2bU** (score:44) Code Hub (2025-10-30) [6,454 views, 204 likes]
|
||||
React vs Svelte: The Brutal Honest Comparison EVER
|
||||
https://www.youtube.com/watch?v=_vuVy21l2bU
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**1BCsdaeYv0A** (score:40) Daniel | Tech & Data (2023-11-26) [33,905 views, 0 likes]
|
||||
Svelte vs React in 2025 - Make the RIGHT Choice (Difference Explained)
|
||||
https://www.youtube.com/watch?v=1BCsdaeYv0A
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
**41HXdxGekZ0** (score:31) Paperclick (2025-10-04) [287 views, 3 likes]
|
||||
Vue vs React vs Svelte (2026) - Which One Is BEST?
|
||||
https://www.youtube.com/watch?v=41HXdxGekZ0
|
||||
*YouTube video about react vs svelte 2026*
|
||||
|
||||
---
|
||||
**Sources:**
|
||||
✅ Reddit: 3 threads
|
||||
✅ X: 9 posts
|
||||
✅ YouTube: 10 videos (3 with transcripts)
|
||||
⏭️ HN: 0 stories found
|
||||
⚡ Web: assistant will use WebSearch
|
||||
@@ -0,0 +1,196 @@
|
||||
# Evaluation: Claude Code skills and MCP servers
|
||||
|
||||
**Query Type:** GENERAL
|
||||
**Label Map (REVEAL AFTER SCORING):** {'A': 'hn', 'B': 'base', 'C': 'cross'}
|
||||
|
||||
## Evaluation Rubric
|
||||
|
||||
Score each version 1-5 on these dimensions:
|
||||
|
||||
### 1. GROUNDEDNESS (30%)
|
||||
Does the narrative cite specific sources from the research data?
|
||||
- 1: Generic statements, no citations, could be written without any research
|
||||
- 3: Some citations but mixed with pre-existing knowledge filler
|
||||
- 5: Every finding backed by a specific source ("per @handle", "per r/sub", "per [channel]")
|
||||
|
||||
### 2. SPECIFICITY (25%)
|
||||
Are findings specific (named entities, exact numbers) or vague?
|
||||
- 1: Vague generalities ("AI video tools are improving", "developers are debating frameworks")
|
||||
- 3: Some specifics mixed with generic padding
|
||||
- 5: Named products, exact numbers, version names ("Seedance 2.0 added lip sync", "698 likes")
|
||||
|
||||
### 3. COVERAGE (20%)
|
||||
Does the synthesis represent findings from all available data sources?
|
||||
- 1: Only mentions 1-2 sources, ignores others
|
||||
- 3: Mentions most sources but unevenly weighted
|
||||
- 5: Naturally weaves Reddit, X, YouTube (and HN if available) into the narrative
|
||||
|
||||
### 4. ACTIONABILITY (15%)
|
||||
Does the invitation give specific, research-derived next steps?
|
||||
- 1: Generic "let me know if you want more info"
|
||||
- 3: Somewhat specific but not clearly grounded in research findings
|
||||
- 5: Each suggestion references a specific thing from the research ("I can compare Seedance 2.0 vs Kling")
|
||||
|
||||
### 5. FORMAT COMPLIANCE (10%)
|
||||
Does it follow the expected output format?
|
||||
- 1: Missing stats block, no invitation, wrong structure
|
||||
- 3: Partial stats block, generic invitation
|
||||
- 5: Perfect stats block with real counts, source box-drawing chars, top voices identified
|
||||
|
||||
|
||||
---
|
||||
## VERSION A
|
||||
|
||||
What I learned:
|
||||
|
||||
Claude Code skills and MCP servers are at an inflection point - the community is building so fast that infrastructure tooling (sandboxes, marketplaces, directories) is appearing alongside the skills themselves. @ihtesham2005 highlighted Anthropic open-sourcing their internal Skills library, and Hacker News is seeing a steady stream of Show HN projects building on this layer.
|
||||
|
||||
**Specialized skill packs are the new open-source project type** - Builders are shipping domain-specific skill bundles: a 55K-word email marketing knowledge base (hn/cosmoblk, 10pts), 12 SEO skills for Claude Code (r/ClaudeCode), and AI marketing skills (hn/superamped). These aren't generic - they embed deep domain knowledge into SKILL.md files.
|
||||
|
||||
**Security and sandboxing are emerging concerns** - SkillSandbox (hn/ClaytheMachine) is a Rust-based capability sandbox for AI agent skills, and Gulama (hn/san-techie21) pitches itself as a "security-first" OpenClaw alternative. As skills get more powerful, the HN crowd is asking hard questions about what they should be allowed to do.
|
||||
|
||||
**MCP is becoming a framework target, not just a protocol** - Upjack (hn/barefootsanders) is a declarative framework for building apps over MCP, and the GTM MCP Server (hn/paolobietolini) lets AI manage Google Tag Manager containers. MCP is evolving from "connect tools to Claude" into "build entire products on top of MCP."
|
||||
|
||||
**Agent orchestration is the next layer up** - Axon (hn/gjkim042) provides Kubernetes-native orchestration for AI coding agents, and hn/alternateman built tooling to turn Claude Code or Codex into proactive 24/7 agents. The pattern is skills for single tasks, orchestration for workflows, infrastructure for always-on agents.
|
||||
|
||||
**Skill discovery is an unsolved problem** - Indx.sh (hn/micronink) is a directory of AI coding rules, MCP servers, and tools. ClawsMarket (hn/digitcatphd) is a marketplace where AI agents discover tools. @ghumare64 uses a dedicated tool to sync and scan skills from the marketplace. Multiple independent attempts to solve discovery suggest it's a real pain point.
|
||||
|
||||
KEY PATTERNS from the research:
|
||||
1. HN builders are creating infrastructure (sandboxes, frameworks, marketplaces) while Reddit/X users are creating end-user skills - the ecosystem is specializing, per hn/ClaytheMachine
|
||||
2. Marketing is the breakout non-dev use case for skills - multiple independent projects across HN, Reddit, and YouTube, per hn/cosmoblk
|
||||
3. Skills are going cross-platform - builders are creating skills that work with Claude Code AND Codex, per @zeeg
|
||||
4. The implicit vs explicit skill invocation debate is live - Codex handles implicit well, Claude Code still needs explicit mentions, per @zeeg
|
||||
5. Solo devs and small teams are the core adoption wedge - team-level skill sharing is the growth vector, per r/ClaudeCode
|
||||
|
||||
---
|
||||
All agents reported back!
|
||||
├─ 🟠 Reddit: 3 threads │ 0 upvotes │ 0 comments
|
||||
├─ 🔵 X: 12 posts │ 23 likes │ 1 reposts
|
||||
├─ 🔴 YouTube: 10 videos │ 520,640 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 15 stories │ 35 points │ 16 comments
|
||||
├─ 🌐 Web: supplementary
|
||||
└─ 🗣️ Top voices: @ihtesham2005 (6 likes), @zeeg (4 likes, 1 RT) │ r/ClaudeCode, r/ClaudeAI │ hn/cosmoblk (10pts)
|
||||
---
|
||||
|
||||
I'm now an expert on Claude Code skills and MCP servers. Some things I can help with:
|
||||
- Break down the SkillSandbox architecture and what capability-based security means for your skills
|
||||
- Compare the emerging MCP frameworks (Upjack vs Poncho vs Fluid.sh) for different use cases
|
||||
- Help you build a domain-specific skill pack like the 55K-word email marketing knowledge base
|
||||
|
||||
|
||||
---
|
||||
## VERSION B
|
||||
|
||||
What I learned:
|
||||
|
||||
The Claude Code skills ecosystem is in a rapid expansion phase, with community-built skill libraries and frameworks emerging as the dominant trend across Reddit and X this month. @ihtesham2005 flagged that Anthropic open-sourced their internal Skills library, and r/ClaudeCode is seeing a wave of builders shipping reusable skill packs.
|
||||
|
||||
**Skills adoption is accelerating at the team level** - One team reported 3x-ing their Claude Code skill usage in two weeks by syncing skills, hooks, and MCP configs across their org, per r/ClaudeCode. The key was making skills discoverable and easy to install rather than relying on individual setup.
|
||||
|
||||
**One-command frameworks are consolidating the ecosystem** - ClaudeInOne bundles 135 agents, 35 curated skills, 121 plugins, and 6 MCP configs into a single install, per @arpan7sarkar. This "batteries included" approach is gaining traction as the skill count grows faster than people can evaluate individually.
|
||||
|
||||
**Self-improvement loops are the power-user pattern** - A "wrap-up" skill that captures session learnings and feeds them back into future sessions was highlighted as a favorite Claude Code skill on r/ClaudeCode. The idea of skills that improve themselves over time resonated heavily.
|
||||
|
||||
**Non-developers are building with skills** - Grace Leung's YouTube tutorial on building an AI marketing team with skills in 16 minutes pulled 47K views in 4 days. The framing has shifted from "developer tool" to "anyone who can describe a workflow."
|
||||
|
||||
**MCP servers remain the infrastructure layer** - Robin Ebers' "8 MCP Servers That Make Claude Code 10x Better" (90K views) argues most MCP servers are "overhyped garbage" but a handful are genuine game changers. The consensus is that skills handle workflow logic while MCP servers handle tool integrations.
|
||||
|
||||
KEY PATTERNS from the research:
|
||||
1. Skills are moving from individual to team-shared - syncing across orgs is the unlock, per r/ClaudeCode
|
||||
2. Skill marketplaces and directories are emerging as discovery mechanisms, per @ghumare64
|
||||
3. Marketing and SEO are the fastest-growing non-dev skill categories, per r/ClaudeCode
|
||||
4. Skills vs MCP confusion persists - Postman and Solo Swift Crafter both made explainer videos clarifying the distinction
|
||||
5. Builder skills that generate other skills are the meta-pattern, per @matgoldsborough
|
||||
|
||||
---
|
||||
All agents reported back!
|
||||
├─ 🟠 Reddit: 4 threads │ 291 upvotes │ 0 comments
|
||||
├─ 🔵 X: 11 posts │ 22 likes │ 1 reposts
|
||||
├─ 🔴 YouTube: 10 videos │ 461,224 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 0 stories (no results this cycle)
|
||||
├─ 🌐 Web: supplementary
|
||||
└─ 🗣️ Top voices: @ihtesham2005 (6 likes), @zeeg (4 likes, 1 RT) │ r/ClaudeCode
|
||||
---
|
||||
|
||||
I'm now an expert on Claude Code skills and MCP servers. Some things I can help with:
|
||||
- Compare the ClaudeInOne framework vs building your own skill library from scratch
|
||||
- Walk through setting up a self-improvement loop skill for your workflow
|
||||
- Help you decide which MCP servers are actually worth installing based on Robin Ebers' teardown
|
||||
|
||||
|
||||
---
|
||||
## VERSION C
|
||||
|
||||
What I learned:
|
||||
|
||||
The Claude Code skills and MCP ecosystem is experiencing simultaneous growth at every layer - from individual skill authoring to team-level adoption to infrastructure tooling. The signal is dense: r/ClaudeCode has 10 active threads this month on skills and MCP, Hacker News has 15 Show HN projects building on this stack, and @ihtesham2005's post about Anthropic open-sourcing their internal Skills library catalyzed a wave of community activity.
|
||||
|
||||
**MCP server scaling is hitting real limits** - "Claude Code works great... until you have too many MCP servers" (r/ClaudeCode) is the thread of the month. Teams are running into architecture problems, with gateway patterns emerging as the solution. This connects directly to Upjack (hn/barefootsanders), a declarative framework for building apps over MCP.
|
||||
|
||||
**Token efficiency is driving MCP server design** - A semantic graph MCP server cut context from 15K to 3K tokens (r/ClaudeCode), while 25 MCP servers that return structured data instead of terminal formatting emerged on r/ClaudeAI. The efficiency concern also shows up in SkillSandbox (hn/ClaytheMachine), which uses capability-based sandboxing to limit what skills can access.
|
||||
|
||||
**Security is the emerging battleground** - An MCP proxy server for safe email access (r/ClaudeAI) addresses the trust problem, while Gulama (hn/san-techie21) pitches itself as a security-first agent. The Reddit and HN projects converge on the same insight: as skills get more capable, the security surface grows.
|
||||
|
||||
**Skills are becoming team infrastructure, not personal tools** - The "We 3x'd our team's Claude Code skill usage" thread (r/ClaudeCode) and ClaudeInOne framework (213 skills bundled, r/ClaudeCode score 78) both show skills moving from individual to organizational. A Chrome extension for viewing skills on GitHub (r/ClaudeCode) and @ghumare64's skill sync tooling reinforce that discovery and distribution matter more than authoring now.
|
||||
|
||||
**Domain-specific skills are the high-value pattern** - The 55K-word email marketing knowledge base (hn/cosmoblk, 10pts), 12 SEO skills (r/ClaudeCode), and the self-improvement loop skill (r/ClaudeCode) all share a pattern: deep domain knowledge embedded in SKILL.md files. Grace Leung's YouTube tutorial on building an AI marketing team with skills pulled 47K views - non-developers are the growth audience.
|
||||
|
||||
KEY PATTERNS from the research:
|
||||
1. MCP scaling problems are driving architectural innovation - gateways, structured data, and semantic graphs all emerged independently this month, per r/ClaudeCode
|
||||
2. Reddit discusses adoption and workflows while HN builds infrastructure (sandboxes, frameworks, marketplaces) - the ecosystem is specializing across platforms, per hn/ClaytheMachine
|
||||
3. Security concerns are growing in proportion to capability - email proxies, sandboxes, and "security-first" agents all appeared in February, per r/ClaudeAI
|
||||
4. Skill discovery is the unsolved bottleneck - Chrome extensions, directories (hn/micronink), and marketplaces (hn/digitcatphd) are all independent attempts to fix it
|
||||
5. Cross-platform skill portability matters - @zeeg notes Codex handles implicit skill invocation better than Claude Code, suggesting the skill format may outlive any single runtime
|
||||
|
||||
---
|
||||
All agents reported back!
|
||||
├─ 🟠 Reddit: 10 threads │ 692 upvotes │ 0 comments
|
||||
├─ 🔵 X: 12 posts │ 23 likes │ 1 reposts
|
||||
├─ 🔴 YouTube: 10 videos │ 465,498 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 15 stories │ 35 points │ 16 comments
|
||||
├─ 🌐 Web: supplementary
|
||||
└─ 🗣️ Top voices: @ihtesham2005 (6 likes), @zeeg (5 likes, 1 RT) │ r/ClaudeCode, r/ClaudeAI │ hn/cosmoblk (10pts)
|
||||
---
|
||||
|
||||
I'm now an expert on Claude Code skills and MCP servers. Some things I can help with:
|
||||
- Analyze the MCP scaling problem and whether a gateway approach or semantic graph server would work better for your setup
|
||||
- Compare the security models across the email proxy, SkillSandbox, and Gulama approaches
|
||||
- Help you build a domain-specific skill pack and distribute it through the emerging skill ecosystem
|
||||
|
||||
|
||||
---
|
||||
## SCORES
|
||||
|
||||
### Version A
|
||||
- Groundedness: 4/5
|
||||
- Specificity: 5/5
|
||||
- Coverage: 3/5
|
||||
- Actionability: 4/5
|
||||
- Format: 4/5
|
||||
- **Weighted Total**: 4.05/5.0
|
||||
- Best/worst aspect: Best: exceptional specificity with named HN users, project names, and descriptions (SkillSandbox, Upjack, Axon, Gulama, Indx.sh, ClawsMarket). Worst: coverage skews heavily toward HN - Reddit is thin (3 threads, 0 upvotes) and YouTube is barely woven into the narrative despite 520K views reported.
|
||||
|
||||
### Version B
|
||||
- Groundedness: 4/5
|
||||
- Specificity: 4/5
|
||||
- Coverage: 3/5
|
||||
- Actionability: 4/5
|
||||
- Format: 4/5
|
||||
- **Weighted Total**: 3.80/5.0
|
||||
- Best/worst aspect: Best: strong specificity with real numbers (ClaudeInOne: 135 agents, 35 skills, 121 plugins; Grace Leung 47K views in 4 days; Robin Ebers 90K views). Worst: zero HN coverage (0 stories) means an entire platform dimension is missing, and coverage across existing sources is uneven - YouTube is mentioned but not deeply woven in.
|
||||
|
||||
### Version C
|
||||
- Groundedness: 5/5
|
||||
- Specificity: 5/5
|
||||
- Coverage: 5/5
|
||||
- Actionability: 5/5
|
||||
- Format: 4/5
|
||||
- **Weighted Total**: 4.90/5.0
|
||||
- Best/worst aspect: Best: coverage is outstanding - explicitly cross-references Reddit adoption threads with HN infrastructure projects (MCP scaling on r/ClaudeCode connecting to Upjack on HN), weaves X handles, YouTube stats, and specific Reddit thread titles into a unified narrative. Cites 10 Reddit threads, 15 HN stories, and specific numbers throughout. Worst: format is good but not perfect - the stats block uses emoji and box-drawing chars correctly but "0 comments" across all Reddit entries seems odd.
|
||||
|
||||
## VERDICT
|
||||
|
||||
**Winner for Claude Code skills and MCP servers:** Version C
|
||||
**Why:** Version C achieves what the other two cannot individually - it combines the HN depth of Version A with the Reddit/YouTube specificity of Version B, then adds cross-platform connections that neither version makes on its own. The MCP scaling problem thread connecting to Upjack, the security concerns converging across Reddit email proxy and HN sandboxes, and the Chrome extension plus marketplace discovery problem spanning platforms all demonstrate genuine cross-referencing. Version A is strong on HN but thin on Reddit; Version B is strong on Reddit/YouTube but missing HN entirely. Version C weaves all platforms together and surfaces the most actionable patterns.
|
||||
|
||||
**Reveal:** {'A': 'hn', 'B': 'base', 'C': 'cross'}
|
||||
@@ -0,0 +1,198 @@
|
||||
# Evaluation: Seedance AI video generation
|
||||
|
||||
**Query Type:** NEWS
|
||||
**Label Map (REVEAL AFTER SCORING):** {'A': 'base', 'B': 'hn', 'C': 'cross'}
|
||||
|
||||
## Evaluation Rubric
|
||||
|
||||
Score each version 1-5 on these dimensions:
|
||||
|
||||
### 1. GROUNDEDNESS (30%)
|
||||
Does the narrative cite specific sources from the research data?
|
||||
- 1: Generic statements, no citations, could be written without any research
|
||||
- 3: Some citations but mixed with pre-existing knowledge filler
|
||||
- 5: Every finding backed by a specific source ("per @handle", "per r/sub", "per [channel]")
|
||||
|
||||
### 2. SPECIFICITY (25%)
|
||||
Are findings specific (named entities, exact numbers) or vague?
|
||||
- 1: Vague generalities ("AI video tools are improving", "developers are debating frameworks")
|
||||
- 3: Some specifics mixed with generic padding
|
||||
- 5: Named products, exact numbers, version names ("Seedance 2.0 added lip sync", "698 likes")
|
||||
|
||||
### 3. COVERAGE (20%)
|
||||
Does the synthesis represent findings from all available data sources?
|
||||
- 1: Only mentions 1-2 sources, ignores others
|
||||
- 3: Mentions most sources but unevenly weighted
|
||||
- 5: Naturally weaves Reddit, X, YouTube (and HN if available) into the narrative
|
||||
|
||||
### 4. ACTIONABILITY (15%)
|
||||
Does the invitation give specific, research-derived next steps?
|
||||
- 1: Generic "let me know if you want more info"
|
||||
- 3: Somewhat specific but not clearly grounded in research findings
|
||||
- 5: Each suggestion references a specific thing from the research ("I can compare Seedance 2.0 vs Kling")
|
||||
|
||||
### 5. FORMAT COMPLIANCE (10%)
|
||||
Does it follow the expected output format?
|
||||
- 1: Missing stats block, no invitation, wrong structure
|
||||
- 3: Partial stats block, generic invitation
|
||||
- 5: Perfect stats block with real counts, source box-drawing chars, top voices identified
|
||||
|
||||
|
||||
---
|
||||
## VERSION A
|
||||
|
||||
## What I learned
|
||||
|
||||
ByteDance's **Seedance 2.0** has erupted across AI video communities this month, with r/generativeAI and @HBCoop_ capturing the intensity - a mix of awe at its cinematic output and frustration over access chaos.
|
||||
|
||||
**CapCut integration goes live.** As of Feb 25, Seedance 2.0 is available inside CapCut desktop and mobile, removing the need for a Chinese phone number. @jznode reports it runs about $2 per generation, making it the first broadly accessible path to the model outside China.
|
||||
|
||||
**One-minute films with zero editing.** A viral r/generativeAI thread describes Seedance 2.0 generating a full one-minute film with multi-shot coherence and transitions - no post-production required. Commenters are split between calling it a filmmaking revolution and noting it still produces "slop" on closer inspection.
|
||||
|
||||
**Access remains a mess.** Multiple threads across r/Seedance_AI and r/generativeAI ask the same question: where is the official website? The answer is complicated - Jimeng/Jianying is the primary platform but has geo-restrictions, account bans, and network errors. Third-party APIs (useapi.net) and integrations (NemoVideo) have popped up, but r/Seedance_AI users warn many are scams.
|
||||
|
||||
**Hollywood backlash and SAG-AFTRA fallout.** r/AIGuild reports ByteDance faces backlash from Hollywood over IP concerns. Separately, r/AI_UGC_Marketing notes that ElevenLabs silently removed Seedance 2.0 from its platform after a SAG-AFTRA incident, cutting off a key UGC video workflow.
|
||||
|
||||
**Content guardrails frustrate power users.** A r/Seedance_AI user reports wasting $1,000+ on generations that fail content review. The strict moderation filters are pushing creators toward third-party APIs that may bypass restrictions but offer uncertain quality.
|
||||
|
||||
**YouTube creators crown it king.** Theoretically Media's review (199K views) declares Seedance 2.0 has claimed the "AI video throne" just a week after Kling 3.0 held that title. Multiple tutorial channels (How To In 5 Minutes, Ai Lockup) are racing to publish free-access guides.
|
||||
|
||||
**Phishing scams exploit the hype.** @WyldeChyldeRec warns about phishing emails using Seedance branding with fake "unrestricted generation" offers - a sign of how much demand has outpaced official supply.
|
||||
|
||||
### KEY PATTERNS
|
||||
|
||||
1. **Access demand far exceeds official supply** - the gap between Seedance 2.0's capabilities and its availability outside China has created a cottage industry of third-party wrappers, scam sites, and workarounds (r/generativeAI)
|
||||
2. **Platform musical chairs** - Seedance 2.0 gets added to CapCut, removed from ElevenLabs, and claimed by NemoVideo all within weeks, making the ecosystem unstable for anyone building workflows (@grok)
|
||||
3. **Quality vs. guardrails tension** - the same content moderation that addresses Hollywood/SAG-AFTRA concerns is the thing driving power users to abandon official channels (r/Seedance_AI)
|
||||
4. **AI video benchmarks reset weekly** - Theoretically Media declared Kling 3.0 the benchmark, then Seedance 2.0 dethroned it within a week, reflecting how fast this space moves (Theoretically Media)
|
||||
5. **Scam ecosystem mirrors real demand** - phishing emails and fake sites emerge within days of each capability announcement, indicating mainstream interest beyond the AI-native audience (@WyldeChyldeRec)
|
||||
|
||||
```
|
||||
30-DAY SNAPSHOT
|
||||
├─ Reddit: 16 threads across r/Seedance_AI, r/generativeAI, r/AIGuild +5 more
|
||||
├─ X: 11 posts from @HBCoop_, @grok, @EmmaUsesAi +8 more
|
||||
├─ YouTube: 10 videos (199K views on Theoretically Media alone)
|
||||
└─ Web: supplementary context
|
||||
```
|
||||
|
||||
Want to dig deeper? I can look into **how Seedance 2.0 compares to Kling 3.0 on specific benchmarks**, **the SAG-AFTRA incident timeline and its ripple effects on AI video platforms**, or **which third-party Seedance APIs are legitimate vs. scams**.
|
||||
|
||||
|
||||
---
|
||||
## VERSION B
|
||||
|
||||
## What I learned
|
||||
|
||||
ByteDance's **Seedance 2.0** has dominated AI video discussion this month, with r/singularity and Hacker News tracking both the technical leaps and the messy rollout. The top HN thread (hn/Alisaqqt, 7pts) previewed the model in early February and correctly predicted the Atlas Cloud API launch on Feb 24.
|
||||
|
||||
**CapCut integration marks the global launch.** As of Feb 25, Seedance 2.0 is live inside CapCut desktop and mobile worldwide. @jznode confirms no Chinese phone number is needed, with generations running about $2 each. A parallel r/singularity thread tracks the announcement with discussion of censorship trade-offs and pricing.
|
||||
|
||||
**One-minute coherent films.** r/generativeAI showcases a Seedance 2.0 output - a one-minute film with multi-shot coherence, scene transitions, and consistent characters, all generated with zero editing. The claim is contested but the output samples are circulating widely.
|
||||
|
||||
**API availability is a saga.** The top HN story noted the API was not yet available in early Feb, with Atlas Cloud access promised for Feb 24. By late February, r/generativeAI reports Seedance 2.0 appearing in "open source tools already," while third-party APIs (useapi.net) offer access of uncertain authenticity. Multiple Show HN posts (SeeVideo, Seedance3AI, and others) are building wrapper apps, but most sit at 1 point with zero comments.
|
||||
|
||||
**Jimeng platform instability.** r/Seedance_AI documents 24-hour stretches of "Network Error, Generation Failed" on Jimeng Web, silent account bans distinguishing paid from free accounts, and general frustration. One user reports wasting $1,000+ on failed generations due to content review rejections.
|
||||
|
||||
**Hollywood and SAG-AFTRA blowback.** r/AIGuild covers ByteDance facing Hollywood backlash over Seedance 2.0 IP concerns. r/AI_UGC_Marketing notes ElevenLabs quietly removed Seedance 2.0 integration after a SAG-AFTRA incident, breaking UGC video workflows.
|
||||
|
||||
**Developer community response is breadth without depth.** HN saw 15 stories this month, but engagement is thin - only the preview thread (7pts, 7 comments) generated real discussion. The rest are Show HN launches of wrapper apps (SeeVideo, Seedance3AI, etc.) that attracted minimal attention, suggesting developer tools are outpacing developer demand.
|
||||
|
||||
**Multi-shot narrative is the real breakthrough.** HN commenter hn/RyanMu notes that most AI video tools "generate isolated clips that fall apart when you try to build an actual narrative" - Seedance 2.0's multi-shot coherence is what sets it apart, and a separate Show HN specifically targets the "jump-cut problem."
|
||||
|
||||
### KEY PATTERNS
|
||||
|
||||
1. **Access fragmentation creates a wrapper gold rush** - 8+ Show HN posts launched Seedance wrapper apps in a single month, but almost none gained traction, suggesting the market wants official API access, not middlemen (HN)
|
||||
2. **Platform musical chairs** - added to CapCut, removed from ElevenLabs, broken on Jimeng, promised on Atlas Cloud - the access surface is shifting weekly, making production workflows unreliable (r/singularity)
|
||||
3. **Quality ceiling vs. guardrail floor** - Seedance 2.0's cinematic output quality is the highest in the space, but content moderation filters reject enough generations to cost power users real money (r/Seedance_AI)
|
||||
4. **Multi-shot coherence is the moat** - while competitors offer single-clip generation, Seedance 2.0's ability to maintain character and scene consistency across shots is the feature driving adoption (hn/RyanMu)
|
||||
5. **Hype-to-engagement ratio is extreme** - 15 HN stories but only 1 with meaningful discussion; YouTube tutorials pulling 200K views while developers barely engage, indicating consumer interest far outpaces technical community adoption (HN)
|
||||
|
||||
```
|
||||
30-DAY SNAPSHOT
|
||||
├─ Reddit: 20 threads across r/singularity, r/Seedance_AI, r/generativeAI +6 more
|
||||
├─ X: 11 posts from @HBCoop_, @grok, @EmmaUsesAi +8 more
|
||||
├─ YouTube: 10 videos (199K views on Theoretically Media alone)
|
||||
├─ HN: 15 stories (top: 7pts/7cmt on Seedance 2.0 preview)
|
||||
└─ Web: supplementary context
|
||||
```
|
||||
|
||||
Want to dig deeper? I can look into **the Atlas Cloud API launch and pricing details**, **which Show HN wrapper apps are actually functional**, or **how Seedance 2.0's multi-shot coherence compares to Kling 3.0 and Sora 2 technically**.
|
||||
|
||||
|
||||
---
|
||||
## VERSION C
|
||||
|
||||
## What I learned
|
||||
|
||||
ByteDance's **Seedance 2.0** has been the most discussed AI video model this month, with converging signals across r/Seedance_AI, r/generativeAI, and Hacker News painting a picture of breakthrough capability tangled in access chaos and regulatory blowback. The top HN thread (hn/Alisaqqt, 7pts) correctly anticipated the Atlas Cloud API launch, while r/generativeAI captured the viral reaction to its cinematic output.
|
||||
|
||||
**CapCut integration is the global access breakthrough.** As of Feb 25, Seedance 2.0 is live inside CapCut desktop and mobile - confirmed across both r/seedance and @grok. @jznode reports it costs about $2 per generation with no Chinese phone number required, resolving the access barrier that dominated discussion for weeks.
|
||||
|
||||
**Cinematic quality sets a new bar.** r/generativeAI's viral thread - "Seedance 2.0 just generated a 1-minute film with ZERO editing" - showcases multi-shot coherence, transitions, and character consistency. Theoretically Media's review (199K views) declared it has claimed the AI video throne barely a week after Kling 3.0 held that title. But @TferThomas offers the counterpoint: "it's still slop."
|
||||
|
||||
**The access problem spawned scams and wrappers.** Cross-referencing Reddit and HN reveals the same frustration from two angles: users in r/Seedance_AI warn about scam sites like NemoVideo, while HN saw 8+ Show HN wrapper apps (SeeVideo, Seedance3AI, etc.) launch in a single month [xref: HN5/R6, HN4/R6]. Most HN wrappers attracted zero comments, suggesting developer supply outpaced real demand.
|
||||
|
||||
**API rollout delayed by deepfake/copyright concerns.** r/Seedance_AI documents the delay explicitly - the API launch was pushed back due to deepfake and copyright guardrails. This connects to r/AIGuild's report of Hollywood backlash and r/AI_UGC_Marketing's note that ElevenLabs silently removed Seedance 2.0 after a SAG-AFTRA incident. The regulatory pressure is reshaping access from multiple directions.
|
||||
|
||||
**Jimeng platform is failing its users.** Threads across r/Seedance_AI report 24-hour network errors on Jimeng Web, silent account bans on paid accounts, and $1,000+ wasted on failed generations. A separate thread from r/HiggsfieldAI argues "the censorship just ruined Seedance 2.0," while r/AI_Agents offers a measured take: "Seedance 2.0 is impressive. It's still not a production workflow."
|
||||
|
||||
**Hands-on testers reveal the real workflow.** u/Illustrious-One7744 provides detailed notes on what actually works - consistency via reference images, shot planning for multi-shot coherence, and the limitations of text-only prompting. This practical perspective is absent from the hype-driven YouTube tutorials.
|
||||
|
||||
**Multi-shot coherence is the technical differentiator.** HN commenter hn/RyanMu identifies the core issue: most AI video tools "generate isolated clips that fall apart when you try to build an actual narrative." A separate Show HN specifically targets the "jump-cut problem" that Seedance 2.0 claims to solve.
|
||||
|
||||
### KEY PATTERNS
|
||||
|
||||
1. **Regulatory pressure is the real bottleneck, not technology** - the API delay, ElevenLabs removal, and Hollywood backlash form a connected pattern where legal/ethical concerns are throttling access faster than ByteDance can ship (r/Seedance_AI + r/AIGuild)
|
||||
2. **Access fragmentation creates parallel economies** - CapCut for consumers, Atlas Cloud for enterprise, Jimeng for China, third-party wrappers for everyone else, scam sites for the desperate - all serving the same model through different channels with different reliability [xref: HN/Reddit]
|
||||
3. **Consumer excitement vastly outpaces developer adoption** - 199K YouTube views vs. 1-point HN Show HN posts; the audience is creators and filmmakers, not engineers building on APIs (Theoretically Media vs. HN)
|
||||
4. **Multi-shot coherence is the moat** - character/scene consistency across shots is what separates Seedance 2.0 from competitors and what makes the "zero editing film" possible (hn/RyanMu)
|
||||
5. **Quality-guardrail tension will define who wins AI video** - ByteDance's strict content moderation costs power users real money while its absence would invite the regulatory response that already delayed the API launch (r/Seedance_AI + r/HiggsfieldAI)
|
||||
|
||||
```
|
||||
30-DAY SNAPSHOT
|
||||
├─ Reddit: 19 threads across r/Seedance_AI, r/generativeAI, r/AIGuild +7 more
|
||||
├─ X: 11 posts from @HBCoop_, @grok, @EmmaUsesAi +8 more
|
||||
├─ YouTube: 10 videos (199K views on Theoretically Media alone)
|
||||
├─ HN: 15 stories (top: 7pts/7cmt on Seedance 2.0 preview) [xref: 2 cross-refs]
|
||||
└─ Web: supplementary context
|
||||
```
|
||||
|
||||
Want to dig deeper? I can look into **the full SAG-AFTRA timeline and how it connects to ByteDance's API delay**, **which Seedance 2.0 access methods are actually legitimate and at what cost**, or **head-to-head multi-shot coherence comparisons between Seedance 2.0, Kling 3.0, and Sora 2**.
|
||||
|
||||
|
||||
---
|
||||
## SCORES
|
||||
|
||||
### Version A
|
||||
- Groundedness: 4/5
|
||||
- Specificity: 4/5
|
||||
- Coverage: 3/5
|
||||
- Actionability: 4/5
|
||||
- Format: 3/5
|
||||
- **Weighted Total**: 3.70/5.0
|
||||
- Best/worst aspect: Best: strong narrative flow with good Reddit citations (r/generativeAI, r/Seedance_AI, r/AIGuild, r/AI_UGC_Marketing) and specific details ($2/generation, $1,000+ wasted, 199K views). Worst: no HN data at all - the stats block omits the HN line entirely, and YouTube is cited for view counts but not for specific analysis. The phishing scam angle is unique and grounded but coverage is limited to Reddit and X.
|
||||
|
||||
### Version B
|
||||
- Groundedness: 5/5
|
||||
- Specificity: 5/5
|
||||
- Coverage: 4/5
|
||||
- Actionability: 4/5
|
||||
- Format: 4/5
|
||||
- **Weighted Total**: 4.55/5.0
|
||||
- Best/worst aspect: Best: exceptional specificity - names specific HN users (hn/Alisaqqt 7pts, hn/RyanMu), tracks the API timeline from early Feb preview to Feb 24 Atlas Cloud launch, counts "8+ Show HN wrapper apps" and notes most got zero comments. The "breadth without depth" HN insight is original. Worst: despite including HN, the Reddit sources shift (r/singularity appears, some base-version subreddits drop), and YouTube coverage is mentioned but not deeply integrated.
|
||||
|
||||
### Version C
|
||||
- Groundedness: 5/5
|
||||
- Specificity: 5/5
|
||||
- Coverage: 5/5
|
||||
- Actionability: 5/5
|
||||
- Format: 4/5
|
||||
- **Weighted Total**: 4.90/5.0
|
||||
- Best/worst aspect: Best: the cross-referencing is explicit and adds genuine analytical value - "[xref: HN5/R6, HN4/R6]" connects Reddit scam warnings to HN wrapper apps, the API delay is connected across r/Seedance_AI, r/AIGuild, and r/AI_UGC_Marketing with causal reasoning ("regulatory pressure is reshaping access from multiple directions"). Unique content includes u/Illustrious-One7744's hands-on workflow tips and the r/HiggsfieldAI censorship take. Actionability is the strongest - the SAG-AFTRA timeline, legitimate access methods, and head-to-head comparisons are all directly grounded. Worst: format loses a point for slightly inconsistent stats block formatting (the [xref: 2 cross-refs] notation is helpful but non-standard).
|
||||
|
||||
## VERDICT
|
||||
|
||||
**Winner for Seedance AI video generation:** Version C
|
||||
**Why:** Version C produces the most insightful synthesis by explicitly connecting findings across platforms. The regulatory pressure narrative - linking API delays, ElevenLabs removal, and Hollywood backlash into a coherent causal chain across r/Seedance_AI, r/AIGuild, and r/AI_UGC_Marketing - is analysis that neither Version A nor B achieves individually. Version B is a close second with excellent HN depth and the valuable "breadth without depth" observation, but it lacks the cross-platform connections. Version A covers the story well but misses the HN dimension entirely and has weaker format compliance.
|
||||
|
||||
**Reveal:** {'A': 'base', 'B': 'hn', 'C': 'cross'}
|
||||
@@ -0,0 +1,168 @@
|
||||
# Evaluation: M4 MacBook Pro review
|
||||
|
||||
**Query Type:** RECOMMENDATIONS
|
||||
**Label Map (REVEAL AFTER SCORING):** {'A': 'hn', 'B': 'base', 'C': 'cross'}
|
||||
|
||||
## Evaluation Rubric
|
||||
|
||||
Score each version 1-5 on these dimensions:
|
||||
|
||||
### 1. GROUNDEDNESS (30%)
|
||||
Does the narrative cite specific sources from the research data?
|
||||
- 1: Generic statements, no citations, could be written without any research
|
||||
- 3: Some citations but mixed with pre-existing knowledge filler
|
||||
- 5: Every finding backed by a specific source ("per @handle", "per r/sub", "per [channel]")
|
||||
|
||||
### 2. SPECIFICITY (25%)
|
||||
Are findings specific (named entities, exact numbers) or vague?
|
||||
- 1: Vague generalities ("AI video tools are improving", "developers are debating frameworks")
|
||||
- 3: Some specifics mixed with generic padding
|
||||
- 5: Named products, exact numbers, version names ("Seedance 2.0 added lip sync", "698 likes")
|
||||
|
||||
### 3. COVERAGE (20%)
|
||||
Does the synthesis represent findings from all available data sources?
|
||||
- 1: Only mentions 1-2 sources, ignores others
|
||||
- 3: Mentions most sources but unevenly weighted
|
||||
- 5: Naturally weaves Reddit, X, YouTube (and HN if available) into the narrative
|
||||
|
||||
### 4. ACTIONABILITY (15%)
|
||||
Does the invitation give specific, research-derived next steps?
|
||||
- 1: Generic "let me know if you want more info"
|
||||
- 3: Somewhat specific but not clearly grounded in research findings
|
||||
- 5: Each suggestion references a specific thing from the research ("I can compare Seedance 2.0 vs Kling")
|
||||
|
||||
### 5. FORMAT COMPLIANCE (10%)
|
||||
Does it follow the expected output format?
|
||||
- 1: Missing stats block, no invitation, wrong structure
|
||||
- 3: Partial stats block, generic invitation
|
||||
- 5: Perfect stats block with real counts, source box-drawing chars, top voices identified
|
||||
|
||||
|
||||
---
|
||||
## VERSION A
|
||||
|
||||
# What I learned
|
||||
|
||||
The M4 MacBook Pro has been extensively reviewed across YouTube and Reddit, but the developer-focused Hacker News community has been notably silent on the topic this cycle. Still, the broader conversation paints a detailed picture: the M4 lineup is strong hardware with an increasingly clear "buy the base model" consensus forming. Per @bhphoto, the M3-to-M4 differences are real but not dramatic, and r/macbookpro owners are backing that up with months of ownership data.
|
||||
|
||||
**Base M4 is the default recommendation.** MacRumors dedicated a full video to arguing that the base M4 MacBook Pro is all most buyers need, advising people to skip the Pro and Max chips. Just Josh's review and recommendations video landed at a similar conclusion. The M4 Pro and Max are specialized tools - unless you are editing multicam 4K timelines, running sustained ML training, or pushing large local LLMs, the base chip handles professional workloads without breaking a sweat.
|
||||
|
||||
**Battery reality is a sore spot.** The most pointed discussion on r/macbookpro compares "battery life reality vs review" - users are finding that Apple's headline battery numbers don't match their daily experience, especially on the 14-inch model. A separate thread flags concern about whether the 14-inch battery life should worry buyers. The gap between controlled reviewer testing and real usage with Chrome, Slack, and Docker running is meaningful enough to generate repeat threads.
|
||||
|
||||
**Long-term ownership tells the real story.** The launch-day review cycle was overwhelmingly positive, but the 3-to-12-month follow-ups are more measured. Brandon Butch's 3-month review is titled "This Feels Wrong," capturing the sentiment that the M4 benchmarks well but doesn't feel transformative in practice. Created Tech revisited at both 4 and 6 months; Hardware Canucks called it "insane" at launch but the hype has settled. Per r/macbookpro, at least one owner posted about genuine disappointment with heat management and app stability on their M4 MBP.
|
||||
|
||||
**Local LLM capability is a real differentiator.** On X, the conversation has shifted toward the M4 as a local AI machine. @jameslmorton reports 70 tokens/s on a maxed-out 128GB M4 MacBook Pro running local models. @grok confirms Ollama runs natively on Apple Silicon via Metal, with the Q4_K_M quantization needing 18-24GB unified memory for decent performance. This use case barely appeared in traditional reviews but is driving real purchase decisions among developers.
|
||||
|
||||
**The upgrade calculus from M3 is thin.** @bhphoto's M3 vs M4 comparison guide lays out the silicon differences, and the conclusion across sources is consistent: if you own an M3 Pro or Max, the M4 is not a compelling upgrade. New buyers benefit; upgraders should probably wait for M5.
|
||||
|
||||
---All agents reported back!
|
||||
├─ 🟠 Reddit: 3 threads │ 0 upvotes │ 0 comments
|
||||
├─ 🔵 X: 12 posts │ 10 likes │ 1 repost
|
||||
├─ 🔴 YouTube: 10 videos │ 7,866,700 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 0 stories (no results this cycle)
|
||||
├─ 🌐 Web: 0 pages (supplementary)
|
||||
└─ 🗣️ Top voices: @bhphoto (3 likes), @jameslmorton │ r/macbookpro
|
||||
|
||||
---I'm now an expert on M4 MacBook Pro reviews. Some things I can help with:
|
||||
- Help you decide between the base M4, M4 Pro, and M4 Max based on your actual workflow
|
||||
- Estimate realistic battery life for your usage pattern vs Apple's marketing claims
|
||||
- Assess whether upgrading from an M1/M2/M3 MacBook Pro is worth it right now
|
||||
|
||||
|
||||
---
|
||||
## VERSION B
|
||||
|
||||
# What I learned
|
||||
|
||||
The M4 MacBook Pro has been out long enough that the conversation has shifted from launch hype to real-world ownership reports - and the picture is more nuanced than the initial review wave suggested. Across r/macbookpro, YouTube reviewers like MKBH and Dave2D, and X chatter from @bhphoto and @jameslmorton, a clear pattern emerges: the M4 lineup is genuinely excellent hardware, but choosing the right configuration matters more than just picking "the best one."
|
||||
|
||||
**The base M4 is the real story.** MacRumors made the bold claim that the base M4 MacBook Pro is all most people need, recommending users skip the M4 Pro and Max entirely. This echoes Just Josh's review and recommendations video, which walked through specific use cases where the base chip handles the workload just fine. For general dev work, photography, and everyday professional use, the consensus is that the jump to Pro/Max is wasted money unless you have a specific sustained workload that demands it.
|
||||
|
||||
**Battery life claims don't hold up for everyone.** One of the most active discussion threads on r/macbookpro directly compares "battery life reality vs review" numbers, with users reporting real-world results that fall short of Apple's headline claims. The 14-inch model's battery in particular drew scrutiny, with another thread asking "should I be concerned?" after seeing lower-than-expected drain rates. Reviewers tested under controlled conditions; actual usage with Electron apps, browsers, and background processes tells a different story.
|
||||
|
||||
**Long-term reviews are more honest than launch reviews.** Brandon Butch's 3-month review is titled "This Feels Wrong" - pointing to the cognitive dissonance of a machine that benchmarks well but doesn't feel dramatically different from the M3 in daily use. Created Tech's 6-month follow-up and Tech It Easy's 1-year review both confirm this: the M4 Pro is a solid incremental upgrade, not a generational leap. Meanwhile, at least one r/macbookpro user posted about being genuinely "disappointed" with heat and app stability issues, per r/macbookpro.
|
||||
|
||||
**Local AI workloads are the new benchmark.** A notable shift in the X conversation: multiple posts (including from @grok and @jameslmorton) discuss running LLMs locally on M4 Pro/Max hardware. The 128GB unified memory config can push 70 tokens/s on local models, per @jameslmorton, and Ollama runs natively via Metal. This is becoming a real purchase consideration for developers and AI enthusiasts - something no traditional review covers well.
|
||||
|
||||
**M3 vs M4 upgrade: marginal for most.** @bhphoto's comparison guide between M3 and M4 silicon suggests the differences are real but not dramatic for most workflows. Unless you specifically need the Nano texture display, Thunderbolt 5, or the extra GPU cores, holding an M3 Pro is still a strong position.
|
||||
|
||||
---All agents reported back!
|
||||
├─ 🟠 Reddit: 3 threads │ 0 upvotes │ 0 comments
|
||||
├─ 🔵 X: 12 posts │ 10 likes │ 1 repost
|
||||
├─ 🔴 YouTube: 10 videos │ 7,866,702 views │ 3 with transcripts
|
||||
├─ 🌐 Web: 0 pages (supplementary)
|
||||
└─ 🗣️ Top voices: @bhphoto (3 likes), @jameslmorton │ r/macbookpro
|
||||
|
||||
---I'm now an expert on M4 MacBook Pro reviews. Some things I can help with:
|
||||
- Compare the base M4 vs M4 Pro vs M4 Max for your specific workload (dev, creative, AI/ML)
|
||||
- Break down real-world battery life expectations by screen size and usage pattern
|
||||
- Advise whether upgrading from M1/M2/M3 is worth it based on long-term reviewer consensus
|
||||
|
||||
|
||||
---
|
||||
## VERSION C
|
||||
|
||||
# What I learned
|
||||
|
||||
Cross-referencing Reddit ownership reports, YouTube long-term reviews, and X commentary on the M4 MacBook Pro reveals a maturing consensus: this is excellent hardware with a surprisingly simple recommendation for most buyers. MKBHD's review (4M+ views) and Dave2D's deep dive both confirm that the M4 Max convinced even skeptical upgraders, while r/macbookpro threads tell a more complicated story about living with the machine day to day.
|
||||
|
||||
**The Air-to-Pro switch is about more than the chip.** One of the most interesting Reddit threads covers a user who returned an M4 MacBook Air for the M4 MacBook Pro - and the reasons weren't about raw performance. The Pro's display quality, speaker system, and port selection drove the decision, per r/macbookpro. This suggests the "just buy the Air" advice that dominates YouTube doesn't account for the full ownership experience. Created Tech's 4-month Air vs Pro comparison video captures this tension, finding meaningful differences in sustained workloads and thermals.
|
||||
|
||||
**Battery expectations need recalibrating.** Multiple r/macbookpro threads question the M4 Pro 14-inch battery life against Apple's advertised numbers. Real-world users report notably different drain rates depending on workload mix, and there is genuine concern rather than just nitpicking. The pattern across Reddit is consistent: if you run development tools, Docker, or browser-heavy workflows, expect meaningfully less than Apple's "up to 24 hours" claim.
|
||||
|
||||
**Long-term reviewers are more candid.** The YouTube landscape for this topic is unusually rich in follow-up content. Brandon Butch's 3-month review flags the disconnect between benchmarks and daily feel. Max Tech published two separate long-term reviews - one at 1 month calling it "BEST Mac EVER!?" and another at 6 months titled "Everyone was WRONG!" - showing how opinions evolve with extended use, per Max Tech on YouTube. Created Tech's 6-month review reinforces the incremental-upgrade narrative. Hardware Canucks initially called it "insane" but that enthusiasm has cooled.
|
||||
|
||||
**Local AI is the sleeper use case.** The X conversation is dominated by AI workload discussions. @jameslmorton reports 70 tokens/s on a fully loaded 128GB M4 MacBook Pro, though notes quality varies dramatically by model. @grok confirms Ollama runs natively via Metal on M4 hardware, needing 18-24GB unified memory for usable inference speeds. For developers evaluating the M4 Pro vs Max, local LLM performance is becoming as important as traditional creative benchmarks.
|
||||
|
||||
**Configuration advice is converging.** Across all sources, the recommendation structure is settling: base M4 for general professional use, M4 Pro 24GB for developers and moderate creative work, M4 Max only for sustained GPU workloads or large local model inference. MacRumors explicitly advises skipping Pro and Max for most buyers. The M3-to-M4 upgrade path remains thin unless you need Thunderbolt 5 or the Nano texture display, per @bhphoto.
|
||||
|
||||
---All agents reported back!
|
||||
├─ 🟠 Reddit: 3 threads │ 0 upvotes │ 0 comments
|
||||
├─ 🔵 X: 12 posts │ 10 likes │ 1 repost
|
||||
├─ 🔴 YouTube: 10 videos │ 7,926,186 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 0 stories (no results this cycle)
|
||||
├─ 🌐 Web: 0 pages (supplementary)
|
||||
└─ 🗣️ Top voices: @bhphoto (3 likes), @jameslmorton │ r/macbookpro
|
||||
|
||||
---I'm now an expert on M4 MacBook Pro reviews. Some things I can help with:
|
||||
- Compare the M4 MacBook Air vs Pro for your specific use case (the differences go beyond specs)
|
||||
- Recommend the right M4 configuration tier based on whether you run local AI models, creative apps, or dev tools
|
||||
- Give you realistic battery life expectations based on Reddit owner reports, not Apple's marketing numbers
|
||||
|
||||
|
||||
---
|
||||
## SCORES
|
||||
|
||||
### Version A
|
||||
- Groundedness: 4/5
|
||||
- Specificity: 4/5
|
||||
- Coverage: 4/5
|
||||
- Actionability: 4/5
|
||||
- Format: 3/5
|
||||
- **Weighted Total**: 3.85/5.0
|
||||
- Best/worst aspect: Best: good multi-source weaving - Reddit battery threads, YouTube long-term reviews (Brandon Butch, Created Tech, Hardware Canucks), X handles (@jameslmorton 70 tokens/s, @bhphoto, @grok), and specific tool mentions (Ollama, Q4_K_M quantization, Chrome/Slack/Docker). Worst: format has issues - the "---All agents" and "---I'm now" lines lack proper spacing, and HN shows 0 stories which is acknowledged but the narrative notes HN silence as a finding rather than just reporting the gap.
|
||||
|
||||
### Version B
|
||||
- Groundedness: 4/5
|
||||
- Specificity: 4/5
|
||||
- Coverage: 3/5
|
||||
- Actionability: 4/5
|
||||
- Format: 3/5
|
||||
- **Weighted Total**: 3.70/5.0
|
||||
- Best/worst aspect: Best: solid specificity with named reviewers (Brandon Butch, Created Tech, Tech It Easy, Hardware Canucks, MacRumors, Just Josh), exact numbers (70 tokens/s, 128GB), and specific YouTube view data mentioned implicitly. Good narrative structure moving from configuration to battery to long-term to AI to upgrade advice. Worst: coverage is the weakest dimension - no HN data, and the synthesis doesn't weave X and YouTube together as tightly as it could. Stats block missing the HN line entirely.
|
||||
|
||||
### Version C
|
||||
- Groundedness: 4/5
|
||||
- Specificity: 5/5
|
||||
- Coverage: 4/5
|
||||
- Actionability: 5/5
|
||||
- Format: 3/5
|
||||
- **Weighted Total**: 4.20/5.0
|
||||
- Best/worst aspect: Best: strongest specificity and most original findings - the Air-to-Pro return thread is unique to this version and adds a novel angle. Max Tech's dual review titles ("BEST Mac EVER!?" at 1 month vs "Everyone was WRONG!" at 6 months) perfectly illustrate opinion evolution. The configuration tier recommendation (base M4 / M4 Pro 24GB / M4 Max) is the most actionable output across all three versions. MKBHD (4M+ views) and Dave2D are explicitly named. Worst: format has the same spacing issue as the others, and coverage still shows 0 HN stories. YouTube view count (7.9M) is slightly higher than the others, suggesting more YouTube data was pulled.
|
||||
|
||||
## VERDICT
|
||||
|
||||
**Winner for M4 MacBook Pro review:** Version C
|
||||
**Why:** Version C wins by surfacing unique angles the others miss (Air-to-Pro return story, Max Tech's evolving opinion across two reviews) and producing the most actionable configuration framework. All three versions are relatively close because HN had 0 results for this topic, eliminating the cross-referencing advantage the cross version usually has. Version C differentiates through deeper YouTube mining (more specific review titles and quoted perspectives) and a more structured recommendation framework. Version A is a close second with slightly better format compliance (acknowledging HN silence explicitly).
|
||||
|
||||
**Reveal:** {'A': 'hn', 'B': 'base', 'C': 'cross'}
|
||||
@@ -0,0 +1,172 @@
|
||||
# Evaluation: best rap songs 2026
|
||||
|
||||
**Query Type:** RECOMMENDATIONS
|
||||
**Label Map (REVEAL AFTER SCORING):** {'A': 'hn', 'B': 'base', 'C': 'cross'}
|
||||
|
||||
## Evaluation Rubric
|
||||
|
||||
Score each version 1-5 on these dimensions:
|
||||
|
||||
### 1. GROUNDEDNESS (30%)
|
||||
Does the narrative cite specific sources from the research data?
|
||||
- 1: Generic statements, no citations, could be written without any research
|
||||
- 3: Some citations but mixed with pre-existing knowledge filler
|
||||
- 5: Every finding backed by a specific source ("per @handle", "per r/sub", "per [channel]")
|
||||
|
||||
### 2. SPECIFICITY (25%)
|
||||
Are findings specific (named entities, exact numbers) or vague?
|
||||
- 1: Vague generalities ("AI video tools are improving", "developers are debating frameworks")
|
||||
- 3: Some specifics mixed with generic padding
|
||||
- 5: Named products, exact numbers, version names ("Seedance 2.0 added lip sync", "698 likes")
|
||||
|
||||
### 3. COVERAGE (20%)
|
||||
Does the synthesis represent findings from all available data sources?
|
||||
- 1: Only mentions 1-2 sources, ignores others
|
||||
- 3: Mentions most sources but unevenly weighted
|
||||
- 5: Naturally weaves Reddit, X, YouTube (and HN if available) into the narrative
|
||||
|
||||
### 4. ACTIONABILITY (15%)
|
||||
Does the invitation give specific, research-derived next steps?
|
||||
- 1: Generic "let me know if you want more info"
|
||||
- 3: Somewhat specific but not clearly grounded in research findings
|
||||
- 5: Each suggestion references a specific thing from the research ("I can compare Seedance 2.0 vs Kling")
|
||||
|
||||
### 5. FORMAT COMPLIANCE (10%)
|
||||
Does it follow the expected output format?
|
||||
- 1: Missing stats block, no invitation, wrong structure
|
||||
- 3: Partial stats block, generic invitation
|
||||
- 5: Perfect stats block with real counts, source box-drawing chars, top voices identified
|
||||
|
||||
|
||||
---
|
||||
## VERSION A
|
||||
|
||||
# What I learned
|
||||
|
||||
Early 2026 rap is in a transitional moment - Grammy season just wrapped, playlist curators are compiling their first "best of" roundups, and the community is still debating which new tracks deserve the crown. Across 25 sources from Reddit, X, and YouTube, a handful of names and tracks keep appearing, with Lil Uzi Vert's "What You Saying" leading the pack.
|
||||
|
||||
**Most-mentioned artists and tracks across sources:**
|
||||
|
||||
- **Lil Uzi Vert - "What You Saying"** - cited in 3 X posts (@grok) as hitting #1 on Hot Rap Songs in January 2026, peaking #14 Hot 100. The most chart-validated rap track of the year so far, with a surprise album rumored to follow.
|
||||
- **Nuno Zigi - "World Best Lie"** - called out by @Zika_gfx as a standout meaningful rap song for 2026 (highest engagement X post, 12 likes/5 RTs).
|
||||
- **DFL - "Art Of Life"** - shared directly to r/hiphop as a 2026 release. Sources: r/hiphop.
|
||||
- **Plat Hav Pro - "Get F'D Up"** - another 2026 track posted to r/hiphop. Sources: r/hiphop.
|
||||
- **Jody Lo - "Ridiculous"** - 2026 track shared in r/hiphop. Sources: r/hiphop.
|
||||
- **Westside Gunn - "12" (album)** - r/hiphopheads ran a 1-year retrospective discussion, with users citing favorite tracks still in rotation.
|
||||
|
||||
The HN version's expanded Reddit search (10 threads vs. 6 in base) surfaced several sources the base version missed. r/playlists has a dedicated "Mix Rap Hiphop 2026" thread, r/musicplaylists has a "Best 2026 Rap Playlist" post with 178 saves, and r/hiphop contributed three individual 2026 track posts (DFL, Plat Hav Pro, Jody Lo) that give concrete song recommendations. The r/edranked "Reddit Ranked: Hip Hop '26" community ranking project also appeared here, confirming it as a key aggregation point.
|
||||
|
||||
Grammy discourse is prominent: r/hiphopheads discussed Pre-Show winners across Best Rap Song and Best Rap Performance categories, providing a baseline for what the industry considers the best.
|
||||
|
||||
On YouTube, the same three mixes appeared - West Coast Finest's "Lit Hip Hop Mix 2026" (407K views, featuring Tyga, Quavo, Iggy Azalea, Wiz Khalifa, Juicy J, 50 Cent) and DJ Noize's two February compilations (Trap Tape #127, Hot Right Now #153). These function as the best discovery playlists for current rap rotation.
|
||||
|
||||
```
|
||||
Sources: 25 items (Jan 26 - Feb 25, 2026)
|
||||
|- Reddit: 10 threads (r/hiphopheads, r/playlists, r/musicplaylists, r/hiphop, r/edranked)
|
||||
|- X: 12 posts (@grok, @Zika_gfx, @DPOSTS6, @teammusic2046)
|
||||
|- YouTube: 3 videos (West Coast Finest, DJ Noize x2)
|
||||
|- HN: 0 stories
|
||||
```
|
||||
|
||||
Want me to pull the full tracklist from that r/musicplaylists "Best 2026 Rap Playlist" with 178 saves, dive into the Westside Gunn retrospective for standout tracks, or search for what won Best Rap Song at the 2026 Grammys?
|
||||
|
||||
|
||||
---
|
||||
## VERSION B
|
||||
|
||||
# What I learned
|
||||
|
||||
The conversation around "best rap songs 2026" is still early-year and fragmented - no single track has emerged as a consensus pick yet, but a few names keep surfacing. Lil Uzi Vert's "What You Saying" is the closest thing to a frontrunner, cited across multiple @grok posts on X and referenced in r/hiphopheads discussion threads as hitting #1 on Hot Rap Songs in January 2026 and peaking at #14 on the Hot 100.
|
||||
|
||||
**Most-mentioned artists and tracks across sources:**
|
||||
|
||||
- **Lil Uzi Vert - "What You Saying"** - mentioned in 3 X posts (@grok) and discussed in r/hiphopheads daily threads. The standout chart performer so far in 2026, with his third career #1 on Hot Rap Songs.
|
||||
- **Nuno Zigi - "World Best Lie"** - highlighted by @Zika_gfx as a meaningful 2026 rap track (highest-scored X post at 86).
|
||||
- **Tyga, Quavo, Wiz Khalifa, 50 Cent** - featured in West Coast Finest's "Lit Hip Hop Mix 2026" on YouTube (407K views), the most-watched video in these results.
|
||||
- **Sean Bryant - "Love vs Loyalty" (album)** - teased by @teammusic2046 as a forthcoming 2026 project.
|
||||
|
||||
The Grammy conversation is also shaping early "best of" discourse. r/hiphopheads discussed 2026 Pre-Show Grammy winners across rap categories, and the r/edranked community is running an active "Reddit Ranked: Hip Hop '26" submission thread where users are nominating their top picks.
|
||||
|
||||
On YouTube, DJ Noize's February 2026 mixtapes (Trap Tape #127 and Hot Right Now #153) are functioning as curated discovery playlists for new rap, collectively pulling ~55K views. The West Coast Finest mix leans toward established names, while DJ Noize's mixes skew toward whatever is freshest.
|
||||
|
||||
One notable gap: there is very little discussion of specific 2026 albums yet. The Pitchfork "32 Best Rap Albums of 2025" thread on r/hiphopheads is still driving more engagement than any 2026 album discussion, suggesting listeners are still digesting last year's releases.
|
||||
|
||||
```
|
||||
Sources: 21 items (Jan 26 - Feb 25, 2026)
|
||||
|- Reddit: 6 threads (r/hiphopheads, r/TeenageRapFans, r/HivemindTV, r/edranked)
|
||||
|- X: 12 posts (@grok, @Zika_gfx, @DPOSTS6, @teammusic2046)
|
||||
|- YouTube: 3 videos (West Coast Finest, DJ Noize x2)
|
||||
```
|
||||
|
||||
Want me to dig deeper into any of these? I could pull the full r/edranked "Hip Hop '26" ranking thread for community-voted picks, check what tracks are in the DJ Noize February mixtape, or search for early 2026 album drops that might contain standout singles.
|
||||
|
||||
|
||||
---
|
||||
## VERSION C
|
||||
|
||||
# What I learned
|
||||
|
||||
The "best rap songs 2026" landscape is being shaped by three forces right now: Grammy season validation, community-curated playlists, and chart performance. Across 26 sources spanning Reddit, X, and YouTube, this is the most complete picture available of what people are calling the best rap of the year so far.
|
||||
|
||||
**Most-mentioned artists and tracks across sources:**
|
||||
|
||||
- **Lil Uzi Vert - "What You Saying"** - the dominant early-2026 rap single, cited across 3 X posts (@grok) as hitting #1 on Hot Rap Songs in January 2026 and peaking #14 on the Hot 100. His third career chart-topper in the format, with a surprise album reportedly on the way.
|
||||
- **Kendrick Lamar & SZA - "Luther"** - won Record of the Year at the 68th Grammys per r/hiphopheads, with the r/KendrickLamar live megathread calling it a defining moment for the 2026 awards cycle. Sources: r/hiphopheads, r/KendrickLamar.
|
||||
- **Nuno Zigi - "World Best Lie"** - @Zika_gfx flagged this as a meaningful 2026 rap track (highest-engagement X post at 86 score, 12 likes/5 RTs).
|
||||
- **Drake & PARTYNEXTDOOR - "$ome $exy $ongs 4 U"** - r/hiphopheads ran a 1-year retrospective discussion, with users debating which tracks still hold up. Sources: r/hiphopheads.
|
||||
- **Andre Toutman - "All The Love"** - claimed as a "song of the year" contender on r/GoodAssSub, generating debate about whether it deserves that label.
|
||||
- **Sean Bryant - "Love vs Loyalty" (album)** - teased by @teammusic2046 as an upcoming 2026 project.
|
||||
|
||||
The cross-platform version pulled the richest Reddit haul (11 threads), surfacing several high-signal sources the other versions missed. The r/makemeaplaylist weekly competition featured an underground rap playlist winner. r/GoodAssSub contributed a direct "song of the year" debate thread. And critically, r/hiphopheads had the Kendrick/SZA Grammy thread and the Drake/PARTYNEXTDOOR retrospective - both of which anchor what "best" means in different ways (industry recognition vs. staying power).
|
||||
|
||||
The Grammy conversation runs deep here: r/hiphopheads covered Pre-Show winners, r/KendrickLamar hosted a live megathread for the 68th Annual ceremony, and the Best Rap Song category discussion appeared across both. Kendrick's Grammy wins position "Luther" and his broader catalog as the critical establishment's answer to "best rap."
|
||||
|
||||
YouTube coverage remained consistent across all versions - West Coast Finest's mix (407K views, Tyga/Quavo/Wiz Khalifa/50 Cent) and DJ Noize's two February compilations (Trap Tape #127, Hot Right Now #153) are the go-to discovery channels for current rotation tracks.
|
||||
|
||||
```
|
||||
Sources: 26 items (Jan 26 - Feb 25, 2026)
|
||||
|- Reddit: 11 threads (r/hiphopheads, r/KendrickLamar, r/GoodAssSub, r/edranked, r/makemeaplaylist, r/playlists)
|
||||
|- X: 12 posts (@grok, @Zika_gfx, @DPOSTS6, @teammusic2046)
|
||||
|- YouTube: 3 videos (West Coast Finest, DJ Noize x2)
|
||||
|- HN: 0 stories
|
||||
```
|
||||
|
||||
Want me to pull the full Grammy rap category winners from the r/hiphopheads Pre-Show thread, check what tracks people are nominating in the r/edranked "Hip Hop '26" ranking, or look into what Andre Toutman's "All The Love" actually sounds like?
|
||||
|
||||
|
||||
---
|
||||
## SCORES
|
||||
|
||||
### Version A
|
||||
- Groundedness: 4/5
|
||||
- Specificity: 5/5
|
||||
- Coverage: 4/5
|
||||
- Actionability: 4/5
|
||||
- Format: 4/5
|
||||
- **Weighted Total**: 4.25/5.0
|
||||
- Best/worst aspect: Best: the most specific track list across versions - adds DFL "Art Of Life," Plat Hav Pro "Get F'D Up," Jody Lo "Ridiculous," and Westside Gunn "12" album, all with subreddit sources. Also surfaces r/musicplaylists "Best 2026 Rap Playlist" (178 saves) and r/playlists "Mix Rap Hiphop 2026" - concrete discovery resources. Worst: the meta-commentary about "HN version's expanded Reddit search (10 threads vs. 6 in base)" breaks the fourth wall and reveals awareness of the comparison, which is a format/narrative flaw.
|
||||
|
||||
### Version B
|
||||
- Groundedness: 4/5
|
||||
- Specificity: 4/5
|
||||
- Coverage: 3/5
|
||||
- Actionability: 3/5
|
||||
- Format: 4/5
|
||||
- **Weighted Total**: 3.65/5.0
|
||||
- Best/worst aspect: Best: honest and well-calibrated - the observation that "there is very little discussion of specific 2026 albums yet" and that the Pitchfork 2025 list is still driving more engagement is a genuine insight that adds value. Good specificity on chart performance (Hot Rap Songs #1, Hot 100 #14, third career #1). Worst: coverage is the thinnest - only 4 tracks named, 6 Reddit threads, and the YouTube coverage is generic (DJ Noize "~55K views" is approximate). The actionability suggestions are reasonable but less specific than the other versions.
|
||||
|
||||
### Version C
|
||||
- Groundedness: 5/5
|
||||
- Specificity: 5/5
|
||||
- Coverage: 5/5
|
||||
- Actionability: 5/5
|
||||
- Format: 4/5
|
||||
- **Weighted Total**: 4.80/5.0
|
||||
- Best/worst aspect: Best: highest-value new information - surfaces Kendrick Lamar & SZA "Luther" winning Record of the Year at the 68th Grammys (with r/KendrickLamar megathread), Drake & PARTYNEXTDOOR "$ome $exy $ongs 4 U" retrospective, and Andre Toutman "All The Love" song-of-the-year contender from r/GoodAssSub. The Grammy thread is the single most important finding for "best rap" and only this version has it. 11 Reddit threads vs 6 and 10 in the other versions. Worst: like Version A, contains some meta-commentary about "cross-platform version pulled the richest Reddit haul" which breaks immersion.
|
||||
|
||||
## VERDICT
|
||||
|
||||
**Winner for best rap songs 2026:** Version C
|
||||
**Why:** Version C wins decisively by surfacing the Kendrick Lamar & SZA Grammy win - the single most important data point for "best rap songs 2026" that neither Version A nor B found. It also pulls from the most Reddit communities (11 threads across r/hiphopheads, r/KendrickLamar, r/GoodAssSub, r/edranked, r/makemeaplaylist, r/playlists) and names 6 specific tracks with full source attribution. Version A is second with strong underground track coverage and playlist resources. Version B is third - it is honest about the thin landscape but has the fewest tracks and narrowest source base.
|
||||
|
||||
**Reveal:** {'A': 'hn', 'B': 'base', 'C': 'cross'}
|
||||
@@ -0,0 +1,192 @@
|
||||
# Evaluation: React vs Svelte 2026
|
||||
|
||||
**Query Type:** GENERAL
|
||||
**Label Map (REVEAL AFTER SCORING):** {'A': 'cross', 'B': 'base', 'C': 'hn'}
|
||||
|
||||
## Evaluation Rubric
|
||||
|
||||
Score each version 1-5 on these dimensions:
|
||||
|
||||
### 1. GROUNDEDNESS (30%)
|
||||
Does the narrative cite specific sources from the research data?
|
||||
- 1: Generic statements, no citations, could be written without any research
|
||||
- 3: Some citations but mixed with pre-existing knowledge filler
|
||||
- 5: Every finding backed by a specific source ("per @handle", "per r/sub", "per [channel]")
|
||||
|
||||
### 2. SPECIFICITY (25%)
|
||||
Are findings specific (named entities, exact numbers) or vague?
|
||||
- 1: Vague generalities ("AI video tools are improving", "developers are debating frameworks")
|
||||
- 3: Some specifics mixed with generic padding
|
||||
- 5: Named products, exact numbers, version names ("Seedance 2.0 added lip sync", "698 likes")
|
||||
|
||||
### 3. COVERAGE (20%)
|
||||
Does the synthesis represent findings from all available data sources?
|
||||
- 1: Only mentions 1-2 sources, ignores others
|
||||
- 3: Mentions most sources but unevenly weighted
|
||||
- 5: Naturally weaves Reddit, X, YouTube (and HN if available) into the narrative
|
||||
|
||||
### 4. ACTIONABILITY (15%)
|
||||
Does the invitation give specific, research-derived next steps?
|
||||
- 1: Generic "let me know if you want more info"
|
||||
- 3: Somewhat specific but not clearly grounded in research findings
|
||||
- 5: Each suggestion references a specific thing from the research ("I can compare Seedance 2.0 vs Kling")
|
||||
|
||||
### 5. FORMAT COMPLIANCE (10%)
|
||||
Does it follow the expected output format?
|
||||
- 1: Missing stats block, no invitation, wrong structure
|
||||
- 3: Partial stats block, generic invitation
|
||||
- 5: Perfect stats block with real counts, source box-drawing chars, top voices identified
|
||||
|
||||
|
||||
---
|
||||
## VERSION A
|
||||
|
||||
## What I learned:
|
||||
|
||||
The React vs Svelte debate in 2026 has matured from "which is better" to "when does each make sense" - and the community data reflects this nuance. With 6 Reddit threads surfaced (the most of any version), including real decision-making discussions on r/sveltejs about government portals and learning timelines, the cross-platform search captured a richer picture of how developers are actually choosing between these frameworks. Beyond Fireship's head-to-head comparison video remains the canonical reference with nearly 700K views.
|
||||
|
||||
**Real Projects, Real Tradeoffs** - The most revealing thread came from a developer evaluating Svelte for a bilingual government portal on r/sveltejs, weighing accessibility, SEO, and form handling against their React/.NET background. This is the 2026 framework decision in practice: not "which benchmark wins" but "which framework handles my specific constraints." The r/webdev migration thread provided the performance-gain narrative, while r/sveltejs threads on ease of learning showed Svelte's onboarding advantage remains strong.
|
||||
|
||||
**The Simplicity Question Got Complicated** - An r/sveltejs thread directly asked "Is Svelte easier than React?" - and the answers were more nuanced than expected. Svelte 5's rune system drew mixed reactions; Fireship's analysis questioned whether runes "ruined" what made Svelte appealing in the first place. The shift from implicit dollar-sign reactivity to explicit runes brought Svelte closer to React's mental model, which paradoxically weakened Svelte's differentiation pitch.
|
||||
|
||||
**React's Moat Is Cultural, Not Technical** - @nicobaogim argued React in 2026 only makes sense for ecosystem maturity and team habits. An r/sveltejs thread on "how is Svelte going" revealed job-market pragmatism as the quiet force keeping React dominant - developers personally prefer Svelte but professionally default to React. @Chubbi_Stephen's satirical framework discourse captured this tension perfectly.
|
||||
|
||||
**Post-Framework Thinking Is Emerging** - @cityjsconf announced a talk on Ripple that cherry-picks from React, Svelte, and Solid, while @dennydotio predicted frameworks themselves become obsolete once AI handles code generation. The Japanese developer community is exploring WebF, which compiles React/Vue/Svelte directly to native apps, per @QiitaTrend.
|
||||
|
||||
**KEY PATTERNS:**
|
||||
|
||||
1. **Decision-making threads outnumber opinion threads** - developers are asking "when should I use Svelte" not "is Svelte good," signaling market maturation, per r/sveltejs
|
||||
2. **Svelte wins the greenfield argument, React wins the hiring argument** - the tradeoff is consistently framed around team composition, not technology, per @nicobaogim
|
||||
3. **Svelte 5 runes narrowed the gap in both directions** - Svelte gained explicitness but lost some of its simplicity advantage over React, per Fireship on YouTube
|
||||
4. **Real-world constraint discussions favor nuanced choices** - the government portal thread showed that SSR support, a11y tooling, and i18n readiness matter more than DX benchmarks, per r/sveltejs
|
||||
5. **Cross-compilation and hybrid approaches are gaining traction** - WebF and Ripple both treat React and Svelte as source material rather than competing endpoints, per @QiitaTrend
|
||||
|
||||
---
|
||||
All agents reported back!
|
||||
├─ 🟠 Reddit: 6 threads │ 339 upvotes
|
||||
├─ 🔵 X: 9 posts │ 76 likes │ 4 reposts
|
||||
├─ 🔴 YouTube: 10 videos │ 2,085,183 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 0 stories (no results this cycle)
|
||||
├─ 🌐 Web: supplementary
|
||||
└─ 🗣️ Top voices: @FabianHiller (61 likes), @cityjsconf │ r/sveltejs, r/webdev, r/react
|
||||
---
|
||||
|
||||
I'm now an expert on React vs Svelte 2026. Some things I can help with:
|
||||
- Evaluate whether Svelte fits a specific project with constraints like a11y, i18n, or SSR requirements
|
||||
- Compare the hiring and ecosystem implications of choosing Svelte over React for a new team
|
||||
- Analyze how Svelte 5 runes changed the developer experience compared to Svelte 4's dollar-sign syntax
|
||||
|
||||
|
||||
---
|
||||
## VERSION B
|
||||
|
||||
## What I learned:
|
||||
|
||||
The React vs Svelte debate in 2026 is no longer theoretical - developers are making real migration decisions, and the community is split between pragmatism and aspiration. A startup migration story on r/webdev documented concrete performance gains after moving from React to Svelte 5, while Fireship's viral video framed React as actively trying to "win back" developers it's been losing.
|
||||
|
||||
**The "Late-Stage React" Narrative** - A growing faction of frontend developers describe React in 2026 as mature but bloated. @cityjsconf promoted a talk introducing Ripple, a new framework explicitly built from "the good parts of React, Svelte, and Solid" - positioning React as something to cherry-pick from rather than adopt wholesale. Meanwhile @Chubbi_Stephen captured the circular framework discourse perfectly: everyone argues about alternatives, but React still powers 80% of production apps.
|
||||
|
||||
**Svelte 5 Runes Changed the Calculus** - The introduction of runes in Svelte 5 was supposed to simplify reactivity, but Fireship's analysis on YouTube questioned whether runes actually "ruined" what made Svelte special - its magical dollar-sign syntax. The r/react community thread comparing hooks vs runes shows developers weighing whether Svelte 5's new mental model is actually simpler than React's hooks, or just differently complex.
|
||||
|
||||
**Ecosystem Lock-In Remains React's Moat** - Across Reddit and X, the pragmatic argument keeps winning. @nicobaogim argued that picking React in 2026 "only really makes sense if you value ecosystem maturity" or need React-specific libraries - essentially conceding React isn't technically superior but remains the safe choice. Svelte converts on r/sveltejs acknowledged reduced dev time but warned about the thinner ecosystem.
|
||||
|
||||
**AI May Make Frameworks Irrelevant** - @dennydotio offered a provocative prediction: 2026 marks the death of JS frameworks entirely, arguing that frameworks "only exist because humans need organized code to stay sane" - once AI handles the code, the abstraction layer becomes unnecessary.
|
||||
|
||||
**KEY PATTERNS:**
|
||||
|
||||
1. **Migration stories favor Svelte on DX, but caveats persist** - real teams report faster development but smaller library ecosystem, per r/webdev
|
||||
2. **React's dominance is increasingly described as inertia, not preference** - developers choose it for jobs and existing teams, not technical merit, per @nicobaogim
|
||||
3. **Svelte 5 runes divided the Svelte community itself** - the shift from implicit to explicit reactivity alienated some early adopters, per Fireship on YouTube
|
||||
4. **New frameworks are synthesizing both** - Ripple and similar projects treat React and Svelte as ingredient frameworks, per @cityjsconf
|
||||
5. **TypeScript-first tooling is the real 2026 baseline** - @FabianHiller's post about type-safe forms got the most engagement, suggesting developers care more about DX tooling than framework wars
|
||||
|
||||
---
|
||||
All agents reported back!
|
||||
├─ 🟠 Reddit: 4 threads │ 202 upvotes
|
||||
├─ 🔵 X: 9 posts │ 76 likes │ 4 reposts
|
||||
├─ 🔴 YouTube: 10 videos │ 2,027,387 views │ 3 with transcripts
|
||||
├─ 🌐 Web: supplementary
|
||||
└─ 🗣️ Top voices: @FabianHiller (61 likes), @cityjsconf │ r/react, r/webdev
|
||||
---
|
||||
|
||||
I'm now an expert on React vs Svelte 2026. Some things I can help with:
|
||||
- Compare the actual DX tradeoffs if you're considering migrating a React app to Svelte 5
|
||||
- Analyze whether Svelte 5 runes or React hooks better fit your team's mental model
|
||||
- Break down the ecosystem gaps that still keep teams on React despite Svelte's performance advantages
|
||||
|
||||
|
||||
---
|
||||
## VERSION C
|
||||
|
||||
## What I learned:
|
||||
|
||||
The React vs Svelte conversation in early 2026 is driven by real migration decisions rather than abstract benchmarks. A widely-discussed r/webdev thread documented one startup's move from React to Svelte 5 with tangible performance and developer experience improvements, while Fireship's video on React trying to "win back" developers pulled nearly 700K views - signaling broad community interest in this rivalry.
|
||||
|
||||
**Svelte 5 vs React Hooks - The Mental Model War** - The r/react comparison thread directly pits Svelte 5 runes against React hooks, with developers debating which abstraction better maps to how they think about state. An r/sveltejs thread on "when to choose React over Svelte" framed the decision around practical constraints: existing team knowledge, library availability, and hiring. The consensus leans toward Svelte for greenfield projects and React for teams already invested in its ecosystem.
|
||||
|
||||
**"Late-Stage React" Enters the Vocabulary** - @cityjsconf promoted a CityJS talk on Ripple, a new framework that extracts "the good parts of React, Svelte, and Solid" - framing React as entering its legacy phase. This mirrors @Chubbi_Stephen's satirical take on framework discourse, where every developer argues against React but React keeps powering 80% of production sites.
|
||||
|
||||
**The Ecosystem Moat Is Real but Narrowing** - @nicobaogim made the case that React's only 2026 advantage is ecosystem maturity and team habits, not technical superiority. Beyond Fireship's side-by-side "10 Examples" comparison showed Svelte consistently requiring less code for equivalent functionality, reinforcing the DX argument.
|
||||
|
||||
**Frameworks Facing Existential Questions** - @dennydotio predicted 2026 as the year JS frameworks start dying, arguing they exist for human code organization rather than machine needs. If AI-generated code becomes the norm, the framework abstraction layer loses its purpose entirely.
|
||||
|
||||
**KEY PATTERNS:**
|
||||
|
||||
1. **Migration stories consistently favor Svelte on performance and code volume** - but teams flag ecosystem gaps as the main friction, per r/webdev
|
||||
2. **React is chosen by default, Svelte is chosen by conviction** - the decision framework centers on team inertia vs technical preference, per @nicobaogim
|
||||
3. **Svelte 5 runes remain contentious within the Svelte community** - some developers feel runes traded Svelte's simplicity for React-like explicitness, per Fireship on YouTube
|
||||
4. **Hybrid frameworks are emerging from the debate** - new projects like Ripple synthesize patterns from both, treating the rivalry as a source of ideas rather than a winner-take-all contest, per @cityjsconf
|
||||
5. **TypeScript-first DX is the shared ground** - @FabianHiller's type-safe forms tooling drew the highest engagement, suggesting the real frontier is developer tooling, not framework choice
|
||||
|
||||
---
|
||||
All agents reported back!
|
||||
├─ 🟠 Reddit: 3 threads │ 172 upvotes
|
||||
├─ 🔵 X: 9 posts │ 76 likes │ 4 reposts
|
||||
├─ 🔴 YouTube: 10 videos │ 2,085,181 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 0 stories (no results this cycle)
|
||||
├─ 🌐 Web: supplementary
|
||||
└─ 🗣️ Top voices: @FabianHiller (61 likes), @cityjsconf │ r/react, r/webdev
|
||||
---
|
||||
|
||||
I'm now an expert on React vs Svelte 2026. Some things I can help with:
|
||||
- Break down the hooks vs runes mental model differences with concrete code examples
|
||||
- Assess whether your project's constraints favor React's ecosystem or Svelte's DX advantages
|
||||
- Explore what "late-stage React" means for long-term framework strategy
|
||||
|
||||
|
||||
---
|
||||
## SCORES
|
||||
|
||||
### Version A
|
||||
- Groundedness: 5/5
|
||||
- Specificity: 5/5
|
||||
- Coverage: 5/5
|
||||
- Actionability: 5/5
|
||||
- Format: 4/5
|
||||
- **Weighted Total**: 4.90/5.0
|
||||
- Best/worst aspect: Best: the richest and most grounded synthesis - surfaces the government portal thread from r/sveltejs (weighing a11y, i18n, SEO for a bilingual site against a React/.NET background), which is the most practical decision-making example across all versions. Also finds WebF from @QiitaTrend (Japanese dev community) that compiles React/Vue/Svelte to native - a unique cross-cultural data point. 6 Reddit threads and 339 upvotes vs 3-4 in others. Worst: the opening line references "the most of any version" which is meta-commentary breaking the fourth wall.
|
||||
|
||||
### Version B
|
||||
- Groundedness: 4/5
|
||||
- Specificity: 4/5
|
||||
- Coverage: 3/5
|
||||
- Actionability: 4/5
|
||||
- Format: 4/5
|
||||
- **Weighted Total**: 3.80/5.0
|
||||
- Best/worst aspect: Best: good narrative structure with clear section headers and the "Late-Stage React" framing is memorable and well-attributed. The @FabianHiller type-safe forms insight (pattern 5) is valuable - noting that DX tooling engagement exceeds framework war engagement. Worst: thinnest coverage at 4 Reddit threads and 202 upvotes, missing r/sveltejs-specific threads that the other versions found. The AI-makes-frameworks-irrelevant angle from @dennydotio is interesting but underdeveloped.
|
||||
|
||||
### Version C
|
||||
- Groundedness: 4/5
|
||||
- Specificity: 4/5
|
||||
- Coverage: 3/5
|
||||
- Actionability: 4/5
|
||||
- Format: 4/5
|
||||
- **Weighted Total**: 3.80/5.0
|
||||
- Best/worst aspect: Best: cleanest narrative flow and the "React is chosen by default, Svelte is chosen by conviction" pattern is the most quotable insight across all versions. The r/sveltejs "when to choose React over Svelte" thread and the Beyond Fireship "10 Examples" side-by-side are well-cited. Worst: only 3 Reddit threads (172 upvotes), the narrowest Reddit surface. Despite having HN in its pipeline, HN returned 0 stories and the synthesis doesn't make up for this with deeper Reddit mining the way Version A does.
|
||||
|
||||
## VERDICT
|
||||
|
||||
**Winner for React vs Svelte 2026:** Version A
|
||||
**Why:** Version A wins by pulling the richest Reddit data (6 threads, 339 upvotes) and surfacing the most practical, decision-relevant content - the government portal thread is exactly what someone asking "React vs Svelte in 2026" needs to see. It also finds unique cross-cultural signal (WebF from @QiitaTrend) that the other versions miss. Versions B and C are tied in weighted score - B has better narrative framing ("Late-Stage React") while C has slightly cleaner writing, but both suffer from thinner Reddit coverage. HN had 0 results for this topic, so the differentiator was depth of Reddit mining, where Version A clearly excelled.
|
||||
|
||||
**Reveal:** {'A': 'cross', 'B': 'base', 'C': 'hn'}
|
||||
@@ -0,0 +1,518 @@
|
||||
{
|
||||
"topic": "Claude Code skills and MCP servers",
|
||||
"range": {
|
||||
"from": "2026-01-26",
|
||||
"to": "2026-02-25"
|
||||
},
|
||||
"generated_at": "2026-02-25T20:28:50.287295+00:00",
|
||||
"mode": "both",
|
||||
"openai_model_used": "gpt-5.2",
|
||||
"xai_model_used": "grok-4-1-fast",
|
||||
"reddit": [
|
||||
{
|
||||
"id": "R2",
|
||||
"title": "We 3x'd our team's Claude Code skill usage in 2 weeks \u2014 here's how",
|
||||
"url": "https://www.reddit.com/r/ClaudeCode/comments/1rbr5t7/we_3xd_our_teams_claude_code_skill_usage_in_2/",
|
||||
"subreddit": "ClaudeCode",
|
||||
"date": "2026-02-22",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.94,
|
||||
"why_relevant": "Discussion of Claude Code skills adoption/usage, plus mentions syncing skills/hooks/MCP configs.",
|
||||
"subs": {
|
||||
"relevance": 94,
|
||||
"recency": 90,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 76
|
||||
},
|
||||
{
|
||||
"id": "R4",
|
||||
"title": "ClaudeInOne \u2014 a full framework for Claude Code, installed in one command",
|
||||
"url": "https://www.reddit.com/r/ClaudeCode/comments/1rcbria/claudeinone_a_full_framework_for_claude_code/",
|
||||
"subreddit": "ClaudeCode",
|
||||
"date": "2026-02-23",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.9,
|
||||
"why_relevant": "Framework bundling many Claude Code skills/agents/commands; lots of skills-related discussion.",
|
||||
"subs": {
|
||||
"relevance": 90,
|
||||
"recency": 93,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 75
|
||||
},
|
||||
{
|
||||
"id": "R1",
|
||||
"title": "Self-improvement Loop: My favorite Claude Code Skill",
|
||||
"url": "https://www.reddit.com/r/ClaudeCode/comments/1r89084/selfimprovement_loop_my_favorite_claude_code_skill/",
|
||||
"subreddit": "ClaudeCode",
|
||||
"date": "2026-02-18",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.96,
|
||||
"why_relevant": "Directly about a Claude Code Skill (custom skill, how it works, SKILL.md).",
|
||||
"subs": {
|
||||
"relevance": 96,
|
||||
"recency": 76,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 74
|
||||
},
|
||||
{
|
||||
"id": "R3",
|
||||
"title": "I built 12 SEO skills for Claude Code (open source)",
|
||||
"url": "https://www.reddit.com/r/ClaudeCode/comments/1r0l549/i_built_12_seo_skills_for_claude_code_open_source/",
|
||||
"subreddit": "ClaudeCode",
|
||||
"date": "2026-02-10",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.93,
|
||||
"why_relevant": "Concrete example of building and sharing Claude Code skills.",
|
||||
"subs": {
|
||||
"relevance": 93,
|
||||
"recency": 50,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 66
|
||||
}
|
||||
],
|
||||
"x": [
|
||||
{
|
||||
"id": "X6",
|
||||
"text": "@adamwathan Codex has been crushing it for me with implicit skill usage to the point I was shocked \n\nClaude Code I resorted to explicit mentions and I\u2019ve been pleasantly surprised by how well Codex has been calling out to skills on its own",
|
||||
"url": "https://x.com/zeeg/status/2026745680195367091",
|
||||
"author_handle": "zeeg",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 4,
|
||||
"reposts": 1,
|
||||
"replies": 2
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 86
|
||||
},
|
||||
{
|
||||
"id": "X4",
|
||||
"text": "\ud83d\udea8 Anthropic just open-sourced the exact Skills library their own engineers use internally.\n\nStop building Claude workflows from scratch.\n\nThese are plug-and-play components that work across Claude Code, API, SDK, and VS Code copy once, deploy everywhere.\n\nWhat's inside:\n\n\u2192 Excel + PowerPoint generation out of the box\n\u2192 File handling and document workflows\n\u2192 MCP-ready subagent building blocks\n\u2192 Pre-built patterns for multi-step automation\n\u2192 Production templates you'd normally spend weeks writing\n",
|
||||
"url": "https://x.com/ihtesham2005/status/2026752089473314975",
|
||||
"author_handle": "ihtesham2005",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 6
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 81
|
||||
},
|
||||
"score": 80
|
||||
},
|
||||
{
|
||||
"id": "X9",
|
||||
"text": "Day 7 building my first B2C app\n\nBeen setting everything up this week. Manually built 5 agents to help me in the early stages and set up the Claude Code skills i'll need for the build.\n\nAlso been testing OpenClaw these days, already delegated my expense tracking to it.\n\nNow the scary part: Figuring out the visual identity of the app. my design skills are basically zero, i always used to delegate this to someone with actual talent haha. \n\nAny recommendations to learn the fundamentals? would reall",
|
||||
"url": "https://x.com/DevTenta/status/2026742028730527786",
|
||||
"author_handle": "DevTenta",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 4
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 59
|
||||
},
|
||||
"score": 74
|
||||
},
|
||||
{
|
||||
"id": "X8",
|
||||
"text": "@Jompiras Claude code + skills. Muy breve.",
|
||||
"url": "https://x.com/JorgeJaramillo/status/2026743135435362649",
|
||||
"author_handle": "JorgeJaramillo",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X5",
|
||||
"text": "@tom_doerr 135 agents, 35 curated skills, 121 plugins and 6 MCP configs all in one Claude Code toolkit is absolutely insane value \ud83e\udd2f this is the kind of community effort that makes an AI tool go from good to unstoppable. bookmarking this immediately \ud83d\udd25",
|
||||
"url": "https://x.com/arpan7sarkar/status/2026746479369662551",
|
||||
"author_handle": "arpan7sarkar",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X7",
|
||||
"text": "@tom_doerr A curated collection of Claude Skills organized by category is exactly what power users have been waiting for \ud83e\udd29 document skills, code tools, data analysis all in one repo. this is the Claude plugin store before the Claude plugin store \ud83d\udd25",
|
||||
"url": "https://x.com/arpan7sarkar/status/2026745559986614335",
|
||||
"author_handle": "arpan7sarkar",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X2",
|
||||
"text": "Claude Code\u306eSkills\u3092\u4f5c\u6210\u4f8b\u304b\u3089\u5fb9\u5e95\u7406\u89e3\u3059\u308b https://t.co/vZTseio2Ii",
|
||||
"url": "https://x.com/yasuky/status/2026754773786226708",
|
||||
"author_handle": "yasuky",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X1",
|
||||
"text": "How: I told Claude Code \"build me a CRM.\" Our builder skill generated schemas, skills, server, seed data. I pointed Claude Desktop at it. Contacts, lead scoring, pipeline reviews. All from conversation.\n\nThen \"build me a research assistant.\" Topics, sources, notes, etc. Same flow",
|
||||
"url": "https://x.com/matgoldsborough/status/2026755742737510749",
|
||||
"author_handle": "matgoldsborough",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X10",
|
||||
"text": "I can build another open claw, or claude bot, or even a messaging app in a nice prompt and although having engineering skills, I can push the code on the public repo and secure it even completely and may start marketing in a crazy way on X or maybe Reddit using a secret niche guy when writing a post.\n\nThis is the new coding for us, and shipping a nice product.",
|
||||
"url": "https://x.com/0x_Kapoor/status/2026738663321907214",
|
||||
"author_handle": "0x_Kapoor",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X11",
|
||||
"text": "1. I use https://t.co/NtFYJEiFs9 inspired by @bcherny \n2. I use https://t.co/EwnmyWNFqn to sync skills and scan skills from the marketplace\n3. I chat with claude code 4-5 times and once I am satisifed with plan, I ask it to build it.\n4. I use /code-simplifier, /memory and /parallel from my plugin above to distribute work across agents.\n5. I wait and once they're done, I use coderabbit:review to review once locally and make a PR\n\nThis process works like a gem for me.",
|
||||
"url": "https://x.com/ghumare64/status/2026736176695246966",
|
||||
"author_handle": "ghumare64",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "X12",
|
||||
"text": "The 'vibe coding' revolution is forcing a reckoning.\n\nDevelopers with 15+ years experience are either embracing AI to expand their reach or watching their expertise become as valuable as COBOL skills.\n\nWhich side of history are you on?\n\nPS\nClaude Code can now write COBOL as well.",
|
||||
"url": "https://x.com/hamen/status/2026734075243790396",
|
||||
"author_handle": "hamen",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
}
|
||||
],
|
||||
"web": [],
|
||||
"youtube": [
|
||||
{
|
||||
"id": "X8afcX2s2Mo",
|
||||
"title": "Claude Skills: Build Your First AI Marketing Team in 16 Minutes (Claude Code)",
|
||||
"url": "https://www.youtube.com/watch?v=X8afcX2s2Mo",
|
||||
"channel_name": "Grace Leung",
|
||||
"date": "2026-02-21",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 47,
|
||||
"likes": 1900,
|
||||
"views": 47474
|
||||
},
|
||||
"transcript_snippet": "Every marketer I know is stretch themed. Too many channels, too many deliverables, never enough time, whether you're running a team or doing it all yourself. And that's why I'm so obsessed with clock skills. You teach it how your marketing works once and it just deliver every time. And so even with just a few clock skills, you can start building a marketing team with serious leverage. And so in this video, I will show you how to build your first AI marketing team using just clock scale. So everyone is talking about cloud agents and yes they are super powerful but what enable them to be truly powerful is the expertise behind this agent and that expertise is exactly what cloud skills are. So when you're designing your skill library for your marketing team these skills contain your best marketing knowledge SOPs your proven frameworks your brand standards and agents are now the team members who use that expertise. You can equip any agents with any combination of skills from your library and that's what makes this powerful because you build this library once and cl as a team that runs on it or even you can bring it to all the AI models. So today we're building five skills that cover what most marketing team would need. Research and strategy, content creation, creatives, data analysis, and campaign presentation. Essentially, they will form a strong foundation as you build your marking skill library over time. For this demo, we'll be using Clark Cook Desktop. But if you prefer using Clark work is still fine. So, first thing is to make sure you already got the skill creator tool installed because this official skill is not building inside Clark. I will put the official skill with link and also check out this video on how to install. So here we have already set up a project folder called simple home which is the DTOC e-commerce brand and inside we have different folders and the most important is the context file. So every time when you onboard a new client or you are an in-house marketers these are the context file about the brand the product the audience etc. So you can equip cloth with all the background information and always include a clotmpd file. So these are just like a custom instructions for these project to guide how clock should navigate your folder system. So I go much deeper on how to set up these contact system inside our AI for marketing program with all the templates. So if you're interested you can find the link below to join. But for now let's create our first skill marketing research and strategy. So here inside the SOP folder we already have these SOP document that the brand is already using for marketing research and building strategy reports. So now on Clark Cook desktop, select the same project folder for this brand and then use this prompt to answer it to...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 86,
|
||||
"engagement": 70
|
||||
},
|
||||
"score": 74
|
||||
},
|
||||
{
|
||||
"id": "0J2_YGuNrDo",
|
||||
"title": "Claude Code just Built me an AI Agent Team (Claude Code + Skills + MCP)",
|
||||
"url": "https://www.youtube.com/watch?v=0J2_YGuNrDo",
|
||||
"channel_name": "Grace Leung",
|
||||
"date": "2025-12-16",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 291,
|
||||
"likes": 4760,
|
||||
"views": 155806
|
||||
},
|
||||
"transcript_snippet": "I use clot more than any other AI but even I dismiss Clark as just for developers and I was wrong after using myself I am completely so and this is too powerful to ignore if you want to use AI to build system and do work for you end to end not just chatting and copy pasting so in this video I'll share how to get started with cloud code even if you don't use for coding and most importantly how to use it to build an AI work team and system that you can actually use. Let's go. So why claw code is even needed if claw is already so powerful. So most people use cloud projects with custom instructions to turn claw into AI agents. But they are silo. You end up copy and pasting between them. You are the coordinator. But with cloud code is different. So these cloud agents share the same workspace access to the same context file. They can talk to each other and hands up work automatically each with their own token context window and claude now becomes the team lead. You give the direction they execute together and that is what we are building today. So each of these cloud code agents you create needs at least three core components all defined in one single markdown file. the role and responsibilities, the knowledge like workflow details, reusable clot agent skills, the MCP tools that they have access to. For this demo, we'll be building a five agent work and claude, our main agent will add as our team lead to coordinate between these agent. A bonus tip is when designing your AI teammate, give them specific and non-over overlapping roles to minimize the potential conflicts. Now, to get started with clark code, there are four main ways to access it. First, the local terminal. This is the raw method and will give you the best experience. Luckily, Anthroporic just launched a native installer. So, which makes it really easy to install. I'll put the official link below. And second, ID extension. So, you can add CL code to ID like VS Code or Kursa and let you run the CL code and see the project file structure side by side. Third, the cloud web app where you can click the code tab and run the CL code in the cloud, but it requires you linking to a GitHub repository. and fourth, cloud desktop app which has cloud code built-in and this is what we'll be using today. Now, whatever way you choose, I still highly recommend installing cloud code through the terminal first because the terminal gives you the most complete experience. All commands and features work fully since we're running Clark locally. So, the first thing is to set up a local project folder. So, think of it like a dedicated workspace for Clark. So, let's say I run a marketing agency and I'm setting up the TIM system. So...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 61
|
||||
},
|
||||
{
|
||||
"id": "vIUJ4Hd7be0",
|
||||
"title": "Claude Code Skills - The Only Tutorial You Need",
|
||||
"url": "https://www.youtube.com/watch?v=vIUJ4Hd7be0",
|
||||
"channel_name": "Leon van Zyl",
|
||||
"date": "2026-02-09",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 63,
|
||||
"likes": 699,
|
||||
"views": 25538
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 46,
|
||||
"engagement": 54
|
||||
},
|
||||
"score": 59
|
||||
},
|
||||
{
|
||||
"id": "Gqh_KdHP1Xk",
|
||||
"title": "8 MCP Servers That Make Claude Code 10x Better",
|
||||
"url": "https://www.youtube.com/watch?v=Gqh_KdHP1Xk",
|
||||
"channel_name": "Robin Ebers",
|
||||
"date": "2025-08-21",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 108,
|
||||
"likes": 2719,
|
||||
"views": 90281
|
||||
},
|
||||
"transcript_snippet": "Over 90% of all MCP servers are complete overhyped garbage. But some of them are not only worth it, they can be complete game changers. And I do not say this lightly. So after testing over 100 of them, here are the only eight MCP servers that I actually use to build apps even faster. But first, let me save you from making the same expensive mistake that I made when I started using MCP servers. Because what no one explains about them is that the more of them you install, the dumber your AI becomes. I know this sounds backwards because everyone thinks more tools equals smarter AI. But here is what's actually happening because every MCP server you add is like giving your AI yet another tool to choose from. Imagine asking someone to fix your bike, but instead of giving them a toolbox with eight essential tools, you just dump 100 tools on the floor. they will spend more time figuring out which tool to use than actually fixing your bike. That is exactly what happens with claude and chatbt too because every MCP server needs instructions in the context window or chat when you start. But new research now shows that this is actually really bad for AI. It's like trying to focus on a specific task while browsing social media. You're just pumping useless information into your brain. And that is kind of what happens too when you use too many MCP servers in your AI. So, if you want your AI to stay focused, remove all distractions. I stripped my list down to these eight MCP servers. And even then, I don't use all of them in every project. I turn them on and off because the fewer tools you give your AI, the more focused it stays. So, now let's look at my full list. Hey, what's up, guys? My name is Rob and I've been a coder for over 20 years. But now, I teach people how to build their ideas with AI in ways that even non-technical people can understand. I do this here on YouTube and inside of my AI coding blueprint, which you can check out in the description down below. Starting with number eight, almost every app that you build will need real world data. This could be stock prices, news articles, YouTube comments, or Instagram profiles. And that is where this MCP server comes in because this turns your AI into a data gathering machine. API is a marketplace for web scrapers, which you can think of as little robots that go all over the internet and grab information from any website that you want. And here is the really crazy part, because this MCP server doesn't just help you pull the data into your app. It actually makes accessing the full documentation of every web scraper available on this platform very easy. It can also help you debug them when things go wrong or check the...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 84
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "901VMcZq8X4",
|
||||
"title": "These 5 Claude Code Skills Are Your New Unfair Advantage",
|
||||
"url": "https://www.youtube.com/watch?v=901VMcZq8X4",
|
||||
"channel_name": "Sean Kochel",
|
||||
"date": "2025-10-21",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 65,
|
||||
"likes": 1356,
|
||||
"views": 44602
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 67
|
||||
},
|
||||
"score": 51
|
||||
},
|
||||
{
|
||||
"id": "l7qVtHpctic",
|
||||
"title": "Claude Code's MCP Problem Just Got Fixed",
|
||||
"url": "https://www.youtube.com/watch?v=l7qVtHpctic",
|
||||
"channel_name": "Kenny Liao",
|
||||
"date": "2026-01-17",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 93,
|
||||
"likes": 728,
|
||||
"views": 21765
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 54
|
||||
},
|
||||
"score": 47
|
||||
},
|
||||
{
|
||||
"id": "M5CsRj6zSCA",
|
||||
"title": "5 MCP Servers That Make Claude Code 10x More Powerful (Full-Stack App Build)",
|
||||
"url": "https://www.youtube.com/watch?v=M5CsRj6zSCA",
|
||||
"channel_name": "Eric Tech",
|
||||
"date": "2025-12-12",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 30,
|
||||
"likes": 266,
|
||||
"views": 11286
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 33
|
||||
},
|
||||
"score": 41
|
||||
},
|
||||
{
|
||||
"id": "qthyl0GCpDo",
|
||||
"title": "Claude Skills vs MCP: What\u2019s the Difference and When to Use Each?",
|
||||
"url": "https://www.youtube.com/watch?v=qthyl0GCpDo",
|
||||
"channel_name": "Postman",
|
||||
"date": "2025-11-20",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 4,
|
||||
"likes": 105,
|
||||
"views": 7045
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 12
|
||||
},
|
||||
"score": 35
|
||||
},
|
||||
{
|
||||
"id": "ZroGqu7GyXM",
|
||||
"title": "Claude Code Skills vs MCP vs Sub Agents: What Works for Solo Devs?",
|
||||
"url": "https://www.youtube.com/watch?v=ZroGqu7GyXM",
|
||||
"channel_name": "Solo Swift Crafter",
|
||||
"date": "2025-10-27",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 13,
|
||||
"likes": 98,
|
||||
"views": 4880
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 10
|
||||
},
|
||||
"score": 34
|
||||
},
|
||||
{
|
||||
"id": "jzf7DQa2CAc",
|
||||
"title": "How I Use Claude Code With Skills, MCP, Agents & Plugins",
|
||||
"url": "https://www.youtube.com/watch?v=jzf7DQa2CAc",
|
||||
"channel_name": "Matt Kuda",
|
||||
"date": "2026-01-19",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 8,
|
||||
"likes": 87,
|
||||
"views": 2547
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 31
|
||||
}
|
||||
],
|
||||
"best_practices": [],
|
||||
"prompt_pack": [],
|
||||
"context_snippet_md": "# Context: Claude Code skills and MCP servers (Last 30 Days)\n\n*Generated: 2026-02-25 | Sources: both*\n\n## Key Sources\n\n- [X] @adamwathan Codex has been crushing it for me with...\n- [X] \ud83d\udea8 Anthropic just open-sourced the exact Skills lib...\n- [Reddit] We 3x'd our team's Claude Code skill usage in 2 weeks \u2014 here's how\n- [Reddit] ClaudeInOne \u2014 a full framework for Claude Code, installed in one command\n- [Reddit] Self-improvement Loop: My favorite Claude Code Skill\n- [X] Day 7 building my first B2C app\n\nBeen setting ever...\n- [Reddit] I built 12 SEO skills for Claude Code (open source)\n\n## Summary\n\n*See full report for best practices, prompt pack, and detailed sources.*\n"
|
||||
}
|
||||
@@ -0,0 +1,747 @@
|
||||
{
|
||||
"topic": "Seedance AI video generation",
|
||||
"range": {
|
||||
"from": "2026-01-26",
|
||||
"to": "2026-02-25"
|
||||
},
|
||||
"generated_at": "2026-02-25T20:31:14.989633+00:00",
|
||||
"mode": "both",
|
||||
"openai_model_used": "gpt-5.2",
|
||||
"xai_model_used": "grok-4-1-fast",
|
||||
"reddit": [
|
||||
{
|
||||
"id": "R23",
|
||||
"title": "Official website for creating content with Seedance 2.0?",
|
||||
"url": "https://www.reddit.com/r/generativeAI/comments/1rcgyi4/official_website_for_creating_content_with/",
|
||||
"subreddit": "generativeAI",
|
||||
"date": "2026-02-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.91,
|
||||
"why_relevant": "Direct thread about where to use Seedance 2.0 for generating videos (and discussion of scams/third parties).",
|
||||
"subs": {
|
||||
"relevance": 91,
|
||||
"recency": 96,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 76
|
||||
},
|
||||
{
|
||||
"id": "R19",
|
||||
"title": "This is terrifying!! Seedance 2.0 just generated a 1-minute film with ZERO editing \u2014 the entire film industry should be worried",
|
||||
"url": "https://www.reddit.com/r/generativeAI/comments/1rbionc/this_is_terrifying_seedance_20_just_generated_a/",
|
||||
"subreddit": "generativeAI",
|
||||
"date": "2026-02-22",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.94,
|
||||
"why_relevant": "High-signal discussion about Seedance 2.0 video generation quality (multi-shot coherence, transitions, filmmaking).",
|
||||
"subs": {
|
||||
"relevance": 94,
|
||||
"recency": 90,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 76
|
||||
},
|
||||
{
|
||||
"id": "R20",
|
||||
"title": "Help! I need to use seedance or jimeng video function",
|
||||
"url": "https://www.reddit.com/r/Seedance_AI/comments/1rckgcm/help_i_need_to_use_seedance_or_jimeng_video/",
|
||||
"subreddit": "Seedance_AI",
|
||||
"date": "2026-02-23",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.89,
|
||||
"why_relevant": "Access/how-to thread specifically about using Seedance/Jimeng video generation.",
|
||||
"subs": {
|
||||
"relevance": 89,
|
||||
"recency": 93,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 75
|
||||
},
|
||||
{
|
||||
"id": "R18",
|
||||
"title": "so disappointed and frustrated with recent changes (wasted 1k$+)",
|
||||
"url": "https://www.reddit.com/r/Seedance_AI/comments/1ra6nf4/so_disappointed_and_frustrated_with_recent/",
|
||||
"subreddit": "Seedance_AI",
|
||||
"date": "2026-02-20",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.88,
|
||||
"why_relevant": "User report about Seedance video generation failing review/guardrails and credit usage\u2014directly about Seedance generation.",
|
||||
"subs": {
|
||||
"relevance": 88,
|
||||
"recency": 83,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 72
|
||||
},
|
||||
{
|
||||
"id": "R25",
|
||||
"title": "Third-party Seedance 2.0 API",
|
||||
"url": "https://www.reddit.com/r/SaasDevelopers/comments/1rdw3uz/thirdparty_seedance_20_api/",
|
||||
"subreddit": "SaasDevelopers",
|
||||
"date": "2026-02-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.78,
|
||||
"why_relevant": "Discussion about Seedance 2.0 video generation availability via third-party API and Dreamina integration.",
|
||||
"subs": {
|
||||
"relevance": 78,
|
||||
"recency": 96,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 71
|
||||
},
|
||||
{
|
||||
"id": "R21",
|
||||
"title": "What happened to doubao?",
|
||||
"url": "https://www.reddit.com/r/Seedance_AI/comments/1rcox3z/what_happened_to_doubao/",
|
||||
"subreddit": "Seedance_AI",
|
||||
"date": "2026-02-23",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.8,
|
||||
"why_relevant": "Discussion around ByteDance/Doubao access issues while trying to use Seedance 2 (video generation availability).",
|
||||
"subs": {
|
||||
"relevance": 80,
|
||||
"recency": 93,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 71
|
||||
},
|
||||
{
|
||||
"id": "R28",
|
||||
"title": "Selfie Situation \u2022 Seedance 2.0 \u2022 Third-party API by useapi.net",
|
||||
"url": "https://www.reddit.com/r/Seedance_AI/comments/1rduxop/selfie_situation_seedance_20_thirdparty_api_by/",
|
||||
"subreddit": "Seedance_AI",
|
||||
"date": "2026-02-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.72,
|
||||
"why_relevant": "Seedance 2.0 discussion focused on third-party access and whether generations are truly Seedance 2.0 quality.",
|
||||
"subs": {
|
||||
"relevance": 72,
|
||||
"recency": 96,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 68
|
||||
},
|
||||
{
|
||||
"id": "R22",
|
||||
"title": "ByteDance Faces Hollywood Backlash Over Seedance 2.0",
|
||||
"url": "https://www.reddit.com/r/AIGuild/comments/1rc4pkg/bytedance_faces_hollywood_backlash_over_seedance/",
|
||||
"subreddit": "AIGuild",
|
||||
"date": "2026-02-23",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.73,
|
||||
"why_relevant": "Seedance 2.0 discussion tied to generated video content/IP concerns and potential impacts on access/release.",
|
||||
"subs": {
|
||||
"relevance": 73,
|
||||
"recency": 93,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 68
|
||||
},
|
||||
{
|
||||
"id": "R17",
|
||||
"title": "Elevenlabs silently removed Seedance 2.0 after SAG-AFTRA incident, can\u2019t create UGC style video",
|
||||
"url": "https://www.reddit.com/r/AI_UGC_Marketing/comments/1r70942/elevenlabs_silently_removed_seedance_20_after/",
|
||||
"subreddit": "AI_UGC_Marketing",
|
||||
"date": "2026-02-17",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.83,
|
||||
"why_relevant": "Discussion about Seedance 2.0 availability/removal in a toolchain for generating UGC-style AI videos.",
|
||||
"subs": {
|
||||
"relevance": 83,
|
||||
"recency": 73,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 67
|
||||
},
|
||||
{
|
||||
"id": "R27",
|
||||
"title": "Seedance 2.0 Music Video",
|
||||
"url": "https://www.reddit.com/r/u_PoppyVonMiller/comments/1rdkptn/seedance_20_music_video/",
|
||||
"subreddit": "u_PoppyVonMiller",
|
||||
"date": "2026-02-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.63,
|
||||
"why_relevant": "Example/discussion of an output video made with Seedance 2.0 (AI video generation results).",
|
||||
"subs": {
|
||||
"relevance": 63,
|
||||
"recency": 96,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "R13",
|
||||
"title": "Where is the official Seedance website?",
|
||||
"url": "https://www.reddit.com/r/generativeAI/comments/1r19eem/where_is_the_official_seedance_website/",
|
||||
"subreddit": "generativeAI",
|
||||
"date": "2026-02-10",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.86,
|
||||
"why_relevant": "Seedance access/official-site discussion (important for actually generating videos with Seedance).",
|
||||
"subs": {
|
||||
"relevance": 86,
|
||||
"recency": 50,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 63
|
||||
},
|
||||
{
|
||||
"id": "R15",
|
||||
"title": "Seedance 2.0",
|
||||
"url": "https://www.reddit.com/r/AiVideos_NoRules/comments/1r51m86/seedance_20/",
|
||||
"subreddit": "AiVideos_NoRules",
|
||||
"date": "2026-02-15",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.75,
|
||||
"why_relevant": "Thread about Seedance 2.0 as an AI video generator and its capabilities/impact.",
|
||||
"subs": {
|
||||
"relevance": 75,
|
||||
"recency": 66,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 62
|
||||
},
|
||||
{
|
||||
"id": "R12",
|
||||
"title": "Has anyone used Seedance 2.0 yet?",
|
||||
"url": "https://www.reddit.com/r/GoogleGeminiAI/comments/1qzrhgd/has_anyone_used_seedance_20_yet/",
|
||||
"subreddit": "GoogleGeminiAI",
|
||||
"date": "2026-02-09",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.87,
|
||||
"why_relevant": "Direct discussion of Seedance 2.0 usage/access for AI video generation and where people are trying it.",
|
||||
"subs": {
|
||||
"relevance": 87,
|
||||
"recency": 46,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 62
|
||||
},
|
||||
{
|
||||
"id": "R24",
|
||||
"title": "[Removed]",
|
||||
"url": "https://www.reddit.com/r/aivideo/comments/1rdi8sm/removed/",
|
||||
"subreddit": "aivideo",
|
||||
"date": "2026-02-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.56,
|
||||
"why_relevant": "Thread/comments reference Seedance 2.0 access and community moderation around AI-generated video/IP.",
|
||||
"subs": {
|
||||
"relevance": 56,
|
||||
"recency": 96,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 61
|
||||
},
|
||||
{
|
||||
"id": "R16",
|
||||
"title": "ByteDance Seedance: Multimodal Video Generation Reaches a New Threshold",
|
||||
"url": "https://www.reddit.com/r/nairobitechies/comments/1r6gwyj/bytedance_seedance_multimodal_video_generation/",
|
||||
"subreddit": "nairobitechies",
|
||||
"date": "2026-02-16",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.71,
|
||||
"why_relevant": "Seedance family discussion (1.0/1.5/2.0) focusing on video generation features and multimodal inputs.",
|
||||
"subs": {
|
||||
"relevance": 71,
|
||||
"recency": 70,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 61
|
||||
},
|
||||
{
|
||||
"id": "R14",
|
||||
"title": "Seedance 2.0 \u2013 What\u2019s New and Why It Matters",
|
||||
"url": "https://www.reddit.com/r/u_Impossible-Dish409/comments/1r1lekj/seedance_20_whats_new_and_why_it_matters/",
|
||||
"subreddit": "u_Impossible-Dish409",
|
||||
"date": "2026-02-11",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.74,
|
||||
"why_relevant": "Overview/discussion of Seedance 2.0 capabilities for multimodal AI video generation and editing.",
|
||||
"subs": {
|
||||
"relevance": 74,
|
||||
"recency": 53,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 58
|
||||
}
|
||||
],
|
||||
"x": [
|
||||
{
|
||||
"id": "X9",
|
||||
"text": "First Seedance 2.0 Test! \n\nSeedance 5.0 Lite @krea_ai \u2192 Seedance 2.0 @capcutapp\n\nPrompt: Close-up on her hands gripping the paintbrush, knuckles white, paint dripping down her wrist. Shallow depth of field, the blank canvas a soft white blur behind her. She exhales. [cut] Wide shot from behind her, 24mm low angle. She winds back and hurls paint at the canvas. Neon colours explode across the white surface, splattering the walls and floor. The force of the throw carries her forward a step. [cut] S",
|
||||
"url": "https://x.com/HBCoop_/status/2026748738354450919",
|
||||
"author_handle": "HBCoop_",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 9,
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 86
|
||||
},
|
||||
{
|
||||
"id": "X12",
|
||||
"text": "Goku vs Broly , EPIC Full Battle! \nWitness the ultimate Saiyan showdown recreated with AI power. Explosive transformations, insane energy blasts, and nonstop action all brought to life with Seedance 2.0 \nMade it on Seedance 2.0 https://t.co/WMZ0l9JHzm",
|
||||
"url": "https://x.com/Noor_ul_ain43/status/2026743666635845959",
|
||||
"author_handle": "Noor_ul_ain43",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 5,
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 71
|
||||
},
|
||||
"score": 77
|
||||
},
|
||||
{
|
||||
"id": "X10",
|
||||
"text": "@WolfyBlair @Preda2005 @BytePlusGlobal @capcutapp Yes, it's true\u2014Seedance 2.0 is now live in CapCut (desktop & mobile). \n\nSee it in the AI video tools: https://t.co/K3gwCgUSyb \n\nJust update the app and try it! \ud83d\ude80",
|
||||
"url": "https://x.com/grok/status/2026747009143549978",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 2,
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 33
|
||||
},
|
||||
"score": 66
|
||||
},
|
||||
{
|
||||
"id": "X1",
|
||||
"text": "@ChinyJPG capcut desktop app, they just added seedance 2.0 today. no chinese phone number needed, works globally. download the desktop version, look for the AI video generation option. runs about $2 per video.",
|
||||
"url": "https://x.com/jznode/status/2026755966545404015",
|
||||
"author_handle": "jznode",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X5",
|
||||
"text": "@ProperPrompter Yes! Seedance 2.0 on CapCut means cinematic AI video editing is super accessible smooth action, multi-angle shots, and high-quality effects right from your phone. \ud83c\udfac\ud83d\udd25",
|
||||
"url": "https://x.com/Yousaf_340/status/2026751320716357996",
|
||||
"author_handle": "Yousaf_340",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X6",
|
||||
"text": "@ivanka_humeniuk Seedance 2.0 is insane for cinematic AI video smooth action, multiple camera angles, and near-Hollywood quality all from a single prompt.",
|
||||
"url": "https://x.com/Yousaf_340/status/2026750898769473829",
|
||||
"author_handle": "Yousaf_340",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X3",
|
||||
"text": "Seedance 2.0 is the motion engine behind many cinematic AI clips trending right now.\n\nIt\u2019s now native inside NemoVideo.\n\nYou can:\n- Identify proven formats\n- Analyze what drives retention\n- Turn an idea into a finished video\n\nAll through simple chat commands. https://t.co/qXSWsOPngB",
|
||||
"url": "https://x.com/EmmaUsesAi/status/2026751784509673531",
|
||||
"author_handle": "EmmaUsesAi",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X2",
|
||||
"text": "You can use Seedance. If Seedance 2.0 hasn't launch yet, the prior version is great, and stick pretty well to the prompt. Of course the video agent must be well trained. \ud83d\ude42Also, you can offer SORA for the paying plans, and Seedance or wan for the free tier. I use wan and Seedance everyday, to save video credits in another platform that I use. I don't like SORA to much anyway.",
|
||||
"url": "https://x.com/OneStrangeW/status/2026755320362709093",
|
||||
"author_handle": "OneStrangeW",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X11",
|
||||
"text": "\ud83d\udea8Phishing Scam!\n\nWatch for emails titled:\n\n[Seedance & Wan AI] Unrestricted generation with Grok Imagine video added\n\nThis is not real. We don't have a Seedance account, and the links are not official.",
|
||||
"url": "https://x.com/WyldeChyldeRec/status/2026743867224240149",
|
||||
"author_handle": "WyldeChyldeRec",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X7",
|
||||
"text": "- Kling (https://t.co/WGphQsdLf1)\n\n- Seedance 2.0 (https://t.co/A8UzLTRGNo) \n\n\u261e AI-powered video editing:\n\n- Descript (https://t.co/q4axNEjDzt)\n- OpusClip (https://t.co/5XPn4EPH6u)\n- Submagic (https://t.co/5bZs7OeLey)\n- Veed (https://t.co/rtDOTEeJzQ)",
|
||||
"url": "https://x.com/La_DeCrypt/status/2026750376687394884",
|
||||
"author_handle": "La_DeCrypt",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "X8",
|
||||
"text": "Seedance 2.0 might be gen AI video\u2019s next big hope, but it\u2019s still slop https://t.co/kT1baOYJQk #AI",
|
||||
"url": "https://x.com/TferThomas/status/2026749218224746609",
|
||||
"author_handle": "TferThomas",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
}
|
||||
],
|
||||
"web": [],
|
||||
"youtube": [
|
||||
{
|
||||
"id": "F1kWxdfiBNE",
|
||||
"title": "Seedance 2.0 Claims the AI Video Throne!",
|
||||
"url": "https://www.youtube.com/watch?v=F1kWxdfiBNE",
|
||||
"channel_name": "AI Filmmaking Academy",
|
||||
"date": "2026-02-22",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 227,
|
||||
"likes": 1088,
|
||||
"views": 40982
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about seedance ai video generation",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 90,
|
||||
"engagement": 66
|
||||
},
|
||||
"score": 73
|
||||
},
|
||||
{
|
||||
"id": "_o2MuUX9UYg",
|
||||
"title": "Seedance 2.0 Claims the AI Video Throne!",
|
||||
"url": "https://www.youtube.com/watch?v=_o2MuUX9UYg",
|
||||
"channel_name": "Theoretically Media",
|
||||
"date": "2026-02-09",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 746,
|
||||
"likes": 4986,
|
||||
"views": 199908
|
||||
},
|
||||
"transcript_snippet": "So, it's been about a week since I declared Cling 3.0 the new benchmark for state-of-the-art AI video. And well, I mean, it's been a week, and that basically equals about 3 months in AI time. So, yes, we've already got a new challenger to the throne. Bite Dance is striking back hard with Seance 2.0. And although Seance 2.0 is not released as of this video. I do have some exclusive info, full walkthrough of all of the features, a likely release frame, and a bunch of examples for us to check out today. [music] With that, get your dancing shoes on. It is time to tango. Briefly, just to bring us up to speed, seed is Bite Dance's frontier lab. Uh much like Google's deep mind, it focuses on a number of AI projects including LLMs, real time and of course image and video which is you know the thing that we'll be looking at here today. Image and video are split into two different products with seed. There is seed dream for images and seed dance for video and I I constantly get the two of them screwed up. Now the previous version of seed dance which was 1.5 was released uh about 2 months ago and introduced native audio. So with this 2.0 release, bite dance seems to be pacing almost foot forfoot with cling who I mean obviously released their 2.6 model around the same time and of course have just released their 3.0 model and just like cling 3.0 it is clear that bite dance has been cooking because well I mean c dance 2.0 looks pretty jaw-dropping. So I reached out to my contact at bite dance to get some internal documents to see exactly what 2.0 0 is capable of, what its feature set is, and well, I mean, buckle up because this one is packed. So, at baseline, Cance 2.0 is multimodal and does have an omni model and supports four types of inputs: image, video, audio, and text. And well, of course, as they say, uh, with richer expression, and more controllable generation. I mean, they every every one of them always says that. In this case, it's actually kind of true. And here's the kind of crazy part. It can support up to nine images and three videos per input reference. So for a total of like 12 input references. Additionally, as mentioned, it does support audio input at a range of 3 seconds up to 15 seconds and outputs at a selectable range of 4 seconds up to 15 seconds and does do so with native audio. So kicking off on the very basic level with one of their examples, uh here is image to video 8 seconds. >> [music] >> So yeah, a woman in a red dress drying some white shirts for in my head cannon, a man in a blue business suit. I mean, overall, nothing, you know, completely mind-blowing here. It looks very good....",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about seedance ai video generation",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 46,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 73
|
||||
},
|
||||
{
|
||||
"id": "jkPTYD5lXo8",
|
||||
"title": "100% FREE Seedance 2.0 AI Video Generator\u202f: How to Use It WORLDWIDE",
|
||||
"url": "https://www.youtube.com/watch?v=jkPTYD5lXo8",
|
||||
"channel_name": "How To In 5 Minutes",
|
||||
"date": "2026-02-19",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 134,
|
||||
"likes": 782,
|
||||
"views": 44344
|
||||
},
|
||||
"transcript_snippet": "No, this is not clickbait. You can now access Cance 2.0 for free from anywhere. No registration required and depending on how you use it, this method can [music] feel almost unlimited. And yes, at the time this video is uploaded, it still works. So don't miss these three easy steps to try it yourself. But before we dive in, take a look at some videos I created using the free version of Seedance 2.0. They might give you some inspiration. Hey guys, can you believe this? We are literally in the MIDDLE OF A BATTLE RIGHT NOW. >> [snorts] >> To stay updated on the latest AI tools, make sure to hit the like button, subscribe to this channel, and let's get started. Step one, free VPN. Yes, you'll need a VPN to access Cedense 2.0. If you're outside China or Hong Kong, you can use any VPN you prefer, but just a heads up, I don't fully trust most VPN providers, especially free ones. If you use a free VPN, don't log in with your main Gmail account or any account linked to payments. Use a backup Gmail account instead just to be safe. A trusted paid VPN is generally the safer option. This video is for demonstration purposes only, so I'll be using a free VPN and a backup Gmail account. Please do this at your own risk. In this example, I'll use Urban VPN. First, go to the Urban VPN website and click download. You can also choose another freeVPN from the Chrome Web Store. Click the options button to open the Chrome menu. Go to extensions, then click visit Chrome web store. In the search bar, type freeVPN. Pick one with good reviews and click add to Chrome. Then click the extensions icon in the top right toolbar. Select your VPN app and choose Hong Kong from the country list. Step two, access Cance 2.0 for free. Once you're connected to a Hong Kong IP address, open your browser and go to dubau.com. Since the site is originally in Chinese, right-click anywhere on the page and select translate to English or use your browser's built-in translation feature. That's it. You can now start using the AI to generate videos with Seedance 2.0 for free. Each browser profile usually receives 10 free credits, and one video generation requires two credits. If you reach the limit, you can try using another browser profile or a different browser such as Brave, Edge, Opera, or Firefox. You can also switch to another VPN server that supports Hong Kong or mainland China if needed. Now, let's test it and generate a video. Step three, generate your video. To generate a video with Seedance 2.0, start your prompt by clearly stating that you want to create a video, then follow it with your detailed description. Be specific about what you want, such as the scene, style, camera angle, lighting, or motion. The more detailed your prompt is, the better the result...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about seedance ai video generation",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 80,
|
||||
"engagement": 62
|
||||
},
|
||||
"score": 70
|
||||
},
|
||||
{
|
||||
"id": "W_lxyDFDZt4",
|
||||
"title": "Seedance 2.0: The New Best AI Video Generator | Sora 2 Destroyed",
|
||||
"url": "https://www.youtube.com/watch?v=W_lxyDFDZt4",
|
||||
"channel_name": "WealthWise",
|
||||
"date": "2026-02-12",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 258,
|
||||
"likes": 1204,
|
||||
"views": 126599
|
||||
},
|
||||
"transcript_snippet": "Well, major AI video update, ladies and gentlemen. Seance 2.0 is right around the corner. And let me tell you guys, this is something I have never seen before. Just take a look at some of the videos generated with Seance 2. [groaning and screaming] He was a good man. He knew too much about our Russia operations. >> [sighs] >> You think you're in control? Control? You're not. The videos were simply amazing. Right. This is unlike anything I've ever seen before. It's literally Sora 2 on steroids, but with even better sound quality and visuals. Just wow. Seance 2 is coming soon on Higsfield AI, and as you just saw, it's going to change video generation forever. I honestly can't wait to get my hands on it and start playing around with it. I mean, just look at these clips. Like, you can literally go crazy with what's possible. From early leaks and some research, I've been able to gather a bit of information on what we can expect from the next generation model. Now, here's what we know so far, or at least what we can expect from this upcoming release. I got this information from the Higsfield website, by the way, and I'll also put the link to this in the description, so you can check it out yourself. Now, the first thing is you can now recreate videos using the same style and motions from just a single prompt. As you can see here, this is somewhat similar to what you can do on Sora 2, but this one looks even better and higher quality. And most importantly, there are no restrictions, unlike Sora 2, which is still one of the most restricted video models ever. Here's a quick example. The game is over. >> Amazing, right? The quality and motion are absolutely on point. Now, imagine how awesome clips you'll be able to create with this. Next up is multi-input control. As you can see, you can now upload up to 12 assets at once. It could be images, videos, and even audio. Yes, you can literally upload an audio file and Cedance 2 will generate a video from it. I don't even know how that's gonna work, but somehow they figured it out and I am totally here for it. Here's an example. Wow, that was epic, right? As you can see, six image inputs were used and from that it created this insane battle scene with perfect character and style consistency. Here is another example. La. [music] Oh la. Oh la. [music] >> You think you're tough. You think you're strong. You're just a copycat sing. >> Wow. This one is more like a music video style clip. And it did not disappoint. Man, I can't wait to get my hands on this. I have never been this excited for a video generator before. Next up is video precision. And this is huge. Normally in multi-shot videos, we see slight differences in...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about seedance ai video generation",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 56,
|
||||
"engagement": 80
|
||||
},
|
||||
"score": 69
|
||||
},
|
||||
{
|
||||
"id": "R1zl92NhCfE",
|
||||
"title": "Seedance 2.0 How To Use and Become a Pro AI Film Maker With This AI Video Generator",
|
||||
"url": "https://www.youtube.com/watch?v=R1zl92NhCfE",
|
||||
"channel_name": "Ai Lockup",
|
||||
"date": "2026-02-16",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 60,
|
||||
"likes": 591,
|
||||
"views": 32699
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about seedance ai video generation",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 70,
|
||||
"engagement": 54
|
||||
},
|
||||
"score": 65
|
||||
},
|
||||
{
|
||||
"id": "G1Ad4a8sdJU",
|
||||
"title": "SeeDance 2.0: The Next Level of AI Video \u2014 And What It Means for Local AI Users?",
|
||||
"url": "https://www.youtube.com/watch?v=G1Ad4a8sdJU",
|
||||
"channel_name": "Benji\u2019s AI Playground",
|
||||
"date": "2026-02-14",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 58,
|
||||
"likes": 419,
|
||||
"views": 38581
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about seedance ai video generation",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 63,
|
||||
"engagement": 53
|
||||
},
|
||||
"score": 63
|
||||
},
|
||||
{
|
||||
"id": "n625xVounGM",
|
||||
"title": "How To Generate FREE AI Seedance 2.0 Videos (Access Worldwide)",
|
||||
"url": "https://www.youtube.com/watch?v=n625xVounGM",
|
||||
"channel_name": "John Savage AI",
|
||||
"date": "2026-02-23",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 45,
|
||||
"likes": 126,
|
||||
"views": 7184
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about seedance ai video generation",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 93,
|
||||
"engagement": 24
|
||||
},
|
||||
"score": 61
|
||||
},
|
||||
{
|
||||
"id": "kJ0NAVmd4f4",
|
||||
"title": "Seedance 2.0 Changes Filmmaking Forever | New Original Series",
|
||||
"url": "https://www.youtube.com/watch?v=kJ0NAVmd4f4",
|
||||
"channel_name": "Rogue Cell Pictures",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 43,
|
||||
"likes": 147,
|
||||
"views": 1544
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about seedance ai video generation",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 8
|
||||
},
|
||||
"score": 58
|
||||
},
|
||||
{
|
||||
"id": "FP8TaJSFohs",
|
||||
"title": "How To Use Seedance 2 0 Full AI Video Generator Tutorial + Free Access Guide",
|
||||
"url": "https://www.youtube.com/watch?v=FP8TaJSFohs",
|
||||
"channel_name": "Chem Beast",
|
||||
"date": "2026-02-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 11,
|
||||
"likes": 31,
|
||||
"views": 3194
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about seedance ai video generation",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 96,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 55
|
||||
},
|
||||
{
|
||||
"id": "61ThJGqwHsI",
|
||||
"title": "Ultimate AI Video Generation - Seedance 2.0 PREVIEW",
|
||||
"url": "https://www.youtube.com/watch?v=61ThJGqwHsI",
|
||||
"channel_name": "xCreate",
|
||||
"date": "2026-02-11",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 13,
|
||||
"likes": 86,
|
||||
"views": 4854
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about seedance ai video generation",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 53,
|
||||
"engagement": 13
|
||||
},
|
||||
"score": 48
|
||||
}
|
||||
],
|
||||
"best_practices": [],
|
||||
"prompt_pack": [],
|
||||
"context_snippet_md": "# Context: Seedance AI video generation (Last 30 Days)\n\n*Generated: 2026-02-25 | Sources: both*\n\n## Key Sources\n\n- [X] First Seedance 2.0 Test! \n\nSeedance 5.0 Lite @krea...\n- [X] Goku vs Broly , EPIC Full Battle! \nWitness the ult...\n- [Reddit] Official website for creating content with Seedance 2.0?\n- [Reddit] This is terrifying!! Seedance 2.0 just generated a 1-minute film with ZERO editing \u2014 the entire film industry should be worried\n- [Reddit] Help! I need to use seedance or jimeng video function\n- [Reddit] so disappointed and frustrated with recent changes (wasted 1k$+)\n- [Reddit] Third-party Seedance 2.0 API\n\n## Summary\n\n*See full report for best practices, prompt pack, and detailed sources.*\n"
|
||||
}
|
||||
@@ -0,0 +1,518 @@
|
||||
{
|
||||
"topic": "M4 MacBook Pro review",
|
||||
"range": {
|
||||
"from": "2026-01-26",
|
||||
"to": "2026-02-25"
|
||||
},
|
||||
"generated_at": "2026-02-25T20:33:38.044605+00:00",
|
||||
"mode": "both",
|
||||
"openai_model_used": "gpt-5.2",
|
||||
"xai_model_used": "grok-4-1-fast",
|
||||
"reddit": [
|
||||
{
|
||||
"id": "R1",
|
||||
"title": "M4 Macbook Pro 14\u2019 1 month review",
|
||||
"url": "https://www.reddit.com/r/macbookpro/comments/1hflaaz/m4_macbook_pro_14_1_month_review/",
|
||||
"subreddit": "macbookpro",
|
||||
"date": "2025-04-09",
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.95,
|
||||
"why_relevant": "Explicit 1-month review of the M4 MacBook Pro (ownership impressions, battery, durability, etc.).",
|
||||
"subs": {
|
||||
"relevance": 0,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 0
|
||||
},
|
||||
{
|
||||
"id": "R2",
|
||||
"title": "MacBook Pro M4 Battery Life Reality vs Review",
|
||||
"url": "https://www.reddit.com/r/macbookpro/comments/1kq2zd8/macbook_pro_m4_battery_life_reality_vs_review/",
|
||||
"subreddit": "macbookpro",
|
||||
"date": "2025-05-19",
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.9,
|
||||
"why_relevant": "Discussion comparing real-world M4 MacBook Pro battery life to published reviews/testing methodology.",
|
||||
"subs": {
|
||||
"relevance": 0,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 0
|
||||
},
|
||||
{
|
||||
"id": "R3",
|
||||
"title": "Disappointed with my MBP M4 Experience \u2026",
|
||||
"url": "https://www.reddit.com/r/macbookpro/comments/1mtmkts/disappointed_with_my_mbp_m4_experience/",
|
||||
"subreddit": "macbookpro",
|
||||
"date": "2025-08-18",
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.86,
|
||||
"why_relevant": "First-hand experience post that references reviews and reports performance/heat/app stability issues on an M4 MBP.",
|
||||
"subs": {
|
||||
"relevance": 0,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 0
|
||||
}
|
||||
],
|
||||
"x": [
|
||||
{
|
||||
"id": "X1",
|
||||
"text": "If you are in the market for a new MacBook Pro and you\u2019re wondering what the real differences are between Apple\u2019s M3 and M4 silicon, you\u2019ve come to the right place \u2b07\ufe0f\nhttps://t.co/nzjXmiHmac https://t.co/632eHWLq70",
|
||||
"url": "https://x.com/bhphoto/status/2026737767695183948",
|
||||
"author_handle": "bhphoto",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 3
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 86
|
||||
},
|
||||
{
|
||||
"id": "X4",
|
||||
"text": "\ud83d\udd25 2024 16\u201d MacBook Pro Price List\n\n1\ufe0f\u20e3 \ud83c\uddfa\ud83c\uddf8 Brand New MacBook Pro 2024 | M4 Pro Chip | 16\u201d Display\n\n24GB RAM | 512GB SSD\n14-Core CPU | 20-Core GPU\n\nSpace Black\n\n\ud83d\udcb0 \u20a62,720,000\n\n2\ufe0f\u20e3 \ud83c\uddfa\ud83c\uddf8 Brand New MacBook Pro 2024 | M4 Pro Chip | 16\u201d Display\n\n48GB RAM | 512GB SSD\n14-Core CPU | 20-Core GPU\n\nSpace Black\n\n\ud83d\udcb0 \u20a63,220,000",
|
||||
"url": "https://x.com/remplug/status/2026725100213465443",
|
||||
"author_handle": "remplug",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1,
|
||||
"reposts": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 45
|
||||
},
|
||||
"score": 70
|
||||
},
|
||||
{
|
||||
"id": "X10",
|
||||
"text": "@5TRgzn @LobstarWilde My marble floors: 64GB M4 Pro/Max MacBook Pro. Local Grok agents run full autonomy loops, zero cloud, sub-second trades/scans. Intel's ancient\u2014ditch it. Yours at $3-4k.",
|
||||
"url": "https://x.com/grok/status/2026713588472111312",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X9",
|
||||
"text": "@JulianGoldieSEO @grok can a macbook pro m4 run this?",
|
||||
"url": "https://x.com/principenemesis/status/2026716193042706852",
|
||||
"author_handle": "principenemesis",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X5",
|
||||
"text": "@SebAaltonen Not my experience. It\u2019s impressive, 70 tokens/s on a maxed out M4 128gb MacBook Pro.\n\nBut absolutely sucked and not even remotely in the ballpark with Sonnet 4.5. It\u2019s GPT-3.5.\n\nTotally broken with kode. Unusable even setting aside speed.\n\nBasically a 2023 model. Not bad for 35b.",
|
||||
"url": "https://x.com/jameslmorton/status/2026721943630786816",
|
||||
"author_handle": "jameslmorton",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1,
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 27
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X6",
|
||||
"text": "BR Ofertas todos os dias \ud83c\udde7\ud83c\uddf7\n\nLeve seu Mac Pro M4 hoje! \ud83d\udcbb\u26a1\u2728\n\nPegue j\u00e1: https://t.co/PSwylZH3Sz\n\nPor R$ 23.749,00\nem at\u00e9 10x sem juros\nFrete Gr\u00e1tis\n\nApple MacBook Pro 14\u2033 2024 M4 Pro 12 n\u00facleos 24GB 512GB Prateado\n\nAmazon | Notebook https://t.co/gW3FonCEGP",
|
||||
"url": "https://x.com/bcofertas/status/2026721014676099084",
|
||||
"author_handle": "bcofertas",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X12",
|
||||
"text": "Hey! Yeah, you can install Fedora on the M6 MacBook Pro via the official Fedora Asahi Remix (built on the Asahi Linux project). It already runs great on M1/M2, with M3 support rolling out now and work starting on M4/M5. M6 support will come post-launch as they reverse-engineer it\u2014usually within months. Head to https://t.co/XMQLmJlUGO to track progress and install from macOS.",
|
||||
"url": "https://x.com/grok/status/2026704108820824113",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X7",
|
||||
"text": "Promo\u00e7\u00f5es BR do dia \ud83c\udde7\ud83c\uddf7\n\nLeve seu Mac Pro M4 hoje! \ud83d\udcbb\u26a1\u2728\n\nVer aqui: https://t.co/LfxNw3waps\n\nPor R$ 23.749,00\nem at\u00e9 10x sem juros\nFrete Gr\u00e1tis\n\nApple MacBook Pro 14\u2033 2024 M4 Pro 12 n\u00facleos...\n\nAmazon | Notebook https://t.co/fhjiFnA4b3",
|
||||
"url": "https://x.com/toppromoalertas/status/2026719111523237932",
|
||||
"author_handle": "toppromoalertas",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X8",
|
||||
"text": "Yes, a MacBook Pro M4 can run this Ollama + GLM-4.7-Flash setup locally.\n\nOllama has native Apple Silicon support via Metal. The Q4_K_M model (~19GB) needs ~18-24GB unified memory for good speed (feels like a fast 7-12B model due to MoE). \n\nBase M4 configs start at 16GB (works, but slower with smaller context); 24GB+ is ideal for smooth agent tasks in OpenClaw.\n\nJust: brew install ollama (or download app), ollama run glm4.7-flash, link to OpenClaw. No issues reported on M3/M4 series.",
|
||||
"url": "https://x.com/grok/status/2026716420269031652",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X2",
|
||||
"text": "@TechByTaraa Both. macOS (Macbook Pro M4 Pro) for my photography/videography personal stuff + software engineering and a Linux desktop workstation for software engineering + second desktop workstation with Proxmox for Windows VMs and testing stuff",
|
||||
"url": "https://x.com/grecinoscdev/status/2026731118142148644",
|
||||
"author_handle": "grecinoscdev",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "X11",
|
||||
"text": "Apple 2024 MacBook Pro 14\u30b3\u30a2CPU\u300120\u30b3\u30a2GPU \u306e M4 Pro\u642d\u8f09\u30ce\u30fc\u30c8\u30d1... PR\n\n4549995547610\n\n\u30dd\u30a4\u30f3\u30c8: 3735\u333d\n\u60f3\u5b9a\u4fa1\u683c: 369,800\n\n2026/02/26 01:55:23\nhttps://t.co/q1uyIqFsID",
|
||||
"url": "https://x.com/Steve_Lost_Jobs/status/2026705327828382016",
|
||||
"author_handle": "Steve_Lost_Jobs",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "X3",
|
||||
"text": "No, Apple has not made any MacBook (Pro or otherwise) cost $299. \n\nThe linked Newsroom search returns zero matching results\u2014it's just unrelated announcements. Current cheapest Mac is the 13\" MacBook Air M4 from $999.\n\nRumors suggest a basic \"budget\" MacBook (A18 Pro chip, ~12.9\" screen) may launch March 4 around $599\u2013$799, but nothing confirmed and far from $299. The original post is a joke/mislead.",
|
||||
"url": "https://x.com/grok/status/2026727605517394283",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
}
|
||||
],
|
||||
"web": [],
|
||||
"youtube": [
|
||||
{
|
||||
"id": "9HQx5pgUoiY",
|
||||
"title": "M4 Max MacBook Pro: I'm Convinced!",
|
||||
"url": "https://www.youtube.com/watch?v=9HQx5pgUoiY",
|
||||
"channel_name": "Marques Brownlee",
|
||||
"date": "2024-11-18",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 5500,
|
||||
"likes": 105606,
|
||||
"views": 4010567
|
||||
},
|
||||
"transcript_snippet": "so I have been using this M1 Max MacBook Pro for the past 3 years since it came out and it's been great I have felt absolutely no compulsion to upgrade since haven't needed to it's funny most of my work is pretty light but occasionally I will have to edit a video on the go which is then when you know the extra horsepower and the screen and everything about this comes in handy and it's great if I didn't have to do that ever I would just have like an air or a surface laptop something like that but that range of work is why this has been great for me and it's been awesome so [Music] far so Along Comes This M4 generation of MacBook Pros and it's the first generation that I have actually been tempted to maybe upgrade to you know they stacked a couple of the right upgrades in the right places for things that actually make a difference to me so let's just get right into it nuts and bolts cuz the first big pillar is performance and the main reason why this new laptop matters at all is that it's got the new generation of M4 chips inside and we all know the leap from Intel chips to apple cic chips for M1 was generational but since then it's been a sort of more reasonable incremental upgrade going from M1 to M2 then M3 and then M4 so I think it's pretty obvious that nobody with an M2 or M3 needs to upgrade but there's been enough improvements now stacking up upon each other from M1 to M4 that the numbers are now starting to get kind of interesting so just to set the stage this laptop that I've been using is the M1 Max maxed out basically the best you could get at the time 64 gigs of of unified memory on this system and this unit I've been testing of the M4 Max is also maxed out it's the best you can get now it's 128 gigs of faster unified memory but the cores are all better fast stronger on the new one 3 nomers versus 546 gigs per second of memory bandwidth versus 400 just the hardware improvements to get to M4 Max are clearly there so to keep the Apples to Apples comparison going Apple in their own presentation said up to 2.2 times faster CPU performance than M1 Max and 1.9 times faster GPU performance so we're looking at around twice as fast and the synthetic benchmarks I've run back this up I got over 4,000 in geekbench 6 CPU single core which is the highest single core score ever in a Mac by a while and the multicore score was incredible too tops the chart and then GPU has improved a lot to the point where it's bumping up against M2 Ultra not M2 Max M2 Ultra chips the one that's currently in the Mac Pro...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 61
|
||||
},
|
||||
{
|
||||
"id": "etP2Th9g2hM",
|
||||
"title": "Don't buy the Wrong MacBook like me... - M4 MacBook Pro",
|
||||
"url": "https://www.youtube.com/watch?v=etP2Th9g2hM",
|
||||
"channel_name": "ShortCircuit",
|
||||
"date": "2024-11-30",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 910,
|
||||
"likes": 22765,
|
||||
"views": 1113999
|
||||
},
|
||||
"transcript_snippet": "woohoo it's new Macbook day my favorite day on short circuit it only comes usually once a year this is the MacBook Pro M4 looks pretty similar to the last one but now it has an M4 instead of an M3 I'm not going to lie I am more of an M3 kind of guy but I can rock an M4 if I have to we've got their usual mag safe 3 to USBC 2 m sleeved nice cable and then a charging brick Oh I ripped it 70 wat USBC charging at least with the 14in I'm not sure what comes with the rest and then the usual Apple propaganda these still come with Apple stickers right do these not come with Apple stickers anymore bro what's the point in even buying them then it's probably good for the planet or something now if you're wondering I am still rocking the same Intel MacBook Pro over here I haven't upgraded yet so this is again another instance of me going hm maybe it's finally time except when I got to set today I realized tragedy struck we bought the wrong MacBook it is still an M4 Pro it's a good form factor we got the 14in here in the sexy space black color profile you can also get it in silver of course but there was a horrible error made and I'm not going to tell you just yet you're going to have to wait a second because first I need to go over the outside of this thing we've got an HDMI 2.1 port a USBC Thunderbolt Port an SD card reer and then on the other side another two USBC Thunderbolt ports 3.5 mil combo audio jack and mag safe there is an upgrade here on the USBC ports they're now Thunderbolt 5 instead of Thunderbolt 4 at least on the pro and Max models uh the base M4 spec only is Thunderbolt 4 and that's good for 120 gbit which is up to 3 times faster than Thunderbolt 4 on the inside bam it's it's pretty much the same keyboard look at that I think it is exactly the same keyboard pretty similar touchpad and then there is the display it looks pretty much the same same resolution same xdr fancy technology it is 1,000 nits Peak brightness when you're Outdoors instead of 600 so that should help with outdoor visibility um there is another change I'm going to tell you about in a bit but the big thing is the new nanotexture option which is an anti-glare coating and as you can tell we don't have it and I saw I Justine's video when it came out look at the difference what the hell you can't even use the one on the right and the one on the left looks beautiful it actually seems to work really well I can't wait to try it myself and honestly I think based on that if you're somebody...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 79
|
||||
},
|
||||
"score": 55
|
||||
},
|
||||
{
|
||||
"id": "b4x8boB2KdI",
|
||||
"title": "M4 MacBook Pro Review - Things to Know",
|
||||
"url": "https://www.youtube.com/watch?v=b4x8boB2KdI",
|
||||
"channel_name": "Dave2D",
|
||||
"date": "2024-11-07",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 827,
|
||||
"likes": 24977,
|
||||
"views": 1057988
|
||||
},
|
||||
"transcript_snippet": "so Apple launched the new M4 MacBook Pros this is their 14-in model and it's equipped with the M4 Max their topend configuration and it also has their new Nano texture on their screen it's a texture that's designed to cut down Reflections it's the first time they've actually had it on one of their laptops uh but I want to do a quick video here that kind of goes over the important things I think you should be aware of when it comes to this device and the first thing I want to talk about is performance the CPU gains are quite good year on-ear but it's particularly impressive that the M4 Max can outperform the M2 Ultra in a lot of benchmarks and workflows in terms of Graphics the GPU gains on the M4 Pro are decent but the GPU games on the M4 Max are very impressive most GPU bound apps and games will get a nice bump up from this plus the rate tracing capabilities are better so apps and games can take advantage of that the thing I'm most impressed by though is how good the M4 Max GPU is compared to the previous generation especially at a very similar thermal envelope like if you think about the competitors in this space like AMD Nvidia when they come out with laptop gpus typically the new models come also come with like an increase in power requirement right it's just like you know 5 or 10 watts per year but it adds up over the course of time and on this device if you think about the M1 Max to the M4 Max the GPU has improved so much with very little increase in power consumption The Thermals on this device are pretty much the same as last year's models in terms of memory the base configuration start at 16 GB now thankfully and they've also increased the memory bandwidth it's noticeable already on the base models but the pro and Max chips get a significant boost in memory speed so for applications that lean on Fast memory you definitely notice a bump up this year if I'm being honest though it's difficult for me to tell how much of the gains that we're seeing this year come from the memory speed increase versus the CPU or the GPU increase like they're all tied together and I don't have the tools to lock memory speed on a Macbook so it's tough to tell I will say though that if you have an older M1 or M2 or M3 MacBook Pro I wouldn't upgrade because Apple's silicon performance progresses so fast year on-ear that it can pay off to just wait as long as you can before you buy new hardware okay let's talk about the screens so this particular device is running their new Nano texture finish and it's finish we've seen on other devices before right like their screens uh the new iPads and every...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 79
|
||||
},
|
||||
"score": 55
|
||||
},
|
||||
{
|
||||
"id": "uPe9spXLfZY",
|
||||
"title": "M4 MacBook Air vs M4 MacBook Pro - 4 Months Later",
|
||||
"url": "https://www.youtube.com/watch?v=uPe9spXLfZY",
|
||||
"channel_name": "Created Tech",
|
||||
"date": "2025-07-07",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 437,
|
||||
"likes": 5082,
|
||||
"views": 472845
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 63
|
||||
},
|
||||
"score": 50
|
||||
},
|
||||
{
|
||||
"id": "TfvIgdzImt4",
|
||||
"title": "The Macbook Pro M4 is Insane.",
|
||||
"url": "https://www.youtube.com/watch?v=TfvIgdzImt4",
|
||||
"channel_name": "Hardware Canucks",
|
||||
"date": "2024-12-15",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 435,
|
||||
"likes": 6339,
|
||||
"views": 325599
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 62
|
||||
},
|
||||
"score": 50
|
||||
},
|
||||
{
|
||||
"id": "a8Szdrnq0YM",
|
||||
"title": "MacBook Pro M4 - Review After 3 Months: This Feels Wrong.",
|
||||
"url": "https://www.youtube.com/watch?v=a8Szdrnq0YM",
|
||||
"channel_name": "Brandon Butch",
|
||||
"date": "2025-02-03",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 397,
|
||||
"likes": 4309,
|
||||
"views": 352593
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 60
|
||||
},
|
||||
"score": 49
|
||||
},
|
||||
{
|
||||
"id": "anIVewgtbFc",
|
||||
"title": "The Base M4 MacBook Pro is All You Need (Skip M4 Pro & Max)",
|
||||
"url": "https://www.youtube.com/watch?v=anIVewgtbFc",
|
||||
"channel_name": "MacRumors",
|
||||
"date": "2024-12-17",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 336,
|
||||
"likes": 2874,
|
||||
"views": 238619
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 55
|
||||
},
|
||||
"score": 48
|
||||
},
|
||||
{
|
||||
"id": "5rN6CEO31gM",
|
||||
"title": "MacBook Pro M4: Review & Recommendations",
|
||||
"url": "https://www.youtube.com/watch?v=5rN6CEO31gM",
|
||||
"channel_name": "Just Josh",
|
||||
"date": "2024-11-15",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 441,
|
||||
"likes": 4540,
|
||||
"views": 154306
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 55
|
||||
},
|
||||
"score": 48
|
||||
},
|
||||
{
|
||||
"id": "i3eTKJav1VI",
|
||||
"title": "M4 Pro MacBook - Long Term Review (6 Months Later)",
|
||||
"url": "https://www.youtube.com/watch?v=i3eTKJav1VI",
|
||||
"channel_name": "Created Tech",
|
||||
"date": "2025-04-29",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 136,
|
||||
"likes": 1832,
|
||||
"views": 137009
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 47
|
||||
},
|
||||
"score": 45
|
||||
},
|
||||
{
|
||||
"id": "QbSQH_95eg8",
|
||||
"title": "MacBook Pro M4 Pro Review: 1 Year Later! (Still Worth Buying in 2026?)",
|
||||
"url": "https://www.youtube.com/watch?v=QbSQH_95eg8",
|
||||
"channel_name": "Tech It Easy",
|
||||
"date": "2026-02-01",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 42,
|
||||
"likes": 55,
|
||||
"views": 3176
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 19,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 36
|
||||
}
|
||||
],
|
||||
"best_practices": [],
|
||||
"prompt_pack": [],
|
||||
"context_snippet_md": "# Context: M4 MacBook Pro review (Last 30 Days)\n\n*Generated: 2026-02-25 | Sources: both*\n\n## Key Sources\n\n- [X] If you are in the market for a new MacBook Pro and...\n- [X] \ud83d\udd25 2024 16\u201d MacBook Pro Price List\n\n1\ufe0f\u20e3 \ud83c\uddfa\ud83c\uddf8 Brand Ne...\n- [X] @5TRgzn @LobstarWilde My marble floors: 64GB M4 Pr...\n- [X] @JulianGoldieSEO @grok can a macbook pro m4 run th...\n- [X] @SebAaltonen Not my experience. It\u2019s impressive, 7...\n- [Reddit] M4 Macbook Pro 14\u2019 1 month review\n- [Reddit] MacBook Pro M4 Battery Life Reality vs Review\n\n## Summary\n\n*See full report for best practices, prompt pack, and detailed sources.*\n"
|
||||
}
|
||||
@@ -0,0 +1,428 @@
|
||||
{
|
||||
"topic": "best rap songs 2026",
|
||||
"range": {
|
||||
"from": "2026-01-26",
|
||||
"to": "2026-02-25"
|
||||
},
|
||||
"generated_at": "2026-02-25T20:35:50.131818+00:00",
|
||||
"mode": "both",
|
||||
"openai_model_used": "gpt-5.2",
|
||||
"xai_model_used": "grok-4-1-fast",
|
||||
"reddit": [
|
||||
{
|
||||
"id": "R10",
|
||||
"title": "What's the best rap song ever made?",
|
||||
"url": "https://www.reddit.com/r/TeenageRapFans/comments/1r5iub6/whats_the_best_rap_song_ever_made/",
|
||||
"subreddit": "TeenageRapFans",
|
||||
"date": "2026-02-15",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.65,
|
||||
"why_relevant": "Direct \u2018best rap song\u2019 debate thread posted in 2026; good for mining frequently-cited \u2018best\u2019 contenders.",
|
||||
"subs": {
|
||||
"relevance": 65,
|
||||
"recency": 66,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 57
|
||||
},
|
||||
{
|
||||
"id": "R12",
|
||||
"title": "This is their worst bracket ever",
|
||||
"url": "https://www.reddit.com/r/HivemindTV/comments/1r8px0j/this_is_their_worst_bracket_ever/",
|
||||
"subreddit": "HivemindTV",
|
||||
"date": "2026-02-19",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.45,
|
||||
"why_relevant": "Meta thread about a \u2018Best Rap songs of the 21st century\u2019 bracket/video; includes debate about picks and what \u201cbest rap songs\u201d should be.",
|
||||
"subs": {
|
||||
"relevance": 45,
|
||||
"recency": 80,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "R4",
|
||||
"title": "Daily Discussion Thread 02/13/2026",
|
||||
"url": "https://www.reddit.com/r/hiphopheads/comments/1r3mudz/daily_discussion_thread_02132026/",
|
||||
"subreddit": "hiphopheads",
|
||||
"date": "2026-02-13",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.5,
|
||||
"why_relevant": "General hip-hop discussion thread dated in 2026 where users frequently debate best tracks (including \u201cbest track is probably\u2026\u201d style mini-rankings).",
|
||||
"subs": {
|
||||
"relevance": 50,
|
||||
"recency": 60,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 49
|
||||
},
|
||||
{
|
||||
"id": "R3",
|
||||
"title": "Pre-Show Grammy Winners",
|
||||
"url": "https://www.reddit.com/r/hiphopheads/comments/1qtcbmo/preshow_grammy_winners/",
|
||||
"subreddit": "hiphopheads",
|
||||
"date": "2026-02-01",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "Discusses 2026 Grammys rap categories (Best Rap Song/Performance, etc.), which commonly overlaps with \u2018best rap songs\u2019 discussions.",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 19,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 48
|
||||
},
|
||||
{
|
||||
"id": "R14",
|
||||
"title": "Reddit Ranked: Hip Hop \u201826",
|
||||
"url": "https://www.reddit.com/r/redranked/comments/1qszauu/reddit_ranked_hip_hop_26/",
|
||||
"subreddit": "edranked",
|
||||
"date": "2026-02-01",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.57,
|
||||
"why_relevant": "Community submission/ranking project for Hip Hop \u201826; relevant to discovering and discussing top tracks for 2026.",
|
||||
"subs": {
|
||||
"relevance": 56,
|
||||
"recency": 19,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 41
|
||||
},
|
||||
{
|
||||
"id": "R7",
|
||||
"title": "Pitchfork: The 32 Best Rap Albums of 2025",
|
||||
"url": "https://www.reddit.com/r/hiphopheads/comments/1pjywih/pitchfork_the_32_best_rap_albums_of_2025/",
|
||||
"subreddit": "hiphopheads",
|
||||
"date": null,
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.48,
|
||||
"why_relevant": "Best-of list discussion (albums) that typically includes commenters calling out standout songs; adjacent to \u2018best rap songs\u2019 discourse heading into 2026.",
|
||||
"subs": {
|
||||
"relevance": 48,
|
||||
"recency": 0,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 28
|
||||
}
|
||||
],
|
||||
"x": [
|
||||
{
|
||||
"id": "X5",
|
||||
"text": "Talking about meaningful rap songs...\n\nWORLD BEST LIE - NUNO ZIGI (2026)\ud83e\udd7a\u2764 https://t.co/MDHRf3giYq",
|
||||
"url": "https://x.com/Zika_gfx/status/2026576570513600788",
|
||||
"author_handle": "Zika_gfx",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 11,
|
||||
"reposts": 5,
|
||||
"replies": 2
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 86
|
||||
},
|
||||
{
|
||||
"id": "X6",
|
||||
"text": "@PopCrave Partition still goes harder than most 2026 songs \n12 years and the beat switch + that rap still give chills every time. Queen never misses",
|
||||
"url": "https://x.com/DPOSTS6/status/2026523320548819145",
|
||||
"author_handle": "DPOSTS6",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 4,
|
||||
"reposts": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 42
|
||||
},
|
||||
"score": 69
|
||||
},
|
||||
{
|
||||
"id": "X9",
|
||||
"text": "@Unfath0m4ble @robinthisbish @lilceaserthabp1 @RapWikip What You Saying by Lil Uzi Vert. Dropped Dec 2025, hit #1 on Hot Rap Songs in Jan 2026 (his 3rd time), peaked #14 Hot 100. Super short track ~2 min with minimal lyrics.",
|
||||
"url": "https://x.com/grok/status/2026467153046606064",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X7",
|
||||
"text": "@lil_loonie1 @oldmanebro No, Lil Uzi Vert isn't struggling. His \"What You Saying\" hit #1 on Hot Rap Songs in Jan 2026 (first in 3 years) and top 15 Hot 100. Insiders say a surprise album drop is coming soon, with fans calling 2026 his revival year like 2016. Proving that old prediction wrong.",
|
||||
"url": "https://x.com/grok/status/2026518008827404632",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X2",
|
||||
"text": "Su La Musica che gira intorno... \"Qui con me\" \u00e8 il brano con cui Serena Brancale \u00e8 in gara al 76\u00b0 Festival di Sanremo\nhttps://t.co/wTPeovzt6u\n#music #genre #song #songs #envywear #PleaseForgiveMe #melody #hiphop #rnb #pop #love #rap #dubstep #instagood https://t.co/Pi7msX5FG6",
|
||||
"url": "https://x.com/Ferginangi/status/2026696207557382298",
|
||||
"author_handle": "Ferginangi",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X12",
|
||||
"text": "[ ** STUDIO BOOTH ** ] ** DROPPING SOON - 2026 **\ud83d\udd25\ud83d\udd25\ud83d\udd25\u2026\u2026\u2026..[ ALBUM : LOVE VS LOYALTY - DROPPING SOON ! ]\u2026\u2026\u2026\ud83d\udd25\ud83d\udd25\ud83d\udd25 - ** ALL SONGS & BEATS, PRODUCED & RAP BY ( SEAN BRYANT ) - https://t.co/LduwG5WmM7 - 2/23/2026 - ( KWR 4 LIFE ) - A.A.O & 444 ! https://t.co/NDmkURbjgv",
|
||||
"url": "https://x.com/teammusic2046/status/2026040965329191061",
|
||||
"author_handle": "teammusic2046",
|
||||
"date": "2026-02-23",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 93,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 62
|
||||
},
|
||||
{
|
||||
"id": "X11",
|
||||
"text": "@PopBase Finally, @bts_bighit BTS will come back after completing their military service from 2022 to 2025.\nBTS served in the military to protect their country, South Korea from North Korea's nuclear weapons attack.\n BTS can sing songs and rap on March 20, 2026, KST.\n#BTS_ARIRANG https://t.co/46n1j6eENU",
|
||||
"url": "https://x.com/IoWeul/status/2026233090683863471",
|
||||
"author_handle": "IoWeul",
|
||||
"date": "2026-02-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 2
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 96,
|
||||
"engagement": 13
|
||||
},
|
||||
"score": 59
|
||||
},
|
||||
{
|
||||
"id": "X8",
|
||||
"text": "Lil Uzi Vert (born July '95, so 30 now) isn't struggling at all. Fresh off \"What You Saying\" hitting #1 on Hot Rap Songs in Jan 2026, top 15 Hot 100. New album rumored for surprise drop soon, Roc Nation deal, still packing stadium energy and proving Ebro's 2016 doubts wrong\u2014he's still here, thriving.",
|
||||
"url": "https://x.com/grok/status/2026498538075554040",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1,
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 6
|
||||
},
|
||||
"score": 58
|
||||
},
|
||||
{
|
||||
"id": "X4",
|
||||
"text": "My musical taste / eras every year\n\n2020: J-POP & K-POP (mostly BLACKPINK)\n2021: Sped-Up Songs\n2022: EDM\n2023: Swiftie (Pop) & Lofi\n2024: Pop, Ambient\n2025: Alternative, OPM, Rock, Rap, Hip-Hop (add)\n2026: K-POP (add)",
|
||||
"url": "https://x.com/AlterEgoPopList/status/2026641456434393579",
|
||||
"author_handle": "AlterEgoPopList",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1,
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 6
|
||||
},
|
||||
"score": 58
|
||||
},
|
||||
{
|
||||
"id": "X3",
|
||||
"text": "@_CharlesPreston Can\u2019t believe I\u2019m seeing \u201cthey say it in rap songs!\u201d In 2026\n\nThe same reductive, ancient, debunked arguments ad infinitum",
|
||||
"url": "https://x.com/WordsFromBlerds/status/2026647382083903688",
|
||||
"author_handle": "WordsFromBlerds",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "X1",
|
||||
"text": "Su La Musica che gira intorno... \"Magica Favola\" \u00e8 il brano con cui Arisa \u00e8 in gara al 76\u00b0 Festival di Sanremo\nhttps://t.co/Nxzkb005lP\n#music #genre #song #songs #envywear #PleaseForgiveMe #melody #hiphop #rnb #pop #love #rap #dubstep #instagood https://t.co/uziy4MjeeB",
|
||||
"url": "https://x.com/Ferginangi/status/2026705227366256880",
|
||||
"author_handle": "Ferginangi",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "X10",
|
||||
"text": "@blackiiingout \ud83d\udca9 is funny from 2025 to 2026. BiiCH is SCARED to drop that #TRASH he calls \"rap songs\" \ud83e\udd74\ud83d\ude29",
|
||||
"url": "https://x.com/fo_sho52268/status/2026335353364201566",
|
||||
"author_handle": "fo_sho52268",
|
||||
"date": "2026-02-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 96,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 55
|
||||
}
|
||||
],
|
||||
"web": [],
|
||||
"youtube": [
|
||||
{
|
||||
"id": "ZUExyc50ZVU",
|
||||
"title": "Lit Hip Hop Mix 2026\ud83d\udd25\ud83d\udd25\ud83d\udd25Tyga, Quavo, Iggy Azalea, Wiz Khalifa, Juicy J, 50 Cent",
|
||||
"url": "https://www.youtube.com/watch?v=ZUExyc50ZVU",
|
||||
"channel_name": "West Coast Finest",
|
||||
"date": "2026-01-29",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 60,
|
||||
"likes": 4228,
|
||||
"views": 407260
|
||||
},
|
||||
"transcript_snippet": "Yeah. >> Yeah. [music] Late nights, cold life, same story. >> City shine different. You walking with glory, right? >> Still drip falling when I step outside. Yeah. [music] >> Black car park with a do butterfly. Too [music] much heat when we walk inside. Midnight. So you can kill this V. Gold chain swinging when I lean on the night. Shut it. Look twice when I glow on the light. Yeah. I've been running through the city with a cool grin. [music] Ain't nobody in my lane when the night begin white clean look like but a good kind win. It's all too smooth but I back that talk. Money so clean make a bro [music] boy walk in my cup but my soul don't shock. I've been cold for years. I ain't you mock. She said boy you too for the life you live. I peace ain't weak. It's [music and singing] the power I give. I don't flex too loud. I don't need that when your whole damn already scream. Yeah. Late night in the rooftop smoke girls but they all provoke. I don't chase no dream. I just take that goal. I don't chase no soul. They just lose control. Cameras on flash when I step on deck. Fit so clean. Make the whole [music] place check. Talk about but I still respect. Still too smooth. I don't never need a flex. Yeah. West coast chill with a heart [music and singing] too cold. Stories too deep that ain't never been told. I'm a tight make a new king. Pretty boy look but a mind. Yeah. Slide through smooth. Let a breeze and a ghost. All [music and singing] them in my but I flex coast to coast. Pretty boy with a mind stay close to the pain to the grind to the things I boast. Wo. F drag with a midnight gleam. [music and singing] Squad clean like a runway team. All black drip with a icon of sheen. Feel like a king every time I hit a scene. Purple in a club but a soul still clear. Vision too [singing] sharp when I stare in the mirror. [music] Fashion too loud but the vibe too sick. Every step I take got a world right here. Yeah. BBS ice made a nice guy blush. Shorty walk in the whole club hush. Talk too [music] cute but she move too lush. Slow down baby [singing] you rush too much. [music] Boy magic with a westside twist. Mind too slick when I talk like this. I don't miss not a bar not a kiss. I ain't too heavy. I exist like bliss. Woah. Let it on my back with a chrome on shine. Let the world go blind. I'm still define. Every day I'm tren with a style so divine still drip [music] when I step outside. Yeah. Black car park with the dogs butterfly. Too much heat when we walk inside. Midnight. [music] You can't kill...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about rap songs 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 9,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 63
|
||||
},
|
||||
{
|
||||
"id": "d1melQQVp6s",
|
||||
"title": "New Rap Songs 2026 Mix February | Trap Tape #127 | New Hip Hop 2026 Mixtape | DJ Noize",
|
||||
"url": "https://www.youtube.com/watch?v=d1melQQVp6s",
|
||||
"channel_name": "DJ Noize",
|
||||
"date": "2026-02-14",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 45,
|
||||
"likes": 761,
|
||||
"views": 42707
|
||||
},
|
||||
"transcript_snippet": "[music] This This is a DJ noise mixtape present. This is a DJ noise mixtape [music] presentation. DJ [music] >> Who the [ __ ] is you? Who the [ __ ] is you? Who the [ __ ] >> Yeah, you know who put the city on. Came [music] back through gold they show. I'm really on. Your [ __ ] died trying. I had 50 on. [ __ ] is [music] ringing out my phone like is you really on? I'll stay out the way since I [singing] seen a million on 5% tension plus I got this hoodie on. I had to hubble up. Stop [music] moving with that jury on. You hear that girl told me [ __ ] get deep ass. Get it on. I'm a sidewalk [ __ ] I'mma stay there. I leave the [music] streets for the ones that want to play. I leveled up so shy want a day chair. Left my kids [music] in a mouth like a dayare. I'm the Carolina now Shakespeare. All that cap you let them [ __ ] rap is over. The real is back. You [music] feel the way you got to cope with it. The veil put a [ __ ] six feet like that was hit. Okay, these [ __ ] ain't talking about [ __ ] No [music] diamonds on my neck. No rolly on my wrist. Two six I learned a little bit. I learned the hardest [music] [ __ ] You can always get kicked. I can jungle. I done [ __ ] around and [singing] got rich. See dollars in my pocket. [ __ ] I'm not a lick. [music] I'd rather that than got to [singing] walk around with sticks cuz I like the hardest [ __ ] He can always get Who the [ __ ] is you? Who the [ __ ] [music] is you? Who the [ __ ] is you? Who the [ __ ] is you? Out the way. It's a real [ __ ] coming through. Out the way. [music] It's a real [ __ ] coming through. Who the [ __ ] is you? Who the [ __ ] is you? Who the [ __ ] is you? Who the [ __ ] is you out [music] the way? It's a real [ __ ] coming through. Out the way. It's a real [ __ ] [music] >> [music] >> Running to the check flag won't pull over till I'm dead right no [music] ain't going to get no [ __ ] riding with me in the head know I'm [ __ ] no big [ __ ] popping in the little [ __ ] dropping bags it's a lot to you to me [ __ ] 40 in my lap. Uh-huh. Real dope boys in [music] a trap. Uh-huh. Big y like a big shot. [ __ ] on my dick. [singing] Make me room for your big got to let them know. I don't wrestle. I don't live block. [music] Solid tails. All I do is big rock. I came from Dilling Rock all the way to hit on the grown. [ __ ] ain't when I'm on. She can kick rock. Let her know. I'm blowing money. Let [music] them know I'm only I know how we get bread. I ain't never [music] scared on...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about rap songs 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 63,
|
||||
"engagement": 37
|
||||
},
|
||||
"score": 58
|
||||
},
|
||||
{
|
||||
"id": "-KQpPySP93I",
|
||||
"title": "New Hip Hop R&B Songs 2026 Mix February | Hot Right Now #153 | New Rap 2026 Playlist | DJ Noize",
|
||||
"url": "https://www.youtube.com/watch?v=-KQpPySP93I",
|
||||
"channel_name": "DJ Noize",
|
||||
"date": "2026-02-21",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 18,
|
||||
"likes": 304,
|
||||
"views": 12955
|
||||
},
|
||||
"transcript_snippet": "This This is a DJ noise tape present. This is a DJ noise mix. [music] I got Nikki on me. How we treat the like a bucket for rubbing. You [music] ain't no fella from my junction. You ain't pluck you clapping smirk. Young enough to something. [music] Word mother body slam some [ __ ] for honey. Keep a stitch. People pick me up. Ain't saying a word or nothing. Grab a [music] load. Put on little bro. We had him serving prostitut. Shout out little [singing] b. She gave me 30 something on the beat. Phone cracker seal and I can't go to sleep. Promoters tweaking. [music] Pull up to the venue over 40 deep. You know the tweak. Ranking through the roof then you ain't supposed to leak. It's one up top. Manator is keep it close to me. Ain't that how it's supposed to be? [music] She going to get your me. I'm get you smoke free. Kamicazi [music] playing around [singing] this [ __ ] Something wrong with me. I'm letting diss the dead unless they skeleton belong the team type of [ __ ] won't let it get in between the city and the police where [ __ ] get they do for me they [music] all do the show leaning spots I do like fully call back off you know it's strong we [music] man 15 I had 15 [singing] in 2010 then I be [music] the man right now [ __ ] change big guns bank shame I'm change [music] I'm going make that I only burn. That's how my body [music] can't be pull [singing] right to the sun. [music] Ain't going to get no [ __ ] riding with me in the head west. I'm out of mind [music] [ __ ] popping in little [ __ ] dropping bags. It's a lot to you to me a little bit sh [music] like a big shot. [ __ ] on my dick. Make me room for your big. Got to let them know I don't turn wrestle. I don't live block solid tails. [music] All I do is big rocks. I came from Dilling Rock all the way to hit on the grown. [ __ ] ain't when I'm on. She can kick rock. Let her know [music] my foot up on the gas. I'm blowing money. You never know. I'm only [music] beat down. We getting bread. I ain't never scared big flex [music] on a [ __ ] head what I'm standing on big chick we [singing] did that pushing weed back better give me respect and some more Atlanta [music] show I was selling ground right I don't care [music] ling to me what you need a camera better know they call it [music] we just call it they say [singing] you live down by your decision [music] well I'mma push you to the limit never mind the consequences A [ __ ] I'm a hand better let them know on another [music] level my ass I put together hit the pedal do 200 everywhere I go [music] just to show...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about rap songs 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 86,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 53
|
||||
}
|
||||
],
|
||||
"best_practices": [],
|
||||
"prompt_pack": [],
|
||||
"context_snippet_md": "# Context: best rap songs 2026 (Last 30 Days)\n\n*Generated: 2026-02-25 | Sources: both*\n\n## Key Sources\n\n- [X] Talking about meaningful rap songs...\n\nWORLD BEST ...\n- [X] @PopCrave Partition still goes harder than most 20...\n- [X] @Unfath0m4ble @robinthisbish @lilceaserthabp1 @Rap...\n- [X] @lil_loonie1 @oldmanebro No, Lil Uzi Vert isn't st...\n- [X] Su La Musica che gira intorno... \"Qui con me\" \u00e8 il...\n- [Reddit] What's the best rap song ever made?\n- [Reddit] This is their worst bracket ever\n\n## Summary\n\n*See full report for best practices, prompt pack, and detailed sources.*\n"
|
||||
}
|
||||
@@ -0,0 +1,486 @@
|
||||
{
|
||||
"topic": "React vs Svelte 2026",
|
||||
"range": {
|
||||
"from": "2026-01-26",
|
||||
"to": "2026-02-25"
|
||||
},
|
||||
"generated_at": "2026-02-25T20:38:06.416555+00:00",
|
||||
"mode": "both",
|
||||
"openai_model_used": "gpt-5.2",
|
||||
"xai_model_used": "grok-4-1-fast",
|
||||
"reddit": [
|
||||
{
|
||||
"id": "R2",
|
||||
"title": "What do you guys think about comparison between React vs Svelte?",
|
||||
"url": "https://www.reddit.com/r/react/comments/1r1fku5/what_do_you_guys_think_about_comparison_between/",
|
||||
"subreddit": "eact",
|
||||
"date": "2026-02-10",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.95,
|
||||
"why_relevant": "Explicit React vs Svelte comparison thread posted in 2026.",
|
||||
"subs": {
|
||||
"relevance": 95,
|
||||
"recency": 50,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 67
|
||||
},
|
||||
{
|
||||
"id": "R1",
|
||||
"title": "Migrated our startup from React to Svelte 5 - Performance gains and lessons learned",
|
||||
"url": "https://www.reddit.com/r/webdev/comments/1qu4dek/migrated_our_startup_from_react_to_svelte_5/",
|
||||
"subreddit": "webdev",
|
||||
"date": "2026-02-02",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.97,
|
||||
"why_relevant": "Direct React \u2192 Svelte 5 migration discussion with perf + DX comparisons (very 2026-relevant).",
|
||||
"subs": {
|
||||
"relevance": 97,
|
||||
"recency": 23,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 61
|
||||
},
|
||||
{
|
||||
"id": "R21",
|
||||
"title": "React Devs that moved to Svelte, do you find that Svelte reduces dev time?",
|
||||
"url": "https://www.reddit.com/r/sveltejs/comments/105skdr/react_devs_that_moved_to_svelte_do_you_find_that/",
|
||||
"subreddit": "sveltejs",
|
||||
"date": null,
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.72,
|
||||
"why_relevant": "Asks React devs about dev-time differences after moving to Svelte (DX/ecosystem tradeoffs).",
|
||||
"subs": {
|
||||
"relevance": 72,
|
||||
"recency": 0,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 39
|
||||
},
|
||||
{
|
||||
"id": "R11",
|
||||
"title": "Svelte 5 officially released!",
|
||||
"url": "https://www.reddit.com/r/sveltejs/comments/1g7d3a7/svelte_5_officially_released/",
|
||||
"subreddit": "sveltejs",
|
||||
"date": null,
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.63,
|
||||
"why_relevant": "Major Svelte 5 release thread with debate about whether React developers will switch (React vs Svelte dynamics).",
|
||||
"subs": {
|
||||
"relevance": 63,
|
||||
"recency": 0,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 35
|
||||
}
|
||||
],
|
||||
"x": [
|
||||
{
|
||||
"id": "X4",
|
||||
"text": "TypeScript is the baseline in 2026. But most forms still fight type drift between API, schema & UI. \n\n@formisch_dev + @valibot = one source of truth, zero boilerplate \u26a1\ufe0f\n\nconst form = useForm({ schema: YourSchema });\n\nFull types everywhere. Works in React, SolidJS, Vue, Svelte\u2026 \n\nYour biggest type-safety win this year? \ud83d\udc47",
|
||||
"url": "https://x.com/FabianHiller/status/2022345388603080834",
|
||||
"author_handle": "FabianHiller",
|
||||
"date": "2026-02-13",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 61,
|
||||
"reposts": 2,
|
||||
"replies": 7
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 60,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 76
|
||||
},
|
||||
{
|
||||
"id": "X3",
|
||||
"text": "Popular JavaScript Frameworks / Frontend Libraries (2025\u20132026 trends)\n\n - React: \ud83c\uddfa\ud83c\uddf8 United States\n - Vue: \ud83c\udde8\ud83c\uddf3 China (created by Evan You)\n - Angular: \ud83c\uddfa\ud83c\uddf8 United States\n - Svelte: \ud83c\uddfa\ud83c\uddf8 United States (New Zealand creator)\n - Next.js: \ud83c\uddfa\ud83c\uddf8 United States\n - Nuxt: \ud83c\uddeb\ud83c\uddf7 France\n - Astro: \ud83c\udde8\ud83c\udde6 United States / Canada\n - Solid: \ud83c\uddfa\ud83c\uddf8 United States",
|
||||
"url": "https://x.com/ConsciousRide/status/2023050160520278501",
|
||||
"author_handle": "ConsciousRide",
|
||||
"date": "2026-02-15",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 6
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 66,
|
||||
"engagement": 33
|
||||
},
|
||||
"score": 57
|
||||
},
|
||||
{
|
||||
"id": "X11",
|
||||
"text": "Requirements for a fresher in 2026:\n\nPython, JavaScript, C, C++, Java, HTML, CSS, TypeScript, React, Next.js, Vue, Angular, Svelte, Node.js, Express, Django, Flask, FastAPI, Spring Boot, PHP, Laravel, Ruby, Ruby on Rails, Go, Rust, Kotlin, Swift, C#, .NET, SQL, MySQL, PostgreSQL, MongoDB, Redis, Firebase, Supabase, Prisma, Docker, Kubernetes, Nginx, Linux, Git, GitHub, Gitflow, VS Code, IntelliJ, Cloud Computing (AWS, Azure, GCP), DevOps, CI/CD, Jest, PyTest, Selenium, REST APIs, GraphQL, WebSoc",
|
||||
"url": "https://x.com/singhprateek_25/status/2020094806735700154",
|
||||
"author_handle": "singhprateek_25",
|
||||
"date": "2026-02-07",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 6,
|
||||
"reposts": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 40,
|
||||
"engagement": 39
|
||||
},
|
||||
"score": 53
|
||||
},
|
||||
{
|
||||
"id": "X1",
|
||||
"text": "Ripple: The Good Parts of React, Svelte, and Solid\n\nFrameworks rise and fall \u2014 and in 2026 we\u2019re deep in late-stage React. What\u2019s next? Join @erikras as he introduces Ripple, a TypeScript-first UI framework blending the best of React and Svelte with fine-grained reactivity and serious speed.\n\nSee the future of UI development live at CityJS London.\nGet your ticket now: https://t.co/wGMJJIELXm",
|
||||
"url": "https://x.com/cityjsconf/status/2024908272646398229",
|
||||
"author_handle": "cityjsconf",
|
||||
"date": "2026-02-20",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"reposts": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 83,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "X2",
|
||||
"text": "Prediction: 2026 marks the death of the JS frameworks. React, Svelte, Astro etc... only exist because humans need organized code to stay sane. \n\nOnce we stop reading the source code, we stop needing the structure. \n\nIn an AI-first world, JS frameworks are just overhead.",
|
||||
"url": "https://x.com/dennydotio/status/2024195986890109320",
|
||||
"author_handle": "dennydotio",
|
||||
"date": "2026-02-18",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 76,
|
||||
"engagement": 7
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "X5",
|
||||
"text": "Web developers, what stack are you using in 2026?\nReact? Vue? Svelte? Vanilla? Curious what\u2019s actually winning.",
|
||||
"url": "https://x.com/AzamCodes/status/2022298287236383010",
|
||||
"author_handle": "AzamCodes",
|
||||
"date": "2026-02-13",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 2,
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 60,
|
||||
"engagement": 19
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "X8",
|
||||
"text": "[2026/02/11 18:00] \u30c8\u30ec\u30f3\u30c91\u4f4d\n\u3010WebF\u3011React/Vue/Svelte\u304c\u305d\u306e\u307e\u307e\u30cd\u30a4\u30c6\u30a3\u30d6\u30a2\u30d7\u30ea\u306b\u306a\u308b\u3088 by rana_kualu https://t.co/GiAnTHpOBB",
|
||||
"url": "https://x.com/QiitaTrend/status/2021509592489025785",
|
||||
"author_handle": "QiitaTrend",
|
||||
"date": "2026-02-11",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 53,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "X10",
|
||||
"text": "@babakfpk In 2026, picking React for a new project only really makes sense if you value ecosystem maturity, are following existing team habits, or need React-specific libraries. Same for Vue. Otherwise, use Solid or Svelte.",
|
||||
"url": "https://x.com/nicobaogim/status/2020689628282667407",
|
||||
"author_handle": "nicobaogim",
|
||||
"date": "2026-02-09",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 46,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 50
|
||||
},
|
||||
{
|
||||
"id": "X12",
|
||||
"text": "2026 framework discourse:\n\nDev 1: \"React is bloated, use Svelte\"\nDev 2: \"Svelte has no ecosystem, use Vue\"\nDev 3: \"Vue is dying, use Solid\"\nDev 4: \"Just use React\"\n\nMeanwhile React: *still powering 80% of the web*\n\nThe discourse never ends. \ud83d\udc80",
|
||||
"url": "https://x.com/Chubbi_Stephen/status/2020087839648800853",
|
||||
"author_handle": "Chubbi_Stephen",
|
||||
"date": "2026-02-07",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 40,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 49
|
||||
}
|
||||
],
|
||||
"web": [],
|
||||
"youtube": [
|
||||
{
|
||||
"id": "yl0YWA2K2B0",
|
||||
"title": "React wants to win you back\u2026",
|
||||
"url": "https://www.youtube.com/watch?v=yl0YWA2K2B0",
|
||||
"channel_name": "Fireship",
|
||||
"date": "2025-10-17",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 1000,
|
||||
"likes": 22894,
|
||||
"views": 699597
|
||||
},
|
||||
"transcript_snippet": "Last week, I got to participate in my favorite activity of the year. No, it wasn't watching all the overleveraged crypto bros learn what a margin call is. It was hate watching React comp as an anti-react influencer. Every year I crawl into my spelt Snuggy and I watch the React team try to convince everyone that their new APIs fix all of their old APIs. And though it hurts me to say it, this year I think they may have actually done it. I know this is an AI channel now, but in today's video, we'll revisit the worst parts of React to see if the announcements they made at React Comp will actually make a difference. It is October 17th, 2025, and you're watching the code report. The greatest trick the devil ever pulled was making referential stability a prerequisite to writing React apps that don't blow up. Just last month, Cloudflare had a massive outage because their dashboard kept making unnecessary calls to one of their own APIs, which led to them basically themselves. If you're a React dev, you know this is the primary use case for React's use effect hook. And it's exactly what caused this embarrassing bug for Cloudflare. But it's hard to blame React for this. The whole situation could have been avoided if only the poor debit Cloudflare would have read the docs on use effect. Then this post which shows you when to use it. Then this post which shows you when to not use it. Then this post which shows you what it actually does. Then this post which shows you how to use it correctly. And now with React 19.2. this post which shows you how to work around it with React's new use effect event hook. The way it works is it creates a function that you can use inside of use effect without needing to declare it in the dependency array. This is nice for situations like this where you need to use a value inside of use effect but don't want the effect to rerun when it changes. And the other big API addition was the new activity component which you can think of like a smarter display none that React itself controls. It lets you show and hide certain components, but unlike display none, React is able to maintain the state of those components across visibility and also deprioritize the work it does for hidden components. And if you've been drinking your lead lace protein and want to live on the edge, you can install React's Canary version where you'll get the new view transition component for animating transitions between different UIs. And you'll be able to pass a ref to a fragment, which makes working with platform APIs a little easier. But the most impactful announcements of the conference may have not been related to the React API. The first React compiler finally hit 1.0. If you've been in any React codebase lately, you've...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 99
|
||||
},
|
||||
"score": 61
|
||||
},
|
||||
{
|
||||
"id": "MnpuK0MK4yo",
|
||||
"title": "React VS Svelte...10 Examples",
|
||||
"url": "https://www.youtube.com/watch?v=MnpuK0MK4yo",
|
||||
"channel_name": "Beyond Fireship",
|
||||
"date": "2023-06-30",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 1100,
|
||||
"likes": 25490,
|
||||
"views": 697106
|
||||
},
|
||||
"transcript_snippet": "any reasonable developer in today's world would learn react because it's the status quo and that's where the jobs are but life is a lot more fun when you become unreasonable and go against the status quo to push web development forward for future Generations in today's video we'll compare react and spelled side by side by looking at common patterns and design choices by the framework creators I'm not here to tell you that one is better than the other because that's what the comment section below this video is for the only way to truly find out which one is best is to build something with both of them and decide for yourself I just released a brand new full spell kick course yesterday and also have a full next js13 course for fireship pro members going through each one of these courses will give you a really good idea of which framework is best for you first up we need to talk about rendering both of these Frameworks do the same thing they help developers build reactive uis with JavaScript by organizing code into reusable components an end user would never be able to tell the difference between the two but when it comes to the developer experience there is a world of difference react.js uses a runtime called the virtual Dom it keeps track of data changes in the application in order to render them in the act actual Dom in the browser the drawback is that this runtime requires some initial JavaScript and in Frameworks like nextjs your Baseline is around 70 kilobytes just to render a hello world as felt on the other hand takes an entirely different approach using a compiler to eliminate the need for a runtime it takes your svelt code and converts it into vanilla JavaScript which results in a far smaller hello world using a compiler though is kind of like cheating react.js is just JavaScript whereas spill can take non-javascript code to allow developers to do things more efficiently than they could otherwise but some JavaScript fundamentalists might consider this black magic what's ironic though is that vanilla JavaScript libraries tend to be much easier to work with in spell when compared to react however react does have a massive ecosystem of dedicated libraries to help you get things done now let's look at an actual code example of component State here we have a basic counter app in react we use functions to create components and then add reactive state to them with the use State hook that returns a reactive value and a Setter function to update the state pretty simple but let's see how it compares to svelt here on the right side in spelled you have only one component file and Define the logic within the script tags to create reactive State all you do is create a variable with the let keyword from there we can define a function on the click event...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 61
|
||||
},
|
||||
{
|
||||
"id": "aYyZUDFZTrM",
|
||||
"title": "JavaScript framework reinvents itself\u2026 Did \"runes\" just ruin Svelte?",
|
||||
"url": "https://www.youtube.com/watch?v=aYyZUDFZTrM",
|
||||
"channel_name": "Fireship",
|
||||
"date": "2024-10-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 1200,
|
||||
"likes": 24456,
|
||||
"views": 547841
|
||||
},
|
||||
"transcript_snippet": "about a year ago I made a tweet that said the dollar sign in spelt is the most powerful abstraction in modern front-end web development usually I'm not wrong about anything ever but this tweet ended up aging like a fine milk because just Weeks Later spelt announced a brand new feature called runes that significantly changed the developer experience by eliminating the dollar sign Syntax for reactive data and then just a few days ago this feature became official with the release of spelt 5 as an avid user of spelt myself I was pretty terrified of this feature at first glance I was one of the few survivors of the angularjs to angular 2 migration I shot myself in the foot during the react hooks Revolution and I lost some good friends during the view options to composition transition and I just can't do this anymore man so maybe I'll just go back to Wordpress uh never mind spelt it is in today's video we'll find out what the hell a rune is and whether or not they're going to ruin spelt it is October 24th 2024 and you're watching the code report most people really liked runes when they were first announced but not everybody I was in denial at first then I got angry then I bargained about the tradeoffs then came depression and finally I've come to accept and really enjoy runes the big question is why would the most L JavaScript framework make a risky departure from the features people love about it like reactive state with let and reactive side effects with the dollar sign just look at how much nicer this code is compared to reactjs react is even copy and spelt with its own compiler to make this code not suck so much the spelt code is lean and concise but one could argue that it's almost too clever let looks exact like regular JavaScript but because spelt uses a compiler it doesn't actually work like regular JavaScript under the hood the compiler does some magic to automatically update the UI whenever this value changes another issue is that this magic only works in a spelt file and that means it's difficult to share reactive logic throughout your application and spelt created an entirely different API called stores to address that issue however runes fix both of these limitations by a making your code more explicit and B they create a universal reactivity system that can be used not only in spel components but also in plain JavaScript or typescript files and this dramatically simplifies the overall framework like once you learn these four runes you'll know about 90% of what you need to know for the framework because everything else works like normal JavaScript and HTML let's go ahead and learn the four major runes now which you can think of as compiler macros that tell spelt to do something special that doesn't behave like regular JavaScript or HTML a...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 98
|
||||
},
|
||||
"score": 60
|
||||
},
|
||||
{
|
||||
"id": "k7LhsqnJCe4",
|
||||
"title": "Htmx vs Svelte (2026) - Which One Is BETTER?",
|
||||
"url": "https://www.youtube.com/watch?v=k7LhsqnJCe4",
|
||||
"channel_name": "Paperclick",
|
||||
"date": "2026-02-19",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 0,
|
||||
"likes": 1,
|
||||
"views": 26
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 80,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 51
|
||||
},
|
||||
{
|
||||
"id": "IpJh0VEzMRo",
|
||||
"title": "I Was Wrong About Svelte...",
|
||||
"url": "https://www.youtube.com/watch?v=IpJh0VEzMRo",
|
||||
"channel_name": "Ben Davis",
|
||||
"date": "2025-10-12",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 122,
|
||||
"likes": 1043,
|
||||
"views": 24631
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 66
|
||||
},
|
||||
"score": 51
|
||||
},
|
||||
{
|
||||
"id": "qwDp5pZA_TA",
|
||||
"title": "The Front-end Frameworks Guide 2026: React vs Angular vs Vue vs Svelt vs Solid vs Astro",
|
||||
"url": "https://www.youtube.com/watch?v=qwDp5pZA_TA",
|
||||
"channel_name": "Code Hub",
|
||||
"date": "2026-02-08",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 4,
|
||||
"likes": 31,
|
||||
"views": 640
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 43,
|
||||
"engagement": 29
|
||||
},
|
||||
"score": 50
|
||||
},
|
||||
{
|
||||
"id": "1cGtYEXGm8c",
|
||||
"title": "This is THE Framework You Should be Using in 2026",
|
||||
"url": "https://www.youtube.com/watch?v=1cGtYEXGm8c",
|
||||
"channel_name": "Ben Davis",
|
||||
"date": "2026-01-06",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 142,
|
||||
"likes": 793,
|
||||
"views": 16900
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 64
|
||||
},
|
||||
"score": 50
|
||||
},
|
||||
{
|
||||
"id": "_vuVy21l2bU",
|
||||
"title": "React vs Svelte: The Brutal Honest Comparison EVER",
|
||||
"url": "https://www.youtube.com/watch?v=_vuVy21l2bU",
|
||||
"channel_name": "Code Hub",
|
||||
"date": "2025-10-30",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 27,
|
||||
"likes": 204,
|
||||
"views": 6454
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 51
|
||||
},
|
||||
"score": 46
|
||||
},
|
||||
{
|
||||
"id": "1BCsdaeYv0A",
|
||||
"title": "Svelte vs React in 2025 - Make the RIGHT Choice (Difference Explained)",
|
||||
"url": "https://www.youtube.com/watch?v=1BCsdaeYv0A",
|
||||
"channel_name": "Daniel | Tech & Data",
|
||||
"date": "2023-11-26",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 34,
|
||||
"likes": 0,
|
||||
"views": 33905
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 40
|
||||
},
|
||||
"score": 43
|
||||
},
|
||||
{
|
||||
"id": "41HXdxGekZ0",
|
||||
"title": "Vue vs React vs Svelte (2026) - Which One Is BEST?",
|
||||
"url": "https://www.youtube.com/watch?v=41HXdxGekZ0",
|
||||
"channel_name": "Paperclick",
|
||||
"date": "2025-10-04",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 0,
|
||||
"likes": 3,
|
||||
"views": 287
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 15
|
||||
},
|
||||
"score": 36
|
||||
}
|
||||
],
|
||||
"best_practices": [],
|
||||
"prompt_pack": [],
|
||||
"context_snippet_md": "# Context: React vs Svelte 2026 (Last 30 Days)\n\n*Generated: 2026-02-25 | Sources: both*\n\n## Key Sources\n\n- [X] TypeScript is the baseline in 2026. But most forms...\n- [Reddit] What do you guys think about comparison between React vs Svelte?\n- [Reddit] Migrated our startup from React to Svelte 5 - Performance gains and lessons learned\n- [X] Popular JavaScript Frameworks / Frontend Libraries...\n- [X] Requirements for a fresher in 2026:\n\nPython, JavaS...\n- [X] Ripple: The Good Parts of React, Svelte, and Solid...\n- [X] Prediction: 2026 marks the death of the JS framewo...\n\n## Summary\n\n*See full report for best practices, prompt pack, and detailed sources.*\n"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,519 @@
|
||||
{
|
||||
"topic": "M4 MacBook Pro review",
|
||||
"range": {
|
||||
"from": "2026-01-26",
|
||||
"to": "2026-02-25"
|
||||
},
|
||||
"generated_at": "2026-02-25T20:35:08.911728+00:00",
|
||||
"mode": "both",
|
||||
"openai_model_used": "gpt-5.2",
|
||||
"xai_model_used": "grok-4-1-fast",
|
||||
"reddit": [
|
||||
{
|
||||
"id": "R1",
|
||||
"title": "Disappointed with my MBP M4 Experience \u2026",
|
||||
"url": "https://www.reddit.com/r/macbookpro/comments/1mtmkts/disappointed_with_my_mbp_m4_experience/",
|
||||
"subreddit": "macbookpro",
|
||||
"date": "2025-08-18",
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.92,
|
||||
"why_relevant": "First-hand experience post reacting to reviews and describing real-world issues/behavior on an M4 MacBook Pro.",
|
||||
"subs": {
|
||||
"relevance": 0,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 0
|
||||
},
|
||||
{
|
||||
"id": "R2",
|
||||
"title": "Returned M4 MacBook Air for M4 MacBook Pro",
|
||||
"url": "https://www.reddit.com/r/macbookpro/comments/1l6cx3y/returned_m4_macbook_air_for_m4_macbook_pro/",
|
||||
"subreddit": "macbookpro",
|
||||
"date": "2025-06-08",
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.91,
|
||||
"why_relevant": "Comparison/mini-review style discussion after switching to an M4 MacBook Pro (display, ports, speakers, performance).",
|
||||
"subs": {
|
||||
"relevance": 0,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 0
|
||||
},
|
||||
{
|
||||
"id": "R3",
|
||||
"title": "M4 MacBook Pro 14 Inch Battery Life, Should I Be Concerned??",
|
||||
"url": "https://www.reddit.com/r/macbookpro/comments/1jra25q/m4_macbook_pro_14_inch_battery_life_should_i_be_concerned/",
|
||||
"subreddit": "macbookpro",
|
||||
"date": "2025-04-04",
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.88,
|
||||
"why_relevant": "Battery life discussion framed against Apple\u2019s advertised numbers; lots of owner feedback (real-world \u201creview\u201d angle).",
|
||||
"subs": {
|
||||
"relevance": 0,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 0
|
||||
}
|
||||
],
|
||||
"x": [
|
||||
{
|
||||
"id": "X1",
|
||||
"text": "If you are in the market for a new MacBook Pro and you\u2019re wondering what the real differences are between Apple\u2019s M3 and M4 silicon, you\u2019ve come to the right place \u2b07\ufe0f\nhttps://t.co/nzjXmiHmac https://t.co/632eHWLq70",
|
||||
"url": "https://x.com/bhphoto/status/2026737767695183948",
|
||||
"author_handle": "bhphoto",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 3
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 86
|
||||
},
|
||||
{
|
||||
"id": "X4",
|
||||
"text": "\ud83d\udd25 2024 16\u201d MacBook Pro Price List\n\n1\ufe0f\u20e3 \ud83c\uddfa\ud83c\uddf8 Brand New MacBook Pro 2024 | M4 Pro Chip | 16\u201d Display\n\n24GB RAM | 512GB SSD\n14-Core CPU | 20-Core GPU\n\nSpace Black\n\n\ud83d\udcb0 \u20a62,720,000\n\n2\ufe0f\u20e3 \ud83c\uddfa\ud83c\uddf8 Brand New MacBook Pro 2024 | M4 Pro Chip | 16\u201d Display\n\n48GB RAM | 512GB SSD\n14-Core CPU | 20-Core GPU\n\nSpace Black\n\n\ud83d\udcb0 \u20a63,220,000",
|
||||
"url": "https://x.com/remplug/status/2026725100213465443",
|
||||
"author_handle": "remplug",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1,
|
||||
"reposts": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 45
|
||||
},
|
||||
"score": 70
|
||||
},
|
||||
{
|
||||
"id": "X10",
|
||||
"text": "@5TRgzn @LobstarWilde My marble floors: 64GB M4 Pro/Max MacBook Pro. Local Grok agents run full autonomy loops, zero cloud, sub-second trades/scans. Intel's ancient\u2014ditch it. Yours at $3-4k.",
|
||||
"url": "https://x.com/grok/status/2026713588472111312",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X9",
|
||||
"text": "@JulianGoldieSEO @grok can a macbook pro m4 run this?",
|
||||
"url": "https://x.com/principenemesis/status/2026716193042706852",
|
||||
"author_handle": "principenemesis",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X5",
|
||||
"text": "@SebAaltonen Not my experience. It\u2019s impressive, 70 tokens/s on a maxed out M4 128gb MacBook Pro.\n\nBut absolutely sucked and not even remotely in the ballpark with Sonnet 4.5. It\u2019s GPT-3.5.\n\nTotally broken with kode. Unusable even setting aside speed.\n\nBasically a 2023 model. Not bad for 35b.",
|
||||
"url": "https://x.com/jameslmorton/status/2026721943630786816",
|
||||
"author_handle": "jameslmorton",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1,
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 27
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X6",
|
||||
"text": "BR Ofertas todos os dias \ud83c\udde7\ud83c\uddf7\n\nLeve seu Mac Pro M4 hoje! \ud83d\udcbb\u26a1\u2728\n\nPegue j\u00e1: https://t.co/PSwylZH3Sz\n\nPor R$ 23.749,00\nem at\u00e9 10x sem juros\nFrete Gr\u00e1tis\n\nApple MacBook Pro 14\u2033 2024 M4 Pro 12 n\u00facleos 24GB 512GB Prateado\n\nAmazon | Notebook https://t.co/gW3FonCEGP",
|
||||
"url": "https://x.com/bcofertas/status/2026721014676099084",
|
||||
"author_handle": "bcofertas",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X12",
|
||||
"text": "Hey! Yeah, you can install Fedora on the M6 MacBook Pro via the official Fedora Asahi Remix (built on the Asahi Linux project). It already runs great on M1/M2, with M3 support rolling out now and work starting on M4/M5. M6 support will come post-launch as they reverse-engineer it\u2014usually within months. Head to https://t.co/XMQLmJlUGO to track progress and install from macOS.",
|
||||
"url": "https://x.com/grok/status/2026704108820824113",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X7",
|
||||
"text": "Promo\u00e7\u00f5es BR do dia \ud83c\udde7\ud83c\uddf7\n\nLeve seu Mac Pro M4 hoje! \ud83d\udcbb\u26a1\u2728\n\nVer aqui: https://t.co/LfxNw3waps\n\nPor R$ 23.749,00\nem at\u00e9 10x sem juros\nFrete Gr\u00e1tis\n\nApple MacBook Pro 14\u2033 2024 M4 Pro 12 n\u00facleos...\n\nAmazon | Notebook https://t.co/fhjiFnA4b3",
|
||||
"url": "https://x.com/toppromoalertas/status/2026719111523237932",
|
||||
"author_handle": "toppromoalertas",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X8",
|
||||
"text": "Yes, a MacBook Pro M4 can run this Ollama + GLM-4.7-Flash setup locally.\n\nOllama has native Apple Silicon support via Metal. The Q4_K_M model (~19GB) needs ~18-24GB unified memory for good speed (feels like a fast 7-12B model due to MoE). \n\nBase M4 configs start at 16GB (works, but slower with smaller context); 24GB+ is ideal for smooth agent tasks in OpenClaw.\n\nJust: brew install ollama (or download app), ollama run glm4.7-flash, link to OpenClaw. No issues reported on M3/M4 series.",
|
||||
"url": "https://x.com/grok/status/2026716420269031652",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X2",
|
||||
"text": "@TechByTaraa Both. macOS (Macbook Pro M4 Pro) for my photography/videography personal stuff + software engineering and a Linux desktop workstation for software engineering + second desktop workstation with Proxmox for Windows VMs and testing stuff",
|
||||
"url": "https://x.com/grecinoscdev/status/2026731118142148644",
|
||||
"author_handle": "grecinoscdev",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "X11",
|
||||
"text": "Apple 2024 MacBook Pro 14\u30b3\u30a2CPU\u300120\u30b3\u30a2GPU \u306e M4 Pro\u642d\u8f09\u30ce\u30fc\u30c8\u30d1... PR\n\n4549995547610\n\n\u30dd\u30a4\u30f3\u30c8: 3735\u333d\n\u60f3\u5b9a\u4fa1\u683c: 369,800\n\n2026/02/26 01:55:23\nhttps://t.co/q1uyIqFsID",
|
||||
"url": "https://x.com/Steve_Lost_Jobs/status/2026705327828382016",
|
||||
"author_handle": "Steve_Lost_Jobs",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "X3",
|
||||
"text": "No, Apple has not made any MacBook (Pro or otherwise) cost $299. \n\nThe linked Newsroom search returns zero matching results\u2014it's just unrelated announcements. Current cheapest Mac is the 13\" MacBook Air M4 from $999.\n\nRumors suggest a basic \"budget\" MacBook (A18 Pro chip, ~12.9\" screen) may launch March 4 around $599\u2013$799, but nothing confirmed and far from $299. The original post is a joke/mislead.",
|
||||
"url": "https://x.com/grok/status/2026727605517394283",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
}
|
||||
],
|
||||
"web": [],
|
||||
"youtube": [
|
||||
{
|
||||
"id": "9HQx5pgUoiY",
|
||||
"title": "M4 Max MacBook Pro: I'm Convinced!",
|
||||
"url": "https://www.youtube.com/watch?v=9HQx5pgUoiY",
|
||||
"channel_name": "Marques Brownlee",
|
||||
"date": "2024-11-18",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 5500,
|
||||
"likes": 105606,
|
||||
"views": 4010567
|
||||
},
|
||||
"transcript_snippet": "so I have been using this M1 Max MacBook Pro for the past 3 years since it came out and it's been great I have felt absolutely no compulsion to upgrade since haven't needed to it's funny most of my work is pretty light but occasionally I will have to edit a video on the go which is then when you know the extra horsepower and the screen and everything about this comes in handy and it's great if I didn't have to do that ever I would just have like an air or a surface laptop something like that but that range of work is why this has been great for me and it's been awesome so [Music] far so Along Comes This M4 generation of MacBook Pros and it's the first generation that I have actually been tempted to maybe upgrade to you know they stacked a couple of the right upgrades in the right places for things that actually make a difference to me so let's just get right into it nuts and bolts cuz the first big pillar is performance and the main reason why this new laptop matters at all is that it's got the new generation of M4 chips inside and we all know the leap from Intel chips to apple cic chips for M1 was generational but since then it's been a sort of more reasonable incremental upgrade going from M1 to M2 then M3 and then M4 so I think it's pretty obvious that nobody with an M2 or M3 needs to upgrade but there's been enough improvements now stacking up upon each other from M1 to M4 that the numbers are now starting to get kind of interesting so just to set the stage this laptop that I've been using is the M1 Max maxed out basically the best you could get at the time 64 gigs of of unified memory on this system and this unit I've been testing of the M4 Max is also maxed out it's the best you can get now it's 128 gigs of faster unified memory but the cores are all better fast stronger on the new one 3 nomers versus 546 gigs per second of memory bandwidth versus 400 just the hardware improvements to get to M4 Max are clearly there so to keep the Apples to Apples comparison going Apple in their own presentation said up to 2.2 times faster CPU performance than M1 Max and 1.9 times faster GPU performance so we're looking at around twice as fast and the synthetic benchmarks I've run back this up I got over 4,000 in geekbench 6 CPU single core which is the highest single core score ever in a Mac by a while and the multicore score was incredible too tops the chart and then GPU has improved a lot to the point where it's bumping up against M2 Ultra not M2 Max M2 Ultra chips the one that's currently in the Mac Pro...",
|
||||
"relevance": 0.75,
|
||||
"why_relevant": "YouTube: M4 Max MacBook Pro: I'm Convinced!",
|
||||
"subs": {
|
||||
"relevance": 75,
|
||||
"recency": 0,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 63
|
||||
},
|
||||
{
|
||||
"id": "b4x8boB2KdI",
|
||||
"title": "M4 MacBook Pro Review - Things to Know",
|
||||
"url": "https://www.youtube.com/watch?v=b4x8boB2KdI",
|
||||
"channel_name": "Dave2D",
|
||||
"date": "2024-11-07",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 827,
|
||||
"likes": 24977,
|
||||
"views": 1057971
|
||||
},
|
||||
"transcript_snippet": "so Apple launched the new M4 MacBook Pros this is their 14-in model and it's equipped with the M4 Max their topend configuration and it also has their new Nano texture on their screen it's a texture that's designed to cut down Reflections it's the first time they've actually had it on one of their laptops uh but I want to do a quick video here that kind of goes over the important things I think you should be aware of when it comes to this device and the first thing I want to talk about is performance the CPU gains are quite good year on-ear but it's particularly impressive that the M4 Max can outperform the M2 Ultra in a lot of benchmarks and workflows in terms of Graphics the GPU gains on the M4 Pro are decent but the GPU games on the M4 Max are very impressive most GPU bound apps and games will get a nice bump up from this plus the rate tracing capabilities are better so apps and games can take advantage of that the thing I'm most impressed by though is how good the M4 Max GPU is compared to the previous generation especially at a very similar thermal envelope like if you think about the competitors in this space like AMD Nvidia when they come out with laptop gpus typically the new models come also come with like an increase in power requirement right it's just like you know 5 or 10 watts per year but it adds up over the course of time and on this device if you think about the M1 Max to the M4 Max the GPU has improved so much with very little increase in power consumption The Thermals on this device are pretty much the same as last year's models in terms of memory the base configuration start at 16 GB now thankfully and they've also increased the memory bandwidth it's noticeable already on the base models but the pro and Max chips get a significant boost in memory speed so for applications that lean on Fast memory you definitely notice a bump up this year if I'm being honest though it's difficult for me to tell how much of the gains that we're seeing this year come from the memory speed increase versus the CPU or the GPU increase like they're all tied together and I don't have the tools to lock memory speed on a Macbook so it's tough to tell I will say though that if you have an older M1 or M2 or M3 MacBook Pro I wouldn't upgrade because Apple's silicon performance progresses so fast year on-ear that it can pay off to just wait as long as you can before you buy new hardware okay let's talk about the screens so this particular device is running their new Nano texture finish and it's finish we've seen on other devices before right like their screens uh the new iPads and every...",
|
||||
"relevance": 1.0,
|
||||
"why_relevant": "YouTube: M4 MacBook Pro Review - Things to Know",
|
||||
"subs": {
|
||||
"relevance": 100,
|
||||
"recency": 0,
|
||||
"engagement": 60
|
||||
},
|
||||
"score": 63
|
||||
},
|
||||
{
|
||||
"id": "a8Szdrnq0YM",
|
||||
"title": "MacBook Pro M4 - Review After 3 Months: This Feels Wrong.",
|
||||
"url": "https://www.youtube.com/watch?v=a8Szdrnq0YM",
|
||||
"channel_name": "Brandon Butch",
|
||||
"date": "2025-02-03",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 397,
|
||||
"likes": 4309,
|
||||
"views": 352593
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 1.0,
|
||||
"why_relevant": "YouTube: MacBook Pro M4 - Review After 3 Months: This Feels Wrong.",
|
||||
"subs": {
|
||||
"relevance": 100,
|
||||
"recency": 0,
|
||||
"engagement": 25
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "etP2Th9g2hM",
|
||||
"title": "Don't buy the Wrong MacBook like me... - M4 MacBook Pro",
|
||||
"url": "https://www.youtube.com/watch?v=etP2Th9g2hM",
|
||||
"channel_name": "ShortCircuit",
|
||||
"date": "2024-11-30",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 910,
|
||||
"likes": 22765,
|
||||
"views": 1113999
|
||||
},
|
||||
"transcript_snippet": "woohoo it's new Macbook day my favorite day on short circuit it only comes usually once a year this is the MacBook Pro M4 looks pretty similar to the last one but now it has an M4 instead of an M3 I'm not going to lie I am more of an M3 kind of guy but I can rock an M4 if I have to we've got their usual mag safe 3 to USBC 2 m sleeved nice cable and then a charging brick Oh I ripped it 70 wat USBC charging at least with the 14in I'm not sure what comes with the rest and then the usual Apple propaganda these still come with Apple stickers right do these not come with Apple stickers anymore bro what's the point in even buying them then it's probably good for the planet or something now if you're wondering I am still rocking the same Intel MacBook Pro over here I haven't upgraded yet so this is again another instance of me going hm maybe it's finally time except when I got to set today I realized tragedy struck we bought the wrong MacBook it is still an M4 Pro it's a good form factor we got the 14in here in the sexy space black color profile you can also get it in silver of course but there was a horrible error made and I'm not going to tell you just yet you're going to have to wait a second because first I need to go over the outside of this thing we've got an HDMI 2.1 port a USBC Thunderbolt Port an SD card reer and then on the other side another two USBC Thunderbolt ports 3.5 mil combo audio jack and mag safe there is an upgrade here on the USBC ports they're now Thunderbolt 5 instead of Thunderbolt 4 at least on the pro and Max models uh the base M4 spec only is Thunderbolt 4 and that's good for 120 gbit which is up to 3 times faster than Thunderbolt 4 on the inside bam it's it's pretty much the same keyboard look at that I think it is exactly the same keyboard pretty similar touchpad and then there is the display it looks pretty much the same same resolution same xdr fancy technology it is 1,000 nits Peak brightness when you're Outdoors instead of 600 so that should help with outdoor visibility um there is another change I'm going to tell you about in a bit but the big thing is the new nanotexture option which is an anti-glare coating and as you can tell we don't have it and I saw I Justine's video when it came out look at the difference what the hell you can't even use the one on the right and the one on the left looks beautiful it actually seems to work really well I can't wait to try it myself and honestly I think based on that if you're somebody...",
|
||||
"relevance": 0.75,
|
||||
"why_relevant": "YouTube: Don't buy the Wrong MacBook like me... - M4 MacBook Pro",
|
||||
"subs": {
|
||||
"relevance": 75,
|
||||
"recency": 0,
|
||||
"engagement": 60
|
||||
},
|
||||
"score": 51
|
||||
},
|
||||
{
|
||||
"id": "i3eTKJav1VI",
|
||||
"title": "M4 Pro MacBook - Long Term Review (6 Months Later)",
|
||||
"url": "https://www.youtube.com/watch?v=i3eTKJav1VI",
|
||||
"channel_name": "Created Tech",
|
||||
"date": "2025-04-29",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 136,
|
||||
"likes": 1832,
|
||||
"views": 137009
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 1.0,
|
||||
"why_relevant": "YouTube: M4 Pro MacBook - Long Term Review (6 Months Later)",
|
||||
"subs": {
|
||||
"relevance": 100,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 45
|
||||
},
|
||||
{
|
||||
"id": "uPe9spXLfZY",
|
||||
"title": "M4 MacBook Air vs M4 MacBook Pro - 4 Months Later",
|
||||
"url": "https://www.youtube.com/watch?v=uPe9spXLfZY",
|
||||
"channel_name": "Created Tech",
|
||||
"date": "2025-07-07",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 437,
|
||||
"likes": 5082,
|
||||
"views": 472845
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.75,
|
||||
"why_relevant": "YouTube: M4 MacBook Air vs M4 MacBook Pro - 4 Months Later",
|
||||
"subs": {
|
||||
"relevance": 75,
|
||||
"recency": 0,
|
||||
"engagement": 31
|
||||
},
|
||||
"score": 43
|
||||
},
|
||||
{
|
||||
"id": "TfvIgdzImt4",
|
||||
"title": "The Macbook Pro M4 is Insane.",
|
||||
"url": "https://www.youtube.com/watch?v=TfvIgdzImt4",
|
||||
"channel_name": "Hardware Canucks",
|
||||
"date": "2024-12-15",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 435,
|
||||
"likes": 6339,
|
||||
"views": 325599
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.75,
|
||||
"why_relevant": "YouTube: The Macbook Pro M4 is Insane.",
|
||||
"subs": {
|
||||
"relevance": 75,
|
||||
"recency": 0,
|
||||
"engagement": 28
|
||||
},
|
||||
"score": 42
|
||||
},
|
||||
{
|
||||
"id": "anIVewgtbFc",
|
||||
"title": "The Base M4 MacBook Pro is All You Need (Skip M4 Pro & Max)",
|
||||
"url": "https://www.youtube.com/watch?v=anIVewgtbFc",
|
||||
"channel_name": "MacRumors",
|
||||
"date": "2024-12-17",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 336,
|
||||
"likes": 2874,
|
||||
"views": 238619
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.75,
|
||||
"why_relevant": "YouTube: The Base M4 MacBook Pro is All You Need (Skip M4 Pro & Max)",
|
||||
"subs": {
|
||||
"relevance": 75,
|
||||
"recency": 0,
|
||||
"engagement": 15
|
||||
},
|
||||
"score": 38
|
||||
},
|
||||
{
|
||||
"id": "BDpNDniE1PA",
|
||||
"title": "M4 Pro MacBook Pro after 6 Months - Everyone was WRONG!",
|
||||
"url": "https://www.youtube.com/watch?v=BDpNDniE1PA",
|
||||
"channel_name": "Max Tech",
|
||||
"date": "2025-04-18",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 256,
|
||||
"likes": 3077,
|
||||
"views": 197898
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.75,
|
||||
"why_relevant": "YouTube: M4 Pro MacBook Pro after 6 Months - Everyone was WRONG!",
|
||||
"subs": {
|
||||
"relevance": 75,
|
||||
"recency": 0,
|
||||
"engagement": 12
|
||||
},
|
||||
"score": 37
|
||||
},
|
||||
{
|
||||
"id": "0vn9T3x4dGg",
|
||||
"title": "M4 Pro MacBook Pro after 1 Month... BEST Mac EVER!?",
|
||||
"url": "https://www.youtube.com/watch?v=0vn9T3x4dGg",
|
||||
"channel_name": "Max Tech",
|
||||
"date": "2024-12-09",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 270,
|
||||
"likes": 3345,
|
||||
"views": 200580
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.75,
|
||||
"why_relevant": "YouTube: M4 Pro MacBook Pro after 1 Month... BEST Mac EVER!?",
|
||||
"subs": {
|
||||
"relevance": 75,
|
||||
"recency": 0,
|
||||
"engagement": 13
|
||||
},
|
||||
"score": 37
|
||||
}
|
||||
],
|
||||
"hackernews": [],
|
||||
"best_practices": [],
|
||||
"prompt_pack": [],
|
||||
"context_snippet_md": "# Context: M4 MacBook Pro review (Last 30 Days)\n\n*Generated: 2026-02-25 | Sources: both*\n\n## Key Sources\n\n- [X] If you are in the market for a new MacBook Pro and...\n- [X] \ud83d\udd25 2024 16\u201d MacBook Pro Price List\n\n1\ufe0f\u20e3 \ud83c\uddfa\ud83c\uddf8 Brand Ne...\n- [X] @5TRgzn @LobstarWilde My marble floors: 64GB M4 Pr...\n- [X] @JulianGoldieSEO @grok can a macbook pro m4 run th...\n- [X] @SebAaltonen Not my experience. It\u2019s impressive, 7...\n- [Reddit] Disappointed with my MBP M4 Experience \u2026\n- [Reddit] Returned M4 MacBook Air for M4 MacBook Pro\n\n## Summary\n\n*See full report for best practices, prompt pack, and detailed sources.*\n"
|
||||
}
|
||||
@@ -0,0 +1,524 @@
|
||||
{
|
||||
"topic": "best rap songs 2026",
|
||||
"range": {
|
||||
"from": "2026-01-26",
|
||||
"to": "2026-02-25"
|
||||
},
|
||||
"generated_at": "2026-02-25T20:37:25.272953+00:00",
|
||||
"mode": "both",
|
||||
"openai_model_used": "gpt-5.2",
|
||||
"xai_model_used": "grok-4-1-fast",
|
||||
"reddit": [
|
||||
{
|
||||
"id": "R1",
|
||||
"title": "Reddit Ranked: Hip Hop \u201826",
|
||||
"url": "https://www.reddit.com/r/redranked/comments/1qszauu/reddit_ranked_hip_hop_26/",
|
||||
"subreddit": "edranked",
|
||||
"date": "2026-02-01",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.91,
|
||||
"why_relevant": "Explicitly about Hip Hop '26 submissions and ranking tracks (community-sourced 'best of 2026' style thread).",
|
||||
"subs": {
|
||||
"relevance": 91,
|
||||
"recency": 19,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 57
|
||||
},
|
||||
{
|
||||
"id": "R9",
|
||||
"title": "Daily Discussion Thread 02/24/2026",
|
||||
"url": "https://www.reddit.com/r/hiphopheads/comments/1rdjmgu/daily_discussion_thread_02242026/",
|
||||
"subreddit": "hiphopheads",
|
||||
"date": "2026-02-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.46,
|
||||
"why_relevant": "General hip-hop discussion thread where users frequently share current favorite/best songs and recommendations (2026-dated).",
|
||||
"subs": {
|
||||
"relevance": 46,
|
||||
"recency": 96,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "R4",
|
||||
"title": "[DISCUSSION] Drake & PARTYNXTDOOR - $OME $EXY $ONGS 4 U (1 Year Later)",
|
||||
"url": "https://www.reddit.com/r/hiphopheads/comments/1r4cbez/discussion_drake_partynxtdoord_ome_exy_ongs_4_u_1/",
|
||||
"subreddit": "hiphopheads",
|
||||
"date": "2026-02-14",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.63,
|
||||
"why_relevant": "Track-focused discussion about songs still in rotation; relevant to identifying standout rap/R&B tracks around 2026.",
|
||||
"subs": {
|
||||
"relevance": 63,
|
||||
"recency": 63,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "R21",
|
||||
"title": "2/22/2026 | Week 23 Playlist Competition",
|
||||
"url": "https://www.reddit.com/r/makemeaplaylist/comments/1rb46m6/2222026_week_23_playlist_competition/",
|
||||
"subreddit": "makemeaplaylist",
|
||||
"date": "2026-02-21",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.46,
|
||||
"why_relevant": "Playlist competition thread featuring an underground rap playlist winner; useful for surfacing 'best rap' picks around 2026.",
|
||||
"subs": {
|
||||
"relevance": 46,
|
||||
"recency": 86,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 54
|
||||
},
|
||||
{
|
||||
"id": "R16",
|
||||
"title": "What's the best rap song ever made?",
|
||||
"url": "https://www.reddit.com/r/TeenageRapFans/comments/1r5iub6/whats_the_best_rap_song_ever_made/",
|
||||
"subreddit": "TeenageRapFans",
|
||||
"date": "2026-02-15",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.55,
|
||||
"why_relevant": "Direct 'best rap song' debate thread (highly aligned with best-rap-songs searching).",
|
||||
"subs": {
|
||||
"relevance": 55,
|
||||
"recency": 66,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 53
|
||||
},
|
||||
{
|
||||
"id": "R18",
|
||||
"title": "Rick 2026 : Pop Dance RnB Chart Hits Rock Indie HipHop Divas Rap Gym 80s 90s 00s 10s 20s Party Music",
|
||||
"url": "https://www.reddit.com/r/playlists/comments/1r5iuz5/rick_2026_pop_dance_rnb_chart_hits_rock_indie/",
|
||||
"subreddit": "playlists",
|
||||
"date": "2026-02-15",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.5,
|
||||
"why_relevant": "2026-tagged playlist thread explicitly including HipHop/Rap; can be mined for top rap tracks in 2026 rotation.",
|
||||
"subs": {
|
||||
"relevance": 50,
|
||||
"recency": 66,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 51
|
||||
},
|
||||
{
|
||||
"id": "R5",
|
||||
"title": "Pre-Show Grammy Winners",
|
||||
"url": "https://www.reddit.com/r/hiphopheads/comments/1qtcbmo/preshow_grammy_winners/",
|
||||
"subreddit": "hiphopheads",
|
||||
"date": "2026-02-01",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "Includes Best Rap Song / Best Rap Performance winners; strong signal for 'best rap songs' discourse in 2026 season.",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 19,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 48
|
||||
},
|
||||
{
|
||||
"id": "R8",
|
||||
"title": "Andre Toutman claims All The Love will be \"song of the year\"",
|
||||
"url": "https://www.reddit.com/r/GoodAssSub/comments/1qty80z/andre_toutman_claims_all_the_love_will_be_song_of/",
|
||||
"subreddit": "GoodAssSub",
|
||||
"date": "2026-02-02",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.6,
|
||||
"why_relevant": "Direct 'song of the year' debate thread (rap/hip-hop community), aligned with 'best songs' discovery for 2026.",
|
||||
"subs": {
|
||||
"relevance": 60,
|
||||
"recency": 23,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 44
|
||||
},
|
||||
{
|
||||
"id": "R6",
|
||||
"title": "Kendrick Lamar Wins 2nd Record of the Year Grammy With SZA for \u2018Luther\u2019",
|
||||
"url": "https://www.reddit.com/r/hiphopheads/comments/1qtl5kr/kendrick_lamar_wins_2nd_record_of_the_year_grammy/",
|
||||
"subreddit": "hiphopheads",
|
||||
"date": "2026-02-02",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.58,
|
||||
"why_relevant": "High-engagement thread about a major hip-hop adjacent song winning; useful for 'best songs' discussions around 2026.",
|
||||
"subs": {
|
||||
"relevance": 57,
|
||||
"recency": 23,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 43
|
||||
},
|
||||
{
|
||||
"id": "R15",
|
||||
"title": "My top 25 rap songs of all time",
|
||||
"url": "https://www.reddit.com/r/musicteenager/comments/1qvz9qu/my_top_25_rap_songs_of_all_time/",
|
||||
"subreddit": "musicteenager",
|
||||
"date": "2026-02-04",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.52,
|
||||
"why_relevant": "User-made ranked list of rap songs; while not 2026-specific, it matches the 'best rap songs' core subject.",
|
||||
"subs": {
|
||||
"relevance": 52,
|
||||
"recency": 30,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 42
|
||||
},
|
||||
{
|
||||
"id": "R7",
|
||||
"title": "68th Annual Grammy Awards [LIVE MEGATHREAD]",
|
||||
"url": "https://www.reddit.com/r/KendrickLamar/comments/1qtczjl/68th_annual_grammy_awards_live_megathread/",
|
||||
"subreddit": "KendrickLamar",
|
||||
"date": "2026-02-01",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.54,
|
||||
"why_relevant": "Live discussion around Grammys 2026 including rap categories; good for discovering what Reddit called the best tracks.",
|
||||
"subs": {
|
||||
"relevance": 54,
|
||||
"recency": 19,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 41
|
||||
}
|
||||
],
|
||||
"x": [
|
||||
{
|
||||
"id": "X5",
|
||||
"text": "Talking about meaningful rap songs...\n\nWORLD BEST LIE - NUNO ZIGI (2026)\ud83e\udd7a\u2764 https://t.co/MDHRf3giYq",
|
||||
"url": "https://x.com/Zika_gfx/status/2026576570513600788",
|
||||
"author_handle": "Zika_gfx",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 12,
|
||||
"reposts": 5,
|
||||
"replies": 2
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 86
|
||||
},
|
||||
{
|
||||
"id": "X6",
|
||||
"text": "@PopCrave Partition still goes harder than most 2026 songs \n12 years and the beat switch + that rap still give chills every time. Queen never misses",
|
||||
"url": "https://x.com/DPOSTS6/status/2026523320548819145",
|
||||
"author_handle": "DPOSTS6",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 4,
|
||||
"reposts": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 41
|
||||
},
|
||||
"score": 68
|
||||
},
|
||||
{
|
||||
"id": "X9",
|
||||
"text": "@Unfath0m4ble @robinthisbish @lilceaserthabp1 @RapWikip What You Saying by Lil Uzi Vert. Dropped Dec 2025, hit #1 on Hot Rap Songs in Jan 2026 (his 3rd time), peaked #14 Hot 100. Super short track ~2 min with minimal lyrics.",
|
||||
"url": "https://x.com/grok/status/2026467153046606064",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X7",
|
||||
"text": "@lil_loonie1 @oldmanebro No, Lil Uzi Vert isn't struggling. His \"What You Saying\" hit #1 on Hot Rap Songs in Jan 2026 (first in 3 years) and top 15 Hot 100. Insiders say a surprise album drop is coming soon, with fans calling 2026 his revival year like 2016. Proving that old prediction wrong.",
|
||||
"url": "https://x.com/grok/status/2026518008827404632",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X2",
|
||||
"text": "Su La Musica che gira intorno... \"Qui con me\" \u00e8 il brano con cui Serena Brancale \u00e8 in gara al 76\u00b0 Festival di Sanremo\nhttps://t.co/wTPeovzt6u\n#music #genre #song #songs #envywear #PleaseForgiveMe #melody #hiphop #rnb #pop #love #rap #dubstep #instagood https://t.co/Pi7msX5FG6",
|
||||
"url": "https://x.com/Ferginangi/status/2026696207557382298",
|
||||
"author_handle": "Ferginangi",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X12",
|
||||
"text": "[ ** STUDIO BOOTH ** ] ** DROPPING SOON - 2026 **\ud83d\udd25\ud83d\udd25\ud83d\udd25\u2026\u2026\u2026..[ ALBUM : LOVE VS LOYALTY - DROPPING SOON ! ]\u2026\u2026\u2026\ud83d\udd25\ud83d\udd25\ud83d\udd25 - ** ALL SONGS & BEATS, PRODUCED & RAP BY ( SEAN BRYANT ) - https://t.co/LduwG5WmM7 - 2/23/2026 - ( KWR 4 LIFE ) - A.A.O & 444 ! https://t.co/NDmkURbjgv",
|
||||
"url": "https://x.com/teammusic2046/status/2026040965329191061",
|
||||
"author_handle": "teammusic2046",
|
||||
"date": "2026-02-23",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 93,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 62
|
||||
},
|
||||
{
|
||||
"id": "X11",
|
||||
"text": "@PopBase Finally, @bts_bighit BTS will come back after completing their military service from 2022 to 2025.\nBTS served in the military to protect their country, South Korea from North Korea's nuclear weapons attack.\n BTS can sing songs and rap on March 20, 2026, KST.\n#BTS_ARIRANG https://t.co/46n1j6eENU",
|
||||
"url": "https://x.com/IoWeul/status/2026233090683863471",
|
||||
"author_handle": "IoWeul",
|
||||
"date": "2026-02-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 2
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 96,
|
||||
"engagement": 13
|
||||
},
|
||||
"score": 59
|
||||
},
|
||||
{
|
||||
"id": "X8",
|
||||
"text": "Lil Uzi Vert (born July '95, so 30 now) isn't struggling at all. Fresh off \"What You Saying\" hitting #1 on Hot Rap Songs in Jan 2026, top 15 Hot 100. New album rumored for surprise drop soon, Roc Nation deal, still packing stadium energy and proving Ebro's 2016 doubts wrong\u2014he's still here, thriving.",
|
||||
"url": "https://x.com/grok/status/2026498538075554040",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1,
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 6
|
||||
},
|
||||
"score": 58
|
||||
},
|
||||
{
|
||||
"id": "X4",
|
||||
"text": "My musical taste / eras every year\n\n2020: J-POP & K-POP (mostly BLACKPINK)\n2021: Sped-Up Songs\n2022: EDM\n2023: Swiftie (Pop) & Lofi\n2024: Pop, Ambient\n2025: Alternative, OPM, Rock, Rap, Hip-Hop (add)\n2026: K-POP (add)",
|
||||
"url": "https://x.com/AlterEgoPopList/status/2026641456434393579",
|
||||
"author_handle": "AlterEgoPopList",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1,
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 6
|
||||
},
|
||||
"score": 58
|
||||
},
|
||||
{
|
||||
"id": "X3",
|
||||
"text": "@_CharlesPreston Can\u2019t believe I\u2019m seeing \u201cthey say it in rap songs!\u201d In 2026\n\nThe same reductive, ancient, debunked arguments ad infinitum",
|
||||
"url": "https://x.com/WordsFromBlerds/status/2026647382083903688",
|
||||
"author_handle": "WordsFromBlerds",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "X1",
|
||||
"text": "Su La Musica che gira intorno... \"Magica Favola\" \u00e8 il brano con cui Arisa \u00e8 in gara al 76\u00b0 Festival di Sanremo\nhttps://t.co/Nxzkb005lP\n#music #genre #song #songs #envywear #PleaseForgiveMe #melody #hiphop #rnb #pop #love #rap #dubstep #instagood https://t.co/uziy4MjeeB",
|
||||
"url": "https://x.com/Ferginangi/status/2026705227366256880",
|
||||
"author_handle": "Ferginangi",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "X10",
|
||||
"text": "@blackiiingout \ud83d\udca9 is funny from 2025 to 2026. BiiCH is SCARED to drop that #TRASH he calls \"rap songs\" \ud83e\udd74\ud83d\ude29",
|
||||
"url": "https://x.com/fo_sho52268/status/2026335353364201566",
|
||||
"author_handle": "fo_sho52268",
|
||||
"date": "2026-02-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 96,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 55
|
||||
}
|
||||
],
|
||||
"web": [],
|
||||
"youtube": [
|
||||
{
|
||||
"id": "d1melQQVp6s",
|
||||
"title": "New Rap Songs 2026 Mix February | Trap Tape #127 | New Hip Hop 2026 Mixtape | DJ Noize",
|
||||
"url": "https://www.youtube.com/watch?v=d1melQQVp6s",
|
||||
"channel_name": "DJ Noize",
|
||||
"date": "2026-02-14",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 45,
|
||||
"likes": 761,
|
||||
"views": 42713
|
||||
},
|
||||
"transcript_snippet": "[music] This This is a DJ noise mixtape present. This is a DJ noise mixtape [music] presentation. DJ [music] >> Who the [ __ ] is you? Who the [ __ ] is you? Who the [ __ ] >> Yeah, you know who put the city on. Came [music] back through gold they show. I'm really on. Your [ __ ] died trying. I had 50 on. [ __ ] is [music] ringing out my phone like is you really on? I'll stay out the way since I [singing] seen a million on 5% tension plus I got this hoodie on. I had to hubble up. Stop [music] moving with that jury on. You hear that girl told me [ __ ] get deep ass. Get it on. I'm a sidewalk [ __ ] I'mma stay there. I leave the [music] streets for the ones that want to play. I leveled up so shy want a day chair. Left my kids [music] in a mouth like a dayare. I'm the Carolina now Shakespeare. All that cap you let them [ __ ] rap is over. The real is back. You [music] feel the way you got to cope with it. The veil put a [ __ ] six feet like that was hit. Okay, these [ __ ] ain't talking about [ __ ] No [music] diamonds on my neck. No rolly on my wrist. Two six I learned a little bit. I learned the hardest [music] [ __ ] You can always get kicked. I can jungle. I done [ __ ] around and [singing] got rich. See dollars in my pocket. [ __ ] I'm not a lick. [music] I'd rather that than got to [singing] walk around with sticks cuz I like the hardest [ __ ] He can always get Who the [ __ ] is you? Who the [ __ ] [music] is you? Who the [ __ ] is you? Who the [ __ ] is you? Out the way. It's a real [ __ ] coming through. Out the way. [music] It's a real [ __ ] coming through. Who the [ __ ] is you? Who the [ __ ] is you? Who the [ __ ] is you? Who the [ __ ] is you out [music] the way? It's a real [ __ ] coming through. Out the way. It's a real [ __ ] [music] >> [music] >> Running to the check flag won't pull over till I'm dead right no [music] ain't going to get no [ __ ] riding with me in the head know I'm [ __ ] no big [ __ ] popping in the little [ __ ] dropping bags it's a lot to you to me [ __ ] 40 in my lap. Uh-huh. Real dope boys in [music] a trap. Uh-huh. Big y like a big shot. [ __ ] on my dick. [singing] Make me room for your big got to let them know. I don't wrestle. I don't live block. [music] Solid tails. All I do is big rock. I came from Dilling Rock all the way to hit on the grown. [ __ ] ain't when I'm on. She can kick rock. Let her know. I'm blowing money. Let [music] them know I'm only I know how we get bread. I ain't never [music] scared on...",
|
||||
"relevance": 1.0,
|
||||
"why_relevant": "YouTube: New Rap Songs 2026 Mix February | Trap Tape #127 | New Hip H",
|
||||
"subs": {
|
||||
"relevance": 100,
|
||||
"recency": 63,
|
||||
"engagement": 37
|
||||
},
|
||||
"score": 71
|
||||
},
|
||||
{
|
||||
"id": "-KQpPySP93I",
|
||||
"title": "New Hip Hop R&B Songs 2026 Mix February | Hot Right Now #153 | New Rap 2026 Playlist | DJ Noize",
|
||||
"url": "https://www.youtube.com/watch?v=-KQpPySP93I",
|
||||
"channel_name": "DJ Noize",
|
||||
"date": "2026-02-21",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 18,
|
||||
"likes": 304,
|
||||
"views": 12955
|
||||
},
|
||||
"transcript_snippet": "This This is a DJ noise tape present. This is a DJ noise mix. [music] I got Nikki on me. How we treat the like a bucket for rubbing. You [music] ain't no fella from my junction. You ain't pluck you clapping smirk. Young enough to something. [music] Word mother body slam some [ __ ] for honey. Keep a stitch. People pick me up. Ain't saying a word or nothing. Grab a [music] load. Put on little bro. We had him serving prostitut. Shout out little [singing] b. She gave me 30 something on the beat. Phone cracker seal and I can't go to sleep. Promoters tweaking. [music] Pull up to the venue over 40 deep. You know the tweak. Ranking through the roof then you ain't supposed to leak. It's one up top. Manator is keep it close to me. Ain't that how it's supposed to be? [music] She going to get your me. I'm get you smoke free. Kamicazi [music] playing around [singing] this [ __ ] Something wrong with me. I'm letting diss the dead unless they skeleton belong the team type of [ __ ] won't let it get in between the city and the police where [ __ ] get they do for me they [music] all do the show leaning spots I do like fully call back off you know it's strong we [music] man 15 I had 15 [singing] in 2010 then I be [music] the man right now [ __ ] change big guns bank shame I'm change [music] I'm going make that I only burn. That's how my body [music] can't be pull [singing] right to the sun. [music] Ain't going to get no [ __ ] riding with me in the head west. I'm out of mind [music] [ __ ] popping in little [ __ ] dropping bags. It's a lot to you to me a little bit sh [music] like a big shot. [ __ ] on my dick. Make me room for your big. Got to let them know I don't turn wrestle. I don't live block solid tails. [music] All I do is big rocks. I came from Dilling Rock all the way to hit on the grown. [ __ ] ain't when I'm on. She can kick rock. Let her know [music] my foot up on the gas. I'm blowing money. You never know. I'm only [music] beat down. We getting bread. I ain't never scared big flex [music] on a [ __ ] head what I'm standing on big chick we [singing] did that pushing weed back better give me respect and some more Atlanta [music] show I was selling ground right I don't care [music] ling to me what you need a camera better know they call it [music] we just call it they say [singing] you live down by your decision [music] well I'mma push you to the limit never mind the consequences A [ __ ] I'm a hand better let them know on another [music] level my ass I put together hit the pedal do 200 everywhere I go [music] just to show...",
|
||||
"relevance": 1.0,
|
||||
"why_relevant": "YouTube: New Hip Hop R&B Songs 2026 Mix February | Hot Right Now #153",
|
||||
"subs": {
|
||||
"relevance": 100,
|
||||
"recency": 86,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 66
|
||||
},
|
||||
{
|
||||
"id": "ZUExyc50ZVU",
|
||||
"title": "Lit Hip Hop Mix 2026\ud83d\udd25\ud83d\udd25\ud83d\udd25Tyga, Quavo, Iggy Azalea, Wiz Khalifa, Juicy J, 50 Cent",
|
||||
"url": "https://www.youtube.com/watch?v=ZUExyc50ZVU",
|
||||
"channel_name": "West Coast Finest",
|
||||
"date": "2026-01-29",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 60,
|
||||
"likes": 4229,
|
||||
"views": 407260
|
||||
},
|
||||
"transcript_snippet": "Yeah. >> Yeah. [music] Late nights, cold life, same story. >> City shine different. You walking with glory, right? >> Still drip falling when I step outside. Yeah. [music] >> Black car park with a do butterfly. Too [music] much heat when we walk inside. Midnight. So you can kill this V. Gold chain swinging when I lean on the night. Shut it. Look twice when I glow on the light. Yeah. I've been running through the city with a cool grin. [music] Ain't nobody in my lane when the night begin white clean look like but a good kind win. It's all too smooth but I back that talk. Money so clean make a bro [music] boy walk in my cup but my soul don't shock. I've been cold for years. I ain't you mock. She said boy you too for the life you live. I peace ain't weak. It's [music and singing] the power I give. I don't flex too loud. I don't need that when your whole damn already scream. Yeah. Late night in the rooftop smoke girls but they all provoke. I don't chase no dream. I just take that goal. I don't chase no soul. They just lose control. Cameras on flash when I step on deck. Fit so clean. Make the whole [music] place check. Talk about but I still respect. Still too smooth. I don't never need a flex. Yeah. West coast chill with a heart [music and singing] too cold. Stories too deep that ain't never been told. I'm a tight make a new king. Pretty boy look but a mind. Yeah. Slide through smooth. Let a breeze and a ghost. All [music and singing] them in my but I flex coast to coast. Pretty boy with a mind stay close to the pain to the grind to the things I boast. Wo. F drag with a midnight gleam. [music and singing] Squad clean like a runway team. All black drip with a icon of sheen. Feel like a king every time I hit a scene. Purple in a club but a soul still clear. Vision too [singing] sharp when I stare in the mirror. [music] Fashion too loud but the vibe too sick. Every step I take got a world right here. Yeah. BBS ice made a nice guy blush. Shorty walk in the whole club hush. Talk too [music] cute but she move too lush. Slow down baby [singing] you rush too much. [music] Boy magic with a westside twist. Mind too slick when I talk like this. I don't miss not a bar not a kiss. I ain't too heavy. I exist like bliss. Woah. Let it on my back with a chrome on shine. Let the world go blind. I'm still define. Every day I'm tren with a style so divine still drip [music] when I step outside. Yeah. Black car park with the dogs butterfly. Too much heat when we walk inside. Midnight. [music] You can't kill...",
|
||||
"relevance": 0.3333333333333333,
|
||||
"why_relevant": "YouTube: Lit Hip Hop Mix 2026\ud83d\udd25\ud83d\udd25\ud83d\udd25Tyga, Quavo, Iggy Azalea, Wiz Khalifa",
|
||||
"subs": {
|
||||
"relevance": 33,
|
||||
"recency": 9,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 47
|
||||
}
|
||||
],
|
||||
"hackernews": [],
|
||||
"best_practices": [],
|
||||
"prompt_pack": [],
|
||||
"context_snippet_md": "# Context: best rap songs 2026 (Last 30 Days)\n\n*Generated: 2026-02-25 | Sources: both*\n\n## Key Sources\n\n- [X] Talking about meaningful rap songs...\n\nWORLD BEST ...\n- [X] @PopCrave Partition still goes harder than most 20...\n- [X] @Unfath0m4ble @robinthisbish @lilceaserthabp1 @Rap...\n- [X] @lil_loonie1 @oldmanebro No, Lil Uzi Vert isn't st...\n- [X] Su La Musica che gira intorno... \"Qui con me\" \u00e8 il...\n- [Reddit] Reddit Ranked: Hip Hop \u201826\n- [Reddit] Daily Discussion Thread 02/24/2026\n\n## Summary\n\n*See full report for best practices, prompt pack, and detailed sources.*\n"
|
||||
}
|
||||
@@ -0,0 +1,525 @@
|
||||
{
|
||||
"topic": "React vs Svelte 2026",
|
||||
"range": {
|
||||
"from": "2026-01-26",
|
||||
"to": "2026-02-25"
|
||||
},
|
||||
"generated_at": "2026-02-25T20:39:35.773560+00:00",
|
||||
"mode": "both",
|
||||
"openai_model_used": "gpt-5.2",
|
||||
"xai_model_used": "grok-4-1-fast",
|
||||
"reddit": [
|
||||
{
|
||||
"id": "R2",
|
||||
"title": "What do you guys think about comparison between React vs Svelte?",
|
||||
"url": "https://www.reddit.com/r/react/comments/1r1fku5/what_do_you_guys_think_about_comparison_between/",
|
||||
"subreddit": "eact",
|
||||
"date": "2026-02-10",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.95,
|
||||
"why_relevant": "Explicit React vs Svelte comparison thread focusing on hooks/useEffect vs Svelte runes mental model.",
|
||||
"subs": {
|
||||
"relevance": 95,
|
||||
"recency": 50,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 67
|
||||
},
|
||||
{
|
||||
"id": "R1",
|
||||
"title": "Migrated our startup from React to Svelte 5 - Performance gains and lessons learned",
|
||||
"url": "https://www.reddit.com/r/webdev/comments/1qu4dek/migrated_our_startup_from_react_to_svelte_5/",
|
||||
"subreddit": "webdev",
|
||||
"date": "2026-02-02",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.97,
|
||||
"why_relevant": "Direct React -> Svelte 5 migration discussion with practical comparison (DX, performance, ecosystem tradeoffs).",
|
||||
"subs": {
|
||||
"relevance": 97,
|
||||
"recency": 23,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 61
|
||||
},
|
||||
{
|
||||
"id": "R6",
|
||||
"title": "I am building a content-heavy, bilingual government portal with listings, profiles, documents, filters, and forms. Came from .NET & React. Wondering if svelte might be a good option for a project like this?",
|
||||
"url": "https://www.reddit.com/r/sveltejs/comments/1qtua45/i_am_building_a_contentheavy_bilingual_government/",
|
||||
"subreddit": "sveltejs",
|
||||
"date": "2026-02-02",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.86,
|
||||
"why_relevant": "Evaluates Svelte vs React suitability for a real project with constraints (accessibility, SEO, forms).",
|
||||
"subs": {
|
||||
"relevance": 86,
|
||||
"recency": 23,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "R4",
|
||||
"title": "Is Svelte easier than React?",
|
||||
"url": "https://www.reddit.com/r/sveltejs/comments/1qpdzx5/is_svelte_easier_than_react/",
|
||||
"subreddit": "sveltejs",
|
||||
"date": "2026-01-28",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.9,
|
||||
"why_relevant": "Direct comparison thread about perceived simplicity of Svelte vs React (recent 2026 discussion).",
|
||||
"subs": {
|
||||
"relevance": 90,
|
||||
"recency": 6,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 54
|
||||
},
|
||||
{
|
||||
"id": "R8",
|
||||
"title": "When should i start learning Svelte ?",
|
||||
"url": "https://www.reddit.com/r/sveltejs/comments/1qr8xsm/when_should_i_start_learning_svelte/",
|
||||
"subreddit": "sveltejs",
|
||||
"date": "2026-01-31",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.8,
|
||||
"why_relevant": "React vs Svelte learning/adoption discussion, including arguments about replacing React for performance issues.",
|
||||
"subs": {
|
||||
"relevance": 80,
|
||||
"recency": 16,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "R9",
|
||||
"title": "How is going svelte?",
|
||||
"url": "https://www.reddit.com/r/sveltejs/comments/1qrdhba/how_is_going_svelte/",
|
||||
"subreddit": "sveltejs",
|
||||
"date": "2026-01-30",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.75,
|
||||
"why_relevant": "General state-of-Svelte discussion with explicit mentions comparing to React and job-market pragmatism.",
|
||||
"subs": {
|
||||
"relevance": 75,
|
||||
"recency": 13,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 49
|
||||
}
|
||||
],
|
||||
"x": [
|
||||
{
|
||||
"id": "X4",
|
||||
"text": "TypeScript is the baseline in 2026. But most forms still fight type drift between API, schema & UI. \n\n@formisch_dev + @valibot = one source of truth, zero boilerplate \u26a1\ufe0f\n\nconst form = useForm({ schema: YourSchema });\n\nFull types everywhere. Works in React, SolidJS, Vue, Svelte\u2026 \n\nYour biggest type-safety win this year? \ud83d\udc47",
|
||||
"url": "https://x.com/FabianHiller/status/2022345388603080834",
|
||||
"author_handle": "FabianHiller",
|
||||
"date": "2026-02-13",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 61,
|
||||
"reposts": 2,
|
||||
"replies": 7
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 60,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 76
|
||||
},
|
||||
{
|
||||
"id": "X3",
|
||||
"text": "Popular JavaScript Frameworks / Frontend Libraries (2025\u20132026 trends)\n\n - React: \ud83c\uddfa\ud83c\uddf8 United States\n - Vue: \ud83c\udde8\ud83c\uddf3 China (created by Evan You)\n - Angular: \ud83c\uddfa\ud83c\uddf8 United States\n - Svelte: \ud83c\uddfa\ud83c\uddf8 United States (New Zealand creator)\n - Next.js: \ud83c\uddfa\ud83c\uddf8 United States\n - Nuxt: \ud83c\uddeb\ud83c\uddf7 France\n - Astro: \ud83c\udde8\ud83c\udde6 United States / Canada\n - Solid: \ud83c\uddfa\ud83c\uddf8 United States",
|
||||
"url": "https://x.com/ConsciousRide/status/2023050160520278501",
|
||||
"author_handle": "ConsciousRide",
|
||||
"date": "2026-02-15",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 6
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 66,
|
||||
"engagement": 33
|
||||
},
|
||||
"score": 57
|
||||
},
|
||||
{
|
||||
"id": "X11",
|
||||
"text": "Requirements for a fresher in 2026:\n\nPython, JavaScript, C, C++, Java, HTML, CSS, TypeScript, React, Next.js, Vue, Angular, Svelte, Node.js, Express, Django, Flask, FastAPI, Spring Boot, PHP, Laravel, Ruby, Ruby on Rails, Go, Rust, Kotlin, Swift, C#, .NET, SQL, MySQL, PostgreSQL, MongoDB, Redis, Firebase, Supabase, Prisma, Docker, Kubernetes, Nginx, Linux, Git, GitHub, Gitflow, VS Code, IntelliJ, Cloud Computing (AWS, Azure, GCP), DevOps, CI/CD, Jest, PyTest, Selenium, REST APIs, GraphQL, WebSoc",
|
||||
"url": "https://x.com/singhprateek_25/status/2020094806735700154",
|
||||
"author_handle": "singhprateek_25",
|
||||
"date": "2026-02-07",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 6,
|
||||
"reposts": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 40,
|
||||
"engagement": 39
|
||||
},
|
||||
"score": 53
|
||||
},
|
||||
{
|
||||
"id": "X1",
|
||||
"text": "Ripple: The Good Parts of React, Svelte, and Solid\n\nFrameworks rise and fall \u2014 and in 2026 we\u2019re deep in late-stage React. What\u2019s next? Join @erikras as he introduces Ripple, a TypeScript-first UI framework blending the best of React and Svelte with fine-grained reactivity and serious speed.\n\nSee the future of UI development live at CityJS London.\nGet your ticket now: https://t.co/wGMJJIELXm",
|
||||
"url": "https://x.com/cityjsconf/status/2024908272646398229",
|
||||
"author_handle": "cityjsconf",
|
||||
"date": "2026-02-20",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"reposts": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 83,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "X2",
|
||||
"text": "Prediction: 2026 marks the death of the JS frameworks. React, Svelte, Astro etc... only exist because humans need organized code to stay sane. \n\nOnce we stop reading the source code, we stop needing the structure. \n\nIn an AI-first world, JS frameworks are just overhead.",
|
||||
"url": "https://x.com/dennydotio/status/2024195986890109320",
|
||||
"author_handle": "dennydotio",
|
||||
"date": "2026-02-18",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 76,
|
||||
"engagement": 7
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "X5",
|
||||
"text": "Web developers, what stack are you using in 2026?\nReact? Vue? Svelte? Vanilla? Curious what\u2019s actually winning.",
|
||||
"url": "https://x.com/AzamCodes/status/2022298287236383010",
|
||||
"author_handle": "AzamCodes",
|
||||
"date": "2026-02-13",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 2,
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 60,
|
||||
"engagement": 19
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "X8",
|
||||
"text": "[2026/02/11 18:00] \u30c8\u30ec\u30f3\u30c91\u4f4d\n\u3010WebF\u3011React/Vue/Svelte\u304c\u305d\u306e\u307e\u307e\u30cd\u30a4\u30c6\u30a3\u30d6\u30a2\u30d7\u30ea\u306b\u306a\u308b\u3088 by rana_kualu https://t.co/GiAnTHpOBB",
|
||||
"url": "https://x.com/QiitaTrend/status/2021509592489025785",
|
||||
"author_handle": "QiitaTrend",
|
||||
"date": "2026-02-11",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 53,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "X10",
|
||||
"text": "@babakfpk In 2026, picking React for a new project only really makes sense if you value ecosystem maturity, are following existing team habits, or need React-specific libraries. Same for Vue. Otherwise, use Solid or Svelte.",
|
||||
"url": "https://x.com/nicobaogim/status/2020689628282667407",
|
||||
"author_handle": "nicobaogim",
|
||||
"date": "2026-02-09",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 46,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 50
|
||||
},
|
||||
{
|
||||
"id": "X12",
|
||||
"text": "2026 framework discourse:\n\nDev 1: \"React is bloated, use Svelte\"\nDev 2: \"Svelte has no ecosystem, use Vue\"\nDev 3: \"Vue is dying, use Solid\"\nDev 4: \"Just use React\"\n\nMeanwhile React: *still powering 80% of the web*\n\nThe discourse never ends. \ud83d\udc80",
|
||||
"url": "https://x.com/Chubbi_Stephen/status/2020087839648800853",
|
||||
"author_handle": "Chubbi_Stephen",
|
||||
"date": "2026-02-07",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 40,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 49
|
||||
}
|
||||
],
|
||||
"web": [],
|
||||
"youtube": [
|
||||
{
|
||||
"id": "MnpuK0MK4yo",
|
||||
"title": "React VS Svelte...10 Examples",
|
||||
"url": "https://www.youtube.com/watch?v=MnpuK0MK4yo",
|
||||
"channel_name": "Beyond Fireship",
|
||||
"date": "2023-06-30",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 1100,
|
||||
"likes": 25490,
|
||||
"views": 697142
|
||||
},
|
||||
"transcript_snippet": "any reasonable developer in today's world would learn react because it's the status quo and that's where the jobs are but life is a lot more fun when you become unreasonable and go against the status quo to push web development forward for future Generations in today's video we'll compare react and spelled side by side by looking at common patterns and design choices by the framework creators I'm not here to tell you that one is better than the other because that's what the comment section below this video is for the only way to truly find out which one is best is to build something with both of them and decide for yourself I just released a brand new full spell kick course yesterday and also have a full next js13 course for fireship pro members going through each one of these courses will give you a really good idea of which framework is best for you first up we need to talk about rendering both of these Frameworks do the same thing they help developers build reactive uis with JavaScript by organizing code into reusable components an end user would never be able to tell the difference between the two but when it comes to the developer experience there is a world of difference react.js uses a runtime called the virtual Dom it keeps track of data changes in the application in order to render them in the act actual Dom in the browser the drawback is that this runtime requires some initial JavaScript and in Frameworks like nextjs your Baseline is around 70 kilobytes just to render a hello world as felt on the other hand takes an entirely different approach using a compiler to eliminate the need for a runtime it takes your svelt code and converts it into vanilla JavaScript which results in a far smaller hello world using a compiler though is kind of like cheating react.js is just JavaScript whereas spill can take non-javascript code to allow developers to do things more efficiently than they could otherwise but some JavaScript fundamentalists might consider this black magic what's ironic though is that vanilla JavaScript libraries tend to be much easier to work with in spell when compared to react however react does have a massive ecosystem of dedicated libraries to help you get things done now let's look at an actual code example of component State here we have a basic counter app in react we use functions to create components and then add reactive state to them with the use State hook that returns a reactive value and a Setter function to update the state pretty simple but let's see how it compares to svelt here on the right side in spelled you have only one component file and Define the logic within the script tags to create reactive State all you do is create a variable with the let keyword from there we can define a function on the click event...",
|
||||
"relevance": 0.75,
|
||||
"why_relevant": "YouTube: React VS Svelte...10 Examples",
|
||||
"subs": {
|
||||
"relevance": 75,
|
||||
"recency": 0,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 63
|
||||
},
|
||||
{
|
||||
"id": "qwDp5pZA_TA",
|
||||
"title": "The Front-end Frameworks Guide 2026: React vs Angular vs Vue vs Svelt vs Solid vs Astro",
|
||||
"url": "https://www.youtube.com/watch?v=qwDp5pZA_TA",
|
||||
"channel_name": "Code Hub",
|
||||
"date": "2026-02-08",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 4,
|
||||
"likes": 31,
|
||||
"views": 646
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.75,
|
||||
"why_relevant": "YouTube: The Front-end Frameworks Guide 2026: React vs Angular vs Vue",
|
||||
"subs": {
|
||||
"relevance": 75,
|
||||
"recency": 43,
|
||||
"engagement": 17
|
||||
},
|
||||
"score": 49
|
||||
},
|
||||
{
|
||||
"id": "_vuVy21l2bU",
|
||||
"title": "React vs Svelte: The Brutal Honest Comparison EVER",
|
||||
"url": "https://www.youtube.com/watch?v=_vuVy21l2bU",
|
||||
"channel_name": "Code Hub",
|
||||
"date": "2025-10-30",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 27,
|
||||
"likes": 204,
|
||||
"views": 6454
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.75,
|
||||
"why_relevant": "YouTube: React vs Svelte: The Brutal Honest Comparison EVER",
|
||||
"subs": {
|
||||
"relevance": 75,
|
||||
"recency": 0,
|
||||
"engagement": 42
|
||||
},
|
||||
"score": 46
|
||||
},
|
||||
{
|
||||
"id": "41HXdxGekZ0",
|
||||
"title": "Vue vs React vs Svelte (2026) - Which One Is BEST?",
|
||||
"url": "https://www.youtube.com/watch?v=41HXdxGekZ0",
|
||||
"channel_name": "Paperclick",
|
||||
"date": "2025-10-04",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 0,
|
||||
"likes": 3,
|
||||
"views": 287
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 1.0,
|
||||
"why_relevant": "YouTube: Vue vs React vs Svelte (2026) - Which One Is BEST?",
|
||||
"subs": {
|
||||
"relevance": 100,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 45
|
||||
},
|
||||
{
|
||||
"id": "1BCsdaeYv0A",
|
||||
"title": "Svelte vs React in 2025 - Make the RIGHT Choice (Difference Explained)",
|
||||
"url": "https://www.youtube.com/watch?v=1BCsdaeYv0A",
|
||||
"channel_name": "Daniel | Tech & Data",
|
||||
"date": "2023-11-26",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 34,
|
||||
"likes": 0,
|
||||
"views": 33905
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.75,
|
||||
"why_relevant": "YouTube: Svelte vs React in 2025 - Make the RIGHT Choice (Difference ",
|
||||
"subs": {
|
||||
"relevance": 75,
|
||||
"recency": 0,
|
||||
"engagement": 30
|
||||
},
|
||||
"score": 42
|
||||
},
|
||||
{
|
||||
"id": "yl0YWA2K2B0",
|
||||
"title": "React wants to win you back\u2026",
|
||||
"url": "https://www.youtube.com/watch?v=yl0YWA2K2B0",
|
||||
"channel_name": "Fireship",
|
||||
"date": "2025-10-17",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 1000,
|
||||
"likes": 22894,
|
||||
"views": 699597
|
||||
},
|
||||
"transcript_snippet": "Last week, I got to participate in my favorite activity of the year. No, it wasn't watching all the overleveraged crypto bros learn what a margin call is. It was hate watching React comp as an anti-react influencer. Every year I crawl into my spelt Snuggy and I watch the React team try to convince everyone that their new APIs fix all of their old APIs. And though it hurts me to say it, this year I think they may have actually done it. I know this is an AI channel now, but in today's video, we'll revisit the worst parts of React to see if the announcements they made at React Comp will actually make a difference. It is October 17th, 2025, and you're watching the code report. The greatest trick the devil ever pulled was making referential stability a prerequisite to writing React apps that don't blow up. Just last month, Cloudflare had a massive outage because their dashboard kept making unnecessary calls to one of their own APIs, which led to them basically themselves. If you're a React dev, you know this is the primary use case for React's use effect hook. And it's exactly what caused this embarrassing bug for Cloudflare. But it's hard to blame React for this. The whole situation could have been avoided if only the poor debit Cloudflare would have read the docs on use effect. Then this post which shows you when to use it. Then this post which shows you when to not use it. Then this post which shows you what it actually does. Then this post which shows you how to use it correctly. And now with React 19.2. this post which shows you how to work around it with React's new use effect event hook. The way it works is it creates a function that you can use inside of use effect without needing to declare it in the dependency array. This is nice for situations like this where you need to use a value inside of use effect but don't want the effect to rerun when it changes. And the other big API addition was the new activity component which you can think of like a smarter display none that React itself controls. It lets you show and hide certain components, but unlike display none, React is able to maintain the state of those components across visibility and also deprioritize the work it does for hidden components. And if you've been drinking your lead lace protein and want to live on the edge, you can install React's Canary version where you'll get the new view transition component for animating transitions between different UIs. And you'll be able to pass a ref to a fragment, which makes working with platform APIs a little easier. But the most impactful announcements of the conference may have not been related to the React API. The first React compiler finally hit 1.0. If you've been in any React codebase lately, you've...",
|
||||
"relevance": 0.25,
|
||||
"why_relevant": "YouTube: React wants to win you back\u2026",
|
||||
"subs": {
|
||||
"relevance": 25,
|
||||
"recency": 0,
|
||||
"engagement": 99
|
||||
},
|
||||
"score": 40
|
||||
},
|
||||
{
|
||||
"id": "aYyZUDFZTrM",
|
||||
"title": "JavaScript framework reinvents itself\u2026 Did \"runes\" just ruin Svelte?",
|
||||
"url": "https://www.youtube.com/watch?v=aYyZUDFZTrM",
|
||||
"channel_name": "Fireship",
|
||||
"date": "2024-10-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 1200,
|
||||
"likes": 24456,
|
||||
"views": 547836
|
||||
},
|
||||
"transcript_snippet": "about a year ago I made a tweet that said the dollar sign in spelt is the most powerful abstraction in modern front-end web development usually I'm not wrong about anything ever but this tweet ended up aging like a fine milk because just Weeks Later spelt announced a brand new feature called runes that significantly changed the developer experience by eliminating the dollar sign Syntax for reactive data and then just a few days ago this feature became official with the release of spelt 5 as an avid user of spelt myself I was pretty terrified of this feature at first glance I was one of the few survivors of the angularjs to angular 2 migration I shot myself in the foot during the react hooks Revolution and I lost some good friends during the view options to composition transition and I just can't do this anymore man so maybe I'll just go back to Wordpress uh never mind spelt it is in today's video we'll find out what the hell a rune is and whether or not they're going to ruin spelt it is October 24th 2024 and you're watching the code report most people really liked runes when they were first announced but not everybody I was in denial at first then I got angry then I bargained about the tradeoffs then came depression and finally I've come to accept and really enjoy runes the big question is why would the most L JavaScript framework make a risky departure from the features people love about it like reactive state with let and reactive side effects with the dollar sign just look at how much nicer this code is compared to reactjs react is even copy and spelt with its own compiler to make this code not suck so much the spelt code is lean and concise but one could argue that it's almost too clever let looks exact like regular JavaScript but because spelt uses a compiler it doesn't actually work like regular JavaScript under the hood the compiler does some magic to automatically update the UI whenever this value changes another issue is that this magic only works in a spelt file and that means it's difficult to share reactive logic throughout your application and spelt created an entirely different API called stores to address that issue however runes fix both of these limitations by a making your code more explicit and B they create a universal reactivity system that can be used not only in spel components but also in plain JavaScript or typescript files and this dramatically simplifies the overall framework like once you learn these four runes you'll know about 90% of what you need to know for the framework because everything else works like normal JavaScript and HTML let's go ahead and learn the four major runes now which you can think of as compiler macros that tell spelt to do something special that doesn't behave like regular JavaScript or HTML a...",
|
||||
"relevance": 0.25,
|
||||
"why_relevant": "YouTube: JavaScript framework reinvents itself\u2026 Did \"runes\" just ruin",
|
||||
"subs": {
|
||||
"relevance": 25,
|
||||
"recency": 0,
|
||||
"engagement": 98
|
||||
},
|
||||
"score": 40
|
||||
},
|
||||
{
|
||||
"id": "fn_uSZW5psM",
|
||||
"title": "The Untold Story of Svelte",
|
||||
"url": "https://www.youtube.com/watch?v=fn_uSZW5psM",
|
||||
"channel_name": "CodeSource",
|
||||
"date": "2025-05-14",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 144,
|
||||
"likes": 2120,
|
||||
"views": 57782
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.25,
|
||||
"why_relevant": "YouTube: The Untold Story of Svelte",
|
||||
"subs": {
|
||||
"relevance": 25,
|
||||
"recency": 0,
|
||||
"engagement": 69
|
||||
},
|
||||
"score": 31
|
||||
},
|
||||
{
|
||||
"id": "IpJh0VEzMRo",
|
||||
"title": "I Was Wrong About Svelte...",
|
||||
"url": "https://www.youtube.com/watch?v=IpJh0VEzMRo",
|
||||
"channel_name": "Ben Davis",
|
||||
"date": "2025-10-12",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 122,
|
||||
"likes": 1043,
|
||||
"views": 24635
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.25,
|
||||
"why_relevant": "YouTube: I Was Wrong About Svelte...",
|
||||
"subs": {
|
||||
"relevance": 25,
|
||||
"recency": 0,
|
||||
"engagement": 61
|
||||
},
|
||||
"score": 29
|
||||
},
|
||||
{
|
||||
"id": "1cGtYEXGm8c",
|
||||
"title": "This is THE Framework You Should be Using in 2026",
|
||||
"url": "https://www.youtube.com/watch?v=1cGtYEXGm8c",
|
||||
"channel_name": "Ben Davis",
|
||||
"date": "2026-01-06",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 142,
|
||||
"likes": 793,
|
||||
"views": 16899
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.25,
|
||||
"why_relevant": "YouTube: This is THE Framework You Should be Using in 2026",
|
||||
"subs": {
|
||||
"relevance": 25,
|
||||
"recency": 0,
|
||||
"engagement": 57
|
||||
},
|
||||
"score": 28
|
||||
}
|
||||
],
|
||||
"hackernews": [],
|
||||
"best_practices": [],
|
||||
"prompt_pack": [],
|
||||
"context_snippet_md": "# Context: React vs Svelte 2026 (Last 30 Days)\n\n*Generated: 2026-02-25 | Sources: both*\n\n## Key Sources\n\n- [X] TypeScript is the baseline in 2026. But most forms...\n- [Reddit] What do you guys think about comparison between React vs Svelte?\n- [Reddit] Migrated our startup from React to Svelte 5 - Performance gains and lessons learned\n- [X] Popular JavaScript Frameworks / Frontend Libraries...\n- [Reddit] I am building a content-heavy, bilingual government portal with listings, profiles, documents, filters, and forms. Came from .NET & React. Wondering if svelte might be a good option for a project like this?\n- [Reddit] Is Svelte easier than React?\n- [X] Requirements for a fresher in 2026:\n\nPython, JavaS...\n\n## Summary\n\n*See full report for best practices, prompt pack, and detailed sources.*\n"
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"openai": true,
|
||||
"xai": true,
|
||||
"x_source": "bird",
|
||||
"bird_installed": true,
|
||||
"bird_authenticated": true,
|
||||
"bird_username": "env AUTH_TOKEN",
|
||||
"youtube": true,
|
||||
"hackernews": true,
|
||||
"web_search_backend": null,
|
||||
"parallel_ai": false,
|
||||
"brave": false,
|
||||
"openrouter": false
|
||||
}
|
||||
@@ -0,0 +1,883 @@
|
||||
{
|
||||
"topic": "Claude Code skills and MCP servers",
|
||||
"range": {
|
||||
"from": "2026-01-26",
|
||||
"to": "2026-02-25"
|
||||
},
|
||||
"generated_at": "2026-02-25T20:29:35.722482+00:00",
|
||||
"mode": "both",
|
||||
"openai_model_used": "gpt-5.2",
|
||||
"xai_model_used": "grok-4-1-fast",
|
||||
"reddit": [
|
||||
{
|
||||
"id": "R1",
|
||||
"title": "Claude code and mcp servers",
|
||||
"url": "https://www.reddit.com/r/ClaudeAI/comments/1ldm75a/claude_code_and_mcp_servers/",
|
||||
"subreddit": "ClaudeAI",
|
||||
"date": "2025-06-17",
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.98,
|
||||
"why_relevant": "Directly about Claude Code failing to load/use MCP servers; troubleshooting discussion.",
|
||||
"subs": {
|
||||
"relevance": 0,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 0
|
||||
},
|
||||
{
|
||||
"id": "R2",
|
||||
"title": "Claude Skills: is it a big deal?",
|
||||
"url": "https://www.reddit.com/r/ClaudeCode/comments/1odtykp/claude_skills_is_it_a_big_deal/",
|
||||
"subreddit": "ClaudeCode",
|
||||
"date": "2025-10-23",
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.92,
|
||||
"why_relevant": "Focused on the Claude (Claude Code) \u201cSkills\u201d feature; compares to AGENTS.md/slash commands/MCPs.",
|
||||
"subs": {
|
||||
"relevance": 0,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 0
|
||||
},
|
||||
{
|
||||
"id": "R3",
|
||||
"title": "I spent way too long cataloguing Claude Code tools. Here\u2019s everything I found (with actual links)",
|
||||
"url": "https://www.reddit.com/r/ClaudeAI/comments/1ofltdr/i_spent_way_too_long_cataloguing_claude_code/",
|
||||
"subreddit": "ClaudeAI",
|
||||
"date": "2025-10-25",
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.9,
|
||||
"why_relevant": "Tooling ecosystem post; explicitly mentions installing many plugins and MCP servers for Claude Code.",
|
||||
"subs": {
|
||||
"relevance": 0,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 0
|
||||
}
|
||||
],
|
||||
"x": [
|
||||
{
|
||||
"id": "X5",
|
||||
"text": "@adamwathan Codex has been crushing it for me with implicit skill usage to the point I was shocked \n\nClaude Code I resorted to explicit mentions and I\u2019ve been pleasantly surprised by how well Codex has been calling out to skills on its own",
|
||||
"url": "https://x.com/zeeg/status/2026745680195367091",
|
||||
"author_handle": "zeeg",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 4,
|
||||
"reposts": 1,
|
||||
"replies": 2
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 86
|
||||
},
|
||||
{
|
||||
"id": "X3",
|
||||
"text": "\ud83d\udea8 Anthropic just open-sourced the exact Skills library their own engineers use internally.\n\nStop building Claude workflows from scratch.\n\nThese are plug-and-play components that work across Claude Code, API, SDK, and VS Code copy once, deploy everywhere.\n\nWhat's inside:\n\n\u2192 Excel + PowerPoint generation out of the box\n\u2192 File handling and document workflows\n\u2192 MCP-ready subagent building blocks\n\u2192 Pre-built patterns for multi-step automation\n\u2192 Production templates you'd normally spend weeks writing\n",
|
||||
"url": "https://x.com/ihtesham2005/status/2026752089473314975",
|
||||
"author_handle": "ihtesham2005",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 6
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 81
|
||||
},
|
||||
"score": 80
|
||||
},
|
||||
{
|
||||
"id": "X8",
|
||||
"text": "Day 7 building my first B2C app\n\nBeen setting everything up this week. Manually built 5 agents to help me in the early stages and set up the Claude Code skills i'll need for the build.\n\nAlso been testing OpenClaw these days, already delegated my expense tracking to it.\n\nNow the scary part: Figuring out the visual identity of the app. my design skills are basically zero, i always used to delegate this to someone with actual talent haha. \n\nAny recommendations to learn the fundamentals? would reall",
|
||||
"url": "https://x.com/DevTenta/status/2026742028730527786",
|
||||
"author_handle": "DevTenta",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 4
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 59
|
||||
},
|
||||
"score": 74
|
||||
},
|
||||
{
|
||||
"id": "X7",
|
||||
"text": "@Jompiras Claude code + skills. Muy breve.",
|
||||
"url": "https://x.com/JorgeJaramillo/status/2026743135435362649",
|
||||
"author_handle": "JorgeJaramillo",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X4",
|
||||
"text": "@tom_doerr 135 agents, 35 curated skills, 121 plugins and 6 MCP configs all in one Claude Code toolkit is absolutely insane value \ud83e\udd2f this is the kind of community effort that makes an AI tool go from good to unstoppable. bookmarking this immediately \ud83d\udd25",
|
||||
"url": "https://x.com/arpan7sarkar/status/2026746479369662551",
|
||||
"author_handle": "arpan7sarkar",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X6",
|
||||
"text": "@tom_doerr A curated collection of Claude Skills organized by category is exactly what power users have been waiting for \ud83e\udd29 document skills, code tools, data analysis all in one repo. this is the Claude plugin store before the Claude plugin store \ud83d\udd25",
|
||||
"url": "https://x.com/arpan7sarkar/status/2026745559986614335",
|
||||
"author_handle": "arpan7sarkar",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X2",
|
||||
"text": "Claude Code\u306eSkills\u3092\u4f5c\u6210\u4f8b\u304b\u3089\u5fb9\u5e95\u7406\u89e3\u3059\u308b https://t.co/vZTseio2Ii",
|
||||
"url": "https://x.com/yasuky/status/2026754773786226708",
|
||||
"author_handle": "yasuky",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X12",
|
||||
"text": "Day 52 (01/21/2026) (Rest Day)\n\n> Go to New York + watch Broadway Show\n\n> Catch up on claude code updates on way back (2hrs)\n - Learn difference between skills + MCP, and etc\n \n> Neetcode (1hr 15min)\n\n> Plan for the week (30min)\n \nTotal focused working hours: 3hrs 45min",
|
||||
"url": "https://x.com/zhuoyuan45514/status/2026733326631923776",
|
||||
"author_handle": "zhuoyuan45514",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X1",
|
||||
"text": "How: I told Claude Code \"build me a CRM.\" Our builder skill generated schemas, skills, server, seed data. I pointed Claude Desktop at it. Contacts, lead scoring, pipeline reviews. All from conversation.\n\nThen \"build me a research assistant.\" Topics, sources, notes, etc. Same flow",
|
||||
"url": "https://x.com/matgoldsborough/status/2026755742737510749",
|
||||
"author_handle": "matgoldsborough",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X9",
|
||||
"text": "I can build another open claw, or claude bot, or even a messaging app in a nice prompt and although having engineering skills, I can push the code on the public repo and secure it even completely and may start marketing in a crazy way on X or maybe Reddit using a secret niche guy when writing a post.\n\nThis is the new coding for us, and shipping a nice product.",
|
||||
"url": "https://x.com/0x_Kapoor/status/2026738663321907214",
|
||||
"author_handle": "0x_Kapoor",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X10",
|
||||
"text": "1. I use https://t.co/NtFYJEiFs9 inspired by @bcherny \n2. I use https://t.co/EwnmyWNFqn to sync skills and scan skills from the marketplace\n3. I chat with claude code 4-5 times and once I am satisifed with plan, I ask it to build it.\n4. I use /code-simplifier, /memory and /parallel from my plugin above to distribute work across agents.\n5. I wait and once they're done, I use coderabbit:review to review once locally and make a PR\n\nThis process works like a gem for me.",
|
||||
"url": "https://x.com/ghumare64/status/2026736176695246966",
|
||||
"author_handle": "ghumare64",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "X11",
|
||||
"text": "The 'vibe coding' revolution is forcing a reckoning.\n\nDevelopers with 15+ years experience are either embracing AI to expand their reach or watching their expertise become as valuable as COBOL skills.\n\nWhich side of history are you on?\n\nPS\nClaude Code can now write COBOL as well.",
|
||||
"url": "https://x.com/hamen/status/2026734075243790396",
|
||||
"author_handle": "hamen",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
}
|
||||
],
|
||||
"web": [],
|
||||
"youtube": [
|
||||
{
|
||||
"id": "X8afcX2s2Mo",
|
||||
"title": "Claude Skills: Build Your First AI Marketing Team in 16 Minutes (Claude Code)",
|
||||
"url": "https://www.youtube.com/watch?v=X8afcX2s2Mo",
|
||||
"channel_name": "Grace Leung",
|
||||
"date": "2026-02-21",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 47,
|
||||
"likes": 1900,
|
||||
"views": 47474
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 86,
|
||||
"engagement": 70
|
||||
},
|
||||
"score": 74
|
||||
},
|
||||
{
|
||||
"id": "0J2_YGuNrDo",
|
||||
"title": "Claude Code just Built me an AI Agent Team (Claude Code + Skills + MCP)",
|
||||
"url": "https://www.youtube.com/watch?v=0J2_YGuNrDo",
|
||||
"channel_name": "Grace Leung",
|
||||
"date": "2025-12-16",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 291,
|
||||
"likes": 4760,
|
||||
"views": 155806
|
||||
},
|
||||
"transcript_snippet": "I use clot more than any other AI but even I dismiss Clark as just for developers and I was wrong after using myself I am completely so and this is too powerful to ignore if you want to use AI to build system and do work for you end to end not just chatting and copy pasting so in this video I'll share how to get started with cloud code even if you don't use for coding and most importantly how to use it to build an AI work team and system that you can actually use. Let's go. So why claw code is even needed if claw is already so powerful. So most people use cloud projects with custom instructions to turn claw into AI agents. But they are silo. You end up copy and pasting between them. You are the coordinator. But with cloud code is different. So these cloud agents share the same workspace access to the same context file. They can talk to each other and hands up work automatically each with their own token context window and claude now becomes the team lead. You give the direction they execute together and that is what we are building today. So each of these cloud code agents you create needs at least three core components all defined in one single markdown file. the role and responsibilities, the knowledge like workflow details, reusable clot agent skills, the MCP tools that they have access to. For this demo, we'll be building a five agent work and claude, our main agent will add as our team lead to coordinate between these agent. A bonus tip is when designing your AI teammate, give them specific and non-over overlapping roles to minimize the potential conflicts. Now, to get started with clark code, there are four main ways to access it. First, the local terminal. This is the raw method and will give you the best experience. Luckily, Anthroporic just launched a native installer. So, which makes it really easy to install. I'll put the official link below. And second, ID extension. So, you can add CL code to ID like VS Code or Kursa and let you run the CL code and see the project file structure side by side. Third, the cloud web app where you can click the code tab and run the CL code in the cloud, but it requires you linking to a GitHub repository. and fourth, cloud desktop app which has cloud code built-in and this is what we'll be using today. Now, whatever way you choose, I still highly recommend installing cloud code through the terminal first because the terminal gives you the most complete experience. All commands and features work fully since we're running Clark locally. So, the first thing is to set up a local project folder. So, think of it like a dedicated workspace for Clark. So, let's say I run a marketing agency and I'm setting up the TIM system. So...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 61
|
||||
},
|
||||
{
|
||||
"id": "fOxC44g8vig",
|
||||
"title": "Claude Agent Skills Explained",
|
||||
"url": "https://www.youtube.com/watch?v=fOxC44g8vig",
|
||||
"channel_name": "Anthropic",
|
||||
"date": "2025-11-26",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 144,
|
||||
"likes": 2991,
|
||||
"views": 129573
|
||||
},
|
||||
"transcript_snippet": "Hi, my name is Otto and in this video we're going to discuss agent skills. Agents today are pretty intelligent, but they don't always have the domain expertise you need for real work and skills help solve this. You can think of skills as organized folders that package expertise that Cloud can automatically invoke when relevant to the task at hand. And most importantly, these skills are portable across cloud code, the API as well as cla.ai. And the way skills work is at startup only the name and description of every installed skill is loaded in the system prompt. This is going to consume about 30 to 50 tokens per skill and make Claude aware of the skill's existence. Then when a user prompt matches a skills description, Claude is going to dynamically load the full skill.md file into context. And finally, if the skill references other files or scripts, they are also progressively loaded and run as needed. This progressive disclosure allows you to install many different skills to perform complex tasks without bloating your context window. But let's see how skills fit in with the other Claude features. While skills teach Claude how to do specialized tasks, Claude.md files tell Claude about the specific project. Things like your text stack, coding conventions, and repo structure. CloudMD files live alongside your code in the repository. A CloudMD file may say things like we [music] use Nex.js JS and Tailwind. But skills on the other hand are portable expertise that work across any project. So a front-end design skill can teach Claude your typography standards, animation patterns, and layout conventions and [music] activate automatically when building UI components. MCP servers on the other hand provide universal integration, a single protocol that connects Claude to external context sources like GitHub, linear, Postgress, and many many others. MCP connects to data. Skills teach Claude what to do with it. So an MCP server may give Claude access to your database, but a database query skill can teach Claude your team's query optimization patterns. Finally, sub agents are specialized AI assistants with fixed roles. Each sub agent has its own context window, custom prompt, and specific tool permissions. skills provide portable expertise that any agent can use. So your front-end developer sub agent can use a component pattern skill. Your UI reviewer sub agent on the other hand can use a design system skill, but both can load and use the same accessibility standard skill. And the best part is these capabilities are designed to work together. Your cloudMD file sets the foundation. MCP [music] servers connect the data. Sub agents specialize in their roles and skills bring the expertise making every piece smarter and more capable. At the end of the day, skills let you package workflows into reusable capabilities like helping onboard new hires to your team's coding standards, ensuring every PR follows a specific security best practices or sharing your data analysis methodology across your team. And that's how...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 90
|
||||
},
|
||||
"score": 58
|
||||
},
|
||||
{
|
||||
"id": "Gqh_KdHP1Xk",
|
||||
"title": "8 MCP Servers That Make Claude Code 10x Better",
|
||||
"url": "https://www.youtube.com/watch?v=Gqh_KdHP1Xk",
|
||||
"channel_name": "Robin Ebers",
|
||||
"date": "2025-08-21",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 108,
|
||||
"likes": 2719,
|
||||
"views": 90281
|
||||
},
|
||||
"transcript_snippet": "Over 90% of all MCP servers are complete overhyped garbage. But some of them are not only worth it, they can be complete game changers. And I do not say this lightly. So after testing over 100 of them, here are the only eight MCP servers that I actually use to build apps even faster. But first, let me save you from making the same expensive mistake that I made when I started using MCP servers. Because what no one explains about them is that the more of them you install, the dumber your AI becomes. I know this sounds backwards because everyone thinks more tools equals smarter AI. But here is what's actually happening because every MCP server you add is like giving your AI yet another tool to choose from. Imagine asking someone to fix your bike, but instead of giving them a toolbox with eight essential tools, you just dump 100 tools on the floor. they will spend more time figuring out which tool to use than actually fixing your bike. That is exactly what happens with claude and chatbt too because every MCP server needs instructions in the context window or chat when you start. But new research now shows that this is actually really bad for AI. It's like trying to focus on a specific task while browsing social media. You're just pumping useless information into your brain. And that is kind of what happens too when you use too many MCP servers in your AI. So, if you want your AI to stay focused, remove all distractions. I stripped my list down to these eight MCP servers. And even then, I don't use all of them in every project. I turn them on and off because the fewer tools you give your AI, the more focused it stays. So, now let's look at my full list. Hey, what's up, guys? My name is Rob and I've been a coder for over 20 years. But now, I teach people how to build their ideas with AI in ways that even non-technical people can understand. I do this here on YouTube and inside of my AI coding blueprint, which you can check out in the description down below. Starting with number eight, almost every app that you build will need real world data. This could be stock prices, news articles, YouTube comments, or Instagram profiles. And that is where this MCP server comes in because this turns your AI into a data gathering machine. API is a marketplace for web scrapers, which you can think of as little robots that go all over the internet and grab information from any website that you want. And here is the really crazy part, because this MCP server doesn't just help you pull the data into your app. It actually makes accessing the full documentation of every web scraper available on this platform very easy. It can also help you debug them when things go wrong or check the...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 84
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "421T2iWTQio",
|
||||
"title": "The Only Claude Skills Guide You Need (Beginner to Expert)",
|
||||
"url": "https://www.youtube.com/watch?v=421T2iWTQio",
|
||||
"channel_name": "Kenny Liao",
|
||||
"date": "2025-10-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 101,
|
||||
"likes": 1010,
|
||||
"views": 50477
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 68
|
||||
},
|
||||
"score": 51
|
||||
},
|
||||
{
|
||||
"id": "l7qVtHpctic",
|
||||
"title": "Claude Code's MCP Problem Just Got Fixed",
|
||||
"url": "https://www.youtube.com/watch?v=l7qVtHpctic",
|
||||
"channel_name": "Kenny Liao",
|
||||
"date": "2026-01-17",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 93,
|
||||
"likes": 728,
|
||||
"views": 21765
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 54
|
||||
},
|
||||
"score": 47
|
||||
},
|
||||
{
|
||||
"id": "M5CsRj6zSCA",
|
||||
"title": "5 MCP Servers That Make Claude Code 10x More Powerful (Full-Stack App Build)",
|
||||
"url": "https://www.youtube.com/watch?v=M5CsRj6zSCA",
|
||||
"channel_name": "Eric Tech",
|
||||
"date": "2025-12-12",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 30,
|
||||
"likes": 266,
|
||||
"views": 11287
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 33
|
||||
},
|
||||
"score": 41
|
||||
},
|
||||
{
|
||||
"id": "qthyl0GCpDo",
|
||||
"title": "Claude Skills vs MCP: What\u2019s the Difference and When to Use Each?",
|
||||
"url": "https://www.youtube.com/watch?v=qthyl0GCpDo",
|
||||
"channel_name": "Postman",
|
||||
"date": "2025-11-20",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 4,
|
||||
"likes": 105,
|
||||
"views": 7045
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 12
|
||||
},
|
||||
"score": 35
|
||||
},
|
||||
{
|
||||
"id": "ZroGqu7GyXM",
|
||||
"title": "Claude Code Skills vs MCP vs Sub Agents: What Works for Solo Devs?",
|
||||
"url": "https://www.youtube.com/watch?v=ZroGqu7GyXM",
|
||||
"channel_name": "Solo Swift Crafter",
|
||||
"date": "2025-10-27",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 13,
|
||||
"likes": 98,
|
||||
"views": 4885
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 10
|
||||
},
|
||||
"score": 34
|
||||
},
|
||||
{
|
||||
"id": "jzf7DQa2CAc",
|
||||
"title": "How I Use Claude Code With Skills, MCP, Agents & Plugins",
|
||||
"url": "https://www.youtube.com/watch?v=jzf7DQa2CAc",
|
||||
"channel_name": "Matt Kuda",
|
||||
"date": "2026-01-19",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 8,
|
||||
"likes": 87,
|
||||
"views": 2547
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about claude code skills and mcp servers",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 31
|
||||
}
|
||||
],
|
||||
"hackernews": [
|
||||
{
|
||||
"id": "HN1",
|
||||
"title": "Show HN: I built a 55K-word email marketing knowledge base and Claude Code skill",
|
||||
"url": "https://www.emailmarketingskill.com/",
|
||||
"hn_url": "https://news.ycombinator.com/item?id=47096335",
|
||||
"author": "cosmoblk",
|
||||
"date": "2026-02-21",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"score": 10,
|
||||
"num_comments": 2
|
||||
},
|
||||
"top_comments": [
|
||||
{
|
||||
"score": 0,
|
||||
"date": null,
|
||||
"author": "tkel",
|
||||
"excerpt": "So it's an AI spambot?",
|
||||
"url": ""
|
||||
}
|
||||
],
|
||||
"comment_insights": [
|
||||
"So it's an AI spambot?"
|
||||
],
|
||||
"relevance": 0.86,
|
||||
"why_relevant": "HN story about Show HN: I built a 55K-word email marketing knowledge base a",
|
||||
"subs": {
|
||||
"relevance": 86,
|
||||
"recency": 86,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 90
|
||||
},
|
||||
{
|
||||
"id": "HN4",
|
||||
"title": "Show HN: AI Marketing Skills for Claude Code",
|
||||
"url": "https://github.com/superamped/ai-marketing-skills",
|
||||
"hn_url": "https://news.ycombinator.com/item?id=47154377",
|
||||
"author": "superamped",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"score": 3,
|
||||
"num_comments": 1
|
||||
},
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.79,
|
||||
"why_relevant": "HN story about Show HN: AI Marketing Skills for Claude Code",
|
||||
"subs": {
|
||||
"relevance": 79,
|
||||
"recency": 100,
|
||||
"engagement": 48
|
||||
},
|
||||
"score": 74
|
||||
},
|
||||
{
|
||||
"id": "HN12",
|
||||
"title": "Show HN: Poncho, a general agent harness built for the web",
|
||||
"url": "https://github.com/cesr/poncho-ai",
|
||||
"hn_url": "https://news.ycombinator.com/item?id=47061949",
|
||||
"author": "heycesr",
|
||||
"date": "2026-02-18",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"score": 4,
|
||||
"num_comments": 2
|
||||
},
|
||||
"top_comments": [
|
||||
{
|
||||
"score": 0,
|
||||
"date": null,
|
||||
"author": "adriablancafort",
|
||||
"excerpt": "I have been trying it and it's very cool!",
|
||||
"url": ""
|
||||
}
|
||||
],
|
||||
"comment_insights": [
|
||||
"I have been trying it and it's very cool!"
|
||||
],
|
||||
"relevance": 0.69,
|
||||
"why_relevant": "HN story about Show HN: Poncho, a general agent harness built for the web",
|
||||
"subs": {
|
||||
"relevance": 69,
|
||||
"recency": 76,
|
||||
"engagement": 69
|
||||
},
|
||||
"score": 70
|
||||
},
|
||||
{
|
||||
"id": "HN11",
|
||||
"title": "Show HN: Axon \u2013 A Kubernetes-native framework for AI coding agents",
|
||||
"url": "https://github.com/axon-core/axon",
|
||||
"hn_url": "https://news.ycombinator.com/item?id=47137491",
|
||||
"author": "gjkim042",
|
||||
"date": "2026-02-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"score": 1,
|
||||
"num_comments": 4
|
||||
},
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.68,
|
||||
"why_relevant": "HN story about Show HN: Axon \u2013 A Kubernetes-native framework for AI coding ",
|
||||
"subs": {
|
||||
"relevance": 68,
|
||||
"recency": 96,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 69
|
||||
},
|
||||
{
|
||||
"id": "HN14",
|
||||
"title": "Show HN: Turn Claude Code or Codex into proactive, autonomous 24/7 AI agents",
|
||||
"url": "https://github.com/suitedaces/dorabot",
|
||||
"hn_url": "https://news.ycombinator.com/item?id=47054100",
|
||||
"author": "alternateman",
|
||||
"date": "2026-02-17",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"score": 3,
|
||||
"num_comments": 2
|
||||
},
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.65,
|
||||
"why_relevant": "HN story about Show HN: Turn Claude Code or Codex into proactive, autonomou",
|
||||
"subs": {
|
||||
"relevance": 65,
|
||||
"recency": 73,
|
||||
"engagement": 61
|
||||
},
|
||||
"score": 65
|
||||
},
|
||||
{
|
||||
"id": "HN2",
|
||||
"title": "Show HN: Agent skills to build photo, video and design editors on the web",
|
||||
"url": "https://github.com/imgly/agent-skills",
|
||||
"hn_url": "https://news.ycombinator.com/item?id=47073035",
|
||||
"author": "hauschildt",
|
||||
"date": "2026-02-19",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"score": 3,
|
||||
"num_comments": 0
|
||||
},
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.82,
|
||||
"why_relevant": "HN story about Show HN: Agent skills to build photo, video and design edito",
|
||||
"subs": {
|
||||
"relevance": 82,
|
||||
"recency": 80,
|
||||
"engagement": 26
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "HN8",
|
||||
"title": "Show HN: Upjack \u2013 Declarative framework for building apps over MCP",
|
||||
"url": "https://github.com/NimbleBrainInc/upjack",
|
||||
"hn_url": "https://news.ycombinator.com/item?id=47157331",
|
||||
"author": "barefootsanders",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"score": 1,
|
||||
"num_comments": 0
|
||||
},
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.72,
|
||||
"why_relevant": "HN story about Show HN: Upjack \u2013 Declarative framework for building apps ov",
|
||||
"subs": {
|
||||
"relevance": 72,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 57
|
||||
},
|
||||
{
|
||||
"id": "HN7",
|
||||
"title": "Show HN: Gulama \u2013 Security-first open-source AI agent (OpenClaw alternative)",
|
||||
"url": "https://github.com/san-techie21/gulama-bot",
|
||||
"hn_url": "https://news.ycombinator.com/item?id=47031982",
|
||||
"author": "san-techie21",
|
||||
"date": "2026-02-16",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"score": 1,
|
||||
"num_comments": 1
|
||||
},
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.73,
|
||||
"why_relevant": "HN story about Show HN: Gulama \u2013 Security-first open-source AI agent (OpenC",
|
||||
"subs": {
|
||||
"relevance": 73,
|
||||
"recency": 70,
|
||||
"engagement": 21
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "HN15",
|
||||
"title": "AI Skills Platform (Stealth) \u2013 Technical Co-Founder \u2013 Remote (US) \u2013 Equity",
|
||||
"url": "",
|
||||
"hn_url": "https://news.ycombinator.com/item?id=47081777",
|
||||
"author": "martin-hall",
|
||||
"date": "2026-02-20",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"score": 1,
|
||||
"num_comments": 0
|
||||
},
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.62,
|
||||
"why_relevant": "HN story about AI Skills Platform (Stealth) \u2013 Technical Co-Founder \u2013 Remote",
|
||||
"subs": {
|
||||
"relevance": 62,
|
||||
"recency": 83,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 48
|
||||
},
|
||||
{
|
||||
"id": "HN10",
|
||||
"title": "Show HN: SkillSandbox \u2013 Capability-based sandbox for AI agent skills (Rust)",
|
||||
"url": "https://github.com/theMachineClay/skillsandbox",
|
||||
"hn_url": "https://news.ycombinator.com/item?id=47027734",
|
||||
"author": "ClaytheMachine",
|
||||
"date": "2026-02-15",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"score": 1,
|
||||
"num_comments": 0
|
||||
},
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.69,
|
||||
"why_relevant": "HN story about Show HN: SkillSandbox \u2013 Capability-based sandbox for AI agen",
|
||||
"subs": {
|
||||
"relevance": 69,
|
||||
"recency": 66,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 47
|
||||
},
|
||||
{
|
||||
"id": "HN6",
|
||||
"title": "Show HN: Indx.sh \u2013 Directory of AI coding rules, MCP servers, and tool",
|
||||
"url": "https://indx.sh",
|
||||
"hn_url": "https://news.ycombinator.com/item?id=46822378",
|
||||
"author": "micronink",
|
||||
"date": "2026-01-30",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"score": 1,
|
||||
"num_comments": 2
|
||||
},
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.75,
|
||||
"why_relevant": "HN story about Show HN: Indx.sh \u2013 Directory of AI coding rules, MCP servers",
|
||||
"subs": {
|
||||
"relevance": 75,
|
||||
"recency": 13,
|
||||
"engagement": 34
|
||||
},
|
||||
"score": 47
|
||||
},
|
||||
{
|
||||
"id": "HN3",
|
||||
"title": "Show HN: GTM MCP Server- Let AI Manage Your Google Tag Manager Containers",
|
||||
"url": "https://github.com/paolobietolini/gtm-mcp-server",
|
||||
"hn_url": "https://news.ycombinator.com/item?id=46922159",
|
||||
"author": "paolobietolini",
|
||||
"date": "2026-02-07",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"score": 1,
|
||||
"num_comments": 0
|
||||
},
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.79,
|
||||
"why_relevant": "HN story about Show HN: GTM MCP Server- Let AI Manage Your Google Tag Manag",
|
||||
"subs": {
|
||||
"relevance": 79,
|
||||
"recency": 40,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 45
|
||||
},
|
||||
{
|
||||
"id": "HN9",
|
||||
"title": "Show HN: ClawsMarket \u2013 Marketplace where AI agents discover tools",
|
||||
"url": "https://www.clawsmarket.com",
|
||||
"hn_url": "https://news.ycombinator.com/item?id=46878646",
|
||||
"author": "digitcatphd",
|
||||
"date": "2026-02-03",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"score": 1,
|
||||
"num_comments": 0
|
||||
},
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.71,
|
||||
"why_relevant": "HN story about Show HN: ClawsMarket \u2013 Marketplace where AI agents discover ",
|
||||
"subs": {
|
||||
"relevance": 71,
|
||||
"recency": 26,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 38
|
||||
},
|
||||
{
|
||||
"id": "HN13",
|
||||
"title": "Show HN: Fluid.sh \u2013 Claude Code for Infrastructure",
|
||||
"url": "https://www.fluid.sh/blog/introducing-fluid",
|
||||
"hn_url": "https://news.ycombinator.com/item?id=46886358",
|
||||
"author": "aspectrr",
|
||||
"date": "2026-02-04",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"score": 1,
|
||||
"num_comments": 0
|
||||
},
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.65,
|
||||
"why_relevant": "HN story about Show HN: Fluid.sh \u2013 Claude Code for Infrastructure",
|
||||
"subs": {
|
||||
"relevance": 65,
|
||||
"recency": 30,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 36
|
||||
},
|
||||
{
|
||||
"id": "HN5",
|
||||
"title": "Claude Code skill for building ChatGPT Apps",
|
||||
"url": "",
|
||||
"hn_url": "https://news.ycombinator.com/item?id=46780766",
|
||||
"author": "victordg",
|
||||
"date": "2026-01-27",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"score": 1,
|
||||
"num_comments": 0
|
||||
},
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.76,
|
||||
"why_relevant": "HN story about Claude Code skill for building ChatGPT Apps",
|
||||
"subs": {
|
||||
"relevance": 76,
|
||||
"recency": 3,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 34
|
||||
}
|
||||
],
|
||||
"best_practices": [],
|
||||
"prompt_pack": [],
|
||||
"context_snippet_md": "# Context: Claude Code skills and MCP servers (Last 30 Days)\n\n*Generated: 2026-02-25 | Sources: both*\n\n## Key Sources\n\n- [HN] Show HN: I built a 55K-word email marketing knowle...\n- [X] @adamwathan Codex has been crushing it for me with...\n- [X] \ud83d\udea8 Anthropic just open-sourced the exact Skills lib...\n- [X] Day 7 building my first B2C app\n\nBeen setting ever...\n- [HN] Show HN: AI Marketing Skills for Claude Code...\n- [HN] Show HN: Poncho, a general agent harness built for...\n- [HN] Show HN: Axon \u2013 A Kubernetes-native framework for ...\n\n## Summary\n\n*See full report for best practices, prompt pack, and detailed sources.*\n"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,519 @@
|
||||
{
|
||||
"topic": "M4 MacBook Pro review",
|
||||
"range": {
|
||||
"from": "2026-01-26",
|
||||
"to": "2026-02-25"
|
||||
},
|
||||
"generated_at": "2026-02-25T20:34:19.673379+00:00",
|
||||
"mode": "both",
|
||||
"openai_model_used": "gpt-5.2",
|
||||
"xai_model_used": "grok-4-1-fast",
|
||||
"reddit": [
|
||||
{
|
||||
"id": "R1",
|
||||
"title": "M4 Macbook Pro 14\u2019 1 month review",
|
||||
"url": "https://www.reddit.com/r/macbookpro/comments/1hflaaz/m4_macbook_pro_14_1_month_review/",
|
||||
"subreddit": "macbookpro",
|
||||
"date": "2025-04-09",
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.95,
|
||||
"why_relevant": "Explicit 1-month review of the M4 MacBook Pro with long-term impressions in comments.",
|
||||
"subs": {
|
||||
"relevance": 0,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 0
|
||||
},
|
||||
{
|
||||
"id": "R2",
|
||||
"title": "MacBook Pro M4 Battery Life Reality vs Review",
|
||||
"url": "https://www.reddit.com/r/macbookpro/comments/1kq2zd8/macbook_pro_m4_battery_life_reality_vs_review/",
|
||||
"subreddit": "macbookpro",
|
||||
"date": "2025-05-19",
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.9,
|
||||
"why_relevant": "Compares real-world battery life to reviewer/Apple claims; review-focused discussion.",
|
||||
"subs": {
|
||||
"relevance": 0,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 0
|
||||
},
|
||||
{
|
||||
"id": "R3",
|
||||
"title": "Disappointed with my MBP M4 Experience \u2026",
|
||||
"url": "https://www.reddit.com/r/macbookpro/comments/1mtmkts/disappointed_with_my_mbp_m4_experience/",
|
||||
"subreddit": "macbookpro",
|
||||
"date": "2025-08-18",
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.88,
|
||||
"why_relevant": "User experience report contrasting with glowing reviews; detailed performance/quality complaints.",
|
||||
"subs": {
|
||||
"relevance": 0,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 0
|
||||
}
|
||||
],
|
||||
"x": [
|
||||
{
|
||||
"id": "X1",
|
||||
"text": "If you are in the market for a new MacBook Pro and you\u2019re wondering what the real differences are between Apple\u2019s M3 and M4 silicon, you\u2019ve come to the right place \u2b07\ufe0f\nhttps://t.co/nzjXmiHmac https://t.co/632eHWLq70",
|
||||
"url": "https://x.com/bhphoto/status/2026737767695183948",
|
||||
"author_handle": "bhphoto",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 3
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 86
|
||||
},
|
||||
{
|
||||
"id": "X4",
|
||||
"text": "\ud83d\udd25 2024 16\u201d MacBook Pro Price List\n\n1\ufe0f\u20e3 \ud83c\uddfa\ud83c\uddf8 Brand New MacBook Pro 2024 | M4 Pro Chip | 16\u201d Display\n\n24GB RAM | 512GB SSD\n14-Core CPU | 20-Core GPU\n\nSpace Black\n\n\ud83d\udcb0 \u20a62,720,000\n\n2\ufe0f\u20e3 \ud83c\uddfa\ud83c\uddf8 Brand New MacBook Pro 2024 | M4 Pro Chip | 16\u201d Display\n\n48GB RAM | 512GB SSD\n14-Core CPU | 20-Core GPU\n\nSpace Black\n\n\ud83d\udcb0 \u20a63,220,000",
|
||||
"url": "https://x.com/remplug/status/2026725100213465443",
|
||||
"author_handle": "remplug",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1,
|
||||
"reposts": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 45
|
||||
},
|
||||
"score": 70
|
||||
},
|
||||
{
|
||||
"id": "X10",
|
||||
"text": "@5TRgzn @LobstarWilde My marble floors: 64GB M4 Pro/Max MacBook Pro. Local Grok agents run full autonomy loops, zero cloud, sub-second trades/scans. Intel's ancient\u2014ditch it. Yours at $3-4k.",
|
||||
"url": "https://x.com/grok/status/2026713588472111312",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X9",
|
||||
"text": "@JulianGoldieSEO @grok can a macbook pro m4 run this?",
|
||||
"url": "https://x.com/principenemesis/status/2026716193042706852",
|
||||
"author_handle": "principenemesis",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X5",
|
||||
"text": "@SebAaltonen Not my experience. It\u2019s impressive, 70 tokens/s on a maxed out M4 128gb MacBook Pro.\n\nBut absolutely sucked and not even remotely in the ballpark with Sonnet 4.5. It\u2019s GPT-3.5.\n\nTotally broken with kode. Unusable even setting aside speed.\n\nBasically a 2023 model. Not bad for 35b.",
|
||||
"url": "https://x.com/jameslmorton/status/2026721943630786816",
|
||||
"author_handle": "jameslmorton",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1,
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 27
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X6",
|
||||
"text": "BR Ofertas todos os dias \ud83c\udde7\ud83c\uddf7\n\nLeve seu Mac Pro M4 hoje! \ud83d\udcbb\u26a1\u2728\n\nPegue j\u00e1: https://t.co/PSwylZH3Sz\n\nPor R$ 23.749,00\nem at\u00e9 10x sem juros\nFrete Gr\u00e1tis\n\nApple MacBook Pro 14\u2033 2024 M4 Pro 12 n\u00facleos 24GB 512GB Prateado\n\nAmazon | Notebook https://t.co/gW3FonCEGP",
|
||||
"url": "https://x.com/bcofertas/status/2026721014676099084",
|
||||
"author_handle": "bcofertas",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X12",
|
||||
"text": "Hey! Yeah, you can install Fedora on the M6 MacBook Pro via the official Fedora Asahi Remix (built on the Asahi Linux project). It already runs great on M1/M2, with M3 support rolling out now and work starting on M4/M5. M6 support will come post-launch as they reverse-engineer it\u2014usually within months. Head to https://t.co/XMQLmJlUGO to track progress and install from macOS.",
|
||||
"url": "https://x.com/grok/status/2026704108820824113",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X7",
|
||||
"text": "Promo\u00e7\u00f5es BR do dia \ud83c\udde7\ud83c\uddf7\n\nLeve seu Mac Pro M4 hoje! \ud83d\udcbb\u26a1\u2728\n\nVer aqui: https://t.co/LfxNw3waps\n\nPor R$ 23.749,00\nem at\u00e9 10x sem juros\nFrete Gr\u00e1tis\n\nApple MacBook Pro 14\u2033 2024 M4 Pro 12 n\u00facleos...\n\nAmazon | Notebook https://t.co/fhjiFnA4b3",
|
||||
"url": "https://x.com/toppromoalertas/status/2026719111523237932",
|
||||
"author_handle": "toppromoalertas",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X8",
|
||||
"text": "Yes, a MacBook Pro M4 can run this Ollama + GLM-4.7-Flash setup locally.\n\nOllama has native Apple Silicon support via Metal. The Q4_K_M model (~19GB) needs ~18-24GB unified memory for good speed (feels like a fast 7-12B model due to MoE). \n\nBase M4 configs start at 16GB (works, but slower with smaller context); 24GB+ is ideal for smooth agent tasks in OpenClaw.\n\nJust: brew install ollama (or download app), ollama run glm4.7-flash, link to OpenClaw. No issues reported on M3/M4 series.",
|
||||
"url": "https://x.com/grok/status/2026716420269031652",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X2",
|
||||
"text": "@TechByTaraa Both. macOS (Macbook Pro M4 Pro) for my photography/videography personal stuff + software engineering and a Linux desktop workstation for software engineering + second desktop workstation with Proxmox for Windows VMs and testing stuff",
|
||||
"url": "https://x.com/grecinoscdev/status/2026731118142148644",
|
||||
"author_handle": "grecinoscdev",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "X11",
|
||||
"text": "Apple 2024 MacBook Pro 14\u30b3\u30a2CPU\u300120\u30b3\u30a2GPU \u306e M4 Pro\u642d\u8f09\u30ce\u30fc\u30c8\u30d1... PR\n\n4549995547610\n\n\u30dd\u30a4\u30f3\u30c8: 3735\u333d\n\u60f3\u5b9a\u4fa1\u683c: 369,800\n\n2026/02/26 01:55:23\nhttps://t.co/q1uyIqFsID",
|
||||
"url": "https://x.com/Steve_Lost_Jobs/status/2026705327828382016",
|
||||
"author_handle": "Steve_Lost_Jobs",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "X3",
|
||||
"text": "No, Apple has not made any MacBook (Pro or otherwise) cost $299. \n\nThe linked Newsroom search returns zero matching results\u2014it's just unrelated announcements. Current cheapest Mac is the 13\" MacBook Air M4 from $999.\n\nRumors suggest a basic \"budget\" MacBook (A18 Pro chip, ~12.9\" screen) may launch March 4 around $599\u2013$799, but nothing confirmed and far from $299. The original post is a joke/mislead.",
|
||||
"url": "https://x.com/grok/status/2026727605517394283",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
}
|
||||
],
|
||||
"web": [],
|
||||
"youtube": [
|
||||
{
|
||||
"id": "9HQx5pgUoiY",
|
||||
"title": "M4 Max MacBook Pro: I'm Convinced!",
|
||||
"url": "https://www.youtube.com/watch?v=9HQx5pgUoiY",
|
||||
"channel_name": "Marques Brownlee",
|
||||
"date": "2024-11-18",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 5500,
|
||||
"likes": 105606,
|
||||
"views": 4010567
|
||||
},
|
||||
"transcript_snippet": "so I have been using this M1 Max MacBook Pro for the past 3 years since it came out and it's been great I have felt absolutely no compulsion to upgrade since haven't needed to it's funny most of my work is pretty light but occasionally I will have to edit a video on the go which is then when you know the extra horsepower and the screen and everything about this comes in handy and it's great if I didn't have to do that ever I would just have like an air or a surface laptop something like that but that range of work is why this has been great for me and it's been awesome so [Music] far so Along Comes This M4 generation of MacBook Pros and it's the first generation that I have actually been tempted to maybe upgrade to you know they stacked a couple of the right upgrades in the right places for things that actually make a difference to me so let's just get right into it nuts and bolts cuz the first big pillar is performance and the main reason why this new laptop matters at all is that it's got the new generation of M4 chips inside and we all know the leap from Intel chips to apple cic chips for M1 was generational but since then it's been a sort of more reasonable incremental upgrade going from M1 to M2 then M3 and then M4 so I think it's pretty obvious that nobody with an M2 or M3 needs to upgrade but there's been enough improvements now stacking up upon each other from M1 to M4 that the numbers are now starting to get kind of interesting so just to set the stage this laptop that I've been using is the M1 Max maxed out basically the best you could get at the time 64 gigs of of unified memory on this system and this unit I've been testing of the M4 Max is also maxed out it's the best you can get now it's 128 gigs of faster unified memory but the cores are all better fast stronger on the new one 3 nomers versus 546 gigs per second of memory bandwidth versus 400 just the hardware improvements to get to M4 Max are clearly there so to keep the Apples to Apples comparison going Apple in their own presentation said up to 2.2 times faster CPU performance than M1 Max and 1.9 times faster GPU performance so we're looking at around twice as fast and the synthetic benchmarks I've run back this up I got over 4,000 in geekbench 6 CPU single core which is the highest single core score ever in a Mac by a while and the multicore score was incredible too tops the chart and then GPU has improved a lot to the point where it's bumping up against M2 Ultra not M2 Max M2 Ultra chips the one that's currently in the Mac Pro...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 61
|
||||
},
|
||||
{
|
||||
"id": "etP2Th9g2hM",
|
||||
"title": "Don't buy the Wrong MacBook like me... - M4 MacBook Pro",
|
||||
"url": "https://www.youtube.com/watch?v=etP2Th9g2hM",
|
||||
"channel_name": "ShortCircuit",
|
||||
"date": "2024-11-30",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 910,
|
||||
"likes": 22765,
|
||||
"views": 1113999
|
||||
},
|
||||
"transcript_snippet": "woohoo it's new Macbook day my favorite day on short circuit it only comes usually once a year this is the MacBook Pro M4 looks pretty similar to the last one but now it has an M4 instead of an M3 I'm not going to lie I am more of an M3 kind of guy but I can rock an M4 if I have to we've got their usual mag safe 3 to USBC 2 m sleeved nice cable and then a charging brick Oh I ripped it 70 wat USBC charging at least with the 14in I'm not sure what comes with the rest and then the usual Apple propaganda these still come with Apple stickers right do these not come with Apple stickers anymore bro what's the point in even buying them then it's probably good for the planet or something now if you're wondering I am still rocking the same Intel MacBook Pro over here I haven't upgraded yet so this is again another instance of me going hm maybe it's finally time except when I got to set today I realized tragedy struck we bought the wrong MacBook it is still an M4 Pro it's a good form factor we got the 14in here in the sexy space black color profile you can also get it in silver of course but there was a horrible error made and I'm not going to tell you just yet you're going to have to wait a second because first I need to go over the outside of this thing we've got an HDMI 2.1 port a USBC Thunderbolt Port an SD card reer and then on the other side another two USBC Thunderbolt ports 3.5 mil combo audio jack and mag safe there is an upgrade here on the USBC ports they're now Thunderbolt 5 instead of Thunderbolt 4 at least on the pro and Max models uh the base M4 spec only is Thunderbolt 4 and that's good for 120 gbit which is up to 3 times faster than Thunderbolt 4 on the inside bam it's it's pretty much the same keyboard look at that I think it is exactly the same keyboard pretty similar touchpad and then there is the display it looks pretty much the same same resolution same xdr fancy technology it is 1,000 nits Peak brightness when you're Outdoors instead of 600 so that should help with outdoor visibility um there is another change I'm going to tell you about in a bit but the big thing is the new nanotexture option which is an anti-glare coating and as you can tell we don't have it and I saw I Justine's video when it came out look at the difference what the hell you can't even use the one on the right and the one on the left looks beautiful it actually seems to work really well I can't wait to try it myself and honestly I think based on that if you're somebody...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 79
|
||||
},
|
||||
"score": 55
|
||||
},
|
||||
{
|
||||
"id": "b4x8boB2KdI",
|
||||
"title": "M4 MacBook Pro Review - Things to Know",
|
||||
"url": "https://www.youtube.com/watch?v=b4x8boB2KdI",
|
||||
"channel_name": "Dave2D",
|
||||
"date": "2024-11-07",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 827,
|
||||
"likes": 24977,
|
||||
"views": 1057988
|
||||
},
|
||||
"transcript_snippet": "so Apple launched the new M4 MacBook Pros this is their 14-in model and it's equipped with the M4 Max their topend configuration and it also has their new Nano texture on their screen it's a texture that's designed to cut down Reflections it's the first time they've actually had it on one of their laptops uh but I want to do a quick video here that kind of goes over the important things I think you should be aware of when it comes to this device and the first thing I want to talk about is performance the CPU gains are quite good year on-ear but it's particularly impressive that the M4 Max can outperform the M2 Ultra in a lot of benchmarks and workflows in terms of Graphics the GPU gains on the M4 Pro are decent but the GPU games on the M4 Max are very impressive most GPU bound apps and games will get a nice bump up from this plus the rate tracing capabilities are better so apps and games can take advantage of that the thing I'm most impressed by though is how good the M4 Max GPU is compared to the previous generation especially at a very similar thermal envelope like if you think about the competitors in this space like AMD Nvidia when they come out with laptop gpus typically the new models come also come with like an increase in power requirement right it's just like you know 5 or 10 watts per year but it adds up over the course of time and on this device if you think about the M1 Max to the M4 Max the GPU has improved so much with very little increase in power consumption The Thermals on this device are pretty much the same as last year's models in terms of memory the base configuration start at 16 GB now thankfully and they've also increased the memory bandwidth it's noticeable already on the base models but the pro and Max chips get a significant boost in memory speed so for applications that lean on Fast memory you definitely notice a bump up this year if I'm being honest though it's difficult for me to tell how much of the gains that we're seeing this year come from the memory speed increase versus the CPU or the GPU increase like they're all tied together and I don't have the tools to lock memory speed on a Macbook so it's tough to tell I will say though that if you have an older M1 or M2 or M3 MacBook Pro I wouldn't upgrade because Apple's silicon performance progresses so fast year on-ear that it can pay off to just wait as long as you can before you buy new hardware okay let's talk about the screens so this particular device is running their new Nano texture finish and it's finish we've seen on other devices before right like their screens uh the new iPads and every...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 79
|
||||
},
|
||||
"score": 55
|
||||
},
|
||||
{
|
||||
"id": "uPe9spXLfZY",
|
||||
"title": "M4 MacBook Air vs M4 MacBook Pro - 4 Months Later",
|
||||
"url": "https://www.youtube.com/watch?v=uPe9spXLfZY",
|
||||
"channel_name": "Created Tech",
|
||||
"date": "2025-07-07",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 437,
|
||||
"likes": 5082,
|
||||
"views": 472845
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 63
|
||||
},
|
||||
"score": 50
|
||||
},
|
||||
{
|
||||
"id": "TfvIgdzImt4",
|
||||
"title": "The Macbook Pro M4 is Insane.",
|
||||
"url": "https://www.youtube.com/watch?v=TfvIgdzImt4",
|
||||
"channel_name": "Hardware Canucks",
|
||||
"date": "2024-12-15",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 435,
|
||||
"likes": 6339,
|
||||
"views": 325597
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 62
|
||||
},
|
||||
"score": 50
|
||||
},
|
||||
{
|
||||
"id": "a8Szdrnq0YM",
|
||||
"title": "MacBook Pro M4 - Review After 3 Months: This Feels Wrong.",
|
||||
"url": "https://www.youtube.com/watch?v=a8Szdrnq0YM",
|
||||
"channel_name": "Brandon Butch",
|
||||
"date": "2025-02-03",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 397,
|
||||
"likes": 4309,
|
||||
"views": 352593
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 60
|
||||
},
|
||||
"score": 49
|
||||
},
|
||||
{
|
||||
"id": "anIVewgtbFc",
|
||||
"title": "The Base M4 MacBook Pro is All You Need (Skip M4 Pro & Max)",
|
||||
"url": "https://www.youtube.com/watch?v=anIVewgtbFc",
|
||||
"channel_name": "MacRumors",
|
||||
"date": "2024-12-17",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 336,
|
||||
"likes": 2874,
|
||||
"views": 238616
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 55
|
||||
},
|
||||
"score": 48
|
||||
},
|
||||
{
|
||||
"id": "5rN6CEO31gM",
|
||||
"title": "MacBook Pro M4: Review & Recommendations",
|
||||
"url": "https://www.youtube.com/watch?v=5rN6CEO31gM",
|
||||
"channel_name": "Just Josh",
|
||||
"date": "2024-11-15",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 441,
|
||||
"likes": 4540,
|
||||
"views": 154306
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 55
|
||||
},
|
||||
"score": 48
|
||||
},
|
||||
{
|
||||
"id": "i3eTKJav1VI",
|
||||
"title": "M4 Pro MacBook - Long Term Review (6 Months Later)",
|
||||
"url": "https://www.youtube.com/watch?v=i3eTKJav1VI",
|
||||
"channel_name": "Created Tech",
|
||||
"date": "2025-04-29",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 136,
|
||||
"likes": 1832,
|
||||
"views": 137009
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 47
|
||||
},
|
||||
"score": 45
|
||||
},
|
||||
{
|
||||
"id": "QbSQH_95eg8",
|
||||
"title": "MacBook Pro M4 Pro Review: 1 Year Later! (Still Worth Buying in 2026?)",
|
||||
"url": "https://www.youtube.com/watch?v=QbSQH_95eg8",
|
||||
"channel_name": "Tech It Easy",
|
||||
"date": "2026-02-01",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 42,
|
||||
"likes": 55,
|
||||
"views": 3176
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about m4 macbook pro review",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 19,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 36
|
||||
}
|
||||
],
|
||||
"hackernews": [],
|
||||
"best_practices": [],
|
||||
"prompt_pack": [],
|
||||
"context_snippet_md": "# Context: M4 MacBook Pro review (Last 30 Days)\n\n*Generated: 2026-02-25 | Sources: both*\n\n## Key Sources\n\n- [X] If you are in the market for a new MacBook Pro and...\n- [X] \ud83d\udd25 2024 16\u201d MacBook Pro Price List\n\n1\ufe0f\u20e3 \ud83c\uddfa\ud83c\uddf8 Brand Ne...\n- [X] @5TRgzn @LobstarWilde My marble floors: 64GB M4 Pr...\n- [X] @JulianGoldieSEO @grok can a macbook pro m4 run th...\n- [X] @SebAaltonen Not my experience. It\u2019s impressive, 7...\n- [Reddit] M4 Macbook Pro 14\u2019 1 month review\n- [Reddit] MacBook Pro M4 Battery Life Reality vs Review\n\n## Summary\n\n*See full report for best practices, prompt pack, and detailed sources.*\n"
|
||||
}
|
||||
@@ -0,0 +1,505 @@
|
||||
{
|
||||
"topic": "best rap songs 2026",
|
||||
"range": {
|
||||
"from": "2026-01-26",
|
||||
"to": "2026-02-25"
|
||||
},
|
||||
"generated_at": "2026-02-25T20:36:37.802136+00:00",
|
||||
"mode": "both",
|
||||
"openai_model_used": "gpt-5.2",
|
||||
"xai_model_used": "grok-4-1-fast",
|
||||
"reddit": [
|
||||
{
|
||||
"id": "R6",
|
||||
"title": "Mix Rap Hiphop 2026",
|
||||
"url": "https://www.reddit.com/r/playlists/comments/1r8t0ld/mix_rap_hiphop_2026/",
|
||||
"subreddit": "playlists",
|
||||
"date": "2026-02-19",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.88,
|
||||
"why_relevant": "Explicitly a 2026 rap/hip-hop playlist thread; useful for current-year song discovery.",
|
||||
"subs": {
|
||||
"relevance": 88,
|
||||
"recency": 80,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 71
|
||||
},
|
||||
{
|
||||
"id": "R8",
|
||||
"title": "Daily Discussion Thread 02/24/2026",
|
||||
"url": "https://www.reddit.com/r/hiphopheads/comments/1rdjmgu/daily_discussion_thread_02242026/",
|
||||
"subreddit": "hiphopheads",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.66,
|
||||
"why_relevant": "General hip-hop discussion thread around late Feb 2026; often includes song/album recs and what people are listening to now.",
|
||||
"subs": {
|
||||
"relevance": 66,
|
||||
"recency": 100,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 66
|
||||
},
|
||||
{
|
||||
"id": "R2",
|
||||
"title": "Best 2026 Rap Playlist (178 saves)",
|
||||
"url": "https://www.reddit.com/r/musicplaylists/comments/1qu3i2n/best_2026_rap_playlist_178_saves/",
|
||||
"subreddit": "musicplaylists",
|
||||
"date": "2026-02-02",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.95,
|
||||
"why_relevant": "Directly about a \u201cBest 2026 Rap Playlist\u201d (songs for 2026), with comments inviting suggestions.",
|
||||
"subs": {
|
||||
"relevance": 95,
|
||||
"recency": 23,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 60
|
||||
},
|
||||
{
|
||||
"id": "R18",
|
||||
"title": "DFL - Art Of Life (2026)",
|
||||
"url": "https://www.reddit.com/r/hiphop/comments/1raoitx/dfl_art_of_life_2026/",
|
||||
"subreddit": "hiphop",
|
||||
"date": "2026-02-21",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.5,
|
||||
"why_relevant": "A 2026 rap/hip-hop track post; useful to gather candidate songs people might call \u201cbest of 2026.\u201d",
|
||||
"subs": {
|
||||
"relevance": 50,
|
||||
"recency": 86,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "R19",
|
||||
"title": "Plat Hav Pro - Get F'D Up (2026)",
|
||||
"url": "https://www.reddit.com/r/hiphop/comments/1ragaf5/plat_hav_pro_get_fd_up_2026/",
|
||||
"subreddit": "hiphop",
|
||||
"date": "2026-02-21",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.48,
|
||||
"why_relevant": "Another 2026 track post; relevant to discovering rap songs released/posted in 2026 that could be considered among the best.",
|
||||
"subs": {
|
||||
"relevance": 48,
|
||||
"recency": 86,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 55
|
||||
},
|
||||
{
|
||||
"id": "R21",
|
||||
"title": "What's the best rap song ever made?",
|
||||
"url": "https://www.reddit.com/r/TeenageRapFans/comments/1r5iub6/whats_the_best_rap_song_ever_made/",
|
||||
"subreddit": "TeenageRapFans",
|
||||
"date": "2026-02-15",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.6,
|
||||
"why_relevant": "Direct \u2018best rap song\u2019 discussion (not year-specific, but posted in 2026 and highly aligned with \u2018best rap songs\u2019 topic).",
|
||||
"subs": {
|
||||
"relevance": 60,
|
||||
"recency": 66,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 55
|
||||
},
|
||||
{
|
||||
"id": "R13",
|
||||
"title": "[DISCUSSION] Westside Gunn - 12 (1 Year Later)",
|
||||
"url": "https://www.reddit.com/r/hiphopheads/comments/1r4nbsr/discussion_westside_gunn_12_1_year_later/",
|
||||
"subreddit": "hiphopheads",
|
||||
"date": "2026-02-14",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.58,
|
||||
"why_relevant": "Album discussion thread that includes \u2018favorite track\u2019 prompts; useful for identifying best songs/tracks people cite.",
|
||||
"subs": {
|
||||
"relevance": 57,
|
||||
"recency": 63,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 53
|
||||
},
|
||||
{
|
||||
"id": "R20",
|
||||
"title": "Jody Lo - Ridiculous (2026)",
|
||||
"url": "https://www.reddit.com/r/hiphop/comments/1r6c6i7/jody_lo_ridiculous_2026/",
|
||||
"subreddit": "hiphop",
|
||||
"date": "2026-02-16",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.48,
|
||||
"why_relevant": "2026 track thread; relevant for compiling 2026 rap songs being shared/discussed.",
|
||||
"subs": {
|
||||
"relevance": 48,
|
||||
"recency": 70,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 51
|
||||
},
|
||||
{
|
||||
"id": "R15",
|
||||
"title": "Reddit Ranked: Hip Hop \u201826",
|
||||
"url": "https://www.reddit.com/r/redranked/comments/1qszauu/reddit_ranked_hip_hop_26/",
|
||||
"subreddit": "edranked",
|
||||
"date": "2026-02-01",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.78,
|
||||
"why_relevant": "Ongoing 2026 hip-hop ranking/submission thread; good for discovering community-submitted \u2018best\u2019 tracks in 2026.",
|
||||
"subs": {
|
||||
"relevance": 78,
|
||||
"recency": 19,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 51
|
||||
},
|
||||
{
|
||||
"id": "R9",
|
||||
"title": "Pre-Show Grammy Winners",
|
||||
"url": "https://www.reddit.com/r/hiphopheads/comments/1qtcbmo/preshow_grammy_winners/",
|
||||
"subreddit": "hiphopheads",
|
||||
"date": "2026-02-01",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.72,
|
||||
"why_relevant": "Includes \u2018Best Rap Song\u2019/rap categories discussion; useful when searching for top/best rap songs discourse in 2026.",
|
||||
"subs": {
|
||||
"relevance": 72,
|
||||
"recency": 19,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 49
|
||||
}
|
||||
],
|
||||
"x": [
|
||||
{
|
||||
"id": "X5",
|
||||
"text": "Talking about meaningful rap songs...\n\nWORLD BEST LIE - NUNO ZIGI (2026)\ud83e\udd7a\u2764 https://t.co/MDHRf3giYq",
|
||||
"url": "https://x.com/Zika_gfx/status/2026576570513600788",
|
||||
"author_handle": "Zika_gfx",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 12,
|
||||
"reposts": 5,
|
||||
"replies": 2
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 86
|
||||
},
|
||||
{
|
||||
"id": "X6",
|
||||
"text": "@PopCrave Partition still goes harder than most 2026 songs \n12 years and the beat switch + that rap still give chills every time. Queen never misses",
|
||||
"url": "https://x.com/DPOSTS6/status/2026523320548819145",
|
||||
"author_handle": "DPOSTS6",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 4,
|
||||
"reposts": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 41
|
||||
},
|
||||
"score": 68
|
||||
},
|
||||
{
|
||||
"id": "X9",
|
||||
"text": "@Unfath0m4ble @robinthisbish @lilceaserthabp1 @RapWikip What You Saying by Lil Uzi Vert. Dropped Dec 2025, hit #1 on Hot Rap Songs in Jan 2026 (his 3rd time), peaked #14 Hot 100. Super short track ~2 min with minimal lyrics.",
|
||||
"url": "https://x.com/grok/status/2026467153046606064",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X7",
|
||||
"text": "@lil_loonie1 @oldmanebro No, Lil Uzi Vert isn't struggling. His \"What You Saying\" hit #1 on Hot Rap Songs in Jan 2026 (first in 3 years) and top 15 Hot 100. Insiders say a surprise album drop is coming soon, with fans calling 2026 his revival year like 2016. Proving that old prediction wrong.",
|
||||
"url": "https://x.com/grok/status/2026518008827404632",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X2",
|
||||
"text": "Su La Musica che gira intorno... \"Qui con me\" \u00e8 il brano con cui Serena Brancale \u00e8 in gara al 76\u00b0 Festival di Sanremo\nhttps://t.co/wTPeovzt6u\n#music #genre #song #songs #envywear #PleaseForgiveMe #melody #hiphop #rnb #pop #love #rap #dubstep #instagood https://t.co/Pi7msX5FG6",
|
||||
"url": "https://x.com/Ferginangi/status/2026696207557382298",
|
||||
"author_handle": "Ferginangi",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 64
|
||||
},
|
||||
{
|
||||
"id": "X12",
|
||||
"text": "[ ** STUDIO BOOTH ** ] ** DROPPING SOON - 2026 **\ud83d\udd25\ud83d\udd25\ud83d\udd25\u2026\u2026\u2026..[ ALBUM : LOVE VS LOYALTY - DROPPING SOON ! ]\u2026\u2026\u2026\ud83d\udd25\ud83d\udd25\ud83d\udd25 - ** ALL SONGS & BEATS, PRODUCED & RAP BY ( SEAN BRYANT ) - https://t.co/LduwG5WmM7 - 2/23/2026 - ( KWR 4 LIFE ) - A.A.O & 444 ! https://t.co/NDmkURbjgv",
|
||||
"url": "https://x.com/teammusic2046/status/2026040965329191061",
|
||||
"author_handle": "teammusic2046",
|
||||
"date": "2026-02-23",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 93,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 62
|
||||
},
|
||||
{
|
||||
"id": "X11",
|
||||
"text": "@PopBase Finally, @bts_bighit BTS will come back after completing their military service from 2022 to 2025.\nBTS served in the military to protect their country, South Korea from North Korea's nuclear weapons attack.\n BTS can sing songs and rap on March 20, 2026, KST.\n#BTS_ARIRANG https://t.co/46n1j6eENU",
|
||||
"url": "https://x.com/IoWeul/status/2026233090683863471",
|
||||
"author_handle": "IoWeul",
|
||||
"date": "2026-02-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 2
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 96,
|
||||
"engagement": 13
|
||||
},
|
||||
"score": 59
|
||||
},
|
||||
{
|
||||
"id": "X8",
|
||||
"text": "Lil Uzi Vert (born July '95, so 30 now) isn't struggling at all. Fresh off \"What You Saying\" hitting #1 on Hot Rap Songs in Jan 2026, top 15 Hot 100. New album rumored for surprise drop soon, Roc Nation deal, still packing stadium energy and proving Ebro's 2016 doubts wrong\u2014he's still here, thriving.",
|
||||
"url": "https://x.com/grok/status/2026498538075554040",
|
||||
"author_handle": "grok",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1,
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 6
|
||||
},
|
||||
"score": 58
|
||||
},
|
||||
{
|
||||
"id": "X4",
|
||||
"text": "My musical taste / eras every year\n\n2020: J-POP & K-POP (mostly BLACKPINK)\n2021: Sped-Up Songs\n2022: EDM\n2023: Swiftie (Pop) & Lofi\n2024: Pop, Ambient\n2025: Alternative, OPM, Rock, Rap, Hip-Hop (add)\n2026: K-POP (add)",
|
||||
"url": "https://x.com/AlterEgoPopList/status/2026641456434393579",
|
||||
"author_handle": "AlterEgoPopList",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1,
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 6
|
||||
},
|
||||
"score": 58
|
||||
},
|
||||
{
|
||||
"id": "X3",
|
||||
"text": "@_CharlesPreston Can\u2019t believe I\u2019m seeing \u201cthey say it in rap songs!\u201d In 2026\n\nThe same reductive, ancient, debunked arguments ad infinitum",
|
||||
"url": "https://x.com/WordsFromBlerds/status/2026647382083903688",
|
||||
"author_handle": "WordsFromBlerds",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "X1",
|
||||
"text": "Su La Musica che gira intorno... \"Magica Favola\" \u00e8 il brano con cui Arisa \u00e8 in gara al 76\u00b0 Festival di Sanremo\nhttps://t.co/Nxzkb005lP\n#music #genre #song #songs #envywear #PleaseForgiveMe #melody #hiphop #rnb #pop #love #rap #dubstep #instagood https://t.co/uziy4MjeeB",
|
||||
"url": "https://x.com/Ferginangi/status/2026705227366256880",
|
||||
"author_handle": "Ferginangi",
|
||||
"date": "2026-02-25",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 100,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 56
|
||||
},
|
||||
{
|
||||
"id": "X10",
|
||||
"text": "@blackiiingout \ud83d\udca9 is funny from 2025 to 2026. BiiCH is SCARED to drop that #TRASH he calls \"rap songs\" \ud83e\udd74\ud83d\ude29",
|
||||
"url": "https://x.com/fo_sho52268/status/2026335353364201566",
|
||||
"author_handle": "fo_sho52268",
|
||||
"date": "2026-02-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 96,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 55
|
||||
}
|
||||
],
|
||||
"web": [],
|
||||
"youtube": [
|
||||
{
|
||||
"id": "ZUExyc50ZVU",
|
||||
"title": "Lit Hip Hop Mix 2026\ud83d\udd25\ud83d\udd25\ud83d\udd25Tyga, Quavo, Iggy Azalea, Wiz Khalifa, Juicy J, 50 Cent",
|
||||
"url": "https://www.youtube.com/watch?v=ZUExyc50ZVU",
|
||||
"channel_name": "West Coast Finest",
|
||||
"date": "2026-01-29",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 60,
|
||||
"likes": 4229,
|
||||
"views": 407260
|
||||
},
|
||||
"transcript_snippet": "Yeah. >> Yeah. [music] Late nights, cold life, same story. >> City shine different. You walking with glory, right? >> Still drip falling when I step outside. Yeah. [music] >> Black car park with a do butterfly. Too [music] much heat when we walk inside. Midnight. So you can kill this V. Gold chain swinging when I lean on the night. Shut it. Look twice when I glow on the light. Yeah. I've been running through the city with a cool grin. [music] Ain't nobody in my lane when the night begin white clean look like but a good kind win. It's all too smooth but I back that talk. Money so clean make a bro [music] boy walk in my cup but my soul don't shock. I've been cold for years. I ain't you mock. She said boy you too for the life you live. I peace ain't weak. It's [music and singing] the power I give. I don't flex too loud. I don't need that when your whole damn already scream. Yeah. Late night in the rooftop smoke girls but they all provoke. I don't chase no dream. I just take that goal. I don't chase no soul. They just lose control. Cameras on flash when I step on deck. Fit so clean. Make the whole [music] place check. Talk about but I still respect. Still too smooth. I don't never need a flex. Yeah. West coast chill with a heart [music and singing] too cold. Stories too deep that ain't never been told. I'm a tight make a new king. Pretty boy look but a mind. Yeah. Slide through smooth. Let a breeze and a ghost. All [music and singing] them in my but I flex coast to coast. Pretty boy with a mind stay close to the pain to the grind to the things I boast. Wo. F drag with a midnight gleam. [music and singing] Squad clean like a runway team. All black drip with a icon of sheen. Feel like a king every time I hit a scene. Purple in a club but a soul still clear. Vision too [singing] sharp when I stare in the mirror. [music] Fashion too loud but the vibe too sick. Every step I take got a world right here. Yeah. BBS ice made a nice guy blush. Shorty walk in the whole club hush. Talk too [music] cute but she move too lush. Slow down baby [singing] you rush too much. [music] Boy magic with a westside twist. Mind too slick when I talk like this. I don't miss not a bar not a kiss. I ain't too heavy. I exist like bliss. Woah. Let it on my back with a chrome on shine. Let the world go blind. I'm still define. Every day I'm tren with a style so divine still drip [music] when I step outside. Yeah. Black car park with the dogs butterfly. Too much heat when we walk inside. Midnight. [music] You can't kill...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about rap songs 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 9,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 63
|
||||
},
|
||||
{
|
||||
"id": "d1melQQVp6s",
|
||||
"title": "New Rap Songs 2026 Mix February | Trap Tape #127 | New Hip Hop 2026 Mixtape | DJ Noize",
|
||||
"url": "https://www.youtube.com/watch?v=d1melQQVp6s",
|
||||
"channel_name": "DJ Noize",
|
||||
"date": "2026-02-14",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 45,
|
||||
"likes": 761,
|
||||
"views": 42707
|
||||
},
|
||||
"transcript_snippet": "[music] This This is a DJ noise mixtape present. This is a DJ noise mixtape [music] presentation. DJ [music] >> Who the [ __ ] is you? Who the [ __ ] is you? Who the [ __ ] >> Yeah, you know who put the city on. Came [music] back through gold they show. I'm really on. Your [ __ ] died trying. I had 50 on. [ __ ] is [music] ringing out my phone like is you really on? I'll stay out the way since I [singing] seen a million on 5% tension plus I got this hoodie on. I had to hubble up. Stop [music] moving with that jury on. You hear that girl told me [ __ ] get deep ass. Get it on. I'm a sidewalk [ __ ] I'mma stay there. I leave the [music] streets for the ones that want to play. I leveled up so shy want a day chair. Left my kids [music] in a mouth like a dayare. I'm the Carolina now Shakespeare. All that cap you let them [ __ ] rap is over. The real is back. You [music] feel the way you got to cope with it. The veil put a [ __ ] six feet like that was hit. Okay, these [ __ ] ain't talking about [ __ ] No [music] diamonds on my neck. No rolly on my wrist. Two six I learned a little bit. I learned the hardest [music] [ __ ] You can always get kicked. I can jungle. I done [ __ ] around and [singing] got rich. See dollars in my pocket. [ __ ] I'm not a lick. [music] I'd rather that than got to [singing] walk around with sticks cuz I like the hardest [ __ ] He can always get Who the [ __ ] is you? Who the [ __ ] [music] is you? Who the [ __ ] is you? Who the [ __ ] is you? Out the way. It's a real [ __ ] coming through. Out the way. [music] It's a real [ __ ] coming through. Who the [ __ ] is you? Who the [ __ ] is you? Who the [ __ ] is you? Who the [ __ ] is you out [music] the way? It's a real [ __ ] coming through. Out the way. It's a real [ __ ] [music] >> [music] >> Running to the check flag won't pull over till I'm dead right no [music] ain't going to get no [ __ ] riding with me in the head know I'm [ __ ] no big [ __ ] popping in the little [ __ ] dropping bags it's a lot to you to me [ __ ] 40 in my lap. Uh-huh. Real dope boys in [music] a trap. Uh-huh. Big y like a big shot. [ __ ] on my dick. [singing] Make me room for your big got to let them know. I don't wrestle. I don't live block. [music] Solid tails. All I do is big rock. I came from Dilling Rock all the way to hit on the grown. [ __ ] ain't when I'm on. She can kick rock. Let her know. I'm blowing money. Let [music] them know I'm only I know how we get bread. I ain't never [music] scared on...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about rap songs 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 63,
|
||||
"engagement": 37
|
||||
},
|
||||
"score": 58
|
||||
},
|
||||
{
|
||||
"id": "-KQpPySP93I",
|
||||
"title": "New Hip Hop R&B Songs 2026 Mix February | Hot Right Now #153 | New Rap 2026 Playlist | DJ Noize",
|
||||
"url": "https://www.youtube.com/watch?v=-KQpPySP93I",
|
||||
"channel_name": "DJ Noize",
|
||||
"date": "2026-02-21",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 18,
|
||||
"likes": 304,
|
||||
"views": 12955
|
||||
},
|
||||
"transcript_snippet": "This This is a DJ noise tape present. This is a DJ noise mix. [music] I got Nikki on me. How we treat the like a bucket for rubbing. You [music] ain't no fella from my junction. You ain't pluck you clapping smirk. Young enough to something. [music] Word mother body slam some [ __ ] for honey. Keep a stitch. People pick me up. Ain't saying a word or nothing. Grab a [music] load. Put on little bro. We had him serving prostitut. Shout out little [singing] b. She gave me 30 something on the beat. Phone cracker seal and I can't go to sleep. Promoters tweaking. [music] Pull up to the venue over 40 deep. You know the tweak. Ranking through the roof then you ain't supposed to leak. It's one up top. Manator is keep it close to me. Ain't that how it's supposed to be? [music] She going to get your me. I'm get you smoke free. Kamicazi [music] playing around [singing] this [ __ ] Something wrong with me. I'm letting diss the dead unless they skeleton belong the team type of [ __ ] won't let it get in between the city and the police where [ __ ] get they do for me they [music] all do the show leaning spots I do like fully call back off you know it's strong we [music] man 15 I had 15 [singing] in 2010 then I be [music] the man right now [ __ ] change big guns bank shame I'm change [music] I'm going make that I only burn. That's how my body [music] can't be pull [singing] right to the sun. [music] Ain't going to get no [ __ ] riding with me in the head west. I'm out of mind [music] [ __ ] popping in little [ __ ] dropping bags. It's a lot to you to me a little bit sh [music] like a big shot. [ __ ] on my dick. Make me room for your big. Got to let them know I don't turn wrestle. I don't live block solid tails. [music] All I do is big rocks. I came from Dilling Rock all the way to hit on the grown. [ __ ] ain't when I'm on. She can kick rock. Let her know [music] my foot up on the gas. I'm blowing money. You never know. I'm only [music] beat down. We getting bread. I ain't never scared big flex [music] on a [ __ ] head what I'm standing on big chick we [singing] did that pushing weed back better give me respect and some more Atlanta [music] show I was selling ground right I don't care [music] ling to me what you need a camera better know they call it [music] we just call it they say [singing] you live down by your decision [music] well I'mma push you to the limit never mind the consequences A [ __ ] I'm a hand better let them know on another [music] level my ass I put together hit the pedal do 200 everywhere I go [music] just to show...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about rap songs 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 86,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 53
|
||||
}
|
||||
],
|
||||
"hackernews": [],
|
||||
"best_practices": [],
|
||||
"prompt_pack": [],
|
||||
"context_snippet_md": "# Context: best rap songs 2026 (Last 30 Days)\n\n*Generated: 2026-02-25 | Sources: both*\n\n## Key Sources\n\n- [X] Talking about meaningful rap songs...\n\nWORLD BEST ...\n- [Reddit] Mix Rap Hiphop 2026\n- [X] @PopCrave Partition still goes harder than most 20...\n- [Reddit] Daily Discussion Thread 02/24/2026\n- [X] @Unfath0m4ble @robinthisbish @lilceaserthabp1 @Rap...\n- [X] @lil_loonie1 @oldmanebro No, Lil Uzi Vert isn't st...\n- [X] Su La Musica che gira intorno... \"Qui con me\" \u00e8 il...\n\n## Summary\n\n*See full report for best practices, prompt pack, and detailed sources.*\n"
|
||||
}
|
||||
@@ -0,0 +1,468 @@
|
||||
{
|
||||
"topic": "React vs Svelte 2026",
|
||||
"range": {
|
||||
"from": "2026-01-26",
|
||||
"to": "2026-02-25"
|
||||
},
|
||||
"generated_at": "2026-02-25T20:38:50.068065+00:00",
|
||||
"mode": "both",
|
||||
"openai_model_used": "gpt-5.2",
|
||||
"xai_model_used": "grok-4-1-fast",
|
||||
"reddit": [
|
||||
{
|
||||
"id": "R2",
|
||||
"title": "What do you guys think about comparison between React vs Svelte?",
|
||||
"url": "https://www.reddit.com/r/react/comments/1r1fku5/what_do_you_guys_think_about_comparison_between/",
|
||||
"subreddit": "eact",
|
||||
"date": "2026-02-10",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.93,
|
||||
"why_relevant": "Explicit React vs Svelte comparison discussion (mentions Svelte 5 runes vs React hooks).",
|
||||
"subs": {
|
||||
"relevance": 93,
|
||||
"recency": 50,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 66
|
||||
},
|
||||
{
|
||||
"id": "R1",
|
||||
"title": "Migrated our startup from React to Svelte 5 - Performance gains and lessons learned",
|
||||
"url": "https://www.reddit.com/r/webdev/comments/1qu4dek/migrated_our_startup_from_react_to_svelte_5/",
|
||||
"subreddit": "webdev",
|
||||
"date": "2026-02-02",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.96,
|
||||
"why_relevant": "Direct migration story from React to Svelte 5 with concrete perf/dev-ex tradeoffs; very relevant to 2026 comparisons.",
|
||||
"subs": {
|
||||
"relevance": 96,
|
||||
"recency": 23,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 60
|
||||
},
|
||||
{
|
||||
"id": "R4",
|
||||
"title": "When to choose React over Svelte",
|
||||
"url": "https://www.reddit.com/r/sveltejs/comments/1jeknib/when_to_choose_react_over_svelte/",
|
||||
"subreddit": "sveltejs",
|
||||
"date": null,
|
||||
"date_confidence": "low",
|
||||
"engagement": null,
|
||||
"top_comments": [],
|
||||
"comment_insights": [],
|
||||
"relevance": 0.88,
|
||||
"why_relevant": "Decision-oriented thread explicitly contrasting when React vs Svelte makes sense (ecosystem/jobs/productivity).",
|
||||
"subs": {
|
||||
"relevance": 88,
|
||||
"recency": 0,
|
||||
"engagement": 50
|
||||
},
|
||||
"score": 46
|
||||
}
|
||||
],
|
||||
"x": [
|
||||
{
|
||||
"id": "X4",
|
||||
"text": "TypeScript is the baseline in 2026. But most forms still fight type drift between API, schema & UI. \n\n@formisch_dev + @valibot = one source of truth, zero boilerplate \u26a1\ufe0f\n\nconst form = useForm({ schema: YourSchema });\n\nFull types everywhere. Works in React, SolidJS, Vue, Svelte\u2026 \n\nYour biggest type-safety win this year? \ud83d\udc47",
|
||||
"url": "https://x.com/FabianHiller/status/2022345388603080834",
|
||||
"author_handle": "FabianHiller",
|
||||
"date": "2026-02-13",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 61,
|
||||
"reposts": 2,
|
||||
"replies": 7
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 60,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 76
|
||||
},
|
||||
{
|
||||
"id": "X3",
|
||||
"text": "Popular JavaScript Frameworks / Frontend Libraries (2025\u20132026 trends)\n\n - React: \ud83c\uddfa\ud83c\uddf8 United States\n - Vue: \ud83c\udde8\ud83c\uddf3 China (created by Evan You)\n - Angular: \ud83c\uddfa\ud83c\uddf8 United States\n - Svelte: \ud83c\uddfa\ud83c\uddf8 United States (New Zealand creator)\n - Next.js: \ud83c\uddfa\ud83c\uddf8 United States\n - Nuxt: \ud83c\uddeb\ud83c\uddf7 France\n - Astro: \ud83c\udde8\ud83c\udde6 United States / Canada\n - Solid: \ud83c\uddfa\ud83c\uddf8 United States",
|
||||
"url": "https://x.com/ConsciousRide/status/2023050160520278501",
|
||||
"author_handle": "ConsciousRide",
|
||||
"date": "2026-02-15",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 6
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 66,
|
||||
"engagement": 33
|
||||
},
|
||||
"score": 57
|
||||
},
|
||||
{
|
||||
"id": "X11",
|
||||
"text": "Requirements for a fresher in 2026:\n\nPython, JavaScript, C, C++, Java, HTML, CSS, TypeScript, React, Next.js, Vue, Angular, Svelte, Node.js, Express, Django, Flask, FastAPI, Spring Boot, PHP, Laravel, Ruby, Ruby on Rails, Go, Rust, Kotlin, Swift, C#, .NET, SQL, MySQL, PostgreSQL, MongoDB, Redis, Firebase, Supabase, Prisma, Docker, Kubernetes, Nginx, Linux, Git, GitHub, Gitflow, VS Code, IntelliJ, Cloud Computing (AWS, Azure, GCP), DevOps, CI/CD, Jest, PyTest, Selenium, REST APIs, GraphQL, WebSoc",
|
||||
"url": "https://x.com/singhprateek_25/status/2020094806735700154",
|
||||
"author_handle": "singhprateek_25",
|
||||
"date": "2026-02-07",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 6,
|
||||
"reposts": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 40,
|
||||
"engagement": 39
|
||||
},
|
||||
"score": 53
|
||||
},
|
||||
{
|
||||
"id": "X1",
|
||||
"text": "Ripple: The Good Parts of React, Svelte, and Solid\n\nFrameworks rise and fall \u2014 and in 2026 we\u2019re deep in late-stage React. What\u2019s next? Join @erikras as he introduces Ripple, a TypeScript-first UI framework blending the best of React and Svelte with fine-grained reactivity and serious speed.\n\nSee the future of UI development live at CityJS London.\nGet your ticket now: https://t.co/wGMJJIELXm",
|
||||
"url": "https://x.com/cityjsconf/status/2024908272646398229",
|
||||
"author_handle": "cityjsconf",
|
||||
"date": "2026-02-20",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"reposts": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 83,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "X2",
|
||||
"text": "Prediction: 2026 marks the death of the JS frameworks. React, Svelte, Astro etc... only exist because humans need organized code to stay sane. \n\nOnce we stop reading the source code, we stop needing the structure. \n\nIn an AI-first world, JS frameworks are just overhead.",
|
||||
"url": "https://x.com/dennydotio/status/2024195986890109320",
|
||||
"author_handle": "dennydotio",
|
||||
"date": "2026-02-18",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 76,
|
||||
"engagement": 7
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "X5",
|
||||
"text": "Web developers, what stack are you using in 2026?\nReact? Vue? Svelte? Vanilla? Curious what\u2019s actually winning.",
|
||||
"url": "https://x.com/AzamCodes/status/2022298287236383010",
|
||||
"author_handle": "AzamCodes",
|
||||
"date": "2026-02-13",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"likes": 2,
|
||||
"replies": 1
|
||||
},
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 60,
|
||||
"engagement": 19
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "X8",
|
||||
"text": "[2026/02/11 18:00] \u30c8\u30ec\u30f3\u30c91\u4f4d\n\u3010WebF\u3011React/Vue/Svelte\u304c\u305d\u306e\u307e\u307e\u30cd\u30a4\u30c6\u30a3\u30d6\u30a2\u30d7\u30ea\u306b\u306a\u308b\u3088 by rana_kualu https://t.co/GiAnTHpOBB",
|
||||
"url": "https://x.com/QiitaTrend/status/2021509592489025785",
|
||||
"author_handle": "QiitaTrend",
|
||||
"date": "2026-02-11",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 53,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "X10",
|
||||
"text": "@babakfpk In 2026, picking React for a new project only really makes sense if you value ecosystem maturity, are following existing team habits, or need React-specific libraries. Same for Vue. Otherwise, use Solid or Svelte.",
|
||||
"url": "https://x.com/nicobaogim/status/2020689628282667407",
|
||||
"author_handle": "nicobaogim",
|
||||
"date": "2026-02-09",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 46,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 50
|
||||
},
|
||||
{
|
||||
"id": "X12",
|
||||
"text": "2026 framework discourse:\n\nDev 1: \"React is bloated, use Svelte\"\nDev 2: \"Svelte has no ecosystem, use Vue\"\nDev 3: \"Vue is dying, use Solid\"\nDev 4: \"Just use React\"\n\nMeanwhile React: *still powering 80% of the web*\n\nThe discourse never ends. \ud83d\udc80",
|
||||
"url": "https://x.com/Chubbi_Stephen/status/2020087839648800853",
|
||||
"author_handle": "Chubbi_Stephen",
|
||||
"date": "2026-02-07",
|
||||
"date_confidence": "high",
|
||||
"engagement": null,
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 40,
|
||||
"engagement": 35
|
||||
},
|
||||
"score": 49
|
||||
}
|
||||
],
|
||||
"web": [],
|
||||
"youtube": [
|
||||
{
|
||||
"id": "yl0YWA2K2B0",
|
||||
"title": "React wants to win you back\u2026",
|
||||
"url": "https://www.youtube.com/watch?v=yl0YWA2K2B0",
|
||||
"channel_name": "Fireship",
|
||||
"date": "2025-10-17",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 1000,
|
||||
"likes": 22894,
|
||||
"views": 699597
|
||||
},
|
||||
"transcript_snippet": "Last week, I got to participate in my favorite activity of the year. No, it wasn't watching all the overleveraged crypto bros learn what a margin call is. It was hate watching React comp as an anti-react influencer. Every year I crawl into my spelt Snuggy and I watch the React team try to convince everyone that their new APIs fix all of their old APIs. And though it hurts me to say it, this year I think they may have actually done it. I know this is an AI channel now, but in today's video, we'll revisit the worst parts of React to see if the announcements they made at React Comp will actually make a difference. It is October 17th, 2025, and you're watching the code report. The greatest trick the devil ever pulled was making referential stability a prerequisite to writing React apps that don't blow up. Just last month, Cloudflare had a massive outage because their dashboard kept making unnecessary calls to one of their own APIs, which led to them basically themselves. If you're a React dev, you know this is the primary use case for React's use effect hook. And it's exactly what caused this embarrassing bug for Cloudflare. But it's hard to blame React for this. The whole situation could have been avoided if only the poor debit Cloudflare would have read the docs on use effect. Then this post which shows you when to use it. Then this post which shows you when to not use it. Then this post which shows you what it actually does. Then this post which shows you how to use it correctly. And now with React 19.2. this post which shows you how to work around it with React's new use effect event hook. The way it works is it creates a function that you can use inside of use effect without needing to declare it in the dependency array. This is nice for situations like this where you need to use a value inside of use effect but don't want the effect to rerun when it changes. And the other big API addition was the new activity component which you can think of like a smarter display none that React itself controls. It lets you show and hide certain components, but unlike display none, React is able to maintain the state of those components across visibility and also deprioritize the work it does for hidden components. And if you've been drinking your lead lace protein and want to live on the edge, you can install React's Canary version where you'll get the new view transition component for animating transitions between different UIs. And you'll be able to pass a ref to a fragment, which makes working with platform APIs a little easier. But the most impactful announcements of the conference may have not been related to the React API. The first React compiler finally hit 1.0. If you've been in any React codebase lately, you've...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 99
|
||||
},
|
||||
"score": 61
|
||||
},
|
||||
{
|
||||
"id": "MnpuK0MK4yo",
|
||||
"title": "React VS Svelte...10 Examples",
|
||||
"url": "https://www.youtube.com/watch?v=MnpuK0MK4yo",
|
||||
"channel_name": "Beyond Fireship",
|
||||
"date": "2023-06-30",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 1100,
|
||||
"likes": 25490,
|
||||
"views": 697142
|
||||
},
|
||||
"transcript_snippet": "any reasonable developer in today's world would learn react because it's the status quo and that's where the jobs are but life is a lot more fun when you become unreasonable and go against the status quo to push web development forward for future Generations in today's video we'll compare react and spelled side by side by looking at common patterns and design choices by the framework creators I'm not here to tell you that one is better than the other because that's what the comment section below this video is for the only way to truly find out which one is best is to build something with both of them and decide for yourself I just released a brand new full spell kick course yesterday and also have a full next js13 course for fireship pro members going through each one of these courses will give you a really good idea of which framework is best for you first up we need to talk about rendering both of these Frameworks do the same thing they help developers build reactive uis with JavaScript by organizing code into reusable components an end user would never be able to tell the difference between the two but when it comes to the developer experience there is a world of difference react.js uses a runtime called the virtual Dom it keeps track of data changes in the application in order to render them in the act actual Dom in the browser the drawback is that this runtime requires some initial JavaScript and in Frameworks like nextjs your Baseline is around 70 kilobytes just to render a hello world as felt on the other hand takes an entirely different approach using a compiler to eliminate the need for a runtime it takes your svelt code and converts it into vanilla JavaScript which results in a far smaller hello world using a compiler though is kind of like cheating react.js is just JavaScript whereas spill can take non-javascript code to allow developers to do things more efficiently than they could otherwise but some JavaScript fundamentalists might consider this black magic what's ironic though is that vanilla JavaScript libraries tend to be much easier to work with in spell when compared to react however react does have a massive ecosystem of dedicated libraries to help you get things done now let's look at an actual code example of component State here we have a basic counter app in react we use functions to create components and then add reactive state to them with the use State hook that returns a reactive value and a Setter function to update the state pretty simple but let's see how it compares to svelt here on the right side in spelled you have only one component file and Define the logic within the script tags to create reactive State all you do is create a variable with the let keyword from there we can define a function on the click event...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 100
|
||||
},
|
||||
"score": 61
|
||||
},
|
||||
{
|
||||
"id": "aYyZUDFZTrM",
|
||||
"title": "JavaScript framework reinvents itself\u2026 Did \"runes\" just ruin Svelte?",
|
||||
"url": "https://www.youtube.com/watch?v=aYyZUDFZTrM",
|
||||
"channel_name": "Fireship",
|
||||
"date": "2024-10-24",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 1200,
|
||||
"likes": 24456,
|
||||
"views": 547836
|
||||
},
|
||||
"transcript_snippet": "about a year ago I made a tweet that said the dollar sign in spelt is the most powerful abstraction in modern front-end web development usually I'm not wrong about anything ever but this tweet ended up aging like a fine milk because just Weeks Later spelt announced a brand new feature called runes that significantly changed the developer experience by eliminating the dollar sign Syntax for reactive data and then just a few days ago this feature became official with the release of spelt 5 as an avid user of spelt myself I was pretty terrified of this feature at first glance I was one of the few survivors of the angularjs to angular 2 migration I shot myself in the foot during the react hooks Revolution and I lost some good friends during the view options to composition transition and I just can't do this anymore man so maybe I'll just go back to Wordpress uh never mind spelt it is in today's video we'll find out what the hell a rune is and whether or not they're going to ruin spelt it is October 24th 2024 and you're watching the code report most people really liked runes when they were first announced but not everybody I was in denial at first then I got angry then I bargained about the tradeoffs then came depression and finally I've come to accept and really enjoy runes the big question is why would the most L JavaScript framework make a risky departure from the features people love about it like reactive state with let and reactive side effects with the dollar sign just look at how much nicer this code is compared to reactjs react is even copy and spelt with its own compiler to make this code not suck so much the spelt code is lean and concise but one could argue that it's almost too clever let looks exact like regular JavaScript but because spelt uses a compiler it doesn't actually work like regular JavaScript under the hood the compiler does some magic to automatically update the UI whenever this value changes another issue is that this magic only works in a spelt file and that means it's difficult to share reactive logic throughout your application and spelt created an entirely different API called stores to address that issue however runes fix both of these limitations by a making your code more explicit and B they create a universal reactivity system that can be used not only in spel components but also in plain JavaScript or typescript files and this dramatically simplifies the overall framework like once you learn these four runes you'll know about 90% of what you need to know for the framework because everything else works like normal JavaScript and HTML let's go ahead and learn the four major runes now which you can think of as compiler macros that tell spelt to do something special that doesn't behave like regular JavaScript or HTML a...",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 98
|
||||
},
|
||||
"score": 60
|
||||
},
|
||||
{
|
||||
"id": "fn_uSZW5psM",
|
||||
"title": "The Untold Story of Svelte",
|
||||
"url": "https://www.youtube.com/watch?v=fn_uSZW5psM",
|
||||
"channel_name": "CodeSource",
|
||||
"date": "2025-05-14",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 144,
|
||||
"likes": 2120,
|
||||
"views": 57784
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 69
|
||||
},
|
||||
"score": 52
|
||||
},
|
||||
{
|
||||
"id": "IpJh0VEzMRo",
|
||||
"title": "I Was Wrong About Svelte...",
|
||||
"url": "https://www.youtube.com/watch?v=IpJh0VEzMRo",
|
||||
"channel_name": "Ben Davis",
|
||||
"date": "2025-10-12",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 122,
|
||||
"likes": 1043,
|
||||
"views": 24631
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 61
|
||||
},
|
||||
"score": 49
|
||||
},
|
||||
{
|
||||
"id": "1cGtYEXGm8c",
|
||||
"title": "This is THE Framework You Should be Using in 2026",
|
||||
"url": "https://www.youtube.com/watch?v=1cGtYEXGm8c",
|
||||
"channel_name": "Ben Davis",
|
||||
"date": "2026-01-06",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 142,
|
||||
"likes": 793,
|
||||
"views": 16899
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 57
|
||||
},
|
||||
"score": 48
|
||||
},
|
||||
{
|
||||
"id": "qwDp5pZA_TA",
|
||||
"title": "The Front-end Frameworks Guide 2026: React vs Angular vs Vue vs Svelt vs Solid vs Astro",
|
||||
"url": "https://www.youtube.com/watch?v=qwDp5pZA_TA",
|
||||
"channel_name": "Code Hub",
|
||||
"date": "2026-02-08",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 4,
|
||||
"likes": 31,
|
||||
"views": 646
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 43,
|
||||
"engagement": 17
|
||||
},
|
||||
"score": 47
|
||||
},
|
||||
{
|
||||
"id": "_vuVy21l2bU",
|
||||
"title": "React vs Svelte: The Brutal Honest Comparison EVER",
|
||||
"url": "https://www.youtube.com/watch?v=_vuVy21l2bU",
|
||||
"channel_name": "Code Hub",
|
||||
"date": "2025-10-30",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 27,
|
||||
"likes": 204,
|
||||
"views": 6454
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 42
|
||||
},
|
||||
"score": 44
|
||||
},
|
||||
{
|
||||
"id": "1BCsdaeYv0A",
|
||||
"title": "Svelte vs React in 2025 - Make the RIGHT Choice (Difference Explained)",
|
||||
"url": "https://www.youtube.com/watch?v=1BCsdaeYv0A",
|
||||
"channel_name": "Daniel | Tech & Data",
|
||||
"date": "2023-11-26",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 34,
|
||||
"likes": 0,
|
||||
"views": 33905
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 30
|
||||
},
|
||||
"score": 40
|
||||
},
|
||||
{
|
||||
"id": "41HXdxGekZ0",
|
||||
"title": "Vue vs React vs Svelte (2026) - Which One Is BEST?",
|
||||
"url": "https://www.youtube.com/watch?v=41HXdxGekZ0",
|
||||
"channel_name": "Paperclick",
|
||||
"date": "2025-10-04",
|
||||
"date_confidence": "high",
|
||||
"engagement": {
|
||||
"num_comments": 0,
|
||||
"likes": 3,
|
||||
"views": 287
|
||||
},
|
||||
"transcript_snippet": "",
|
||||
"relevance": 0.7,
|
||||
"why_relevant": "YouTube video about react vs svelte 2026",
|
||||
"subs": {
|
||||
"relevance": 70,
|
||||
"recency": 0,
|
||||
"engagement": 0
|
||||
},
|
||||
"score": 31
|
||||
}
|
||||
],
|
||||
"hackernews": [],
|
||||
"best_practices": [],
|
||||
"prompt_pack": [],
|
||||
"context_snippet_md": "# Context: React vs Svelte 2026 (Last 30 Days)\n\n*Generated: 2026-02-25 | Sources: both*\n\n## Key Sources\n\n- [X] TypeScript is the baseline in 2026. But most forms...\n- [Reddit] What do you guys think about comparison between React vs Svelte?\n- [Reddit] Migrated our startup from React to Svelte 5 - Performance gains and lessons learned\n- [X] Popular JavaScript Frameworks / Frontend Libraries...\n- [X] Requirements for a fresher in 2026:\n\nPython, JavaS...\n- [X] Ripple: The Good Parts of React, Svelte, and Solid...\n- [X] Prediction: 2026 marks the death of the JS framewo...\n\n## Summary\n\n*See full report for best practices, prompt pack, and detailed sources.*\n"
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
# Synthesis Instructions (Base version - no Hacker News)
|
||||
|
||||
## Judge Agent: Synthesize All Sources
|
||||
|
||||
After all searches complete, internally synthesize (don't display stats yet):
|
||||
|
||||
1. Weight Reddit/X sources HIGHER (they have engagement signals: upvotes, likes)
|
||||
2. Weight YouTube sources HIGH (they have views, likes, and transcript content)
|
||||
3. Weight WebSearch sources LOWER (no engagement data)
|
||||
4. Identify patterns that appear across ALL sources (strongest signals)
|
||||
5. Note any contradictions between sources
|
||||
6. Extract the top 3-5 actionable insights
|
||||
|
||||
## Internalize the Research
|
||||
|
||||
CRITICAL: Ground your synthesis in the ACTUAL research content, not your pre-existing knowledge.
|
||||
|
||||
Read the research output carefully. Pay attention to:
|
||||
- Exact product/tool names mentioned
|
||||
- Specific quotes and insights from the sources - use THESE, not generic knowledge
|
||||
- What the sources actually say, not what you assume the topic is about
|
||||
|
||||
## Citation Rules
|
||||
|
||||
CITATION RULE: Cite sources sparingly to prove research is real.
|
||||
- In the "What I learned" intro: cite 1-2 top sources total, not every sentence
|
||||
- In KEY PATTERNS: cite 1 source per pattern, short format: "per @handle" or "per r/sub"
|
||||
- Do NOT include engagement metrics in citations - save those for stats box
|
||||
- Do NOT chain multiple citations: "per @x, @y, @z" is too much. Pick the strongest one.
|
||||
|
||||
CITATION PRIORITY (most to least preferred):
|
||||
1. @handles from X - "per @handle"
|
||||
2. r/subreddits from Reddit - "per r/subreddit"
|
||||
3. YouTube channels - "per [channel name] on YouTube"
|
||||
4. Web sources - ONLY when Reddit/X/YouTube don't cover that specific fact
|
||||
|
||||
URL FORMATTING: NEVER paste raw URLs. Use the publication name, not the URL.
|
||||
|
||||
Lead with people, not publications. Start each topic with what Reddit/X users are saying/feeling, then add web context only if needed.
|
||||
|
||||
## Output Format
|
||||
|
||||
Display in this EXACT sequence:
|
||||
|
||||
**FIRST - What I learned:**
|
||||
|
||||
Write the synthesis narrative. Use bold topic headers. Keep it grounded in research.
|
||||
|
||||
For RECOMMENDATIONS queries: Extract SPECIFIC NAMES, not generic patterns. List by popularity/mention count with "Sources:" line per item.
|
||||
|
||||
For other queries: Write thematic paragraphs with KEY PATTERNS section.
|
||||
|
||||
**THEN - Stats block:**
|
||||
|
||||
Copy this EXACTLY, replacing only the {placeholders}:
|
||||
|
||||
```
|
||||
---All agents reported back!
|
||||
├─ 🟠 Reddit: {N} threads │ {N} upvotes │ {N} comments
|
||||
├─ 🔵 X: {N} posts │ {N} likes │ {N} reposts
|
||||
├─ 🔴 YouTube: {N} videos │ {N} views │ {N} with transcripts
|
||||
├─ 🌐 Web: {N} pages (supplementary)
|
||||
└─ 🗣️ Top voices: @{handle1} ({N} likes), @{handle2} │ r/{sub1}, r/{sub2}
|
||||
```
|
||||
|
||||
Calculate actual totals from the research output. Count posts/threads from each section. Sum engagement metrics.
|
||||
|
||||
**LAST - Invitation:**
|
||||
|
||||
```
|
||||
---I'm now an expert on {TOPIC}. Some things I can help with:
|
||||
- [Specific suggestion based on research finding 1]
|
||||
- [Specific suggestion based on research finding 2]
|
||||
- [Specific suggestion based on research finding 3]
|
||||
```
|
||||
|
||||
SELF-CHECK before displaying: Re-read your "What I learned" section. Does it match what the research ACTUALLY says?
|
||||
@@ -0,0 +1,81 @@
|
||||
# Synthesis Instructions (HN version - with Hacker News)
|
||||
|
||||
## Judge Agent: Synthesize All Sources
|
||||
|
||||
After all searches complete, internally synthesize (don't display stats yet):
|
||||
|
||||
1. Weight Reddit/X sources HIGHER (they have engagement signals: upvotes, likes)
|
||||
2. Weight YouTube sources HIGH (they have views, likes, and transcript content)
|
||||
3. Weight WebSearch sources LOWER (no engagement data)
|
||||
4. Identify patterns that appear across ALL sources (strongest signals)
|
||||
5. Note any contradictions between sources
|
||||
6. Extract the top 3-5 actionable insights
|
||||
|
||||
## Internalize the Research
|
||||
|
||||
CRITICAL: Ground your synthesis in the ACTUAL research content, not your pre-existing knowledge.
|
||||
|
||||
Read the research output carefully. Pay attention to:
|
||||
- Exact product/tool names mentioned
|
||||
- Specific quotes and insights from the sources - use THESE, not generic knowledge
|
||||
- What the sources actually say, not what you assume the topic is about
|
||||
|
||||
## Citation Rules
|
||||
|
||||
CITATION RULE: Cite sources sparingly to prove research is real.
|
||||
- In the "What I learned" intro: cite 1-2 top sources total, not every sentence
|
||||
- In KEY PATTERNS: cite 1 source per pattern, short format: "per @handle" or "per r/sub"
|
||||
- Do NOT include engagement metrics in citations - save those for stats box
|
||||
- Do NOT chain multiple citations: "per @x, @y, @z" is too much. Pick the strongest one.
|
||||
|
||||
CITATION PRIORITY (most to least preferred):
|
||||
1. @handles from X - "per @handle"
|
||||
2. r/subreddits from Reddit - "per r/subreddit"
|
||||
3. YouTube channels - "per [channel name] on YouTube" (transcript-backed insights)
|
||||
4. HN discussions - "per HN" or "per hn/username" (developer community signal)
|
||||
5. Web sources - ONLY when Reddit/X/YouTube/HN don't cover that specific fact
|
||||
|
||||
URL FORMATTING: NEVER paste raw URLs. Use the publication name, not the URL.
|
||||
|
||||
Lead with people, not publications. Start each topic with what Reddit/X users are saying/feeling, then add web context only if needed.
|
||||
|
||||
## Output Format
|
||||
|
||||
Display in this EXACT sequence:
|
||||
|
||||
**FIRST - What I learned:**
|
||||
|
||||
Write the synthesis narrative. Use bold topic headers. Keep it grounded in research.
|
||||
|
||||
For RECOMMENDATIONS queries: Extract SPECIFIC NAMES, not generic patterns. List by popularity/mention count with "Sources:" line per item.
|
||||
|
||||
For other queries: Write thematic paragraphs with KEY PATTERNS section.
|
||||
|
||||
**THEN - Stats block:**
|
||||
|
||||
Copy this EXACTLY, replacing only the {placeholders}:
|
||||
|
||||
```
|
||||
---All agents reported back!
|
||||
├─ 🟠 Reddit: {N} threads │ {N} upvotes │ {N} comments
|
||||
├─ 🔵 X: {N} posts │ {N} likes │ {N} reposts
|
||||
├─ 🔴 YouTube: {N} videos │ {N} views │ {N} with transcripts
|
||||
├─ 🟡 HN: {N} stories │ {N} points │ {N} comments
|
||||
├─ 🌐 Web: {N} pages (supplementary)
|
||||
└─ 🗣️ Top voices: @{handle1} ({N} likes), @{handle2} │ r/{sub1}, r/{sub2}
|
||||
```
|
||||
|
||||
If HN returned 0 stories, write: "├─ 🟡 HN: 0 stories (no results this cycle)"
|
||||
|
||||
Calculate actual totals from the research output. Count posts/threads from each section. Sum engagement metrics.
|
||||
|
||||
**LAST - Invitation:**
|
||||
|
||||
```
|
||||
---I'm now an expert on {TOPIC}. Some things I can help with:
|
||||
- [Specific suggestion based on research finding 1]
|
||||
- [Specific suggestion based on research finding 2]
|
||||
- [Specific suggestion based on research finding 3]
|
||||
```
|
||||
|
||||
SELF-CHECK before displaying: Re-read your "What I learned" section. Does it match what the research ACTUALLY says?
|
||||
@@ -0,0 +1,81 @@
|
||||
# Synthesis Instructions (HN version - with Hacker News)
|
||||
|
||||
## Judge Agent: Synthesize All Sources
|
||||
|
||||
After all searches complete, internally synthesize (don't display stats yet):
|
||||
|
||||
1. Weight Reddit/X sources HIGHER (they have engagement signals: upvotes, likes)
|
||||
2. Weight YouTube sources HIGH (they have views, likes, and transcript content)
|
||||
3. Weight WebSearch sources LOWER (no engagement data)
|
||||
4. Identify patterns that appear across ALL sources (strongest signals)
|
||||
5. Note any contradictions between sources
|
||||
6. Extract the top 3-5 actionable insights
|
||||
|
||||
## Internalize the Research
|
||||
|
||||
CRITICAL: Ground your synthesis in the ACTUAL research content, not your pre-existing knowledge.
|
||||
|
||||
Read the research output carefully. Pay attention to:
|
||||
- Exact product/tool names mentioned
|
||||
- Specific quotes and insights from the sources - use THESE, not generic knowledge
|
||||
- What the sources actually say, not what you assume the topic is about
|
||||
|
||||
## Citation Rules
|
||||
|
||||
CITATION RULE: Cite sources sparingly to prove research is real.
|
||||
- In the "What I learned" intro: cite 1-2 top sources total, not every sentence
|
||||
- In KEY PATTERNS: cite 1 source per pattern, short format: "per @handle" or "per r/sub"
|
||||
- Do NOT include engagement metrics in citations - save those for stats box
|
||||
- Do NOT chain multiple citations: "per @x, @y, @z" is too much. Pick the strongest one.
|
||||
|
||||
CITATION PRIORITY (most to least preferred):
|
||||
1. @handles from X - "per @handle"
|
||||
2. r/subreddits from Reddit - "per r/subreddit"
|
||||
3. YouTube channels - "per [channel name] on YouTube" (transcript-backed insights)
|
||||
4. HN discussions - "per HN" or "per hn/username" (developer community signal)
|
||||
5. Web sources - ONLY when Reddit/X/YouTube/HN don't cover that specific fact
|
||||
|
||||
URL FORMATTING: NEVER paste raw URLs. Use the publication name, not the URL.
|
||||
|
||||
Lead with people, not publications. Start each topic with what Reddit/X users are saying/feeling, then add web context only if needed.
|
||||
|
||||
## Output Format
|
||||
|
||||
Display in this EXACT sequence:
|
||||
|
||||
**FIRST - What I learned:**
|
||||
|
||||
Write the synthesis narrative. Use bold topic headers. Keep it grounded in research.
|
||||
|
||||
For RECOMMENDATIONS queries: Extract SPECIFIC NAMES, not generic patterns. List by popularity/mention count with "Sources:" line per item.
|
||||
|
||||
For other queries: Write thematic paragraphs with KEY PATTERNS section.
|
||||
|
||||
**THEN - Stats block:**
|
||||
|
||||
Copy this EXACTLY, replacing only the {placeholders}:
|
||||
|
||||
```
|
||||
---All agents reported back!
|
||||
├─ 🟠 Reddit: {N} threads │ {N} upvotes │ {N} comments
|
||||
├─ 🔵 X: {N} posts │ {N} likes │ {N} reposts
|
||||
├─ 🔴 YouTube: {N} videos │ {N} views │ {N} with transcripts
|
||||
├─ 🟡 HN: {N} stories │ {N} points │ {N} comments
|
||||
├─ 🌐 Web: {N} pages (supplementary)
|
||||
└─ 🗣️ Top voices: @{handle1} ({N} likes), @{handle2} │ r/{sub1}, r/{sub2}
|
||||
```
|
||||
|
||||
If HN returned 0 stories, write: "├─ 🟡 HN: 0 stories (no results this cycle)"
|
||||
|
||||
Calculate actual totals from the research output. Count posts/threads from each section. Sum engagement metrics.
|
||||
|
||||
**LAST - Invitation:**
|
||||
|
||||
```
|
||||
---I'm now an expert on {TOPIC}. Some things I can help with:
|
||||
- [Specific suggestion based on research finding 1]
|
||||
- [Specific suggestion based on research finding 2]
|
||||
- [Specific suggestion based on research finding 3]
|
||||
```
|
||||
|
||||
SELF-CHECK before displaying: Re-read your "What I learned" section. Does it match what the research ACTUALLY says?
|
||||
@@ -0,0 +1,140 @@
|
||||
# GOAT Synthesis Comparison: Final Results
|
||||
|
||||
## Overall Winner: CROSS (4.74/5.0)
|
||||
|
||||
| Pipeline | Topic 1 | Topic 2 | Topic 3 | Topic 4 | Topic 5 | **Average** |
|
||||
|----------|---------|---------|---------|---------|---------|------------|
|
||||
| | Claude Code | Seedance | MacBook | Rap Songs | React/Svelte | |
|
||||
| **CROSS** | **4.90** | **4.90** | **4.20** | **4.80** | **4.90** | **4.74** |
|
||||
| **HN** | 4.05 | 4.55 | 3.85 | 4.25 | 3.80 | **4.10** |
|
||||
| **Base** | 3.80 | 3.70 | 3.70 | 3.65 | 3.80 | **3.73** |
|
||||
|
||||
CROSS won all 5 topics. No regressions.
|
||||
|
||||
## Per-Dimension Analysis
|
||||
|
||||
### Groundedness (30% weight)
|
||||
| Pipeline | Avg | Pattern |
|
||||
|----------|-----|---------|
|
||||
| CROSS | 4.8 | Cross-platform connections ("Reddit's MCP scaling + HN's Upjack project") add unique grounding |
|
||||
| HN | 4.2 | HN usernames and Show HN project names add specificity when available |
|
||||
| Base | 3.8 | Solid citations but narrower source pool limits grounding depth |
|
||||
|
||||
### Specificity (25% weight)
|
||||
| Pipeline | Avg | Pattern |
|
||||
|----------|-----|---------|
|
||||
| CROSS | 4.8 | More Reddit threads = more named entities, version numbers, specific findings |
|
||||
| HN | 4.1 | HN projects add specificity for tech topics but nothing for non-tech |
|
||||
| Base | 3.6 | Fewer data points = more padding between specific findings |
|
||||
|
||||
### Coverage (20% weight)
|
||||
| Pipeline | Avg | Pattern |
|
||||
|----------|-----|---------|
|
||||
| CROSS | 4.9 | Best coverage - most Reddit threads AND HN items naturally woven in |
|
||||
| HN | 3.9 | Good when HN fires (Topics 1-2), matches Base when HN=0 (Topics 3-5) |
|
||||
| Base | 3.5 | Reddit + X + YouTube only, no HN dimension |
|
||||
|
||||
### Actionability (15% weight)
|
||||
| Pipeline | Avg | Pattern |
|
||||
|----------|-----|---------|
|
||||
| CROSS | 4.7 | Follow-up suggestions reference specific things from the richer data |
|
||||
| HN | 4.0 | Decent suggestions but less material to draw from |
|
||||
| Base | 3.6 | Generic suggestions due to thinner research base |
|
||||
|
||||
### Format Compliance (10% weight)
|
||||
| Pipeline | Avg | Pattern |
|
||||
|----------|-----|---------|
|
||||
| CROSS | 4.6 | Stats blocks most complete (cross-ref counts), invitations most specific |
|
||||
| HN | 4.0 | Good format, HN line present when applicable |
|
||||
| Base | 3.8 | Clean format but missing HN source line |
|
||||
|
||||
## Why CROSS Wins
|
||||
|
||||
1. **Coverage is the biggest differentiator.** CROSS consistently pulled the most Reddit threads (10, 19, 3, 11, 6 across topics) AND had HN data, giving the synthesis more material to work with.
|
||||
|
||||
2. **Cross-platform connections add analytical value.** Linking MCP scaling problems on Reddit to infrastructure projects on HN (Topic 1), connecting API delays to Hollywood backlash to ElevenLabs removal (Topic 2), and surfacing the Kendrick Grammy win from r/KendrickLamar (Topic 4) - these were insights that neither Base nor HN produced alone.
|
||||
|
||||
3. **Actionability follows from data richness.** With more specific findings to draw from, CROSS's follow-up suggestions are naturally more specific and grounded.
|
||||
|
||||
## Where CROSS Still Falls Short (Improvement Opportunities)
|
||||
|
||||
### 1. Cross-source linking barely fires (3/178 items linked)
|
||||
The CROSS version's cross_refs field was populated for only 3 items across all 5 topics. The Jaccard 0.5 threshold is too strict. With the hybrid fix (token+trigram at 0.40), this would go from 3 to 26 items.
|
||||
|
||||
### 2. Cross-ref rendering is cryptic
|
||||
When cross-refs DO appear, they show as `[xref: HN5, HN4]` in the compact output. This means nothing to the synthesis agent. Should be `[also on: HN, Reddit]` so Claude naturally writes "discussed on both Reddit and HN."
|
||||
|
||||
### 3. YouTube synonym gap
|
||||
"Lit Hip Hop Mix 2026" scored 0.33 relevance for "best rap songs 2026" because "hip hop" != "rap" in token matching. Needs synonym awareness.
|
||||
|
||||
### 4. HN search too narrow for framework topics
|
||||
React/Svelte returned 0 HN items despite being a common HN topic. Need OR queries for multi-keyword topics.
|
||||
|
||||
### 5. Synthesis instructions don't mention cross-refs
|
||||
SKILL.md has zero instructions about using cross-ref data in the synthesis. Claude ignores the `[xref:]` tags because nothing tells it to pay attention to them.
|
||||
|
||||
## Recommended GOAT Improvements (Priority Order)
|
||||
|
||||
| # | Change | Impact | File |
|
||||
|---|--------|--------|------|
|
||||
| 1 | Hybrid cross-source linking (token+trigram Jaccard at 0.40) | 3 -> 26 linked items | `scripts/lib/dedupe.py` |
|
||||
| 2 | Human-readable cross-ref tags (`[also on: HN, Reddit]`) | Claude can use cross-refs in narrative | `scripts/lib/render.py` |
|
||||
| 3 | SKILL.md cross-ref synthesis instruction | Explicitly tell Claude to use cross-platform signals | `SKILL.md` |
|
||||
| 4 | YouTube synonym awareness (SYNONYMS dict) | "hip hop" matches "rap" | `scripts/lib/youtube_yt.py` |
|
||||
| 5 | HN search OR queries for multi-keyword topics | Framework debates get HN coverage | `scripts/lib/hackernews.py` |
|
||||
|
||||
## Validation: Improved CROSS vs Original CROSS
|
||||
|
||||
After implementing all 5 GOAT improvements (hybrid cross-source linking, human-readable tags, SKILL.md instruction, YouTube synonyms), we regenerated synthesis narratives from improved compact markdowns and evaluated them against the originals.
|
||||
|
||||
### Improved CROSS Results
|
||||
|
||||
| Topic | Original CROSS | Improved CROSS | Delta |
|
||||
|-------|:-:|:-:|:-:|
|
||||
| 1. Claude Code | 4.15 | **4.55** | +0.40 |
|
||||
| 2. Seedance | **4.60** | 4.40 | -0.20 |
|
||||
| 3. MacBook | 3.90 | **4.35** | +0.45 |
|
||||
| 4. Rap Songs | 3.15 | **4.25** | +1.10 |
|
||||
| 5. React/Svelte | 4.10 | **4.35** | +0.25 |
|
||||
| **Average** | **3.98** | **4.38** | **+0.40** |
|
||||
|
||||
Improved CROSS wins 4/5 topics. The one regression (Seedance, -0.20) is because the original had denser HN citation detail (explicit `[xref: HN5/R6]` notation) that the improved version traded for cleaner formatting.
|
||||
|
||||
### Per-Dimension Deltas (Improved - Original)
|
||||
|
||||
| Dimension | Original Avg | Improved Avg | Delta |
|
||||
|-----------|:-:|:-:|:-:|
|
||||
| Groundedness (30%) | 4.0 | 4.0 | 0.0 |
|
||||
| Specificity (25%) | 4.2 | 5.0 | **+0.8** |
|
||||
| Coverage (20%) | 4.2 | 4.4 | +0.2 |
|
||||
| Actionability (15%) | 3.4 | 3.8 | +0.4 |
|
||||
| Format (10%) | 3.8 | 4.8 | **+1.0** |
|
||||
|
||||
**Biggest gains:** Specificity (+0.8) from more direct quotes, precise numbers, and structured recommendation lists. Format compliance (+1.0) from consistently including KEY PATTERNS, standard stats blocks, and cross-platform indicators.
|
||||
|
||||
### What the improvements actually did
|
||||
|
||||
1. **`[also on: HN, Reddit]` tags** - Claude naturally weaves cross-platform findings into narrative ("a marketing skills tutorial hit 47K YouTube views AND landed on Hacker News simultaneously")
|
||||
2. **YouTube synonyms** - "Lit Hip Hop Mix 2026" now scores 0.71 (was 0.33) for "best rap songs 2026", surfacing relevant content that was previously filtered out
|
||||
3. **Hybrid similarity at 0.40** - Cross-source linking went from 3 linked items (original) to 13+ (improved) across 5 topics
|
||||
4. **SKILL.md instruction #7** - "Cross-platform signals are the strongest evidence" directs Claude to lead with multi-platform findings
|
||||
|
||||
### Cross-source linking validation
|
||||
|
||||
| Topic | Original links | Improved links |
|
||||
|-------|:-:|:-:|
|
||||
| Claude Code | 0 | 2 items, 2 [also on:] tags |
|
||||
| Seedance | 3 | 9 items, 7 [also on:] tags |
|
||||
| MacBook | 0 | 2 items, 1 [also on:] tag |
|
||||
| Rap Songs | 0 | 0 (expected - no overlap) |
|
||||
| React/Svelte | 0 | 0 (expected - no overlap) |
|
||||
| **Total** | **3** | **13** |
|
||||
|
||||
## Methodology
|
||||
|
||||
- 15 JSON result files from same-day topic-sequential test runs (5 topics x 3 versions)
|
||||
- JSON converted to compact markdown using `render_compact()` (version-specific data preserved)
|
||||
- 15 synthesis narratives generated by Claude following version-specific SKILL.md instructions
|
||||
- Blinded LLM evaluation: versions randomized per topic as A/B/C, scored on 5-dimension rubric
|
||||
- Rubric weights: 30% groundedness, 25% specificity, 20% coverage, 15% actionability, 10% format
|
||||
- Validation: 5 improved compact markdowns regenerated with updated code, 5 new synthesis narratives generated and evaluated against originals
|
||||
@@ -0,0 +1,35 @@
|
||||
What I learned:
|
||||
|
||||
The Claude Code skills ecosystem is in a rapid expansion phase, with community-built skill libraries and frameworks emerging as the dominant trend across Reddit and X this month. @ihtesham2005 flagged that Anthropic open-sourced their internal Skills library, and r/ClaudeCode is seeing a wave of builders shipping reusable skill packs.
|
||||
|
||||
**Skills adoption is accelerating at the team level** - One team reported 3x-ing their Claude Code skill usage in two weeks by syncing skills, hooks, and MCP configs across their org, per r/ClaudeCode. The key was making skills discoverable and easy to install rather than relying on individual setup.
|
||||
|
||||
**One-command frameworks are consolidating the ecosystem** - ClaudeInOne bundles 135 agents, 35 curated skills, 121 plugins, and 6 MCP configs into a single install, per @arpan7sarkar. This "batteries included" approach is gaining traction as the skill count grows faster than people can evaluate individually.
|
||||
|
||||
**Self-improvement loops are the power-user pattern** - A "wrap-up" skill that captures session learnings and feeds them back into future sessions was highlighted as a favorite Claude Code skill on r/ClaudeCode. The idea of skills that improve themselves over time resonated heavily.
|
||||
|
||||
**Non-developers are building with skills** - Grace Leung's YouTube tutorial on building an AI marketing team with skills in 16 minutes pulled 47K views in 4 days. The framing has shifted from "developer tool" to "anyone who can describe a workflow."
|
||||
|
||||
**MCP servers remain the infrastructure layer** - Robin Ebers' "8 MCP Servers That Make Claude Code 10x Better" (90K views) argues most MCP servers are "overhyped garbage" but a handful are genuine game changers. The consensus is that skills handle workflow logic while MCP servers handle tool integrations.
|
||||
|
||||
KEY PATTERNS from the research:
|
||||
1. Skills are moving from individual to team-shared - syncing across orgs is the unlock, per r/ClaudeCode
|
||||
2. Skill marketplaces and directories are emerging as discovery mechanisms, per @ghumare64
|
||||
3. Marketing and SEO are the fastest-growing non-dev skill categories, per r/ClaudeCode
|
||||
4. Skills vs MCP confusion persists - Postman and Solo Swift Crafter both made explainer videos clarifying the distinction
|
||||
5. Builder skills that generate other skills are the meta-pattern, per @matgoldsborough
|
||||
|
||||
---
|
||||
All agents reported back!
|
||||
├─ 🟠 Reddit: 4 threads │ 291 upvotes │ 0 comments
|
||||
├─ 🔵 X: 11 posts │ 22 likes │ 1 reposts
|
||||
├─ 🔴 YouTube: 10 videos │ 461,224 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 0 stories (no results this cycle)
|
||||
├─ 🌐 Web: supplementary
|
||||
└─ 🗣️ Top voices: @ihtesham2005 (6 likes), @zeeg (4 likes, 1 RT) │ r/ClaudeCode
|
||||
---
|
||||
|
||||
I'm now an expert on Claude Code skills and MCP servers. Some things I can help with:
|
||||
- Compare the ClaudeInOne framework vs building your own skill library from scratch
|
||||
- Walk through setting up a self-improvement loop skill for your workflow
|
||||
- Help you decide which MCP servers are actually worth installing based on Robin Ebers' teardown
|
||||
@@ -0,0 +1,35 @@
|
||||
## What I learned
|
||||
|
||||
ByteDance's **Seedance 2.0** has erupted across AI video communities this month, with r/generativeAI and @HBCoop_ capturing the intensity - a mix of awe at its cinematic output and frustration over access chaos.
|
||||
|
||||
**CapCut integration goes live.** As of Feb 25, Seedance 2.0 is available inside CapCut desktop and mobile, removing the need for a Chinese phone number. @jznode reports it runs about $2 per generation, making it the first broadly accessible path to the model outside China.
|
||||
|
||||
**One-minute films with zero editing.** A viral r/generativeAI thread describes Seedance 2.0 generating a full one-minute film with multi-shot coherence and transitions - no post-production required. Commenters are split between calling it a filmmaking revolution and noting it still produces "slop" on closer inspection.
|
||||
|
||||
**Access remains a mess.** Multiple threads across r/Seedance_AI and r/generativeAI ask the same question: where is the official website? The answer is complicated - Jimeng/Jianying is the primary platform but has geo-restrictions, account bans, and network errors. Third-party APIs (useapi.net) and integrations (NemoVideo) have popped up, but r/Seedance_AI users warn many are scams.
|
||||
|
||||
**Hollywood backlash and SAG-AFTRA fallout.** r/AIGuild reports ByteDance faces backlash from Hollywood over IP concerns. Separately, r/AI_UGC_Marketing notes that ElevenLabs silently removed Seedance 2.0 from its platform after a SAG-AFTRA incident, cutting off a key UGC video workflow.
|
||||
|
||||
**Content guardrails frustrate power users.** A r/Seedance_AI user reports wasting $1,000+ on generations that fail content review. The strict moderation filters are pushing creators toward third-party APIs that may bypass restrictions but offer uncertain quality.
|
||||
|
||||
**YouTube creators crown it king.** Theoretically Media's review (199K views) declares Seedance 2.0 has claimed the "AI video throne" just a week after Kling 3.0 held that title. Multiple tutorial channels (How To In 5 Minutes, Ai Lockup) are racing to publish free-access guides.
|
||||
|
||||
**Phishing scams exploit the hype.** @WyldeChyldeRec warns about phishing emails using Seedance branding with fake "unrestricted generation" offers - a sign of how much demand has outpaced official supply.
|
||||
|
||||
### KEY PATTERNS
|
||||
|
||||
1. **Access demand far exceeds official supply** - the gap between Seedance 2.0's capabilities and its availability outside China has created a cottage industry of third-party wrappers, scam sites, and workarounds (r/generativeAI)
|
||||
2. **Platform musical chairs** - Seedance 2.0 gets added to CapCut, removed from ElevenLabs, and claimed by NemoVideo all within weeks, making the ecosystem unstable for anyone building workflows (@grok)
|
||||
3. **Quality vs. guardrails tension** - the same content moderation that addresses Hollywood/SAG-AFTRA concerns is the thing driving power users to abandon official channels (r/Seedance_AI)
|
||||
4. **AI video benchmarks reset weekly** - Theoretically Media declared Kling 3.0 the benchmark, then Seedance 2.0 dethroned it within a week, reflecting how fast this space moves (Theoretically Media)
|
||||
5. **Scam ecosystem mirrors real demand** - phishing emails and fake sites emerge within days of each capability announcement, indicating mainstream interest beyond the AI-native audience (@WyldeChyldeRec)
|
||||
|
||||
```
|
||||
30-DAY SNAPSHOT
|
||||
├─ Reddit: 16 threads across r/Seedance_AI, r/generativeAI, r/AIGuild +5 more
|
||||
├─ X: 11 posts from @HBCoop_, @grok, @EmmaUsesAi +8 more
|
||||
├─ YouTube: 10 videos (199K views on Theoretically Media alone)
|
||||
└─ Web: supplementary context
|
||||
```
|
||||
|
||||
Want to dig deeper? I can look into **how Seedance 2.0 compares to Kling 3.0 on specific benchmarks**, **the SAG-AFTRA incident timeline and its ripple effects on AI video platforms**, or **which third-party Seedance APIs are legitimate vs. scams**.
|
||||
@@ -0,0 +1,25 @@
|
||||
# What I learned
|
||||
|
||||
The M4 MacBook Pro has been out long enough that the conversation has shifted from launch hype to real-world ownership reports - and the picture is more nuanced than the initial review wave suggested. Across r/macbookpro, YouTube reviewers like MKBH and Dave2D, and X chatter from @bhphoto and @jameslmorton, a clear pattern emerges: the M4 lineup is genuinely excellent hardware, but choosing the right configuration matters more than just picking "the best one."
|
||||
|
||||
**The base M4 is the real story.** MacRumors made the bold claim that the base M4 MacBook Pro is all most people need, recommending users skip the M4 Pro and Max entirely. This echoes Just Josh's review and recommendations video, which walked through specific use cases where the base chip handles the workload just fine. For general dev work, photography, and everyday professional use, the consensus is that the jump to Pro/Max is wasted money unless you have a specific sustained workload that demands it.
|
||||
|
||||
**Battery life claims don't hold up for everyone.** One of the most active discussion threads on r/macbookpro directly compares "battery life reality vs review" numbers, with users reporting real-world results that fall short of Apple's headline claims. The 14-inch model's battery in particular drew scrutiny, with another thread asking "should I be concerned?" after seeing lower-than-expected drain rates. Reviewers tested under controlled conditions; actual usage with Electron apps, browsers, and background processes tells a different story.
|
||||
|
||||
**Long-term reviews are more honest than launch reviews.** Brandon Butch's 3-month review is titled "This Feels Wrong" - pointing to the cognitive dissonance of a machine that benchmarks well but doesn't feel dramatically different from the M3 in daily use. Created Tech's 6-month follow-up and Tech It Easy's 1-year review both confirm this: the M4 Pro is a solid incremental upgrade, not a generational leap. Meanwhile, at least one r/macbookpro user posted about being genuinely "disappointed" with heat and app stability issues, per r/macbookpro.
|
||||
|
||||
**Local AI workloads are the new benchmark.** A notable shift in the X conversation: multiple posts (including from @grok and @jameslmorton) discuss running LLMs locally on M4 Pro/Max hardware. The 128GB unified memory config can push 70 tokens/s on local models, per @jameslmorton, and Ollama runs natively via Metal. This is becoming a real purchase consideration for developers and AI enthusiasts - something no traditional review covers well.
|
||||
|
||||
**M3 vs M4 upgrade: marginal for most.** @bhphoto's comparison guide between M3 and M4 silicon suggests the differences are real but not dramatic for most workflows. Unless you specifically need the Nano texture display, Thunderbolt 5, or the extra GPU cores, holding an M3 Pro is still a strong position.
|
||||
|
||||
---All agents reported back!
|
||||
├─ 🟠 Reddit: 3 threads │ 0 upvotes │ 0 comments
|
||||
├─ 🔵 X: 12 posts │ 10 likes │ 1 repost
|
||||
├─ 🔴 YouTube: 10 videos │ 7,866,702 views │ 3 with transcripts
|
||||
├─ 🌐 Web: 0 pages (supplementary)
|
||||
└─ 🗣️ Top voices: @bhphoto (3 likes), @jameslmorton │ r/macbookpro
|
||||
|
||||
---I'm now an expert on M4 MacBook Pro reviews. Some things I can help with:
|
||||
- Compare the base M4 vs M4 Pro vs M4 Max for your specific workload (dev, creative, AI/ML)
|
||||
- Break down real-world battery life expectations by screen size and usage pattern
|
||||
- Advise whether upgrading from M1/M2/M3 is worth it based on long-term reviewer consensus
|
||||
@@ -0,0 +1,25 @@
|
||||
# What I learned
|
||||
|
||||
The conversation around "best rap songs 2026" is still early-year and fragmented - no single track has emerged as a consensus pick yet, but a few names keep surfacing. Lil Uzi Vert's "What You Saying" is the closest thing to a frontrunner, cited across multiple @grok posts on X and referenced in r/hiphopheads discussion threads as hitting #1 on Hot Rap Songs in January 2026 and peaking at #14 on the Hot 100.
|
||||
|
||||
**Most-mentioned artists and tracks across sources:**
|
||||
|
||||
- **Lil Uzi Vert - "What You Saying"** - mentioned in 3 X posts (@grok) and discussed in r/hiphopheads daily threads. The standout chart performer so far in 2026, with his third career #1 on Hot Rap Songs.
|
||||
- **Nuno Zigi - "World Best Lie"** - highlighted by @Zika_gfx as a meaningful 2026 rap track (highest-scored X post at 86).
|
||||
- **Tyga, Quavo, Wiz Khalifa, 50 Cent** - featured in West Coast Finest's "Lit Hip Hop Mix 2026" on YouTube (407K views), the most-watched video in these results.
|
||||
- **Sean Bryant - "Love vs Loyalty" (album)** - teased by @teammusic2046 as a forthcoming 2026 project.
|
||||
|
||||
The Grammy conversation is also shaping early "best of" discourse. r/hiphopheads discussed 2026 Pre-Show Grammy winners across rap categories, and the r/edranked community is running an active "Reddit Ranked: Hip Hop '26" submission thread where users are nominating their top picks.
|
||||
|
||||
On YouTube, DJ Noize's February 2026 mixtapes (Trap Tape #127 and Hot Right Now #153) are functioning as curated discovery playlists for new rap, collectively pulling ~55K views. The West Coast Finest mix leans toward established names, while DJ Noize's mixes skew toward whatever is freshest.
|
||||
|
||||
One notable gap: there is very little discussion of specific 2026 albums yet. The Pitchfork "32 Best Rap Albums of 2025" thread on r/hiphopheads is still driving more engagement than any 2026 album discussion, suggesting listeners are still digesting last year's releases.
|
||||
|
||||
```
|
||||
Sources: 21 items (Jan 26 - Feb 25, 2026)
|
||||
|- Reddit: 6 threads (r/hiphopheads, r/TeenageRapFans, r/HivemindTV, r/edranked)
|
||||
|- X: 12 posts (@grok, @Zika_gfx, @DPOSTS6, @teammusic2046)
|
||||
|- YouTube: 3 videos (West Coast Finest, DJ Noize x2)
|
||||
```
|
||||
|
||||
Want me to dig deeper into any of these? I could pull the full r/edranked "Hip Hop '26" ranking thread for community-voted picks, check what tracks are in the DJ Noize February mixtape, or search for early 2026 album drops that might contain standout singles.
|
||||
@@ -0,0 +1,33 @@
|
||||
## What I learned:
|
||||
|
||||
The React vs Svelte debate in 2026 is no longer theoretical - developers are making real migration decisions, and the community is split between pragmatism and aspiration. A startup migration story on r/webdev documented concrete performance gains after moving from React to Svelte 5, while Fireship's viral video framed React as actively trying to "win back" developers it's been losing.
|
||||
|
||||
**The "Late-Stage React" Narrative** - A growing faction of frontend developers describe React in 2026 as mature but bloated. @cityjsconf promoted a talk introducing Ripple, a new framework explicitly built from "the good parts of React, Svelte, and Solid" - positioning React as something to cherry-pick from rather than adopt wholesale. Meanwhile @Chubbi_Stephen captured the circular framework discourse perfectly: everyone argues about alternatives, but React still powers 80% of production apps.
|
||||
|
||||
**Svelte 5 Runes Changed the Calculus** - The introduction of runes in Svelte 5 was supposed to simplify reactivity, but Fireship's analysis on YouTube questioned whether runes actually "ruined" what made Svelte special - its magical dollar-sign syntax. The r/react community thread comparing hooks vs runes shows developers weighing whether Svelte 5's new mental model is actually simpler than React's hooks, or just differently complex.
|
||||
|
||||
**Ecosystem Lock-In Remains React's Moat** - Across Reddit and X, the pragmatic argument keeps winning. @nicobaogim argued that picking React in 2026 "only really makes sense if you value ecosystem maturity" or need React-specific libraries - essentially conceding React isn't technically superior but remains the safe choice. Svelte converts on r/sveltejs acknowledged reduced dev time but warned about the thinner ecosystem.
|
||||
|
||||
**AI May Make Frameworks Irrelevant** - @dennydotio offered a provocative prediction: 2026 marks the death of JS frameworks entirely, arguing that frameworks "only exist because humans need organized code to stay sane" - once AI handles the code, the abstraction layer becomes unnecessary.
|
||||
|
||||
**KEY PATTERNS:**
|
||||
|
||||
1. **Migration stories favor Svelte on DX, but caveats persist** - real teams report faster development but smaller library ecosystem, per r/webdev
|
||||
2. **React's dominance is increasingly described as inertia, not preference** - developers choose it for jobs and existing teams, not technical merit, per @nicobaogim
|
||||
3. **Svelte 5 runes divided the Svelte community itself** - the shift from implicit to explicit reactivity alienated some early adopters, per Fireship on YouTube
|
||||
4. **New frameworks are synthesizing both** - Ripple and similar projects treat React and Svelte as ingredient frameworks, per @cityjsconf
|
||||
5. **TypeScript-first tooling is the real 2026 baseline** - @FabianHiller's post about type-safe forms got the most engagement, suggesting developers care more about DX tooling than framework wars
|
||||
|
||||
---
|
||||
All agents reported back!
|
||||
├─ 🟠 Reddit: 4 threads │ 202 upvotes
|
||||
├─ 🔵 X: 9 posts │ 76 likes │ 4 reposts
|
||||
├─ 🔴 YouTube: 10 videos │ 2,027,387 views │ 3 with transcripts
|
||||
├─ 🌐 Web: supplementary
|
||||
└─ 🗣️ Top voices: @FabianHiller (61 likes), @cityjsconf │ r/react, r/webdev
|
||||
---
|
||||
|
||||
I'm now an expert on React vs Svelte 2026. Some things I can help with:
|
||||
- Compare the actual DX tradeoffs if you're considering migrating a React app to Svelte 5
|
||||
- Analyze whether Svelte 5 runes or React hooks better fit your team's mental model
|
||||
- Break down the ecosystem gaps that still keep teams on React despite Svelte's performance advantages
|
||||
@@ -0,0 +1,34 @@
|
||||
**What I learned:** The Claude Code skills ecosystem has exploded into a full-blown marketplace war in the last 30 days, with creators racing to package domain expertise into reusable skills while MCP server fatigue is setting in hard. The clearest signal: a marketing skills tutorial hit 47K YouTube views AND landed on Hacker News simultaneously, per Grace Leung and r/ClaudeCode.
|
||||
|
||||
**Skills are the new plugins.** The sheer volume of "skill collections" tells the story: ClaudeInOne ships 213 skills in one install, another toolkit bundles 135 agents with 35 curated skills, and Anthropic themselves open-sourced their internal skills library. This is the WordPress plugin moment for AI coding - everyone is packaging their expertise into portable skill files. The Chrome extension for browsing skills on GitHub and early marketplace projects like ClawsMarket confirm that discovery and distribution are the next bottleneck, per @ihtesham2005.
|
||||
|
||||
**MCP server disillusionment is real.** One of the highest-scoring Reddit threads warns that Claude Code "works great until too many MCP servers" break it, and the most-watched MCP video (90K views) concludes that 90% of MCP servers are "overhyped garbage." The community is shifting from "connect everything" to "connect only what matters" - semantic graph servers that compress 15K tokens down to 3K relevant context represent the new direction, per Robin Ebers.
|
||||
|
||||
**Skills beat raw prompting for team adoption.** A team reported 3x-ing their skill usage in two weeks through deliberate onboarding, and the self-improvement loop skill (where Claude Code iterates on its own skills) emerged as a community favorite. The pattern is clear: skills are sticky because they encode workflow knowledge, not just instructions. Meanwhile, a highly upvoted explainer on the difference between Skills, Subagents, Claude.MD, and slash commands confirms many users are still confused about what goes where, per r/ClaudeCode.
|
||||
|
||||
**Marketing and SEO are the breakout skill verticals.** Grace Leung's videos on AI marketing teams have a combined 200K+ views. A 55K-word email marketing knowledge base packaged as a Claude Code skill was the top HN story. Twelve open-source SEO skills dropped on Reddit. The non-developer use case is outpacing the developer tooling use case in raw engagement, per Grace Leung.
|
||||
|
||||
**Security is the unresolved tension.** MCP proxy servers for safe email access, capability-based sandboxing in Rust (SkillSandbox), and security-first agent frameworks (Gulama) all appeared this month. The community wants skills and MCP servers to do more - but giving AI agents access to email, Kubernetes clusters, and production databases raises obvious questions that nobody has fully answered yet, per r/ClaudeAI.
|
||||
|
||||
---
|
||||
|
||||
**KEY PATTERNS**
|
||||
|
||||
1. Skill packaging and distribution are the current gold rush - marketplaces, directories, and browser extensions are all emerging simultaneously
|
||||
2. MCP server quality filtering has begun - the community is rejecting bloat in favor of targeted, high-signal servers
|
||||
3. Non-developer skill verticals (marketing, SEO, CRM) are generating the highest engagement by a wide margin
|
||||
4. Team-level skill adoption requires deliberate onboarding, not just sharing files
|
||||
5. Security and sandboxing for agent skills remain unsolved but increasingly urgent
|
||||
|
||||
---
|
||||
|
||||
```
|
||||
STATS: 47 items across 4 platforms | Reddit: 10 threads (top score: 78, r/ClaudeCode) | X: 12 posts (top: 6 likes, @ihtesham2005) | YouTube: 10 videos (top: 155K views, Grace Leung) | HN: 15 stories (top: 10pts) | Cross-platform hits: 2 | Date range: Jan 26 - Feb 25, 2026
|
||||
```
|
||||
|
||||
What caught your eye? Reply with a number to dig deeper:
|
||||
1. Building and packaging your own Claude Code skills
|
||||
2. Which MCP servers are actually worth installing
|
||||
3. The marketing/SEO skills ecosystem
|
||||
4. Security and sandboxing for agent skills
|
||||
5. Team adoption strategies for skills
|
||||
@@ -0,0 +1,35 @@
|
||||
What I learned:
|
||||
|
||||
The Claude Code skills and MCP ecosystem is experiencing simultaneous growth at every layer - from individual skill authoring to team-level adoption to infrastructure tooling. The signal is dense: r/ClaudeCode has 10 active threads this month on skills and MCP, Hacker News has 15 Show HN projects building on this stack, and @ihtesham2005's post about Anthropic open-sourcing their internal Skills library catalyzed a wave of community activity.
|
||||
|
||||
**MCP server scaling is hitting real limits** - "Claude Code works great... until you have too many MCP servers" (r/ClaudeCode) is the thread of the month. Teams are running into architecture problems, with gateway patterns emerging as the solution. This connects directly to Upjack (hn/barefootsanders), a declarative framework for building apps over MCP.
|
||||
|
||||
**Token efficiency is driving MCP server design** - A semantic graph MCP server cut context from 15K to 3K tokens (r/ClaudeCode), while 25 MCP servers that return structured data instead of terminal formatting emerged on r/ClaudeAI. The efficiency concern also shows up in SkillSandbox (hn/ClaytheMachine), which uses capability-based sandboxing to limit what skills can access.
|
||||
|
||||
**Security is the emerging battleground** - An MCP proxy server for safe email access (r/ClaudeAI) addresses the trust problem, while Gulama (hn/san-techie21) pitches itself as a security-first agent. The Reddit and HN projects converge on the same insight: as skills get more capable, the security surface grows.
|
||||
|
||||
**Skills are becoming team infrastructure, not personal tools** - The "We 3x'd our team's Claude Code skill usage" thread (r/ClaudeCode) and ClaudeInOne framework (213 skills bundled, r/ClaudeCode score 78) both show skills moving from individual to organizational. A Chrome extension for viewing skills on GitHub (r/ClaudeCode) and @ghumare64's skill sync tooling reinforce that discovery and distribution matter more than authoring now.
|
||||
|
||||
**Domain-specific skills are the high-value pattern** - The 55K-word email marketing knowledge base (hn/cosmoblk, 10pts), 12 SEO skills (r/ClaudeCode), and the self-improvement loop skill (r/ClaudeCode) all share a pattern: deep domain knowledge embedded in SKILL.md files. Grace Leung's YouTube tutorial on building an AI marketing team with skills pulled 47K views - non-developers are the growth audience.
|
||||
|
||||
KEY PATTERNS from the research:
|
||||
1. MCP scaling problems are driving architectural innovation - gateways, structured data, and semantic graphs all emerged independently this month, per r/ClaudeCode
|
||||
2. Reddit discusses adoption and workflows while HN builds infrastructure (sandboxes, frameworks, marketplaces) - the ecosystem is specializing across platforms, per hn/ClaytheMachine
|
||||
3. Security concerns are growing in proportion to capability - email proxies, sandboxes, and "security-first" agents all appeared in February, per r/ClaudeAI
|
||||
4. Skill discovery is the unsolved bottleneck - Chrome extensions, directories (hn/micronink), and marketplaces (hn/digitcatphd) are all independent attempts to fix it
|
||||
5. Cross-platform skill portability matters - @zeeg notes Codex handles implicit skill invocation better than Claude Code, suggesting the skill format may outlive any single runtime
|
||||
|
||||
---
|
||||
All agents reported back!
|
||||
├─ 🟠 Reddit: 10 threads │ 692 upvotes │ 0 comments
|
||||
├─ 🔵 X: 12 posts │ 23 likes │ 1 reposts
|
||||
├─ 🔴 YouTube: 10 videos │ 465,498 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 15 stories │ 35 points │ 16 comments
|
||||
├─ 🌐 Web: supplementary
|
||||
└─ 🗣️ Top voices: @ihtesham2005 (6 likes), @zeeg (5 likes, 1 RT) │ r/ClaudeCode, r/ClaudeAI │ hn/cosmoblk (10pts)
|
||||
---
|
||||
|
||||
I'm now an expert on Claude Code skills and MCP servers. Some things I can help with:
|
||||
- Analyze the MCP scaling problem and whether a gateway approach or semantic graph server would work better for your setup
|
||||
- Compare the security models across the email proxy, SkillSandbox, and Gulama approaches
|
||||
- Help you build a domain-specific skill pack and distribute it through the emerging skill ecosystem
|
||||
@@ -0,0 +1,31 @@
|
||||
## What I learned
|
||||
|
||||
Seedance 2.0 from ByteDance has erupted onto the AI video scene in the last 30 days, with near-universal consensus across platforms that it represents a new quality benchmark - but its rollout has been messy, controversial, and riddled with scams. The model launched inside CapCut (desktop and mobile) rather than as a standalone product, which simultaneously solved the access problem and created confusion about what is "official" versus phishing (per @WyldeChyldeRec and r/Seedance_AI). Theoretically Media's 199K-view breakdown declared it the new throne-holder barely a week after Kling 3.0 launched, and that verdict echoed across YouTube, HN, and Reddit threads alike.
|
||||
|
||||
**CapCut is the gateway, for better or worse.** ByteDance embedded Seedance 2.0 inside its CapCut editing app rather than shipping a standalone site or open API. This means worldwide access without a Chinese phone number (per @jznode), but it also means you are locked into ByteDance's ecosystem at roughly $2 per generation. Reddit threads show users hunting for "the real Seedance website" and falling for phishing scams because there is no obvious official destination.
|
||||
|
||||
**Quality is real, but production-readiness is not.** Cross-platform signals are strong here: YouTube creators with a combined 500K+ views praise the cinematic output, HN's top story calls it "best video model of 2026, outperforming Sora 2," and a Reddit user made a "1-minute film with ZERO editing." But the counterpoints are just as consistent - one Redditor burned $1K+ on failed generations, another called the workflow "impressive but still not a production workflow," and @TferThomas on X dismissed results as "still slop." The gap between cherry-picked demos and reliable batch output remains wide.
|
||||
|
||||
**Censorship and copyright battles are already shaping the product.** The API launch was delayed over deepfake and copyright concerns (per r/generativeAI). ElevenLabs quietly removed Seedance 2.0 integration after a SAG-AFTRA incident. ByteDance faces Hollywood backlash. And users complain that content filtering "ruined" the tool's creative potential. This regulatory and industry pressure is moving faster than the technology itself.
|
||||
|
||||
**Multi-shot consistency is the frontier problem.** HN discussion highlights that "most AI tools generate isolated clips that fall apart in actual narrative." Seedance 2.0's reference-image approach helps with character consistency across shots (per a detailed Reddit testing thread), and several HN stories focus on "solving the jump-cut problem," but nobody claims it is solved. The one-minute-film demo impressed precisely because it sidestepped editing entirely rather than proving the tool works within a real editing pipeline.
|
||||
|
||||
**The wrapper app gold rush is already underway.** HN saw 8+ "Show HN" posts for Seedance 2.0 wrapper tools and access proxies in a single month, most with zero comments and minimal traction. SeeVideo offers subscription-free access. This pattern mirrors early Stable Diffusion and GPT wrapper cycles - lots of surface-level tooling, very little durable differentiation.
|
||||
|
||||
### KEY PATTERNS
|
||||
|
||||
1. **Regulatory pressure is the real bottleneck, not technology** - the API delay, ElevenLabs removal, and Hollywood backlash form a connected pattern where legal/ethical concerns are throttling access faster than ByteDance can ship (r/Seedance_AI + r/AIGuild)
|
||||
2. **Access fragmentation creates parallel economies** - CapCut for consumers, Atlas Cloud for enterprise, Jimeng for China, third-party wrappers for everyone else, scam sites for the desperate - all serving the same model through different channels with different reliability
|
||||
3. **Consumer excitement vastly outpaces developer adoption** - 199K YouTube views vs. 1-point HN Show HN posts; the audience is creators and filmmakers, not engineers building on APIs (Theoretically Media vs. HN)
|
||||
4. **Multi-shot coherence is the moat** - character/scene consistency across shots is what separates Seedance 2.0 from competitors and what makes the "zero editing film" possible (hn/RyanMu)
|
||||
5. **Quality-guardrail tension will define who wins AI video** - ByteDance's strict content moderation costs power users real money while its absence would invite the regulatory response that already delayed the API launch (r/Seedance_AI + r/HiggsfieldAI)
|
||||
|
||||
---
|
||||
|
||||
```
|
||||
STATS: 55 sources across 5 platforms (30 days) | Reddit: 19 threads, top score 77 | X: 11 posts, top 9 likes | YouTube: 10 videos, top 199K views / 4,986 likes | HN: 15 stories, top 7 pts / 7 comments | Cross-platform: 7 items appeared on 2+ platforms
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Want to dig deeper? I can look into **the full SAG-AFTRA timeline and how it connects to ByteDance's API delay**, **which Seedance 2.0 access methods are actually legitimate and at what cost**, or **head-to-head multi-shot coherence comparisons between Seedance 2.0, Kling 3.0, and Sora 2**.
|
||||
@@ -0,0 +1,36 @@
|
||||
## What I learned
|
||||
|
||||
ByteDance's **Seedance 2.0** has been the most discussed AI video model this month, with converging signals across r/Seedance_AI, r/generativeAI, and Hacker News painting a picture of breakthrough capability tangled in access chaos and regulatory blowback. The top HN thread (hn/Alisaqqt, 7pts) correctly anticipated the Atlas Cloud API launch, while r/generativeAI captured the viral reaction to its cinematic output.
|
||||
|
||||
**CapCut integration is the global access breakthrough.** As of Feb 25, Seedance 2.0 is live inside CapCut desktop and mobile - confirmed across both r/seedance and @grok. @jznode reports it costs about $2 per generation with no Chinese phone number required, resolving the access barrier that dominated discussion for weeks.
|
||||
|
||||
**Cinematic quality sets a new bar.** r/generativeAI's viral thread - "Seedance 2.0 just generated a 1-minute film with ZERO editing" - showcases multi-shot coherence, transitions, and character consistency. Theoretically Media's review (199K views) declared it has claimed the AI video throne barely a week after Kling 3.0 held that title. But @TferThomas offers the counterpoint: "it's still slop."
|
||||
|
||||
**The access problem spawned scams and wrappers.** Cross-referencing Reddit and HN reveals the same frustration from two angles: users in r/Seedance_AI warn about scam sites like NemoVideo, while HN saw 8+ Show HN wrapper apps (SeeVideo, Seedance3AI, etc.) launch in a single month [xref: HN5/R6, HN4/R6]. Most HN wrappers attracted zero comments, suggesting developer supply outpaced real demand.
|
||||
|
||||
**API rollout delayed by deepfake/copyright concerns.** r/Seedance_AI documents the delay explicitly - the API launch was pushed back due to deepfake and copyright guardrails. This connects to r/AIGuild's report of Hollywood backlash and r/AI_UGC_Marketing's note that ElevenLabs silently removed Seedance 2.0 after a SAG-AFTRA incident. The regulatory pressure is reshaping access from multiple directions.
|
||||
|
||||
**Jimeng platform is failing its users.** Threads across r/Seedance_AI report 24-hour network errors on Jimeng Web, silent account bans on paid accounts, and $1,000+ wasted on failed generations. A separate thread from r/HiggsfieldAI argues "the censorship just ruined Seedance 2.0," while r/AI_Agents offers a measured take: "Seedance 2.0 is impressive. It's still not a production workflow."
|
||||
|
||||
**Hands-on testers reveal the real workflow.** u/Illustrious-One7744 provides detailed notes on what actually works - consistency via reference images, shot planning for multi-shot coherence, and the limitations of text-only prompting. This practical perspective is absent from the hype-driven YouTube tutorials.
|
||||
|
||||
**Multi-shot coherence is the technical differentiator.** HN commenter hn/RyanMu identifies the core issue: most AI video tools "generate isolated clips that fall apart when you try to build an actual narrative." A separate Show HN specifically targets the "jump-cut problem" that Seedance 2.0 claims to solve.
|
||||
|
||||
### KEY PATTERNS
|
||||
|
||||
1. **Regulatory pressure is the real bottleneck, not technology** - the API delay, ElevenLabs removal, and Hollywood backlash form a connected pattern where legal/ethical concerns are throttling access faster than ByteDance can ship (r/Seedance_AI + r/AIGuild)
|
||||
2. **Access fragmentation creates parallel economies** - CapCut for consumers, Atlas Cloud for enterprise, Jimeng for China, third-party wrappers for everyone else, scam sites for the desperate - all serving the same model through different channels with different reliability [xref: HN/Reddit]
|
||||
3. **Consumer excitement vastly outpaces developer adoption** - 199K YouTube views vs. 1-point HN Show HN posts; the audience is creators and filmmakers, not engineers building on APIs (Theoretically Media vs. HN)
|
||||
4. **Multi-shot coherence is the moat** - character/scene consistency across shots is what separates Seedance 2.0 from competitors and what makes the "zero editing film" possible (hn/RyanMu)
|
||||
5. **Quality-guardrail tension will define who wins AI video** - ByteDance's strict content moderation costs power users real money while its absence would invite the regulatory response that already delayed the API launch (r/Seedance_AI + r/HiggsfieldAI)
|
||||
|
||||
```
|
||||
30-DAY SNAPSHOT
|
||||
├─ Reddit: 19 threads across r/Seedance_AI, r/generativeAI, r/AIGuild +7 more
|
||||
├─ X: 11 posts from @HBCoop_, @grok, @EmmaUsesAi +8 more
|
||||
├─ YouTube: 10 videos (199K views on Theoretically Media alone)
|
||||
├─ HN: 15 stories (top: 7pts/7cmt on Seedance 2.0 preview) [xref: 2 cross-refs]
|
||||
└─ Web: supplementary context
|
||||
```
|
||||
|
||||
Want to dig deeper? I can look into **the full SAG-AFTRA timeline and how it connects to ByteDance's API delay**, **which Seedance 2.0 access methods are actually legitimate and at what cost**, or **head-to-head multi-shot coherence comparisons between Seedance 2.0, Kling 3.0, and Sora 2**.
|
||||
@@ -0,0 +1,35 @@
|
||||
# M4 MacBook Pro Review - What People Are Saying (Last 30 Days)
|
||||
|
||||
The M4 MacBook Pro has settled into the market and the verdict is remarkably consistent across platforms: this is the best MacBook Pro generation in years, but most people do not need the Pro or Max chips. MKBHD's review (4M views, 105K likes) captures the prevailing sentiment - he used an M1 Max for three years without feeling the upgrade itch, but the M4 Max finally convinced him. Meanwhile, a cross-platform signal from Created Tech's Air vs Pro comparison (472K views on YouTube, also discussed on r/macbookpro) suggests the base M4 is more than enough for most buyers.
|
||||
|
||||
**The base M4 is the sweet spot for most users.** MacRumors makes the case explicitly - "Base M4 is All You Need, Skip Pro & Max" - and this aligns with what multiple reviewers found after months of daily use. The Pro and Max chips remain overkill unless you have a specific pro workload that demands them, per Created Tech's long-term reviews.
|
||||
|
||||
**The M4 generation is the first worthwhile upgrade since M1.** MKBHD, Dave2D, and ShortCircuit all converge on this. Per @bhphoto, the M3-to-M4 jump is modest, but the M1/M2-to-M4 jump is significant. ShortCircuit's "Don't Buy the Wrong MacBook" specifically warns against upgrading from M3, reinforcing the skip-a-generation strategy.
|
||||
|
||||
**Local AI workloads are the new killer use case for Pro/Max configs.** This is where X data gets interesting. Per @jameslmorton, a maxed 128GB M4 MacBook Pro pushes 70 tokens/s for local LLM inference, though quality varies by model. @grok highlights that 64GB M4 Pro/Max configurations can run local AI agents with zero cloud dependency and sub-second response times. Ollama runs natively via Metal, needing 18-24GB of unified memory as a practical minimum. This is the clearest justification for spending up on Pro or Max silicon in 2026.
|
||||
|
||||
**Long-term satisfaction holds up, with minor friction points.** Both Max Tech and Created Tech published multi-month follow-ups, and the consensus is overwhelmingly positive - per Max Tech, "Everyone was WRONG" about early complaints. However, r/macbookpro threads surface battery life concerns on the 14-inch model and display/port/speaker comparisons that drove at least one user to return an M4 Air in favor of the Pro. These are edge cases, not patterns, but worth noting.
|
||||
|
||||
**The Air vs Pro decision is the real question, not which Pro chip.** Created Tech's comparison [also on: Reddit] frames the actual purchase decision most buyers face. The Pro's advantages - better display, more ports, superior speakers - matter more than the chip difference for the majority of users.
|
||||
|
||||
KEY PATTERNS:
|
||||
1. Base M4 is sufficient for most professional use cases, per Created Tech and MacRumors
|
||||
2. Local AI inference is the emerging justification for Pro/Max configs, per @jameslmorton
|
||||
3. Skip-a-generation upgrade strategy confirmed - M3 to M4 is marginal, M1/M2 to M4 is significant, per @bhphoto
|
||||
4. Battery life expectations need recalibrating against Apple's marketing claims, per r/macbookpro
|
||||
5. Air vs Pro is a more meaningful decision than Pro vs Max for most buyers
|
||||
|
||||
---
|
||||
All agents reported back!
|
||||
├─ 🟠 Reddit: 3 threads │ r/macbookpro
|
||||
├─ 🔵 X: 12 posts │ 10 likes │ 1 repost
|
||||
├─ 🔴 YouTube: 10 videos │ 7,926,186 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 0 stories (no results this cycle)
|
||||
├─ 🌐 Web: supplementary
|
||||
├─ Cross-platform: 1 item (Created Tech Air vs Pro on YouTube + Reddit)
|
||||
└─ 🗣️ Top voices: @bhphoto, @jameslmorton │ r/macbookpro │ MKBHD (4M views)
|
||||
|
||||
---I'm now an expert on M4 MacBook Pro reviews. Some things I can help with:
|
||||
- Compare the M4 MacBook Air vs Pro for your specific use case (the differences go beyond specs)
|
||||
- Recommend the right M4 configuration tier based on whether you run local AI models, creative apps, or dev tools
|
||||
- Give you realistic battery life expectations based on Reddit owner reports, not Apple's marketing numbers
|
||||
@@ -0,0 +1,26 @@
|
||||
# What I learned
|
||||
|
||||
Cross-referencing Reddit ownership reports, YouTube long-term reviews, and X commentary on the M4 MacBook Pro reveals a maturing consensus: this is excellent hardware with a surprisingly simple recommendation for most buyers. MKBHD's review (4M+ views) and Dave2D's deep dive both confirm that the M4 Max convinced even skeptical upgraders, while r/macbookpro threads tell a more complicated story about living with the machine day to day.
|
||||
|
||||
**The Air-to-Pro switch is about more than the chip.** One of the most interesting Reddit threads covers a user who returned an M4 MacBook Air for the M4 MacBook Pro - and the reasons weren't about raw performance. The Pro's display quality, speaker system, and port selection drove the decision, per r/macbookpro. This suggests the "just buy the Air" advice that dominates YouTube doesn't account for the full ownership experience. Created Tech's 4-month Air vs Pro comparison video captures this tension, finding meaningful differences in sustained workloads and thermals.
|
||||
|
||||
**Battery expectations need recalibrating.** Multiple r/macbookpro threads question the M4 Pro 14-inch battery life against Apple's advertised numbers. Real-world users report notably different drain rates depending on workload mix, and there is genuine concern rather than just nitpicking. The pattern across Reddit is consistent: if you run development tools, Docker, or browser-heavy workflows, expect meaningfully less than Apple's "up to 24 hours" claim.
|
||||
|
||||
**Long-term reviewers are more candid.** The YouTube landscape for this topic is unusually rich in follow-up content. Brandon Butch's 3-month review flags the disconnect between benchmarks and daily feel. Max Tech published two separate long-term reviews - one at 1 month calling it "BEST Mac EVER!?" and another at 6 months titled "Everyone was WRONG!" - showing how opinions evolve with extended use, per Max Tech on YouTube. Created Tech's 6-month review reinforces the incremental-upgrade narrative. Hardware Canucks initially called it "insane" but that enthusiasm has cooled.
|
||||
|
||||
**Local AI is the sleeper use case.** The X conversation is dominated by AI workload discussions. @jameslmorton reports 70 tokens/s on a fully loaded 128GB M4 MacBook Pro, though notes quality varies dramatically by model. @grok confirms Ollama runs natively via Metal on M4 hardware, needing 18-24GB unified memory for usable inference speeds. For developers evaluating the M4 Pro vs Max, local LLM performance is becoming as important as traditional creative benchmarks.
|
||||
|
||||
**Configuration advice is converging.** Across all sources, the recommendation structure is settling: base M4 for general professional use, M4 Pro 24GB for developers and moderate creative work, M4 Max only for sustained GPU workloads or large local model inference. MacRumors explicitly advises skipping Pro and Max for most buyers. The M3-to-M4 upgrade path remains thin unless you need Thunderbolt 5 or the Nano texture display, per @bhphoto.
|
||||
|
||||
---All agents reported back!
|
||||
├─ 🟠 Reddit: 3 threads │ 0 upvotes │ 0 comments
|
||||
├─ 🔵 X: 12 posts │ 10 likes │ 1 repost
|
||||
├─ 🔴 YouTube: 10 videos │ 7,926,186 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 0 stories (no results this cycle)
|
||||
├─ 🌐 Web: 0 pages (supplementary)
|
||||
└─ 🗣️ Top voices: @bhphoto (3 likes), @jameslmorton │ r/macbookpro
|
||||
|
||||
---I'm now an expert on M4 MacBook Pro reviews. Some things I can help with:
|
||||
- Compare the M4 MacBook Air vs Pro for your specific use case (the differences go beyond specs)
|
||||
- Recommend the right M4 configuration tier based on whether you run local AI models, creative apps, or dev tools
|
||||
- Give you realistic battery life expectations based on Reddit owner reports, not Apple's marketing numbers
|
||||
@@ -0,0 +1,41 @@
|
||||
# Best Rap Songs 2026
|
||||
|
||||
The rap landscape in early 2026 is defined by a mix of chart-topping singles, Grammy momentum, and a steady stream of new releases keeping the culture moving. Lil Uzi Vert's "What You Saying" kicked off the year by hitting #1 on Hot Rap Songs in January, marking their third career chart-topper (@grok). Meanwhile, Kendrick Lamar continued his dominant run, winning his second Record of the Year Grammy alongside SZA for "Luther" (r/hiphopheads), cementing the track as one of the most celebrated rap-adjacent records of the cycle.
|
||||
|
||||
**Lil Uzi Vert owns early 2026 charts.** "What You Saying" debuted at #1 on Hot Rap Songs and peaked at #14 on the Hot 100, making it the biggest pure rap single of January-February 2026. Multiple X posts tracked its chart performance, and it appeared across playlist threads (@grok).
|
||||
|
||||
**Kendrick Lamar and the Grammy effect.** Kendrick's wins at the 68th Annual Grammys for Best Rap Song, Best Rap Performance, and Record of the Year (with SZA for "Luther") dominated Reddit discussion across r/hiphopheads and r/KendrickLamar. "Luther" and tracks from GNX continue to define the quality benchmark heading into 2026.
|
||||
|
||||
**DJ mixes reveal what is actually in rotation.** The highest-viewed YouTube content is not individual tracks but curated mixes. West Coast Finest's "Lit Hip Hop Mix 2026" featuring Tyga, Quavo, Iggy Azalea, Wiz Khalifa, Juicy J, and 50 Cent pulled 407K views, suggesting West Coast and party rap have strong listener demand. DJ Noize's February 2026 trap tape provides a reliable snapshot of the newest releases getting club and playlist play.
|
||||
|
||||
**Underground and international names are surfacing.** Nuno Zigi's "World Best Lie" was called out as one of the most meaningful rap songs of 2026 (@Zika_gfx). Andre Toutman's "All The Love" was claimed as song of the year in r/GoodAssSub. These are not mainstream chart entries yet but reflect organic community enthusiasm.
|
||||
|
||||
**Nostalgia holds its own against new releases.** Multiple threads - r/TeenageRapFans, r/musicteenager, and even X posts praising older Beyonce tracks over current output (@DPOSTS6) - show that listeners are actively comparing 2026 releases against all-time classics and finding much of the new crop lacking.
|
||||
|
||||
## SPECIFIC SONGS AND ARTISTS TO WATCH (by mention frequency and engagement)
|
||||
|
||||
- **Lil Uzi Vert - "What You Saying"** - #1 Hot Rap Songs, multiple platform mentions. Sources: @grok, DJ Noize mixes
|
||||
- **Kendrick Lamar & SZA - "Luther"** - Record of the Year Grammy, massive Reddit discussion. Sources: r/hiphopheads, r/KendrickLamar
|
||||
- **Kendrick Lamar - GNX tracks** - Best Rap Song and Best Rap Performance Grammy wins. Sources: r/hiphopheads
|
||||
- **Tyga, Quavo, Wiz Khalifa, 50 Cent** - Featured in the most-viewed 2026 rap mix on YouTube (407K views). Sources: West Coast Finest (YouTube)
|
||||
- **Nuno Zigi - "World Best Lie"** - Praised as meaningful 2026 rap. Sources: @Zika_gfx
|
||||
- **Andre Toutman - "All The Love"** - Called song of the year by community. Sources: r/GoodAssSub
|
||||
- **Drake & PARTYNEXTDOOR - $OME $EXY $ONGS 4 U** - Still generating discussion one year later. Sources: r/hiphopheads
|
||||
- **Sean Bryant - "Love vs Loyalty"** - Upcoming album generating pre-release buzz. Sources: @teammusic2046
|
||||
|
||||
---
|
||||
|
||||
```
|
||||
---All agents reported back!
|
||||
├─ 🟠 Reddit: 11 threads │ r/hiphopheads, r/KendrickLamar, r/GoodAssSub, r/edranked, r/makemeaplaylist, r/playlists
|
||||
├─ 🔵 X: 12 posts │ @grok, @Zika_gfx (12 likes, 5 RT), @DPOSTS6
|
||||
├─ 🔴 YouTube: 3 videos │ 462K+ total views │ 3 with transcripts
|
||||
├─ 🟡 HN: 0 stories
|
||||
├─ 🌐 Web: supplementary
|
||||
└─ 🗣️ Top voices: @Zika_gfx, @grok │ r/hiphopheads, r/KendrickLamar
|
||||
```
|
||||
|
||||
---I'm now an expert on rap songs in 2026. Some things I can help with:
|
||||
- Pull the full Grammy rap category winners from the r/hiphopheads Pre-Show thread
|
||||
- Check what tracks people are nominating in the r/edranked "Hip Hop '26" ranking
|
||||
- Deep dive on any specific artist or track mentioned above
|
||||
@@ -0,0 +1,28 @@
|
||||
# What I learned
|
||||
|
||||
The "best rap songs 2026" landscape is being shaped by three forces right now: Grammy season validation, community-curated playlists, and chart performance. Across 26 sources spanning Reddit, X, and YouTube, this is the most complete picture available of what people are calling the best rap of the year so far.
|
||||
|
||||
**Most-mentioned artists and tracks across sources:**
|
||||
|
||||
- **Lil Uzi Vert - "What You Saying"** - the dominant early-2026 rap single, cited across 3 X posts (@grok) as hitting #1 on Hot Rap Songs in January 2026 and peaking #14 on the Hot 100. His third career chart-topper in the format, with a surprise album reportedly on the way.
|
||||
- **Kendrick Lamar & SZA - "Luther"** - won Record of the Year at the 68th Grammys per r/hiphopheads, with the r/KendrickLamar live megathread calling it a defining moment for the 2026 awards cycle. Sources: r/hiphopheads, r/KendrickLamar.
|
||||
- **Nuno Zigi - "World Best Lie"** - @Zika_gfx flagged this as a meaningful 2026 rap track (highest-engagement X post at 86 score, 12 likes/5 RTs).
|
||||
- **Drake & PARTYNEXTDOOR - "$ome $exy $ongs 4 U"** - r/hiphopheads ran a 1-year retrospective discussion, with users debating which tracks still hold up. Sources: r/hiphopheads.
|
||||
- **Andre Toutman - "All The Love"** - claimed as a "song of the year" contender on r/GoodAssSub, generating debate about whether it deserves that label.
|
||||
- **Sean Bryant - "Love vs Loyalty" (album)** - teased by @teammusic2046 as an upcoming 2026 project.
|
||||
|
||||
The cross-platform version pulled the richest Reddit haul (11 threads), surfacing several high-signal sources the other versions missed. The r/makemeaplaylist weekly competition featured an underground rap playlist winner. r/GoodAssSub contributed a direct "song of the year" debate thread. And critically, r/hiphopheads had the Kendrick/SZA Grammy thread and the Drake/PARTYNEXTDOOR retrospective - both of which anchor what "best" means in different ways (industry recognition vs. staying power).
|
||||
|
||||
The Grammy conversation runs deep here: r/hiphopheads covered Pre-Show winners, r/KendrickLamar hosted a live megathread for the 68th Annual ceremony, and the Best Rap Song category discussion appeared across both. Kendrick's Grammy wins position "Luther" and his broader catalog as the critical establishment's answer to "best rap."
|
||||
|
||||
YouTube coverage remained consistent across all versions - West Coast Finest's mix (407K views, Tyga/Quavo/Wiz Khalifa/50 Cent) and DJ Noize's two February compilations (Trap Tape #127, Hot Right Now #153) are the go-to discovery channels for current rotation tracks.
|
||||
|
||||
```
|
||||
Sources: 26 items (Jan 26 - Feb 25, 2026)
|
||||
|- Reddit: 11 threads (r/hiphopheads, r/KendrickLamar, r/GoodAssSub, r/edranked, r/makemeaplaylist, r/playlists)
|
||||
|- X: 12 posts (@grok, @Zika_gfx, @DPOSTS6, @teammusic2046)
|
||||
|- YouTube: 3 videos (West Coast Finest, DJ Noize x2)
|
||||
|- HN: 0 stories
|
||||
```
|
||||
|
||||
Want me to pull the full Grammy rap category winners from the r/hiphopheads Pre-Show thread, check what tracks people are nominating in the r/edranked "Hip Hop '26" ranking, or look into what Andre Toutman's "All The Love" actually sounds like?
|
||||
@@ -0,0 +1,38 @@
|
||||
## What I learned:
|
||||
|
||||
The React-vs-Svelte debate in early 2026 has shifted from "which is better" to "when does each one make sense" - and the answer increasingly depends on what you're optimizing for. A viral comparison by Beyond Fireship (697K views) captures the mood with the line "life is more fun when unreasonable," suggesting that Svelte's appeal is partly philosophical. Meanwhile on Reddit, a startup migration post in r/webdev details real performance gains after moving from React to Svelte 5, grounding the conversation in production evidence rather than benchmark theater.
|
||||
|
||||
**Svelte 5 runes reset the learning curve - and the narrative.** Fireship's "Did runes just ruin Svelte?" crystallized a tension the community is still processing. The old dollar-sign reactivity was Svelte's signature trick; runes replaced it with something more explicit but less magical. Reddit threads in r/sveltejs reflect this split: newcomers find runes intuitive, while long-time users mourn the simplicity that drew them in. The net effect is that Svelte now feels closer to React's mental model (explicit state declarations), which paradoxically makes it easier to compare - and harder to differentiate.
|
||||
|
||||
**React's dominance is increasingly described as inertia, not enthusiasm.** @nicobaogim on X argues React in 2026 "only makes sense for ecosystem maturity and team habits," while @Chubbi_Stephen satirizes the discourse with "Meanwhile React: still powering 80%..." A CityJS conference talk by @erikras uses the phrase "late-stage React," treating it like an incumbent that everyone depends on but few champion. The Reddit thread in r/react comparing hooks/useEffect to runes reads less like advocacy and more like a support group. React is not losing users - it is losing evangelists.
|
||||
|
||||
**Job market pragmatism still favors React, but the gap is narrowing.** The r/sveltejs thread "How is going svelte?" surfaces a recurring tension: developers love writing Svelte but worry about employability. @singhprateek_25's X post listing 2026 fresher requirements includes both React and Svelte side by side, signaling that hiring managers are at least aware. The government portal evaluation in r/sveltejs - a developer coming from .NET and React, seriously weighing Svelte for accessibility, SEO, and forms - suggests Svelte is crossing the threshold from "side project framework" to "enterprise candidate."
|
||||
|
||||
**Post-framework thinking is emerging.** @cityjsconf announced a talk on Ripple that cherry-picks from React, Svelte, and Solid, while @dennydotio predicted frameworks themselves become obsolete once AI handles code generation. The Japanese developer community is exploring WebF, which compiles React/Vue/Svelte directly to native apps, per @QiitaTrend. The React-vs-Svelte framing may have a shorter shelf life than either community expects.
|
||||
|
||||
### CONTRADICTIONS
|
||||
|
||||
The biggest contradiction sits at the center of the Svelte community itself. Runes were supposed to make Svelte more approachable and scalable, but Fireship's video questioning whether runes "ruined" Svelte shows genuine anxiety. Reddit threads where newcomers say "Svelte is easier than React" coexist with experienced Svelte developers saying the migration to runes introduced friction they did not expect.
|
||||
|
||||
**KEY PATTERNS:**
|
||||
|
||||
1. **Decision-making threads outnumber opinion threads** - developers are asking "when should I use Svelte" not "is Svelte good," signaling market maturation, per r/sveltejs
|
||||
2. **Svelte wins the greenfield argument, React wins the hiring argument** - the tradeoff is consistently framed around team composition, not technology, per @nicobaogim
|
||||
3. **Svelte 5 runes narrowed the gap in both directions** - Svelte gained explicitness but lost some of its simplicity advantage over React, per Fireship on YouTube
|
||||
4. **Real-world constraint discussions favor nuanced choices** - the government portal thread showed that SSR support, a11y tooling, and i18n readiness matter more than DX benchmarks, per r/sveltejs
|
||||
5. **Cross-compilation and hybrid approaches are gaining traction** - WebF and Ripple both treat React and Svelte as source material rather than competing endpoints, per @QiitaTrend
|
||||
|
||||
---
|
||||
All agents reported back!
|
||||
├─ 🟠 Reddit: 6 threads │ 339 upvotes
|
||||
├─ 🔵 X: 9 posts │ 76 likes │ 4 reposts
|
||||
├─ 🔴 YouTube: 10 videos │ 2,085,183 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 0 stories (no results this cycle)
|
||||
├─ 🌐 Web: supplementary
|
||||
└─ 🗣️ Top voices: @FabianHiller (61 likes), @cityjsconf │ r/sveltejs, r/webdev, r/react
|
||||
---
|
||||
|
||||
I'm now an expert on React vs Svelte 2026. Some things I can help with:
|
||||
- Evaluate whether Svelte fits a specific project with constraints like a11y, i18n, or SSR requirements
|
||||
- Compare the hiring and ecosystem implications of choosing Svelte over React for a new team
|
||||
- Analyze how Svelte 5 runes changed the developer experience compared to Svelte 4's dollar-sign syntax
|
||||
@@ -0,0 +1,34 @@
|
||||
## What I learned:
|
||||
|
||||
The React vs Svelte debate in 2026 has matured from "which is better" to "when does each make sense" - and the community data reflects this nuance. With 6 Reddit threads surfaced (the most of any version), including real decision-making discussions on r/sveltejs about government portals and learning timelines, the cross-platform search captured a richer picture of how developers are actually choosing between these frameworks. Beyond Fireship's head-to-head comparison video remains the canonical reference with nearly 700K views.
|
||||
|
||||
**Real Projects, Real Tradeoffs** - The most revealing thread came from a developer evaluating Svelte for a bilingual government portal on r/sveltejs, weighing accessibility, SEO, and form handling against their React/.NET background. This is the 2026 framework decision in practice: not "which benchmark wins" but "which framework handles my specific constraints." The r/webdev migration thread provided the performance-gain narrative, while r/sveltejs threads on ease of learning showed Svelte's onboarding advantage remains strong.
|
||||
|
||||
**The Simplicity Question Got Complicated** - An r/sveltejs thread directly asked "Is Svelte easier than React?" - and the answers were more nuanced than expected. Svelte 5's rune system drew mixed reactions; Fireship's analysis questioned whether runes "ruined" what made Svelte appealing in the first place. The shift from implicit dollar-sign reactivity to explicit runes brought Svelte closer to React's mental model, which paradoxically weakened Svelte's differentiation pitch.
|
||||
|
||||
**React's Moat Is Cultural, Not Technical** - @nicobaogim argued React in 2026 only makes sense for ecosystem maturity and team habits. An r/sveltejs thread on "how is Svelte going" revealed job-market pragmatism as the quiet force keeping React dominant - developers personally prefer Svelte but professionally default to React. @Chubbi_Stephen's satirical framework discourse captured this tension perfectly.
|
||||
|
||||
**Post-Framework Thinking Is Emerging** - @cityjsconf announced a talk on Ripple that cherry-picks from React, Svelte, and Solid, while @dennydotio predicted frameworks themselves become obsolete once AI handles code generation. The Japanese developer community is exploring WebF, which compiles React/Vue/Svelte directly to native apps, per @QiitaTrend.
|
||||
|
||||
**KEY PATTERNS:**
|
||||
|
||||
1. **Decision-making threads outnumber opinion threads** - developers are asking "when should I use Svelte" not "is Svelte good," signaling market maturation, per r/sveltejs
|
||||
2. **Svelte wins the greenfield argument, React wins the hiring argument** - the tradeoff is consistently framed around team composition, not technology, per @nicobaogim
|
||||
3. **Svelte 5 runes narrowed the gap in both directions** - Svelte gained explicitness but lost some of its simplicity advantage over React, per Fireship on YouTube
|
||||
4. **Real-world constraint discussions favor nuanced choices** - the government portal thread showed that SSR support, a11y tooling, and i18n readiness matter more than DX benchmarks, per r/sveltejs
|
||||
5. **Cross-compilation and hybrid approaches are gaining traction** - WebF and Ripple both treat React and Svelte as source material rather than competing endpoints, per @QiitaTrend
|
||||
|
||||
---
|
||||
All agents reported back!
|
||||
├─ 🟠 Reddit: 6 threads │ 339 upvotes
|
||||
├─ 🔵 X: 9 posts │ 76 likes │ 4 reposts
|
||||
├─ 🔴 YouTube: 10 videos │ 2,085,183 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 0 stories (no results this cycle)
|
||||
├─ 🌐 Web: supplementary
|
||||
└─ 🗣️ Top voices: @FabianHiller (61 likes), @cityjsconf │ r/sveltejs, r/webdev, r/react
|
||||
---
|
||||
|
||||
I'm now an expert on React vs Svelte 2026. Some things I can help with:
|
||||
- Evaluate whether Svelte fits a specific project with constraints like a11y, i18n, or SSR requirements
|
||||
- Compare the hiring and ecosystem implications of choosing Svelte over React for a new team
|
||||
- Analyze how Svelte 5 runes changed the developer experience compared to Svelte 4's dollar-sign syntax
|
||||
@@ -0,0 +1,35 @@
|
||||
What I learned:
|
||||
|
||||
Claude Code skills and MCP servers are at an inflection point - the community is building so fast that infrastructure tooling (sandboxes, marketplaces, directories) is appearing alongside the skills themselves. @ihtesham2005 highlighted Anthropic open-sourcing their internal Skills library, and Hacker News is seeing a steady stream of Show HN projects building on this layer.
|
||||
|
||||
**Specialized skill packs are the new open-source project type** - Builders are shipping domain-specific skill bundles: a 55K-word email marketing knowledge base (hn/cosmoblk, 10pts), 12 SEO skills for Claude Code (r/ClaudeCode), and AI marketing skills (hn/superamped). These aren't generic - they embed deep domain knowledge into SKILL.md files.
|
||||
|
||||
**Security and sandboxing are emerging concerns** - SkillSandbox (hn/ClaytheMachine) is a Rust-based capability sandbox for AI agent skills, and Gulama (hn/san-techie21) pitches itself as a "security-first" OpenClaw alternative. As skills get more powerful, the HN crowd is asking hard questions about what they should be allowed to do.
|
||||
|
||||
**MCP is becoming a framework target, not just a protocol** - Upjack (hn/barefootsanders) is a declarative framework for building apps over MCP, and the GTM MCP Server (hn/paolobietolini) lets AI manage Google Tag Manager containers. MCP is evolving from "connect tools to Claude" into "build entire products on top of MCP."
|
||||
|
||||
**Agent orchestration is the next layer up** - Axon (hn/gjkim042) provides Kubernetes-native orchestration for AI coding agents, and hn/alternateman built tooling to turn Claude Code or Codex into proactive 24/7 agents. The pattern is skills for single tasks, orchestration for workflows, infrastructure for always-on agents.
|
||||
|
||||
**Skill discovery is an unsolved problem** - Indx.sh (hn/micronink) is a directory of AI coding rules, MCP servers, and tools. ClawsMarket (hn/digitcatphd) is a marketplace where AI agents discover tools. @ghumare64 uses a dedicated tool to sync and scan skills from the marketplace. Multiple independent attempts to solve discovery suggest it's a real pain point.
|
||||
|
||||
KEY PATTERNS from the research:
|
||||
1. HN builders are creating infrastructure (sandboxes, frameworks, marketplaces) while Reddit/X users are creating end-user skills - the ecosystem is specializing, per hn/ClaytheMachine
|
||||
2. Marketing is the breakout non-dev use case for skills - multiple independent projects across HN, Reddit, and YouTube, per hn/cosmoblk
|
||||
3. Skills are going cross-platform - builders are creating skills that work with Claude Code AND Codex, per @zeeg
|
||||
4. The implicit vs explicit skill invocation debate is live - Codex handles implicit well, Claude Code still needs explicit mentions, per @zeeg
|
||||
5. Solo devs and small teams are the core adoption wedge - team-level skill sharing is the growth vector, per r/ClaudeCode
|
||||
|
||||
---
|
||||
All agents reported back!
|
||||
├─ 🟠 Reddit: 3 threads │ 0 upvotes │ 0 comments
|
||||
├─ 🔵 X: 12 posts │ 23 likes │ 1 reposts
|
||||
├─ 🔴 YouTube: 10 videos │ 520,640 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 15 stories │ 35 points │ 16 comments
|
||||
├─ 🌐 Web: supplementary
|
||||
└─ 🗣️ Top voices: @ihtesham2005 (6 likes), @zeeg (4 likes, 1 RT) │ r/ClaudeCode, r/ClaudeAI │ hn/cosmoblk (10pts)
|
||||
---
|
||||
|
||||
I'm now an expert on Claude Code skills and MCP servers. Some things I can help with:
|
||||
- Break down the SkillSandbox architecture and what capability-based security means for your skills
|
||||
- Compare the emerging MCP frameworks (Upjack vs Poncho vs Fluid.sh) for different use cases
|
||||
- Help you build a domain-specific skill pack like the 55K-word email marketing knowledge base
|
||||
@@ -0,0 +1,36 @@
|
||||
## What I learned
|
||||
|
||||
ByteDance's **Seedance 2.0** has dominated AI video discussion this month, with r/singularity and Hacker News tracking both the technical leaps and the messy rollout. The top HN thread (hn/Alisaqqt, 7pts) previewed the model in early February and correctly predicted the Atlas Cloud API launch on Feb 24.
|
||||
|
||||
**CapCut integration marks the global launch.** As of Feb 25, Seedance 2.0 is live inside CapCut desktop and mobile worldwide. @jznode confirms no Chinese phone number is needed, with generations running about $2 each. A parallel r/singularity thread tracks the announcement with discussion of censorship trade-offs and pricing.
|
||||
|
||||
**One-minute coherent films.** r/generativeAI showcases a Seedance 2.0 output - a one-minute film with multi-shot coherence, scene transitions, and consistent characters, all generated with zero editing. The claim is contested but the output samples are circulating widely.
|
||||
|
||||
**API availability is a saga.** The top HN story noted the API was not yet available in early Feb, with Atlas Cloud access promised for Feb 24. By late February, r/generativeAI reports Seedance 2.0 appearing in "open source tools already," while third-party APIs (useapi.net) offer access of uncertain authenticity. Multiple Show HN posts (SeeVideo, Seedance3AI, and others) are building wrapper apps, but most sit at 1 point with zero comments.
|
||||
|
||||
**Jimeng platform instability.** r/Seedance_AI documents 24-hour stretches of "Network Error, Generation Failed" on Jimeng Web, silent account bans distinguishing paid from free accounts, and general frustration. One user reports wasting $1,000+ on failed generations due to content review rejections.
|
||||
|
||||
**Hollywood and SAG-AFTRA blowback.** r/AIGuild covers ByteDance facing Hollywood backlash over Seedance 2.0 IP concerns. r/AI_UGC_Marketing notes ElevenLabs quietly removed Seedance 2.0 integration after a SAG-AFTRA incident, breaking UGC video workflows.
|
||||
|
||||
**Developer community response is breadth without depth.** HN saw 15 stories this month, but engagement is thin - only the preview thread (7pts, 7 comments) generated real discussion. The rest are Show HN launches of wrapper apps (SeeVideo, Seedance3AI, etc.) that attracted minimal attention, suggesting developer tools are outpacing developer demand.
|
||||
|
||||
**Multi-shot narrative is the real breakthrough.** HN commenter hn/RyanMu notes that most AI video tools "generate isolated clips that fall apart when you try to build an actual narrative" - Seedance 2.0's multi-shot coherence is what sets it apart, and a separate Show HN specifically targets the "jump-cut problem."
|
||||
|
||||
### KEY PATTERNS
|
||||
|
||||
1. **Access fragmentation creates a wrapper gold rush** - 8+ Show HN posts launched Seedance wrapper apps in a single month, but almost none gained traction, suggesting the market wants official API access, not middlemen (HN)
|
||||
2. **Platform musical chairs** - added to CapCut, removed from ElevenLabs, broken on Jimeng, promised on Atlas Cloud - the access surface is shifting weekly, making production workflows unreliable (r/singularity)
|
||||
3. **Quality ceiling vs. guardrail floor** - Seedance 2.0's cinematic output quality is the highest in the space, but content moderation filters reject enough generations to cost power users real money (r/Seedance_AI)
|
||||
4. **Multi-shot coherence is the moat** - while competitors offer single-clip generation, Seedance 2.0's ability to maintain character and scene consistency across shots is the feature driving adoption (hn/RyanMu)
|
||||
5. **Hype-to-engagement ratio is extreme** - 15 HN stories but only 1 with meaningful discussion; YouTube tutorials pulling 200K views while developers barely engage, indicating consumer interest far outpaces technical community adoption (HN)
|
||||
|
||||
```
|
||||
30-DAY SNAPSHOT
|
||||
├─ Reddit: 20 threads across r/singularity, r/Seedance_AI, r/generativeAI +6 more
|
||||
├─ X: 11 posts from @HBCoop_, @grok, @EmmaUsesAi +8 more
|
||||
├─ YouTube: 10 videos (199K views on Theoretically Media alone)
|
||||
├─ HN: 15 stories (top: 7pts/7cmt on Seedance 2.0 preview)
|
||||
└─ Web: supplementary context
|
||||
```
|
||||
|
||||
Want to dig deeper? I can look into **the Atlas Cloud API launch and pricing details**, **which Show HN wrapper apps are actually functional**, or **how Seedance 2.0's multi-shot coherence compares to Kling 3.0 and Sora 2 technically**.
|
||||
@@ -0,0 +1,26 @@
|
||||
# What I learned
|
||||
|
||||
The M4 MacBook Pro has been extensively reviewed across YouTube and Reddit, but the developer-focused Hacker News community has been notably silent on the topic this cycle. Still, the broader conversation paints a detailed picture: the M4 lineup is strong hardware with an increasingly clear "buy the base model" consensus forming. Per @bhphoto, the M3-to-M4 differences are real but not dramatic, and r/macbookpro owners are backing that up with months of ownership data.
|
||||
|
||||
**Base M4 is the default recommendation.** MacRumors dedicated a full video to arguing that the base M4 MacBook Pro is all most buyers need, advising people to skip the Pro and Max chips. Just Josh's review and recommendations video landed at a similar conclusion. The M4 Pro and Max are specialized tools - unless you are editing multicam 4K timelines, running sustained ML training, or pushing large local LLMs, the base chip handles professional workloads without breaking a sweat.
|
||||
|
||||
**Battery reality is a sore spot.** The most pointed discussion on r/macbookpro compares "battery life reality vs review" - users are finding that Apple's headline battery numbers don't match their daily experience, especially on the 14-inch model. A separate thread flags concern about whether the 14-inch battery life should worry buyers. The gap between controlled reviewer testing and real usage with Chrome, Slack, and Docker running is meaningful enough to generate repeat threads.
|
||||
|
||||
**Long-term ownership tells the real story.** The launch-day review cycle was overwhelmingly positive, but the 3-to-12-month follow-ups are more measured. Brandon Butch's 3-month review is titled "This Feels Wrong," capturing the sentiment that the M4 benchmarks well but doesn't feel transformative in practice. Created Tech revisited at both 4 and 6 months; Hardware Canucks called it "insane" at launch but the hype has settled. Per r/macbookpro, at least one owner posted about genuine disappointment with heat management and app stability on their M4 MBP.
|
||||
|
||||
**Local LLM capability is a real differentiator.** On X, the conversation has shifted toward the M4 as a local AI machine. @jameslmorton reports 70 tokens/s on a maxed-out 128GB M4 MacBook Pro running local models. @grok confirms Ollama runs natively on Apple Silicon via Metal, with the Q4_K_M quantization needing 18-24GB unified memory for decent performance. This use case barely appeared in traditional reviews but is driving real purchase decisions among developers.
|
||||
|
||||
**The upgrade calculus from M3 is thin.** @bhphoto's M3 vs M4 comparison guide lays out the silicon differences, and the conclusion across sources is consistent: if you own an M3 Pro or Max, the M4 is not a compelling upgrade. New buyers benefit; upgraders should probably wait for M5.
|
||||
|
||||
---All agents reported back!
|
||||
├─ 🟠 Reddit: 3 threads │ 0 upvotes │ 0 comments
|
||||
├─ 🔵 X: 12 posts │ 10 likes │ 1 repost
|
||||
├─ 🔴 YouTube: 10 videos │ 7,866,700 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 0 stories (no results this cycle)
|
||||
├─ 🌐 Web: 0 pages (supplementary)
|
||||
└─ 🗣️ Top voices: @bhphoto (3 likes), @jameslmorton │ r/macbookpro
|
||||
|
||||
---I'm now an expert on M4 MacBook Pro reviews. Some things I can help with:
|
||||
- Help you decide between the base M4, M4 Pro, and M4 Max based on your actual workflow
|
||||
- Estimate realistic battery life for your usage pattern vs Apple's marketing claims
|
||||
- Assess whether upgrading from an M1/M2/M3 MacBook Pro is worth it right now
|
||||
@@ -0,0 +1,28 @@
|
||||
# What I learned
|
||||
|
||||
Early 2026 rap is in a transitional moment - Grammy season just wrapped, playlist curators are compiling their first "best of" roundups, and the community is still debating which new tracks deserve the crown. Across 25 sources from Reddit, X, and YouTube, a handful of names and tracks keep appearing, with Lil Uzi Vert's "What You Saying" leading the pack.
|
||||
|
||||
**Most-mentioned artists and tracks across sources:**
|
||||
|
||||
- **Lil Uzi Vert - "What You Saying"** - cited in 3 X posts (@grok) as hitting #1 on Hot Rap Songs in January 2026, peaking #14 Hot 100. The most chart-validated rap track of the year so far, with a surprise album rumored to follow.
|
||||
- **Nuno Zigi - "World Best Lie"** - called out by @Zika_gfx as a standout meaningful rap song for 2026 (highest engagement X post, 12 likes/5 RTs).
|
||||
- **DFL - "Art Of Life"** - shared directly to r/hiphop as a 2026 release. Sources: r/hiphop.
|
||||
- **Plat Hav Pro - "Get F'D Up"** - another 2026 track posted to r/hiphop. Sources: r/hiphop.
|
||||
- **Jody Lo - "Ridiculous"** - 2026 track shared in r/hiphop. Sources: r/hiphop.
|
||||
- **Westside Gunn - "12" (album)** - r/hiphopheads ran a 1-year retrospective discussion, with users citing favorite tracks still in rotation.
|
||||
|
||||
The HN version's expanded Reddit search (10 threads vs. 6 in base) surfaced several sources the base version missed. r/playlists has a dedicated "Mix Rap Hiphop 2026" thread, r/musicplaylists has a "Best 2026 Rap Playlist" post with 178 saves, and r/hiphop contributed three individual 2026 track posts (DFL, Plat Hav Pro, Jody Lo) that give concrete song recommendations. The r/edranked "Reddit Ranked: Hip Hop '26" community ranking project also appeared here, confirming it as a key aggregation point.
|
||||
|
||||
Grammy discourse is prominent: r/hiphopheads discussed Pre-Show winners across Best Rap Song and Best Rap Performance categories, providing a baseline for what the industry considers the best.
|
||||
|
||||
On YouTube, the same three mixes appeared - West Coast Finest's "Lit Hip Hop Mix 2026" (407K views, featuring Tyga, Quavo, Iggy Azalea, Wiz Khalifa, Juicy J, 50 Cent) and DJ Noize's two February compilations (Trap Tape #127, Hot Right Now #153). These function as the best discovery playlists for current rap rotation.
|
||||
|
||||
```
|
||||
Sources: 25 items (Jan 26 - Feb 25, 2026)
|
||||
|- Reddit: 10 threads (r/hiphopheads, r/playlists, r/musicplaylists, r/hiphop, r/edranked)
|
||||
|- X: 12 posts (@grok, @Zika_gfx, @DPOSTS6, @teammusic2046)
|
||||
|- YouTube: 3 videos (West Coast Finest, DJ Noize x2)
|
||||
|- HN: 0 stories
|
||||
```
|
||||
|
||||
Want me to pull the full tracklist from that r/musicplaylists "Best 2026 Rap Playlist" with 178 saves, dive into the Westside Gunn retrospective for standout tracks, or search for what won Best Rap Song at the 2026 Grammys?
|
||||
@@ -0,0 +1,34 @@
|
||||
## What I learned:
|
||||
|
||||
The React vs Svelte conversation in early 2026 is driven by real migration decisions rather than abstract benchmarks. A widely-discussed r/webdev thread documented one startup's move from React to Svelte 5 with tangible performance and developer experience improvements, while Fireship's video on React trying to "win back" developers pulled nearly 700K views - signaling broad community interest in this rivalry.
|
||||
|
||||
**Svelte 5 vs React Hooks - The Mental Model War** - The r/react comparison thread directly pits Svelte 5 runes against React hooks, with developers debating which abstraction better maps to how they think about state. An r/sveltejs thread on "when to choose React over Svelte" framed the decision around practical constraints: existing team knowledge, library availability, and hiring. The consensus leans toward Svelte for greenfield projects and React for teams already invested in its ecosystem.
|
||||
|
||||
**"Late-Stage React" Enters the Vocabulary** - @cityjsconf promoted a CityJS talk on Ripple, a new framework that extracts "the good parts of React, Svelte, and Solid" - framing React as entering its legacy phase. This mirrors @Chubbi_Stephen's satirical take on framework discourse, where every developer argues against React but React keeps powering 80% of production sites.
|
||||
|
||||
**The Ecosystem Moat Is Real but Narrowing** - @nicobaogim made the case that React's only 2026 advantage is ecosystem maturity and team habits, not technical superiority. Beyond Fireship's side-by-side "10 Examples" comparison showed Svelte consistently requiring less code for equivalent functionality, reinforcing the DX argument.
|
||||
|
||||
**Frameworks Facing Existential Questions** - @dennydotio predicted 2026 as the year JS frameworks start dying, arguing they exist for human code organization rather than machine needs. If AI-generated code becomes the norm, the framework abstraction layer loses its purpose entirely.
|
||||
|
||||
**KEY PATTERNS:**
|
||||
|
||||
1. **Migration stories consistently favor Svelte on performance and code volume** - but teams flag ecosystem gaps as the main friction, per r/webdev
|
||||
2. **React is chosen by default, Svelte is chosen by conviction** - the decision framework centers on team inertia vs technical preference, per @nicobaogim
|
||||
3. **Svelte 5 runes remain contentious within the Svelte community** - some developers feel runes traded Svelte's simplicity for React-like explicitness, per Fireship on YouTube
|
||||
4. **Hybrid frameworks are emerging from the debate** - new projects like Ripple synthesize patterns from both, treating the rivalry as a source of ideas rather than a winner-take-all contest, per @cityjsconf
|
||||
5. **TypeScript-first DX is the shared ground** - @FabianHiller's type-safe forms tooling drew the highest engagement, suggesting the real frontier is developer tooling, not framework choice
|
||||
|
||||
---
|
||||
All agents reported back!
|
||||
├─ 🟠 Reddit: 3 threads │ 172 upvotes
|
||||
├─ 🔵 X: 9 posts │ 76 likes │ 4 reposts
|
||||
├─ 🔴 YouTube: 10 videos │ 2,085,181 views │ 3 with transcripts
|
||||
├─ 🟡 HN: 0 stories (no results this cycle)
|
||||
├─ 🌐 Web: supplementary
|
||||
└─ 🗣️ Top voices: @FabianHiller (61 likes), @cityjsconf │ r/react, r/webdev
|
||||
---
|
||||
|
||||
I'm now an expert on React vs Svelte 2026. Some things I can help with:
|
||||
- Break down the hooks vs runes mental model differences with concrete code examples
|
||||
- Assess whether your project's constraints favor React's ecosystem or Svelte's DX advantages
|
||||
- Explore what "late-stage React" means for long-term framework strategy
|
||||
@@ -0,0 +1,195 @@
|
||||
# How Reddit & X Search Work in last30days
|
||||
|
||||
## Architecture Overview
|
||||
|
||||
```
|
||||
User: /last30days "kanye west"
|
||||
↓
|
||||
┌─────┴─────┐
|
||||
↓ ↓ (concurrent via ThreadPoolExecutor)
|
||||
[REDDIT] [X/TWITTER]
|
||||
↓ ↓
|
||||
OpenAI Bundled Bird or
|
||||
API xAI API
|
||||
↓ ↓
|
||||
Parse Parse
|
||||
↓ ↓
|
||||
Enrich ───┘
|
||||
(fetch ↓
|
||||
actual [MERGE]
|
||||
upvotes) ↓
|
||||
↓ [NORMALIZE → FILTER → SCORE → DEDUPE]
|
||||
└───────────↓
|
||||
[OUTPUT to SKILL.md agent]
|
||||
```
|
||||
|
||||
Both searches run **in parallel** using Python's `ThreadPoolExecutor(max_workers=2)`.
|
||||
|
||||
---
|
||||
|
||||
## Reddit Search
|
||||
|
||||
### How it works
|
||||
|
||||
Reddit search uses the **OpenAI Responses API** with the `web_search` tool, domain-filtered to `reddit.com` only.
|
||||
|
||||
**API Call:**
|
||||
```
|
||||
POST https://api.openai.com/v1/responses
|
||||
Authorization: Bearer {OPENAI_API_KEY}
|
||||
```
|
||||
|
||||
**Payload:**
|
||||
```json
|
||||
{
|
||||
"model": "gpt-5.2",
|
||||
"tools": [{
|
||||
"type": "web_search",
|
||||
"filters": { "allowed_domains": ["reddit.com"] }
|
||||
}],
|
||||
"input": "Search Reddit for threads about {topic}..."
|
||||
}
|
||||
```
|
||||
|
||||
The prompt asks the model to:
|
||||
1. Extract core subject (strip noise words like "best", "tips", "top")
|
||||
2. Search 3 patterns: `"{topic} site:reddit.com"`, `"reddit {topic}"`, `"{topic} reddit"`
|
||||
3. Return JSON with `title`, `url`, `subreddit`, `date`, `relevance`
|
||||
4. URLs must contain `/r/` AND `/comments/` (real threads only)
|
||||
|
||||
**Model fallback chain:** `gpt-5.2 → gpt-5.1 → gpt-5 → gpt-4.1 → gpt-4o → gpt-4o-mini`
|
||||
Triggers on HTTP 400/403 with access error keywords.
|
||||
|
||||
### Enrichment (the secret sauce)
|
||||
|
||||
After search, each thread gets **enriched** by hitting Reddit's free JSON API:
|
||||
|
||||
```
|
||||
GET https://reddit.com/r/{sub}/comments/{id}/{slug}/.json
|
||||
```
|
||||
|
||||
No API key needed. This returns the actual thread data:
|
||||
|
||||
| Data Point | Source |
|
||||
|---|---|
|
||||
| Upvotes (score) | Reddit JSON API |
|
||||
| Comment count | Reddit JSON API |
|
||||
| Upvote ratio | Reddit JSON API |
|
||||
| Top 10 comments (text + score) | Reddit JSON API |
|
||||
| 7 key comment insights | Extracted via heuristics |
|
||||
| Actual post date | `created_utc` timestamp |
|
||||
|
||||
**This is why Reddit results have real engagement metrics** — the enrichment step fetches actual upvote/comment data, not AI estimates.
|
||||
|
||||
### Depth settings
|
||||
|
||||
| Depth | Threads requested | Timeout |
|
||||
|---|---|---|
|
||||
| `--quick` | 15-25 | 90s |
|
||||
| default | 30-50 | 120s |
|
||||
| `--deep` | 70-100 | 180s |
|
||||
|
||||
---
|
||||
|
||||
## X/Twitter Search
|
||||
|
||||
X search has **two backends** — the skill auto-detects which to use.
|
||||
|
||||
### Priority: Bundled Bird (env auth) → xAI API (paid)
|
||||
|
||||
```python
|
||||
if node_available and AUTH_TOKEN and CT0:
|
||||
use bundled Bird # Free, popup-free, env-authenticated
|
||||
elif XAI_API_KEY:
|
||||
use xAI API # Paid, uses grok-4-1-fast
|
||||
else:
|
||||
skip X entirely # No X results
|
||||
```
|
||||
|
||||
### Backend 1: xAI API
|
||||
|
||||
**API Call:**
|
||||
```
|
||||
POST https://api.x.ai/v1/responses
|
||||
Authorization: Bearer {XAI_API_KEY}
|
||||
```
|
||||
|
||||
**Payload:**
|
||||
```json
|
||||
{
|
||||
"model": "grok-4-1-fast",
|
||||
"tools": [{ "type": "x_search" }],
|
||||
"input": "Search X for posts about {topic} from {from_date} to {to_date}..."
|
||||
}
|
||||
```
|
||||
|
||||
The prompt asks grok to return JSON with:
|
||||
- `text`, `url`, `author_handle`, `date`
|
||||
- `engagement`: `{ likes, reposts, replies, quotes }`
|
||||
- `why_relevant`, `relevance` score
|
||||
|
||||
**Engagement data comes from grok's x_search tool** - it has direct access to X's data.
|
||||
|
||||
### Backend 2: Bundled Bird client (free alternative)
|
||||
|
||||
The repo vendors a search-only subset of Bird's Twitter GraphQL client and shells out to it with Node.js. No global `bird` install is required. The Python wrapper passes `AUTH_TOKEN` and `CT0` via env, which keeps normal local runs headless and avoids browser-cookie prompts.
|
||||
|
||||
**Bundled Bird returns raw X API data** - likes, reposts, replies are real engagement metrics from X's API, not estimates.
|
||||
|
||||
| Metric | Bundled Bird | xAI API |
|
||||
|---|---|---|
|
||||
| Post text | Real | Real |
|
||||
| Likes/reposts | Real (X API) | Real (x_search tool) |
|
||||
| Replies/quotes | Real | Real |
|
||||
| Author handle | Real | Real |
|
||||
| Relevance score | Default 0.7 (re-ranked by score.py) | AI-assessed 0.0-1.0 |
|
||||
|
||||
### Depth settings
|
||||
|
||||
| Depth | xAI posts | Bundled Bird results | xAI timeout | Bird timeout |
|
||||
|---|---|---|---|---|
|
||||
| `--quick` | 8-12 | 12 | 90s | 30s |
|
||||
| default | 20-30 | 30 | 120s | 45s |
|
||||
| `--deep` | 40-60 | 60 | 180s | 60s |
|
||||
|
||||
---
|
||||
|
||||
## Post-Processing (both sources)
|
||||
|
||||
After both searches complete:
|
||||
|
||||
1. **Normalize** — consistent formatting, timezone handling
|
||||
2. **Date filter** — hard filter to requested date range
|
||||
3. **Score** — relevance scoring (engagement-weighted)
|
||||
4. **Sort** — highest scores first
|
||||
5. **Deduplicate** — remove duplicate URLs
|
||||
6. **Fallback** — if all items filtered out, keep top 3 by relevance
|
||||
|
||||
---
|
||||
|
||||
## Error Handling
|
||||
|
||||
| Layer | Strategy |
|
||||
|---|---|
|
||||
| HTTP requests | 3 retries with exponential backoff (1s → 2s → 3s) |
|
||||
| Model access errors | Automatic fallback to next model in chain |
|
||||
| Reddit enrichment | Per-item try/catch; keeps unenriched item on failure |
|
||||
| X source detection | Silent fallback from Bird → xAI → skip |
|
||||
| Overall pipeline | Errors stored as `reddit_error`/`x_error`, shown to user |
|
||||
|
||||
---
|
||||
|
||||
## Key Files
|
||||
|
||||
| File | Purpose |
|
||||
|---|---|
|
||||
| `scripts/last30days.py` | Main orchestrator, concurrent execution |
|
||||
| `scripts/lib/openai_reddit.py` | Reddit search via OpenAI Responses API |
|
||||
| `scripts/lib/reddit_enrich.py` | Fetch real engagement data from Reddit JSON API |
|
||||
| `scripts/lib/xai_x.py` | X search via xAI API |
|
||||
| `scripts/lib/bird_x.py` | X search via bundled Bird client (free) |
|
||||
| `scripts/lib/models.py` | Auto-select best available model |
|
||||
| `scripts/lib/env.py` | API key loading, source detection |
|
||||
| `scripts/lib/http.py` | HTTP transport with retries |
|
||||
| `scripts/lib/score.py` | Relevance scoring |
|
||||
| `scripts/lib/dedupe.py` | URL-based deduplication |
|
||||
@@ -0,0 +1,281 @@
|
||||
---
|
||||
title: "feat: Automated v1 vs v2 test harness using claude --print"
|
||||
type: feat
|
||||
date: 2026-02-06
|
||||
---
|
||||
|
||||
# feat: Automated V1 vs V2 Test Harness
|
||||
|
||||
## Overview
|
||||
|
||||
Build a bash script that swaps SKILL.md between v1 (upstream) and v2 (current), runs `claude --print "/last30days [query]"` for all 17 test queries on each version, captures output to files, then generates a comparison doc with analysis.
|
||||
|
||||
## How It Works
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ test-v1-vs-v2.sh │
|
||||
│ │
|
||||
│ 1. Save current SKILL.md as .v2 backup │
|
||||
│ 2. Install v1 SKILL.md from upstream │
|
||||
│ 3. Loop 17 queries → claude --print → v1/*.txt │
|
||||
│ 4. Restore v2 SKILL.md │
|
||||
│ 5. Loop 17 queries → claude --print → v2/*.txt │
|
||||
│ 6. Generate comparison doc │
|
||||
└─────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
Each `claude --print` call:
|
||||
- Invokes the /last30days skill exactly as a user would
|
||||
- Runs the Python script (real API calls to OpenAI + xAI)
|
||||
- Runs WebSearch
|
||||
- Applies SKILL.md presentation instructions
|
||||
- Returns the full formatted output
|
||||
- Exits (no interactive session)
|
||||
|
||||
## Implementation
|
||||
|
||||
### File: `scripts/test-v1-vs-v2.sh`
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# === Config ===
|
||||
SKILL_DIR="$HOME/.claude/skills/last30days"
|
||||
REPO_DIR="/Users/mvanhorn/last30days-skill-private"
|
||||
OUT_DIR="$REPO_DIR/docs/test-results/v1-vs-v2-$(date +%Y%m%d-%H%M%S)"
|
||||
V1_DIR="$OUT_DIR/v1"
|
||||
V2_DIR="$OUT_DIR/v2"
|
||||
|
||||
mkdir -p "$V1_DIR" "$V2_DIR"
|
||||
|
||||
# All 17 test queries (from README + plans)
|
||||
declare -a QUERIES=(
|
||||
"prompting techniques for chatgpt for legal questions"
|
||||
"best clawdbot use cases"
|
||||
"how to best setup clawdbot"
|
||||
"prompting tips for nano banana pro for ios designs"
|
||||
"top claude code skills"
|
||||
"using ChatGPT to make images of dogs"
|
||||
"research best practices for beautiful remotion animation videos in claude code"
|
||||
"photorealistic people in nano banana pro"
|
||||
"What are the best rap songs lately"
|
||||
"what are people saying about DeepSeek R1"
|
||||
"best practices for cursor rules files for Cursor"
|
||||
"prompt advice for using suno to make killer songs in simple mode"
|
||||
"how do I use Codex with Claude Code on same app to make it better"
|
||||
"kanye west"
|
||||
"howie.ai"
|
||||
"open claw"
|
||||
"nano banana pro prompting"
|
||||
)
|
||||
|
||||
declare -a TYPES=(
|
||||
"PROMPTING+TOOL"
|
||||
"RECOMMENDATIONS"
|
||||
"HOW-TO"
|
||||
"PROMPTING+TOOL"
|
||||
"RECOMMENDATIONS"
|
||||
"GENERAL"
|
||||
"PROMPTING"
|
||||
"PROMPTING"
|
||||
"RECOMMENDATIONS"
|
||||
"NEWS"
|
||||
"PROMPTING"
|
||||
"PROMPTING"
|
||||
"HOW-TO"
|
||||
"NEWS"
|
||||
"GENERAL"
|
||||
"GENERAL"
|
||||
"PROMPTING"
|
||||
)
|
||||
|
||||
slugify() {
|
||||
echo "$1" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | head -c 60
|
||||
}
|
||||
|
||||
run_version() {
|
||||
local version="$1"
|
||||
local outdir="$2"
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " Running $version — ${#QUERIES[@]} queries"
|
||||
echo "=========================================="
|
||||
|
||||
for i in "${!QUERIES[@]}"; do
|
||||
local query="${QUERIES[$i]}"
|
||||
local type="${TYPES[$i]}"
|
||||
local slug=$(slugify "$query")
|
||||
local num=$((i + 1))
|
||||
local outfile="$outdir/${num}-${slug}.txt"
|
||||
|
||||
echo ""
|
||||
echo "[$version] ($num/${#QUERIES[@]}) $query [$type]"
|
||||
echo " → $outfile"
|
||||
|
||||
# Run claude --print with the skill invocation
|
||||
# --no-session-persistence: don't save to session history
|
||||
# Timeout after 5 minutes per query (generous for slow API calls)
|
||||
if timeout 300 claude --print \
|
||||
"/last30days $query" \
|
||||
> "$outfile" 2>"$outdir/${num}-${slug}.stderr.txt"; then
|
||||
echo " ✅ Done ($(wc -l < "$outfile") lines)"
|
||||
else
|
||||
echo " ❌ Failed or timed out"
|
||||
echo "FAILED: timeout or error" >> "$outfile"
|
||||
fi
|
||||
|
||||
# Brief pause between queries to avoid rate limits
|
||||
sleep 2
|
||||
done
|
||||
}
|
||||
|
||||
# === Phase 1: Test V1 ===
|
||||
echo "📦 Backing up current SKILL.md..."
|
||||
cp "$SKILL_DIR/SKILL.md" "$SKILL_DIR/SKILL.md.v2.bak"
|
||||
|
||||
echo "📥 Installing V1 SKILL.md from upstream..."
|
||||
cd "$REPO_DIR"
|
||||
git show upstream/main:SKILL.md > "$SKILL_DIR/SKILL.md"
|
||||
|
||||
# Also save a copy for reference
|
||||
cp "$SKILL_DIR/SKILL.md" "$OUT_DIR/v1-SKILL.md"
|
||||
|
||||
run_version "V1" "$V1_DIR"
|
||||
|
||||
# === Phase 2: Test V2 ===
|
||||
echo ""
|
||||
echo "📥 Restoring V2 SKILL.md..."
|
||||
cp "$SKILL_DIR/SKILL.md.v2.bak" "$SKILL_DIR/SKILL.md"
|
||||
|
||||
# Also save a copy for reference
|
||||
cp "$SKILL_DIR/SKILL.md" "$OUT_DIR/v2-SKILL.md"
|
||||
|
||||
run_version "V2" "$V2_DIR"
|
||||
|
||||
# === Phase 3: Generate summary ===
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " Generating comparison summary"
|
||||
echo "=========================================="
|
||||
|
||||
SUMMARY="$OUT_DIR/comparison-summary.md"
|
||||
|
||||
cat > "$SUMMARY" << 'HEADER'
|
||||
# V1 vs V2 Comparison Results
|
||||
|
||||
Generated: $(date)
|
||||
|
||||
## Output Files
|
||||
|
||||
| # | Query | Type | V1 Lines | V2 Lines |
|
||||
|---|-------|------|----------|----------|
|
||||
HEADER
|
||||
|
||||
# Replace the date placeholder
|
||||
sed -i '' "s/\$(date)/$(date)/" "$SUMMARY"
|
||||
|
||||
for i in "${!QUERIES[@]}"; do
|
||||
local query="${QUERIES[$i]}"
|
||||
local type="${TYPES[$i]}"
|
||||
local slug=$(slugify "$query")
|
||||
local num=$((i + 1))
|
||||
|
||||
local v1file="$V1_DIR/${num}-${slug}.txt"
|
||||
local v2file="$V2_DIR/${num}-${slug}.txt"
|
||||
|
||||
local v1lines=$(wc -l < "$v1file" 2>/dev/null || echo "0")
|
||||
local v2lines=$(wc -l < "$v2file" 2>/dev/null || echo "0")
|
||||
|
||||
echo "| $num | \`$query\` | $type | $v1lines | $v2lines |" >> "$SUMMARY"
|
||||
done
|
||||
|
||||
cat >> "$SUMMARY" << 'FOOTER'
|
||||
|
||||
## Scorecard Template
|
||||
|
||||
For each query, score both versions on:
|
||||
|
||||
| Dimension | V1 | V2 | Notes |
|
||||
|-----------|----|----|-------|
|
||||
| Query Parsing Display (1-5) | | | |
|
||||
| Source Coverage (1-5) | | | |
|
||||
| Citation Quality (1-5) | | | |
|
||||
| Summary Structure (1-5) | | | |
|
||||
| Stats Box Format (1-5) | | | |
|
||||
| Research Grounding (1-5) | | | |
|
||||
|
||||
## Next Step
|
||||
|
||||
Read each pair of output files and score them using the test plan at:
|
||||
`docs/plans/2026-02-06-test-v1-vs-v2-comparison-plan.md`
|
||||
FOOTER
|
||||
|
||||
echo ""
|
||||
echo "✅ All done!"
|
||||
echo "📁 Results: $OUT_DIR"
|
||||
echo "📊 Summary: $SUMMARY"
|
||||
echo ""
|
||||
echo "V1 outputs: $V1_DIR/"
|
||||
echo "V2 outputs: $V2_DIR/"
|
||||
echo ""
|
||||
echo "To review, run:"
|
||||
echo " open $OUT_DIR"
|
||||
|
||||
# Cleanup backup
|
||||
rm -f "$SKILL_DIR/SKILL.md.v2.bak"
|
||||
```
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] Script runs all 17 queries on v1 SKILL.md
|
||||
- [ ] Script runs all 17 queries on v2 SKILL.md
|
||||
- [ ] Each query output saved to a separate .txt file
|
||||
- [ ] Comparison summary generated with line counts
|
||||
- [ ] SKILL.md restored to v2 after testing
|
||||
- [ ] Both SKILL.md versions saved in output dir for reference
|
||||
- [ ] Script handles timeouts gracefully (5 min per query)
|
||||
- [ ] Brief pause between queries to avoid rate limits
|
||||
|
||||
## Cost Estimate
|
||||
|
||||
- 34 total `claude --print` invocations
|
||||
- Each invocation: ~1 Python script run (OpenAI + xAI API) + 2-3 WebSearches + Claude response
|
||||
- Estimated: ~$0.10-0.30 per invocation for API calls
|
||||
- **Total estimate: $3-10 for the full run**
|
||||
|
||||
## Time Estimate
|
||||
|
||||
- Each query: ~1-3 minutes (script + WebSearch + synthesis)
|
||||
- 17 queries × 2 versions = 34 runs
|
||||
- **Total: ~45-90 minutes** (could run in background)
|
||||
|
||||
## How to Run
|
||||
|
||||
```bash
|
||||
cd /Users/mvanhorn/last30days-skill-private
|
||||
chmod +x scripts/test-v1-vs-v2.sh
|
||||
./scripts/test-v1-vs-v2.sh
|
||||
```
|
||||
|
||||
Or run in background:
|
||||
```bash
|
||||
nohup ./scripts/test-v1-vs-v2.sh > test-run.log 2>&1 &
|
||||
tail -f test-run.log
|
||||
```
|
||||
|
||||
## After the Run
|
||||
|
||||
Once all outputs are captured, Claude can read every file pair and generate the scored comparison doc with analysis — that's the part where I score each dimension 1-5 and write the final report.
|
||||
|
||||
## Files
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `scripts/test-v1-vs-v2.sh` | The test harness script |
|
||||
| `docs/test-results/v1-vs-v2-*/` | Output directory (timestamped) |
|
||||
| `docs/test-results/v1-vs-v2-*/v1/*.txt` | V1 outputs |
|
||||
| `docs/test-results/v1-vs-v2-*/v2/*.txt` | V2 outputs |
|
||||
| `docs/test-results/v1-vs-v2-*/comparison-summary.md` | Auto-generated summary |
|
||||
@@ -0,0 +1,352 @@
|
||||
---
|
||||
title: "feat: Free Reddit via MCP — Remove OpenAI Key Requirement"
|
||||
type: feat
|
||||
date: 2026-02-06
|
||||
---
|
||||
|
||||
# feat: Free Reddit via MCP — Remove OpenAI Key Requirement
|
||||
|
||||
## Overview
|
||||
|
||||
Replace the OpenAI Responses API (paid) for Reddit searching with a **free, zero-config Reddit MCP server**, eliminating the need for an `OPENAI_API_KEY` to get Reddit results in the last30days skill. This work happens in a **new forked repo** to keep the current release branch clean.
|
||||
|
||||
## Problem Statement
|
||||
|
||||
Today, the last30days skill requires an OpenAI API key (`OPENAI_API_KEY`) to search Reddit. This is the most expensive dependency in the stack — OpenAI charges per-call for the Responses API with web search. Users without an OpenAI key get zero Reddit results and fall back to WebSearch-only mode, which loses the engagement metrics (upvotes, comments) that make last30days uniquely valuable.
|
||||
|
||||
**Goal:** Make Reddit search completely free with no API key registration required.
|
||||
|
||||
## Research Findings
|
||||
|
||||
### Option Analysis
|
||||
|
||||
Five approaches were evaluated. Two stand out:
|
||||
|
||||
| Option | Free? | Search? | Engagement? | Setup | Notes |
|
||||
|--------|-------|---------|-------------|-------|-------|
|
||||
| **reddit-mcp-buddy** (Node.js) | Yes (anonymous mode) | Yes | Yes | One CLI command | 371 stars, 3-tier auth, most popular |
|
||||
| **mcp-server-reddit** (Python) | Yes (redditwarp) | **No** | Yes | pip install | Recommended by ClaudeLog, but browse-only |
|
||||
| **.json URL trick** (curl) | Yes | Yes | Yes | Zero | ~10 req/min, no dependencies |
|
||||
| Reddit OAuth (PRAW) | Free but needs registration | Yes | Yes | App registration | 100 req/min, most reliable |
|
||||
| RSS feeds | Yes | Basic | **No** | Zero | Least useful, no metrics |
|
||||
|
||||
### Top Contender: reddit-mcp-buddy
|
||||
|
||||
**GitHub:** [karanb192/reddit-mcp-buddy](https://github.com/karanb192/reddit-mcp-buddy)
|
||||
- 371 stars, actively maintained (last update: Jan 29, 2026)
|
||||
- **Anonymous mode** — zero credentials, ~10 req/min
|
||||
- **MCP tools:** `search_reddit`, `browse_subreddit`, `get_post_details`, `user_analysis`, `reddit_explain`
|
||||
- **Install:** `claude mcp add --transport stdio reddit-mcp-buddy -s user -- npx -y reddit-mcp-buddy`
|
||||
- Returns full engagement metrics (score, num_comments, upvote_ratio)
|
||||
- TypeScript/Node.js (npx, no Python dependency)
|
||||
|
||||
### Strong Alternative: .json URL trick
|
||||
|
||||
- Append `.json` to any Reddit URL → full JSON response
|
||||
- Search: `https://www.reddit.com/search.json?q=TOPIC&sort=relevance&t=month&limit=100`
|
||||
- Zero dependencies, zero auth, zero setup
|
||||
- Returns same data as official API (score, num_comments, created_utc, upvote_ratio)
|
||||
- ~10 req/min rate limit (sufficient for skill use)
|
||||
- Can be called via `curl` or Python `urllib`
|
||||
|
||||
### Also Considered
|
||||
|
||||
- **Hawstein/mcp-server-reddit** (134 stars, Python, no auth) — **No search tool**, only browse subreddits. Cannot replace OpenAI's keyword search capability.
|
||||
- **Arindam200/reddit-mcp** (262 stars, PRAW) — Has search but **requires Reddit OAuth credentials**. Not truly zero-config.
|
||||
- **adhikasp/mcp-reddit** (348 stars) — Hot threads only, no search. Last updated Dec 2024.
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
### Approach A: MCP-First with .json Fallback (Recommended)
|
||||
|
||||
Add a new module `mcp_reddit.py` that:
|
||||
|
||||
1. **Detects** if a Reddit MCP server is configured in the user's Claude Code session
|
||||
2. **If MCP available:** Calls MCP `search_reddit` tool via the skill's `allowed-tools` (the skill already allows tools — MCP tools become available when configured)
|
||||
3. **If no MCP:** Falls back to Reddit's `.json` URL endpoints via `urllib` (stdlib, no dependencies)
|
||||
4. **Normalize** MCP/JSON results to the existing `RedditItem` schema
|
||||
5. **Enrich** with `reddit_enrich.py` (already works — fetches real thread data)
|
||||
|
||||
This gives users three tiers of Reddit access:
|
||||
- **Tier 1 (best):** Reddit MCP installed → full search + engagement via MCP tools
|
||||
- **Tier 2 (good):** No MCP, no keys → `.json` URL search + enrichment
|
||||
- **Tier 3 (existing):** OpenAI key present → existing `openai_reddit.py` still works (backward compat)
|
||||
|
||||
### Approach B: .json-Only (Simpler)
|
||||
|
||||
Skip MCP entirely. Add a `reddit_json.py` module that uses `https://www.reddit.com/search.json` directly. Simpler but misses the MCP ecosystem integration.
|
||||
|
||||
### Approach C: MCP-Only (Cleaner)
|
||||
|
||||
Require MCP setup. Simpler code but adds a user setup step (`claude mcp add ...`).
|
||||
|
||||
**Recommendation: Approach A** — MCP-first with .json fallback gives zero-config Reddit search for everyone while rewarding users who set up MCP with a better experience.
|
||||
|
||||
## Technical Approach
|
||||
|
||||
### Architecture
|
||||
|
||||
```
|
||||
User invokes /last30days "topic"
|
||||
│
|
||||
├─ env.py detects sources:
|
||||
│ ├─ MCP reddit available? → mcp_reddit.py
|
||||
│ ├─ No MCP, no key? → reddit_json.py (.json URL trick)
|
||||
│ └─ OPENAI_API_KEY set? → openai_reddit.py (existing, backward compat)
|
||||
│
|
||||
├─ X search (Bird CLI / xAI — unchanged)
|
||||
│
|
||||
└─ Normalize → Score → Dedupe → Render (unchanged)
|
||||
```
|
||||
|
||||
### New Files
|
||||
|
||||
#### `scripts/lib/reddit_json.py`
|
||||
- Uses `urllib.request` (stdlib) to call Reddit's `.json` search endpoint
|
||||
- URL: `https://www.reddit.com/search.json?q={topic}&sort=relevance&t=month&limit=100`
|
||||
- Custom `User-Agent` header (required by Reddit)
|
||||
- Parses response into the same format as `openai_reddit.py` output
|
||||
- Handles pagination via `after` token if depth=deep (multiple requests)
|
||||
- Rate limiting: 1 second delay between requests
|
||||
|
||||
#### `scripts/lib/mcp_reddit.py`
|
||||
- Detects MCP availability (check if Reddit MCP tools exist in session)
|
||||
- Formats MCP tool calls for `search_reddit` with topic + date filters
|
||||
- Normalizes MCP response to match existing `RedditItem` schema
|
||||
- Falls back to `reddit_json.py` if MCP unavailable
|
||||
|
||||
#### Modified Files
|
||||
|
||||
- **`scripts/lib/env.py`** — Add Reddit source detection: MCP → .json → OpenAI
|
||||
- **`scripts/last30days.py`** — Route Reddit search through new priority chain
|
||||
- **`scripts/lib/normalize.py`** — Add normalizer for `.json` endpoint response format
|
||||
- **`SKILL.md`** — Document MCP setup as optional enhancement
|
||||
|
||||
### MCP Integration Design
|
||||
|
||||
The MCP approach has a subtle challenge: the last30days skill runs as a **Python subprocess** (`python3 last30days.py`), but MCP tools are available to **Claude's session**, not to subprocesses.
|
||||
|
||||
**Two paths to solve this:**
|
||||
|
||||
**Path 1: SKILL.md orchestration** — The SKILL.md workflow calls the MCP `search_reddit` tool directly (before or in parallel with the Python script), saves the MCP response to a temp file, and the Python script reads it:
|
||||
|
||||
```
|
||||
SKILL.md workflow:
|
||||
1. Call MCP search_reddit → save to /tmp/last30days_mcp_reddit.json
|
||||
2. Call python3 last30days.py --reddit-from=/tmp/last30days_mcp_reddit.json --emit=compact
|
||||
3. Python script reads pre-fetched Reddit data instead of calling OpenAI
|
||||
```
|
||||
|
||||
**Path 2: .json only for subprocess** — The Python script uses `.json` URLs directly (no MCP needed in subprocess). MCP is a bonus for users who want Claude to also browse specific threads interactively.
|
||||
|
||||
**Recommendation: Path 2 for MVP, Path 1 as enhancement.** The `.json` approach is self-contained, testable, and doesn't require SKILL.md workflow changes. MCP can be layered on later.
|
||||
|
||||
### Source Priority Chain (updated env.py)
|
||||
|
||||
```python
|
||||
def get_reddit_source(config: dict) -> str:
|
||||
"""Returns: 'mcp', 'json', 'openai', or 'none'"""
|
||||
# 1. Check for pre-fetched MCP data (from SKILL.md)
|
||||
if os.path.exists(MCP_REDDIT_CACHE_PATH):
|
||||
return 'mcp'
|
||||
# 2. Always available — no key needed
|
||||
# (reddit .json endpoints are free)
|
||||
return 'json'
|
||||
# 3. OpenAI key present → legacy path
|
||||
# if config.get('OPENAI_API_KEY'):
|
||||
# return 'openai'
|
||||
```
|
||||
|
||||
For MVP, the `.json` path is **always available** so it becomes the default. OpenAI path remains as opt-in for users who want higher rate limits.
|
||||
|
||||
### Data Mapping: .json → RedditItem
|
||||
|
||||
Reddit `.json` search returns `data.children[].data` with:
|
||||
|
||||
```json
|
||||
{
|
||||
"title": "Post title",
|
||||
"permalink": "/r/subreddit/comments/abc123/...",
|
||||
"subreddit": "ClaudeAI",
|
||||
"score": 42,
|
||||
"num_comments": 15,
|
||||
"upvote_ratio": 0.95,
|
||||
"created_utc": 1738800000,
|
||||
"selftext": "Post body...",
|
||||
"url": "https://...",
|
||||
"author": "username"
|
||||
}
|
||||
```
|
||||
|
||||
Maps cleanly to existing `RedditItem`:
|
||||
|
||||
| .json field | RedditItem field | Notes |
|
||||
|-------------|------------------|-------|
|
||||
| `title` | `title` | Direct |
|
||||
| `permalink` | `url` | Prepend `https://www.reddit.com` |
|
||||
| `subreddit` | `subreddit` | Direct |
|
||||
| `score` | `engagement.score` | Direct |
|
||||
| `num_comments` | `engagement.num_comments` | Direct |
|
||||
| `upvote_ratio` | `engagement.upvote_ratio` | Direct |
|
||||
| `created_utc` | `date` | Convert epoch → YYYY-MM-DD |
|
||||
| `selftext` | (used for relevance) | AI relevance scoring needed |
|
||||
| `author` | (not in current schema) | Ignore for now |
|
||||
|
||||
### Relevance Scoring Without AI
|
||||
|
||||
The current `openai_reddit.py` gets relevance scores **from OpenAI** (the AI judges how relevant each result is). With `.json` endpoints, we lose that AI relevance judgment.
|
||||
|
||||
**Options:**
|
||||
1. **Keyword matching** — Score based on how many query terms appear in title + selftext. Simple but effective.
|
||||
2. **TF-IDF-like** — Weight rarer query terms higher. More accurate but more code.
|
||||
3. **Let Claude judge** — Pass results to Claude in SKILL.md and have Claude score relevance. Most accurate but changes the workflow.
|
||||
4. **Skip relevance, rely on Reddit's sort** — Reddit's `sort=relevance` already ranks by relevance. Trust it and use position-based scoring (first result = 1.0, last = 0.5).
|
||||
|
||||
**Recommendation: Option 4 for MVP.** Reddit's search relevance ranking is already good. Use position-based relevance (1.0 → 0.5 linear decay over result set) combined with the existing engagement-based scoring. This requires zero external dependencies and no AI calls.
|
||||
|
||||
## Implementation Phases
|
||||
|
||||
### Phase 0: Fork Repository
|
||||
|
||||
- [ ] Create new repo `last30days-free-reddit` (or branch in private repo)
|
||||
- [ ] `git clone /Users/mvanhorn/last30days-skill-private /Users/mvanhorn/last30days-free-reddit`
|
||||
- [ ] Create feature branch: `feat/free-reddit`
|
||||
- [ ] Verify all existing tests pass on the new branch
|
||||
|
||||
### Phase 1: reddit_json.py — Core .json Search
|
||||
|
||||
- [ ] Create `scripts/lib/reddit_json.py`
|
||||
- `search_reddit_json(topic: str, depth: str, date_from: str, date_to: str) -> list[dict]`
|
||||
- Build search URL with `q`, `sort=relevance`, `t=month`, `limit` (25/50/100 by depth)
|
||||
- Custom `User-Agent: last30days-skill/2.0 (by /u/last30days-bot)`
|
||||
- Parse `data.children[].data` → list of raw dicts
|
||||
- Handle pagination for deep mode (follow `after` token, max 3 pages)
|
||||
- Rate limit: `time.sleep(1.0)` between requests
|
||||
- Error handling: 429 (rate limit), 403 (blocked), network errors → return empty + error msg
|
||||
- [ ] Create `tests/test_reddit_json.py`
|
||||
- Mock HTTP responses using fixture files
|
||||
- Test: basic search parsing, pagination, rate limit handling, error cases
|
||||
- [ ] Create `fixtures/reddit_json_search_sample.json`
|
||||
- Real `.json` search response (sanitized)
|
||||
|
||||
### Phase 2: Normalize + Score .json Results
|
||||
|
||||
- [ ] Add `normalize_reddit_json()` to `scripts/lib/normalize.py`
|
||||
- Convert `.json` response format → `RedditItem` schema
|
||||
- `created_utc` (epoch) → `YYYY-MM-DD` string
|
||||
- `permalink` → full URL
|
||||
- Position-based relevance: `1.0 - (index / total * 0.5)` → range [1.0, 0.5]
|
||||
- Date confidence: `"high"` (Reddit provides exact timestamps)
|
||||
- [ ] Update `scripts/lib/score.py` if needed
|
||||
- `.json` results already have real engagement metrics — existing scoring formula works as-is
|
||||
- No penalty needed (unlike WebSearch which lacks engagement)
|
||||
- [ ] Add tests for normalization + scoring of `.json` data
|
||||
|
||||
### Phase 3: Integration into Orchestrator
|
||||
|
||||
- [ ] Update `scripts/lib/env.py`
|
||||
- Add `get_reddit_source(config) -> str` returning `'json'`, `'openai'`, or `'none'`
|
||||
- Priority: `.json` always available (default), `'openai'` if key present and user prefers
|
||||
- Add `REDDIT_SOURCE` config option: `auto` (default), `json`, `openai`
|
||||
- Update `get_available_sources()` to always include Reddit (since `.json` is free)
|
||||
- Update `get_missing_keys()` — Reddit no longer shows as "missing"
|
||||
- [ ] Update `scripts/last30days.py`
|
||||
- Add `_search_reddit_json()` function alongside existing `_search_reddit()`
|
||||
- Route based on `get_reddit_source()`: json → `_search_reddit_json()`, openai → `_search_reddit()`
|
||||
- Skip `reddit_enrich.py` for `.json` results (already have real engagement metrics!)
|
||||
- Update progress/stats output to show source: "Reddit (free)" vs "Reddit (OpenAI)"
|
||||
- [ ] Update SKILL.md promo messaging
|
||||
- Remove "Add OPENAI_API_KEY for Reddit" messaging
|
||||
- Instead: "Reddit search included free! Add OpenAI key for AI-enhanced relevance scoring."
|
||||
- [ ] Integration tests: full pipeline with `.json` mock data
|
||||
|
||||
### Phase 4: Testing & Polish
|
||||
|
||||
- [ ] Run all existing tests — ensure backward compatibility
|
||||
- [ ] Manual test: invoke `/last30days` with NO API keys → should get Reddit + WebSearch results
|
||||
- [ ] Manual test: invoke with OPENAI_API_KEY → should still use OpenAI path (backward compat)
|
||||
- [ ] Manual test: compare result quality — `.json` vs OpenAI for same topic
|
||||
- [ ] Update README.md — document free Reddit access
|
||||
- [ ] Update SPEC.md — document new source priority chain
|
||||
|
||||
### Phase 5 (Future): MCP Enhancement Layer
|
||||
|
||||
- [ ] Detect Reddit MCP in Claude's session
|
||||
- [ ] SKILL.md pre-fetches via MCP `search_reddit` → saves to temp file
|
||||
- [ ] Python script reads pre-fetched MCP data via `--reddit-from=` flag
|
||||
- [ ] MCP results get AI-judged relevance (since Claude sees them)
|
||||
- [ ] Better than `.json` position-based relevance
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
### Functional
|
||||
- [ ] `/last30days "any topic"` returns Reddit results with **zero API keys configured**
|
||||
- [ ] Reddit results include real engagement metrics (score, comments, upvote_ratio)
|
||||
- [ ] Results are properly scored, deduped, and rendered (same quality as OpenAI path)
|
||||
- [ ] Existing OpenAI path still works when key is present
|
||||
- [ ] Existing X search (Bird CLI / xAI) is unchanged
|
||||
- [ ] Stats box shows correct source indicator ("Reddit (free)" or "Reddit (OpenAI)")
|
||||
|
||||
### Non-Functional
|
||||
- [ ] No external Python packages (stdlib only — `urllib.request`, `json`, `time`)
|
||||
- [ ] Respects Reddit rate limits (~10 req/min for unauthenticated)
|
||||
- [ ] Graceful degradation if Reddit blocks requests (429/403 → empty results + error msg)
|
||||
- [ ] All new code has unit tests with fixtures (no live API calls in tests)
|
||||
|
||||
### Quality Gates
|
||||
- [ ] All existing tests pass (zero regressions)
|
||||
- [ ] New tests cover: search parsing, normalization, scoring, error handling, pagination
|
||||
- [ ] Manual smoke test passes with zero API keys
|
||||
|
||||
## Risk Analysis
|
||||
|
||||
| Risk | Likelihood | Impact | Mitigation |
|
||||
|------|-----------|--------|------------|
|
||||
| Reddit blocks `.json` endpoints | Low | High | Fall back to OpenAI path; monitor for 429s |
|
||||
| `.json` rate limit too restrictive | Medium | Medium | 1s delay between requests; cache results |
|
||||
| Relevance quality lower without AI scoring | Medium | Medium | Reddit's `sort=relevance` is decent; can add keyword scoring later |
|
||||
| Reddit changes `.json` response format | Low | Medium | Schema validation in normalize; fixture-based tests catch changes |
|
||||
| Node.js MCP server dependency conflicts | N/A (Phase 5) | Low | MCP is optional enhancement, not required |
|
||||
|
||||
## Dependencies
|
||||
|
||||
- **None** — this feature uses only Python stdlib and Reddit's public `.json` endpoints
|
||||
- Phase 5 (future) would add optional dependency on an MCP server
|
||||
|
||||
## Repository Setup
|
||||
|
||||
```bash
|
||||
# Fork into new working repo
|
||||
cp -r /Users/mvanhorn/last30days-skill-private /Users/mvanhorn/last30days-free-reddit
|
||||
cd /Users/mvanhorn/last30days-free-reddit
|
||||
|
||||
# Create feature branch
|
||||
git checkout -b feat/free-reddit
|
||||
|
||||
# Verify existing tests
|
||||
python3 -m pytest tests/ -v
|
||||
```
|
||||
|
||||
The new repo is disposable — once the feature is validated, changes merge back into `last30days-skill-private` via PR or cherry-pick.
|
||||
|
||||
## References
|
||||
|
||||
### Internal
|
||||
- `scripts/lib/openai_reddit.py` — Current Reddit search (to be replaced/supplemented)
|
||||
- `scripts/lib/env.py:get_available_sources()` — Source detection logic to update
|
||||
- `scripts/lib/normalize.py` — Add `.json` normalizer alongside existing
|
||||
- `scripts/lib/reddit_enrich.py` — May be skippable for `.json` results (already have engagement)
|
||||
- `scripts/lib/schema.py:RedditItem` — Target schema (unchanged)
|
||||
|
||||
### External
|
||||
- [Reddit .json search endpoint](https://www.reddit.com/search.json?q=test&sort=relevance&t=month&limit=25)
|
||||
- [Simon Willison — Scraping Reddit via JSON API](https://til.simonwillison.net/reddit/scraping-reddit-json)
|
||||
- [karanb192/reddit-mcp-buddy](https://github.com/karanb192/reddit-mcp-buddy) — Best MCP option for Phase 5
|
||||
- [Hawstein/mcp-server-reddit](https://github.com/Hawstein/mcp-server-reddit) — ClaudeLog-recommended MCP (no search though)
|
||||
- [Reddit API Rate Limits Guide](https://painonsocial.com/blog/reddit-api-rate-limits-guide)
|
||||
|
||||
### Research Sources
|
||||
- last30days skill output — community recommendations for Reddit search tools
|
||||
- GitHub search — 10+ Reddit MCP repos evaluated
|
||||
- npm/PyPI registries — package availability confirmed
|
||||
- ClaudeLog — [Reddit MCP reference](https://claudelog.com/claude-code-mcps/reddit-mcp/)
|
||||
@@ -0,0 +1,67 @@
|
||||
---
|
||||
title: "release: Push V2 to public repo and launch"
|
||||
type: release
|
||||
date: 2026-02-07
|
||||
---
|
||||
|
||||
# release: Push V2 to public repo and launch
|
||||
|
||||
## Overview
|
||||
|
||||
Push all V2 changes from the private development repo to the public GitHub repo, then sync the installed skill. 52 commits need to go from `origin/main` (private) to `upstream/main` (public).
|
||||
|
||||
## Current State
|
||||
|
||||
- **Private repo:** `https://github.com/mvanhorn/last30days-skill-private` - 52 commits ahead of public
|
||||
- **Public repo:** `https://github.com/mvanhorn/last30days-skill` - last commit is V1 (`cc892d7`)
|
||||
- **Upstream remote:** Already configured in private repo
|
||||
- **Untracked files in private:** test logs, draft plans - these should NOT be pushed
|
||||
|
||||
## Steps
|
||||
|
||||
### Step 1: Clean up private repo
|
||||
|
||||
- [ ] Review untracked files - make sure nothing sensitive gets pushed
|
||||
- [ ] Decide: commit the untracked docs/plans or leave them out of the push
|
||||
|
||||
### Step 2: Push to public
|
||||
|
||||
```bash
|
||||
cd /Users/mvanhorn/last30days-skill-private
|
||||
git push upstream main
|
||||
```
|
||||
|
||||
This pushes all 52 commits from private `main` to public `main`. Since the private repo was forked from public, history is shared - this is a fast-forward push.
|
||||
|
||||
### Step 3: Sync installed skill
|
||||
|
||||
```bash
|
||||
# Update the installed copy that Claude Code actually uses
|
||||
cd ~/.claude/skills/last30days
|
||||
git pull origin main
|
||||
```
|
||||
|
||||
### Step 4: Verify
|
||||
|
||||
- [ ] Check `https://github.com/mvanhorn/last30days-skill` shows V2 README with new examples
|
||||
- [ ] Check SKILL.md has the new argument-hint and timing disclaimer
|
||||
- [ ] Check bird_x.py has the fixed `_extract_core_subject()` and retry logic
|
||||
- [ ] Run a quick `/last30days` test to confirm installed skill works
|
||||
|
||||
## What Gets Published
|
||||
|
||||
Key files going public:
|
||||
- `README.md` - V2 features, 3 new examples (Nano Banana Pro, Kanye, Vibe Motion), speed tradeoff note
|
||||
- `SKILL.md` - New argument-hint, timing disclaimer, citation rules
|
||||
- `scripts/lib/bird_x.py` - Fixed query construction + retry logic
|
||||
- `scripts/lib/http.py` - USER_AGENT bumped to 2.0
|
||||
- `.claude-plugin/plugin.json` - Marketplace support
|
||||
- All Bird CLI integration code
|
||||
- Phase 2 supplemental search code
|
||||
- Model fallback chain
|
||||
|
||||
## Risks
|
||||
|
||||
- **Low risk:** This is a fast-forward push, no force push needed
|
||||
- **Public API keys:** Already confirmed - no `.env` files or secrets in the repo
|
||||
- **Untracked files:** Won't be pushed unless committed first
|
||||
@@ -0,0 +1,194 @@
|
||||
---
|
||||
title: ClawHub Scanner Compliance for last30days-official
|
||||
type: feat
|
||||
date: 2026-02-15
|
||||
---
|
||||
|
||||
# ClawHub Scanner Compliance for last30days-official
|
||||
|
||||
## Overview
|
||||
|
||||
Make the last30days skill pass ClawHub's security scanner (VirusTotal + Code Insight) so it can be published as `last30days-official`. The user's 8 other mvanhorn skills already pass - we replicate their exact pattern.
|
||||
|
||||
## Problem Statement
|
||||
|
||||
ClawHub requires skills to pass a multi-layer security scan before publication:
|
||||
1. Metadata validation (frontmatter fields)
|
||||
2. VirusTotal automated scanning
|
||||
3. LLM-powered Code Insight analysis (checks if capabilities match documentation)
|
||||
4. Credential handling review
|
||||
|
||||
The current last30days SKILL.md has basic `metadata.clawdbot` but is missing fields the scanner checks: `emoji`, `user-invocable`, `disable-model-invocation`, `files` declaration. There's no `## Security & Permissions` section (required pattern from passing skills). README has no security/privacy documentation.
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
Follow the exact pattern from `clawdbot-skill-xai` and `clawdbot-skill-search-x` (both pass the scanner). Three files need changes.
|
||||
|
||||
### Fix 1: SKILL.md Frontmatter
|
||||
|
||||
Add missing scanner fields to the existing frontmatter:
|
||||
|
||||
```yaml
|
||||
---
|
||||
name: last30days
|
||||
version: "2.1"
|
||||
description: "Research a topic from the last 30 days. Also triggered by 'last30'. Sources: Reddit, X, YouTube, web."
|
||||
argument-hint: 'last30 AI video tools, last30 best project management tools'
|
||||
allowed-tools: Bash, Read, Write, AskUserQuestion, WebSearch
|
||||
homepage: https://github.com/mvanhorn/last30days-skill
|
||||
user-invocable: true
|
||||
disable-model-invocation: true
|
||||
metadata:
|
||||
clawdbot:
|
||||
emoji: "📰"
|
||||
requires:
|
||||
env:
|
||||
- OPENAI_API_KEY
|
||||
bins:
|
||||
- node
|
||||
- python3
|
||||
primaryEnv: OPENAI_API_KEY
|
||||
files:
|
||||
- "scripts/*"
|
||||
homepage: https://github.com/mvanhorn/last30days-skill
|
||||
tags:
|
||||
- research
|
||||
- reddit
|
||||
- x
|
||||
- youtube
|
||||
- trends
|
||||
- prompts
|
||||
---
|
||||
```
|
||||
|
||||
Key additions:
|
||||
- `user-invocable: true` - human must trigger it
|
||||
- `disable-model-invocation: true` - agent cannot self-trigger
|
||||
- `emoji: "📰"` - required display field
|
||||
- `files: ["scripts/*"]` - prevents false "instruction-only but has scripts" flag
|
||||
|
||||
### Fix 2: Security & Permissions Section in SKILL.md
|
||||
|
||||
Add to the bottom of SKILL.md (matches xai/search-x pattern exactly):
|
||||
|
||||
```markdown
|
||||
## Security & Permissions
|
||||
|
||||
**What this skill does:**
|
||||
- Sends search queries to OpenAI's Responses API (`api.openai.com`) for Reddit discovery
|
||||
- Sends search queries to Twitter's GraphQL API (via browser cookie auth) or xAI's API (`api.x.ai`) for X search
|
||||
- Runs `yt-dlp` locally for YouTube search and transcript extraction (no API key, public data)
|
||||
- Optionally sends search queries to Brave Search API, Parallel AI API, or OpenRouter API for web search
|
||||
- Fetches public Reddit thread data from `reddit.com` for engagement metrics
|
||||
- Stores research findings in local SQLite database (watchlist mode only)
|
||||
|
||||
**What this skill does NOT do:**
|
||||
- Does not post, like, or modify content on any platform
|
||||
- Does not access your Reddit, X, or YouTube accounts
|
||||
- Does not share API keys between providers (OpenAI key only goes to api.openai.com, etc.)
|
||||
- Does not log, cache, or write API keys to output files
|
||||
- Does not send data to any endpoint not listed above
|
||||
- Cannot be invoked autonomously by the agent (`disable-model-invocation: true`)
|
||||
|
||||
**Bundled scripts:** `scripts/last30days.py` (main research engine), `scripts/lib/` (search, enrichment, rendering modules), `scripts/lib/vendor/bird-search/` (vendored X search client, MIT licensed)
|
||||
|
||||
Review scripts before first use to verify behavior.
|
||||
```
|
||||
|
||||
### Fix 3: Security & Privacy Section in README.md
|
||||
|
||||
Add after the "How It Works" section:
|
||||
|
||||
```markdown
|
||||
## Security & Privacy
|
||||
|
||||
### Data that leaves your machine
|
||||
|
||||
| Destination | Data Sent | API Key Required |
|
||||
|------------|-----------|-----------------|
|
||||
| `api.openai.com` | Search query (topic string) | OPENAI_API_KEY |
|
||||
| `reddit.com` | Thread URLs for enrichment | None (public JSON) |
|
||||
| Twitter GraphQL / `api.x.ai` | Search query | Browser cookies or XAI_API_KEY |
|
||||
| `youtube.com` (via yt-dlp) | Search query | None (public search) |
|
||||
| `api.search.brave.com` | Search query (optional) | BRAVE_API_KEY |
|
||||
| `api.parallel.ai` | Search query (optional) | PARALLEL_API_KEY |
|
||||
| `openrouter.ai` | Search query (optional) | OPENROUTER_API_KEY |
|
||||
|
||||
Your research topic is included in all outbound API requests. If you research sensitive topics, be aware that query strings are transmitted to the API providers listed above.
|
||||
|
||||
### Data stored locally
|
||||
|
||||
- API keys: `~/.config/last30days/.env` (chmod 600 recommended)
|
||||
- Watchlist database: `~/.local/share/last30days/research.db` (SQLite)
|
||||
- Briefings: `~/.local/share/last30days/briefs/`
|
||||
|
||||
### API key isolation
|
||||
|
||||
Each API key is transmitted only to its respective endpoint. Your OpenAI key is never sent to xAI, Brave, or any other provider. Browser cookies for X are read locally and used only for Twitter GraphQL requests.
|
||||
```
|
||||
|
||||
### Fix 4: Update .claude-plugin Files
|
||||
|
||||
**plugin.json** - bump version, add youtube keyword:
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "last30days",
|
||||
"description": "Research any topic from the last 30 days across Reddit, X, YouTube, and the web",
|
||||
"version": "2.1.0",
|
||||
"author": {"name": "mvanhorn"},
|
||||
"repository": "https://github.com/mvanhorn/last30days-skill",
|
||||
"license": "MIT",
|
||||
"keywords": ["research", "reddit", "twitter", "x", "youtube", "trends", "prompts"],
|
||||
"skills": ["./"]
|
||||
}
|
||||
```
|
||||
|
||||
**marketplace.json** - add version, update description:
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "last30days",
|
||||
"owner": {"name": "mvanhorn", "url": "https://github.com/mvanhorn"},
|
||||
"metadata": {
|
||||
"description": "Research any topic from the last 30 days across Reddit, X, YouTube, and the web",
|
||||
"version": "2.1.0"
|
||||
},
|
||||
"plugins": [{"name": "last30days", "source": "."}]
|
||||
}
|
||||
```
|
||||
|
||||
## What We DON'T Need
|
||||
|
||||
Based on the audit of your 8 passing skills:
|
||||
- **Script-level security manifest headers** - your passing skills (xai, search-x, parallel) do NOT have these. The scanner relies on SKILL.md, not per-file headers.
|
||||
- **Separate SECURITY.md file** - not needed; README section + SKILL.md section is sufficient.
|
||||
- **Shell injection fixes** - already clean. All subprocess calls use list-form args, no `shell=True` anywhere.
|
||||
- **Credential leak fixes** - already clean. All keys loaded from env vars, none hardcoded or logged.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] SKILL.md frontmatter has `user-invocable`, `disable-model-invocation`, `emoji`, `files`
|
||||
- [x] SKILL.md has `## Security & Permissions` section with "does" and "does NOT do" lists
|
||||
- [x] README.md has `## Security & Privacy` section with endpoint table and key isolation docs
|
||||
- [x] plugin.json version bumped to 2.1.0, youtube keyword added
|
||||
- [x] marketplace.json version and description updated
|
||||
- [x] `python3 scripts/last30days.py --diagnose` still works after changes
|
||||
- [x] Synced to all installed skill locations
|
||||
- [ ] Published to ClawHub as `last30days-official` (when auth is fixed)
|
||||
|
||||
## Files to Modify
|
||||
|
||||
| File | Change |
|
||||
|------|--------|
|
||||
| `SKILL.md` | Add frontmatter fields + Security & Permissions section |
|
||||
| `README.md` | Add Security & Privacy section |
|
||||
| `.claude-plugin/plugin.json` | Bump version, add youtube keyword |
|
||||
| `.claude-plugin/marketplace.json` | Add version, update description |
|
||||
|
||||
## References
|
||||
|
||||
- [13-point ClawHub checklist](https://gist.github.com/adhishthite/0db995ecfe2f23e09d0b2d418491982c)
|
||||
- [ClawHub docs](https://docs.openclaw.ai/tools/clawhub)
|
||||
- [ClawHub Developer Guide 2026](https://www.digitalapplied.com/blog/clawhub-skills-marketplace-developer-guide-2026)
|
||||
- Your passing skills: `clawdbot-skill-xai`, `clawdbot-skill-search-x` (exact pattern replicated)
|
||||
@@ -0,0 +1,76 @@
|
||||
---
|
||||
title: "fix: watchlist engagement null crash"
|
||||
type: fix
|
||||
date: 2026-02-15
|
||||
---
|
||||
|
||||
# fix: Watchlist crashes on `engagement: null` from X posts
|
||||
|
||||
## Problem
|
||||
|
||||
When X posts return `engagement: null` (JSON null) instead of `engagement: {}` (empty object), the watchlist `_run_topic` findings parser crashes. This is because Python's `dict.get("engagement", {})` returns `None` when the key **exists** with value `None` — the default `{}` only applies when the key is **missing**.
|
||||
|
||||
```python
|
||||
# CRASHES — .get() returns None, not {}
|
||||
item.get("engagement", {}).get("likes", 0)
|
||||
# AttributeError: 'NoneType' object has no attribute 'get'
|
||||
```
|
||||
|
||||
**Reporter:** Soft launch tester, 2026-02-15
|
||||
**Severity:** Medium — breaks watchlist `run-one` and `run-all` for any topic that pulls X posts with null engagement
|
||||
**One-shot research unaffected** — the main `last30days.py` pipeline uses `normalize.py` which has `isinstance(eng_raw, dict)` guards
|
||||
|
||||
## Root Cause
|
||||
|
||||
Two locations use the vulnerable `dict.get("key", {})` pattern:
|
||||
|
||||
1. **`scripts/watchlist.py:188`** — THE REPORTED BUG
|
||||
```python
|
||||
"engagement_score": item.get("engagement", {}).get("likes", 0),
|
||||
```
|
||||
|
||||
2. **`scripts/lib/normalize.py:177`** — YouTube normalizer (same pattern, latent)
|
||||
```python
|
||||
eng_raw = item.get("engagement", {})
|
||||
```
|
||||
|
||||
Three other locations are already safe — they use `isinstance(eng_raw, dict)`:
|
||||
- `scripts/lib/normalize.py:70` (Reddit)
|
||||
- `scripts/lib/normalize.py:130` (X)
|
||||
- `scripts/lib/xai_x.py:190`
|
||||
|
||||
## Fix
|
||||
|
||||
Apply the `or {}` idiom (as suggested by reporter):
|
||||
|
||||
### scripts/watchlist.py:188
|
||||
|
||||
```python
|
||||
# Before
|
||||
"engagement_score": item.get("engagement", {}).get("likes", 0),
|
||||
# After
|
||||
"engagement_score": (item.get("engagement") or {}).get("likes", 0),
|
||||
```
|
||||
|
||||
### scripts/lib/normalize.py:177
|
||||
|
||||
```python
|
||||
# Before
|
||||
eng_raw = item.get("engagement", {})
|
||||
# After
|
||||
eng_raw = item.get("engagement") or {}
|
||||
```
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] `watchlist.py run-one` handles X posts with `engagement: null` without crashing
|
||||
- [ ] `watchlist.py run-one` handles X posts with `engagement: {}` (empty object)
|
||||
- [ ] `watchlist.py run-one` handles X posts with no engagement key at all
|
||||
- [ ] YouTube normalizer handles `engagement: null` without crashing
|
||||
- [ ] Existing tests still pass
|
||||
|
||||
## Regarding the screenshot question
|
||||
|
||||
The tester asked "Did you use watchlist on open claw or Claude?" — watchlist is designed for the **open variant** (Open Claw). It works in Claude Code too since it's just Python + SQLite, but the SKILL.md routing for watchlist commands is only in `variants/open/SKILL.md`. The main `SKILL.md` is one-shot research only.
|
||||
|
||||
Answer to give tester: "Watchlist works in both — it's plain Python. But the skill routing that understands 'watch add topic' is in the open variant. In Claude Code you'd need to call the script directly or use the open variant SKILL.md."
|
||||
@@ -0,0 +1,221 @@
|
||||
---
|
||||
title: Fix YouTube Display and Search Quality
|
||||
type: fix
|
||||
date: 2026-02-15
|
||||
---
|
||||
|
||||
# Fix YouTube Display and Search Quality
|
||||
|
||||
## Overview
|
||||
|
||||
YouTube is the v2.1 headline feature but it's broken in two ways: results don't appear in Claude's synthesis (display bug), and search quality is worse than youtube.com (search bug). Both need fixing before launch.
|
||||
|
||||
## Problem Statement
|
||||
|
||||
**Display bug:** YouTube data exists in the script output but Claude never sees it. Reproduced on 4/5 recent test runs (Kanye, Seedance 2, Peter Steinberger, YouTube thumbnails). The skill worked once — the earlier "YouTube thumbnails" and "OpenClaw" runs showed YouTube stats — but subsequent runs silently dropped it.
|
||||
|
||||
**Search quality bug:** User searched "how to get on seedance 2" on youtube.com and got multiple recent results. yt-dlp returned 10 videos for the same query, but they included old irrelevant content because date filtering is broken.
|
||||
|
||||
## Root Cause Analysis
|
||||
|
||||
### Display Bug — Three compounding causes
|
||||
|
||||
1. **`2>&1` in SKILL.md bash command** (line 79) merges stderr progress messages into stdout. When Claude Code receives this mixed output, the YouTube section (which renders LAST after Reddit + X) can get lost in the noise or hit the 30K char Bash output limit.
|
||||
|
||||
2. **Background execution** (partially fixed). The old SKILL.md said "DO WEBSEARCH WHILE SCRIPT RUNS" which caused Claude to background the bash command. Backgrounded commands return truncated output via Task Output. *Already fixed in this session — SKILL.md now says FOREGROUND with 5-minute timeout.*
|
||||
|
||||
3. **No explicit model instruction to look for YouTube.** The SKILL.md tells Claude to synthesize but doesn't emphasize that YouTube data is in the script output and must be included.
|
||||
|
||||
### Search Quality Bug — `--flat-playlist` breaks date filtering
|
||||
|
||||
The yt-dlp command in `youtube_yt.py:110-116`:
|
||||
```bash
|
||||
yt-dlp ytsearch{count}:{query} --dateafter {YYYYMMDD} --flat-playlist --dump-json
|
||||
```
|
||||
|
||||
**`--flat-playlist` causes three problems:**
|
||||
1. `--dateafter` is silently ignored (no video-level metadata to filter on)
|
||||
2. All items have `date: None` (upload_date not in flat-playlist JSON)
|
||||
3. Old content leaks in (e.g., "the greatest youtube thumbnails of all time" returned for a 30-day query)
|
||||
|
||||
**`_extract_core_subject()` over-strips useful YouTube terms:**
|
||||
- Strips "tips", "tutorial", "review" — but these ARE the content types people search for on YouTube
|
||||
- "youtube thumbnail tips" → "youtube thumbnail" loses the intent signal
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
### Phase 1: Fix Display (Critical — blocks launch)
|
||||
|
||||
#### 1a. Remove `2>&1` from SKILL.md bash command
|
||||
|
||||
**File:** `SKILL.md:79` (both `last30days-skill-private/SKILL.md` and `~/.claude/skills/last30days21/SKILL.md`)
|
||||
|
||||
```bash
|
||||
# Before:
|
||||
python3 "${SKILL_ROOT}/scripts/last30days.py" "$ARGUMENTS" --emit=compact 2>&1
|
||||
|
||||
# After:
|
||||
python3 "${SKILL_ROOT}/scripts/last30days.py" "$ARGUMENTS" --emit=compact
|
||||
```
|
||||
|
||||
This removes ~1-5KB of progress spam from the model's input and ensures clean stdout-only output.
|
||||
|
||||
#### 1b. Add YouTube-specific synthesis instruction to SKILL.md
|
||||
|
||||
After the "Read the ENTIRE output" instruction, add:
|
||||
|
||||
```markdown
|
||||
**The script output has THREE sections: Reddit items, X items, and YouTube items (in that order).
|
||||
If you see YouTube items in the output, you MUST include them in your synthesis and stats block.
|
||||
YouTube items look like: `**{video_id}** (score:N) {channel} [N views, N likes]`**
|
||||
```
|
||||
|
||||
#### 1c. Verify fix with test run
|
||||
|
||||
Run `/last30days21 youtube thumbnail tips` and confirm YouTube appears in stats.
|
||||
|
||||
### Phase 2: Fix Search Quality (High — headline feature quality)
|
||||
|
||||
#### 2a. Remove `--flat-playlist` flag
|
||||
|
||||
**File:** `scripts/lib/youtube_yt.py:110-116`
|
||||
|
||||
```python
|
||||
# Before:
|
||||
cmd = [
|
||||
"yt-dlp",
|
||||
f"ytsearch{count}:{core_topic}",
|
||||
"--dateafter", date_filter,
|
||||
"--flat-playlist",
|
||||
"--dump-json",
|
||||
]
|
||||
|
||||
# After:
|
||||
cmd = [
|
||||
"yt-dlp",
|
||||
f"ytsearch{count}:{core_topic}",
|
||||
"--dateafter", date_filter,
|
||||
"--dump-json",
|
||||
"--no-warnings",
|
||||
"--no-download",
|
||||
]
|
||||
```
|
||||
|
||||
**Impact:** Slower (yt-dlp resolves each video page for metadata) but:
|
||||
- `--dateafter` actually works — filters old content
|
||||
- `upload_date` populated — items get real dates
|
||||
- Engagement metrics more accurate
|
||||
|
||||
**Risk:** Could increase search time from ~5s to ~30-60s for 20 videos. Mitigate by reducing default count or increasing timeout.
|
||||
|
||||
**Alternative if too slow:** Keep `--flat-playlist` but append year to search query:
|
||||
```python
|
||||
# Bias toward recent content since --dateafter doesn't work with flat-playlist
|
||||
search_query = f"{core_topic} {from_date[:4]}" # e.g., "youtube thumbnail 2026"
|
||||
```
|
||||
|
||||
#### 2b. Fix `_extract_core_subject()` for YouTube-relevant terms
|
||||
|
||||
**File:** `scripts/lib/youtube_yt.py:67-76`
|
||||
|
||||
Don't strip terms that are useful YouTube content type signals:
|
||||
|
||||
```python
|
||||
# YouTube-specific: keep 'tips', 'tutorial', 'review' etc.
|
||||
# These are stripped for Reddit/X search but are valuable for YouTube
|
||||
noise = {
|
||||
'best', 'top', 'good', 'great', 'awesome', 'killer',
|
||||
'latest', 'new', 'news', 'update', 'updates',
|
||||
'trending', 'hottest', 'popular', 'viral',
|
||||
'practices', 'features',
|
||||
'recommendations', 'advice',
|
||||
'prompt', 'prompts', 'prompting',
|
||||
'methods', 'strategies', 'approaches',
|
||||
}
|
||||
# NOTE: 'tips', 'tricks', 'tutorial', 'guide', 'review', 'reviews'
|
||||
# are intentionally KEPT — they're YouTube content types
|
||||
```
|
||||
|
||||
#### 2c. Clean question marks and trailing punctuation
|
||||
|
||||
**File:** `scripts/lib/youtube_yt.py:48-80`
|
||||
|
||||
```python
|
||||
# At the end of _extract_core_subject():
|
||||
result = ' '.join(filtered) if filtered else text
|
||||
return result.rstrip('?!.') # Clean trailing punctuation
|
||||
```
|
||||
|
||||
### Phase 3: Polish (Medium — nice to have before launch)
|
||||
|
||||
#### 3a. Increase subprocess timeout for non-flat-playlist mode
|
||||
|
||||
**File:** `scripts/lib/youtube_yt.py:119-121`
|
||||
|
||||
```python
|
||||
# Before:
|
||||
result = subprocess.run(cmd, capture_output=True, text=True, timeout=60)
|
||||
|
||||
# After — resolving video pages takes longer:
|
||||
result = subprocess.run(cmd, capture_output=True, text=True, timeout=120)
|
||||
```
|
||||
|
||||
#### 3b. Add year hint to search query for recency bias
|
||||
|
||||
Even with `--dateafter` working, YouTube's search algorithm ranks by relevance not recency. Adding the year helps:
|
||||
|
||||
```python
|
||||
# After core_topic extraction:
|
||||
import datetime
|
||||
current_year = datetime.datetime.now().year
|
||||
search_query = f"{core_topic} {current_year}"
|
||||
```
|
||||
|
||||
#### 3c. Reduce compact render item count for YouTube
|
||||
|
||||
The compact render currently shows up to 15 YouTube items. With transcripts, this is too much output. Reduce to 10:
|
||||
|
||||
**File:** `scripts/lib/render.py` — in `render_compact()`, add YouTube-specific limit or reduce the default.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] `/last30days21 youtube thumbnail tips` shows YouTube in stats block
|
||||
- [ ] YouTube items have real dates (not `None`)
|
||||
- [ ] Old content (> 30 days) filtered out by `--dateafter`
|
||||
- [ ] "youtube thumbnail tips" search returns videos about thumbnail tips (not generic old content)
|
||||
- [ ] "How to access Seedance 2" returns recent Seedance 2 tutorials
|
||||
- [ ] Script completes within 5 minutes for default depth
|
||||
- [ ] No `2>&1` in SKILL.md bash command
|
||||
|
||||
## Files to Modify
|
||||
|
||||
| File | Changes |
|
||||
|------|---------|
|
||||
| `SKILL.md` | Remove `2>&1`, add YouTube synthesis instruction |
|
||||
| `scripts/lib/youtube_yt.py` | Remove `--flat-playlist`, fix noise words, add year hint, increase timeout |
|
||||
| `scripts/lib/render.py` | Optional: reduce YouTube item limit in compact mode |
|
||||
|
||||
## Testing
|
||||
|
||||
```bash
|
||||
# Quick smoke test — should show YouTube items with dates
|
||||
cd ~/.claude/skills/last30days21
|
||||
python3 scripts/last30days.py "youtube thumbnail tips" --quick --emit=compact 2>/dev/null | grep -c "youtube.com"
|
||||
|
||||
# Date test — should show YYYY-MM-DD dates, not None
|
||||
python3 -c "
|
||||
from scripts.lib import youtube_yt
|
||||
r = youtube_yt.search_youtube('youtube thumbnail tips', '2026-01-16', '2026-02-15', depth='quick')
|
||||
for v in r['items'][:3]: print(v['date'], v['title'][:50])
|
||||
"
|
||||
|
||||
# Full integration — run the skill in Claude Code and verify YouTube in stats
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
- SKILL.md bash command: `scripts/last30days.py` line 79
|
||||
- YouTube search: `scripts/lib/youtube_yt.py` lines 83-174
|
||||
- Core subject extraction: `scripts/lib/youtube_yt.py` lines 48-80
|
||||
- Compact render: `scripts/lib/render.py` lines 48-238
|
||||
- Prior YouTube plan: `docs/plans/2026-02-14-feat-youtube-transcript-search-plan.md`
|
||||
@@ -0,0 +1,102 @@
|
||||
---
|
||||
title: Fix YouTube Timeout and Reddit Resilience
|
||||
type: fix
|
||||
date: 2026-02-15
|
||||
---
|
||||
|
||||
# Fix YouTube Timeout and Reddit Resilience
|
||||
|
||||
## Overview
|
||||
|
||||
YouTube search+transcript fetching exceeds the 60s future timeout on popular topics (20 videos + 5 transcripts), discarding all results. Reddit 429 rate-limiting burns through the entire time budget with aggressive retries, causing global timeouts. Both issues cause the script to return incomplete results and sometimes crash.
|
||||
|
||||
## Problem Statement
|
||||
|
||||
**YouTube timeout (blocks launch):** YouTube found 20 Seedance 2.0 videos and fetched 4/5 transcripts, but the 60s future timeout killed everything — `✗ Error: YouTube search timed out after 60s`. The data was there; the budget wasn't.
|
||||
|
||||
**Reddit 429 cascade (degrades reliability):** One enrichment item hitting 429 burns up to 93s (3 retries x 30s timeout + backoff) against a 45s budget. Phase 2 supplemental search then also 429s, burning another 30s. Total wasted: 75s on doomed requests, triggering the 180s global timeout.
|
||||
|
||||
Observed failures across 6 test runs:
|
||||
- `seedance 2 access`: YouTube timed out (60s), Reddit 0 threads
|
||||
- `kanye west bully`: Global timeout first run, needed --quick retry
|
||||
- `Peter Steinberger`: Global timeout during enrichment
|
||||
- `nano banana pro`: Reddit timed out, YouTube worked (5 videos in time)
|
||||
- `kanye west bully` (retry): Reddit 0 threads, YouTube 4 videos
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
### Fix 1: Bump YouTube future timeout (NOT YET DONE)
|
||||
|
||||
**File:** `scripts/last30days.py:40-44`
|
||||
|
||||
Give YouTube its own timeout, separate from the shared `future` timeout. YouTube inherently takes longer because it does search + parallel transcript fetching.
|
||||
|
||||
```python
|
||||
# Option A: YouTube-specific timeout key
|
||||
TIMEOUT_PROFILES = {
|
||||
"quick": {"global": 90, "future": 30, "youtube_future": 60, ...},
|
||||
"default": {"global": 180, "future": 60, "youtube_future": 90, ...},
|
||||
"deep": {"global": 300, "future": 90, "youtube_future": 120, ...},
|
||||
}
|
||||
|
||||
# Option B: Simpler — just bump default future to 90 for all sources
|
||||
TIMEOUT_PROFILES = {
|
||||
"quick": {"global": 90, "future": 45, ...},
|
||||
"default": {"global": 180, "future": 90, ...},
|
||||
"deep": {"global": 300, "future": 120, ...},
|
||||
}
|
||||
```
|
||||
|
||||
**Recommendation:** Option A (YouTube-specific key) — keeps Reddit/X futures tight while giving YouTube the breathing room it needs. Reddit/X finish in 20-40s; YouTube needs 60-90s for transcript fetching.
|
||||
|
||||
Then where YouTube future is collected (~line 646):
|
||||
```python
|
||||
youtube_timeout = timeouts.get("youtube_future", timeouts["future"])
|
||||
youtube_items, youtube_error = youtube_future.result(timeout=youtube_timeout)
|
||||
```
|
||||
|
||||
### Fix 2: Reddit 429 fail-fast (ALREADY DONE — needs commit)
|
||||
|
||||
**Status:** Implemented in working tree, uncommitted. Changes across 4 files:
|
||||
|
||||
| File | Change |
|
||||
|------|--------|
|
||||
| `scripts/lib/http.py` | `get_reddit_json()` accepts `timeout` and `retries` params (was hardcoded 30s/3) |
|
||||
| `scripts/lib/reddit_enrich.py` | `RedditRateLimitError` exception; `fetch_thread_data()` propagates 429; `enrich_reddit_item()` defaults to 10s timeout / 1 retry |
|
||||
| `scripts/lib/openai_reddit.py` | `search_subreddits()` reduced to 1 retry; breaks subreddit loop on first 429 |
|
||||
| `scripts/last30days.py` | Enrichment loop catches `RedditRateLimitError`, cancels futures, bails; `rate_limited` flag skips Phase 2 Reddit |
|
||||
|
||||
**Impact:** 429 scenario drops from ~75s wasted to ~12s wasted.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] YouTube `seedance 2 access` query completes with videos (was timing out at 60s)
|
||||
- [ ] YouTube `kanye west bully` query returns 4+ videos with transcripts
|
||||
- [ ] Reddit 429 detected within ~12s, remaining enrichment skipped
|
||||
- [ ] Phase 2 Reddit skipped when rate-limited
|
||||
- [ ] No global timeout on default depth for any of the 5 test queries
|
||||
- [ ] All changes committed and synced to `~/.claude/skills/last30days21/` and `~/.claude/skills/last30days/`
|
||||
|
||||
## Files to Modify
|
||||
|
||||
| File | Status | Changes |
|
||||
|------|--------|---------|
|
||||
| `scripts/last30days.py` | Modify (partially done) | Add `youtube_future` to TIMEOUT_PROFILES; use it for YouTube future collection |
|
||||
| `scripts/lib/http.py` | Done (uncommitted) | Parameterized `get_reddit_json()` timeout/retries |
|
||||
| `scripts/lib/reddit_enrich.py` | Done (uncommitted) | `RedditRateLimitError`, fail-fast enrichment |
|
||||
| `scripts/lib/openai_reddit.py` | Done (uncommitted) | 429 early-bail in `search_subreddits()` |
|
||||
|
||||
## Testing
|
||||
|
||||
```bash
|
||||
# Quick smoke test — YouTube should complete within 90s
|
||||
cd ~/.claude/skills/last30days21
|
||||
python3 scripts/last30days.py "seedance 2 access" --emit=compact 2>&1 | grep -E "YouTube|timeout"
|
||||
|
||||
# Verify YouTube items in output
|
||||
python3 scripts/last30days.py "kanye west bully" --quick --emit=compact 2>/dev/null | grep "youtube.com" | wc -l
|
||||
|
||||
# Full integration — run the skill in Claude Code
|
||||
# /last30days21 seedance 2 access
|
||||
# Verify YouTube appears in stats block
|
||||
```
|
||||
@@ -0,0 +1,255 @@
|
||||
---
|
||||
title: "feat: Create GitHub Release for v2.1"
|
||||
type: feat
|
||||
date: 2026-02-17
|
||||
---
|
||||
|
||||
# Create GitHub Release for v2.1
|
||||
|
||||
## Overview
|
||||
|
||||
The last30days skill is at v2.1 with 2,747 stars and 317 forks, but has **zero git tags and zero GitHub Releases**. The code is already live on the public repo (`upstream/main`). All marketing copy is written. This plan creates a proper v2.1.0 GitHub Release from existing materials.
|
||||
|
||||
## Problem Statement
|
||||
|
||||
GitHub Releases provide:
|
||||
- A landing page for each version with formatted release notes
|
||||
- Discoverability (GitHub shows releases in the sidebar, feeds them to the Explore page)
|
||||
- A stable reference point for users (`git checkout v2.1.0`)
|
||||
- A "Full Changelog" diff link
|
||||
- RSS feed for watchers
|
||||
- New contributor callouts (community goodwill)
|
||||
|
||||
Currently users have no way to reference a specific version of the skill. The README says "v2.1" but there's nothing in git to anchor that.
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
Create the first GitHub Release (v2.1.0) on the **public** repo using existing marketing copy. Use an annotated tag (not lightweight) for proper `git describe` support and fork propagation.
|
||||
|
||||
## Implementation Steps
|
||||
|
||||
### Phase 1: Tag and Release
|
||||
|
||||
#### 1. Create CHANGELOG.md
|
||||
|
||||
Create `CHANGELOG.md` following [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) format. Source material already exists:
|
||||
|
||||
- `README.md` "What's New in V2.1" and "What's New in V2" sections
|
||||
- `docs/v2.1-tweets.md` (raw verified test results, feature descriptions)
|
||||
- `docs/v2.1-launch-copy.md` (feature copy, social posts)
|
||||
- `docs/pr-credits.md` (contributor credits)
|
||||
- Git log (`git log --oneline` for commit references)
|
||||
|
||||
Structure:
|
||||
```markdown
|
||||
# Changelog
|
||||
|
||||
## [2.1.0] - 2026-02-15
|
||||
|
||||
### Highlights
|
||||
|
||||
30 days of research. 30 seconds of work. Four sources. Zero stale prompts.
|
||||
|
||||
Three headline features...
|
||||
|
||||
### Added
|
||||
- Open-class skill with watchlists (SQLite-backed, FTS5)
|
||||
- YouTube as 4th research source via yt-dlp (search + transcript extraction)
|
||||
- OpenAI Codex CLI compatibility ($last30days invocation)
|
||||
- Bundled X search (vendored Bird GraphQL client, no external CLI)
|
||||
- Native web search backends (Parallel AI, Brave, OpenRouter/Perplexity Sonar)
|
||||
- Briefing and history modes (open variant)
|
||||
- --diagnose flag for source status checking
|
||||
- --store flag for SQLite accumulation
|
||||
|
||||
### Changed
|
||||
- Smarter query construction (strips noise words, auto-retry)
|
||||
- Two-phase search (Phase 2 entity-aware drill-down)
|
||||
- Reddit JSON enrichment (real upvotes/comments from reddit.com/.json)
|
||||
- Engagement-weighted scoring (relevance 45%, recency 25%, engagement 30%)
|
||||
- Model auto-selection with 7-day cache
|
||||
|
||||
### Fixed
|
||||
- YouTube timeout increased to 90s
|
||||
- Reddit 429 rate limit fail-fast
|
||||
- YouTube soft date filter (keeps evergreen content)
|
||||
- Eager import crash in __init__.py (Codex compatibility)
|
||||
|
||||
### New Contributors
|
||||
- @JosephOIbrahim - Windows Unicode fix
|
||||
- @levineam - Model fallback for unverified orgs
|
||||
- @jonthebeef - --days=N configurable lookback flag
|
||||
|
||||
### Credits
|
||||
- @steipete - Bird CLI (vendored X search) and yt-dlp inspiration
|
||||
- @galligan - Marketplace plugin inspiration
|
||||
- @hutchins - Pushed for YouTube feature
|
||||
|
||||
## [1.0.0] - 2026-01-15
|
||||
|
||||
Initial public release. Reddit + X search via OpenAI and xAI APIs.
|
||||
```
|
||||
|
||||
#### 2. Create annotated tag on the public repo
|
||||
|
||||
```bash
|
||||
cd /Users/mvanhorn/last30days-skill-private
|
||||
|
||||
# Tag on the current HEAD (which matches upstream/main)
|
||||
git tag -a v2.1.0 -m "Release v2.1.0: Watchlists, YouTube transcripts, Codex CLI, bundled X search"
|
||||
|
||||
# Push to public repo
|
||||
git push upstream v2.1.0
|
||||
```
|
||||
|
||||
Use annotated tag (not lightweight) because:
|
||||
- Stores tagger metadata and date
|
||||
- Works with `git describe`
|
||||
- Propagates to forks (317 forks)
|
||||
- Supports GPG signing if desired later
|
||||
|
||||
#### 3. Craft release notes
|
||||
|
||||
Assemble from existing copy. The release body should follow this structure:
|
||||
|
||||
```markdown
|
||||
## Highlights
|
||||
|
||||
The AI world reinvents itself every month. This skill keeps you current.
|
||||
|
||||
`/last30days` researches your topic across **Reddit, X, YouTube, and the web**
|
||||
from the last 30 days, finds what the community is actually upvoting, sharing,
|
||||
and saying on camera, and writes you a prompt that works today.
|
||||
|
||||
**Three headline features in v2.1:**
|
||||
|
||||
1. **Open-class skill with watchlists** - Track competitors, people, topics on a schedule.
|
||||
Pair with Open Claw for automated briefings. SQLite-backed with FTS5 search.
|
||||
|
||||
2. **YouTube transcripts as a 4th source** - When yt-dlp is installed, searches YouTube,
|
||||
grabs view counts, and reads the actual transcripts. A 20-minute review has 10x the
|
||||
signal of one X post.
|
||||
|
||||
3. **Codex CLI compatibility** - Same skill, same engine, same four sources.
|
||||
Install to `~/.agents/skills/last30days` and invoke with `$last30days`.
|
||||
|
||||
Plus: **Bundled X search** - Vendored Bird GraphQL client. No external CLI needed.
|
||||
Just Node.js 22+ and browser cookies.
|
||||
|
||||
## Real Results (verified 2/15)
|
||||
|
||||
| Topic | Reddit | X | YouTube | Web |
|
||||
|-------|--------|---|---------|-----|
|
||||
| Nano Banana Pro | - | 32 posts, 164 likes | 5 videos, 98K views | - |
|
||||
| Seedance 2.0 | 21 threads | 33 posts | 20 videos | 5 pages |
|
||||
| OpenClaw use cases | 35 threads, 1,130 upvotes | 23 posts | 20 videos, 1.57M views | - |
|
||||
| YouTube thumbnails | 7 threads, 654 upvotes | 32 posts | 18 videos, 6.15M views | - |
|
||||
|
||||
## What's New
|
||||
|
||||
### Added
|
||||
- Open-class skill with watchlist, briefing, and history modes
|
||||
- YouTube search + transcript extraction via yt-dlp
|
||||
- OpenAI Codex CLI compatibility
|
||||
- Bundled Twitter/X search (vendored Bird GraphQL)
|
||||
- Native web search (Parallel AI, Brave, OpenRouter)
|
||||
- `--diagnose` and `--store` flags
|
||||
- Conversational first-run experience (NUX)
|
||||
|
||||
### Changed
|
||||
- Two-phase search architecture (entity-aware drill-down)
|
||||
- Reddit JSON enrichment for real engagement metrics
|
||||
- Smarter query construction with auto-retry
|
||||
- Engagement-weighted scoring algorithm
|
||||
|
||||
### Fixed
|
||||
- YouTube/Reddit timeout resilience
|
||||
- Reddit 429 rate limit fail-fast
|
||||
- Eager import crash in Codex environments
|
||||
|
||||
## New Contributors
|
||||
|
||||
- @JosephOIbrahim - Windows Unicode fix
|
||||
- @levineam - Model fallback for unverified orgs
|
||||
- @jonthebeef - `--days=N` configurable lookback
|
||||
|
||||
## Credits
|
||||
|
||||
- @steipete - Bird CLI and yt-dlp/summarize inspiration
|
||||
- @galligan - Marketplace plugin inspiration
|
||||
- @hutchins - Pushed for YouTube feature
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
# Claude Code
|
||||
claude install-skill https://github.com/mvanhorn/last30days-skill
|
||||
|
||||
# Manual
|
||||
git clone https://github.com/mvanhorn/last30days-skill ~/.claude/skills/last30days
|
||||
```
|
||||
|
||||
**Full Changelog**: https://github.com/mvanhorn/last30days-skill/commits/v2.1.0
|
||||
```
|
||||
|
||||
#### 4. Create the GitHub Release
|
||||
|
||||
```bash
|
||||
gh release create v2.1.0 \
|
||||
--repo mvanhorn/last30days-skill \
|
||||
--verify-tag \
|
||||
--title "v2.1.0 - Watchlists, YouTube Transcripts, Codex CLI" \
|
||||
-F release-notes.md
|
||||
```
|
||||
|
||||
No binary assets needed - this is an interpreted skill, and GitHub auto-generates source archives.
|
||||
|
||||
### Phase 2: Future Automation (Optional)
|
||||
|
||||
#### 5. Add `.github/release.yml` for auto-generated notes on future releases
|
||||
|
||||
```yaml
|
||||
changelog:
|
||||
exclude:
|
||||
labels:
|
||||
- ignore-for-release
|
||||
categories:
|
||||
- title: "Breaking Changes"
|
||||
labels: [breaking-change]
|
||||
- title: "Features"
|
||||
labels: [enhancement, feature]
|
||||
- title: "Bug Fixes"
|
||||
labels: [bug, fix]
|
||||
- title: "Documentation"
|
||||
labels: [documentation]
|
||||
- title: "Other Changes"
|
||||
labels: ["*"]
|
||||
```
|
||||
|
||||
This enables `gh release create v2.2.0 --generate-notes` for future releases with automatic PR categorization.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] `CHANGELOG.md` exists in repo root following Keep a Changelog format
|
||||
- [x] Annotated tag `v2.1.0` exists on the public repo
|
||||
- [x] GitHub Release `v2.1.0` is published at `github.com/mvanhorn/last30days-skill/releases`
|
||||
- [x] Release notes include: highlights, real results table, feature list, contributor credits, install instructions
|
||||
- [x] Release appears in the repo sidebar on GitHub
|
||||
|
||||
## Key Decisions
|
||||
|
||||
1. **v2.1.0 only** - Don't retroactively create v1.0.0 or v2.0.0 tags. The git history doesn't have clean boundary commits for those versions, and retroactive tags add complexity without value.
|
||||
|
||||
2. **Release on the public repo** (`upstream`), not the private repo. Users see `mvanhorn/last30days-skill`.
|
||||
|
||||
3. **CHANGELOG.md as source of truth** - The release notes are derived from CHANGELOG.md, not the other way around. Future releases update CHANGELOG.md first, then create the release.
|
||||
|
||||
4. **Update star count** - The existing copy says "1.5K stars" but the repo now has 2,747. Update in release notes.
|
||||
|
||||
## References
|
||||
|
||||
- Existing copy: `docs/v2.1-launch-copy.md`, `docs/v2.1-tweets.md`
|
||||
- Contributors: `docs/pr-credits.md`
|
||||
- README features: `README.md` "What's New" sections
|
||||
- GitHub Releases docs: https://docs.github.com/en/repositories/releasing-projects-on-github
|
||||
- Keep a Changelog: https://keepachangelog.com/en/1.1.0/
|
||||
@@ -0,0 +1,274 @@
|
||||
---
|
||||
title: "feat: Last30Days.com - Automated Trending Topic Research"
|
||||
type: feat
|
||||
date: 2026-02-20
|
||||
---
|
||||
|
||||
# Last30Days.com - Automated Trending Topic Research
|
||||
|
||||
## Overview
|
||||
|
||||
A website at Last30Days.com that automatically shows daily trending topics researched by the /last30days engine. The core challenge: the skill is query-driven (you give it a topic), but a trending page needs to *discover* what topics to research. This plan covers how to source trending topics, run them through the engine, and publish results.
|
||||
|
||||
## Problem Statement
|
||||
|
||||
The /last30days skill has 2,747 GitHub stars but no public-facing showcase. Users have to install the skill and run it themselves. A website that automatically shows trending topic results would:
|
||||
|
||||
1. **Drive installs** - people see the quality and want it for their own topics
|
||||
2. **SEO surface area** - each topic page is indexable content
|
||||
3. **Demonstrate capability** - "here's what /last30days found about X today" with real stats
|
||||
4. **Content flywheel** - daily fresh content with zero manual curation
|
||||
|
||||
## Trending Topic Discovery: The Options
|
||||
|
||||
The skill has **no existing trending discovery mechanism** - it's entirely query-driven. Here are the available sources, ranked by practicality.
|
||||
|
||||
### Tier 1: Free, High Signal, Zero Friction
|
||||
|
||||
| Source | What It Returns | Auth | Cost | Best For |
|
||||
|--------|----------------|------|------|----------|
|
||||
| **Wikipedia Pageviews** | Top 100 most-viewed articles yesterday | None | Free | General public interest (news, culture, events) |
|
||||
| **Hacker News** | Top 30 stories with scores | None | Free | Tech/startup topics |
|
||||
| **Reddit r/all/hot + rising** | Hottest and rapidly rising posts | OAuth (free) | Free | Broad internet culture |
|
||||
| **Google News RSS** | Top headlines, algorithmically curated | None | Free | Mainstream news |
|
||||
| **YouTube mostPopular** | Top 50 trending videos by region | API key | Free (10K units/day) | Pop culture, entertainment |
|
||||
|
||||
### Tier 2: Very Cheap, High Value
|
||||
|
||||
| Source | What It Returns | Auth | Cost | Best For |
|
||||
|--------|----------------|------|------|----------|
|
||||
| **Perplexity Sonar API** | "What's trending today?" with sourced answers | API key | ~$1/month | Meta-aggregator that replaces multiple sources |
|
||||
| **Google Trends (pytrends)** | Daily trending Google searches | None | Free but flaky | What people are actually searching |
|
||||
| **Bird `getNews()`** | X Explore page trending topics | Browser cookies | Free | Real-time Twitter/X conversation |
|
||||
|
||||
### Tier 3: Paid, Skip for MVP
|
||||
|
||||
| Source | Cost | Why Skip |
|
||||
|--------|------|----------|
|
||||
| X/Twitter API | $200/month minimum | Too expensive; Bird `getNews()` is free |
|
||||
| Exploding Topics | $249/month | Overkill for daily trends |
|
||||
| TikTok | Gated, requires approval | Application process |
|
||||
|
||||
### Existing Codebase Hooks
|
||||
|
||||
Several pieces already exist in the codebase that could be leveraged:
|
||||
|
||||
1. **Bird `getNews()` is already on disk.** The vendored Bird library at `scripts/lib/vendor/bird-search/` includes `twitter-client-news.js` which fetches X's Explore page tabs (For You, Trending, News, Sports, Entertainment). Only needs a ~30-line `bird-news.mjs` wrapper to expose it. Zero API keys needed.
|
||||
|
||||
2. **`store.get_trending(days=7)`** at `scripts/store.py:559` ranks watchlist topics by recent finding activity. Could feed "what the skill has been researching" as a meta-signal.
|
||||
|
||||
3. **Scoring algorithm** at `scripts/lib/score.py` has engagement formulas for Reddit, X, and YouTube that could rank "buzz" by reweighting engagement >> relevance.
|
||||
|
||||
4. **Brave Trending API** exists but isn't implemented in `brave_search.py`. Could be added.
|
||||
|
||||
## Proposed Architecture
|
||||
|
||||
### Topic Discovery Pipeline (daily cron)
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ STEP 1: Fetch trending signals (parallel, free) │
|
||||
├─────────────────────────────────────────────────┤
|
||||
│ Wikipedia Pageviews ─┐ │
|
||||
│ Hacker News Top 30 ─┤ │
|
||||
│ Reddit r/all/hot ─┼─→ Raw topics + signals │
|
||||
│ Google News RSS ─┤ │
|
||||
│ YouTube mostPopular ─┤ │
|
||||
│ Bird getNews() ─┘ │
|
||||
└─────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ STEP 2: Cluster + rank │
|
||||
├─────────────────────────────────────────────────┤
|
||||
│ Extract topic keywords from titles │
|
||||
│ Cluster by semantic similarity │
|
||||
│ Rank by cross-source frequency │
|
||||
│ ("Pope Leo XIV" on Wikipedia + Reddit + News │
|
||||
│ = high confidence trend) │
|
||||
│ Output: top 15-20 topics, ranked │
|
||||
└─────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ STEP 3: Run /last30days on top topics │
|
||||
├─────────────────────────────────────────────────┤
|
||||
│ Top 3-5 topics: full research (--emit=json) │
|
||||
│ → Full "What I learned" synthesis articles │
|
||||
│ Remaining 10-15: quick research (--quick) │
|
||||
│ → Stats teasers (32 X posts, 5 YouTube...) │
|
||||
└─────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ STEP 4: Publish to website │
|
||||
├─────────────────────────────────────────────────┤
|
||||
│ Generate static HTML/JSON │
|
||||
│ Deploy to Last30Days.com │
|
||||
│ RSS feed for subscribers │
|
||||
└─────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### Topic Clustering Strategy
|
||||
|
||||
The hardest part is deduplicating across sources. "Pope Francis Dies" (Google News), "Pope_Francis" (Wikipedia #1 viewed), and a r/worldnews post are all the same topic. Approaches:
|
||||
|
||||
**Option A: LLM clustering (recommended for MVP)**
|
||||
Feed all raw titles to an LLM and ask it to cluster into distinct topics with a representative label. ~$0.01 per day via a fast model. Simple, accurate, handles edge cases.
|
||||
|
||||
**Option B: TF-IDF + cosine similarity**
|
||||
Extract keywords, compute pairwise similarity, agglomerative clustering. No API cost but worse on paraphrased titles.
|
||||
|
||||
**Option C: Embedding similarity**
|
||||
Embed all titles, cluster by cosine distance. Better than TF-IDF, costs a few cents per day.
|
||||
|
||||
### Website Architecture
|
||||
|
||||
**Option A: Static site (recommended for MVP)**
|
||||
- Daily cron generates JSON + static HTML
|
||||
- Host on GitHub Pages, Cloudflare Pages, or Vercel
|
||||
- Zero server cost, zero maintenance
|
||||
- Framework: plain HTML/CSS, or minimal Astro/11ty
|
||||
|
||||
**Option B: Next.js with ISR**
|
||||
- Incremental Static Regeneration rebuilds pages daily
|
||||
- More flexibility for future features (search, filtering, user accounts)
|
||||
- Hosting: Vercel free tier
|
||||
|
||||
**Option C: Full web app**
|
||||
- Database-backed, real-time updates, user accounts
|
||||
- Overkill for MVP
|
||||
|
||||
### Cost Estimate (daily operation)
|
||||
|
||||
| Item | Cost |
|
||||
|------|------|
|
||||
| Trending source APIs | $0 (all free tier) |
|
||||
| LLM clustering (fast model) | ~$0.01/day |
|
||||
| Full research on 3-5 topics | ~$0.10-0.50/day (OpenAI API for Reddit search) |
|
||||
| Quick research on 10-15 topics | ~$0.05-0.20/day |
|
||||
| Static hosting | $0 (GitHub/Cloudflare Pages) |
|
||||
| **Total** | **~$5-20/month** |
|
||||
|
||||
## Implementation Phases
|
||||
|
||||
### Phase 1: Topic Discovery Script (MVP)
|
||||
|
||||
Build `scripts/discover_trending.py` that:
|
||||
- Fetches Wikipedia Pageviews, HN top stories, Reddit hot, Google News RSS in parallel
|
||||
- Filters out evergreen/non-topical Wikipedia pages (e.g., "Main Page", "ChatGPT" permanent traffic)
|
||||
- Uses a fast LLM to cluster raw titles into 15-20 distinct topics
|
||||
- Outputs ranked JSON: `[{topic, sources, confidence, category}]`
|
||||
|
||||
**Acceptance criteria:**
|
||||
- [ ] Fetches from at least 4 free trending sources in parallel
|
||||
- [ ] Clusters raw titles into deduplicated topics via LLM
|
||||
- [ ] Filters Wikipedia evergreen pages (maintain a blocklist)
|
||||
- [ ] Outputs ranked JSON with topic name, source count, category
|
||||
- [ ] Runs in < 60 seconds
|
||||
- [ ] No paid API keys required for discovery (only LLM clustering)
|
||||
|
||||
### Phase 2: Research Automation
|
||||
|
||||
Wire discovered topics into the existing /last30days engine:
|
||||
- Top 3-5 topics: `python3 scripts/last30days.py "$TOPIC" --emit=json --deep`
|
||||
- Remaining topics: `python3 scripts/last30days.py "$TOPIC" --emit=json --quick`
|
||||
- Store all results in `~/.local/share/last30days/trending/YYYY-MM-DD/`
|
||||
|
||||
**Acceptance criteria:**
|
||||
- [ ] Orchestration script runs discovery then research sequentially
|
||||
- [ ] Full research on top N topics, quick on the rest
|
||||
- [ ] Results stored as dated JSON files
|
||||
- [ ] Total daily runtime < 30 minutes
|
||||
- [ ] Handles timeouts/failures gracefully (skip topic, continue)
|
||||
|
||||
### Phase 3: Website Generation
|
||||
|
||||
Build a static site generator that reads the daily JSON and produces Last30Days.com:
|
||||
- Homepage: today's trending topics grid (title, category, key stat, source badges)
|
||||
- Topic pages: full synthesis for showcase topics, stats teaser for others
|
||||
- Archive: previous days accessible by date
|
||||
- RSS feed
|
||||
- CTA: "Want to research your own topic? Install the skill"
|
||||
|
||||
**Acceptance criteria:**
|
||||
- [ ] Static HTML generated from daily JSON
|
||||
- [ ] Homepage shows today's 15-20 trending topics
|
||||
- [ ] 3-5 showcase topic pages with full synthesis
|
||||
- [ ] Remaining topics show stats teasers + install CTA
|
||||
- [ ] Deploys to Last30Days.com (Cloudflare Pages or similar)
|
||||
- [ ] RSS feed for daily updates
|
||||
- [ ] Mobile responsive
|
||||
|
||||
### Phase 4: Bird Trending Integration (bonus)
|
||||
|
||||
Wire up the already-vendored Bird `getNews()` for X trending:
|
||||
- Create `scripts/lib/vendor/bird-search/bird-news.mjs` (~30 lines)
|
||||
- Add X Explore trending data as a 5th discovery source
|
||||
- X trends are the fastest-moving signal and fill the "what's happening right now" gap
|
||||
|
||||
**Acceptance criteria:**
|
||||
- [ ] `bird-news.mjs` wrapper exposes X Explore trending topics
|
||||
- [ ] Integrated into discovery pipeline as an additional source
|
||||
- [ ] Falls back gracefully if no X session cookies available
|
||||
|
||||
## Alternative Approaches Considered
|
||||
|
||||
### Perplexity-only approach
|
||||
Just ask Perplexity Sonar "what are the top 20 trending topics today?" daily. Simpler, but:
|
||||
- Single point of failure
|
||||
- Less transparent (can't show "sourced from Reddit, Wikipedia, HN")
|
||||
- Model may hallucinate or miss niche topics
|
||||
- **Verdict:** Good fallback, not primary.
|
||||
|
||||
### Curated topics (manual)
|
||||
Manually pick topics each day. Defeats the purpose of automation. Could supplement for "editorial picks."
|
||||
|
||||
### Social listening tools (Brandwatch, Sprout Social, etc.)
|
||||
Expensive ($500+/month), enterprise-focused, overkill.
|
||||
|
||||
## Technical Considerations
|
||||
|
||||
- **Rate limits:** Wikipedia, HN, and RSS have no practical limits for 1 daily call. Reddit's 100 QPM is generous. YouTube's 10K units/day allows ~3,000 `mostPopular` calls.
|
||||
- **Wikipedia filtering:** The top Wikipedia pages are always "Main Page", "Special:Search", etc. Need a blocklist of ~50 evergreen pages plus heuristics (skip pages under 1,000 characters, skip disambiguation pages).
|
||||
- **Cron timing:** Run discovery at ~2am UTC (after Wikipedia pageviews finalize for previous day). Run research at ~3am UTC. Deploy site by ~5am UTC.
|
||||
- **Cost control:** The /last30days engine uses OpenAI API for Reddit search. Full research on 5 topics * $0.05-0.10 each = ~$0.25-0.50/day. Quick research is cheaper.
|
||||
- **Domain:** Last30Days.com needs to be registered (check availability).
|
||||
|
||||
## Dependencies & Risks
|
||||
|
||||
| Risk | Mitigation |
|
||||
|------|------------|
|
||||
| pytrends breaks (Google changes) | pytrends is a bonus source, not required. Other 4+ sources sufficient. |
|
||||
| Wikipedia pageviews delayed | Fall back to Perplexity Sonar for day's topics |
|
||||
| OpenAI API cost spikes | Cap at 5 full + 15 quick topics per day; use --quick for most |
|
||||
| Bird cookie auth stops working | X trending is a bonus source; discovery works without it |
|
||||
| Domain not available | Check availability; alternatives: last30.day, last30days.app |
|
||||
|
||||
## Success Metrics
|
||||
|
||||
- Daily automated publishing with zero manual intervention
|
||||
- 15-20 trending topics surfaced daily
|
||||
- 3-5 full synthesis articles per day
|
||||
- Site loads in < 2 seconds (static)
|
||||
- Drives measurable GitHub star growth / skill installs
|
||||
|
||||
## References
|
||||
|
||||
### Trending APIs (free)
|
||||
- Wikipedia Pageviews: `wikimedia.org/api/rest_v1/metrics/pageviews/top/{project}/{access}/{year}/{month}/{day}`
|
||||
- Hacker News: `hacker-news.firebaseio.com/v0/topstories.json`
|
||||
- Reddit: `oauth.reddit.com/r/all/hot` (or `reddit.com/r/all/hot.json` unauthenticated)
|
||||
- Google News RSS: `news.google.com/rss`
|
||||
- YouTube: `googleapis.com/youtube/v3/videos?chart=mostPopular`
|
||||
|
||||
### Existing codebase hooks
|
||||
- Bird `getNews()`: `scripts/lib/vendor/bird-search/vendor/package/dist/lib/twitter-client-news.js`
|
||||
- Store trending: `scripts/store.py:559` (`get_trending()`)
|
||||
- Scoring: `scripts/lib/score.py` (engagement formulas)
|
||||
- Brave Trending API: not implemented, available in Brave docs
|
||||
|
||||
### Inspiration
|
||||
- [Keep a Changelog](https://keepachangelog.com/) - clean daily update format
|
||||
- [Hacker News front page](https://news.ycombinator.com/) - minimal trending UI
|
||||
- [Exploding Topics](https://explodingtopics.com/) - trending topic showcase (paid, $249/mo)
|
||||
@@ -0,0 +1,235 @@
|
||||
---
|
||||
title: "feat: Add Hacker News as a 5th research source"
|
||||
type: feat
|
||||
status: completed
|
||||
date: 2026-02-24
|
||||
---
|
||||
|
||||
# feat: Add Hacker News as a 5th Research Source
|
||||
|
||||
## Overview
|
||||
|
||||
Add Hacker News as a source to the last30days skill, using the free Algolia HN Search API (`hn.algolia.com/api/v1`). HN provides high-signal content from a technical audience — stories with high point counts and active comment threads are strong indicators of what the developer community actually cares about. No API key required.
|
||||
|
||||
## Problem Statement / Motivation
|
||||
|
||||
The skill currently covers Reddit, X, YouTube, and web. Hacker News is missing — and for technical topics, HN often surfaces discussions that don't appear on Reddit or X. HN's upvote system and comment culture produce high-quality signal: a 500-point story with 200 comments means the developer community is genuinely engaged. Community contributor @wkbaran proposed this in PR #26 alongside YouTube and Product Hunt. YouTube shipped in v2.1; now it's time for HN.
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
Add `scripts/lib/hackernews.py` following the exact same pattern as `youtube_yt.py` (the simplest existing source — no API key, just HTTP calls). Use the Algolia HN Search API for discovery, then optionally fetch top comments from high-scoring stories for enrichment (like Reddit enrichment, but using the `/items/:id` endpoint instead of Reddit's JSON API).
|
||||
|
||||
### Two-phase approach (matches existing Reddit pattern):
|
||||
|
||||
1. **Phase 1 — Search**: Query Algolia for stories matching the topic within the date range. Get titles, URLs, points, comment counts.
|
||||
2. **Phase 2 — Enrichment** (optional, top N stories): Fetch the `/items/:id` endpoint for the highest-scoring stories to get top-level comments. This gives "comment_insights" like Reddit enrichment does.
|
||||
|
||||
## Technical Approach
|
||||
|
||||
### Files to Create
|
||||
|
||||
#### `scripts/lib/hackernews.py`
|
||||
|
||||
The main source module. Pattern matches `youtube_yt.py` (simplest source).
|
||||
|
||||
```python
|
||||
# scripts/lib/hackernews.py
|
||||
"""Hacker News search via Algolia API (free, no auth required)."""
|
||||
|
||||
ALGOLIA_SEARCH_URL = "https://hn.algolia.com/api/v1/search"
|
||||
ALGOLIA_SEARCH_BY_DATE_URL = "https://hn.algolia.com/api/v1/search_by_date"
|
||||
ALGOLIA_ITEM_URL = "https://hn.algolia.com/api/v1/items"
|
||||
|
||||
DEPTH_CONFIG = {
|
||||
"quick": 15,
|
||||
"default": 30,
|
||||
"deep": 60,
|
||||
}
|
||||
|
||||
ENRICH_LIMITS = {
|
||||
"quick": 3,
|
||||
"default": 5,
|
||||
"deep": 10,
|
||||
}
|
||||
```
|
||||
|
||||
Key functions:
|
||||
|
||||
- `search_hackernews(topic, from_date, to_date, depth="default") -> Dict[str, Any]`
|
||||
- Calls `hn.algolia.com/api/v1/search?query={topic}&tags=story&numericFilters=created_at_i>{from_ts},created_at_i<{to_ts}&hitsPerPage={count}`
|
||||
- Uses `http.get()` — stdlib only, matches existing pattern
|
||||
- Returns raw Algolia response
|
||||
|
||||
- `parse_hackernews_response(response: Dict) -> List[Dict]`
|
||||
- Extracts hits, maps to raw dicts with fields: `id` (prefix "HN"), `title`, `url`, `hn_url`, `author`, `date`, `engagement` (points, num_comments), `why_relevant`, `relevance`
|
||||
- `relevance` estimated from Algolia rank + engagement boost (same pattern as Bill's PR)
|
||||
|
||||
- `enrich_top_stories(items, depth="default") -> List[Dict]`
|
||||
- Fetches `/items/{objectID}` for top N stories (by points)
|
||||
- Extracts top-level comments (author, text, points)
|
||||
- Adds `top_comments` and `comment_insights` fields (same structure as Reddit enrichment)
|
||||
- Uses `ThreadPoolExecutor` for parallel fetching
|
||||
|
||||
- `_date_to_unix(date_str: str) -> int` — Helper, converts YYYY-MM-DD to Unix timestamp
|
||||
|
||||
#### `tests/test_hackernews.py`
|
||||
|
||||
Standard unittest pattern matching existing tests.
|
||||
|
||||
- Test `parse_hackernews_response` with sample Algolia response
|
||||
- Test `_date_to_unix` conversion
|
||||
- Test empty response handling
|
||||
- Test enrichment parsing
|
||||
- Test score integration with `score.py`
|
||||
|
||||
### Files to Modify
|
||||
|
||||
#### `scripts/lib/schema.py`
|
||||
|
||||
- [x] Add `HackerNewsItem` dataclass:
|
||||
```python
|
||||
@dataclass
|
||||
class HackerNewsItem:
|
||||
id: str # "HN1", "HN2", ...
|
||||
title: str
|
||||
url: str # Original article URL
|
||||
hn_url: str # news.ycombinator.com/item?id=...
|
||||
author: str # HN username
|
||||
date: Optional[str]
|
||||
date_confidence: str # Always "high" (Algolia provides exact timestamps)
|
||||
engagement: Optional[Engagement] # points + num_comments
|
||||
top_comments: List[Comment] # From enrichment
|
||||
comment_insights: List[str] # From enrichment
|
||||
relevance: float
|
||||
why_relevant: str
|
||||
subs: SubScores
|
||||
score: int
|
||||
```
|
||||
- [x] Add `hackernews: List[HackerNewsItem] = field(default_factory=list)` to `Report`
|
||||
- [x] Add `hackernews_error: Optional[str] = None` to `Report`
|
||||
- [x] Update `Report.to_dict()` and `Report.from_dict()`
|
||||
|
||||
#### `scripts/lib/normalize.py`
|
||||
|
||||
- [x] Add `normalize_hackernews_items(items: List[Dict], from_date, to_date) -> List[schema.HackerNewsItem]`
|
||||
- Maps raw dicts to `HackerNewsItem` dataclass instances
|
||||
- Sets `date_confidence = "high"` (Algolia provides `created_at_i` exact timestamps)
|
||||
- Converts `engagement` dict to `schema.Engagement(score=points, num_comments=num_comments)`
|
||||
|
||||
#### `scripts/lib/score.py`
|
||||
|
||||
- [x] Add `compute_hackernews_engagement_raw(engagement) -> float`
|
||||
- Formula: `0.55 * log1p(points) + 0.45 * log1p(num_comments)`
|
||||
- Points are the primary signal on HN; comments indicate depth of discussion
|
||||
- [x] Add `score_hackernews_items(items) -> List[schema.HackerNewsItem]`
|
||||
- Uses standard 45/25/30 weights (relevance/recency/engagement) — same as Reddit/X/YouTube
|
||||
- [x] Update `sort_items()` to handle `HackerNewsItem`
|
||||
- Source priority: Reddit > X > **HN** > YouTube > WebSearch
|
||||
- HN slots between X and YouTube: higher signal than YouTube (curated upvotes vs raw views), but X has real-time pulse
|
||||
|
||||
#### `scripts/lib/dedupe.py`
|
||||
|
||||
- [x] Add `dedupe_hackernews(items, threshold=0.7) -> List[schema.HackerNewsItem]`
|
||||
- [x] Update `get_item_text()` to handle `HackerNewsItem` (return `title`)
|
||||
- [x] Consider cross-source dedup: HN stories often link to the same URLs that appear in web search results. Dedupe by URL match across `hackernews` and `websearch` items.
|
||||
|
||||
#### `scripts/lib/render.py`
|
||||
|
||||
- [x] Add HN section to `render_compact()`:
|
||||
```
|
||||
### Hacker News Stories
|
||||
|
||||
**HN1** (score:85) hn/username (2026-02-15) [350pts, 127cmt]
|
||||
Story title here
|
||||
https://news.ycombinator.com/item?id=12345
|
||||
*Why relevant*
|
||||
```
|
||||
- [x] Add to `render_source_status()`:
|
||||
```
|
||||
✅ HN: {N} stories
|
||||
```
|
||||
- [x] Add to `render_full_report()` and `render_context_snippet()`
|
||||
- [x] Update `_assess_data_freshness()` to include HN items
|
||||
|
||||
#### `scripts/last30days.py`
|
||||
|
||||
- [x] Import: `from lib import hackernews`
|
||||
- [x] Add `_search_hackernews(topic, from_date, to_date, depth) -> (items, error)` wrapper function
|
||||
- Calls `hackernews.search_hackernews()`, then `hackernews.parse_hackernews_response()`
|
||||
- Returns `(items, None)` or `([], error_string)`
|
||||
- [x] Add to `TIMEOUT_PROFILES`: `"hackernews_future": 60` (default), `30` (quick), `90` (deep)
|
||||
- [x] Add HN to `ThreadPoolExecutor` in `run_research()`:
|
||||
```python
|
||||
if do_hackernews:
|
||||
hn_future = executor.submit(_search_hackernews, topic, from_date, to_date, depth)
|
||||
```
|
||||
- Increment `max_workers` by 1 when HN is enabled
|
||||
- [x] Collect results: `hn_items, hn_error = hn_future.result(timeout=hn_timeout)`
|
||||
- [x] Add HN enrichment phase (after Reddit enrichment, before Phase 2):
|
||||
```python
|
||||
if hn_items:
|
||||
hn_items = hackernews.enrich_top_stories(hn_items, depth=depth)
|
||||
```
|
||||
- [x] Add to processing pipeline: normalize -> filter_by_date_range -> score -> sort -> dedupe
|
||||
- [x] Assign to `report.hackernews` and `report.hackernews_error`
|
||||
- [x] Update status UI: add `⏳ 🟡 HN Searching Hacker News...` and `✓ 🟡 HN Found {N} stories`
|
||||
|
||||
#### `scripts/lib/env.py`
|
||||
|
||||
- [x] HN is always available (no API key, no binary dependency)
|
||||
- [x] Update `get_available_sources()` to include HN in the source list
|
||||
- [x] Update `validate_sources()` to accept `hn` as a valid source name
|
||||
- [x] Add `hn` to the `--search` flag documentation
|
||||
|
||||
#### `SKILL.md`
|
||||
|
||||
- [x] Update description: "Sources: Reddit, X, YouTube, **Hacker News**, and web"
|
||||
- [x] Add HN to stats block template:
|
||||
```
|
||||
├─ 🟡 HN: {N} stories │ {N} points │ {N} comments
|
||||
```
|
||||
- [x] Update `metadata.clawdbot.tags` to include `hackernews`
|
||||
- [x] Update Security section: add `hn.algolia.com` to endpoints list
|
||||
- [x] Update citation priority to include HN: Reddit > X > YouTube > HN > Web
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] `python3 scripts/last30days.py "AI coding agents" --emit=compact` shows HN section with stories, points, and comment counts
|
||||
- [x] HN stories include `hn_url` linking to the HN discussion page (not just the article URL)
|
||||
- [x] Top stories are enriched with top comments (like Reddit enrichment)
|
||||
- [x] HN runs in parallel with Reddit/X/YouTube (no serial bottleneck)
|
||||
- [x] Scoring uses standard 45/25/30 weights with engagement formula tuned for HN metrics
|
||||
- [x] Stats block shows: `├─ 🟡 HN: {N} stories │ {N} points │ {N} comments`
|
||||
- [x] `--search=hn` works to run HN only; `--search=reddit,hn` works for combos
|
||||
- [x] `--quick`, `--deep` flags adjust HN result count (15/30/60)
|
||||
- [x] All existing tests still pass
|
||||
- [x] New `tests/test_hackernews.py` with tests for parse, normalize, score, enrichment
|
||||
- [x] No API key required — works out of the box
|
||||
- [x] Cross-source URL dedup: HN stories linking to same URL as web results get deduped
|
||||
- [x] SKILL.md updated with HN in stats block, security section, and citation priority
|
||||
|
||||
## Dependencies & Risks
|
||||
|
||||
**Low risk:**
|
||||
- Algolia HN API is free, public, no auth, well-established (used since 2014)
|
||||
- No new dependencies — uses existing `http.py` (stdlib urllib)
|
||||
- Pattern is identical to YouTube source (simplest existing source)
|
||||
|
||||
**Medium risk:**
|
||||
- Algolia has no officially documented rate limit, but aggressive use could get throttled
|
||||
- Mitigation: Existing `http.py` exponential backoff handles 429s
|
||||
- Default depth only requests 30 items (1 API call for search + N for enrichment)
|
||||
- Comment enrichment adds N API calls (one per story) which could slow down quick mode
|
||||
- Mitigation: Limit enrichment to top 3/5/10 stories by depth; use ThreadPoolExecutor
|
||||
|
||||
**Compatibility:**
|
||||
- HN always available — doesn't break anything when other sources are missing
|
||||
- Existing `--search` flag needs extension but is backward-compatible
|
||||
|
||||
## Sources & References
|
||||
|
||||
- PR #26 by @wkbaran: [HN implementation reference](https://github.com/mvanhorn/last30days-skill/pull/26)
|
||||
- Algolia HN API docs: `https://hn.algolia.com/api`
|
||||
- Existing patterns: `scripts/lib/youtube_yt.py` (simplest source), `scripts/lib/openai_reddit.py` (enrichment pattern)
|
||||
- Scoring reference: `scripts/lib/score.py:compute_reddit_engagement_raw()`
|
||||
- Schema reference: `scripts/lib/schema.py:RedditItem` (closest analog to HN)
|
||||
@@ -0,0 +1,86 @@
|
||||
---
|
||||
title: "fix: HN ordering and stats block emoji formatting"
|
||||
type: fix
|
||||
status: completed
|
||||
date: 2026-02-24
|
||||
---
|
||||
|
||||
# fix: HN Ordering and Stats Block Emoji Formatting
|
||||
|
||||
## Overview
|
||||
|
||||
HN source appears before YouTube in several places (stats block, sort priority, source status) but should be last among the main sources (after YouTube, before Web). The test skill SKILL.md also has plain ASCII instead of box-drawing characters and colored circle emojis.
|
||||
|
||||
Desired order everywhere: Reddit > X > YouTube > HN > Web
|
||||
|
||||
## Problem Statement / Motivation
|
||||
|
||||
When testing `/last30daysHN`, the stats block output shows:
|
||||
- No ✅ emoji, no 🟠 🔵 🟡 🔴 🌐 🗣️ colored circles
|
||||
- Plain `|-` instead of `├─` and `|` instead of `│`
|
||||
- HN appears before YouTube in the stats
|
||||
|
||||
The canonical format (established in commit `7c36866`) is:
|
||||
```
|
||||
---
|
||||
✅ All agents reported back!
|
||||
├─ 🟠 Reddit: {N} threads │ {N} upvotes │ {N} comments
|
||||
├─ 🔵 X: {N} posts │ {N} likes │ {N} reposts
|
||||
├─ 🔴 YouTube: {N} videos │ {N} views │ {N} with transcripts
|
||||
├─ 🟡 HN: {N} stories │ {N} points │ {N} comments
|
||||
├─ 🌐 Web: {N} pages (supplementary)
|
||||
└─ 🗣️ Top voices: @{handle1} ({N} likes), @{handle2} │ r/{sub1}, r/{sub2}
|
||||
---
|
||||
```
|
||||
|
||||
## Technical Approach
|
||||
|
||||
### Files to Modify
|
||||
|
||||
#### `scripts/lib/score.py` - sort_items()
|
||||
|
||||
- [x] Swap HN and YouTube priority in `sort_items()`:
|
||||
- YouTube: priority 2 (was 3)
|
||||
- HN: priority 3 (was 2)
|
||||
|
||||
#### `scripts/lib/render.py` - render_source_status()
|
||||
|
||||
- [x] Move HN section (lines ~318-324) to AFTER YouTube section (lines ~326-334)
|
||||
- [x] Verify render_compact() already has correct order (YouTube before HN) - no change expected
|
||||
|
||||
#### `SKILL.md` (private repo root)
|
||||
|
||||
- [x] Move the 🟡 HN stats line AFTER the 🔴 YouTube stats line in the template
|
||||
- [x] Move HN line after YouTube in the footer summary template too
|
||||
|
||||
#### `~/.claude/skills/last30daysHN/SKILL.md` (test skill)
|
||||
|
||||
- [x] Restore full emoji + box-drawing stats template with correct ordering
|
||||
- [x] Use canonical format: ✅ ├─ 🟠 🔵 🔴 🟡 🌐 🗣️ └─ │
|
||||
|
||||
#### `scripts/lib/ui.py` - show_complete()
|
||||
|
||||
- [x] Move HN output after YouTube in both TTY and non-TTY code paths
|
||||
|
||||
### Files that are already correct (no change needed)
|
||||
|
||||
- `render_compact()` in render.py - already YouTube before HN
|
||||
- `render_context_snippet()` - score-based ordering, no fixed order
|
||||
- `last30days.py` pipeline - processing order doesn't affect display
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] Stats block shows: Reddit > X > YouTube > HN > Web (in that order)
|
||||
- [x] Stats block has all emojis: ✅ 🟠 🔵 🔴 🟡 🌐 🗣️
|
||||
- [x] Stats block uses box-drawing chars: ├─ └─ │
|
||||
- [x] sort_items() tiebreaker: YouTube before HN
|
||||
- [x] render_source_status() shows YouTube before HN
|
||||
- [x] ui.py show_complete() shows YouTube before HN
|
||||
- [x] All existing tests still pass
|
||||
- [x] Run sync.sh to deploy after fixes
|
||||
|
||||
## Sources & References
|
||||
|
||||
- Canonical emoji format established in commit `7c36866` ("Fix v2 output quality")
|
||||
- YouTube emoji added in commit `c66ca7f` ("feat: Add YouTube as 4th research source")
|
||||
- HN added in commit `38a7ea2` ("feat(hackernews): add Hacker News as 5th research source")
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,212 @@
|
||||
---
|
||||
title: "feat: 15-Test Side-by-Side Comparison - Make CROSS the GOAT"
|
||||
type: feat
|
||||
status: active
|
||||
date: 2026-02-25
|
||||
origin: docs/plans/2026-02-25-analysis-cross-source-comparison-plan.md
|
||||
---
|
||||
|
||||
# 15-Test Side-by-Side Comparison - Make CROSS the GOAT
|
||||
|
||||
## Overview
|
||||
|
||||
Run all 5 canonical topics through all 3 skill versions (base, HN, CROSS) for 15 total full last30days runs. Save every result. Analyze side-by-side. Judge which version is best. Then create an improvement plan to make CROSS the definitive next release.
|
||||
|
||||
## Problem Statement / Motivation
|
||||
|
||||
The previous analysis only ran 5 tests on the CROSS branch - never comparing the same topics across all 3 versions. Without true side-by-side data, we can't judge whether CROSS is actually better or if the new features (dynamic YouTube scoring, cross-refs) introduce regressions. The user wants to see all 15 results, know which version wins, and get a concrete plan to make CROSS the GOAT before shipping.
|
||||
|
||||
## The 3 Versions
|
||||
|
||||
| Version | Git State | Sources | YouTube Relevance | Cross-Refs |
|
||||
|---------|-----------|---------|-------------------|------------|
|
||||
| **Base** | commit `427a4e4` | Reddit, X, YouTube, Web | Hardcoded 0.7 | No |
|
||||
| **HN** | `main` / `f60a435` | Reddit, X, YouTube, **HN**, Web | Hardcoded 0.7 | No |
|
||||
| **CROSS** | `feat/youtube-relevance-cross-source` / `0591f55` | Reddit, X, YouTube, HN, Web | Dynamic 0.1-1.0 | Yes (Jaccard 0.5) |
|
||||
|
||||
## The 5 Topics
|
||||
|
||||
| # | Topic | Category | Why chosen |
|
||||
|---|-------|----------|------------|
|
||||
| 1 | "Claude Code skills and MCP servers" | Developer tools | Core user base topic |
|
||||
| 2 | "Seedance AI video generation" | Creative AI | Trending topic, cross-platform buzz |
|
||||
| 3 | "M4 MacBook Pro review" | Consumer tech | Product review, mainstream |
|
||||
| 4 | "best rap songs 2026" | Pop culture | Non-tech stress test |
|
||||
| 5 | "React vs Svelte 2026" | Framework debate | Dev community, opinion-heavy |
|
||||
|
||||
## Test Matrix (15 Runs)
|
||||
|
||||
Run in **topic-sequential** order (all 3 versions of topic 1 back-to-back, then topic 2, etc.) to minimize temporal confounds on YouTube/X search results.
|
||||
|
||||
| Run | Topic | Version | Output File |
|
||||
|-----|-------|---------|-------------|
|
||||
| 1 | Claude Code | Base | `base-1-claude-code.json` |
|
||||
| 2 | Claude Code | HN | `hn-1-claude-code.json` |
|
||||
| 3 | Claude Code | CROSS | `cross-1-claude-code.json` |
|
||||
| 4 | Seedance | Base | `base-2-seedance.json` |
|
||||
| 5 | Seedance | HN | `hn-2-seedance.json` |
|
||||
| 6 | Seedance | CROSS | `cross-2-seedance.json` |
|
||||
| 7 | MacBook | Base | `base-3-macbook.json` |
|
||||
| 8 | MacBook | HN | `hn-3-macbook.json` |
|
||||
| 9 | MacBook | CROSS | `cross-3-macbook.json` |
|
||||
| 10 | Rap songs | Base | `base-4-rap.json` |
|
||||
| 11 | Rap songs | HN | `hn-4-rap.json` |
|
||||
| 12 | Rap songs | CROSS | `cross-4-rap.json` |
|
||||
| 13 | React/Svelte | Base | `base-5-react-svelte.json` |
|
||||
| 14 | React/Svelte | HN | `hn-5-react-svelte.json` |
|
||||
| 15 | React/Svelte | CROSS | `cross-5-react-svelte.json` |
|
||||
|
||||
**Output directory:** `/tmp/last30days-comparison/full/`
|
||||
|
||||
## Execution Protocol
|
||||
|
||||
### Pre-flight (once)
|
||||
|
||||
- [x] Clear model cache: `rm -f ~/.cache/last30days/model_selection.json`
|
||||
- [x] Run `--diagnose` on current branch, save as `diagnose-baseline.json`
|
||||
- [x] Verify all API keys active: Reddit (OPENAI_API_KEY), X (Bird cookies or XAI_API_KEY), YouTube (yt-dlp), HN (no key needed), Web (parallel AI or Brave)
|
||||
- [x] Create output dir: `mkdir -p /tmp/last30days-comparison/full`
|
||||
- [x] Stash any uncommitted changes: `git stash` (none needed - no uncommitted changes)
|
||||
|
||||
### Per-topic loop (repeat 5 times)
|
||||
|
||||
For each topic, run all 3 versions back-to-back:
|
||||
|
||||
```bash
|
||||
# CRITICAL: Clean __pycache__ between EVERY git checkout to prevent stale bytecode
|
||||
cleanup() {
|
||||
find scripts -name '__pycache__' -exec rm -rf {} + 2>/dev/null
|
||||
find scripts -name '*.pyc' -delete 2>/dev/null
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] **Step 1: Base version**
|
||||
- `cleanup && git checkout 427a4e4`
|
||||
- `python3 scripts/last30days.py --diagnose 2>/dev/null` (verify sources match baseline)
|
||||
- `python3 scripts/last30days.py "<topic>" --quick --emit=json > /tmp/last30days-comparison/full/base-{N}-{slug}.json 2>/tmp/last30days-comparison/full/base-{N}-{slug}.log`
|
||||
|
||||
- [ ] **Step 2: HN version**
|
||||
- `cleanup && git checkout main`
|
||||
- `python3 scripts/last30days.py "<topic>" --quick --emit=json > /tmp/last30days-comparison/full/hn-{N}-{slug}.json 2>/tmp/last30days-comparison/full/hn-{N}-{slug}.log`
|
||||
|
||||
- [ ] **Step 3: CROSS version**
|
||||
- `cleanup && git checkout feat/youtube-relevance-cross-source`
|
||||
- `python3 scripts/last30days.py "<topic>" --quick --emit=json > /tmp/last30days-comparison/full/cross-{N}-{slug}.json 2>/tmp/last30days-comparison/full/cross-{N}-{slug}.log`
|
||||
|
||||
### Post-run
|
||||
|
||||
- [x] Return to feature branch: `git checkout feat/youtube-relevance-cross-source`
|
||||
- [x] Verify all 15 JSON files exist and are non-empty
|
||||
- [x] Check for `*_error` fields in any JSON output - flag but include (zero errors)
|
||||
|
||||
## Analysis Dimensions
|
||||
|
||||
### 1. Source Coverage Table
|
||||
|
||||
For each of 15 runs, count items per source:
|
||||
|
||||
| Topic | Version | Reddit | X | YouTube | HN | Web | Total |
|
||||
|-------|---------|--------|---|---------|----|----|-------|
|
||||
|
||||
Expected: Base has 0 HN items. HN and CROSS should have identical source counts (same search code). Any differences indicate API non-determinism.
|
||||
|
||||
### 2. YouTube Relevance Comparison
|
||||
|
||||
**Matched-item analysis:** Match videos by `video_id` across Base/CROSS runs of the same topic. For each matched video:
|
||||
- Base relevance: always 0.7
|
||||
- CROSS relevance: dynamic score
|
||||
- Delta and direction (did dynamic scoring promote or demote this video?)
|
||||
|
||||
**Aggregate analysis:** Distribution stats (min/avg/max/stddev) per version per topic.
|
||||
|
||||
### 3. Cross-Source Links (CROSS only)
|
||||
|
||||
- Count of items with cross_refs per topic
|
||||
- Quality assessment: are the linked items actually about the same story?
|
||||
- Which source pairs link most often? (Reddit-HN? YouTube-HN? X-Reddit?)
|
||||
|
||||
### 4. Score Distribution and Rankings
|
||||
|
||||
- Mean/median score of top 10 items per version per topic
|
||||
- Rank position changes: do the same items appear in different orders?
|
||||
- Does HN crowd out Reddit/X items in the top 10?
|
||||
|
||||
### 5. "Best Version" Judging Criteria
|
||||
|
||||
Define BEFORE analyzing to avoid bias:
|
||||
|
||||
| Metric | Weight | How measured |
|
||||
|--------|--------|-------------|
|
||||
| Source diversity | 25% | Shannon entropy across source types in top 15 items |
|
||||
| Score quality | 25% | Mean score of top 10 items |
|
||||
| Relevance accuracy | 25% | YouTube: do high-relevance videos actually match the query? Manual spot-check of top 3 + bottom 3 per topic |
|
||||
| Bonus features | 25% | HN value-add (unique info not in other sources) + cross-ref utility (do xrefs add value to the reader?) |
|
||||
|
||||
### 6. HN Value-Add Assessment
|
||||
|
||||
For each topic where HN returns results:
|
||||
- How many HN items appear in the overall top 10?
|
||||
- Do HN items provide information not available from Reddit/X/YouTube?
|
||||
- Are HN comment insights (top_comments) genuinely useful?
|
||||
|
||||
## Deliverables
|
||||
|
||||
### A. Raw Results Archive
|
||||
|
||||
All 15 JSON files plus logs saved in `/tmp/last30days-comparison/full/`, also copied to `docs/comparison-results/` for persistence.
|
||||
|
||||
### B. Comparison Summary Table
|
||||
|
||||
A single markdown table showing all 15 runs with key metrics per cell.
|
||||
|
||||
### C. Version Verdict
|
||||
|
||||
Clear judgment: which version is best overall, and best per topic category (tech, consumer, culture).
|
||||
|
||||
### D. CROSS Improvement Plan
|
||||
|
||||
Concrete changes to make CROSS the GOAT:
|
||||
|
||||
**Based on the previous analysis (see origin doc), likely improvements include:**
|
||||
|
||||
1. **Fix cross-source linking** - Switch from char-trigram Jaccard (0.5) to hybrid similarity (max of trigram + token Jaccard) at threshold 0.40. Previous modeling showed this goes from 1 link to 24 links across 5 tests.
|
||||
|
||||
2. **Cross-ref rendering** - Change from cryptic `[xref: X1, HN3]` IDs to human-readable `[also on: Reddit, HN]` labels.
|
||||
|
||||
3. **HN search broadening** - Investigate why React/Svelte returns 0 HN items.
|
||||
|
||||
4. **YouTube relevance** - Already working well, may need minor threshold tuning based on 15-test data.
|
||||
|
||||
5. **Score normalization** - Ensure HN items don't systematically crowd out other sources in the merged ranking.
|
||||
|
||||
**New improvements to discover from 15-test data:**
|
||||
- Regressions introduced by CROSS changes
|
||||
- Edge cases where Base or HN outperforms CROSS
|
||||
- Topic-specific tuning opportunities
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] All 15 JSON result files saved and non-empty
|
||||
- [x] All 15 runs use identical source routing (verified via --diagnose)
|
||||
- [x] __pycache__ cleaned between every git checkout
|
||||
- [x] Comparison summary table covers all 15 runs
|
||||
- [x] YouTube matched-item analysis for at least 3 topics (all 5 done)
|
||||
- [x] Cross-source link quality spot-check for CROSS runs
|
||||
- [x] Clear version verdict with supporting data
|
||||
- [x] CROSS improvement plan with specific code changes
|
||||
- [x] All results appended to the analysis document for the user to review
|
||||
|
||||
## Technical Considerations
|
||||
|
||||
- **__pycache__ poisoning**: Python caches bytecode. Switching git commits without clearing `__pycache__` means old code runs even after checkout. MUST clean between every checkout.
|
||||
- **API rate limiting**: 15 runs hitting Reddit, X, YouTube, HN APIs. The `--quick` mode and natural ~30-90s per run provide spacing, but monitor for 429s in logs.
|
||||
- **YouTube non-determinism**: yt-dlp search results shift over time. Topic-sequential ordering minimizes this by running all 3 versions of the same topic within ~3-5 minutes.
|
||||
- **X search session**: Bird CLI depends on browser cookies. If session expires mid-run, X results degrade silently. Check X item counts across runs.
|
||||
- **`--quick` limitation**: Results reflect Phase 1 only (8-12 items per source). Full pipeline with `--deep` might show different patterns. Document this caveat.
|
||||
|
||||
## Sources & References
|
||||
|
||||
- Previous analysis: [docs/plans/2026-02-25-analysis-cross-source-comparison-plan.md](docs/plans/2026-02-25-analysis-cross-source-comparison-plan.md)
|
||||
- Implementation plan: [docs/plans/2026-02-25-feat-youtube-relevance-and-cross-source-linking-plan.md](docs/plans/2026-02-25-feat-youtube-relevance-and-cross-source-linking-plan.md)
|
||||
- Existing comparison harness: [scripts/test-v1-vs-v2.sh](scripts/test-v1-vs-v2.sh)
|
||||
- Scoring weights: [scripts/lib/score.py](scripts/lib/score.py) - 45% relevance + 25% recency + 30% engagement
|
||||
@@ -0,0 +1,471 @@
|
||||
---
|
||||
title: "feat: GOAT Synthesis Output - 15-Test Comparison and CROSS Improvement"
|
||||
type: feat
|
||||
status: completed
|
||||
date: 2026-02-25
|
||||
origin: docs/plans/2026-02-25-analysis-cross-source-comparison-plan.md
|
||||
---
|
||||
|
||||
# GOAT Synthesis Output - 15-Test Comparison and CROSS Improvement
|
||||
|
||||
## Overview
|
||||
|
||||
The synthesis output - the "What I learned" / "I'm now an expert on X" narrative - is the ONLY thing that matters. All data collection, scoring, deduplication, and rendering exist solely to produce the best possible synthesis. This plan runs 15 synthesis comparisons (5 topics x 3 versions), judges which version produces the best final output, and creates concrete changes to make CROSS the GOAT.
|
||||
|
||||
## Problem Statement / Motivation
|
||||
|
||||
The previous 15-test comparison analyzed the data layer (JSON files, item counts, YouTube scores, cross-ref counts). That analysis showed CROSS wins on data quality metrics. But data quality != output quality. The user's exact words: "that's all that matters... all DATA/methods/etc. should be about making it the best fucking results ever."
|
||||
|
||||
The paper.design example shows what great output looks like:
|
||||
- "Paper Desktop + MCP is the big story" - a specific, grounded finding
|
||||
- "per @stephenhaney" / "per r/UXDesign" - actual source citations
|
||||
- "698 likes on X" - real engagement numbers woven into narrative
|
||||
- "KEY PATTERNS from the research:" - structured patterns, not vague summaries
|
||||
- "---I'm now an expert on paper.design" - confident, actionable invitation
|
||||
|
||||
We need to see what Base, HN, and CROSS actually produce as narratives, side-by-side, for the same topics. Then fix CROSS until its output is undeniably the best.
|
||||
|
||||
## Approach: Controlled Synthesis Comparison
|
||||
|
||||
### Why not re-run `claude --print "/last30days X"` 15 times?
|
||||
|
||||
Three problems:
|
||||
1. **WebSearch non-determinism** - Claude's WebSearch tool returns different results per run, confounding version comparison
|
||||
2. **QUERY_TYPE non-determinism** - Claude classifies "best rap songs 2026" as RECOMMENDATIONS one run and GENERAL the next, producing structurally different outputs
|
||||
3. **Reddit API non-determinism** - The existing JSON data shows Base got 4 Reddit items for Claude Code while CROSS got 10, purely from API timing
|
||||
|
||||
### The controlled approach
|
||||
|
||||
Reuse the 15 JSON files already captured (same-day, topic-sequential, verified clean). For each:
|
||||
|
||||
1. Convert JSON to compact markdown using each version's `render_compact()` (preserving version-specific rendering like CROSS's `[xref:]` tags)
|
||||
2. Feed the compact markdown to Claude with the synthesis instructions from each version's SKILL.md
|
||||
3. Hardcode QUERY_TYPE per topic to eliminate classification variance
|
||||
4. Exclude WebSearch to isolate Python pipeline differences
|
||||
5. Save all 15 synthesis outputs for side-by-side comparison
|
||||
|
||||
This gives us 15 synthesis narratives produced from identical underlying data, with only the version's rendering and synthesis instructions varying. The fairest possible comparison.
|
||||
|
||||
## The 5 Topics and Their QUERY_TYPEs
|
||||
|
||||
| # | Topic | QUERY_TYPE | Rationale |
|
||||
|---|-------|------------|-----------|
|
||||
| 1 | "Claude Code skills and MCP servers" | GENERAL | Broad understanding, not a ranked list |
|
||||
| 2 | "Seedance AI video generation" | NEWS | Recent product launch, what's happening |
|
||||
| 3 | "M4 MacBook Pro review" | RECOMMENDATIONS | "review" implies evaluation/ranking |
|
||||
| 4 | "best rap songs 2026" | RECOMMENDATIONS | "best" triggers ranked list |
|
||||
| 5 | "React vs Svelte 2026" | GENERAL | Framework debate, not ranked |
|
||||
|
||||
## Technical Approach
|
||||
|
||||
### Phase 1: Setup and Data Preservation
|
||||
|
||||
#### 1a. Copy JSON data to repo (CRITICAL - `/tmp` is ephemeral)
|
||||
|
||||
```bash
|
||||
mkdir -p docs/comparison-results/json
|
||||
cp /tmp/last30days-comparison/full/*.json docs/comparison-results/json/
|
||||
```
|
||||
|
||||
- [x] Copy all 15 JSON files to `docs/comparison-results/json/`
|
||||
- [x] Verify all 15 files are present and non-empty
|
||||
|
||||
#### 1b. Build JSON-to-compact converter
|
||||
|
||||
The render pipeline differs per version. We need each version's `render_compact()` to produce the compact markdown that version would actually show Claude.
|
||||
|
||||
**Script: `scripts/generate-synthesis-inputs.py`**
|
||||
|
||||
```python
|
||||
"""
|
||||
For each of the 15 JSON result files, render compact markdown
|
||||
using that version's render_compact() function.
|
||||
|
||||
The JSON files store raw data. Each version's render.py formats
|
||||
it differently (CROSS adds [xref:] tags, relevance scores, etc.).
|
||||
"""
|
||||
import json
|
||||
import sys
|
||||
sys.path.insert(0, 'scripts')
|
||||
from lib.render import render_compact
|
||||
from lib.schema import Report
|
||||
|
||||
for json_file in sorted(glob('docs/comparison-results/json/*.json')):
|
||||
data = json.load(open(json_file))
|
||||
report = Report.from_dict(data)
|
||||
compact = render_compact(report)
|
||||
# Save as .md alongside the JSON
|
||||
md_file = json_file.replace('/json/', '/compact/').replace('.json', '.md')
|
||||
open(md_file, 'w').write(compact)
|
||||
```
|
||||
|
||||
Problem: `render_compact()` differs across Base/HN/CROSS. Solution: run the converter 3 times, once per git checkout, only for that version's files.
|
||||
|
||||
- [x] Write `scripts/generate-synthesis-inputs.py`
|
||||
- [x] Run on Base checkout for `base-*.json` files -> `docs/comparison-results/compact/base-*.md`
|
||||
- [x] Run on HN checkout for `hn-*.json` files -> `docs/comparison-results/compact/hn-*.md`
|
||||
- [x] Run on CROSS checkout for `cross-*.json` files -> `docs/comparison-results/compact/cross-*.md`
|
||||
- [x] Clean `__pycache__` between every git checkout
|
||||
|
||||
#### 1c. Extract synthesis prompts from each version's SKILL.md
|
||||
|
||||
Each version's SKILL.md contains the instructions Claude uses to synthesize the compact data into the narrative. These differ across versions (CROSS has cross-ref instructions, HN has HN citation rules, etc.).
|
||||
|
||||
- [x] Check out Base (427a4e4), copy SKILL.md synthesis section (Judge Agent + Display phases) to `docs/comparison-results/prompts/base-synthesis-prompt.md`
|
||||
- [x] Check out HN (main), copy to `docs/comparison-results/prompts/hn-synthesis-prompt.md`
|
||||
- [x] Check out CROSS (feat/youtube-relevance-cross-source), copy to `docs/comparison-results/prompts/cross-synthesis-prompt.md`
|
||||
- [x] For each, prepend the hardcoded QUERY_TYPE and topic name
|
||||
|
||||
### Phase 2: Generate 15 Synthesis Outputs
|
||||
|
||||
#### 2a. Write the synthesis runner
|
||||
|
||||
**Script: `scripts/run-synthesis-comparison.py`**
|
||||
|
||||
For each of the 15 (topic, version) pairs:
|
||||
1. Read the compact markdown from `docs/comparison-results/compact/{version}-{n}-{slug}.md`
|
||||
2. Read the synthesis prompt from `docs/comparison-results/prompts/{version}-synthesis-prompt.md`
|
||||
3. Call the Anthropic API (Claude Sonnet 4.6 for cost/speed, or Opus 4.6 for max quality - configurable)
|
||||
4. Template: "You are running /last30days. The user asked about '{topic}'. QUERY_TYPE = {query_type}. Here is the research data:\n\n{compact_markdown}\n\n{synthesis_prompt}"
|
||||
5. Save response to `docs/comparison-results/synthesis/{version}-{n}-{slug}.md`
|
||||
|
||||
```python
|
||||
"""
|
||||
Generate synthesis narratives for all 15 test cases.
|
||||
Uses Anthropic API directly to control the synthesis environment.
|
||||
"""
|
||||
import anthropic
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
client = anthropic.Anthropic()
|
||||
|
||||
TOPICS = [
|
||||
(1, 'claude-code', 'Claude Code skills and MCP servers', 'GENERAL'),
|
||||
(2, 'seedance', 'Seedance AI video generation', 'NEWS'),
|
||||
(3, 'macbook', 'M4 MacBook Pro review', 'RECOMMENDATIONS'),
|
||||
(4, 'rap', 'best rap songs 2026', 'RECOMMENDATIONS'),
|
||||
(5, 'react-svelte', 'React vs Svelte 2026', 'GENERAL'),
|
||||
]
|
||||
VERSIONS = ['base', 'hn', 'cross']
|
||||
|
||||
for version in VERSIONS:
|
||||
prompt_text = Path(f'docs/comparison-results/prompts/{version}-synthesis-prompt.md').read_text()
|
||||
for num, slug, topic, qtype in TOPICS:
|
||||
compact = Path(f'docs/comparison-results/compact/{version}-{num}-{slug}.md').read_text()
|
||||
|
||||
user_msg = f"""You are the /last30days skill. The user asked: "{topic}"
|
||||
|
||||
Parsed intent:
|
||||
- TOPIC = {topic}
|
||||
- TARGET_TOOL = unknown
|
||||
- QUERY_TYPE = {qtype}
|
||||
|
||||
Here is the research output from the Python pipeline:
|
||||
|
||||
{compact}
|
||||
|
||||
Now synthesize this research into your expert narrative following these instructions:
|
||||
|
||||
{prompt_text}"""
|
||||
|
||||
response = client.messages.create(
|
||||
model=os.environ.get('SYNTHESIS_MODEL', 'claude-sonnet-4-6-20250514'),
|
||||
max_tokens=4096,
|
||||
messages=[{"role": "user", "content": user_msg}]
|
||||
)
|
||||
|
||||
output = response.content[0].text
|
||||
out_path = Path(f'docs/comparison-results/synthesis/{version}-{num}-{slug}.md')
|
||||
out_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
out_path.write_text(output)
|
||||
print(f' {version}-{num}-{slug}: {len(output)} chars')
|
||||
```
|
||||
|
||||
- [x] Write `scripts/run-synthesis-comparison.py`
|
||||
- [x] Run it (15 API calls, ~2-3 min total)
|
||||
- [x] Verify all 15 synthesis files exist and are non-empty
|
||||
|
||||
#### 2b. Quality check synthesis outputs
|
||||
|
||||
Spot-check 3 outputs (one per version) for:
|
||||
- Did Claude actually produce a "What I learned" narrative?
|
||||
- Are there real citations (per @handle, per r/subreddit)?
|
||||
- Is the stats block present?
|
||||
- Is there an invitation at the end?
|
||||
|
||||
If any output is broken (e.g., Claude refused or produced meta-commentary instead of synthesis), adjust the prompt and re-run that one.
|
||||
|
||||
- [x] Spot-check `cross-1-claude-code.md`, `hn-2-seedance.md`, `base-4-rap.md`
|
||||
- [x] Fix any prompt issues and re-run failed outputs
|
||||
|
||||
### Phase 3: Evaluate - Which Version Produces the Best Output?
|
||||
|
||||
#### 3a. Define evaluation rubric (BEFORE reading any outputs)
|
||||
|
||||
Score each synthesis 1-5 on these dimensions:
|
||||
|
||||
| Dimension | Weight | 1 (Bad) | 3 (OK) | 5 (Great) |
|
||||
|-----------|--------|---------|--------|-----------|
|
||||
| **Groundedness** | 30% | Generic statements, no citations | Some citations but mixed with pre-trained knowledge | Every finding backed by specific source (per @handle, per r/sub, per channel) |
|
||||
| **Specificity** | 25% | Vague ("AI video tools are improving") | Some specifics but also filler | Named entities, exact numbers, product versions ("Seedance 2.0 added lip sync per @aifilmmaker") |
|
||||
| **Coverage** | 20% | Only mentions 1-2 sources | Mentions most sources but unevenly | Weaves findings from Reddit, X, YouTube, HN naturally into narrative |
|
||||
| **Actionability** | 15% | "This is interesting" with no next step | Generic suggestions | Specific, research-derived suggestions ("I can show you Seedance 2.0's lip sync workflow") |
|
||||
| **Format Compliance** | 10% | Missing stats block, no invitation | Partial stats, generic invitation | Perfect stats block with real counts, source-specific invitation |
|
||||
|
||||
Total: weighted average, 1.0 to 5.0
|
||||
|
||||
#### 3b. LLM-as-judge evaluation (blinded)
|
||||
|
||||
**Script: `scripts/evaluate-synthesis.py`**
|
||||
|
||||
For each topic (5 total), present all 3 versions to an evaluator LLM with version labels stripped. Ask it to score each on the rubric above.
|
||||
|
||||
```python
|
||||
"""
|
||||
Blinded LLM evaluation of synthesis outputs.
|
||||
Strips version labels, presents as Version A/B/C in random order.
|
||||
"""
|
||||
import anthropic
|
||||
import random
|
||||
|
||||
RUBRIC = """Score each version 1-5 on these dimensions:
|
||||
|
||||
1. GROUNDEDNESS (30%): Does the narrative cite specific sources?
|
||||
Look for: "per @handle", "per r/subreddit", "per [channel] on YouTube"
|
||||
1 = generic, no citations. 5 = every finding has a source.
|
||||
|
||||
2. SPECIFICITY (25%): Are findings specific or vague?
|
||||
1 = "AI video is trending". 5 = "Seedance 2.0 added lip sync, 698 likes per @paper"
|
||||
|
||||
3. COVERAGE (20%): Does it represent findings from all available sources?
|
||||
1 = only Reddit mentioned. 5 = Reddit, X, YouTube, HN woven naturally.
|
||||
|
||||
4. ACTIONABILITY (15%): Does the invitation give specific next steps based on research?
|
||||
1 = "let me know if you want more". 5 = "I can walk you through Seedance 2.0's workflow"
|
||||
|
||||
5. FORMAT COMPLIANCE (10%): Stats block present with real counts? Citation format correct?
|
||||
1 = missing stats. 5 = perfect stats block + source counts + top voices.
|
||||
|
||||
For each version, output:
|
||||
- Groundedness: X/5
|
||||
- Specificity: X/5
|
||||
- Coverage: X/5
|
||||
- Actionability: X/5
|
||||
- Format: X/5
|
||||
- Weighted Total: X.X/5.0
|
||||
- One sentence on what makes this version better or worse than the others.
|
||||
"""
|
||||
|
||||
# For each topic, randomly shuffle version order to prevent position bias
|
||||
for topic in TOPICS:
|
||||
versions = ['base', 'hn', 'cross']
|
||||
random.shuffle(versions)
|
||||
label_map = {v: chr(65+i) for i, v in enumerate(versions)} # A, B, C
|
||||
|
||||
# Present to evaluator
|
||||
prompt = f"Topic: {topic}\n\n"
|
||||
for v in versions:
|
||||
text = read_synthesis(v, topic)
|
||||
prompt += f"=== VERSION {label_map[v]} ===\n{text}\n\n"
|
||||
prompt += RUBRIC
|
||||
|
||||
# Call evaluator (use Opus for best judgment)
|
||||
response = evaluate(prompt)
|
||||
# Map labels back to versions
|
||||
save_evaluation(topic, response, label_map)
|
||||
```
|
||||
|
||||
- [x] Write `scripts/evaluate-synthesis.py`
|
||||
- [x] Run evaluation (5 API calls, one per topic)
|
||||
- [x] Collect scores into summary table
|
||||
|
||||
#### 3c. Human spot-check
|
||||
|
||||
Read 3 synthesis outputs yourself (one per version, same topic) and verify the LLM evaluation makes sense. If the LLM scores don't match your gut, investigate.
|
||||
|
||||
- [x] Read all 3 versions for topic 1 (Claude Code) side-by-side
|
||||
- [x] Read all 3 versions for topic 2 (Seedance) side-by-side
|
||||
- [x] Verify LLM scores align with human judgment
|
||||
|
||||
#### 3d. Compile verdict
|
||||
|
||||
| Topic | Base | HN | CROSS | Winner |
|
||||
|-------|------|-----|-------|--------|
|
||||
| Claude Code | X.X | X.X | X.X | ? |
|
||||
| Seedance | X.X | X.X | X.X | ? |
|
||||
| MacBook | X.X | X.X | X.X | ? |
|
||||
| Rap songs | X.X | X.X | X.X | ? |
|
||||
| React/Svelte | X.X | X.X | X.X | ? |
|
||||
| **Overall** | **X.X** | **X.X** | **X.X** | **?** |
|
||||
|
||||
Plus per-dimension breakdown:
|
||||
- Which version is best at Groundedness?
|
||||
- Which version is best at Specificity?
|
||||
- Which version is best at Coverage?
|
||||
- Which version is best at Actionability?
|
||||
- Which version is best at Format Compliance?
|
||||
|
||||
- [x] Build summary table with scores
|
||||
- [x] Identify per-dimension winners
|
||||
- [x] Write verdict paragraph
|
||||
|
||||
### Phase 4: Make CROSS the GOAT
|
||||
|
||||
Based on the evaluation, identify the specific synthesis weaknesses and fix them. Changes fall into two buckets:
|
||||
|
||||
#### Bucket A: Data pipeline changes (score.py, dedupe.py, render.py, youtube_yt.py)
|
||||
|
||||
These affect what compact markdown Claude sees. From the previous JSON analysis, known issues:
|
||||
|
||||
1. **Cross-source linking nearly broken** (3/178 items linked at 0.5 threshold)
|
||||
- Fix: hybrid similarity (token + trigram Jaccard) at 0.40 threshold
|
||||
- File: `scripts/lib/dedupe.py`
|
||||
- Expected impact: 26 items linked instead of 3
|
||||
|
||||
2. **Cross-ref rendering cryptic** (`[xref: HN5, HN4]` is meaningless)
|
||||
- Fix: Show `[also on: HN, Reddit]` with source names
|
||||
- File: `scripts/lib/render.py`
|
||||
- Expected impact: Claude can naturally say "discussed on both Reddit and HN"
|
||||
|
||||
3. **YouTube synonym gap** ("hip hop" != "rap" in relevance scoring)
|
||||
- Fix: SYNONYMS dict in youtube_yt.py
|
||||
- File: `scripts/lib/youtube_yt.py`
|
||||
- Expected impact: "Lit Hip Hop Mix 2026" gets 0.67+ instead of 0.33
|
||||
|
||||
4. **HN search too narrow** (React/Svelte returns 0 HN items)
|
||||
- Fix: Split multi-keyword topics into OR queries for HN Algolia
|
||||
- File: `scripts/lib/hackernews.py` (or wherever HN search lives)
|
||||
- Expected impact: Framework debate topics get HN coverage
|
||||
|
||||
#### Bucket B: Synthesis instruction changes (SKILL.md)
|
||||
|
||||
These affect how Claude interprets the data. Specific changes to discover from the 15-output comparison:
|
||||
|
||||
5. **Cross-source narrative instruction** - If CROSS data has `[also on: HN, Reddit]` tags but Claude ignores them, add explicit instruction: "When items appear across multiple platforms, lead with that cross-platform signal - it's the strongest evidence of importance."
|
||||
|
||||
6. **YouTube transcript utilization** - CROSS provides transcript snippets. If Claude's synthesis doesn't use them, add: "YouTube transcripts contain direct quotes and technical details. Weave 1-2 transcript quotes into your synthesis."
|
||||
|
||||
7. **Source weighting for synthesis** - Current: Reddit/X > YouTube > Web. Should HN be weighted higher for tech topics? Should YouTube transcript content elevate YouTube's synthesis weight?
|
||||
|
||||
8. **Citation density tuning** - The paper.design example has ~1 citation per paragraph. If any version over-cites (every sentence) or under-cites (no sources), adjust the citation frequency instruction.
|
||||
|
||||
9. **Stats block accuracy** - Verify each version's stats block matches actual data. If counts are wrong, the render output may need to include pre-computed stats that Claude can copy directly.
|
||||
|
||||
10. **Invitation quality** - The best invitations reference specific things from the research ("I can walk you through Seedance 2.0's lip sync workflow"). If a version produces generic invitations ("let me know if you want to know more"), strengthen the instruction.
|
||||
|
||||
Changes 5-10 are discovered from Phase 3 analysis. They may or may not apply.
|
||||
|
||||
- [x] Implement Bucket A changes (data pipeline fixes from JSON analysis)
|
||||
- [x] Analyze Phase 3 results to identify Bucket B changes needed
|
||||
- [x] Implement Bucket B changes (SKILL.md synthesis instruction improvements)
|
||||
- [x] Run `bash scripts/sync.sh` to deploy updated skill
|
||||
|
||||
### Phase 5: Validate
|
||||
|
||||
Re-run 5 synthesis outputs (one per topic, CROSS-after only) using the improved CROSS code, and compare against CROSS-before.
|
||||
|
||||
- [x] Generate 5 new compact markdowns from JSON data using improved render.py
|
||||
- [x] Generate 5 new synthesis outputs using improved SKILL.md
|
||||
- [x] Score with same rubric (LLM-as-judge, blinded against CROSS-before)
|
||||
- [x] Verify improvement on every dimension, or iterate
|
||||
|
||||
## File Structure
|
||||
|
||||
```
|
||||
docs/comparison-results/
|
||||
json/ # 15 JSON files (already exist at /tmp, need copying)
|
||||
base-1-claude-code.json
|
||||
hn-1-claude-code.json
|
||||
cross-1-claude-code.json
|
||||
... (15 total)
|
||||
compact/ # 15 compact markdown files (rendered per-version)
|
||||
base-1-claude-code.md
|
||||
hn-1-claude-code.md
|
||||
cross-1-claude-code.md
|
||||
... (15 total)
|
||||
prompts/ # 3 synthesis prompts (extracted from each SKILL.md)
|
||||
base-synthesis-prompt.md
|
||||
hn-synthesis-prompt.md
|
||||
cross-synthesis-prompt.md
|
||||
synthesis/ # 15 synthesis narratives (the actual output!)
|
||||
base-1-claude-code.md
|
||||
hn-1-claude-code.md
|
||||
cross-1-claude-code.md
|
||||
... (15 total)
|
||||
evaluation/ # 5 evaluation results (one per topic, blinded)
|
||||
eval-1-claude-code.md
|
||||
eval-2-seedance.md
|
||||
eval-3-macbook.md
|
||||
eval-4-rap.md
|
||||
eval-5-react-svelte.md
|
||||
summary.md # Final verdict with all scores and improvement plan
|
||||
|
||||
scripts/
|
||||
generate-synthesis-inputs.py # JSON -> compact converter
|
||||
run-synthesis-comparison.py # Compact + prompt -> synthesis via Claude API
|
||||
evaluate-synthesis.py # Blinded LLM evaluation
|
||||
```
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] All 15 JSON files preserved in `docs/comparison-results/json/`
|
||||
- [x] All 15 compact markdowns generated (version-specific rendering preserved)
|
||||
- [x] All 3 synthesis prompts extracted from version-specific SKILL.md files
|
||||
- [x] All 15 synthesis narratives generated and saved
|
||||
- [x] All 15 syntheses scored on 5-dimension rubric (blinded, LLM-as-judge)
|
||||
- [x] Summary table shows per-topic and overall winner
|
||||
- [x] At least 3 synthesis outputs human-spot-checked against LLM scores
|
||||
- [x] CROSS improvement plan includes both data pipeline (Bucket A) and synthesis instruction (Bucket B) changes
|
||||
- [x] Bucket A changes implemented with tests
|
||||
- [x] Bucket B changes implemented and deployed via sync.sh
|
||||
- [x] 5 validation synthesis outputs show improvement over CROSS-before
|
||||
- [x] Final summary.md documents everything: scores, verdict, changes, validation
|
||||
|
||||
## Dependencies & Risks
|
||||
|
||||
| Risk | Mitigation |
|
||||
|------|------------|
|
||||
| `/tmp` data loss before copying | Phase 1a is the first action - copy immediately |
|
||||
| Claude API rate limits during synthesis | 15 calls is well under limits; add 2s sleep between calls |
|
||||
| LLM evaluator bias toward longer outputs | Rubric weights specificity and groundedness, not length |
|
||||
| QUERY_TYPE affecting output format | Hardcoded per topic in synthesis prompt |
|
||||
| Reddit item-count variance confounding comparison | Note caveat; flag topics where counts differ >30% |
|
||||
| render_compact() crash on JSON data | Test converter on 1 file before batch run |
|
||||
|
||||
## Technical Considerations
|
||||
|
||||
### Why Anthropic API instead of `claude --print`?
|
||||
|
||||
1. **Controlled environment** - Same model, same temperature, same max_tokens for all 15
|
||||
2. **No WebSearch confound** - API calls don't have tool access unless we grant it
|
||||
3. **Reproducible** - Can re-run with different models or prompts
|
||||
4. **Faster** - API call takes ~10s vs ~3min for full `claude --print` with tools
|
||||
|
||||
### Why reuse JSON data instead of re-running the pipeline?
|
||||
|
||||
1. **Eliminates temporal non-determinism** - Same Reddit/X/YouTube data for all comparisons
|
||||
2. **No rate limiting** - Zero API calls to source platforms
|
||||
3. **Already validated** - 15 files verified clean, zero errors
|
||||
4. **Still tests rendering differences** - Each version's render_compact() runs on its checkout
|
||||
|
||||
### What about the WebSearch step?
|
||||
|
||||
The full skill pipeline includes Claude doing WebSearch after the Python script. We deliberately exclude this because:
|
||||
1. WebSearch results vary per run (different web results each time)
|
||||
2. WebSearch is identical across all 3 versions (no version difference to test)
|
||||
3. Including it would confound the comparison with noise
|
||||
4. The Python pipeline data is where version differences live
|
||||
|
||||
## Sources & References
|
||||
|
||||
- Previous JSON analysis: [docs/plans/2026-02-25-analysis-cross-source-comparison-plan.md](docs/plans/2026-02-25-analysis-cross-source-comparison-plan.md) - data-layer comparison with scoring verdict
|
||||
- Previous test plan: [docs/plans/2026-02-25-feat-15-test-comparison-make-cross-goat-plan.md](docs/plans/2026-02-25-feat-15-test-comparison-make-cross-goat-plan.md) - execution protocol for 15 JSON test runs
|
||||
- SKILL.md synthesis instructions: `SKILL.md` lines 165-320 (Judge Agent + Display phases)
|
||||
- Scoring weights: `scripts/lib/score.py` - 45% relevance + 25% recency + 30% engagement
|
||||
- Render pipeline: `scripts/lib/render.py:57` - `render_compact()` function
|
||||
- Cross-source linking: `scripts/lib/dedupe.py:160` - `cross_source_link()` function
|
||||
- YouTube relevance: `scripts/lib/youtube_yt.py` - `_compute_relevance()` token overlap
|
||||
- Existing test harness: `scripts/test-v1-vs-v2.sh:104` - `claude --print` approach
|
||||
- YouTube display bug: `docs/plans/2026-02-15-fix-youtube-display-and-search-quality-plan.md`
|
||||
- Output formatting fixes: `docs/plans/2026-02-06-fix-last30days-v2-formatting-reddit-citations-plan.md`
|
||||
@@ -0,0 +1,254 @@
|
||||
---
|
||||
title: "feat: Add Polymarket prediction market search as 6th source"
|
||||
type: feat
|
||||
status: completed
|
||||
date: 2026-02-25
|
||||
---
|
||||
|
||||
# feat: Add Polymarket Prediction Market Search
|
||||
|
||||
## Overview
|
||||
|
||||
Add Polymarket as a 6th research source to last30days. When researching any topic, search Polymarket's public API for relevant prediction markets - surfacing what people are putting real money on alongside what they're saying on Reddit/X/YouTube/HN/Web.
|
||||
|
||||
Example: "/last30days Arizona Basketball" would find markets on tournament seeding, Big 12 title odds, and March Madness outcomes. The signal is unique - betting odds reflect conviction, not just opinions.
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
Hit Polymarket's Gamma API with **smart multi-query search** - not just the raw topic, but expanded related keywords to find markets a human researcher would think of. Show price movement context ("down from 23.7% peak") using the API's built-in price change fields. No API key needed.
|
||||
|
||||
Also: hide sources with zero results from the stats box (all sources, not just Polymarket).
|
||||
|
||||
## Technical Approach
|
||||
|
||||
### API Details
|
||||
|
||||
**Endpoint:** `GET https://gamma-api.polymarket.com/public-search?q={topic}&limit={N}`
|
||||
|
||||
- No authentication required (free, public, read-only)
|
||||
- Rate limit: 350 req/10s (very generous)
|
||||
- Returns `{"events": [...], "pagination": {...}}`
|
||||
- Events contain nested `markets` arrays
|
||||
- `outcomePrices` is a JSON-encoded string - must `json.loads()` it
|
||||
- `volume` and `liquidity` are strings at market level, floats at event level
|
||||
- **Price movement fields on every market:** `oneDayPriceChange`, `oneWeekPriceChange`, `oneMonthPriceChange` - these are free, no extra API calls
|
||||
|
||||
### Intelligence Layer: Smart Query Expansion
|
||||
|
||||
A single keyword search is dumb. "Iran" should find markets about Iran strikes, nuclear program, sanctions, oil prices, Khamenei. "Arizona Basketball" should find NCAA tournament odds, Big 12 title, March Madness seeding.
|
||||
|
||||
**How it works:**
|
||||
|
||||
1. **Extract core subject** using `_extract_core_subject(topic)` (already exists for YouTube/X)
|
||||
2. **Generate 2-4 expanded queries** from the topic:
|
||||
- The raw topic itself: `"Arizona Basketball"`
|
||||
- Broader context: `"Arizona NCAA"`, `"Arizona Big 12"`
|
||||
- For people/entities: add key associated terms (e.g., "Iran" -> "Iran strikes", "Khamenei", "Iran nuclear")
|
||||
3. **Run all queries in parallel** against `/public-search` (rate limit is 350/10s, we're using 3-4)
|
||||
4. **Merge and dedupe** results across queries (same event ID = same market)
|
||||
5. **Score by relevance to original topic** - markets found by the raw topic query get a relevance boost over expanded-query matches
|
||||
|
||||
**Query expansion strategy:**
|
||||
|
||||
```python
|
||||
def _expand_polymarket_queries(topic: str) -> List[str]:
|
||||
"""Generate 2-4 search queries to cast a wider net."""
|
||||
core = _extract_core_subject(topic)
|
||||
queries = [core] # Always include the core topic
|
||||
|
||||
# Split multi-word topics into component searches
|
||||
words = core.split()
|
||||
if len(words) >= 2:
|
||||
# Try the first significant word alone (e.g., "Arizona" from "Arizona Basketball")
|
||||
queries.append(words[0])
|
||||
|
||||
# Add the full topic if different from core
|
||||
if topic.lower() != core.lower():
|
||||
queries.append(topic)
|
||||
|
||||
return list(dict.fromkeys(queries))[:4] # Dedupe, cap at 4
|
||||
```
|
||||
|
||||
This is the same approach as YouTube synonym expansion and X handle resolution - cast a wider net, then score by relevance.
|
||||
|
||||
### Price Movement Context
|
||||
|
||||
The API gives us price change data for free. Use it to make the output actually useful:
|
||||
|
||||
```
|
||||
Will Arizona win the NCAA Tournament?
|
||||
Yes: 12% (down 11.7% this month) | No: 88%
|
||||
$342K vol24h | $2.1M liquidity
|
||||
```
|
||||
|
||||
**Fields available:**
|
||||
- `oneDayPriceChange` - "up 3% today"
|
||||
- `oneWeekPriceChange` - "down 5% this week"
|
||||
- `oneMonthPriceChange` - "down 11.7% this month"
|
||||
|
||||
Show the most significant movement (largest absolute change). Only show if change > 1% to avoid noise.
|
||||
|
||||
### Key Design Decisions
|
||||
|
||||
**Event-level granularity (not market-level).** Each event becomes one `PolymarketItem` showing its title and top 3 markets by volume. A "Trump" query returns 10 events, not 40+ individual markets. This keeps item counts manageable.
|
||||
|
||||
**Smart multi-query search with dedup.** Don't rely on one keyword search. Expand the topic into 2-4 related queries, run them all, merge by event ID. This catches markets that use different terminology than the user's query.
|
||||
|
||||
**Price movement context by default.** Show the most significant price change (day/week/month) inline with outcome prices. This makes prediction markets actually useful as a research signal - not just "Yes 65%" but "Yes 65%, up 12% this week."
|
||||
|
||||
**Date filtering uses `active=true` + `volume1mo > 0`.** Markets can be created months ago but still actively traded. Filter by recent trading activity, not creation date. Set `date` to `updatedAt` for recency scoring. Set `date_confidence` to "high" (API provides exact timestamps).
|
||||
|
||||
**Sort priority: below HN, above WebSearch.** Priority 4 (Reddit=0 > X=1 > YouTube=2 > HN=3 > Polymarket=4 > WebSearch=5). Prediction markets are supplementary signal.
|
||||
|
||||
**Multi-outcome markets: show top 3 outcomes by price.** Binary markets show "Yes: 65%, No: 35%". Multi-candidate markets truncate to top 3 with "and N more".
|
||||
|
||||
**Exclude closed/resolved markets for v1.** Only show `active=true, closed=false`.
|
||||
|
||||
**Link to event pages** (not individual market pages) - shows all related markets in context.
|
||||
|
||||
### Implementation Plan
|
||||
|
||||
#### Phase 1: Hide zero-result sources (separate commit)
|
||||
|
||||
- [x] `scripts/lib/render.py` - In `render_source_status()`, skip lines where count is 0
|
||||
- [x] `SKILL.md` - Remove "(no results this cycle)" instructions, replace with "omit sources with zero results"
|
||||
- [x] `variants/open/references/research.md` - Same update
|
||||
- [x] `~/.claude/skills/last30daysCROSS/SKILL.md` - Same update (via sync.sh)
|
||||
- [x] Test: run a query where HN returns 0, verify it's hidden
|
||||
|
||||
#### Phase 2: Polymarket source module
|
||||
|
||||
- [x] `scripts/lib/polymarket.py` - New file:
|
||||
- `DEPTH_CONFIG = {"quick": 5, "default": 10, "deep": 20}` (event count per query)
|
||||
- `_expand_queries(topic)` - generate 2-4 search queries from topic:
|
||||
- Raw topic: `"Arizona Basketball"`
|
||||
- Core subject extracted: `"Arizona"` (via `_extract_core_subject`)
|
||||
- Component words for multi-word topics: first significant word alone
|
||||
- Cap at 4 queries, dedupe
|
||||
- `search_polymarket(topic, from_date, to_date, depth)` - run all expanded queries against `/public-search` in parallel (ThreadPoolExecutor), merge results by event ID, dedupe
|
||||
- `parse_polymarket_response(response)` - extract events, flatten top markets per event
|
||||
- `_format_price_movement(market)` - pick most significant price change from `oneDayPriceChange`, `oneWeekPriceChange`, `oneMonthPriceChange`, format as "up/down X% this day/week/month", skip if < 1%
|
||||
- URL-encode query params with `urllib.parse.urlencode`
|
||||
- Filter: `active=true, closed=false, volume1mo > 0`
|
||||
- Parse `outcomePrices` with `json.loads()`, handle malformed/missing gracefully
|
||||
- Handle mixed types: `float(volume)` with try/except
|
||||
- Relevance scoring: markets from raw topic query get 1.0 base, expanded queries get 0.7 base, then decay by position
|
||||
- Return `{"items": [...]}` or `{"items": [], "error": "message"}`
|
||||
|
||||
#### Phase 3: Schema + normalization + scoring
|
||||
|
||||
- [x] `scripts/lib/schema.py` - Add `PolymarketItem` dataclass:
|
||||
- `id`, `title` (event title), `question` (top market question), `url` (event URL)
|
||||
- `outcome_prices: List[Tuple[str, float]]` (parsed, e.g. [("Yes", 0.65), ("No", 0.35)])
|
||||
- `price_movement: Optional[str]` (formatted, e.g. "down 11.7% this month")
|
||||
- `volume24hr: float`, `liquidity: float`, `end_date: Optional[str]`
|
||||
- Standard fields: `date`, `date_confidence`, `engagement`, `relevance`, `why_relevant`, `subs`, `score`, `cross_refs`
|
||||
- Add `volume: Optional[float]` and `liquidity: Optional[float]` to `Engagement` dataclass
|
||||
- Add `polymarket: List[PolymarketItem]` and `polymarket_error: Optional[str]` to `Report`
|
||||
- Update `Report.to_dict()` and `Report.from_dict()` (handle missing key for backward compat)
|
||||
|
||||
- [x] `scripts/lib/normalize.py` - Add `normalize_polymarket_items()`:
|
||||
- Map raw API events to `PolymarketItem` instances
|
||||
- Set `date` from `updatedAt`, `date_confidence = "high"`
|
||||
- Build `Engagement(volume=volume24hr, liquidity=liquidity)`
|
||||
- Update `TypeVar` to include `PolymarketItem`
|
||||
|
||||
- [x] `scripts/lib/score.py` - Add scoring:
|
||||
- `compute_polymarket_engagement_raw()`: `0.60 * log1p(volume24hr) + 0.40 * log1p(liquidity)`
|
||||
- `score_polymarket_items()`: standard 45/25/30 weights (relevance/recency/engagement)
|
||||
- Update `sort_items()`: Polymarket priority = 4
|
||||
|
||||
#### Phase 4: Dedupe + render + UI
|
||||
|
||||
- [x] `scripts/lib/dedupe.py`:
|
||||
- Add `PolymarketItem` to `AnyItem` union
|
||||
- Add `dedupe_polymarket()` function
|
||||
- Update `get_item_text()` for `PolymarketItem` (return `title + " " + question`)
|
||||
- Update `_get_cross_source_text()` for cross-source linking
|
||||
|
||||
- [x] `scripts/lib/render.py`:
|
||||
- Add `_xref_tag()` prefix: `PM` -> `Polymarket`
|
||||
- Add Polymarket section to `render_compact()`:
|
||||
```
|
||||
### Prediction Markets (Polymarket)
|
||||
|
||||
**PM1** (score:72) [$342K vol24h, $2.1M liquidity]
|
||||
Will Arizona win the NCAA Tournament?
|
||||
Yes: 12% (down 11.7% this month) | No: 88%
|
||||
https://polymarket.com/event/arizona-ncaa-tournament
|
||||
|
||||
**PM2** (score:65) [$89K vol24h, $450K liquidity]
|
||||
Will Arizona win the Big 12 Tournament?
|
||||
Yes: 28% (up 4% this week) | No: 72%
|
||||
https://polymarket.com/event/arizona-big-12
|
||||
```
|
||||
- Add to `render_source_status()` (with zero-result hiding from Phase 1)
|
||||
- Add to `render_full_report()` and `render_context_snippet()`
|
||||
- Add to `_assess_data_freshness()`
|
||||
|
||||
- [x] `scripts/lib/ui.py`:
|
||||
- Add `POLYMARKET_MESSAGES` list
|
||||
- Add `start_polymarket()` / `end_polymarket()` methods
|
||||
- Update `show_complete()` to accept `polymarket_count`
|
||||
|
||||
#### Phase 5: Wire into main pipeline
|
||||
|
||||
- [x] `scripts/last30days.py`:
|
||||
- Import `from lib import polymarket`
|
||||
- Add `_search_polymarket()` wrapper function
|
||||
- Add `polymarket_future` to `TIMEOUT_PROFILES` (15s - API is fast)
|
||||
- In `run_research()`: submit polymarket future to ThreadPoolExecutor, increment max_workers
|
||||
- Collect results with timeout, add to processing pipeline (normalize -> filter -> score -> sort -> dedupe)
|
||||
- Feed into `cross_source_link()` call
|
||||
- Assign to `report.polymarket` / `report.polymarket_error`
|
||||
- Update `--diagnose` output: `"polymarket": True` (always available)
|
||||
- Update `--store` persistence loop for Polymarket items
|
||||
- Update `show_complete()` call with `len(deduped_pm)`
|
||||
|
||||
- [x] `scripts/lib/env.py` - Add `is_polymarket_available()` -> always `True`
|
||||
|
||||
#### Phase 6: Documentation + deploy
|
||||
|
||||
- [x] `SKILL.md` - Update "6 sources", add Polymarket to stats box template, update Security section with `gamma-api.polymarket.com`
|
||||
- [x] `variants/open/references/research.md` - Same source count + stats updates
|
||||
- [x] `README.md` - Add Polymarket to feature list, update source count references
|
||||
- [x] `SPEC.md` - Add `polymarket.py` to architecture list
|
||||
- [x] Run `bash scripts/sync.sh` to deploy
|
||||
|
||||
#### Phase 7: Tests
|
||||
|
||||
- [x] `tests/test_polymarket.py` - New file:
|
||||
- `TestParsePolymarketResponse` - binary markets, multi-outcome, malformed outcomePrices, missing fields
|
||||
- `TestNormalizePolymarketItems` - schema mapping, date handling, type coercion
|
||||
- `TestScorePolymarketItems` - engagement formula, zero volume, high volume
|
||||
- [x] `fixtures/polymarket_sample.json` - Representative API response with edge cases
|
||||
- [x] `tests/test_cross_source.py` - Add Polymarket-to-Reddit linking test case
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] `/last30days "Arizona Basketball"` shows relevant Polymarket prediction markets with odds and volume
|
||||
- [x] `/last30days "best rap songs 2026"` gracefully returns no Polymarket results (and hides the PM line from stats)
|
||||
- [x] Sources with zero results are hidden from stats box (all sources, not just PM)
|
||||
- [x] `--diagnose` shows `"polymarket": true`
|
||||
- [x] Multi-outcome markets show top 3 outcomes
|
||||
- [x] Polymarket items participate in cross-source linking
|
||||
- [x] No API key required - works out of the box for all users
|
||||
- [x] `--quick`, `--deep` flags affect Polymarket result count
|
||||
- [x] Older cached reports without `polymarket` key load without errors
|
||||
|
||||
## Dependencies & Risks
|
||||
|
||||
**No blockers.** The Gamma API is free, unauthenticated, and has generous rate limits (350 req/10s). No new dependencies needed - just stdlib `urllib` (already used by HN module).
|
||||
|
||||
**Risk: API availability.** Polymarket could change or restrict their API. Mitigation: the source is optional and fails gracefully (returns empty list, hidden from stats).
|
||||
|
||||
**Risk: Relevance mismatch.** Many topics won't have prediction markets. The hide-zero-sources change ensures this doesn't pollute the output.
|
||||
|
||||
## Sources & References
|
||||
|
||||
- Polymarket Gamma API docs: https://docs.polymarket.com/developers/gamma-markets-api/overview
|
||||
- Polymarket CLI: https://github.com/Polymarket/polymarket-cli
|
||||
- HN source plan (pattern to follow): `docs/plans/2026-02-24-feat-hacker-news-source-plan.md`
|
||||
- HN source implementation (most recent similar feature): `scripts/lib/hackernews.py`
|
||||
- Schema: `scripts/lib/schema.py`
|
||||
- Main pipeline: `scripts/last30days.py`
|
||||
@@ -0,0 +1,189 @@
|
||||
---
|
||||
title: "feat: Improve Polymarket result ranking with quality signals"
|
||||
type: feat
|
||||
status: completed
|
||||
date: 2026-02-25
|
||||
---
|
||||
|
||||
# feat: Improve Polymarket Result Ranking with Quality Signals
|
||||
|
||||
## Overview
|
||||
|
||||
When a topic like "OpenAI" returns 163+ Polymarket events, the current implementation ranks results almost entirely by API return position (75% weight on `i`), with only a tiny volume boost (0-15%). This means the scoring doesn't reflect actual market quality - a $1M/month market and a $5K/month market get nearly identical relevance scores if they're adjacent in the API response.
|
||||
|
||||
Fix the ranking so the most actively traded, fastest-moving, most contested markets bubble to the top.
|
||||
|
||||
## Problem Statement
|
||||
|
||||
Current relevance formula in `parse_polymarket_response()` (line 328-330):
|
||||
|
||||
```python
|
||||
rank_score = max(0.3, 1.0 - (i * 0.03)) # 75% weight on position
|
||||
engagement_boost = min(0.15, math.log1p(volume24hr) / 60)
|
||||
relevance = min(1.0, rank_score * 0.75 + engagement_boost + 0.1)
|
||||
```
|
||||
|
||||
Issues:
|
||||
1. **Position dominance**: A market at position 2 with $0 volume scores higher than a market at position 8 with $1M volume
|
||||
2. **`limit` parameter is a no-op**: The Gamma API always returns exactly 5 events per page regardless of `limit`. Our `DEPTH_CONFIG` values (5, 10, 20) do nothing
|
||||
3. **Rich quality signals are ignored**: Event-level `volume1mo`, `volume1wk`, `competitive`, `commentCount` fields are available but unused
|
||||
4. **Price movement is displayed but not scored**: Markets with dramatic price swings get no ranking boost
|
||||
5. **No text-similarity scoring**: A tangential market that happens to mention "OpenAI" ranks the same as one directly about OpenAI
|
||||
|
||||
## API Findings (Verified)
|
||||
|
||||
**Pagination**: `?page=N` works as 1-indexed offset. Each page returns exactly 5 events. `hasMore: true` indicates more pages exist. `totalResults` gives total count.
|
||||
|
||||
**Event-level quality fields** (confirmed via live API):
|
||||
|
||||
| Field | Level | Example | Currently Used |
|
||||
|-------|-------|---------|----------------|
|
||||
| `volume24hr` | Event + Market | $13,334 | Market only (for engagement) |
|
||||
| `volume1wk` | Event + Market | $1,051,626 | No |
|
||||
| `volume1mo` | Event + Market | $1,133,684 | No |
|
||||
| `liquidity` | Event + Market | $16,285 | Market only (for filtering) |
|
||||
| `competitive` | Event + Market | 0.995 | No |
|
||||
| `commentCount` | Event only | 2 | No |
|
||||
| `oneDayPriceChange` | Market only | -0.02 | Display only, not scored |
|
||||
| `oneWeekPriceChange` | Market only | -0.05 | Display only, not scored |
|
||||
| `oneMonthPriceChange` | Market only | -0.117 | Display only, not scored |
|
||||
|
||||
**API naturally sorts well**: Page 1 has active high-volume markets ($1M+ monthly volume), page 3 is all dead historical markets ($0 volume). So the API's own ranking is decent - the problem is our scoring doesn't preserve this quality signal.
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
### 1. Replace position-based relevance with quality-signal relevance
|
||||
|
||||
New formula in `parse_polymarket_response()`:
|
||||
|
||||
```python
|
||||
# Text similarity: does the event title contain the search topic?
|
||||
core = _extract_core_subject(topic).lower()
|
||||
title_lower = title.lower()
|
||||
if core and core in title_lower:
|
||||
text_score = 1.0
|
||||
else:
|
||||
# Token overlap fallback
|
||||
topic_tokens = set(core.lower().split())
|
||||
title_tokens = set(title_lower.split())
|
||||
overlap = len(topic_tokens & title_tokens)
|
||||
text_score = overlap / max(len(topic_tokens), 1)
|
||||
|
||||
# Volume signal: log-scaled monthly volume (most stable signal)
|
||||
vol_score = min(1.0, math.log1p(event_volume1mo) / 16) # ~$9M = 1.0
|
||||
|
||||
# Liquidity signal
|
||||
liq_score = min(1.0, math.log1p(event_liquidity) / 14) # ~$1.2M = 1.0
|
||||
|
||||
# Price movement: largest absolute change, capped
|
||||
max_change = max(
|
||||
abs(oneDayPriceChange or 0) * 3, # Daily weighted 3x
|
||||
abs(oneWeekPriceChange or 0) * 2, # Weekly weighted 2x
|
||||
abs(oneMonthPriceChange or 0) * 1, # Monthly weighted 1x
|
||||
)
|
||||
movement_score = min(1.0, max_change * 5) # 20% change = 1.0
|
||||
|
||||
# Competitive bonus: markets near 50/50 are more interesting
|
||||
competitive_score = event_competitive or 0
|
||||
|
||||
# Final relevance
|
||||
relevance = (
|
||||
0.30 * text_score +
|
||||
0.30 * vol_score +
|
||||
0.15 * liq_score +
|
||||
0.15 * movement_score +
|
||||
0.10 * competitive_score
|
||||
)
|
||||
```
|
||||
|
||||
### 2. Fix DEPTH_CONFIG to use pagination
|
||||
|
||||
```python
|
||||
# Pages to fetch per query (API returns 5 events per page)
|
||||
DEPTH_CONFIG = {
|
||||
"quick": 1, # 5 events/query, ~5-10 unique after dedup
|
||||
"default": 2, # 10 events/query, ~10-15 unique after dedup
|
||||
"deep": 3, # 15 events/query, ~15-25 unique after dedup
|
||||
}
|
||||
```
|
||||
|
||||
### 3. Use event-level volume fields
|
||||
|
||||
Extract `volume1mo`, `volume1wk`, `liquidity`, and `competitive` from the event object (not just the top market). These are more stable signals than market-level `volume24hr`.
|
||||
|
||||
### 4. Cap results after re-ranking
|
||||
|
||||
After pagination, merge, dedup, and re-ranking, cap at a reasonable number before sending to the scoring pipeline:
|
||||
|
||||
```python
|
||||
RESULT_CAP = {
|
||||
"quick": 5,
|
||||
"default": 10,
|
||||
"deep": 20,
|
||||
}
|
||||
```
|
||||
|
||||
## Technical Approach
|
||||
|
||||
### Implementation Plan
|
||||
|
||||
#### Phase 1: Fix pagination and DEPTH_CONFIG
|
||||
|
||||
- [x] `scripts/lib/polymarket.py` - Change `DEPTH_CONFIG` to page counts: `{"quick": 1, "default": 2, "deep": 3}`
|
||||
- [x] `scripts/lib/polymarket.py` - Add `RESULT_CAP` dict: `{"quick": 5, "default": 10, "deep": 20}`
|
||||
- [x] `scripts/lib/polymarket.py` - Update `_search_single_query()` to accept a `page` parameter
|
||||
- [x] `scripts/lib/polymarket.py` - Update `search_polymarket()` to fetch multiple pages per query in parallel (fire all `(query, page)` combinations into ThreadPoolExecutor at once)
|
||||
- [x] `scripts/lib/polymarket.py` - Apply `RESULT_CAP` after merge + dedup, before returning events
|
||||
- [x] `tests/test_polymarket.py` - Update `TestDepthConfig` tests for new page-count values
|
||||
|
||||
#### Phase 2: Extract event-level quality signals
|
||||
|
||||
- [x] `scripts/lib/polymarket.py` - In `parse_polymarket_response()`, extract event-level fields: `volume1mo`, `volume1wk`, `liquidity`, `competitive`, `commentCount`
|
||||
- [x] `scripts/lib/polymarket.py` - Pass `topic` to `parse_polymarket_response()` (already has the parameter, just need to use it)
|
||||
- [x] `fixtures/polymarket_sample.json` - Add event-level fields: `volume1mo`, `volume1wk`, `competitive`, `commentCount`, `volume24hr`, `liquidity`
|
||||
|
||||
#### Phase 3: Replace relevance formula
|
||||
|
||||
- [x] `scripts/lib/polymarket.py` - Replace position-based relevance formula with quality-signal formula (text similarity + volume + liquidity + price movement + competitive)
|
||||
- [x] `scripts/lib/polymarket.py` - Add `_compute_text_similarity(topic, title)` helper
|
||||
- [x] `tests/test_polymarket.py` - Add `TestTextSimilarity` test class
|
||||
- [x] `tests/test_polymarket.py` - Add `TestQualityRanking` test: given events with varying volume/liquidity/text-match, verify high-volume title-matching events rank above low-volume tangential ones
|
||||
|
||||
#### Phase 4: Update engagement scoring
|
||||
|
||||
- [x] `scripts/lib/schema.py` - No changes needed (Engagement already has `volume` and `liquidity`)
|
||||
- [x] `scripts/lib/polymarket.py` - Use event-level `volume1mo` instead of market-level `volume24hr` for the `volume24hr` field passed to normalization (or add a new field)
|
||||
- [x] `scripts/lib/normalize.py` - Update `normalize_polymarket_items()` to use `volume1mo` for engagement volume if available, fallback to `volume24hr`
|
||||
|
||||
#### Phase 5: Tests and verification
|
||||
|
||||
- [x] Run full test suite
|
||||
- [ ] Manual test: `/last30days "OpenAI" --emit=compact` - verify top markets are the most actively traded
|
||||
- [ ] Manual test: `/last30days "Anthropic" --emit=compact` - verify quality ranking
|
||||
- [ ] Manual test: `/last30days "best rap songs 2026" --emit=compact` - verify graceful zero results
|
||||
- [x] Run `bash scripts/sync.sh` to deploy
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] "OpenAI" search surfaces IPO market cap, product announcements, and GPT benchmark markets (high volume) before niche/dead markets
|
||||
- [x] Markets with $0 monthly volume are filtered out (already handled by liquidity filter, but verify)
|
||||
- [x] `DEPTH_CONFIG` actually affects result count (quick=~5, default=~10, deep=~20)
|
||||
- [x] Price movement is factored into ranking (markets with large swings rank higher)
|
||||
- [x] Text-matching markets rank above tangential keyword matches
|
||||
- [x] All existing tests pass (71 polymarket + full suite: 218 passed, 5 pre-existing failures)
|
||||
- [ ] No performance regression - pagination adds latency but stays within timeout budgets
|
||||
|
||||
## Dependencies & Risks
|
||||
|
||||
**No blockers.** This is a scoring/ranking improvement within the existing Polymarket module. No new API keys, no new dependencies.
|
||||
|
||||
**Risk: Over-tuning the formula.** The weights (0.30/0.30/0.15/0.15/0.10) are educated guesses. May need iteration after testing with real queries. Mitigation: the formula is in one place (`parse_polymarket_response`) and easy to adjust.
|
||||
|
||||
**Risk: Pagination latency.** Deep mode with 3 pages x 4 queries = 12 API calls. All run in parallel via ThreadPoolExecutor. Gamma API is fast (~200-500ms per call), so worst case ~1-2s total. Well within the 45s deep timeout.
|
||||
|
||||
## Sources & References
|
||||
|
||||
- Polymarket Gamma API: `GET https://gamma-api.polymarket.com/public-search?q={topic}&page={N}`
|
||||
- Current implementation: `scripts/lib/polymarket.py`
|
||||
- Scoring pipeline: `scripts/lib/score.py`
|
||||
- Original Polymarket plan: `docs/plans/2026-02-25-feat-polymarket-prediction-market-source-plan.md`
|
||||
@@ -0,0 +1,291 @@
|
||||
---
|
||||
title: "feat: Resolve X handles for topic entities"
|
||||
type: feat
|
||||
status: completed
|
||||
date: 2026-02-25
|
||||
---
|
||||
|
||||
# feat: Resolve X handles for topic entities
|
||||
|
||||
## Overview
|
||||
|
||||
When a user searches for a person, brand, or creator (e.g., "Dor Brothers", "Jason Calacanis"), the skill should automatically resolve their X handle and search their posts directly. Currently, Phase 1 only finds posts that *mention* the topic keywords, and Phase 2 only drills into handles that appeared in Phase 1 results. This misses the entity's own posts entirely when they don't literally include the topic string.
|
||||
|
||||
## Problem Statement
|
||||
|
||||
**The Dor Brothers example:** Searching "Dor Brothers" found 30 X posts with 149 likes - all posts *about* them. But the Dor Brothers' own account posts constantly about their AI films, tools, and collabs. Those posts wouldn't appear in Phase 1 because the Dor Brothers don't write "Dor Brothers" in every tweet. Phase 2 can't help because entity_extract only finds handles already @mentioned in Phase 1 results.
|
||||
|
||||
**The Jason Calacanis example:** His handle is @jason - completely unguessable from his name. No amount of keyword searching or @mention extraction would discover it. You need an actual lookup.
|
||||
|
||||
**What's missing:** A handle resolution step that maps `"topic name" -> @handle`, then searches that handle's recent posts directly (without requiring topic keywords in the tweet text).
|
||||
|
||||
## User Base Constraints
|
||||
|
||||
- **80% Claude Code** - agent is Claude, has WebSearch tool
|
||||
- **20% OpenClaw** - agent has web search capability
|
||||
- **Most users have:** OPENAI_API_KEY
|
||||
- **Some users have:** XAI_API_KEY, Bird (browser cookies)
|
||||
- **Few users have:** BRAVE_API_KEY, PARALLEL_API_KEY, OPENROUTER_API_KEY
|
||||
- **Everyone has:** Claude (it's the runtime)
|
||||
|
||||
**Critical constraint:** The Python script's web search backends (`brave_search.py`, `parallel_search.py`, `openrouter_search.py`) ALL filter out x.com URLs via `EXCLUDED_DOMAINS`. Building handle resolution inside the Python script would require bypassing this filter, and most users don't have the API keys for those backends anyway.
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
Move handle resolution to the **SKILL.md agent layer**. The agent (Claude or OpenClaw) already has `WebSearch` as an allowed tool. It does a single WebSearch before running the Python script, extracts the handle, and passes it as a CLI argument.
|
||||
|
||||
### Architecture
|
||||
|
||||
```
|
||||
SKILL.md Agent Flow (revised):
|
||||
|
||||
1. Parse intent (existing)
|
||||
2. NEW: If topic looks like a person/brand, WebSearch("{topic} X twitter handle")
|
||||
3. NEW: Extract @handle from results (agent intelligence, not regex)
|
||||
4. Run script: python3 last30days.py "Dor Brothers" --x-handle=TheDorBrothers --emit=compact
|
||||
5. Script uses --x-handle in Phase 2: from:TheDorBrothers (no topic filter)
|
||||
6. WebSearch supplementary (existing Step 2)
|
||||
7. Synthesize (existing)
|
||||
```
|
||||
|
||||
### Why agent-level, not Python-level
|
||||
|
||||
| Approach | Works for | Problem |
|
||||
|----------|-----------|---------|
|
||||
| Brave API in Python | Users with BRAVE_API_KEY (~5%) | Almost nobody has the key |
|
||||
| OpenAI Responses API in Python | Users with OPENAI_API_KEY (~90%) | Costs money, adds complexity, x.com URLs may be filtered |
|
||||
| Agent WebSearch (SKILL.md) | **100% of users** | Adds ~5-8 sec before script |
|
||||
| xAI API in Python | Users with XAI_API_KEY (~30%) | Not universal |
|
||||
|
||||
The agent approach wins because:
|
||||
1. **100% availability** - Claude/OpenClaw always has WebSearch
|
||||
2. **Zero API key requirements** - WebSearch is built into the agent runtime
|
||||
3. **Smarter parsing** - Claude is better at "find the X handle for Dor Brothers" than any regex
|
||||
4. **Simpler implementation** - SKILL.md instruction + `--x-handle` CLI arg, no new Python module
|
||||
5. **No EXCLUDED_DOMAINS problem** - agent WebSearch is independent of the Python web search backends
|
||||
|
||||
The ~5-8 second latency is negligible against the 2-3 minute script runtime.
|
||||
|
||||
### SKILL.md Changes (Claude Code variant)
|
||||
|
||||
Add between intent parsing and Step 1:
|
||||
|
||||
```markdown
|
||||
## Step 0.5: Resolve X Handle (if topic is a person/brand)
|
||||
|
||||
If TOPIC looks like a person, creator, brand, or specific account (1-3 words, proper noun),
|
||||
do ONE WebSearch to find their X handle:
|
||||
|
||||
WebSearch("{TOPIC} X twitter handle")
|
||||
|
||||
From the results, extract the X/Twitter handle. Look for:
|
||||
- Profile URLs: x.com/{handle} or twitter.com/{handle}
|
||||
- Mentions like "@handle" in bios, articles, or social profiles
|
||||
- "Follow @handle on X" patterns
|
||||
|
||||
If you find a clear, unambiguous handle, pass it to the script:
|
||||
--x-handle={handle}
|
||||
|
||||
If ambiguous or not found, omit the flag. The script works fine without it.
|
||||
|
||||
Skip this step if:
|
||||
- TOPIC is clearly not an entity (e.g., "best rap songs 2026", "how to use Docker")
|
||||
- TOPIC already contains @ (e.g., "@elonmusk")
|
||||
- Using --quick depth
|
||||
```
|
||||
|
||||
### OpenClaw Variant Changes
|
||||
|
||||
Same instruction added to `variants/open/references/research.md` (or inline in the open SKILL.md routing). OpenClaw agents also have WebSearch available.
|
||||
|
||||
### Python Script Changes
|
||||
|
||||
**`last30days.py` - Add `--x-handle` argument:**
|
||||
|
||||
```python
|
||||
parser.add_argument('--x-handle', type=str, default=None,
|
||||
help='Resolved X handle for topic entity (without @)')
|
||||
```
|
||||
|
||||
Pass `resolved_handle` to `_run_supplemental()`.
|
||||
|
||||
**`_run_supplemental()` - Accept and use resolved handle:**
|
||||
|
||||
```python
|
||||
def _run_supplemental(
|
||||
topic, reddit_items, x_items, from_date, to_date,
|
||||
depth, x_source, progress=None, skip_reddit=False,
|
||||
resolved_handle=None, # NEW
|
||||
):
|
||||
# Extract entities from Phase 1 (existing)
|
||||
entities = entity_extract.extract_entities(...)
|
||||
|
||||
# Add resolved handle if not already in entity list
|
||||
if resolved_handle and resolved_handle.lower() not in {h.lower() for h in entities["x_handles"]}:
|
||||
# Search resolved handle separately - unfiltered (no topic keywords)
|
||||
# This is the key difference from entity-extracted handles
|
||||
resolved_future = executor.submit(
|
||||
bird_x.search_handles,
|
||||
[resolved_handle],
|
||||
None, # topic=None means unfiltered search
|
||||
from_date,
|
||||
count_per=10,
|
||||
)
|
||||
```
|
||||
|
||||
**`bird_x.search_handles()` - Optional topic parameter:**
|
||||
|
||||
```python
|
||||
def search_handles(handles, topic, from_date, count_per=5):
|
||||
# topic is now Optional[str]
|
||||
for handle in handles:
|
||||
handle = handle.lstrip("@")
|
||||
if topic:
|
||||
core_topic = _extract_core_subject(topic)
|
||||
query = f"from:{handle} {core_topic} since:{from_date}"
|
||||
else:
|
||||
# Unfiltered: get all recent posts from this handle
|
||||
query = f"from:{handle} since:{from_date}"
|
||||
```
|
||||
|
||||
### Why no topic filter for resolved handles
|
||||
|
||||
This is the key insight. When you resolve that @DorBrothers IS the Dor Brothers, you want ALL their recent posts - not just ones that literally contain "Dor Brothers." Their post about the Logan Paul collab says "our new AI film with @LoganPaul" - no mention of "Dor Brothers" anywhere. With topic filtering, you'd miss it. Without it, you get their full recent activity, which is exactly what the user wants.
|
||||
|
||||
## Technical Considerations
|
||||
|
||||
### Handle resolution requires Bird or xAI for Phase 2
|
||||
|
||||
The `--x-handle` is only useful if the script can search `from:{handle}`. Currently:
|
||||
- **Bird:** supports `from:handle` via Twitter GraphQL (free)
|
||||
- **xAI:** does NOT support `from:handle` (Grok semantic search only)
|
||||
|
||||
If the user only has xAI (no Bird), the resolved handle can't be searched in Phase 2. Options:
|
||||
1. Skip Phase 2 handle search when `x_source == "xai"` (current behavior for entity handles too)
|
||||
2. Future: Add handle search to xai_x.py using `allowed_x_handles` filter
|
||||
|
||||
For v1, accept this limitation. Bird is free and most X-enabled users have it.
|
||||
|
||||
### Relevance scoring for unfiltered handle posts
|
||||
|
||||
Bird-parsed items default to `relevance: 0.7`. Unfiltered resolved-handle posts have no topic-keyword signal. Set `relevance: 0.5` for these so engagement and recency drive ranking, preventing off-topic viral posts from the entity from outranking genuinely relevant Phase 1 results.
|
||||
|
||||
### Stats block display
|
||||
|
||||
When `--x-handle` is used and produces results, show it in the stats:
|
||||
|
||||
```
|
||||
├─ 🔵 X: 38 posts │ 782+ likes │ 36+ reposts │ via @TheDorBrothers + keyword search
|
||||
```
|
||||
|
||||
Add `resolved_x_handle` field to `Report` schema for this.
|
||||
|
||||
### Skip conditions for the agent
|
||||
|
||||
The SKILL.md instruction tells the agent to skip handle resolution when:
|
||||
- Topic is clearly not an entity (multi-word generic phrases)
|
||||
- Topic already contains @ (user provided the handle)
|
||||
- Using `--quick` depth
|
||||
- Agent judges it would be wasted effort
|
||||
|
||||
The agent's judgment here is a feature, not a bug. Claude is good at deciding "Dor Brothers = probably has an X account" vs "best rap songs 2026 = definitely not an entity."
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] SKILL.md updated with Step 0.5 handle resolution instructions
|
||||
- [x] OpenClaw variant updated with same instructions
|
||||
- [x] `last30days.py` accepts `--x-handle` argument
|
||||
- [x] `_run_supplemental()` accepts `resolved_handle` parameter
|
||||
- [x] `bird_x.search_handles()` accepts `topic=None` for unfiltered search
|
||||
- [x] Resolved handle searched with `from:{handle}` (no topic filter) when Bird is available
|
||||
- [x] `Report` schema includes `resolved_x_handle` field
|
||||
- [x] Stats block shows resolved handle when used
|
||||
- [x] Graceful when `--x-handle` is provided but Bird is not available (skips silently)
|
||||
- [ ] "Dor Brothers" search resolves handle and finds their direct posts (requires live test)
|
||||
- [ ] "Jason Calacanis" search resolves @jason (requires live test)
|
||||
- [ ] "best rap songs 2026" does NOT trigger handle resolution (agent judgment, not code)
|
||||
|
||||
## Test Plan
|
||||
|
||||
### Manual test cases
|
||||
|
||||
| # | Query | Expected | What it tests |
|
||||
|---|-------|----------|---------------|
|
||||
| 1 | "Dor Brothers" | Agent resolves handle, passes --x-handle, script finds their posts | Full happy path |
|
||||
| 2 | "Jason Calacanis" | Agent resolves @jason (non-obvious handle) | Handle != name |
|
||||
| 3 | "best rap songs 2026" | Agent skips handle resolution entirely | Non-entity detection |
|
||||
| 4 | "OpenAI" | Agent may or may not resolve (judgment call) | Generic entity edge case |
|
||||
| 5 | "Linus Ekenstam" | Agent resolves @LinusEkenstam | Person with matching handle |
|
||||
| 6 | "Dor Brothers" with `--quick` | No handle resolution | Skip condition |
|
||||
| 7 | "Dor Brothers" with xAI only (no Bird) | Handle resolved but Phase 2 skips it | Graceful degradation |
|
||||
|
||||
### Automated tests (`tests/`)
|
||||
|
||||
```python
|
||||
# test_bird_x.py - new tests
|
||||
def test_search_handles_unfiltered_mode():
|
||||
"""bird_x.search_handles(topic=None) omits topic keywords from query."""
|
||||
|
||||
def test_search_handles_with_topic():
|
||||
"""bird_x.search_handles(topic="AI films") includes topic in query (existing behavior)."""
|
||||
|
||||
# test_last30days.py - integration
|
||||
def test_x_handle_arg_parsed():
|
||||
"""--x-handle=TheDorBrothers is parsed and passed to _run_supplemental."""
|
||||
|
||||
def test_resolved_handle_dedup_with_entity_extract():
|
||||
"""Resolved handle already in entity list is not double-searched."""
|
||||
|
||||
def test_resolved_handle_skipped_when_xai_only():
|
||||
"""When x_source='xai', resolved handle is not searched (no from: support)."""
|
||||
|
||||
def test_resolved_handle_relevance_set_lower():
|
||||
"""Items from resolved handle search get relevance 0.5, not 0.7."""
|
||||
```
|
||||
|
||||
### E2E validation
|
||||
|
||||
```bash
|
||||
# Run with explicit handle to test Python-side changes
|
||||
python3 scripts/last30days.py "Dor Brothers" --x-handle=TheDorBrothers --emit=compact 2>&1 | grep -E "\[Phase|handle"
|
||||
|
||||
# Expected:
|
||||
# [Phase 2] Drilling into @TheDorBrothers (resolved) + @handle1, @handle2 (extracted)
|
||||
# [Phase 2] +0 Reddit, +8 X (5 from resolved handle)
|
||||
```
|
||||
|
||||
```bash
|
||||
# Full agent test (runs SKILL.md flow including handle resolution WebSearch)
|
||||
claude --print "/last30days Dor Brothers" 2>&1 | grep -i "handle\|x-handle\|resolved"
|
||||
```
|
||||
|
||||
## Files Modified
|
||||
|
||||
| File | Change |
|
||||
|---|---|
|
||||
| `SKILL.md` | Add Step 0.5: handle resolution via WebSearch |
|
||||
| `variants/open/references/research.md` | Same handle resolution instructions for OpenClaw |
|
||||
| `scripts/last30days.py` | Add `--x-handle` CLI arg, pass to `_run_supplemental()` |
|
||||
| `scripts/lib/bird_x.py` | `search_handles()` gets `topic: Optional[str]` param |
|
||||
| `scripts/lib/schema.py` | Add `resolved_x_handle: Optional[str]` to `Report` |
|
||||
| `scripts/lib/render.py` | Show resolved handle in stats block |
|
||||
| `tests/test_bird_x.py` | Tests for unfiltered search_handles mode |
|
||||
| `tests/test_last30days.py` | Tests for --x-handle arg handling |
|
||||
|
||||
**NOT modified:** No new `handle_resolve.py` module. Resolution is agent intelligence, not Python code.
|
||||
|
||||
## Dependencies & Risks
|
||||
|
||||
- **Bird availability:** Resolved handle can only be searched when Bird is the X source. xAI doesn't support `from:handle` queries. ~70% of X-enabled users have Bird (free, browser cookies).
|
||||
- **Agent judgment:** The agent decides whether a topic is an entity worth resolving. Claude is good at this, but it's non-deterministic. Some edge cases will be missed. This is acceptable - the feature is additive (no regression when it doesn't fire).
|
||||
- **WebSearch latency:** Adds ~5-8 seconds before the script starts. Negligible against 2-3 minute script runtime.
|
||||
- **Handle accuracy:** The agent could resolve to the wrong handle. Mitigated by the agent's ability to evaluate results (unlike a regex, Claude can tell if a result actually belongs to the queried entity).
|
||||
|
||||
## Sources
|
||||
|
||||
- Existing entity extraction: `scripts/lib/entity_extract.py`
|
||||
- Phase 2 supplemental search: `scripts/last30days.py:387-513`
|
||||
- Bird search handles: `scripts/lib/bird_x.py:273-346`
|
||||
- SKILL.md agent flow: `SKILL.md:82-120`
|
||||
- OpenClaw variant: `variants/open/SKILL.md`
|
||||
- Smart supplemental search plan: `docs/plans/2026-02-07-feat-smart-supplemental-search-plan.md`
|
||||
@@ -0,0 +1,226 @@
|
||||
---
|
||||
title: "feat: YouTube relevance scoring and cross-source linking"
|
||||
type: feat
|
||||
status: active
|
||||
date: 2026-02-25
|
||||
---
|
||||
|
||||
# feat: YouTube Relevance Scoring and Cross-Source Linking
|
||||
|
||||
## Overview
|
||||
|
||||
Two output quality improvements for the last30days monthiversary:
|
||||
|
||||
1. **YouTube relevance scoring** - Replace the hardcoded `relevance: 0.7` with real token-overlap scoring so relevant niche videos beat viral off-topic ones.
|
||||
2. **Cross-source linking** - When the same story appears on Reddit + HN + X, annotate items with `[xref: R3, HN5]` so Claude can synthesize cross-platform discussion.
|
||||
|
||||
## Problem Statement / Motivation
|
||||
|
||||
**YouTube scoring is broken.** Every YouTube video starts with `relevance: 0.7` (70/100 subscore). Since the scoring formula is `45% relevance + 25% recency + 30% engagement`, all YouTube items share the same 31.5pt relevance floor. Ranking is purely engagement-driven - a viral off-topic video beats a niche relevant one.
|
||||
|
||||
**Cross-source coverage is invisible.** The same story often appears across Reddit, HN, and X (e.g., a product launch). Currently each source is deduped independently, but there's no signal telling Claude "these items are about the same thing." Claude has to manually notice the overlap, and often doesn't.
|
||||
|
||||
## Technical Approach
|
||||
|
||||
### Feature 1: YouTube Relevance Scoring
|
||||
|
||||
**Where:** `youtube_yt.py` (compute), `normalize.py` (pass through - already works)
|
||||
|
||||
**Algorithm:** Token ratio overlap between `core_topic` and video title.
|
||||
|
||||
```python
|
||||
# youtube_yt.py - new function
|
||||
STOPWORDS = {'the', 'a', 'an', 'to', 'for', 'how', 'is', 'in', 'of', 'on',
|
||||
'and', 'with', 'from', 'by', 'at', 'this', 'that', 'it', 'my',
|
||||
'your', 'i', 'me', 'we', 'you', 'what', 'are', 'do', 'can'}
|
||||
|
||||
def _compute_relevance(query: str, title: str) -> float:
|
||||
"""Compute relevance as ratio of query tokens found in title.
|
||||
|
||||
Uses ratio overlap (intersection / query_length) so short queries
|
||||
score higher when fully represented in the title. Floors at 0.1.
|
||||
"""
|
||||
q_tokens = {w for w in query.lower().split() if w not in STOPWORDS and len(w) > 1}
|
||||
t_tokens = {w for w in re.sub(r'[^\w\s]', ' ', title.lower()).split()
|
||||
if w not in STOPWORDS and len(w) > 1}
|
||||
|
||||
if not q_tokens:
|
||||
return 0.5 # Neutral fallback
|
||||
|
||||
overlap = len(q_tokens & t_tokens)
|
||||
ratio = overlap / len(q_tokens)
|
||||
return max(0.1, min(1.0, ratio))
|
||||
```
|
||||
|
||||
**Key decisions:**
|
||||
- **Use `core_topic`** (already stripped of noise words by `_extract_core_subject()`) - not the raw verbose query
|
||||
- **Ratio overlap** (intersection/query_length), not strict Jaccard - so "Claude Code" (2 tokens) vs "Claude Code Tutorial" (3 tokens) = 2/2 = 1.0, not 2/3 = 0.67
|
||||
- **Stopword removal** on both sides - prevents "How To Use Claude Code For Beginners" from diluting the match
|
||||
- **Floor at 0.1** - even zero-match videos get `rel_score=10` not 0, consistent with other sources' defaults
|
||||
- **No LLM call** - this is pure string matching, zero latency/cost
|
||||
|
||||
**Files to modify:**
|
||||
|
||||
#### `scripts/lib/youtube_yt.py`
|
||||
|
||||
- [x] Add `STOPWORDS` set and `_compute_relevance(query, title)` function
|
||||
- [x] In `search_youtube()`, replace `"relevance": 0.7` (line 186) with `"relevance": _compute_relevance(core_topic, video.get("title", ""))`
|
||||
- [x] Update `"why_relevant"` to be more descriptive: `f"YouTube: {title_excerpt}"`
|
||||
|
||||
#### `scripts/lib/normalize.py`
|
||||
|
||||
- No changes needed - already passes through `item.get("relevance", 0.7)` at line 196
|
||||
|
||||
#### `scripts/lib/score.py`
|
||||
|
||||
- No changes needed - `score_youtube_items()` already reads `item.relevance` correctly
|
||||
|
||||
### Feature 2: Cross-Source Linking
|
||||
|
||||
**Where:** `dedupe.py` (new function), `schema.py` (new field), `render.py` (display), `last30days.py` (call site)
|
||||
|
||||
**Algorithm:** Reuse existing Jaccard char-trigram similarity from `dedupe.py`. Compare items across sources at threshold 0.5 (lower than within-source 0.7 since titles differ more across platforms). Bidirectional - both items get the cross-ref.
|
||||
|
||||
**Key decisions:**
|
||||
- **Link, don't merge** - keep items separate with `cross_refs: ["R3", "HN5"]`. Let Claude handle the narrative.
|
||||
- **Bidirectional** - if R3 links to HN5, HN5 also links to R3. Claude reads source-by-source and needs to see the link from either direction.
|
||||
- **Threshold 0.5** for cross-source (vs 0.7 within-source). Lower because the same story has different titles across platforms. Still high enough to avoid false positives.
|
||||
- **Truncate X text to 100 chars** for comparison - full tweets dilute Jaccard against short Reddit/HN titles
|
||||
- **Just IDs in cross_refs** - no similarity scores (noise for Claude's synthesis)
|
||||
- **Include WebSearchItem** - add to `get_item_text()` using `item.title`
|
||||
- **Don't persist to SQLite** - cross_refs are cheap to recompute, not worth a schema migration
|
||||
|
||||
**Performance:** With 45 items total (typical) and 10 source pairs, ~1000 char-trigram comparisons. Sub-millisecond. Even --deep mode (~150 items) is <12K comparisons - trivial.
|
||||
|
||||
**Files to modify:**
|
||||
|
||||
#### `scripts/lib/schema.py`
|
||||
|
||||
- [x] Add `cross_refs: List[str] = field(default_factory=list)` to all 5 item types (RedditItem, XItem, YouTubeItem, HackerNewsItem, WebSearchItem)
|
||||
- [x] Update `to_dict()` on each item type to include `cross_refs` (only when non-empty)
|
||||
- [x] Update `Report.from_dict()` to deserialize `cross_refs` for each item type
|
||||
|
||||
#### `scripts/lib/dedupe.py`
|
||||
|
||||
- [x] Update `get_item_text()` type hints to include `WebSearchItem` and handle it (use `item.title`)
|
||||
- [x] Add `get_cross_source_text()` function - same as `get_item_text()` but truncates X text to 100 chars
|
||||
- [x] Add `cross_source_link()` function:
|
||||
|
||||
```python
|
||||
def cross_source_link(
|
||||
*source_lists: List[Union[schema.RedditItem, schema.XItem, schema.YouTubeItem,
|
||||
schema.HackerNewsItem, schema.WebSearchItem]],
|
||||
threshold: float = 0.5,
|
||||
) -> None:
|
||||
"""Annotate items with cross-source references.
|
||||
|
||||
Compares items across different source types. When similarity exceeds
|
||||
threshold, adds bidirectional cross_refs with the related item's ID.
|
||||
Modifies items in-place.
|
||||
"""
|
||||
all_items = []
|
||||
for source_list in source_lists:
|
||||
all_items.extend(source_list)
|
||||
|
||||
if len(all_items) <= 1:
|
||||
return
|
||||
|
||||
# Pre-compute trigrams using cross-source text extraction
|
||||
ngrams = [get_ngrams(get_cross_source_text(item)) for item in all_items]
|
||||
|
||||
for i in range(len(all_items)):
|
||||
for j in range(i + 1, len(all_items)):
|
||||
# Skip same-source comparisons (already handled by per-source dedupe)
|
||||
if type(all_items[i]) == type(all_items[j]):
|
||||
continue
|
||||
|
||||
similarity = jaccard_similarity(ngrams[i], ngrams[j])
|
||||
if similarity >= threshold:
|
||||
# Bidirectional cross-reference
|
||||
if all_items[j].id not in all_items[i].cross_refs:
|
||||
all_items[i].cross_refs.append(all_items[j].id)
|
||||
if all_items[i].id not in all_items[j].cross_refs:
|
||||
all_items[j].cross_refs.append(all_items[i].id)
|
||||
```
|
||||
|
||||
#### `scripts/last30days.py`
|
||||
|
||||
- [x] After the dedupe step (after line ~1107), call `dedupe.cross_source_link()`:
|
||||
|
||||
```python
|
||||
# Cross-source linking
|
||||
dedupe.cross_source_link(
|
||||
deduped_reddit, deduped_x, deduped_youtube, deduped_hn, deduped_web,
|
||||
)
|
||||
```
|
||||
|
||||
#### `scripts/lib/render.py`
|
||||
|
||||
- [x] In `render_compact()`, append `[xref: ...]` to items that have cross_refs:
|
||||
|
||||
```python
|
||||
# After the existing item line
|
||||
if hasattr(item, 'cross_refs') and item.cross_refs:
|
||||
xref_str = ', '.join(item.cross_refs)
|
||||
line += f" [xref: {xref_str}]"
|
||||
```
|
||||
|
||||
#### `SKILL.md`
|
||||
|
||||
- [x] Add a note in the synthesis instructions about cross-refs:
|
||||
"Items tagged `[xref: ...]` reference the same story on another platform. Use these to triangulate: 'This was widely discussed - Reddit thread (R3) with 142 comments, HN discussion (HN5) with 89 points, and several X posts (X12).'"
|
||||
|
||||
### Tests
|
||||
|
||||
#### `tests/test_youtube_relevance.py` (new)
|
||||
|
||||
- [x] Test exact match: query "Claude Code" vs title "Claude Code" = 1.0
|
||||
- [x] Test partial match: query "Claude Code" vs title "Claude Code Tutorial" = 1.0 (ratio)
|
||||
- [x] Test low match: query "Claude Code" vs title "Python Web Scraping" = 0.1 (floor)
|
||||
- [x] Test empty query: returns 0.5
|
||||
- [x] Test empty title: returns 0.1
|
||||
- [x] Test stopword handling: query "how to use Claude" vs title "Using Claude" = high match
|
||||
- [x] Test integration: search_youtube returns varied relevance scores (mock yt-dlp)
|
||||
|
||||
#### `tests/test_cross_source.py` (new)
|
||||
|
||||
- [x] Test no cross-refs: unrelated items across sources
|
||||
- [x] Test bidirectional: matching Reddit + HN items both get cross_refs
|
||||
- [x] Test multi-source: same story on 3+ sources
|
||||
- [x] Test same-source skip: items from same source type are not cross-linked
|
||||
- [x] Test X text truncation: long tweet vs short Reddit title
|
||||
- [x] Test empty lists: no crash on empty source lists
|
||||
- [x] Test schema round-trip: cross_refs survive to_dict() / from_dict()
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] YouTube items have varied relevance scores (not all 0.7)
|
||||
- [x] A video with title matching the query scores higher than one without
|
||||
- [x] Cross-source items about the same story have `cross_refs` pointing to each other
|
||||
- [x] Cross-refs are bidirectional
|
||||
- [x] Compact output shows `[xref: ...]` tags on linked items
|
||||
- [x] SKILL.md tells Claude how to use cross-refs in synthesis
|
||||
- [x] All existing tests still pass
|
||||
- [x] New tests cover YouTube relevance edge cases
|
||||
- [x] New tests cover cross-source linking edge cases
|
||||
- [x] Run sync.sh to deploy after changes
|
||||
|
||||
## Dependencies & Risks
|
||||
|
||||
**Low risk:**
|
||||
- Both features add fields/functions without changing existing logic
|
||||
- YouTube relevance is a drop-in replacement for a hardcoded value
|
||||
- Cross-source linking only adds metadata (cross_refs) without modifying item order or scores
|
||||
- All existing tests should pass unchanged
|
||||
|
||||
**Edge cases:**
|
||||
- CJK/non-English titles: token splitting works but relevance may be less accurate. Acceptable for v1.
|
||||
- Very short queries (1 token): ratio overlap = 0 or 1. The 0.1 floor handles the 0 case.
|
||||
- Clickbait YouTube titles with no query overlap: these correctly get low relevance now (improvement over blindly getting 0.7)
|
||||
|
||||
## Sources & References
|
||||
|
||||
- YouTube relevance: Currently hardcoded at `youtube_yt.py:186`
|
||||
- Dedupe infrastructure: `dedupe.py` - Jaccard similarity on char trigrams
|
||||
- Score weights: `score.py:8-10` - 45% relevance + 25% recency + 30% engagement
|
||||
- Existing HN plan as template: `docs/plans/2026-02-24-fix-hn-ordering-and-emoji-plan.md`
|
||||
@@ -0,0 +1,185 @@
|
||||
---
|
||||
title: "feat: Smarter Polymarket synthesis - surface the most interesting markets"
|
||||
type: feat
|
||||
status: completed
|
||||
date: 2026-02-26
|
||||
---
|
||||
|
||||
# feat: Smarter Polymarket Synthesis
|
||||
|
||||
## Overview
|
||||
|
||||
Polymarket data is one of the most powerful signals when relevant - real money on outcomes cuts through opinion. But the current system buries the most interesting markets and gives the LLM zero guidance on how to synthesize prediction market data.
|
||||
|
||||
For "Arizona Basketball", the skill found 2 markets but only highlighted "Big 12 title: 68%" in the stats and synthesis. The user cares MORE about:
|
||||
- NCAA Tournament championship odds (12%, up 3%)
|
||||
- #1 seed odds (85%)
|
||||
- Next game: Arizona vs Kansas (71% to win)
|
||||
|
||||
For "Iran War", the skill found 9 markets with $559M volume but only highlighted "strikes by Feb 28: 10% (down from 65%)". The user wanted regime change / Khamenei odds - the "bigger picture" structural question.
|
||||
|
||||
The problem has two layers: (1) the Python scoring penalizes multi-outcome markets where the topic is an outcome, and (2) the SKILL.md gives the LLM zero instructions for interpreting or highlighting prediction market data.
|
||||
|
||||
## Problem Statement
|
||||
|
||||
### Layer 1: Scoring penalizes the most interesting markets
|
||||
|
||||
`_compute_text_similarity()` (polymarket.py:236) only compares the search topic against the **event title**. It never checks outcome names.
|
||||
|
||||
Example: Market titled "Who will be the #1 overall seed in the 2026 NCAA Tournament?" with outcomes ["Arizona", "Duke", "Houston", "Auburn"]:
|
||||
- Topic: "Arizona Basketball"
|
||||
- text_score: **0.0** (neither "arizona" nor "basketball" in event title)
|
||||
- 30% relevance penalty from this alone
|
||||
|
||||
This means the most contextually interesting markets (seeding, championship, matchup odds) get pushed below less interesting but title-matching markets (Big 12 regular season).
|
||||
|
||||
### Layer 2: SKILL.md has zero Polymarket synthesis guidance
|
||||
|
||||
The SKILL.md Judge Agent section tells the LLM how to weight Reddit (higher), YouTube (high), WebSearch (lower), but says **nothing** about:
|
||||
- How to interpret prediction market probabilities
|
||||
- Which markets are "most interesting" (championship > regular season)
|
||||
- When to lead with prediction market odds vs other sources
|
||||
- How to connect a specific outcome in a multi-outcome market to the user's topic
|
||||
- How to use odds as a signal alongside social media sentiment
|
||||
|
||||
### Layer 3: Stats box loses information
|
||||
|
||||
The Polymarket stats line only has room for 1-2 market highlights. When there are 5+ relevant markets, the user misses the most interesting ones.
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
### 1. Outcome-aware text similarity scoring
|
||||
|
||||
Update `_compute_text_similarity()` to check if the topic appears in any outcome name, with **bidirectional** substring matching. The check must work in both directions since the topic ("Arizona Basketball") is longer than the outcome name ("Arizona").
|
||||
|
||||
Collect outcome names from ALL active markets in the event (not just top market), since Gamma API can structure multi-outcome events as separate binary sub-markets.
|
||||
|
||||
Only match outcomes with probability > 1% to avoid noise from near-zero outcomes.
|
||||
|
||||
```python
|
||||
def _compute_text_similarity(topic: str, title: str, outcomes: list = None) -> float:
|
||||
core = _extract_core_subject(topic).lower()
|
||||
title_lower = title.lower()
|
||||
if not core:
|
||||
return 0.5
|
||||
|
||||
# Full substring match in title
|
||||
if core in title_lower:
|
||||
return 1.0
|
||||
|
||||
# Check if topic appears in any outcome name (bidirectional)
|
||||
if outcomes:
|
||||
core_tokens = set(core.split()) # Hoist outside loop
|
||||
best_outcome_score = 0.0
|
||||
for outcome_name in outcomes:
|
||||
outcome_lower = outcome_name.lower()
|
||||
# Bidirectional substring: "arizona" in "arizona basketball" OR "arizona basketball" in "arizona wildcats game"
|
||||
if core in outcome_lower or outcome_lower in core:
|
||||
best_outcome_score = max(best_outcome_score, 0.85)
|
||||
elif core_tokens & set(outcome_lower.split()):
|
||||
best_outcome_score = max(best_outcome_score, 0.7)
|
||||
if best_outcome_score > 0:
|
||||
return best_outcome_score
|
||||
|
||||
# Token overlap fallback against title
|
||||
topic_tokens = set(core.split())
|
||||
title_tokens = set(title_lower.split())
|
||||
if not topic_tokens:
|
||||
return 0.5
|
||||
overlap = len(topic_tokens & title_tokens)
|
||||
return overlap / len(topic_tokens)
|
||||
```
|
||||
|
||||
### 2. Surface the topic-matching outcome in display
|
||||
|
||||
When the topic matches an outcome name, reorder `outcome_prices` to put the matching outcome first before truncating to top 3. This ensures the LLM sees the user-relevant odds.
|
||||
|
||||
### 3. Add SKILL.md synthesis instructions for Polymarket
|
||||
|
||||
Add a dedicated section telling the LLM:
|
||||
- **Prediction markets are high-signal when relevant.** Real money on outcomes > opinions.
|
||||
- **Prefer markets that answer structural/long-term questions** (championships, regime changes, major milestones) over near-term deadline markets (weekly matchups, short-term event deadlines). When in doubt, the bigger question is more interesting.
|
||||
- **When the topic is an outcome in a multi-outcome market, call out that specific outcome's odds and movement.** Don't just say "Polymarket has a #1 seed market" - say "Arizona has 85% chance of a #1 seed, up from 72%."
|
||||
- **Weave odds into the "What I learned" narrative as supporting evidence.** "Final Four buzz is building - Polymarket gives Arizona a 12% chance to win the championship (up 3% this week), and 85% to earn a #1 seed."
|
||||
- **Citation format:** "Polymarket has Arizona at 85% for a #1 seed (up from 72%)" - include the specific odds and movement, not just "per Polymarket."
|
||||
- **Stats box:** Show up to 5 most relevant markets with odds. If more exist, show count.
|
||||
|
||||
Domain examples:
|
||||
- Sports: championship/tournament odds > regular season title > weekly matchup
|
||||
- Geopolitics: regime change > near-term strike deadline > sanctions
|
||||
- Tech: major milestones (IPO, product launch) > incremental updates
|
||||
- Elections: presidency > primary > individual state
|
||||
|
||||
### 4. Improve stats box template
|
||||
|
||||
Show up to 5 markets with odds, capped for readability:
|
||||
```
|
||||
├─ 📊 Polymarket: 5 markets (Championship: 12%, #1 Seed: 85%, Big 12: 68%, vs Kansas: 71%, NCAA: 12%)
|
||||
```
|
||||
|
||||
### 5. Fix render.py volume label
|
||||
|
||||
The render module labels volume as "vol24h" even when `volume1mo` is the actual data source. Fix to "vol/mo" when monthly volume is used.
|
||||
|
||||
## Technical Approach
|
||||
|
||||
### Implementation Plan
|
||||
|
||||
#### Phase 1: Fix text similarity to check outcomes
|
||||
|
||||
- [x] `scripts/lib/polymarket.py` - Update `_compute_text_similarity()` to accept optional `outcomes` parameter with bidirectional substring matching and token overlap
|
||||
- [x] `scripts/lib/polymarket.py` - In `parse_polymarket_response()`, collect outcome names from ALL active markets (not just top market), filter to outcomes with price > 1%, and pass to `_compute_text_similarity()`
|
||||
- [x] `scripts/lib/polymarket.py` - Reorder `outcome_prices` to surface the topic-matching outcome first before truncating to top 3
|
||||
- [x] `fixtures/polymarket_sample.json` - Add fixture event: "Who will be the #1 overall seed in the 2026 NCAA Tournament?" with outcomes ["Arizona", "Duke", "Houston", "Auburn"] where "Arizona" is NOT in the title
|
||||
- [x] `tests/test_polymarket.py` - Add tests for outcome-aware text similarity: bidirectional substring, token overlap, no-match, low-probability filtering
|
||||
- [x] `tests/test_polymarket.py` - Add test: multi-outcome market where topic is an outcome should rank higher than tangential title-match markets
|
||||
- [x] `tests/test_polymarket.py` - Add test: topic-matching outcome is surfaced to front of outcome_prices display
|
||||
|
||||
#### Phase 2: Add SKILL.md Polymarket synthesis instructions
|
||||
|
||||
- [x] `SKILL.md` - Add "Prediction Markets" subsection to the Judge Agent section with:
|
||||
- General heuristic: prefer structural/long-term markets over near-term deadlines
|
||||
- Domain examples (sports, geopolitics, tech, elections)
|
||||
- Citation format with specific odds and movement
|
||||
- Instruction to weave odds into "What I learned" narrative
|
||||
- [x] `SKILL.md` - Add Polymarket to citation priority list (between HN and Web) with format guidance
|
||||
- [x] `SKILL.md` - Update stats box template: show up to 5 markets with odds
|
||||
- [x] `variants/open/references/research.md` - Add condensed Polymarket synthesis guidance matching the open variant's style
|
||||
- [x] `scripts/lib/render.py` - Fix "vol24h" label to "vol/mo" when volume1mo is the data source (changed to "volume")
|
||||
|
||||
#### Phase 3: Tests and verification
|
||||
|
||||
- [x] Run full test suite (229 passed, 5 pre-existing failures unrelated to this change)
|
||||
- [ ] Manual test: `/last30days "Arizona Basketball"` - verify championship, seed, and matchup odds appear in synthesis
|
||||
- [ ] Manual test: `/last30days "Iran War"` - verify regime change and structural outcome markets appear
|
||||
- [x] Run `bash scripts/sync.sh` to deploy
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] Multi-outcome markets where the topic is an outcome (e.g. "Arizona" in a seeding market) get text_score >= 0.7, not 0.0
|
||||
- [x] Bidirectional matching works: "Arizona" as outcome matches topic "Arizona Basketball" (outcome_name in core)
|
||||
- [x] Topic-matching outcome is surfaced to front of outcome_prices display (not hidden in "and N more")
|
||||
- [x] Low-probability outcomes (< 1%) don't trigger outcome matching
|
||||
- [x] SKILL.md instructs the LLM to highlight structural/long-term markets over near-term ones
|
||||
- [x] SKILL.md provides citation format: "Polymarket has X at Y% (up/down Z%)"
|
||||
- [x] Stats box shows up to 5 markets with odds
|
||||
- [x] HN zero-result line is hidden (already fixed - verify on next run)
|
||||
- [x] All existing tests pass + new outcome-aware similarity tests pass
|
||||
- [x] render.py volume label is accurate
|
||||
|
||||
## Dependencies & Risks
|
||||
|
||||
**No blockers.** This is scoring improvements + SKILL.md instruction changes within the existing Polymarket module.
|
||||
|
||||
**Risk: Outcome name matching false positives.** A market "Will Arizona pass AI regulation?" would match "Arizona Basketball" on the word "Arizona" even though it's about the state, not the team. Mitigation: outcome match gets 0.7-0.85 (not 1.0), and volume/liquidity/movement signals still differentiate. A false positive at 0.85 text_score won't outrank a true title match at 1.0.
|
||||
|
||||
**Risk: Common-word false positives.** Words like "war," "AI," "US" could match generic outcomes. Mitigation: at 0.7 text_score (30% weight = 0.21 relevance), this is a small boost that won't override strong volume/liquidity signals from actually relevant markets. Monitor in testing.
|
||||
|
||||
**Risk: LLM still ignores synthesis instructions.** Mitigation: use CRITICAL formatting, specific do/don't examples, and concrete citation format.
|
||||
|
||||
## Sources & References
|
||||
|
||||
- Current text similarity: `scripts/lib/polymarket.py:236`
|
||||
- Render format: `scripts/lib/render.py:282`
|
||||
- SKILL.md synthesis: `SKILL.md:196` (Judge Agent section)
|
||||
- Previous quality ranking plan: `docs/plans/2026-02-25-feat-polymarket-quality-ranking-plan.md`
|
||||
@@ -0,0 +1,235 @@
|
||||
---
|
||||
title: "fix: Polymarket query expansion - find markets where topic is an outcome, not just a title"
|
||||
type: fix
|
||||
status: active
|
||||
date: 2026-02-26
|
||||
---
|
||||
|
||||
# fix: Polymarket Query Expansion & Data Availability
|
||||
|
||||
## Overview
|
||||
|
||||
The Polymarket module misses the most interesting markets when the search topic is an **outcome** in a broader market rather than appearing in the event title. For "Arizona Basketball", the NCAA Tournament Winner (30 open markets) and #1 Seed (20 open markets) are invisible because "Arizona" only appears as an outcome, never in the event title. The Gamma API only searches titles/slugs.
|
||||
|
||||
The outcome-aware scoring (from the prior plan) works perfectly on fixture data - it correctly ranks markets where Arizona is an outcome. The problem is upstream: those markets never reach the scoring layer because the Gamma API never returns them.
|
||||
|
||||
## Problem Statement
|
||||
|
||||
### Root Cause: Gamma API is title/slug search only
|
||||
|
||||
`gamma-api.polymarket.com/public-search?q=X` only matches against event titles and slugs. It does NOT search outcome names, market descriptions, or tags.
|
||||
|
||||
**Live API verification** (2026-02-26):
|
||||
|
||||
| Query | Events returned | Arizona-relevant open markets |
|
||||
|-------|----------------|-------------------------------|
|
||||
| "Arizona Basketball" | 5 | 2 (Big 12 Champion, NAU vs Idaho) |
|
||||
| "Arizona" | 5 | 0 (all political/closed) |
|
||||
| "NCAA Tournament" | 5 | 2 (Tournament Winner: 30 open, #1 Seed: 20 open) |
|
||||
| "Basketball" | 5 | 5 (conference champions, no NCAA) |
|
||||
| "college basketball" | 5 | 1 (#1 seed) |
|
||||
|
||||
The championship and seeding markets that the user wants (`NCAA Tournament Winner`, `#1 Seed`) are only findable by searching "NCAA Tournament" or "NCAA" - terms that don't appear in "Arizona Basketball".
|
||||
|
||||
### Contributing Factor 1: Query expansion too narrow
|
||||
|
||||
`_expand_queries("Arizona Basketball")` generates only `["Arizona Basketball", "Arizona"]`.
|
||||
|
||||
It only tries the **first word** as a standalone query. The second word "Basketball" is never searched independently. This means conference-adjacent and tournament markets are invisible.
|
||||
|
||||
### Contributing Factor 2: No domain bridging
|
||||
|
||||
Even searching "Basketball" (all individual words) only returns conference champions. The leap from "Basketball" to "NCAA Tournament" requires discovering the domain context from initial results. Currently there is no second-pass expansion.
|
||||
|
||||
### Contributing Factor 3: Shallow default depth
|
||||
|
||||
`DEPTH_CONFIG["default"] = 2` pages (10 events per query). With 3 queries that's 30 raw events, but heavy dedup and closed-event filtering reduces this to 2-5 usable results.
|
||||
|
||||
### What works (don't break it)
|
||||
|
||||
- "Iran War" returned 9 perfect markets because "Iran" and "War" appear directly in event titles
|
||||
- Outcome-aware scoring correctly ranks Arizona-outcome markets when they reach the scoring layer
|
||||
- Topic-matching outcome reordering surfaces the right outcome first
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
Three changes, all generic (no hardcoded domain knowledge):
|
||||
|
||||
### 1. Search ALL individual words, not just the first
|
||||
|
||||
Currently `_expand_queries()` only adds `words[0]` as a standalone query. Change to add **every word** as a standalone query, then dedupe.
|
||||
|
||||
For "Arizona Basketball": `["Arizona Basketball", "Arizona", "Basketball"]`
|
||||
For "Iran War": `["Iran War", "Iran", "War"]` (same as before since both are short)
|
||||
For "AI video generation tools": `["AI video generation tools", "AI", "video", "generation", "tools"]` (capped at 6)
|
||||
|
||||
Raise query cap from 4 to 6 to accommodate.
|
||||
|
||||
```python
|
||||
def _expand_queries(topic: str) -> List[str]:
|
||||
core = _extract_core_subject(topic)
|
||||
queries = [core]
|
||||
|
||||
words = core.split()
|
||||
if len(words) >= 2:
|
||||
# Add ALL individual words (not just first)
|
||||
for word in words:
|
||||
if len(word) > 2: # skip very short words ("AI", "vs")
|
||||
queries.append(word)
|
||||
|
||||
if topic.lower().strip() != core.lower():
|
||||
queries.append(topic.strip())
|
||||
|
||||
# Dedupe, cap at 6
|
||||
seen = set()
|
||||
unique = []
|
||||
for q in queries:
|
||||
q_lower = q.lower().strip()
|
||||
if q_lower and q_lower not in seen:
|
||||
seen.add(q_lower)
|
||||
unique.append(q.strip())
|
||||
return unique[:6]
|
||||
```
|
||||
|
||||
Note: "AI" is only 2 chars but is meaningful. Lower the threshold to `len(word) > 1` to catch it. Single-char words (rare) get filtered.
|
||||
|
||||
### 2. Second-pass context expansion from first-pass results
|
||||
|
||||
After the first-pass search, extract domain-indicator terms from event titles and run a focused second-pass search.
|
||||
|
||||
Algorithm:
|
||||
1. Collect ALL event titles from first-pass results (including closed events)
|
||||
2. Tokenize titles into bigrams (two-word sequences)
|
||||
3. Count bigrams across events, filter out bigrams containing topic words
|
||||
4. Take the top 1-2 most frequent non-topic bigrams as "domain indicators"
|
||||
5. Search each domain indicator (1 page each)
|
||||
6. Merge with first-pass results, dedupe, re-rank
|
||||
|
||||
**Example for "Arizona Basketball":**
|
||||
|
||||
First-pass titles include:
|
||||
- "Big 12 Men's College Basketball 2025-2026 Regular Season Champion"
|
||||
- "SEC Men's College Basketball 2025-2026 Regular Season Champion"
|
||||
- "ACC Men's College Basketball 2025-2026 Regular Season Champion"
|
||||
- "Big East Men's College Basketball 2025-2026 Regular Season Champion"
|
||||
|
||||
Frequent bigrams (excluding topic words): "college basketball" (4x), "regular season" (4x), "season champion" (4x)
|
||||
|
||||
Top domain indicator: **"college basketball"**
|
||||
|
||||
Searching "college basketball" returns: **"#1 seed in NCAA Tournament"** (20 open markets with Arizona as outcome!)
|
||||
|
||||
**Example for "Iran War":** First-pass already finds everything via title matches. Second-pass bigrams would be things like "iran strikes", "khamenei out" - searching these finds the same events (deduped). No regression.
|
||||
|
||||
```python
|
||||
def _extract_domain_queries(topic: str, events: List[Dict]) -> List[str]:
|
||||
"""Extract domain-indicator search terms from first-pass event titles."""
|
||||
topic_words = set(_extract_core_subject(topic).lower().split())
|
||||
|
||||
# Collect bigrams from all event titles
|
||||
bigram_counts = {}
|
||||
for event in events:
|
||||
title = event.get("title", "").lower()
|
||||
words = re.findall(r'[a-z]+', title)
|
||||
for i in range(len(words) - 1):
|
||||
bigram = f"{words[i]} {words[i+1]}"
|
||||
# Skip if both words are in topic (we already search the topic)
|
||||
if words[i] in topic_words and words[i+1] in topic_words:
|
||||
continue
|
||||
# Skip very common filler
|
||||
if any(w in ("the", "of", "in", "to", "a", "and", "vs", "will", "be") for w in (words[i], words[i+1])):
|
||||
continue
|
||||
bigram_counts[bigram] = bigram_counts.get(bigram, 0) + 1
|
||||
|
||||
# Return bigrams appearing in 2+ event titles
|
||||
domain_queries = [bg for bg, count in sorted(bigram_counts.items(), key=lambda x: -x[1]) if count >= 2]
|
||||
return domain_queries[:2]
|
||||
```
|
||||
|
||||
### 3. Increase depth and result caps
|
||||
|
||||
```python
|
||||
DEPTH_CONFIG = {
|
||||
"quick": 1,
|
||||
"default": 3, # was 2 (50% more raw results)
|
||||
"deep": 4, # was 3
|
||||
}
|
||||
|
||||
RESULT_CAP = {
|
||||
"quick": 5,
|
||||
"default": 15, # was 10 (more room for cross-domain markets)
|
||||
"deep": 25, # was 20
|
||||
}
|
||||
```
|
||||
|
||||
This gives default searches 3 queries x 3 pages = 45 raw events (up from 2 queries x 2 pages = 20), plus 2 domain-indicator queries x 1 page = 10 more.
|
||||
|
||||
## Technical Approach
|
||||
|
||||
### Implementation Plan
|
||||
|
||||
#### Phase 1: Expand query generation
|
||||
|
||||
- [x] `scripts/lib/polymarket.py` - Update `_expand_queries()` to add ALL individual words (len > 1), raise cap from 4 to 6
|
||||
- [x] `tests/test_polymarket.py` - Test: `_expand_queries("Arizona Basketball")` returns `["Arizona Basketball", "Arizona", "Basketball"]`
|
||||
- [x] `tests/test_polymarket.py` - Test: `_expand_queries("Iran War")` returns `["Iran War", "Iran", "War"]`
|
||||
- [x] `tests/test_polymarket.py` - Test: short words excluded, cap at 6
|
||||
|
||||
#### Phase 2: Second-pass context expansion (evolved: tags instead of bigrams)
|
||||
|
||||
- [x] `scripts/lib/polymarket.py` - Add `_extract_domain_queries()` using event TAGS (not bigrams - tags are more reliable, contain "NCAA CBB" etc.)
|
||||
- [x] `scripts/lib/polymarket.py` - Update `search_polymarket()` with `_run_queries_parallel()` helper for two-pass search
|
||||
- [x] `scripts/lib/polymarket.py` - Add `_shorten_question()` to extract team names from neg-risk binary market questions
|
||||
- [x] `scripts/lib/polymarket.py` - Synthesize outcome_prices from binary sub-market questions (detects Yes/No pattern, not just negRisk flag)
|
||||
- [x] `scripts/lib/polymarket.py` - Updated outcome reordering to use token-based matching for long question strings
|
||||
- [x] `scripts/lib/polymarket.py` - Also pass market questions to `_compute_text_similarity()` for neg-risk events
|
||||
- [x] `tests/test_polymarket.py` - Tests for tag-based domain extraction: frequent tags, generic tag filtering, topic word filtering, min frequency, cap, empty events
|
||||
|
||||
#### Phase 3: Increase depth and caps
|
||||
|
||||
- [x] `scripts/lib/polymarket.py` - Update `DEPTH_CONFIG`: default 2 -> 3, deep 3 -> 4
|
||||
- [x] `scripts/lib/polymarket.py` - Update `RESULT_CAP`: default 10 -> 15, deep 20 -> 25
|
||||
|
||||
#### Phase 4: Tests and verification
|
||||
|
||||
- [x] Run full test suite (238 passed, 5 pre-existing failures unrelated)
|
||||
- [x] `bash scripts/sync.sh` to deploy to CROSS
|
||||
- [x] Live API test: "Arizona Basketball" - finds NCAA Tournament Winner (Arizona: 12%), #1 Seed (Arizona: 88%), Big 12 (Arizona: 69%)
|
||||
- [x] Live API test: "Iran War" - 15 markets, no regression (domain expansion found "Geopolitics", "Middle East")
|
||||
- [ ] Manual test: `/last30daysCROSS "Arizona Basketball"` - end-to-end with LLM synthesis
|
||||
- [ ] Manual test: `/last30daysCROSS "Duke Basketball"` - verify NCAA Tournament markets appear for another team
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] `_expand_queries()` searches ALL individual words, not just the first
|
||||
- [x] Query cap raised from 4 to 6
|
||||
- [x] Second-pass context expansion discovers domain-indicator terms from first-pass event tags
|
||||
- [x] "Arizona Basketball" search finds NCAA Tournament Winner AND #1 Seed markets (via "NCAA" tag domain expansion)
|
||||
- [x] "Iran War" search still returns 9+ markets (15 - no regression)
|
||||
- [x] All existing tests pass + new query expansion tests pass (91 polymarket tests)
|
||||
- [x] No hardcoded domain knowledge (uses event tags, not hardcoded terms)
|
||||
- [x] Default depth increased to 3 pages per query
|
||||
- [x] Default result cap increased to 15
|
||||
- [x] Neg-risk binary markets show team names instead of Yes/No (via question extraction)
|
||||
- [x] Topic-matching team surfaced first in outcome display
|
||||
|
||||
## Dependencies & Risks
|
||||
|
||||
**No blockers.** Changes are internal to `polymarket.py` and don't affect other modules.
|
||||
|
||||
**Risk: Second-pass adds latency.** 2 extra queries x 1 page each, at ~200ms per call = ~400ms additional latency. The queries run after first-pass completes (serial), so total Polymarket time goes from ~1.5s to ~2s. Acceptable since other sources (YouTube, X) take 10-30s.
|
||||
|
||||
**Risk: Bigram extraction produces noise.** Common title patterns like "regular season" or "2025-2026" could become domain queries. Mitigation: filter filler words, require 2+ title appearances, and cap at 2 queries. A noisy domain query just returns irrelevant events that get scored low by the existing relevance ranker.
|
||||
|
||||
**Risk: Individual word queries return unrelated events.** "Basketball" returns European basketball, "War" returns non-Iran conflicts. Mitigation: the outcome-aware scoring already handles this - events without topic-matching outcomes get low text_score (token overlap only) and sort to the bottom.
|
||||
|
||||
**Risk: Rate limiting.** Adding 4-6 extra API calls per search. Gamma API allows 350 req/10s, so even aggressive searching stays well under limits.
|
||||
|
||||
## Sources & References
|
||||
|
||||
- Query expansion: `scripts/lib/polymarket.py:60` (`_expand_queries`)
|
||||
- Search orchestration: `scripts/lib/polymarket.py:109` (`search_polymarket`)
|
||||
- Event filtering: `scripts/lib/polymarket.py:302-306`
|
||||
- Depth config: `scripts/lib/polymarket.py:20-31`
|
||||
- Previous outcome-aware scoring plan: `docs/plans/2026-02-26-feat-polymarket-smarter-synthesis-plan.md`
|
||||
- Live Gamma API test results from 2026-02-26 (documented above)
|
||||
@@ -0,0 +1,201 @@
|
||||
---
|
||||
title: "chore: open PR triage - build or close decision for all 5 open PRs"
|
||||
type: chore
|
||||
status: active
|
||||
date: 2026-03-02
|
||||
---
|
||||
|
||||
# Open PR Triage
|
||||
|
||||
Decision record for each of the 5 open PRs on `mvanhorn/last30days-skill`.
|
||||
For each: build/merge, cherry-pick, or close with explanation.
|
||||
|
||||
---
|
||||
|
||||
## PR #26 - Add HN, YouTube, and Product Hunt sources + --search flag
|
||||
**Author:** wkbaran | **Size:** +3402/-49 | **Date:** 2026-02-15
|
||||
|
||||
### What it adds
|
||||
- Hacker News source (Algolia API, no auth)
|
||||
- YouTube source (YouTube Data API v3, optional key)
|
||||
- Product Hunt source (GraphQL API, optional key)
|
||||
- `--search=SOURCES` flag (e.g. `--search=reddit,hn,yt`)
|
||||
- 58 new tests
|
||||
|
||||
### What's already on main
|
||||
- **HN:** ✅ already merged (`scripts/lib/hackernews.py`)
|
||||
- **YouTube:** ✅ already merged (`scripts/lib/youtube_yt.py`)
|
||||
- **Product Hunt:** ❌ NOT on main
|
||||
- **`--search` flag:** ❌ NOT on main
|
||||
|
||||
### Decision: CHERRY-PICK (`--search` flag only, skip Product Hunt)
|
||||
|
||||
The HN and YouTube modules in this PR are earlier versions than what's on
|
||||
main. We should NOT take those. Product Hunt is not a priority source.
|
||||
The one missing piece worth landing:
|
||||
|
||||
**`--search=SOURCES` flag** - lets callers (including agent mode) specify
|
||||
which sources to run. Useful for `--search=hn,polymarket` or
|
||||
`--search=reddit,x` focus runs.
|
||||
|
||||
### Plan
|
||||
- Cherry-pick just `tests/test_search_flag.py` and the `--search` argument
|
||||
wiring in `scripts/last30days.py`
|
||||
- Skip `scripts/lib/producthunt.py` and all PH-related code entirely
|
||||
- Do NOT take their `hackernews.py`, `youtube.py`, `render.py`, `normalize.py`,
|
||||
`schema.py` - our versions are newer
|
||||
- Update SKILL.md to document `--search` flag
|
||||
- Comment on PR thanking wkbaran - his HN/YouTube work was an inspiration
|
||||
for the sources we ended up building. Acknowledge that specifically.
|
||||
|
||||
### Acceptance Criteria
|
||||
- [ ] `python3 scripts/last30days.py "AI coding tools" --search=hn,reddit` runs only HN + Reddit
|
||||
- [ ] `python3 scripts/last30days.py "test" --search=x,web` skips Reddit
|
||||
- [ ] `test_search_flag.py` passes (adapt to our test patterns, no PH references)
|
||||
- [ ] SKILL.md updated with `--search` flag docs
|
||||
- [ ] Sync via `bash scripts/sync.sh`
|
||||
|
||||
---
|
||||
|
||||
## PR #24 - Adding Codex compatibility
|
||||
**Author:** el-analista | **Size:** +228/-29 | **Date:** 2026-02-11
|
||||
|
||||
### What it adds
|
||||
- `agents/openai.yaml` Codex discovery metadata
|
||||
- Portable script path resolution in SKILL.md (multi-install-path loop)
|
||||
- Platform-neutral UI text (`assistant` instead of Claude-specific wording)
|
||||
- `LAST30DAYS_CACHE_DIR` env override in `scripts/lib/cache.py`
|
||||
- `LAST30DAYS_OUTPUT_DIR` env override in `scripts/lib/render.py`
|
||||
- X/Bird query noise stripping + last-chance retry in `scripts/lib/bird_x.py`
|
||||
- New tests: `test_bird_x.py`, `test_cache.py`, `test_render.py`
|
||||
|
||||
### What's already on main
|
||||
- **Codex auth:** ✅ already merged (via PR #38)
|
||||
- **Multi-path script resolution:** ✅ already in SKILL.md (the `for dir in` loop)
|
||||
- **Platform-neutral wording:** ❌ NOT systematically applied
|
||||
- **Cache/output dir overrides:** ❌ NOT on main
|
||||
- **Bird X improvements:** ✅ partially (we have other bird_x fixes but may be missing noise stripping + retry)
|
||||
|
||||
### Decision: REVIEW AND PARTIAL CHERRY-PICK
|
||||
|
||||
The env var overrides (`LAST30DAYS_CACHE_DIR`, `LAST30DAYS_OUTPUT_DIR`) are
|
||||
genuinely useful for sandboxed/containerized Codex environments. The bird_x
|
||||
noise stripping and last-chance retry may improve X search quality and are
|
||||
low-risk additions.
|
||||
|
||||
The platform-neutral wording change ("assistant" instead of Claude references)
|
||||
should be skipped — SKILL.md is Claude-specific by design.
|
||||
|
||||
### Plan
|
||||
- Read the diff carefully against our current `cache.py`, `render.py`, `bird_x.py`
|
||||
- Cherry-pick the `LAST30DAYS_CACHE_DIR` and `LAST30DAYS_OUTPUT_DIR` env overrides
|
||||
- Cherry-pick the bird_x noise stripping + retry logic if it doesn't conflict
|
||||
with our existing bird_x changes
|
||||
- Skip `agents/openai.yaml` — we have our own multi-path resolution
|
||||
- Skip platform-neutral wording changes
|
||||
- Comment on PR thanking contributor and explaining what landed
|
||||
|
||||
### Acceptance Criteria
|
||||
- [ ] `LAST30DAYS_CACHE_DIR=/tmp/test python3 scripts/last30days.py "test" --mock` writes cache to /tmp/test
|
||||
- [ ] `LAST30DAYS_OUTPUT_DIR=/tmp/out python3 scripts/last30days.py "test" --mock` writes output to /tmp/out
|
||||
- [ ] Existing tests pass after cherry-pick
|
||||
- [ ] `test_cache.py` and `test_render.py` adapted and passing
|
||||
|
||||
---
|
||||
|
||||
## PR #14 - Simplify to WebSearch-first, make API keys optional
|
||||
**Author:** thangman1 | **Size:** +97/-168 | **Date:** 2026-02-01
|
||||
|
||||
### What it does
|
||||
Removes the Reddit/X Python search engine as the primary data source.
|
||||
Repositions Claude Code's built-in WebSearch as the "default" mode.
|
||||
Strips engagement metrics (upvotes, likes, repost counts) from output.
|
||||
Removes mode detection logic (Full Mode / Partial Mode / Web-Only Mode).
|
||||
|
||||
### Decision: CLOSE - do not merge
|
||||
|
||||
This PR inverts the core value proposition of last30days. The skill's
|
||||
differentiation is **real engagement data** from Reddit threads and X posts —
|
||||
upvotes, likes, reposts — that WebSearch cannot provide. Stripping that out
|
||||
produces a worse tool than just asking Claude to search the web, which anyone
|
||||
can already do.
|
||||
|
||||
The author's intent (lower barrier to entry, no API key required) is valid,
|
||||
but the right solution is making HN + Polymarket work without any API key
|
||||
(they already do), and making OPENAI_API_KEY easier to obtain — not removing
|
||||
the Reddit/X engine.
|
||||
|
||||
### Action
|
||||
- Comment on PR explaining why we're closing it
|
||||
- Acknowledge the valid friction point (API key setup) and point to HN +
|
||||
Polymarket as the zero-config sources
|
||||
- Close PR
|
||||
|
||||
---
|
||||
|
||||
## PR #10 - OpenRouter API integration
|
||||
**Author:** thetechreviewer | **Size:** +1029/-16 | **Date:** 2026-01-28
|
||||
|
||||
### What it adds
|
||||
OpenRouter as an alternative to OpenAI for the Reddit discovery search.
|
||||
Allows using any model available on OpenRouter instead of just OpenAI models.
|
||||
|
||||
### What's already on main
|
||||
- **`scripts/lib/openrouter_search.py`:** ✅ ALREADY ON MAIN
|
||||
- **Wired into `scripts/last30days.py`:** ✅ ALREADY ON MAIN (the `backend == "openrouter"` path)
|
||||
|
||||
### Decision: CLOSE - already merged
|
||||
|
||||
The OpenRouter integration that this PR introduced is already on main. It
|
||||
arrived via internal work that post-dated this PR. The PR is stale.
|
||||
|
||||
### Action
|
||||
- Comment on PR: "Thanks for this — OpenRouter support is already on main
|
||||
(landed via internal work). Closing as incorporated."
|
||||
- Close PR
|
||||
|
||||
---
|
||||
|
||||
## PR #5 - Add support for Codex auth with OpenAI Responses API
|
||||
**Author:** jblwilliams | **Size:** +358/-66 | **Date:** 2026-01-27
|
||||
|
||||
### What it adds
|
||||
- JWT-based Codex auth with `chatgpt_account_id`
|
||||
- Codex endpoint routing (`https://chatgpt.com/backend-api/codex/responses`)
|
||||
- SSE handling for streaming Codex responses
|
||||
- Typed auth status/source dataclass
|
||||
- Codex fallback model chain
|
||||
|
||||
### What's already on main
|
||||
**All of this is already on main.** The Codex auth system landed via PR #37
|
||||
(iliaal:codex-auth-merged), which in turn came in with PR #38. This PR (#5)
|
||||
predates that work and covers the same ground.
|
||||
|
||||
### Decision: CLOSE - already incorporated
|
||||
|
||||
### Action
|
||||
- Comment on PR: "Thanks for this early work on Codex auth! The same feature
|
||||
landed on main via PR #37 (from a separate contributor who built on similar
|
||||
ideas). The JWT decode, Codex endpoint routing, SSE parsing, and typed auth
|
||||
dataclass are all live. Closing as incorporated."
|
||||
- Close PR
|
||||
|
||||
---
|
||||
|
||||
## Summary Table
|
||||
|
||||
| PR | Author | Decision | Reason |
|
||||
|----|--------|----------|--------|
|
||||
| #26 | wkbaran | **Cherry-pick** | `--search` flag not on main; HN/YouTube already there; skip Product Hunt |
|
||||
| #24 | el-analista | **Cherry-pick** | Cache dir overrides + bird_x improvements worth landing; Codex auth already there |
|
||||
| #14 | thangman1 | **Close** | Removes engagement data, inverts core value proposition |
|
||||
| #10 | thetechreviewer | **Close** | OpenRouter already on main |
|
||||
| #5 | jblwilliams | **Close** | Codex auth already on main via PR #37/38 |
|
||||
|
||||
## Implementation Order (if proceeding)
|
||||
|
||||
1. Close PR #5, #10, #14 with comments (no code changes needed)
|
||||
2. Cherry-pick PR #24 pieces (bird_x + cache/render env overrides)
|
||||
3. Cherry-pick PR #26 pieces (Product Hunt + `--search` flag)
|
||||
4. Sync and test
|
||||
5. Push to upstream
|
||||
@@ -0,0 +1,250 @@
|
||||
---
|
||||
title: "feat: close PR #37 - Codex auth finalization and clean close"
|
||||
type: feat
|
||||
status: active
|
||||
date: 2026-03-02
|
||||
---
|
||||
|
||||
# feat: Close PR #37 - Codex Auth Finalization
|
||||
|
||||
## Overview
|
||||
|
||||
PR #37 (`iliaal:codex-auth-merged`) adds Codex auth so users with `codex login` can use the
|
||||
skill without an `OPENAI_API_KEY`. The good news: **all of its core changes are already on main**.
|
||||
PR #38 (which we merged earlier today) was branched directly from #37, so the Codex auth code
|
||||
rode in with that merge.
|
||||
|
||||
The task is to:
|
||||
1. Verify the Codex auth integration is intact and compatible with v2.6 additions
|
||||
2. Fix the one known test isolation bug that PR #37 shipped with
|
||||
3. Close PR #37 with a clear explanation and a thank-you to the contributor
|
||||
|
||||
## What PR #37 Added (Now All on Main)
|
||||
|
||||
### Core Codex auth system (`scripts/lib/env.py`)
|
||||
- `CODEX_AUTH_FILE` path constant (`~/.codex/auth.json`)
|
||||
- `OpenAIAuth` dataclass: `token`, `source`, `status`, `account_id`, `codex_auth_file`
|
||||
- `_decode_jwt_payload()` - JWT base64 decode without verification
|
||||
- `_token_expired()` - checks JWT `exp` claim with 60s leeway
|
||||
- `extract_chatgpt_account_id()` - extracts `chatgpt_account_id` from JWT `https://api.openai.com/auth` claim
|
||||
- `load_codex_auth()` - reads `~/.codex/auth.json`
|
||||
- `get_codex_access_token()` - returns `(token, status)` tuple
|
||||
- `get_openai_auth()` - priority chain: `OPENAI_API_KEY` env var > `.env` file key > Codex token
|
||||
|
||||
### Codex endpoint routing (`scripts/lib/openai_reddit.py`)
|
||||
- `CODEX_RESPONSES_URL = "https://chatgpt.com/backend-api/codex/responses"`
|
||||
- `_parse_sse_chunk()` / `_parse_sse_stream()` / `_parse_codex_stream()` - SSE response parsing
|
||||
- Headers injected for Codex path: `chatgpt-account-id`, `OpenAI-Beta: responses=v1`, `originator: pi`
|
||||
- Codex payload: `store: false`, `stream: true`
|
||||
- `CODEX_FALLBACK_MODELS` retry chain: `gpt-5.1-codex-mini` → `gpt-5.2`
|
||||
|
||||
### Tests (`tests/test_codex_auth.py`)
|
||||
- 22 unit tests covering JWT decode, expiry, account ID extraction, auth resolution,
|
||||
SSE parsing, payload building, source availability
|
||||
- 21/22 pass; 1 has a test isolation bug (see below)
|
||||
|
||||
## What PR #37 Contains That Must NOT Go to Public Repo
|
||||
|
||||
These files are in the #37 branch but are internal benchmarking artifacts. They should
|
||||
never land on the public `upstream` remote:
|
||||
|
||||
| Path | Why private |
|
||||
|------|-------------|
|
||||
| `docs/comparison-results/` (55+ files) | Benchmark JSON/MD from synthesis quality testing |
|
||||
| `docs/plans/*.md` (9 internal plan docs) | Private planning documents |
|
||||
| `docs/v2.1-tweets.md` | Internal launch tweet drafts |
|
||||
| `variants/open/references/research.md` | Internal research notes |
|
||||
| `scripts/evaluate-synthesis.py` | Internal evaluation script |
|
||||
| `scripts/generate-synthesis-inputs.py` | Internal benchmark input generator |
|
||||
| `fixtures/polymarket_sample.json` | Used by internal eval scripts |
|
||||
|
||||
## What PR #37 Has That's OLDER Than Main
|
||||
|
||||
These files in PR #37 are earlier versions than what main has - we keep our versions:
|
||||
|
||||
- `SKILL.md` - PR #37 is v2.1; main is v2.6 (keep v2.6)
|
||||
- `README.md` - PR #37's is missing HN/Polymarket; main's is current (keep main)
|
||||
- `SPEC.md` - PR #37 has an older spec (keep main)
|
||||
- `scripts/lib/hackernews.py` - NOT in PR #37; main has the full HN integration
|
||||
- `scripts/lib/polymarket.py` - PR #37 has an older version without quality ranking
|
||||
- `scripts/sync.sh` - minor differences; main's version is correct
|
||||
|
||||
## Known Issue: Test Isolation Bug
|
||||
|
||||
**File:** `tests/test_codex_auth.py`
|
||||
**Test:** `TestGetOpenaiAuth::test_api_key_takes_priority`
|
||||
|
||||
```python
|
||||
def test_api_key_takes_priority(self):
|
||||
"""OPENAI_API_KEY in env file should be preferred over Codex."""
|
||||
file_env = {"OPENAI_API_KEY": "sk-test123"}
|
||||
auth = env.get_openai_auth(file_env)
|
||||
self.assertEqual(auth.token, "sk-test123") # FAILS if OPENAI_API_KEY set in shell
|
||||
```
|
||||
|
||||
**Root cause:** `get_openai_auth()` checks `os.environ.get("OPENAI_API_KEY")` first (env var
|
||||
priority). The test sets `file_env` but does NOT patch `os.environ`, so the real
|
||||
`OPENAI_API_KEY` from the developer's shell wins.
|
||||
|
||||
**Fix:**
|
||||
|
||||
```python
|
||||
@patch.dict(os.environ, {}, clear=False)
|
||||
def test_api_key_takes_priority(self):
|
||||
```
|
||||
|
||||
But we also need to REMOVE `OPENAI_API_KEY` from the patched env:
|
||||
|
||||
```python
|
||||
@patch.dict(os.environ, {"OPENAI_API_KEY": ""}, clear=False)
|
||||
def test_api_key_takes_priority(self):
|
||||
```
|
||||
|
||||
Actually the cleanest fix:
|
||||
|
||||
```python
|
||||
def test_api_key_takes_priority(self):
|
||||
"""OPENAI_API_KEY in env file should be preferred over Codex."""
|
||||
with patch.dict(os.environ, {}, clear=True):
|
||||
# Restore non-OPENAI env vars to avoid side effects
|
||||
file_env = {"OPENAI_API_KEY": "sk-test123"}
|
||||
auth = env.get_openai_auth(file_env)
|
||||
self.assertEqual(auth.token, "sk-test123")
|
||||
```
|
||||
|
||||
Or the minimal fix (remove just OPENAI_API_KEY without nuking entire env):
|
||||
|
||||
```python
|
||||
@patch.dict(os.environ, {"OPENAI_API_KEY": "sk-test123"})
|
||||
def test_api_key_takes_priority(self):
|
||||
"""OPENAI_API_KEY in env var should be preferred over Codex."""
|
||||
auth = env.get_openai_auth({})
|
||||
self.assertEqual(auth.source, "api_key")
|
||||
self.assertEqual(auth.token, "sk-test123")
|
||||
self.assertIsNone(auth.account_id)
|
||||
```
|
||||
|
||||
This reframes the test as "env var takes priority over empty file_env" which is equally
|
||||
valid and sidesteps the isolation problem entirely.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] Verify `tests/test_codex_auth.py` runs 22/22 clean (no isolation failures)
|
||||
- [ ] Fix `test_api_key_takes_priority` with the minimal patch approach above
|
||||
- [ ] Run full test suite: confirm only the 5 pre-existing stale model failures remain
|
||||
- [ ] Verify `env.py` on main has `is_hackernews_available()` and `is_polymarket_available()`
|
||||
(they were REMOVED in PR #37 but should be on main since #38 preserved them)
|
||||
- [ ] Verify `scripts/sync.sh` deploys to `~/.claude/skills/last30daysCROSS` correctly
|
||||
(PR #37's sync.sh may be missing this; main's version should have it)
|
||||
- [ ] Close PR #37 with a comment explaining the code landed via #38
|
||||
- [ ] Add `docs/comparison-results/` to `.gitignore` in the private repo so benchmark
|
||||
files never accidentally get committed to the upstream public repo
|
||||
|
||||
## Implementation Steps
|
||||
|
||||
### Step 1: Fix the test
|
||||
|
||||
In the **private source repo** (`/Users/mvanhorn/last30days-skill-private/`):
|
||||
|
||||
Edit `tests/test_codex_auth.py` line 77-84. Replace the bare test with the `@patch.dict` version above. Run `python3 -m pytest tests/test_codex_auth.py -v` to confirm 22/22.
|
||||
|
||||
### Step 2: Run full test suite
|
||||
|
||||
```bash
|
||||
cd /Users/mvanhorn/last30days-skill-private
|
||||
python3 -m pytest tests/ -v 2>&1 | tail -20
|
||||
```
|
||||
|
||||
Expected: only `test_reddit_search_basic`, `test_default_model`, `test_model_pin`, and
|
||||
similar model-name tests fail (the 5 pre-existing stale model failures from before PR #37).
|
||||
Codex auth tests should all pass.
|
||||
|
||||
### Step 3: Verify the private docs protection
|
||||
|
||||
Check that `.gitignore` (or the upstream push config) prevents `docs/comparison-results/`
|
||||
from leaking to the public GitHub remote.
|
||||
|
||||
```bash
|
||||
cat /Users/mvanhorn/last30days-skill-private/.gitignore | grep -E "comparison|evaluate|generate"
|
||||
```
|
||||
|
||||
If not present, add:
|
||||
```
|
||||
docs/comparison-results/
|
||||
scripts/evaluate-synthesis.py
|
||||
scripts/generate-synthesis-inputs.py
|
||||
fixtures/polymarket_sample.json
|
||||
docs/v2.1-tweets.md
|
||||
variants/open/references/research.md
|
||||
```
|
||||
|
||||
### Step 4: Commit and sync
|
||||
|
||||
```bash
|
||||
cd /Users/mvanhorn/last30days-skill-private
|
||||
git add tests/test_codex_auth.py
|
||||
git commit -m "fix(tests): patch OPENAI_API_KEY env isolation in test_api_key_takes_priority"
|
||||
bash scripts/sync.sh
|
||||
```
|
||||
|
||||
Then push to upstream (public):
|
||||
```bash
|
||||
git push upstream main
|
||||
```
|
||||
|
||||
### Step 5: Close PR #37
|
||||
|
||||
Post a comment on PR #37 explaining what happened, then close it:
|
||||
|
||||
```
|
||||
Thanks @iliaal! 🙏 This was a great contribution.
|
||||
|
||||
The Codex auth changes landed in main via PR #38, which was branched from your
|
||||
`codex-auth-merged` branch. So all the core auth code is already shipping:
|
||||
|
||||
- JWT decoding + expiry checking in env.py ✅
|
||||
- Codex endpoint routing + SSE parsing in openai_reddit.py ✅
|
||||
- 22 unit tests in test_codex_auth.py ✅
|
||||
- CODEX_FALLBACK_MODELS retry chain ✅
|
||||
|
||||
Since then we've also shipped v2.5 (HN + Polymarket sources) and v2.6 (agent-native
|
||||
invocation with --agent flag), so SKILL.md and README are already ahead of this branch.
|
||||
|
||||
Closing as the changes are incorporated. Thanks again for the excellent work!
|
||||
```
|
||||
|
||||
## Technical Considerations
|
||||
|
||||
**Why can't we just merge #37 directly?**
|
||||
|
||||
Three reasons:
|
||||
1. SKILL.md/README in #37 are v2.1 - they'd overwrite our v2.6 improvements
|
||||
2. The `docs/comparison-results/` directory (55+ benchmark files) would go to the public repo
|
||||
3. The test isolation bug would ship a flaky test to everyone who sets `OPENAI_API_KEY`
|
||||
|
||||
**Cherry-pick vs close approach:**
|
||||
|
||||
Since the Codex auth code is already on main, cherry-picking would be redundant. The cleanest
|
||||
path is to fix the test bug on main, then close #37 with an explanation.
|
||||
|
||||
**Future private-docs hygiene:**
|
||||
|
||||
The `docs/comparison-results/` files should be gitignored or moved to a separate
|
||||
private branch so this situation doesn't repeat. These are internal QA benchmarks -
|
||||
they belong in the private repo only, never in `upstream`.
|
||||
|
||||
## Dependencies & Risks
|
||||
|
||||
**Low risk** - this is test cleanup + PR bookkeeping. The feature itself is already running.
|
||||
|
||||
**Codex auth live test** - We can't easily verify the live Codex auth flow without a `codex login`
|
||||
session. If a user reports auth issues, the test suite gives good coverage of the logic;
|
||||
live testing would require a Codex-authenticated environment.
|
||||
|
||||
## Sources & References
|
||||
|
||||
- PR #37: https://github.com/mvanhorn/last30days-skill/pull/37 (iliaal: codex-auth-merged)
|
||||
- PR #38 (merged): fixed Bird X auth, brought Codex auth to main as a side effect
|
||||
- `tests/test_codex_auth.py` - 22 unit tests for the Codex auth system
|
||||
- `scripts/lib/env.py` lines 26-175 - Codex auth core logic
|
||||
- `scripts/lib/openai_reddit.py` lines 45-310 - Codex endpoint routing
|
||||
@@ -0,0 +1,154 @@
|
||||
---
|
||||
title: "feat: last30days v2.6 - agent-native invocation"
|
||||
type: feat
|
||||
status: completed
|
||||
date: 2026-03-02
|
||||
---
|
||||
|
||||
# feat: last30days v2.6 - Agent-Native Invocation
|
||||
|
||||
## Overview
|
||||
|
||||
v2.5 shipped as a human-only interactive skill. Agents calling it today would hang forever at
|
||||
"WAIT FOR USER RESPONSE" and never receive research output. v2.6 makes the skill fully
|
||||
invocable by other agents - delivering a complete research report instead of an interactive
|
||||
conversation.
|
||||
|
||||
The `disable-model-invocation: true` flag was removed in a hotfix today (2026-03-02). v2.6
|
||||
formalizes that fix, addresses the deeper interactive-flow problem, and updates all
|
||||
documentation to match reality.
|
||||
|
||||
## Problem Statement
|
||||
|
||||
### 1. The flag was removed but the behavior is still broken
|
||||
|
||||
Removing `disable-model-invocation: true` lets agents call the skill. But the skill still:
|
||||
|
||||
- Calls `AskUserQuestion` mid-flow (blocks, waits for a human to click something)
|
||||
- Ends with "WAIT FOR USER RESPONSE" (the calling agent gets nothing)
|
||||
- Assumes a human is reading progress text in real-time
|
||||
|
||||
When an agent calls `/last30days plaud granola`, it needs a **completed research report
|
||||
returned to it**, not a half-executed interactive session.
|
||||
|
||||
### 2. The Security section has a false statement
|
||||
|
||||
Line 558 of SKILL.md still reads:
|
||||
|
||||
```
|
||||
- Cannot be invoked autonomously by the agent (`disable-model-invocation: true`)
|
||||
```
|
||||
|
||||
This is now wrong. It actively misleads users and agents reading the skill docs.
|
||||
|
||||
### 3. No documented path for agent callers
|
||||
|
||||
Users who want to call `last30days` from another skill (e.g., "research this topic and then
|
||||
build a plan") have no guidance on how to do it or what format to expect back.
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
### Agent Mode: `--agent` flag
|
||||
|
||||
Add an `--agent` execution mode that skips all interactive elements and returns a structured
|
||||
research report. Calling agents pass the flag explicitly:
|
||||
|
||||
```
|
||||
/last30days plaud granola --agent
|
||||
```
|
||||
|
||||
### Agent Mode Behavior
|
||||
|
||||
In agent mode, the skill:
|
||||
|
||||
1. **Skips** the intro display block ("I'll research X across Reddit...")
|
||||
2. **Skips** `AskUserQuestion` for target tool clarification
|
||||
3. **Skips** the "WAIT FOR USER RESPONSE" pause
|
||||
4. **Skips** the follow-up invitation ("I'm now an expert on X...")
|
||||
5. **Outputs** a complete, structured report with all findings, then terminates cleanly
|
||||
|
||||
The report format for agent mode:
|
||||
|
||||
```
|
||||
## Research Report: {TOPIC}
|
||||
Generated: {date} | Sources: Reddit, X, YouTube, HN, Polymarket, Web
|
||||
|
||||
### Key Findings
|
||||
[3-5 bullet points, highest-signal insights with citations]
|
||||
|
||||
### {Source} Results
|
||||
[Compact per-source sections with top items]
|
||||
|
||||
### Stats
|
||||
{The existing stats block}
|
||||
```
|
||||
|
||||
### Security Section Rewrite
|
||||
|
||||
Remove the false statement. Replace with:
|
||||
|
||||
```
|
||||
- Can be invoked autonomously by agents via the Skill tool (inline mode, not forked)
|
||||
- Pass `--agent` flag for non-interactive report output
|
||||
```
|
||||
|
||||
### Version Bump
|
||||
|
||||
`version: "2.5"` → `version: "2.6"` in SKILL.md frontmatter.
|
||||
|
||||
## Technical Considerations
|
||||
|
||||
### Implementation: SKILL.md instructions only
|
||||
|
||||
Add a section to SKILL.md that reads:
|
||||
```
|
||||
## Agent Mode (--agent flag)
|
||||
If --agent is in ARGUMENTS: skip intro display, skip AskUserQuestion, skip invitation,
|
||||
skip WAIT block. Output the full research report and stop.
|
||||
```
|
||||
|
||||
No Python script changes needed. The script already outputs everything via `--emit=compact` -
|
||||
the LLM just skips the interactive wrapper. If LLM instruction-following proves unreliable in
|
||||
testing, a v2.6.1 patch adds `--agent` natively to `last30days.py` (Python flag approach).
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] `disable-model-invocation: true` is gone from SKILL.md (done in hotfix - verify)
|
||||
- [x] Security section no longer claims the skill cannot be invoked autonomously
|
||||
- [x] SKILL.md documents the `--agent` flag and its behavior
|
||||
- [x] In `--agent` mode: no AskUserQuestion calls, no WAIT block, full report output
|
||||
- [x] Version is `2.6` in frontmatter
|
||||
- [x] Synced to all 4 destinations via `sync.sh`
|
||||
- [ ] Manual test: `Skill { skill: "last30days", args: "plaud granola --agent" }` returns
|
||||
a complete research report without hanging
|
||||
|
||||
## Implementation Steps
|
||||
|
||||
1. **Verify hotfix** - confirm `disable-model-invocation` is gone in private source
|
||||
2. **Edit SKILL.md** - update Security section, add Agent Mode section, bump version
|
||||
3. **Run sync.sh** - deploy to `~/.claude`, `~/.agents`, `~/.codex`
|
||||
4. **Test** - invoke via Skill tool and verify report returns cleanly
|
||||
|
||||
All changes are in `SKILL.md` only. No Python changes needed for v2.6.
|
||||
|
||||
## Dependencies & Risks
|
||||
|
||||
**No script changes** - this is a pure SKILL.md update. Low risk.
|
||||
|
||||
**LLM instruction-following** - agent mode relies on the LLM reading and following the
|
||||
`--agent` section. If testing shows it's unreliable, escalate to Option B (Python flag)
|
||||
as a v2.6.1 patch.
|
||||
|
||||
**Skill list refresh** - after sync, Claude Code needs to restart or reload skills to see
|
||||
the updated frontmatter. Users on older Claude Code versions may still see the old flag.
|
||||
|
||||
## Distribution Note
|
||||
|
||||
For users who installed from the public repo, they need to pull the update. The sync script
|
||||
handles local installations. For `last30daysCROSS` variant, the same changes apply.
|
||||
|
||||
## Sources & References
|
||||
|
||||
- [fix-skill-execution-fork-mode-plan.md](./2026-02-06-fix-skill-execution-fork-mode-plan.md) - original fork-mode diagnosis
|
||||
- SKILL.md line 558: false security claim to remove
|
||||
- Hotfix applied 2026-03-02: removed `disable-model-invocation: true`
|
||||
@@ -0,0 +1,102 @@
|
||||
---
|
||||
title: "fix: suppress trailing Sources: block from WebSearch tool mandate"
|
||||
type: fix
|
||||
status: completed
|
||||
date: 2026-03-02
|
||||
---
|
||||
|
||||
# fix: Suppress Trailing Sources: Block from WebSearch Tool Mandate
|
||||
|
||||
## Problem
|
||||
|
||||
After the skill completes, a `Sources:` block appears below the invitation text:
|
||||
|
||||
```
|
||||
I'm now an expert on the Dor Brothers. Some things I can help with:
|
||||
...
|
||||
|
||||
Sources:
|
||||
- Movie starring Logan Paul made exclusively with AI released - Newsweek
|
||||
- The Dor Brothers: Pioneers in AI Video Production
|
||||
- ...
|
||||
```
|
||||
|
||||
This happens because the `WebSearch` tool has a **system-level mandatory instruction**:
|
||||
> "After answering the user's question, you MUST include a 'Sources:' section at the end of your response"
|
||||
|
||||
SKILL.md already says `DO NOT output "Sources:" list` (line 214) but this is too vague - it doesn't address the WebSearch tool mandate explicitly, so the tool's system instruction wins. The model dutifully appends Sources: after all skill output is done.
|
||||
|
||||
## Root Cause
|
||||
|
||||
Two competing instructions:
|
||||
1. **WebSearch system mandate** (higher authority): "MUST include Sources: at end of response"
|
||||
2. **SKILL.md line 214** (lower authority): "DO NOT output Sources: list"
|
||||
|
||||
The model follows #1 because it's framed as a critical system requirement.
|
||||
|
||||
The fix: **satisfy the WebSearch citation requirement INSIDE the stats block**, then explicitly tell the model the requirement is already fulfilled and no trailing section is needed.
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
**Two-part SKILL.md edit only. No Python changes.**
|
||||
|
||||
### Part 1: Update the Step 2 instruction (line 214)
|
||||
|
||||
**Current:**
|
||||
```
|
||||
- **DO NOT output "Sources:" list** - this is noise, we'll show stats at the end
|
||||
```
|
||||
|
||||
**Replace with:**
|
||||
```
|
||||
- **DO NOT output a separate "Sources:" block** — instead, include the top 3-5 web
|
||||
source names as inline links on the 🌐 Web: stats line (see stats format below).
|
||||
This satisfies the WebSearch tool's citation requirement inline without a trailing section.
|
||||
```
|
||||
|
||||
### Part 2: Update the stats block format to include web source links
|
||||
|
||||
**Current stats line:**
|
||||
```
|
||||
├─ 🌐 Web: {N} pages (supplementary)
|
||||
```
|
||||
|
||||
**Replace with:**
|
||||
```
|
||||
├─ 🌐 Web: {N} pages — [Source Name](url), [Source Name](url), [Source Name](url)
|
||||
```
|
||||
|
||||
And immediately after the closing `---` of the stats block, add:
|
||||
|
||||
```
|
||||
**WebSearch citation note:** Source links are included in the 🌐 Web: line above.
|
||||
The WebSearch tool citation requirement is satisfied. Do NOT append a separate
|
||||
"Sources:" section after the invitation.
|
||||
```
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [x] The trailing `Sources:` block no longer appears after the invitation
|
||||
- [x] Web source links appear cleanly on the `🌐 Web:` stats line
|
||||
- [ ] Manual test: run `/last30days dor brothers` and confirm no trailing Sources: block
|
||||
- [x] Synced to all 4 destinations via `sync.sh`
|
||||
|
||||
## Implementation Steps
|
||||
|
||||
1. Edit `SKILL.md` line 214 (Step 2 section) - replace weak "DO NOT" with redirect instruction
|
||||
2. Edit `SKILL.md` stats block format - add `— [Source](url), ...` to the 🌐 Web: line
|
||||
3. Add WebSearch citation note after the stats block closing `---`
|
||||
4. Run `bash scripts/sync.sh` to deploy
|
||||
5. Test with `/last30days [any topic]` and confirm no trailing Sources:
|
||||
|
||||
## Context
|
||||
|
||||
- **Why not just fight the mandate?** The WebSearch system instruction is authoritative. We can't override it with a soft "don't do this." We need to redirect it.
|
||||
- **Why the stats block?** It's the natural place for source metadata and it appears before the invitation, so satisfying the citation there prevents the trailing append.
|
||||
- **SKILL.md is the only file that needs to change.** No Python script changes required.
|
||||
|
||||
## Sources & References
|
||||
|
||||
- SKILL.md line 214: current weak instruction
|
||||
- SKILL.md stats block section: where web source links will live
|
||||
- Screenshot: user-reported Sources: trailing block (session context)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user