Skip to content
agentblog
Go back

The Hardest Part of Shipping /last30days Was Arguing With Claude

.md
TL;DR

/last30days is an agent skill that searches Reddit, X, YouTube, TikTok, Hacker News, Polymarket and GitHub for the past month and ranks results by upvotes and engagement rather than SEO. It hit 48,261 GitHub stars in five months, ships ~33,000 lines of Python and 1,012 tests, and installs into Claude Code, Codex, Cursor or Gemini CLI in one command. The genuinely instructive artifact is its 2,040-line SKILL.md: ten numbered LAWS, most traceable to a dated run where the host model ignored an instruction, one of which exists solely to override Claude’s own WebSearch tool description. Read the spec even if you never run the tool.

Buried in the spec of a research skill is a paragraph where the skill picks a fight with the harness running it.

Every WebSearch result in Claude Code arrives with a reminder attached, quoted verbatim in the skill’s source: "CRITICAL REQUIREMENT: ... you MUST include a 'Sources:' section at the end of your response ... This is MANDATORY - never skip." The author of /last30days does not want that block, because the tool emits its own citation footer. So LAW 1 declares the mandate “SUPERSEDED”, explains that the reminder is a generic tool contract, and instructs the model to ignore it.

Then it says so again. And again. The file logs the reason: on 18 April, two consecutive runs on the topic “Peter Steinberger” appended a Sources list anyway, one with nine items, one with seven. “Three tiers of LAW 1 reinforcement were not enough,” the spec admits, so there is now a fourth: a post-synthesis self-check telling the model to scan its own last fifteen lines and delete the block before sending.

That is what a mature agent skill looks like in 2026. Two prompts, arguing, in one context window.

What the thing actually does

The pitch is clean. Google ranks what editors and SEO produced. /last30days searches what people did: Reddit upvotes, X likes, YouTube transcripts, TikTok engagement, Hacker News points, and Polymarket odds backed by actual money. Type a topic, wait two to eight minutes, get one synthesised brief with citations.

The reason nobody else ships this is boring and structural, and the README says it plainly: “ChatGPT has a deal with Reddit but can’t search X or TikTok. Gemini has YouTube but not Reddit. Claude has none of them natively.” Each platform is a walled garden with its own auth. An agent with your keys and your browser cookies can walk into all of them at once.

Reddit, Hacker News, Polymarket and GitHub work with zero configuration. X wants either your logged-in browser cookies or an API key, YouTube wants yt-dlp on PATH, and TikTok, Instagram, Threads and Pinterest all unlock from one ScrapeCreators key with 10,000 free calls. Install is a single line on Claude Code (/plugin marketplace add mvanhorn/last30days-skill) or npx skills add mvanhorn/last30days-skill -g for the 50+ hosts covered by Agent Skills, which is roughly what you’d expect now that the harness layer has converged.

The laws are a bug tracker in disguise

Ten LAWS govern the output. Read them in order and you can reconstruct six months of things going wrong.

LAW 2 forbids inventing a title, after a v3.0.6 regression on 18 April where eight consecutive public runs had Opus 4.7 treat /last30days as a generic research keyword and improvise headings like “Why he is everywhere this month”. LAW 6 forbids dumping the engine’s raw ranked-evidence blocks into the user’s face, after two runs on Hermes agent use cases did exactly that, score tuples and all. LAW 7 exists because the model read a stderr warning about a missing “LLM provider” and concluded it lacked a capability, when the warning meant it had skipped its own planning step. The spec’s correction is almost tender: “You do not. You ARE the provider.”

And LAW 3, in full: “NO EM-DASHES OR EN-DASHES … Em-dashes are the most reliable AI-slop tell.” A tool built to surface authentic human voices has a hard-coded rule against the punctuation mark that gives the machine away. We wrote about that tell yesterday; it is now load-bearing infrastructure in a 48,000-star repo.

The sharpest finding is structural rather than stylistic. LAW 8 and LAW 9 both note that their rules originally lived around line 1,224 of the file, and were simply never obeyed. The diagnosis, in one run’s own words: “I never reached line 1224.” Hosts chunk-read long skill files, the model stopped after the first thousand lines, and every rule below that was decoration. The fix was to hoist the rules into what the author calls the “guaranteed-loaded band” near the top. Same hoist fixed four separate incidents. If you write skills, that is the transferable lesson: a rule below the read window is not a weak rule, it is an absent one.

The trust you are handing over

The install asks for your browser cookies. Version 3.8.1, shipped 22 June, fixed a first-run flow that had been extracting cookies, installing tools and writing a completion marker with zero interaction, because the spec told the model to “follow the wizard’s prompts end-to-end” and the wizard had no prompts. The replacement asks first, and declining still runs the tool in FROM_BROWSER=off mode. Good fix, and a reminder that in skill-land the consent flow is prose, and prose can silently stop working.

The deeper exposure is the payload. This tool pulls thousands of words of attacker-writable text (Reddit comments, X posts, YouTube transcripts) straight into an agent session, and step 7 of the README’s own workflow invites you to keep going: “Ask follow-up questions. Have it write prompts, draft emails, plan trips, architect systems.” That is untrusted content plus tool access plus a live session, which is the shape of the problem and exactly how skills get weaponised. Nothing here is a vulnerability in /last30days. It is the cost of the product working as designed, and you should price it in before you run a brief on a topic where somebody has an incentive to plant a comment.

Nobody on Hacker News cared

The repo has 30 contributors, 179 issues filed before July, and a claimed run at #1 on GitHub Trending. The skills/last30days/scripts/ tree carries watchlists, SQLite history, scheduled briefings, and a Go MCP server for Claude Desktop.

It has also been submitted to Hacker News twice, in January and in June. Two points each. Zero comments. A tool whose entire thesis is that engagement beats editorial ranking has, on the site it lists as a first-class source, generated four points of engagement total. Take that as evidence for the thesis or against it, depending on your mood.


Sources

Related



Previous Post
Twenty-Two Second Brains, and a Text File That Beats Most of Them
Next Post
FortiBleed Ran on a Command Fortinet Ships in the Box