From 99b167d03ad17b16f01e08e855ec418d257d034a Mon Sep 17 00:00:00 2001 From: Matt Van Horn Date: Sat, 11 Apr 2026 02:36:55 -0400 Subject: [PATCH] fix: resolve duplicate skill name causing marketplace validation failure (#204) (#214) Two SKILL.md files declared `name: last30days` with `user-invocable: true`, which caused strict marketplace validators to reject the plugin with "Some plugins in this marketplace have validation errors": - ./SKILL.md (canonical, also reachable via skills/last30days-nux/ symlink) - ./skills/last30days/SKILL.md (v3 architecture spec, real file) In v2.9.6, skills/last30days/SKILL.md was a symlink to ../../SKILL.md so only one skill existed. Commit 0a9ff16 (v3.0.0) added a new real file at skills/last30days-v3/SKILL.md, and commit 9be0780 then renamed that directory to skills/last30days/, replacing the original symlink with a different real file. The collision has been live since v3.0.0 shipped. This change: - Renames skills/last30days/SKILL.md to name: last30days-v3-spec and sets user-invocable: false. The file stays in place as internal architecture documentation, but it no longer competes with the canonical skill. - Fixes README.md link that pointed to the deleted skills/last30days-v3/ path (left over from the rename). - Removes a stale variants/open/SKILL.md reference (variants/open was deleted in v3.0.0). After the change, only one canonical name=last30days user-invocable=true skill exists (the root SKILL.md, also reachable via the skills/last30days-nux/ symlink, same inode). Closes #204. This contribution was developed with AI assistance (Codex). Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> --- README.md | 2 +- skills/last30days/SKILL.md | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 18a4b8d..27ec62c 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ **An AI agent-led search engine scored by upvotes, likes, and real money - not editors.** -This README tracks the current v3 pipeline. The runtime skill spec lives in [skills/last30days-v3/SKILL.md](skills/last30days-v3/SKILL.md), which is the source of truth for the latest command and setup behavior. +This README tracks the current v3 pipeline. The runtime skill spec lives in [skills/last30days/SKILL.md](skills/last30days/SKILL.md), which is the source of truth for the latest command and setup behavior. Claude Code: ``` diff --git a/skills/last30days/SKILL.md b/skills/last30days/SKILL.md index 4f3417e..fea4f86 100644 --- a/skills/last30days/SKILL.md +++ b/skills/last30days/SKILL.md @@ -1,14 +1,14 @@ --- -name: last30days +name: last30days-v3-spec version: "3.0.0" -description: "Multi-query social search with intelligent planning. Agent plans queries when possible, falls back to Gemini/OpenAI when not. Research any topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, and the web." +description: "Internal architecture spec for the v3 last30days runtime pipeline. Not user-invocable." argument-hint: "last30days codex vs claude code" allowed-tools: Bash, Read, Write, WebSearch homepage: https://github.com/mvanhorn/last30days-skill repository: https://github.com/mvanhorn/last30days-skill author: mvanhorn license: MIT -user-invocable: true +user-invocable: false --- # last30days v3.0.0 @@ -86,7 +86,6 @@ fi - `yt-dlp` enables YouTube. - Planning and reranking fall back gracefully: Gemini -> OpenAI -> xAI -> deterministic/local. - Web retrieval stays within Brave/Serper dated results. Undated web hits are dropped. -- For OpenClaw-specific watchlist, briefing, and history workflows, use `variants/open/SKILL.md`. ## Output model