install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/mvanhorn/last30days-skill/open" ~/.claude/skills/comeonoliver-skillshub-open && rm -rf "$T"
manifest:
skills/mvanhorn/last30days-skill/open/SKILL.mdsource content
last30days (open variant): Research + Watchlist + Briefings
Multi-mode research skill with persistent knowledge accumulation.
Command Routing
Parse the user's first argument to determine the mode:
| First word | Mode | Reference |
|---|---|---|
| Watchlist management | |
| Morning briefing | |
| Query accumulated knowledge | |
| (anything else) | One-shot research | |
Setup: Find Skill Root
for dir in \ "." \ "${CLAUDE_PLUGIN_ROOT:-}" \ "${GEMINI_EXTENSION_DIR:-}" \ "$HOME/.gemini/extensions/last30days-skill" \ "$HOME/.gemini/extensions/last30days" \ "$HOME/.claude/skills/last30days" \ "$HOME/.agents/skills/last30days" \ "$HOME/.codex/skills/last30days"; do [ -n "$dir" ] && [ -f "$dir/scripts/last30days.py" ] && SKILL_ROOT="$dir" && break done if [ -z "${SKILL_ROOT:-}" ]; then echo "ERROR: Could not find scripts/last30days.py" >&2 exit 1 fi
Use
$SKILL_ROOT for all script and reference file paths.
Load Context
At session start, read
${SKILL_ROOT}/variants/open/context.md for user preferences and source quality notes. Update it after interactions.
Shared Configuration
- Database:
(SQLite, WAL mode)~/.local/share/last30days/research.db - Briefings:
~/.local/share/last30days/briefs/ - API keys:
or environment variables~/.config/last30days/.env - Key priority: env vars > config file
API Keys
| Key | Required | Purpose |
|---|---|---|
| For Reddit | Reddit search via OpenAI responses API |
| For X (fallback) | X search via xAI Grok API |
| Optional | Web search via Parallel AI |
| Optional | Web search via Brave Search |
| Optional | Web search via Perplexity Sonar Pro |
Bird CLI provides free X search if installed. YouTube search uses yt-dlp (free).
Run
python3 "${SKILL_ROOT}/scripts/last30days.py" --diagnose to check source availability.
Routing Logic
After determining the mode, read the corresponding reference file using the Read tool:
Read: ${SKILL_ROOT}/variants/open/references/{mode}.md
Then follow the instructions in that reference file exactly.