f4a3cc104b
Release / build-and-release (push) Has been cancelled
v3.0.1 added .gitattributes rules that excluded both directories from git archive output, shrinking the claude.ai .skill bundle. But Claude Code's /plugin install fetches the SAME archive, so users installing v3.0.1 or v3.0.2 received a tarball with no plugin manifest and no skill files. Install appeared successful but the plugin was a useless empty shell. Proof: git archive v3.0.0 | grep 'skills/|\.claude-plugin/' | wc -l # 8 git archive v3.0.1 | grep 'skills/|\.claude-plugin/' | wc -l # 0 git archive v3.0.2 | grep 'skills/|\.claude-plugin/' | wc -l # 0 No issue reports yet because: - Cached pre-v3.0.1 installs keep working (it's the new-install path that's broken) - The breakage is under 24 hours old - Users invoking the skill via natural language go through skill-selector rather than /last30days slash command Also reverts v3.0.2's "skills": ["skills"] back to "./", the value that shipped in every tag from v2.1.0 through v3.0.0. That change was a misdiagnosis; the manifest wasn't in the tarball anyway so it had no effect on user-visible installs. Archive file count after fix: 97 (cap is 200, plenty of room). Follow-up: move claude.ai-specific bundle exclusions into scripts/build-skill.sh where they belong, rather than .gitattributes which cannot distinguish between the two distribution channels. Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
68 lines
2.0 KiB
JSON
68 lines
2.0 KiB
JSON
{
|
|
"name": "last30days-skill",
|
|
"version": "3.0.3",
|
|
"description": "Research a topic from the last 30 days across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, and the web.",
|
|
"settings": [
|
|
{
|
|
"name": "Extension Directory",
|
|
"description": "Extension installation directory (auto-set by Gemini CLI)",
|
|
"envVar": "GEMINI_EXTENSION_DIR",
|
|
"sensitive": false
|
|
},
|
|
{
|
|
"name": "ScrapeCreators API Key",
|
|
"description": "ScrapeCreators API Key for Reddit, TikTok, and Instagram search (required)",
|
|
"envVar": "SCRAPECREATORS_API_KEY",
|
|
"sensitive": true
|
|
},
|
|
{
|
|
"name": "OpenAI API Key",
|
|
"description": "OpenAI API Key - optional fallback for Reddit discovery",
|
|
"envVar": "OPENAI_API_KEY",
|
|
"sensitive": true
|
|
},
|
|
{
|
|
"name": "xAI API Key",
|
|
"description": "xAI API Key for X/Twitter search (optional)",
|
|
"envVar": "XAI_API_KEY",
|
|
"sensitive": true
|
|
},
|
|
{
|
|
"name": "OpenRouter API Key",
|
|
"description": "OpenRouter API Key (optional)",
|
|
"envVar": "OPENROUTER_API_KEY",
|
|
"sensitive": true
|
|
},
|
|
{
|
|
"name": "Parallel AI API Key",
|
|
"description": "Parallel AI API Key (optional)",
|
|
"envVar": "PARALLEL_API_KEY",
|
|
"sensitive": true
|
|
},
|
|
{
|
|
"name": "Brave Search API Key",
|
|
"description": "Brave Search API Key (optional)",
|
|
"envVar": "BRAVE_API_KEY",
|
|
"sensitive": true
|
|
},
|
|
{
|
|
"name": "Apify API Token",
|
|
"description": "Apify API Token (optional legacy)",
|
|
"envVar": "APIFY_API_TOKEN",
|
|
"sensitive": true
|
|
},
|
|
{
|
|
"name": "Twitter AUTH_TOKEN",
|
|
"description": "Twitter browser AUTH_TOKEN cookie for direct X search (optional)",
|
|
"envVar": "AUTH_TOKEN",
|
|
"sensitive": true
|
|
},
|
|
{
|
|
"name": "Twitter CT0",
|
|
"description": "Twitter browser CT0 cookie (optional, pair with AUTH_TOKEN)",
|
|
"envVar": "CT0",
|
|
"sensitive": true
|
|
}
|
|
]
|
|
}
|