feat: convert to Claude Code marketplace plugin#1
feat: convert to Claude Code marketplace plugin#1galligan wants to merge 2 commits intomvanhorn:mainfrom
Conversation
Restructure repository from standalone skill to Claude Code marketplace plugin
format for easier installation via `claude plugin marketplace add`.
Changes:
- Add .claude-plugin/marketplace.json with marketplace name 'l30d'
- Add last30days/.claude-plugin/plugin.json with plugin manifest
- Move skill files into last30days/ plugin directory structure
- Update script paths to use ${CLAUDE_PLUGIN_ROOT}
- Update README with plugin installation instructions
Users can now install with:
claude plugin marketplace add mvanhorn/last30days-skill
claude plugin install last30days@l30d
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
Please merge this! |
|
Love this! One small request: can you change the marketplace name from |
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
Done! @mvanhorn — renamed to Ready when you are. |
- Add .claude-plugin/marketplace.json and plugin.json manifests
- Use ${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/skills/last30days} for script path
- Plugin install: uses CLAUDE_PLUGIN_ROOT when set
- Manual install: falls back to ~/.claude/skills/last30days (no breakage)
- SKILL.md stays at root, plugin.json points skills to "./"
Users can now install via:
claude plugin marketplace add mvanhorn/last30days-skill
claude plugin install last30days@last30days
Inspired by PR #1 (galligan) — lighter approach without repo restructure.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Thanks for this PR, Matt! We took a lighter approach to marketplace plugin support in V2 — shipping a .claude-plugin/plugin.json inspired by your conversion work here. Your PR was the catalyst for adding plugin compatibility. 🙏 Closing this PR since we went a different direction on implementation, but you're credited in the README for the inspiration. Appreciate you pushing on this early. |
…vanhorn#3 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…s an outcome The Gamma API only searches event titles/slugs, missing markets where the topic is an outcome (e.g., "Arizona" in NCAA Tournament Winner). This adds: - All-word query expansion (not just first word): "Arizona Basketball" now searches "Arizona", "Basketball" independently - Tag-based domain expansion: extracts category tags (e.g., "NCAA") from first-pass results and searches those as a second pass - Neg-risk binary market synthesis: shows team names from market questions instead of generic Yes/No outcomes - Question shortening: extracts "Arizona" from "Will Arizona win the NCAA Tournament?" for clean display - Increased depth (3 pages) and result caps (15) for more coverage Live results: "Arizona Basketball" now finds NCAA Tournament Winner (12%), #1 Seed (88%), Big 12 Champion (69%). "Iran War" returns 15 markets (up from 9) with no regression. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…d Anthropic odds example Reorder v2.5 features: Polymarket prediction markets and HN lead as #1, multi-signal quality-ranked relevance scoring as #2. Add Anthropic Odds example showcasing 11 live markets from a two-word query. Add Anthropic and OpenAI Polymarket transcripts to launch tweets. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…traversal, prompt injection Security hardening based on comprehensive audit: 1. Browser cookie extraction now requires explicit opt-in via BIRD_ALLOW_BROWSER_COOKIES=1 env var. Previously, bird-search silently accessed OS keystore (DPAPI/Keychain/keyring) when AUTH_TOKEN/CT0 were not set. Fixes Finding mvanhorn#1 (High). 2. SKILL.md bash snippet moves $ARGUMENTS after -- separator to prevent flag injection into the Python script. Fixes Finding mvanhorn#2 (Medium). 3. Added untrusted-source warning in synthesis instructions to defend against indirect prompt injection from fetched social media content. Fixes Finding mvanhorn#5 (Medium). 4. --save-dir now validated to be within home directory, preventing path traversal writes. Fixes Finding mvanhorn#7 (Low). 5. Security & Permissions section corrected — no longer claims "no browser session access" (was inaccurate). Now accurately documents browser cookie fallback behavior. Fixes Finding mvanhorn#1 disclosure. 6. Codex auth docstring updated to note implicit credential usage. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Yo @mvanhorn! This is a really cool skill. Going to play around with a bit more for myself. But in the meantime, I saw that it wasn't yet set up as a Claude Code plugin, and figured that might make it easier for some to install it vs. go through forking/installing, etc. Plus that way you can version it, make updates, and anyone with it installed via Claude will get the updates.
Happy Claude-ing!
Summary
.claude-plugin/marketplace.jsonwith marketplace namelast30dayslast30days/.claude-plugin/plugin.jsonwith plugin manifestlast30days/plugin directory structure${CLAUDE_PLUGIN_ROOT}Installation
Users can now install with:
Test plan
marketplace.jsonsyntax withjqclaude plugin marketplace add