From 3499c246b8be40fb7b51a0b9e1d582c1c06ebfd1 Mon Sep 17 00:00:00 2001 From: Matt Van Horn Date: Wed, 15 Apr 2026 15:19:42 -0400 Subject: [PATCH] fix: add commands/last30days.md and remove skills/last30days-nux duplicate (#267) Adds commands/last30days.md so /last30days registers as a Claude Code slash command for plugin users. Users type /last30days and autocomplete prefix-matches to the canonical /last30days:last30days form (same as /ce:plan resolving to /compound-engineering:ce-plan). Removes skills/last30days-nux/, a byte-identical duplicate of the root SKILL.md that created confusing /last30days:last30days-nux autocomplete entries via Claude Code's plugin namespacing. Root SKILL.md remains the canonical skill source; natural-language skill-selector invocation is unchanged. Recovery for users on v3.0.4: /plugin update last30days then /reload-plugins. Closes #239 (path-escape error was already fixed in v3.0.4 by dropping the rogue 'skills' key; v3.0.5 adds the slash command on top). Supersedes #257 (suggested './' -> '.' workaround is obsolete since v3.0.4 dropped the 'skills' key entirely, matching ecosystem standard). Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> --- .claude-plugin/marketplace.json | 2 +- .claude-plugin/plugin.json | 2 +- CHANGELOG.md | 19 +++++++++++++++++++ commands/last30days.md | 9 +++++++++ gemini-extension.json | 2 +- skills/last30days-nux/SKILL.md | 1 - 6 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 commands/last30days.md delete mode 120000 skills/last30days-nux/SKILL.md diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index a4467f4..3c7c109 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -10,7 +10,7 @@ { "name": "last30days", "description": "Research any topic across Reddit, X, YouTube, TikTok, Instagram, HN, Polymarket, GitHub, and 5+ more sources.", - "version": "3.0.4", + "version": "3.0.5", "author": { "name": "Matt Van Horn", "url": "https://github.com/mvanhorn" diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 1cc737a..fb3afc7 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "last30days", - "version": "3.0.4", + "version": "3.0.5", "description": "Research any topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, and 5+ more sources. AI agent scores by upvotes, likes, and real money - not editors.", "author": { "name": "Matt Van Horn", diff --git a/CHANGELOG.md b/CHANGELOG.md index 9313792..4a3b45f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,25 @@ 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). +## [3.0.5] - 2026-04-15 + +### Added + +- **`/last30days` slash command for plugin users.** New `commands/last30days.md` registers a Claude Code slash command. Users type `/last30days ` and Claude Code's autocomplete prefix-matches it to the canonical `/last30days:last30days` form (the same way `/ce:plan` resolves to `/compound-engineering:ce-plan`). The command delegates to the existing `last30days` skill body — no skill behavior changes. + +### Removed + +- **`skills/last30days-nux/`** — byte-identical duplicate of root `SKILL.md` that created confusing `/last30days:last30days-nux` autocomplete entries via Claude Code's plugin namespacing. The root `SKILL.md` remains the canonical skill source. + +### Recovery + +``` +/plugin update last30days +/reload-plugins +``` + +Then type `/last30days ` to invoke the skill via slash command. Natural-language invocation ("search the last 30 days for X") continues to work unchanged. + ## [3.0.4] - 2026-04-15 ### Fixed diff --git a/commands/last30days.md b/commands/last30days.md new file mode 100644 index 0000000..90b28d9 --- /dev/null +++ b/commands/last30days.md @@ -0,0 +1,9 @@ +--- +description: Research what people actually say about any topic in the last 30 days across Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub, and the web. +argument-hint: — e.g. "nvidia earnings reaction" or "best noise cancelling headphones" +allowed-tools: [Bash, Read, Write, AskUserQuestion, WebSearch] +--- + +Invoke the `last30days` skill with the user's arguments: $ARGUMENTS + +Use the skill's canonical pipeline (plan → retrieve → normalize → fuse → rerank → cluster → render). If the user provided no arguments, ask them for a topic before proceeding. diff --git a/gemini-extension.json b/gemini-extension.json index 050f69b..f6fa6f9 100644 --- a/gemini-extension.json +++ b/gemini-extension.json @@ -1,6 +1,6 @@ { "name": "last30days-skill", - "version": "3.0.4", + "version": "3.0.5", "description": "Research a topic from the last 30 days across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, and the web.", "settings": [ { diff --git a/skills/last30days-nux/SKILL.md b/skills/last30days-nux/SKILL.md deleted file mode 120000 index 4215fae..0000000 --- a/skills/last30days-nux/SKILL.md +++ /dev/null @@ -1 +0,0 @@ -../../SKILL.md \ No newline at end of file