Show HN: Bullshit Detector – agent skills that fact-check videos and articles

main
Branches
Tags
Go to file
Code
Open more actions menu
Folders and files
Name
Name
Last commit message
Last commit date
Latest commit
History
6 Commits
6 Commits
.claude-plugin
.claude-plugin
agents
agents
examples
examples
scripts
scripts
skills
skills
.gitignore
.gitignore
AGENTS.md
AGENTS.md
CLAUDE.md
CLAUDE.md
CONTEXT.md
CONTEXT.md
LICENSE
LICENSE
README.md
README.md
SETUP.md
SETUP.md
View all files
Repository files navigation
README
MIT license
More
items
Bullshit Detector
Agent skills that fact-check the internet. Point your agent at a viral YouTube video, article, tweet, or PDF — get a claim-by-claim verification report with sources and a
BS score (0–10)
instead of taking “10 WAYS TO MAKE MONEY WITH AI 🤯” at face value.
Portable
Agent Skills
— plain markdown + self-contained Python. They work in Claude Code, Codex, OpenCode, and any harness that supports the skills format and has web search.
Built in the open with
Claude Code
— an AI helped build the tool that fact-checks AI hype, and the
example report
is it auditing its own kind.
Follow
@SerhiiFounder
for new skills and fact-check experiments, or
join the newsletter
to get them in your inbox.
Quickstart (30-second setup)
Install
uv
if you don’t have it (the fetch script uses it to self-resolve its dependencies).
Run the skills.sh installer and pick the skills and agents you want:
npx skills@latest add SerhiiKorniienko/bullshit-detector
Ask your agent:
“is this bullshit? ”
,
“fact-check this video”
,
“summarize ”
,
“explain the part at 12:30”
.
Install as a Claude Code plugin
Prefer a managed bundle that updates when a new version ships, instead of copied files you maintain yourself? Inside Claude Code:
/plugin marketplace add SerhiiKorniienko/bullshit-detector
/plugin install bullshit-detector@serhii-korniienko
Two ways to install, two philosophies:
skills.sh
copies the skills into your setup so you can hack on them and make them your own. Works with any agent (Claude Code, Codex, OpenCode, …).
The plugin
keeps them as a read-only, always-current bundle — best when you just want it to work and follow along as it evolves. Claude Code only.
Pick one, not both
— installing both gives Claude Code two copies of every skill.
Setup by agent
Works beyond Claude Code — the skills are plain markdown + self-contained scripts. Full walkthroughs with caveats per surface live in
SETUP.md
:
Agent / app
Support
Guide
Claude Code CLI
✅ everything
SETUP.md → Claude Code CLI
Claude Desktop app (Code tab)
✅ everything — same as CLI
SETUP.md → Code tab
Claude Desktop / claude.ai (Chat)
⚠️
analysis skills only (sandbox can’t reach YouTube/TikTok)
SETUP.md → Chat
OpenAI Codex
✅ via skills.sh installer
SETUP.md → OpenAI Codex
ChatGPT
⚠️
paste-driven workaround
SETUP.md → ChatGPT
OpenCode, Cursor, Gemini CLI, …
✅ via skills.sh installer
SETUP.md → Other agents
Why These Skills Exist
#1: Viral ≠ true
A finance guy with 1M views tells you the “only 14 ways to make money with AI”. How much of it is real? Views, production value, and confidence are not evidence. The fix is boring: extract every claim, check each against independent sources, and score what survives. That’s exactly the work agents with web search are good at and humans never bother doing.
The fix:
bullshit-detector
— per-claim verdicts (✅ confirmed / 🟡 plausible / 🟠 misleading / ❌ false / ❓ unverifiable), a hype-signal scan, an incentive analysis (“who benefits if you believe this”), and a 0–10 BS score. Verdicts require sources — the skill forbids confirming or refuting from model memory alone.
#2: Agents can’t watch videos
Your agent can’t sit through a 27-minute video, and YouTube’s official API won’t give you captions for videos you don’t own. Same story with tweets ($100/mo API) and paywalled articles.
The fix:
fetch-content
— one script that turns any URL into clean text + metadata with no API keys: YouTube transcripts and TikTok captions via yt-dlp, articles via readability extraction, PDFs, tweets via free endpoints. Every failure mode produces an actionable hint (paywall → paste, no captions → Whisper) instead of a silent guess.
#3: Separation of fetching and judging
Ingestion and analysis are different jobs. Scripts do the deterministic work (fetch, parse, normalize); the agent does the reasoning (extract claims, search, judge). Because analysis skills only ever see normalized text + metadata, adding TikTok support one day touches zero analysis logic — and the same detector works on a tweet and a 3-hour podcast.
Example
A real run against a 1.16M-view “make money with AI” video:
examples/report-14-ways-to-make-money-with-ai.md
.
BS score: 5/10 — real tools, real trends, guru math, and a funnel every four minutes.
12 claims verified: 4 confirmed, 2 plausible, 3 misleading, 0 false, 3 unverifiable. Among the catches: “Renaissance, D.E. Shaw, Two Sigma only trade employees’ money” (true for one fund of one firm), and marketplace stats sourced from the marketplace’s own PR.
And a TikTok run — a 552K-view “our Sun has a hidden twin” video:
examples/report-second-sun-binary-star.md
(BS score: 9/10 — real astronomy vocabulary stitched onto a fabricated cosmology).
TikTok videos
Yes, TikTok works — ask the same way:
“is this bullshit?
https://vt.tiktok.com/…
”
.
How it works under the hood:
Built-in captions first.
Most TikToks ship with creator or auto-generated captions. The
fetch-content
script handles this natively — TikTok URLs (including
vt.tiktok.com
short links) return a timestamped transcript plus views/likes/reposts, no video download. The same thing by hand:
uvx yt-dlp –list-subs

#
check what’s available
uvx yt-dlp –write-subs –sub-langs
”
eng-US
”
–skip-download

#
grab the .vtt
No captions? Whisper fallback.
For caption-less TikToks and Reels there’s a validated local-transcription prototype (mlx-whisper on Apple Silicon, no system ffmpeg needed — PyAV decodes the audio) graduating from
skills/in-progress
as the
transcribe
skill. Use
whisper-large-v3-turbo
— smaller models garble words badly enough to break claim extraction.
The analysis side doesn’t care either way — the detector sees normalized text + metadata whether it came from a 7-minute TikTok or a 3-hour podcast (that’s
design principle #3
).
Reference
All skills are
model-invoked
: you can call them explicitly, and the agent also reaches for them when your request fits (“is this legit?” triggers the detector).
Analysis
Reason about content. Source-agnostic — they never care where the text came from.
bullshit-detector
— Extract every claim, verify each against independent sources via web search, scan for hype signals, produce a report card with per-claim verdicts and a 0–10 BS score.
summarize
— Structured TLDR with timestamped key points, notable quotes, and an honest “worth your time?” call.
explain
— ELI5 → deep-dive explanation of the content or any concept in it, with a jargon glossary and the prerequisites the original assumes.
Ingestion
Turn any source into clean text + metadata.
fetch-content
— YouTube transcripts, TikTok captions, articles, PDFs, tweets, local files. One script, auto-detects source, no API keys.
Publishing
Turn reports into shareable output.
share
— Ready-to-paste posts for X (thread/single), LinkedIn, Facebook, Reddit, Hacker News, or a newsletter — plus a branded image carousel: 1080×1350 PNGs for X/Instagram and the PDF that LinkedIn document posts want.
Roadmap
See
skills/in-progress
:
compare
(same topic across sources — who’s right?),
transcribe
(Whisper for caption-less TikTok/Reels — working mlx-whisper prototype landed, SKILL.md pending), X thread walking.
Stay in touch
I’m building these skills in the open — new detectors, adapters, and real fact-check reports as they land.
Follow
@SerhiiFounder
on X
Join the newsletter
— a short weekly-ish email, no spam, unsubscribe anytime
License
MIT
About
Agent skills that fact-check the internet: claim-by-claim verification with sources and a 0-10 BS score for any YouTube video, article, tweet, or PDF
korniienko.dev/newsletter
Topics
agent-skills
ai-agents
claude-code
content-analysis
fact-checking
misinformation
skills
yt-dlp
Resources
Readme
MIT license
Activity
Stars
38
stars
Watchers
0
watching
Forks
0
forks
Report repository
Releases
Packages
Contributors
Languages